[
  {
    "path": ".dockerignore",
    "content": "node_modules\ndata\ndatabase\nsimulations/*\ndocs\ndocker-compose*\nDockerfile\nconf.js\n*.md\n.gitignore\n.dockerignore\n.github/\n"
  },
  {
    "path": ".editorconfig",
    "content": "root = true\n\n# Unix-style newlines with a newline ending every file\n[*]\nend_of_line = lf\ninsert_final_newline = true\n\n[*.{js,json}]\ncharset = utf-8\nindent_style = space\n\n[*.{js,yml}]\nindent_size = 2\n\n[*.{json,sh}]\nindent_size = 4\n\n[Makefile]\nindent_style = tab\n\n[{package.json,.travis.yml}]\nindent_style = space\nindent_size = 2\n"
  },
  {
    "path": ".env-sample",
    "content": "BASIC_AUTH_ZEN=ommm:$apr1$1n0zqO2y$A2ueB9zMWZTYTtfckFhql1\nTRAEFIK_HOST_ZEN=myhost.com\nBASIC_AUTH_DB=ommm:$apr1$1n0zqO2y$A2ueB9zMWZTYTtfckFhql1\nTRAEFIK_HOST_DB=db.myhost.com\nTRAEFIK_NETWORK_NAME=traefik-proxy"
  },
  {
    "path": ".eslintignore",
    "content": "scripts/auto_backtester/node_modules/*\r\nscripts/genetic_backtester/node_modules/*\r\nscripts/genetic_algo/node_modules/*\r\ndist\r\ntemplates/dashboard_assets/js/*"
  },
  {
    "path": ".eslintrc",
    "content": "{\n    \"env\": {\n        \"es6\": true,\n        \"node\": true,\n        \"jasmine\": true,\n        \"browser\": true\n    },\n    \"extends\": \"eslint:recommended\",\n    \"rules\": {\n        \"no-console\": 0,\n        \"indent\": [\n            \"error\",\n            2\n        ],\n        \"linebreak-style\": [\n            \"error\",\n            \"unix\"\n        ],\n        \"quotes\": [\n            \"error\",\n            \"single\"\n        ],\n        \"semi\": [\n            \"error\",\n            \"never\"\n        ]\n    },\n    \"parserOptions\": {\n        \"sourceType\": \"module\",\n        \"ecmaVersion\": \"2017\",\n        \"ecmaFeatures\": {\n            \"experimentalObjectRestSpread\": true\n        }\n    }\n}\n"
  },
  {
    "path": ".github/stale.yml",
    "content": "# Number of days of inactivity before an issue becomes stale\ndaysUntilStale: 60\n# Number of days of inactivity before a stale issue is closed\ndaysUntilClose: 7\n# Issues with these labels will never be considered stale\nexemptLabels:\n  - enhancement\n  - bug\n  - Sticky\n# Label to use when marking an issue as stale\nstaleLabel: wontfix\n# Comment to post when marking an issue as stale. Set to `false` to disable\nmarkComment: >\n  This issue has been automatically marked as stale because it has not had\n  recent activity. It will be closed if no further activity occurs. Thank you\n  for your contributions.\n# Comment to post when closing a stale issue. Set to `false` to disable\ncloseComment: false\n"
  },
  {
    "path": ".gitignore",
    "content": ".DS_Store\n.env\n*.tar.gz\n*.log.*\nt.js\nnode_modules\nnpm-debug.log\ndb.json\ndump\nconf/secret.json\ngithub.pub\ngithub\nconfig.js\nconfig.patch\ndata/*\nconf.js\nconf-*\nconf_*\n!conf-sample.js\nsim_result*\ntrade_result*\npaper_result*\n*_test\nbacktesting_*\ngeneration_data_*\nsimulations/*\nmodels/**/*.json\nmodels/**/*.html\n*.pyc\n*.swp\ntemp.html\nlogs\n.sync\ndist/*\n.idea\n*.iml\nsimulations/sim_*.json\ngen.*.bat\ngen.*.sh\n.env\nscripts/auto_backtester/backtesting_*.csv\ndatabase/*\n.vscode/\n"
  },
  {
    "path": ".jsbeautifyrc",
    "content": "{\n    \"indent_size\": 2,\n    \"js\": {\n       \"preserve-newlines\": true\n    }\n}"
  },
  {
    "path": ".snyk",
    "content": "# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.\nversion: v1.16.0\nignore: {}\n# patches apply the minimum changes required to fix a vulnerability\npatch:\n  SNYK-JS-LODASH-450202:\n    - adamant-api > bitcore-mnemonic > bitcore-lib > lodash:\n        patched: '2020-03-25T09:47:35.751Z'\n  SNYK-JS-LODASH-567746:\n    - adamant-api > bitcore-mnemonic > bitcore-lib > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - '@babel/core > lodash':\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - gemini-api > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - node-sass > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - '@babel/core > @babel/helper-module-transforms > lodash':\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-block-scoping > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - extract-text-webpack-plugin > async > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - node-sass > sass-graph > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > graphlib > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > @snyk/ruby-semver > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > inquirer > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > snyk-config > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > snyk-mvn-plugin > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > snyk-nodejs-lockfile-parser > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > snyk-nuget-plugin > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - '@babel/core > @babel/helpers > @babel/traverse > lodash':\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-duplicate-keys > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-parameters > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-shorthand-properties > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-parameters > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-helper-regex > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-unicode-regex > babel-helper-regex > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > request-promise > request-promise-core > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - node-telegram-bot-api > request-promise > request-promise-core > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - pushbullet > request-promise-native > request-promise-core > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - node-sass > gaze > globule > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > @snyk/dep-graph > graphlib > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > snyk-go-plugin > graphlib > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > snyk-nodejs-lockfile-parser > graphlib > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > @snyk/snyk-cocoapods-plugin > @snyk/dep-graph > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > snyk-mvn-plugin > @snyk/java-call-graph-builder > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > snyk-nuget-plugin > dotnet-deps-parser > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > snyk-php-plugin > @snyk/composer-lockfile-parser > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - '@babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > lodash':\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-parameters > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-helper-hoist-variables > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-helper-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-unicode-regex > babel-helper-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-regenerator > regenerator-transform > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > request-promise > request-promise-core > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > @snyk/snyk-cocoapods-plugin > @snyk/dep-graph > graphlib > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > @snyk/snyk-cocoapods-plugin > @snyk/cocoapods-lockfile-parser > @snyk/ruby-semver > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - '@babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/generator > lodash':\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-duplicate-keys > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-helper-hoist-variables > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-shorthand-properties > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-plugin-transform-regenerator > regenerator-transform > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-helper-regex > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-unicode-regex > babel-helper-regex > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - snyk > @snyk/snyk-cocoapods-plugin > @snyk/cocoapods-lockfile-parser > @snyk/dep-graph > graphlib > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - '@babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/helper-split-export-declaration > @babel/types > lodash':\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-duplicate-keys > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-duplicate-keys > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-duplicate-keys > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-helper-hoist-variables > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-shorthand-properties > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-shorthand-properties > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-shorthand-properties > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-helper-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-unicode-regex > babel-helper-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-regenerator > regenerator-transform > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-plugin-transform-regenerator > regenerator-transform > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-plugin-transform-regenerator > regenerator-transform > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-plugin-transform-regenerator > regenerator-transform > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-helper-regex > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-helper-regex > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-helper-regex > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-unicode-regex > babel-helper-regex > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-unicode-regex > babel-helper-regex > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-unicode-regex > babel-helper-regex > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - '@babel/core > @babel/helper-module-transforms > @babel/helper-replace-supers > @babel/traverse > @babel/helper-function-name > @babel/template > @babel/types > lodash':\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-duplicate-keys > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-helper-hoist-variables > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-helper-hoist-variables > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-helper-hoist-variables > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-helper-hoist-variables > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-shorthand-properties > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-helper-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-helper-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-helper-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-unicode-regex > babel-helper-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-unicode-regex > babel-helper-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-unicode-regex > babel-helper-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-regenerator > regenerator-transform > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-regenerator > regenerator-transform > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-regenerator > regenerator-transform > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-plugin-transform-regenerator > regenerator-transform > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-helper-regex > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-unicode-regex > babel-helper-regex > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-helper-hoist-variables > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-helper-hoist-variables > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-helper-hoist-variables > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-helper-hoist-variables > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-sticky-regex > babel-helper-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-unicode-regex > babel-helper-regex > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-regenerator > regenerator-transform > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-block-scoping > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-computed-properties > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-systemjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-helper-optimise-call-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-parameters > babel-helper-call-delegate > babel-helper-hoist-variables > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-helper-get-function-arity > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-function-name > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-replace-supers > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-object-super > babel-helper-replace-supers > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-ws1 > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-exponentiation-operator > babel-helper-builder-binary-assignment-operator-visitor > babel-helper-explode-assignable-expression > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-plugin-transform-strict-mode > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-async-to-generator > babel-helper-remap-async-to-generator > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-classes > babel-helper-define-map > babel-helper-function-name > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-api-node-util > babel-preset-env > babel-plugin-transform-es2015-modules-umd > babel-plugin-transform-es2015-modules-amd > babel-plugin-transform-es2015-modules-commonjs > babel-template > babel-traverse > babel-types > lodash:\n        patched: '2020-05-01T07:02:24.711Z'\n    - bitfinex-api-node > bfx-api-node-models > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > blessed-contrib > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-hf-util > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-hf-util > @babel/cli > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-hf-util > create-index > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-hf-util > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-hf-util > @babel/preset-es2015 > @babel/plugin-transform-block-scoping > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-hf-util > @babel/cli > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-hf-util > babel-eslint > babel-types > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-hf-util > babel-eslint > babel-traverse > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-hf-util > create-index > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-hf-util > @babel/preset-es2015 > @babel/plugin-transform-unicode-regex > @babel/helper-regex > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-hf-util > @babel/preset-es2015 > @babel/plugin-transform-block-scoping > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-hf-util > babel-eslint > babel-traverse > babel-types > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-hf-util > babel-eslint > babel-types > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-hf-util > babel-eslint > babel-traverse > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-hf-util > @babel/preset-es2015 > @babel/plugin-transform-modules-umd > @babel/helper-module-transforms > @babel/helper-simple-access > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-hf-util > @babel/preset-es2015 > @babel/plugin-transform-unicode-regex > @babel/helper-regex > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-hf-util > babel-eslint > babel-traverse > babel-types > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-hf-util > @babel/preset-es2015 > @babel/plugin-transform-parameters > @babel/helper-call-delegate > @babel/traverse > @babel/generator > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-hf-util > @babel/preset-es2015 > @babel/plugin-transform-modules-umd > @babel/helper-module-transforms > @babel/helper-simple-access > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-hf-util > @babel/preset-es2015 > @babel/plugin-transform-parameters > @babel/helper-call-delegate > @babel/traverse > @babel/helper-function-name > @babel/template > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-hf-util > @babel/preset-es2015 > @babel/plugin-transform-parameters > @babel/helper-call-delegate > @babel/traverse > @babel/generator > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-hf-util > @babel/preset-es2015 > @babel/plugin-transform-parameters > @babel/helper-call-delegate > @babel/traverse > @babel/helper-function-name > @babel/template > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-hf-util > @babel/preset-es2015 > @babel/plugin-transform-parameters > @babel/helper-call-delegate > @babel/traverse > @babel/helper-function-name > @babel/template > @babel/types > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-hf-util > @babel/preset-es2015 > @babel/plugin-transform-parameters > @babel/helper-call-delegate > @babel/traverse > @babel/helper-function-name > @babel/template > @babel/types > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-models > bfx-hf-util > @babel/preset-env > @babel/plugin-transform-exponentiation-operator > @babel/helper-builder-binary-assignment-operator-visitor > @babel/helper-explode-assignable-expression > @babel/traverse > @babel/helper-function-name > @babel/template > @babel/types > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n    - bitfinex-api-node > bfx-api-node-rest > bfx-api-node-models > bfx-hf-util > @babel/preset-env > @babel/plugin-transform-exponentiation-operator > @babel/helper-builder-binary-assignment-operator-visitor > @babel/helper-explode-assignable-expression > @babel/traverse > @babel/helper-function-name > @babel/template > @babel/types > lodash:\n        patched: '2020-07-06T09:32:09.747Z'\n"
  },
  {
    "path": ".travis.yml",
    "content": "language: node_js\nnode_js:\n  - '10'\n  - '11'\nbefore_install:\n  - npm install -g node-gyp\n  - if [ \"$TRAVIS_NODE_VERSION\" = \"10\" ]; then npm install -g greenkeeper-lockfile@1; fi\nscript:\n  - npm run lint\n  - npm test\nafter_success:\n  - if [ \"$TRAVIS_NODE_VERSION\" = \"10\" ]; then greenkeeper-lockfile-update; fi\nafter_script:\n  - if [ \"$TRAVIS_EVENT_TYPE\" = \"cron\" ]; then /bin/sh scripts/cron.sh; fi\n  - if [ \"$TRAVIS_NODE_VERSION\" = \"10\" ]; then greenkeeper-lockfile-upload; fi\nenv:\n  global:\n    secure: X5ZcoLrEavb26c1vY6L6hxmOtUGp07ta9jb0heU/9TkR0PCxBwqh1THHZIUO4qhOURSPXmBmajgMBDYzBgHpjd+5PrtF5mTqcRhXLpAbb9RQ0+H9VvTuwAWca6H7jG8RUS7zcV70u9de0zEmRFTX85iusPoIoqF2cafgsMtq6Gtx8rb+4WZ45Etn589RrOaehG2u1w+MW6vzohWpHY6hc3yqFWsKUfDdahWofdmH1SIpEgckbQ26LuaBMfqHeDPHtHsMfloHhukvmPzobBKJ7PuQWtJ/enuygY9ZjAX7NTgWEG7m5SLvJZ4PuVkc9ea0ZHMVB3L9bR2njbtBf4QnRhti/XyaNgBGqTsce52z3Z+3Hs9/Hktbb2KLJ2Jid3nwhoUmYr5HTRPkkQ54gOgLFMshi4H+vr4s+MMcfHQ6B0kjADenEf2vFcMwLCey/ERh52csqdlJviw9IJRa0YrSXc3krnlOVMPHnaOgKuU/hYyM3uj5CzG4iCmqOJG0sBtlrp+Q+q9kDtpNw+U/xRZzJ6+0XmFNtNLz762VCW6zs/zsaJ6livU6rSUOKyUo5v+5Ay6DOAjDe2NM3R7hymvhlWJh8SCLBJEDZsLbeN1pozDatOXsD2OWJnhHYfQbntekytoXy3fSrgZYuWJ6yL/S6R4Eo73XkoL2Bah8+aAhcEE=\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "## Changelog\n\n- [v4.1.0](https://github.com/carlos8f/zenbot/releases/tag/v4.1.0) (Latest)\n    - more indicators\n    - more strategies\n    - more exchanges\n    - too many bug fixes to list here\n    - web UI\n    - Travis\n    - Docker automated builds\n    - Automated tests\n- [v4.0.5](https://github.com/carlos8f/zenbot/releases/tag/v4.0.5)\n    - handle insufficient funds errors from gdax\n    - new trend_ema defaults adjusted for latest btc movements: 20m period, neutral_rate=0\n    - include more data in sim output\n    - remove rarely useful trend_ema options\n    - avoid abort in trader on failed getTrades()\n- v4.0.4\n    - debugging for polo odd results\n    - sim: simplify and correct makerFee assessment\n    - fix conf path in API credentials errors\n    - fix order total under 0.0001 error on polo\n    - Docker: extend README slightly (thanks [@DeviaVir](https://github.com/deviavir) and [@egorbenko](https://github.com/egorbenko))\n    - docker-compose: do not expose mongodb by default! (thanks [@DeviaVir](https://github.com/deviavir))\n- v4.0.3\n    - fix for docker mongo host error\n    - link for new Discord chat!\n    - fix polo crash on getOrder weird result\n    - fix oversold_rsi trigger while in preroll\n    - fix polo \"not enough...\" errors\n    - fancy colors for price report\n    - display product id in report\n    - fix poloniex backfill batches too big, mongo timeouts\n    - fix cursorTo() crash on some node installs\n    - memDump for debugging order failures\n    - fix column spacing on progress report\n- v4.0.2\n    - minor overhaul to trend_ema strat - added whipsaw filtering via std. deviation (`--neutral_rate=auto`)\n    - trim preroll of sim result graph\n- v4.0.1\n    - Added .dockerignore (thanks [@sulphur](https://github.com/sulphur))\n    - fix crashing on mongo timeout during backfill\n    - fix gaps in poloniex backfill\n    - default backfill days 90 -> 14\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at carlos@s8f.org. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n"
  },
  {
    "path": "Dockerfile",
    "content": "FROM node:10 as builder\nADD . /app\nWORKDIR /app\nRUN npm install -g node-gyp\nRUN npm install --unsafe\n\nFROM node:10-alpine\n\nCOPY zenbot.sh /usr/local/bin/zenbot\n\nWORKDIR /app\nRUN chown -R node:node /app\n\nCOPY --chown=node . /app\nCOPY --chown=node --from=builder /usr/local/lib/node_modules/ /usr/local/lib/node_modules/\nCOPY --chown=node --from=builder /app/node_modules /app/node_modules/\n\nUSER node\nENV NODE_ENV production\n\nENTRYPOINT [\"/usr/local/bin/zenbot\"]\nCMD [\"trade\",\"--paper\"]\n"
  },
  {
    "path": "ISSUE_TEMPLATE.md",
    "content": "KINDLY READ AND ACT ON THE BELOW INFORMATION BEFORE FILING YOUR ISSUE!\n\nPlease go to our Zenbot subreddit for questions, help and support:\n\n[https://www.reddit.com/r/zenbot/](https://www.reddit.com/r/zenbot/)\n\nIf you open a GitHub issue, here is our policy:\n\n1. It must be a bug or a feature request.\n2. The form below must be filled out.\n\n**Here's why we have that policy**: Zenbot developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals and rarely leads to bugfixes or useful enhancements. GitHub also notifies hundreds of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Reddit.\n\n------------------------\nRemove everything above before creating your issue.\n------------------------\n\n### System information\n- **Have I written custom code (as opposed to using zenbot vanilla)**:\n- **OS Platform and Distribution (e.g., Linux Ubuntu 16.04)**:\n- **Zenbot version** (commit ref, or version):\n- **Zenbot branch**:\n- **NodeJS version**:\n- **Python version (when using a python script)**:\n- **Exact command to reproduce (include everything)**:\n- **Did I make any changes to conf-sample.js?**:\n\n### Describe the problem\nDescribe the problem clearly here. Be sure to convey here why it's a bug in Zenbot or a feature request.\n\n### Source code / Error logs\nInclude any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem.\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2018 Carlos Rodriguez\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "Makefile",
    "content": "# Check if this is Windows\nifneq (,$(findstring WINDOWS,$(PATH)))\nWINDOWS := True\nendif\n\n# Set shell to cmd on windows\nifdef WINDOWS\nSHELL := C:/Windows/System32/cmd.exe\nendif\n\n# Don't use sudo on windows\nSUDO := \"sudo\"\nifdef WINDOWS\nSUDO := \nendif\n\n# set home dir to user's home on windows running MINGW\nifdef MSYSTEM\nHOME := $(subst \\,/,$(HOME))\nendif\n\n# Get the root dir of this file\nROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))\n\n# Define the full path to this file\nTHIS_FILE := $(lastword $(MAKEFILE_LIST))\n\n# Set docker-compose file selector for windows\nifneq (,$(findstring WINDOWS,$(PATH)))\nDC_CONFIG=$(ROOT_DIR)/docker-compose-windows.yml\nelse\nDC_CONFIG=$(ROOT_DIR)/docker-compose.yml\nendif\n\n# Find or create a home for sensitive environment variables\n# Check my secret place\nCREDS=$(HOME)/.bash/.credentials\nifneq (\"$(wildcard $(CREDS))\",\"\")\nCREDENTIALS := $(CREDS)\nelse\n# Check a normal place\nCREDS=$(HOME)/.credentials\nifneq (\"$(wildcard $(CREDS))\",\"\")\nCREDENTIALS := $(CREDS)\nelse\n$(info $(shell \"mkdir\" $(CREDS)))\nendif\nendif\n\n# To use arguments with make execute: make -- <command> <args>\nARGS = $(filter-out $@,$(MAKECMDGOALS))\nMAKEFLAGS += --silent\n\nlist:\n\tsh -c \"echo; $(MAKE) -p no_targets__ | awk -F':' '/^[a-zA-Z0-9][^\\$$#\\/\\\\t=]*:([^=]|$$)/ {split(\\$$1,A,/ /);for(i in A)print A[i]}' | grep -v '__\\$$' | grep -v 'Makefile'| sort\"\n\n#############################\n# ZENBOT\n#############################\n\nlist-strategies:\n\tdocker-compose exec server zenbot list-strategies $(ARGS)\n\nlist-selectors:\n\tdocker-compose exec server zenbot list-selectors $(ARGS)\n\nbackfill:\n\tdocker-compose exec server zenbot backfill $(ARGS)\n\nsim:\n\tdocker-compose exec server zenbot sim $(ARGS)\n\ntrade:\n\tdocker-compose exec server zenbot trade $(ARGS)\n\npaper:\n\tdocker-compose exec server zenbot trade --paper $(ARGS)\n\nbalance:\n\tdocker-compose exec server zenbot balance $(ARGS)\n\nbuy:\n\tdocker-compose exec server zenbot buy $(ARGS)\n\nsell:\n\tdocker-compose exec server zenbot sell $(ARGS)\n\nzenbot:\n\tdocker-compose exec server zenbot $(ARGS)\n\n#############################\n# Docker machine states\n#############################\ntime-sync:\n\tdocker run --rm --privileged alpine hwclock -s\n\nup:\n\t$(SUDO) docker-compose --file=$(DC_CONFIG) up\n\nstart:\n\tdocker-compose start\n\nstop:\n\tdocker-compose stop\n\nstate:\n\tdocker-compose ps\n\nrebuild:\n\t$(SUDO) docker-compose stop\n\t$(SUDO) docker-compose pull\n\t$(SUDO) docker-compose rm --force server\n\t$(SUDO) docker-compose rm --force mongodb\n\t-$(SUDO) docker-compose rm --force adminmongo\n\t$(SUDO) docker-compose build --no-cache\n\t$(SUDO) docker-compose --file=$(DC_CONFIG) up -d --force-recreate\n\n\nshell:\n\tdocker-compose exec server /bin/sh\n\nshellw:\n\tdocker exec -it -u root $$(docker-compose ps -q server) /bin/sh\n\nlogs:\n\tdocker-compose logs $(ARGS)\n\n#############################\n# Argument fix workaround\n#############################\n%:\n\t@:\n"
  },
  {
    "path": "README.md",
    "content": "WARNING: project is no longer actively maintained, make sure to update any dependencies if you plan on using this in your project.\n\n![zenbot logo](assets/logo.png)\n\n> “To follow the path, look to the master, follow the master, walk with the master, see through the master, become the master.”\n> – Zen Proverb\n\n# Zenbot [![Build/Test Status](https://travis-ci.org/DeviaVir/zenbot.svg?branch=master)](https://travis-ci.org/DeviaVir/zenbot) \n\n## Description\n\nZenbot is a command-line cryptocurrency trading bot using Node.js and MongoDB. It features:\n\n- Fully-automated [technical-analysis](https://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:introduction_to_technical_indicators_and_oscillators)-based trading approach\n- Full support for [Binance](https://www.binance.com/), [Bitfinex](https://www.bitfinex.com/), [Bitstamp](https://www.bitstamp.net/), [Bittrex](https://bittrex.com/), [CEX.IO](https://cex.io/), [GDAX](https://gdax.com/), [Gemini](https://gemini.com/), [HitBTC](https://hitbtc.com/), [Kraken](https://www.kraken.com/), [Poloniex](https://poloniex.com/)and [TheRockTrading](https://www.therocktrading.com/), work on further exchange support is ongoing.\n- Plugin architecture for implementing exchange support, or writing new strategies\n- Simulator for [backtesting strategies](https://gist.github.com/carlos8f/b09a734cf626ffb9bb3bcb1ca35f3db4) against historical data\n- \"Paper\" trading mode, operates on a simulated balance while watching the live market\n- Configurable sell stops, buy stops, and (trailing) profit stops\n- Flexible sampling period and trade frequency - averages 1-2 trades/day with 1h period, 15-50/day with 5m period\n\n## Disclaimer\n\n- Zenbot is NOT a sure-fire profit machine. Use it AT YOUR OWN RISK.\n- Crypto-currency is still an experiment, and therefore so is Zenbot. Meaning, both may fail at any time.\n- Running a bot, and trading in general requires careful study of the risks and parameters involved. A wrong setting can cause you a major loss.\n- Never leave the bot un-monitored for long periods of time. Zenbot doesn't know when to stop, so be prepared to stop it if too much loss occurs.\n- Often times the default trade parameters will underperform vs. a buy-hold strategy, so run some simulations and find the optimal parameters for your chosen exchange/pair before going \"all-in\".\n\n## Documentation\n\nThe extensive documentation is located at the [docs-folder](docs/).\n\n### Questions\n\nFirst have a look at the [docs](docs/) and there are also [FAQs](docs/FAQ.md) which may answer your questions.\nIf not, please ask (programming) questions related to Zenbot on Reddit ([subreddit zenbot](https://reddit.com/r/zenbot)).\n\n### Community\n\nJoin the [Zenbot community on Reddit](https://reddit.com/r/zenbot)!\n\n## Donate\n\nP.S., some have asked for how to donate to Zenbot development. We accept donations at **Bitcoin addresses** below:\n\n### carlos8f's BTC (original Zenbot author)\n\n`187rmNSkSvehgcKpBunre6a5wA5hQQop6W`\n\n### DeviaVir's BTC (current maintainer)\n\n`3A5g4GQ2vmjNcnEschCweJJB4umzu66sdY`\n\n![zenbot logo](assets/zenbot_square.png)\n\nThanks!\n\n## Noteworthy forks\n\n- [bot18](https://medium.com/@carlos8f_11468/introducing-bot18-the-new-crypto-trading-bot-to-supersede-zenbot-and-unleash-the-zalgo-da8464b41e53)\n- [magic8bot](https://github.com/notVitaliy/magic8bot)\n\n- - -\n\n## License: MIT\n\n- Copyright (C) 2018 Carlos Rodriguez\n- Copyright (C) 2018 Terra Eclipse, Inc. (http://www.terraeclipse.com/)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the &quot;Software&quot;), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "boot.js",
    "content": "var _ = require('lodash')\nvar path = require('path')\nvar minimist = require('minimist')\nvar version = require('./package.json').version\nvar EventEmitter = require('events')\n\nmodule.exports = function (cb) {\n  var zenbot = { version }\n  var args = minimist(process.argv.slice(3))\n  var conf = {}\n  var config = {}\n  var overrides = {}\n\n  module.exports.debug = args.debug\n\n  // 1. load conf overrides file if present\n  if(!_.isUndefined(args.conf)){\n    try {\n      overrides = require(path.resolve(process.cwd(), args.conf))\n    } catch (err) {\n      console.error(err + ', failed to load conf overrides file!')\n    }\n  }\n\n  // 2. load conf.js if present\n  try {\n    conf = require('./conf')\n  } catch (err) {\n    console.error(err + ', falling back to conf-sample')\n  }\n\n  // 3. Load conf-sample.js and merge\n  var defaults = require('./conf-sample')\n  _.defaultsDeep(config, overrides, conf, defaults)\n  zenbot.conf = config\n\n  var eventBus = new EventEmitter()\n  zenbot.conf.eventBus = eventBus\n\n  var authStr = '', authMechanism, connectionString\n\n  if(zenbot.conf.mongo.username){\n    authStr = encodeURIComponent(zenbot.conf.mongo.username)\n\n    if(zenbot.conf.mongo.password) authStr += ':' + encodeURIComponent(zenbot.conf.mongo.password)\n\n    authStr += '@'\n\n    // authMechanism could be a conf.js parameter to support more mongodb authentication methods\n    authMechanism = zenbot.conf.mongo.authMechanism || 'DEFAULT'\n  }\n\n  if (zenbot.conf.mongo.connectionString) {\n    connectionString = zenbot.conf.mongo.connectionString\n  } else {\n    connectionString = 'mongodb://' + authStr + zenbot.conf.mongo.host + ':' + zenbot.conf.mongo.port + '/' + zenbot.conf.mongo.db + '?' +\n      (zenbot.conf.mongo.replicaSet ? '&replicaSet=' + zenbot.conf.mongo.replicaSet : '' ) +\n      (authMechanism ? '&authMechanism=' + authMechanism : '' )\n  }\n\n  require('mongodb').MongoClient.connect(connectionString, { useNewUrlParser: true, useUnifiedTopology: true}, function (err, client) {\n    if (err) {\n      console.error('WARNING: MongoDB Connection Error: ', err)\n      console.error('WARNING: without MongoDB some features (such as backfilling/simulation) may be disabled.')\n      console.error('Attempted authentication string: ' + connectionString)\n      cb(null, zenbot)\n      return\n    }\n    var db = client.db(zenbot.conf.mongo.db)\n    _.set(zenbot, 'conf.db.mongo', db)\n    cb(null, zenbot)\n  })\n}\n"
  },
  {
    "path": "commands/backfill/backfill.consume.function.js",
    "content": "\n/* This module provides a function, used in the backfill process, to consume trades. \n\n    It is accompanied by another class which processes those trades. In this case,\n    processing means storing in the database.\n\n    It makes a call to a service to get trades. If trades are returned, it stores\n    them in a queue. Finally, regardless, a status code is returned. Its either cp_process, \n    to process the trades, or cp_exit, exit the consume-and-process flow.\n*/\nvar tradesService = require('../../lib/services/trades-service')\n\nmodule.exports = function (conf) {\t\t\n\n  var tradesServiceInstance = tradesService(conf)\n\n  return (mostRecentlyProcessedTradeId, queue, cb) => {\n    tradesServiceInstance.getTrades(mostRecentlyProcessedTradeId).then(function (returnedTrades) {\n      if (returnedTrades.length > 0) {\n        queue.enqueue(returnedTrades.sort((a, b) => {\n          return b.trade_id - a.trade_id\n        })\n        )\n        cb(null, 'cp_process', returnedTrades[returnedTrades.length - 1].trade_id)\n      }\n      else {\n        cb(null, 'cp_exit', undefined)\n      }\n    })\n\n  }\n}"
  },
  {
    "path": "commands/backfill/backfill.function.js",
    "content": "var consumeAndProcessService = require('../../lib/services/consume-and-process-service'),\n  backfillConsumeFunction = require('./backfill.consume.function'),\n  backfillProcessFunction = require('./backfill.process.function'),\n  backfillUpdateScreenFunction = require('./backfill.update-screen.function')\n\nmodule.exports = function container (conf) {\n\n  /**\n\t * Backfilling consists of two steps: consuming the trades, and processing (persisting) them.\n\t * This function sets up the service that manages that.\n\t */\n  return function (targetTimeInMillis) {\n    var cpService = consumeAndProcessService(conf)\n\n    cpService.setOnConsumeFunc(backfillConsumeFunction(conf))\n    cpService.setOnProcessFunc(backfillProcessFunction(conf))\n    cpService.setAfterOnProcessFunc(backfillUpdateScreenFunction)\n\n    return new Promise((resolve/*, reject*/) => {\n      cpService.go(targetTimeInMillis).then((finalTrade) => {\n        resolve(finalTrade)\n      })\n    }, function (err) {\n      console.log('Something bad happened while getting trades :(')\n      console.log(err)\n    })\n\t\t\n  }\n}\n"
  },
  {
    "path": "commands/backfill/backfill.process.function.js",
    "content": "\n/*\n\tProcesses the trades..\n*/\nvar collectionService = require('../../lib/services/collection-service')\n\nmodule.exports = function (conf) {\n\n  var collectionServiceInstance = collectionService(conf)\n\n  return (targetTimeInMillis, queue, getIDofNextTradeToProcessFunc, cb) => {\n    var trades = queue.dequeue()\n\n    var prev\n    var curr\n    var rtnTrade\n    var index = 0\n    var moreInThisBatch = true\n    var stopProcessingConditionReached = false\n\n    do {\n      prev = curr\n      curr = trades[index++]\n\n      if (curr === undefined) {\n        rtnTrade = prev\n        moreInThisBatch = false\n      } else {\n        if (curr.time > targetTimeInMillis)  {\n          let skipToTradeId = getIDofNextTradeToProcessFunc(curr)\n\n          //  if number we can skip to === currtrade\n          if (skipToTradeId === curr.trade_id) {\n            let lastTrade = curr\n            let idx = {i: index}\n            collectionServiceInstance.getTrades().insertOne(curr).then((/*err, doc*/) => {\n              if (idx.i === trades.length) {\n                cb(null, false, lastTrade.trade_id, lastTrade)\n              }\n            })\n          }\n          else {\n            moreInThisBatch = false\n            cb(null, false, skipToTradeId, curr)\n          }\n        } else {\n          // this is past our time limit...\n          moreInThisBatch = false\n          stopProcessingConditionReached = true\n          rtnTrade = prev || curr\n        }\n      }\n\n    } while (moreInThisBatch)\n\n    if (stopProcessingConditionReached) {\n      cb(null, stopProcessingConditionReached, rtnTrade.trade_id, rtnTrade)\n    }\n  }\n\n}\n"
  },
  {
    "path": "commands/backfill/backfill.update-screen.function.js",
    "content": "var Moment = require('moment')\n\nmodule.exports = (trade_id, data) => { \n  if (data !== undefined && typeof process.stdout.clearLine == 'function') {\n    process.stdout.clearLine()\n    process.stdout.write(data.pingCount + ' trades processed so far. The most recently processed trade happened ' + Moment(data.time).fromNow() + '.' )\n    process.stdout.cursorTo(0)\n  }\n}\n\n"
  },
  {
    "path": "commands/backfill.js",
    "content": "var tb = require('timebucket')\n  , crypto = require('crypto')\n  , objectifySelector = require('../lib/objectify-selector')\n  , collectionService = require('../lib/services/collection-service')\n  , moment = require('moment')\n\nmodule.exports = function (program, conf) {\n  program\n    .command('backfill [selector]')\n    .description('download historical trades for analysis')\n    .option('--conf <path>', 'path to optional conf overrides file')\n    .option('--debug', 'output detailed debug info')\n    .option('-d, --days <days>', 'number of days to acquire (default: ' + conf.days + ')', Number, conf.days)\n    .option('--start <unix_in_ms> | <datetime>', 'lower bound as unix time in ms or format (\"YYYYMMDDhhmm\")', Number, -1)\n    .option('--end   <unix_in_ms> | <datetime>', 'upper bound as unix time in ms or format (\"YYYYMMDDhhmm\")', Number, -1)\n    .action(function (selector, cmd) {\n      selector = objectifySelector(selector || conf.selector)\n      var exchange = require(`../extensions/exchanges/${selector.exchange_id}/exchange`)(conf)\n      if (!exchange) {\n        console.error('cannot backfill ' + selector.normalized + ': exchange not implemented')\n        process.exit(1)\n      }\n\n      var collectionServiceInstance = collectionService(conf)\n      var tradesCollection = collectionServiceInstance.getTrades()\n      var resume_markers = collectionServiceInstance.getResumeMarkers()\n\n      var marker = {\n        id: crypto.randomBytes(4).toString('hex'),\n        selector: selector.normalized,\n        from: null,\n        to: null,\n        oldest_time: null,\n        newest_time: null\n      }\n      marker._id = marker.id\n      var trade_counter = 0\n      var day_trade_counter = 0\n      var get_trade_retry_count = 0\n      var days_left = cmd.days + 1\n      var target_time, start_time\n      var mode = exchange.historyScan\n      var last_batch_id, last_batch_opts\n      var offset = exchange.offset\n      var markers, trades\n      if (!mode) {\n        console.error('cannot backfill ' + selector.normalized + ': exchange does not offer historical data')\n        process.exit(0)\n      }\n      if (mode === 'backward') {\n        target_time = new Date().getTime() - (86400000 * cmd.days)\n      }\n      else {\n        if(cmd.start >= 0 && cmd.end >= 0){\n          if (moment(cmd.start, 'YYYYMMDDhhmm').isValid() && moment(cmd.end, 'YYYYMMDDhhmm').isValid()) {\n            start_time = moment(cmd.start, 'YYYYMMDDhhmm').valueOf()\n            target_time = moment(cmd.end, 'YYYYMMDDhhmm').valueOf()\n          }\n          else {\n            start_time = cmd.start\n            target_time = cmd.end\n          }\n        } else {\n          target_time = new Date().getTime()\n          start_time = new Date().getTime() - (86400000 * cmd.days)\n        }\n      }\n      resume_markers.find({selector: selector.normalized}).toArray(function (err, results) {\n        if (err) throw err\n        markers = results.sort(function (a, b) {\n          if (mode === 'backward') {\n            if (a.to > b.to) return -1\n            if (a.to < b.to) return 1\n          }\n          else {\n            if (a.from < b.from) return -1\n            if (a.from > b.from) return 1\n          }\n          return 0\n        })\n        getNext()\n      })\n\n      function getNext () {\n        var opts = {product_id: selector.product_id}\n        if (mode === 'backward') {\n          opts.to = marker.from\n        }\n        else {\n          if (marker.to) opts.from = marker.to + 1\n          else opts.from = exchange.getCursor(start_time)\n        }\n        if (offset) {\n          opts.offset = offset\n        }\n        last_batch_opts = opts\n        exchange.getTrades(opts, function (err, results) {\n          trades = results\n          if (err) {\n            console.error('err backfilling selector: ' + selector.normalized)\n            console.error(err)\n            if (err.code === 'ETIMEDOUT' || err.code === 'ENOTFOUND' || err.code === 'ECONNRESET') {\n              console.error('retrying...')\n              setImmediate(getNext)\n              return\n            }\n            console.error('aborting!')\n            process.exit(1)\n          }\n          if (mode !== 'backward' && !trades.length) {\n            if (trade_counter) {\n              console.log('\\ndownload complete!\\n')\n              process.exit(0)\n            }\n            else {\n              if (get_trade_retry_count < 5) {\n                console.error('\\ngetTrades() returned no trades, retrying with smaller interval.')\n                get_trade_retry_count++\n                start_time += (target_time - start_time)*0.4\n                setImmediate(getNext)\n                return\n              }\n              else {\n                console.error('\\ngetTrades() returned no trades, --start may be too remotely in the past.')\n                process.exit(1)\n              }\n            }\n          }\n          else if (!trades.length) {\n            console.log('\\ngetTrades() returned no trades, we may have exhausted the historical data range.')\n            process.exit(0)\n          }\n          trades.sort(function (a, b) {\n            if (mode === 'backward') {\n              if (a.time > b.time) return -1\n              if (a.time < b.time) return 1\n            }\n            else {\n              if (a.time < b.time) return -1\n              if (a.time > b.time) return 1\n            }\n            return 0\n          })\n          if (last_batch_id && last_batch_id === trades[0].trade_id) {\n            console.error('\\nerror: getTrades() returned duplicate results')\n            console.error(opts)\n            console.error(last_batch_opts)\n            process.exit(0)\n          }\n          last_batch_id = trades[0].trade_id\n          runTasks(trades)\n        })\n      }\n\n      function runTasks (trades) {\n        Promise.all(trades.map((trade)=>saveTrade(trade))).then(function(/*results*/){\n          var oldest_time = marker.oldest_time\n          var newest_time = marker.newest_time\n          markers.forEach(function (other_marker) {\n            // for backward scan, if the oldest_time is within another marker's range, skip to the other marker's start point.\n            // for forward scan, if the newest_time is within another marker's range, skip to the other marker's end point.\n            if (mode === 'backward' && marker.id !== other_marker.id && marker.from <= other_marker.to && marker.from > other_marker.from) {\n              marker.from = other_marker.from\n              marker.oldest_time = other_marker.oldest_time\n            }\n            else if (mode !== 'backward' && marker.id !== other_marker.id && marker.to >= other_marker.from && marker.to < other_marker.to) {\n              marker.to = other_marker.to\n              marker.newest_time = other_marker.newest_time\n            }\n          })\n          var diff\n          if (oldest_time !== marker.oldest_time) {\n            diff = tb(oldest_time - marker.oldest_time).resize('1h').value\n            console.log('\\nskipping ' + diff + ' hrs of previously collected data')\n          }\n          else if (newest_time !== marker.newest_time) {\n            diff = tb(marker.newest_time - newest_time).resize('1h').value\n            console.log('\\nskipping ' + diff + ' hrs of previously collected data')\n          }\n          resume_markers.replaceOne({_id: marker.id}, marker, {upsert: true})\n            .then(setupNext)\n            .catch(function(err){\n              if (err) throw err\n            })\n        }).catch(function(err){\n          if (err) {\n            console.error(err)\n            console.error('retrying...')\n            return setTimeout(runTasks, 10000, trades)\n          }\n        })\n      }\n\n      function setupNext() {\n        trade_counter += trades.length\n        day_trade_counter += trades.length\n        var current_days_left = 1 + (mode === 'backward' ? tb(marker.oldest_time - target_time).resize('1d').value : tb(target_time - marker.newest_time).resize('1d').value)\n        if (current_days_left >= 0 && current_days_left != days_left) {\n          console.log('\\n' + selector.normalized, 'saved', day_trade_counter, 'trades', current_days_left, 'days left')\n          day_trade_counter = 0\n          days_left = current_days_left\n        } else {\n          process.stdout.write('.')\n        }\n\n        if (mode === 'backward' && marker.oldest_time <= target_time) {\n          console.log('\\ndownload complete!\\n')\n          process.exit(0)\n        } else if(cmd.start >= 0 && cmd.end >= 0 && target_time <= marker.newest_time){\n          console.log('\\ndownload of span ('+cmd.start+' - '+cmd.end+') complete!\\n')\n          process.exit(0)\n        }\n\n        if (exchange.backfillRateLimit) {\n          setTimeout(getNext, exchange.backfillRateLimit)\n        } else {\n          setImmediate(getNext)\n        }\n      }\n\n      function saveTrade (trade) {\n        trade.id = selector.normalized + '-' + String(trade.trade_id)\n        trade._id = trade.id\n        trade.selector = selector.normalized\n        var cursor = exchange.getCursor(trade)\n        if (mode === 'backward') {\n          if (!marker.to) {\n            marker.to = cursor\n            marker.oldest_time = trade.time\n            marker.newest_time = trade.time\n          }\n          marker.from = marker.from ? Math.min(marker.from, cursor) : cursor\n          marker.oldest_time = Math.min(marker.oldest_time, trade.time)\n        }\n        else {\n          if (!marker.from) {\n            marker.from = cursor\n            marker.oldest_time = trade.time\n            marker.newest_time = trade.time\n          }\n          marker.to = marker.to ? Math.max(marker.to, cursor) : cursor\n          marker.newest_time = Math.max(marker.newest_time, trade.time)\n        }\n        return tradesCollection.replaceOne({_id: trade.id}, trade, {upsert: true})\n      }\n    })\n}\n"
  },
  {
    "path": "commands/balance.js",
    "content": "var minimist = require('minimist')\n  , n = require('numbro')\n  // eslint-disable-next-line no-unused-vars\n  , colors = require('colors')\n  , moment = require('moment')\n  , exchangeService = require('../lib/services/exchange-service')\n  , { formatCurrency } = require('../lib/format')\n\nmodule.exports = function (program, conf) {\n  program\n    .command('balance [selector]')\n    .allowUnknownOption()\n    .description('get asset and currency balance from the exchange')\n    //.option('--all', 'output all balances')\n    .option('-c, --calculate_currency <calculate_currency>', 'show the full balance in another currency')\n    .option('--debug', 'output detailed debug info')\n    .action(function (selector, cmd) {\n\n      if (selector !== undefined)\n        conf.selector = selector\n\n      var exchangeServiceInstance = exchangeService(conf)\n      selector = exchangeServiceInstance.getSelector()\n\n      var s = {\n        options: minimist(process.argv),\n        selector: selector,\n        product_id: selector.product_id,\n        asset: selector.asset,\n        currency: selector.currency\n      }\n\n      var so = s.options\n      delete so._\n\n      Object.keys(conf).forEach(function (k) {\n        if (typeof cmd[k] !== 'undefined') {\n          so[k] = cmd[k]\n        }\n      })\n      so.selector = s.selector\n      so.debug = cmd.debug\n      so.mode = 'live'\n      function balance () {\n        var exchange = exchangeServiceInstance.getExchange()\n\n        if (exchange === undefined) {\n          console.error('\\nSorry, couldn\\'t find an exchange from selector [' + conf.selector + '].')\n          process.exit(1)\n        }\n\n        exchange.getBalance(s, function (err, balance) {\n          if (err) throw err\n          exchange.getQuote(s, function (err, quote) {\n            if (err) throw err\n\n            var bal = moment().format('YYYY-MM-DD HH:mm:ss').grey + ' ' + formatCurrency(quote.ask, s.currency, true, true, false) + ' ' + (s.product_id).grey + '\\n'\n            bal += moment().format('YYYY-MM-DD HH:mm:ss').grey + ' Asset: '.grey + n(balance.asset).format('0.00000000').white + ' Available: '.grey + n(balance.asset).subtract(balance.asset_hold).value().toString().yellow + '\\n'\n            bal += moment().format('YYYY-MM-DD HH:mm:ss').grey + ' Asset Value: '.grey + n(balance.asset).multiply(quote.ask).value().toString().white + '\\n'\n            bal += moment().format('YYYY-MM-DD HH:mm:ss').grey + ' Currency: '.grey + n(balance.currency).format('0.00000000').white + ' Available: '.grey + n(balance.currency).subtract(balance.currency_hold).value().toString().yellow + '\\n'\n            bal += moment().format('YYYY-MM-DD HH:mm:ss').grey + ' Total: '.grey + n(balance.asset).multiply(quote.ask).add(balance.currency).value().toString().white\n            console.log(bal)\n\n            if (so.calculate_currency) {\n              exchange.getQuote({'product_id': s.asset + '-' + so.calculate_currency}, function (err, asset_quote) {\n                if (err)  throw err\n\n                exchange.getQuote({'product_id': s.currency + '-' + so.calculate_currency}, function (err, currency_quote) {\n                  if (err)  throw err\n                  var asset_total = balance.asset * asset_quote.bid\n                  var currency_total = balance.currency * currency_quote.bid\n                  console.log((so.calculate_currency + ': ').grey + (asset_total + currency_total))\n                  process.exit()\n                })\n              })\n            }\n            else {\n              process.exit()\n            }\n          })\n        })\n      }\n\n      balance()\n    })\n}\n\n"
  },
  {
    "path": "commands/buy.js",
    "content": "var minimist = require('minimist')\n  , n = require('numbro')\n  // eslint-disable-next-line no-unused-vars\n  , colors = require('colors')\n  , objectifySelector = require('../lib/objectify-selector')\n  , engineFactory = require('../lib/engine')\n  , _ = require('lodash')\n\nmodule.exports = function (program, conf) {\n  program\n    .command('buy [selector]')\n    .allowUnknownOption()\n    .description('execute a buy order to the exchange')\n    .option('--pct <pct>', 'buy with this % of currency balance', Number, conf.buy_pct)\n    .option('--order_type <type>', 'order type to use (maker/taker)', /^(maker|taker)$/i, conf.order_type)\n    .option('--size <size>', 'buy specific size of currency')\n    .option('--markdown_buy_pct <pct>', '% to mark down buy price', Number, conf.markdown_buy_pct)\n    .option('--order_adjust_time <ms>', 'adjust bid on this interval to keep order competitive', Number, conf.order_adjust_time)\n    .option('--order_poll_time <ms>', 'poll order status on this interval', Number, conf.order_poll_time)\n    .option('--max_slippage_pct <pct>', 'avoid buying at a slippage pct above this float', conf.max_slippage_pct)\n    .option('--debug', 'output detailed debug info')\n    .action(function (selector, cmd) {\n      var s = {options: minimist(process.argv)}\n      var so = s.options\n      delete so._\n      Object.keys(conf).forEach(function (k) {\n        if (typeof cmd[k] !== 'undefined') {\n          so[k] = cmd[k]\n        }\n      })\n      so.debug = cmd.debug\n      so.buy_pct = cmd.pct\n      so.selector = objectifySelector(selector || conf.selector)\n      var order_types = ['maker', 'taker']\n      if (!order_types.includes(so.order_type)) {\n        so.order_type = 'maker'\n      }\n      so.mode = 'live'\n      so.strategy = conf.strategy\n      so.stats = true\n      var engine = engineFactory(s, conf)\n      engine.executeSignal('buy', function (err, order) {\n        if (err) {\n          console.error(err)\n          process.exit(1)\n        }\n        if (!order) {\n          console.error('not enough currency balance to buy!')\n        }\n        process.exit()\n      }, cmd.size)\n      function checkOrder () {\n        if (!_.isEmpty(s.api_order)) {\n          s.exchange.getQuote({product_id: s.product_id}, function (err, quote) {\n            if (err) {\n              throw err\n            }\n            console.log('order status: '.grey + s.api_order.status.green + ', bid: '.grey + n(s.api_order.price).format('0.00000000').yellow + ', '.grey + n(quote.bid).subtract(s.api_order.price).format('0.00000000').red + ' below best bid, '.grey + n(s.api_order.filled_size).divide(s.api_order.size).format('0.0%').green + ' filled'.grey)\n          })\n        }\n        else {\n          console.log('placing order...')\n        }\n      }\n      setInterval(checkOrder, conf.order_poll_time)\n    })\n}\n\n"
  },
  {
    "path": "commands/list-selectors.js",
    "content": "// eslint-disable-next-line no-unused-vars\nvar colors = require('colors'),\n  fs = require('fs')\n\nmodule.exports = function (program) {\n  program\n    .command('list-selectors')\n    .description('list available selectors')\n    .action(function (/*cmd*/) {\n      var exchanges = fs.readdirSync('./extensions/exchanges')\n      exchanges.forEach(function(exchange){\n        if (exchange === 'sim' || exchange === '_stub') return\n\n        console.log(`${exchange}:`)\n        var products = require(`../extensions/exchanges/${exchange}/products.json`)\n        products.sort(function (a, b) {\n          if (a.asset < b.asset) return -1\n          if (a.asset > b.asset) return 1\n          if (a.currency < b.currency) return -1\n          if (a.currency > b.currency) return 1\n          return 0\n        })\n        products.forEach(function (p) {\n          console.log('  ' + exchange.cyan + '.'.grey + p.asset.green + '-'.grey + p.currency.cyan + (p.label ? ('   (' + p.label + ')').grey : ''))\n        })\n      })\n      process.exit()\n    })\n}\n"
  },
  {
    "path": "commands/list-strategies.js",
    "content": "var fs = require('fs'),\n  // eslint-disable-next-line no-unused-vars\n  colors = require('colors')\n\nmodule.exports = function (program, conf) {\n  program\n    .command('list-strategies')\n    .description('list available strategies')\n    .action(function (/*cmd*/) {\n      var strategies = fs.readdirSync('./extensions/strategies')\n      strategies.forEach((strategy) => {\n        let strat = require(`../extensions/strategies/${strategy}/strategy`)\n        console.log(strat.name.cyan + (strat.name === conf.strategy ? ' (default)'.grey : ''))\n        if (strat.description) {\n          console.log('  description:'.grey)\n          console.log('    ' + strat.description.grey)\n        }\n        console.log('  options:'.grey)\n        var ctx = {\n          option: function (name, desc, type, def) {\n            console.log(('    --' + name).green + '=<value>'.grey + '  ' + desc.grey + (typeof def !== 'undefined' ? (' (default: '.grey + def + ')'.grey) : ''))\n          }\n        }\n        strat.getOptions.call(ctx, strat)\n        console.log()\n      })\n      process.exit()\n    })\n}\n"
  },
  {
    "path": "commands/new_backfill.js",
    "content": "var minimist = require('minimist')\n  , tb = require('timebucket')\n  , exchangeService = require('../lib/services/exchange-service')\n  , objectifySelector = require('../lib/objectify-selector')\n  , backfillFunction = require('./backfill/backfill.function')\n\nmodule.exports = function(program, conf) {\n  program\n    .command('new_backfill [selector]')\n    .description('download historical trades for analysis')\n    .option('-d, --days <days>', 'number of days to acquire (default: ' + conf.days + ')', Number, conf.days)\n    .action(function (selector, cmd) {\n      var s = {options: minimist(process.argv)}\n      var so = s.options\n      delete so._\n      Object.keys(conf).forEach(function (k) {\n        if (typeof cmd[k] !== 'undefined') {\n          so[k] = cmd[k]\n        }\n      })\n\n      conf.selector = objectifySelector(selector || conf.selector)\n\n      var exchangeServiceInstance = exchangeService(conf)\n      var exchange = exchangeServiceInstance.getExchange()\n      var exchangeName = exchange.name // TODO: Refactor all exchanges to be in the format of the stub.exchange, so we can use getName() here.\n\n      if (exchange === undefined) {\n        console.error('\\nSorry, couldn\\'t find an exchange named [' + exchangeName + '].')\n        process.exit(1) \n      }\n\n      if (!exchange.historyScan) {\n        console.error('\\ncannot backfill ' + exchangeName + ': exchange does not offer historical data')\n        process.exit(1)\n      }\n\n      if (exchange !== undefined) {\n        var msg = 'Hitting up the exchange \\'' + exchangeName + '\\' for trades within the past ' + so.days + ' day'; if (so.days > 1) {msg += 's.'} else {msg += '.'}\n\n        console.log('*************************')\n        console.log(msg)\n        console.log('*************************')\n        console.log('\\n\\nBackfilling...\\n\\n')\n\n        var targetTime = tb(new Date().getTime()).resize('1d').subtract(so.days).toMilliseconds()\n        var backfillFunctionInstance = backfillFunction(conf)\n        backfillFunctionInstance(targetTime).then(\n          (finalTradeId) => { \n            process.stdout.write('\\n\\n')\n            // TODO: Make this say: \"Done. Last processed trade happened on January 37, 2018 10:02 \n            //  will have to call the DB, get the trade finalTradeId, and display its time.\n            console.log('final trade id ==> [' + JSON.stringify(finalTradeId) + ']')\n            process.exit(0)\n          },\n          (err) => { \n            console.log('error. ' + err)\n          }\n        )\n      }\n    })\n}\n"
  },
  {
    "path": "commands/sell.js",
    "content": "var minimist = require('minimist')\n  , n = require('numbro')\n  // eslint-disable-next-line no-unused-vars\n  , colors = require('colors')\n  , objectifySelector = require('../lib/objectify-selector')\n  , engineFactory = require('../lib/engine')\n\nmodule.exports = function (program, conf) {\n  program\n    .command('sell [selector]')\n    .allowUnknownOption()\n    .description('execute a sell order to the exchange')\n    .option('--pct <pct>', 'sell with this % of currency balance', Number, conf.sell_pct)\n    .option('--order_type <type>', 'order type to use (maker/taker)', /^(maker|taker)$/i, conf.order_type)\n    .option('--size <size>', 'sell specific size of currency')\n    .option('--markup_sell_pct <pct>', '% to mark up sell price', Number, conf.markup_sell_pct)\n    .option('--order_adjust_time <ms>', 'adjust ask on this interval to keep order competitive', Number, conf.order_adjust_time)\n    .option('--order_poll_time <ms>', 'poll order status on this interval', Number, conf.order_poll_time)\n    .option('--max_slippage_pct <pct>', 'avoid selling at a slippage pct above this float', conf.max_slippage_pct)\n    .option('--debug', 'output detailed debug info')\n    .action(function (selector, cmd) {\n      var s = {options: minimist(process.argv)}\n      var so = s.options\n      delete so._\n      Object.keys(conf).forEach(function (k) {\n        if (typeof cmd[k] !== 'undefined') {\n          so[k] = cmd[k]\n        }\n      })\n      so.debug = cmd.debug\n      so.sell_pct = cmd.pct\n      so.selector = objectifySelector(selector || conf.selector)\n      var order_types = ['maker', 'taker']\n      if (!order_types.includes(so.order_type)) {\n        so.order_type = 'maker'\n      }\n      so.mode = 'live'\n      so.strategy = conf.strategy\n      so.stats = true\n      var engine = engineFactory(s, conf)\n      engine.executeSignal('sell', function (err, order) {\n        if (err) {\n          console.error(err)\n          process.exit(1)\n        }\n        if (!order) {\n          console.error('not enough asset balance to sell!')\n        }\n        process.exit()\n      }, cmd.size)\n      function checkOrder () {\n        if (s.api_order) {\n          s.exchange.getQuote({product_id: s.product_id}, function (err, quote) {\n            if (err) {\n              throw err\n            }\n            console.log('order status: '.grey + s.api_order.status.green + ', ask: '.grey + n(s.api_order.price).format('0.00000000').yellow + ', '.grey + n(s.api_order.price).subtract(quote.ask).format('0.00000000').red + ' above best ask, '.grey + n(s.api_order.filled_size).divide(s.api_order.size).format('0.0%').green + ' filled'.grey)\n          })\n        }\n        else {\n          console.log('placing order...')\n        }\n      }\n      setInterval(checkOrder, conf.order_poll_time)\n    })\n}\n\n"
  },
  {
    "path": "commands/sim.js",
    "content": "var tb = require('timebucket')\n  , minimist = require('minimist')\n  , n = require('numbro')\n  , fs = require('fs')\n  , path = require('path')\n  , moment = require('moment')\n  , colors = require('colors')\n  , objectifySelector = require('../lib/objectify-selector')\n  , engineFactory = require('../lib/engine')\n  , collectionService = require('../lib/services/collection-service')\n  , jsonexport = require('jsonexport')\n  , _ = require('lodash')\n\nmodule.exports = function (program, conf) {\n  program\n    .command('sim [selector]')\n    .allowUnknownOption()\n    .description('run a simulation on backfilled data')\n    .option('--conf <path>', 'path to optional conf overrides file')\n    .option('--strategy <name>', 'strategy to use', String, conf.strategy)\n    .option('--order_type <type>', 'order type to use (maker/taker)', /^(maker|taker)$/i, conf.order_type)\n    .option('--reverse', 'use this and all your signals(buy/sell) will be switch! TAKE CARE!', Boolean, false)\n    .option('--filename <filename>', 'filename for the result output (ex: result.html). \"none\" to disable', String, conf.filename)\n    .option('--start <datetime>', 'start (\"YYYYMMDDhhmm\")')\n    .option('--end <datetime>', 'end (\"YYYYMMDDhhmm\")')\n    .option('--days <days>', 'set duration by day count', Number, conf.days)\n    .option('--currency_capital <amount>', 'amount of start capital in currency', Number, conf.currency_capital)\n    .option('--asset_capital <amount>', 'amount of start capital in asset', Number, conf.asset_capital)\n    .option('--avg_slippage_pct <pct>', 'avg. amount of slippage to apply to trades', Number, conf.avg_slippage_pct)\n    .option('--buy_pct <pct>', 'buy with this % of currency balance', Number, conf.buy_pct)\n    .option('--sell_pct <pct>', 'sell with this % of asset balance', Number, conf.sell_pct)\n    .option('--markdown_buy_pct <pct>', '% to mark down buy price', Number, conf.markdown_buy_pct)\n    .option('--markup_sell_pct <pct>', '% to mark up sell price', Number, conf.markup_sell_pct)\n    .option('--order_adjust_time <ms>', 'adjust bid/ask on this interval to keep orders competitive', Number, conf.order_adjust_time)\n    .option('--order_poll_time <ms>', 'poll order status on this interval', Number, conf.order_poll_time)\n    .option('--sell_cancel_pct <pct>', 'cancels the sale if the price is between this percentage (for more or less)', Number, conf.sell_cancel_pct)\n    .option('--sell_stop_pct <pct>', 'sell if price drops below this % of bought price', Number, conf.sell_stop_pct)\n    .option('--buy_stop_pct <pct>', 'buy if price surges above this % of sold price', Number, conf.buy_stop_pct)\n    .option('--profit_stop_enable_pct <pct>', 'enable trailing sell stop when reaching this % profit', Number, conf.profit_stop_enable_pct)\n    .option('--profit_stop_pct <pct>', 'maintain a trailing stop this % below the high-water mark of profit', Number, conf.profit_stop_pct)\n    .option('--max_sell_loss_pct <pct>', 'avoid selling at a loss pct under this float', conf.max_sell_loss_pct)\n    .option('--max_buy_loss_pct <pct>', 'avoid buying at a loss pct over this float', conf.max_buy_loss_pct)\n    .option('--max_slippage_pct <pct>', 'avoid selling at a slippage pct above this float', conf.max_slippage_pct)\n    .option('--symmetrical', 'reverse time at the end of the graph, normalizing buy/hold to 0', conf.symmetrical)\n    .option('--rsi_periods <periods>', 'number of periods to calculate RSI at', Number, conf.rsi_periods)\n    .option('--exact_buy_orders', 'instead of only adjusting maker buy when the price goes up, adjust it if price has changed at all')\n    .option('--exact_sell_orders', 'instead of only adjusting maker sell when the price goes down, adjust it if price has changed at all')\n    .option('--disable_options', 'disable printing of options')\n    .option('--quarentine_time <minutes>', 'For loss trade, set quarentine time for cancel buys', Number, conf.quarentine_time)\n    .option('--enable_stats', 'enable printing order stats')\n    .option('--backtester_generation <generation>','creates a json file in simulations with the generation number', Number, -1)\n    .option('--verbose', 'print status lines on every period')\n    .option('--silent', 'only output on completion (can speed up sim)')\n    .action(function (selector, cmd) {\n      var s = { options: minimist(process.argv) }\n      var so = s.options\n      if (!so.quarentine_time) {\n        so.quarentine_time = 0\n      }\n\n      delete so._\n      if (cmd.conf) {\n        var overrides = require(path.resolve(process.cwd(), cmd.conf))\n        Object.keys(overrides).forEach(function (k) {\n          so[k] = overrides[k]\n        })\n      }\n      Object.keys(conf).forEach(function (k) {\n        if (!_.isUndefined(cmd[k])) {\n          so[k] = cmd[k]\n        }\n      })\n      var tradesCollection = collectionService(conf).getTrades()\n      var simResults = collectionService(conf).getSimResults()\n\n      var eventBus = conf.eventBus\n\n      if (so.start) {\n        so.start = moment(so.start, 'YYYYMMDDhhmm').valueOf()\n        if (so.days && !so.end) {\n          so.end = tb(so.start).resize('1d').add(so.days).toMilliseconds()\n        }\n      }\n      if (so.end) {\n        so.end = moment(so.end, 'YYYYMMDDhhmm').valueOf()\n        if (so.days && !so.start) {\n          so.start = tb(so.end).resize('1d').subtract(so.days).toMilliseconds()\n        }\n      }\n      if (!so.start && so.days) {\n        var d = tb('1d')\n        so.start = d.subtract(so.days).toMilliseconds()\n      }\n\n      so.days = moment(so.end).diff(moment(so.start), 'days')\n\n      so.stats = !!cmd.enable_stats\n      so.show_options = !cmd.disable_options\n      so.verbose = !!cmd.verbose\n      so.selector = objectifySelector(selector || conf.selector)\n      so.mode = 'sim'\n\n      var engine = engineFactory(s, conf)\n      if (!so.min_periods) so.min_periods = 1\n      var cursor, reversing, reverse_point\n      var query_start = so.start ? tb(so.start).resize(so.period_length).subtract(so.min_periods + 2).toMilliseconds() : null\n\n      function exitSim () {\n        console.log()\n        if (!s.period) {\n          console.error('no trades found! try running `zenbot backfill ' + so.selector.normalized + '` first')\n          process.exit(1)\n        }\n        var option_keys = Object.keys(so)\n        var output_lines = []\n        option_keys.sort(function (a, b) {\n          if (a < b) return -1\n          return 1\n        })\n        var options = {}\n        option_keys.forEach(function (k) {\n          options[k] = so[k]\n        })\n\n        let options_output = options\n        options_output.simresults = {}\n\n        if (s.my_trades.length) {\n          s.my_trades.push({\n            price: s.period.close,\n            size: s.balance.asset,\n            type: 'sell',\n            time: s.period.time\n          })\n        }\n        s.balance.currency = n(s.net_currency).add(n(s.period.close).multiply(s.balance.asset)).format('0.00000000')\n\n        s.balance.asset = 0\n        s.lookback.unshift(s.period)\n        var profit = s.start_capital ? n(s.balance.currency).subtract(s.start_capital).divide(s.start_capital) : n(0)\n        output_lines.push('end balance: ' + n(s.balance.currency).format('0.00000000').yellow + ' (' + profit.format('0.00%') + ')')\n        //console.log('start_capital', s.start_capital)\n        //console.log('start_price', n(s.start_price).format('0.00000000'))\n        //console.log('close', n(s.period.close).format('0.00000000'))\n        var buy_hold = s.start_price ? n(s.period.close).multiply(n(s.start_capital).divide(s.start_price)) : n(s.balance.currency)\n        //console.log('buy hold', buy_hold.format('0.00000000'))\n        var buy_hold_profit = s.start_capital ? n(buy_hold).subtract(s.start_capital).divide(s.start_capital) : n(0)\n        output_lines.push('buy hold: ' + buy_hold.format('0.00000000').yellow + ' (' + n(buy_hold_profit).format('0.00%') + ')')\n        output_lines.push('vs. buy hold: ' + n(s.balance.currency).subtract(buy_hold).divide(buy_hold).format('0.00%').yellow)\n        output_lines.push(s.my_trades.length + ' trades over ' + s.day_count + ' days (avg ' + n(s.my_trades.length / s.day_count).format('0.00') + ' trades/day)')\n        var last_buy\n        var losses = 0, sells = 0\n        s.my_trades.forEach(function (trade) {\n          if (trade.type === 'buy') {\n            last_buy = trade.price\n          }\n          else {\n            if (last_buy && trade.price < last_buy) {\n              losses++\n            }\n            sells++\n          }\n        })\n        if (s.my_trades.length) {\n          output_lines.push('win/loss: ' + (sells - losses) + '/' + losses)\n          output_lines.push('error rate: ' + (sells ? n(losses).divide(sells).format('0.00%') : '0.00%').yellow)\n        }\n        options_output.simresults.start_capital = s.start_capital\n        options_output.simresults.last_buy_price = s.last_buy_price\n        options_output.simresults.last_assest_value = s.period.close\n        options_output.net_currency = s.net_currency\n        options_output.simresults.asset_capital = s.asset_capital\n        options_output.simresults.currency = n(s.balance.currency).value()\n        options_output.simresults.profit = profit.value()\n        options_output.simresults.buy_hold = buy_hold.value()\n        options_output.simresults.buy_hold_profit = buy_hold_profit.value()\n        options_output.simresults.total_trades = s.my_trades.length\n        options_output.simresults.length_days = s.day_count\n        options_output.simresults.total_sells = sells\n        options_output.simresults.total_losses = losses\n        options_output.simresults.vs_buy_hold = n(s.balance.currency).subtract(buy_hold).divide(buy_hold).value() * 100.00\n\n        let options_json = JSON.stringify(options_output, null, 2)\n        if (so.show_options) {\n          output_lines.push(options_json)\n        }\n\n        output_lines.forEach(function (line) {\n          console.log(line)\n        })\n\n        if (so.backtester_generation >= 0)\n        {\n          var file_name = so.strategy.replace('_','')+'_'+ so.selector.normalized.replace('_','').toLowerCase()+'_'+so.backtester_generation\n          fs.writeFileSync(path.resolve(__dirname, '..', 'simulations','sim_'+file_name+'.json'),options_json, {encoding: 'utf8'})\n          var trades_json = JSON.stringify(s.my_trades, null, 2)\n          fs.writeFileSync(path.resolve(__dirname, '..', 'simulations','sim_trades_'+file_name+'.json'),trades_json, {encoding: 'utf8'})\n          jsonexport(s.my_trades,function(err, csv){\n            if(err) return console.log(err)\n            fs.writeFileSync(path.resolve(__dirname, '..', 'simulations','sim_trades_'+file_name+'.csv'),csv, {encoding: 'utf8'})\n          })\n        }\n\n        if (so.filename !== 'none') {\n          var html_output = output_lines.map(function (line) {\n            return colors.stripColors(line)\n          }).join('\\n')\n          var data = s.lookback.slice(0, s.lookback.length - so.min_periods).map(function (period) {\n            var data = {}\n            var keys = Object.keys(period)\n            for(var i = 0;i < keys.length;i++){\n              data[keys[i]] = period[keys[i]]\n            }\n            return data\n          })\n          var code = 'var data = ' + JSON.stringify(data) + ';\\n'\n          code += 'var trades = ' + JSON.stringify(s.my_trades) + ';\\n'\n          var tpl = fs.readFileSync(path.resolve(__dirname, '..', 'templates', 'sim_result.html.tpl'), {encoding: 'utf8'})\n          var out = tpl\n            .replace('{{code}}', code)\n            .replace('{{trend_ema_period}}', so.trend_ema || 36)\n            .replace('{{output}}', html_output)\n            .replace(/\\{\\{symbol\\}\\}/g,  so.selector.normalized + ' - zenbot ' + require('../package.json').version)\n          var out_target = so.filename || 'simulations/sim_result_' + so.selector.normalized +'_' + new Date().toISOString().replace(/T/, '_').replace(/\\..+/, '').replace(/-/g, '').replace(/:/g, '').replace(/20/, '') + '_UTC.html'\n          fs.writeFileSync(out_target, out)\n          console.log('wrote', out_target)\n        }\n\n        simResults.insertOne(options_output)\n          .then(() => {\n            process.exit(0)\n          })\n          .catch((err) => {\n            console.error(err)\n            process.exit(0)\n          })\n      }\n\n      var getNext = async () => {\n        var opts = {\n          query: {\n            selector: so.selector.normalized\n          },\n          sort: { time: 1 },\n          limit: 100,\n          timeout: false\n        }\n        if (so.end) {\n          opts.query.time = { $lte: so.end }\n        }\n        if (cursor) {\n          if (reversing) {\n            opts.query.time = {}\n            opts.query.time['$lt'] = cursor\n            if (query_start) {\n              opts.query.time['$gte'] = query_start\n            }\n            opts.sort = { time: -1 }\n          } else {\n            if (!opts.query.time) opts.query.time = {}\n            opts.query.time['$gt'] = cursor\n          }\n        } else if (query_start) {\n          if (!opts.query.time) opts.query.time = {}\n          opts.query.time['$gte'] = query_start\n        }\n        var collectionCursor = tradesCollection\n          .find(opts.query)\n          .sort(opts.sort)\n          .limit(opts.limit)\n\n        var totalTrades = await collectionCursor.count(true)\n        const collectionCursorStream = collectionCursor.stream()\n\n        var numTrades = 0\n        var lastTrade\n\n        var onCollectionCursorEnd = () => {\n          if (numTrades === 0) {\n            if (so.symmetrical && !reversing) {\n              reversing = true\n              reverse_point = cursor\n              return getNext()\n            }\n            engine.exit(exitSim)\n            return\n          } else {\n            if (reversing) {\n              cursor = lastTrade.orig_time\n            } else {\n              cursor = lastTrade.time\n            }\n          }\n          collectionCursorStream.close()\n          return getNext()\n        }\n\n        if(totalTrades === 0) {\n          onCollectionCursorEnd()\n        }\n\n        collectionCursorStream.on('data', function(trade) {\n          lastTrade = trade\n          numTrades++\n          if (so.symmetrical && reversing) {\n            trade.orig_time = trade.time\n            trade.time = reverse_point + (reverse_point - trade.time)\n          }\n          eventBus.emit('trade', trade)\n\n          if (numTrades && totalTrades && totalTrades == numTrades) {\n            onCollectionCursorEnd()\n          }\n        })\n      }\n\n      return getNext()\n    })\n}\n"
  },
  {
    "path": "commands/trade.js",
    "content": "var tb = require('timebucket')\n  , minimist = require('minimist')\n  , n = require('numbro')\n  , fs = require('fs')\n  , path = require('path')\n  , spawn = require('child_process').spawn\n  , moment = require('moment')\n  , crypto = require('crypto')\n  , readline = require('readline')\n  , colors = require('colors')\n  , z = require('zero-fill')\n  , cliff = require('cliff')\n  , output = require('../lib/output')\n  , objectifySelector = require('../lib/objectify-selector')\n  , engineFactory = require('../lib/engine')\n  , collectionService = require('../lib/services/collection-service')\n  , debug = require('../lib/debug')\n\nmodule.exports = function (program, conf) {\n  program\n    .command('trade [selector]')\n    .allowUnknownOption()\n    .description('run trading bot against live market data')\n    .option('--conf <path>', 'path to optional conf overrides file')\n    .option('--strategy <name>', 'strategy to use', String, conf.strategy)\n    .option('--order_type <type>', 'order type to use (maker/taker)', /^(maker|taker)$/i, conf.order_type)\n    .option('--paper', 'use paper trading mode (no real trades will take place)', Boolean, false)\n    .option('--manual', 'watch price and account balance, but do not perform trades automatically', Boolean, false)\n    .option('--reverse', 'use this and all your signals(buy/sell) will be switch! TAKE CARE!', Boolean, false)\n    .option('--non_interactive', 'disable keyboard inputs to the bot', Boolean, false)\n    .option('--filename <filename>', 'filename for the result output (ex: result.html). \"none\" to disable', String, conf.filename)\n    .option('--currency_capital <amount>', 'for paper trading, amount of start capital in currency', Number, conf.currency_capital)\n    .option('--asset_capital <amount>', 'for paper trading, amount of start capital in asset', Number, conf.asset_capital)\n    .option('--avg_slippage_pct <pct>', 'avg. amount of slippage to apply to paper trades', Number, conf.avg_slippage_pct)\n    .option('--buy_pct <pct>', 'buy with this % of currency balance', Number, conf.buy_pct)\n    .option('--deposit <amt>', 'absolute initial capital (in currency) at the bots disposal (previously --buy_max_amt)', Number, conf.deposit)\n    .option('--sell_pct <pct>', 'sell with this % of asset balance', Number, conf.sell_pct)\n    .option('--markdown_buy_pct <pct>', '% to mark down buy price', Number, conf.markdown_buy_pct)\n    .option('--markup_sell_pct <pct>', '% to mark up sell price', Number, conf.markup_sell_pct)\n    .option('--order_adjust_time <ms>', 'adjust bid/ask on this interval to keep orders competitive', Number, conf.order_adjust_time)\n    .option('--order_poll_time <ms>', 'poll order status on this interval', Number, conf.order_poll_time)\n    .option('--sell_stop_pct <pct>', 'sell if price drops below this % of bought price', Number, conf.sell_stop_pct)\n    .option('--buy_stop_pct <pct>', 'buy if price surges above this % of sold price', Number, conf.buy_stop_pct)\n    .option('--profit_stop_enable_pct <pct>', 'enable trailing sell stop when reaching this % profit', Number, conf.profit_stop_enable_pct)\n    .option('--profit_stop_pct <pct>', 'maintain a trailing stop this % below the high-water mark of profit', Number, conf.profit_stop_pct)\n    .option('--sell_cancel_pct <pct>', 'cancels the sale if the price is between this percentage (for more or less)', Number, conf.sell_cancel_pct)\n    .option('--max_sell_loss_pct <pct>', 'avoid selling at a loss pct under this float', conf.max_sell_loss_pct)\n    .option('--max_buy_loss_pct <pct>', 'avoid buying at a loss pct over this float', conf.max_buy_loss_pct)\n    .option('--max_slippage_pct <pct>', 'avoid selling at a slippage pct above this float', conf.max_slippage_pct)\n    .option('--rsi_periods <periods>', 'number of periods to calculate RSI at', Number, conf.rsi_periods)\n    .option('--poll_trades <ms>', 'poll new trades at this interval in ms', Number, conf.poll_trades)\n    .option('--currency_increment <amount>', 'Currency increment, if different than the asset increment', String, null)\n    .option('--keep_lookback_periods <amount>', 'Keep this many lookback periods max. ', Number, conf.keep_lookback_periods)\n    .option('--exact_buy_orders', 'instead of only adjusting maker buy when the price goes up, adjust it if price has changed at all')\n    .option('--exact_sell_orders', 'instead of only adjusting maker sell when the price goes down, adjust it if price has changed at all')\n    .option('--use_prev_trades', 'load and use previous trades for stop-order triggers and loss protection')\n    .option('--min_prev_trades <number>', 'minimum number of previous trades to load if use_prev_trades is enabled, set to 0 to disable and use trade time instead', Number, conf.min_prev_trades)\n    .option('--disable_stats', 'disable printing order stats')\n    .option('--reset_profit', 'start new profit calculation from 0')\n    .option('--use_fee_asset', 'Using separated asset to pay for fees. Such as binance\\'s BNB or Huobi\\'s HT', Boolean, false)\n    .option('--run_for <minutes>', 'Execute for a period of minutes then exit with status 0', String, null)\n    .option('--interval_trade <minutes>', 'The interval trade time', Number, conf.interval_trade)\n    .option('--quarentine_time <minutes>', 'For loss trade, set quarentine time for cancel buys', Number, conf.quarentine_time)\n    .option('--debug', 'output detailed debug info')\n    .action(function (selector, cmd) {\n      var raw_opts = minimist(process.argv)\n      var s = {options: JSON.parse(JSON.stringify(raw_opts))}\n      var so = s.options\n      if (so.run_for) {\n        var botStartTime = moment().add(so.run_for, 'm')\n      }\n      if (!so.interval_trade) {\n        so.interval_trade = 10\n      }\n      if (!so.quarentine_time) {\n        so.quarentine_time = 0\n      }\n      delete so._\n      if (cmd.conf) {\n        var overrides = require(path.resolve(process.cwd(), cmd.conf))\n        Object.keys(overrides).forEach(function (k) {\n          so[k] = overrides[k]\n        })\n      }\n      Object.keys(conf).forEach(function (k) {\n        if (typeof cmd[k] !== 'undefined') {\n          so[k] = cmd[k]\n        }\n      })\n      so.currency_increment = cmd.currency_increment\n      so.keep_lookback_periods = cmd.keep_lookback_periods\n      so.use_prev_trades = (cmd.use_prev_trades||conf.use_prev_trades)\n      so.min_prev_trades = cmd.min_prev_trades\n      so.debug = cmd.debug\n      so.stats = !cmd.disable_stats\n      so.mode = so.paper ? 'paper' : 'live'\n      if (so.buy_max_amt) {\n        console.log(('--buy_max_amt is deprecated, use --deposit instead!\\n').red)\n        so.deposit = so.buy_max_amt\n      }\n      so.selector = objectifySelector(selector || conf.selector)\n      var engine = engineFactory(s, conf)\n      var collectionServiceInstance = collectionService(conf)\n      if (!so.min_periods) so.min_periods = 1\n\n      const keyMap = new Map()\n      keyMap.set('b', 'limit'.grey + ' BUY'.green)\n      keyMap.set('B', 'market'.grey + ' BUY'.green)\n      keyMap.set('s', 'limit'.grey + ' SELL'.red)\n      keyMap.set('S', 'market'.grey + ' SELL'.red)\n      keyMap.set('c', 'cancel order'.grey)\n      keyMap.set('m', 'toggle MANUAL trade in LIVE mode ON / OFF'.grey)\n      keyMap.set('T', 'switch to \\'Taker\\' order type'.grey)\n      keyMap.set('M', 'switch to \\'Maker\\' order type'.grey)\n      keyMap.set('o', 'show current trade options'.grey)\n      keyMap.set('O', 'show current trade options in a dirty view (full list)'.grey)\n      keyMap.set('L', 'toggle DEBUG'.grey)\n      keyMap.set('P', 'print statistical output'.grey)\n      keyMap.set('X', 'exit program with statistical output'.grey)\n      keyMap.set('d', 'dump statistical output to HTML file'.grey)\n      keyMap.set('D', 'toggle automatic HTML dump to file'.grey)\n\n      var pushStr = ''\n\n      function listKeys() {\n        printLog('Available command keys:', true)\n        keyMap.forEach((value, key) => {\n          printLog(' ' + key + ' - ' + value)\n        })\n      }\n\n      function listOptions () {\n        printLog(s.exchange.name.toUpperCase() + ' exchange active trading options:'.grey, true)\n        printLog(z(22, 'STRATEGY'.grey, ' ') + '\\t' + so.strategy + '\\t' + (require(`../extensions/strategies/${so.strategy}/strategy`).description).grey, true)\n        printLog([\n          z(24, (so.mode === 'paper' ? so.mode.toUpperCase() : so.mode.toUpperCase()) + ' MODE'.grey, ' '),\n          z(26, 'PERIOD'.grey, ' '),\n          z(30, 'ORDER TYPE'.grey, ' '),\n          z(28, 'SLIPPAGE'.grey, ' '),\n          z(33, 'EXCHANGE FEES'.grey, ' ')\n        ].join(''), true)\n        printLog([\n          z(15, (so.mode === 'paper' ? '      ' : (so.mode === 'live' && (so.manual === false || typeof so.manual === 'undefined')) ? '       ' + 'AUTO'.black.bgRed + '    ' : '       ' + 'MANUAL'.black.bgGreen + '  '), ' '),\n          z(13, so.period_length, ' '),\n          z(29, (so.order_type === 'maker' ? so.order_type.toUpperCase().green : so.order_type.toUpperCase().red), ' '),\n          z(31, (so.mode === 'paper' ? 'avg. '.grey + so.avg_slippage_pct + '%' : 'max '.grey + so.max_slippage_pct + '%'), ' '),\n          z(20, (so.order_type === 'maker' ? so.order_type + ' ' + s.exchange.makerFee : so.order_type + ' ' + s.exchange.takerFee), ' ')\n        ].join(''))\n        printLog([\n          z(19, 'BUY %'.grey, ' '),\n          z(20, 'SELL %'.grey, ' '),\n          z(35, 'TRAILING STOP %'.grey, ' '),\n          z(33, 'TRAILING DISTANCE %'.grey, ' ')\n        ].join(''))\n        printLog([\n          z(9, so.buy_pct + '%', ' '),\n          z(9, so.sell_pct + '%', ' '),\n          z(20, so.profit_stop_enable_pct + '%', ' '),\n          z(20, so.profit_stop_pct + '%', ' ')\n        ].join(''))\n      }\n\n      /* Implementing statistical Exit */\n      function printTrade (quit, dump, statsonly = false) {\n        var tmp_balance = n(s.balance.currency).add(n(s.period.close).multiply(s.balance.asset)).format('0.00000000')\n        if (quit) {\n          if (s.my_trades.length) {\n            s.my_trades.push({\n              price: s.period.close,\n              size: s.balance.asset,\n              type: 'sell',\n              time: s.period.time\n            })\n          }\n          s.balance.currency = tmp_balance\n          s.balance.asset = 0\n          s.lookback.unshift(s.period)\n        }\n        var profit = s.start_capital ? n(tmp_balance).subtract(s.start_capital).divide(s.start_capital) : n(0)\n        var buy_hold = s.start_price ? n(s.period.close).multiply(n(s.start_capital).divide(s.start_price)) : n(tmp_balance)\n        var buy_hold_profit = s.start_capital ? n(buy_hold).subtract(s.start_capital).divide(s.start_capital) : n(0)\n        if (!statsonly) {\n          console.log()\n          var output_lines = []\n          output_lines.push('Strategy: ' + so.strategy)\n          output_lines.push('Last balance: ' + n(tmp_balance).format('0.00000000').yellow + ' (' + profit.format('0.00%') + ')')\n          output_lines.push('Buy hold: ' + buy_hold.format('0.00000000').yellow + ' (' + n(buy_hold_profit).format('0.00%') + ')')\n          output_lines.push('vs. Buy hold: ' + n(tmp_balance).subtract(buy_hold).divide(buy_hold).format('0.00%').yellow)\n          output_lines.push(s.my_trades.length + ' trades over ' + s.day_count + ' days (avg ' + n(s.my_trades.length / s.day_count).format('0.00') + ' trades/day)')\n        }\n        // Build stats for UI\n        s.stats = {\n          profit: profit.format('0.00%'),\n          tmp_balance: n(tmp_balance).format('0.00000000'),\n          buy_hold: buy_hold.format('0.00000000'),\n          buy_hold_profit: n(buy_hold_profit).format('0.00%'),\n          day_count: s.day_count,\n          trade_per_day: n(s.my_trades.length / s.day_count).format('0.00')\n        }\n\n        var last_buy\n        var losses = 0, sells = 0\n        s.my_trades.forEach(function (trade) {\n          if (trade.type === 'buy') {\n            last_buy = trade.price\n          }\n          else {\n            if (last_buy && trade.price < last_buy) {\n              losses++\n            }\n            sells++\n          }\n        })\n        if (s.my_trades.length && sells > 0) {\n          if (!statsonly) {\n            output_lines.push('Win/Loss: ' + (sells - losses) + '/' + losses)\n            output_lines.push('Error rate: ' + (sells ? n(losses).divide(sells).format('0.00%') : '0.00%').yellow)\n          }\n\n          //for API\n          s.stats.win = (sells - losses)\n          s.stats.losses = losses\n          s.stats.error_rate = (sells ? n(losses).divide(sells).format('0.00%') : '0.00%')\n        }\n        if (!statsonly) {\n          output_lines.forEach(function (line) {\n            printLog(line)\n          })\n        }\n        if (quit || dump) {\n          var html_output = output_lines.map(function (line) {\n            return colors.stripColors(line)\n          }).join('\\n')\n          var data = s.lookback.slice(0, s.lookback.length - so.min_periods).map(function (period) {\n            var data = {}\n            var keys = Object.keys(period)\n            for(var i = 0; i < keys.length; i++){\n              data[keys[i]] = period[keys[i]]\n            }\n            return data\n          })\n          var code = 'var data = ' + JSON.stringify(data) + ';\\n'\n          code += 'var trades = ' + JSON.stringify(s.my_trades) + ';\\n'\n          var tpl = fs.readFileSync(path.resolve(__dirname, '..', 'templates', 'sim_result.html.tpl'), {encoding: 'utf8'})\n          var out = tpl\n            .replace('{{code}}', code)\n            .replace('{{trend_ema_period}}', so.trend_ema || 36)\n            .replace('{{output}}', html_output)\n            .replace(/\\{\\{symbol\\}\\}/g,  so.selector.normalized + ' - zenbot ' + require('../package.json').version)\n          if (so.filename !== 'none') {\n            var out_target\n            var out_target_prefix = so.paper ? 'simulations/paper_result_' : 'stats/trade_result_'\n            if(dump){\n              var dt = new Date().toISOString()\n\n              //ymd\n              var today = dt.slice(2, 4) + dt.slice(5, 7) + dt.slice(8, 10)\n              out_target = so.filename || out_target_prefix + so.selector.normalized +'_' + today + '_UTC.html'\n              fs.writeFileSync(out_target, out)\n            }else\n              out_target = so.filename || out_target_prefix + so.selector.normalized +'_' + new Date().toISOString().replace(/T/, '_').replace(/\\..+/, '').replace(/-/g, '').replace(/:/g, '').replace(/20/, '') + '_UTC.html'\n\n            fs.writeFileSync(out_target, out)\n            console.log('\\nwrote'.grey, out_target)\n          }\n          if(quit) process.exit(0)\n        }\n      }\n      /* The end of printTrade */\n\n      /* Implementing statistical status dump every 10 secs */\n      var shouldSaveStats = false\n      function toggleStats(){\n        shouldSaveStats = !shouldSaveStats\n        if(shouldSaveStats)\n          printLog('Auto stats dump enabled')\n        else\n          printLog('Auto stats dump disabled')\n      }\n\n      function saveStatsLoop(){\n        saveStats()\n        setTimeout(function () {\n          saveStatsLoop()\n        }, 10000)\n      }\n      saveStatsLoop()\n\n      function saveStats () {\n        if(!shouldSaveStats) return\n\n        var output_lines = []\n        var tmp_balance = n(s.balance.currency).add(n(s.period.close).multiply(s.balance.asset)).format('0.00000000')\n\n        var profit = s.start_capital ? n(tmp_balance).subtract(s.start_capital).divide(s.start_capital) : n(0)\n        output_lines.push('Strategy: ' + so.strategy)\n        output_lines.push('Last balance: ' + n(tmp_balance).format('0.00000000').yellow + ' (' + profit.format('0.00%') + ')')\n        var buy_hold = s.start_price ? n(s.period.close).multiply(n(s.start_capital).divide(s.start_price)) : n(tmp_balance)\n        var buy_hold_profit = s.start_capital ? n(buy_hold).subtract(s.start_capital).divide(s.start_capital) : n(0)\n        output_lines.push('Buy hold: ' + buy_hold.format('0.00000000').yellow + ' (' + n(buy_hold_profit).format('0.00%') + ')')\n        output_lines.push('vs. Buy hold: ' + n(tmp_balance).subtract(buy_hold).divide(buy_hold).format('0.00%').yellow)\n        output_lines.push(s.my_trades.length + ' trades over ' + s.day_count + ' days (avg ' + n(s.my_trades.length / s.day_count).format('0.00') + ' trades/day)')\n        // Build stats for UI\n        s.stats = {\n          profit: profit.format('0.00%'),\n          tmp_balance: n(tmp_balance).format('0.00000000'),\n          buy_hold: buy_hold.format('0.00000000'),\n          buy_hold_profit: n(buy_hold_profit).format('0.00%'),\n          day_count: s.day_count,\n          trade_per_day: n(s.my_trades.length / s.day_count).format('0.00')\n        }\n\n        var last_buy\n        var losses = 0, sells = 0\n        s.my_trades.forEach(function (trade) {\n          if (trade.type === 'buy') {\n            last_buy = trade.price\n          }\n          else {\n            if (last_buy && trade.price < last_buy) {\n              losses++\n            }\n            sells++\n          }\n        })\n        if (s.my_trades.length && sells > 0) {\n          output_lines.push('Win/Loss: ' + (sells - losses) + '/' + losses)\n          output_lines.push('Error rate: ' + (sells ? n(losses).divide(sells).format('0.00%') : '0.00%').yellow)\n\n          //for API\n          s.stats.win = (sells - losses)\n          s.stats.losses = losses\n          s.stats.error_rate = (sells ? n(losses).divide(sells).format('0.00%') : '0.00%')\n        }\n\n        var html_output = output_lines.map(function (line) {\n          return colors.stripColors(line)\n        }).join('\\n')\n        var data = s.lookback.slice(0, s.lookback.length - so.min_periods).map(function (period) {\n          var data = {}\n          var keys = Object.keys(period)\n          for(var i = 0; i < keys.length; i++){\n            data[keys[i]] = period[keys[i]]\n          }\n          return data\n        })\n        var code = 'var data = ' + JSON.stringify(data) + ';\\n'\n        code += 'var trades = ' + JSON.stringify(s.my_trades) + ';\\n'\n        var tpl = fs.readFileSync(path.resolve(__dirname, '..', 'templates', 'sim_result.html.tpl'), {encoding: 'utf8'})\n        var out = tpl\n          .replace('{{code}}', code)\n          .replace('{{trend_ema_period}}', so.trend_ema || 36)\n          .replace('{{output}}', html_output)\n          .replace(/\\{\\{symbol\\}\\}/g,  so.selector.normalized + ' - zenbot ' + require('../package.json').version)\n        if (so.filename !== 'none') {\n          var out_target\n          var dt = new Date().toISOString()\n\n          //ymd\n          var today = dt.slice(2, 4) + dt.slice(5, 7) + dt.slice(8, 10)\n          let out_target_prefix = so.paper ? 'simulations/paper_result_' : 'stats/trade_result_'\n          out_target = so.filename || out_target_prefix + so.selector.normalized +'_' + today + '_UTC.html'\n\n          fs.writeFileSync(out_target, out)\n          //console.log('\\nwrote'.grey, out_target)\n        }\n\n      }\n\n      function printLog(str, cr = false) {\n        if (str) {\n          console.log((cr?'\\n':'') + str)\n          pushStr += str + '\\n'\n        }\n      }\n\n      function executeCommand(command) {\n        var info = { ctrl: false }\n        if (conf.debug) {\n          console.log('\\nCommand received: ' + command)\n        }\n        executeKey(command, info)\n      }\n\n      function executeKey(key, info) {\n        if (key === 'l') {\n          listKeys()\n        } else if (key === 'b' && !info.ctrl ) {\n          engine.executeSignal('buy')\n          printLog('manual'.grey + ' limit ' + 'BUY'.green + ' command executed'.grey, true)\n        } else if (key === 'B' && !info.ctrl) {\n          engine.executeSignal('buy', null, null, false, true)\n          printLog('manual'.grey + ' market ' + 'BUY'.green + ' command executed'.grey, true)\n        } else if (key === 's' && !info.ctrl) {\n          engine.executeSignal('sell')\n          printLog('manual'.grey + ' limit ' + 'SELL'.red + ' command executed'.grey, true)\n        } else if (key === 'S' && !info.ctrl) {\n          engine.executeSignal('sell', null, null, false, true)\n          printLog('manual'.grey + ' market ' + 'SELL'.red + ' command executed'.grey, true)\n        } else if ((key === 'c' || key === 'C') && !info.ctrl) {\n          delete s.buy_order\n          delete s.sell_order\n          printLog('manual'.grey + ' order cancel' + ' command executed'.grey, true)\n        } else if (key === 'm' && !info.ctrl && so.mode === 'live') {\n          so.manual = !so.manual\n          printLog('MANUAL trade in LIVE mode: ' + (so.manual ? 'ON'.green.inverse : 'OFF'.red.inverse), true)\n        } else if (key === 'T' && !info.ctrl) {\n          so.order_type = 'taker'\n          printLog('Taker fees activated'.bgRed, true)\n        } else if (key === 'M' && !info.ctrl) {\n          so.order_type = 'maker'\n          printLog('Maker fees activated'.black.bgGreen, true)\n        } else if (key === 'o' && !info.ctrl) {\n          listOptions()\n        } else if (key === 'O' && !info.ctrl) {\n          printLog(cliff.inspect(so), true)\n        } else if (key === 'P' && !info.ctrl) {\n          printLog('Writing statistics...'.grey, true)\n          printTrade(false)\n        } else if (key === 'X' && !info.ctrl) {\n          printLog('Exiting... ' + '\\nWriting statistics...'.grey, true)\n          printTrade(true)\n        } else if (key === 'd' && !info.ctrl) {\n          printLog('Dumping statistics...'.grey, true)\n          printTrade(false, true)\n        } else if (key === 'D' && !info.ctrl) {\n          printLog('Dumping statistics...'.grey, true)\n          toggleStats()\n        } else if (key === 'L' && !info.ctrl) {\n          debug.flip()\n          printLog('DEBUG mode: ' + (debug.on ? 'ON'.green.inverse : 'OFF'.red.inverse), true)\n        } else if (info.name === 'c' && info.ctrl) {\n          // @todo: cancel open orders before exit\n          process.exit()\n        }\n\n        if (pushStr) {\n          engine.pushMessage('Reply', colors.stripColors(pushStr))\n          pushStr = ''\n        }\n      }\n\n      var order_types = ['maker', 'taker']\n      if (!order_types.includes(so.order_type)) {\n        so.order_type = 'maker'\n      }\n\n      var db_cursor, trade_cursor\n      var query_start = tb().resize(so.period_length).subtract(so.min_periods * 2).toMilliseconds()\n      var days = Math.ceil((new Date().getTime() - query_start) / 86400000)\n      var session = null\n      var sessions = collectionServiceInstance.getSessions()\n      var balances = collectionServiceInstance.getBalances()\n      var trades = collectionServiceInstance.getTrades()\n      var resume_markers = collectionServiceInstance.getResumeMarkers()\n      var marker = {\n        id: crypto.randomBytes(4).toString('hex'),\n        selector: so.selector.normalized,\n        from: null,\n        to: null,\n        oldest_time: null\n      }\n      marker._id = marker.id\n      var lookback_size = 0\n      var my_trades_size = 0\n      var my_trades = collectionServiceInstance.getMyTrades()\n      var periods = collectionServiceInstance.getPeriods()\n\n      console.log('fetching pre-roll data:')\n      var zenbot_cmd = process.platform === 'win32' ? 'zenbot.bat' : 'zenbot.sh' // Use 'win32' for 64 bit windows too\n      var command_args = ['backfill', so.selector.normalized, '--days', days || 1]\n      if (cmd.conf) {\n        command_args.push('--conf', cmd.conf)\n      }\n      var backfiller = spawn(path.resolve(__dirname, '..', zenbot_cmd), command_args)\n      backfiller.stdout.pipe(process.stdout)\n      backfiller.stderr.pipe(process.stderr)\n      backfiller.on('exit', function (code) {\n        if (code) {\n          process.exit(code)\n        }\n        function getNext () {\n          var opts = {\n            query: {\n              selector: so.selector.normalized\n            },\n            sort: {time: 1},\n            limit: 1000\n          }\n          if (db_cursor) {\n            opts.query.time = {$gt: db_cursor}\n          }\n          else {\n            trade_cursor = s.exchange.getCursor(query_start)\n            opts.query.time = {$gte: query_start}\n          }\n          trades.find(opts.query).limit(opts.limit).sort(opts.sort).toArray(function (err, trades) {\n            if (err) throw err\n            if (trades.length && so.use_prev_trades) {\n              let prevOpts = {\n                query: {\n                  selector: so.selector.normalized\n                },\n                limit: so.min_prev_trades\n              }\n              if (!so.min_prev_trades) {\n                prevOpts.query.time = {$gte : trades[0].time}\n              }\n              my_trades.find(prevOpts.query).sort({$natural:-1}).limit(prevOpts.limit).toArray(function (err, my_prev_trades) {\n                if (err) throw err\n                if (my_prev_trades.length) {\n                  s.my_prev_trades = my_prev_trades.reverse().slice(0) // simple copy, less recent executed first\n                }\n              })\n            }\n            if (!trades.length) {\n              var head = '------------------------------------------ INITIALIZE  OUTPUT ------------------------------------------'\n              console.log(head)\n              output(conf).initializeOutput(s)\n              var minuses = Math.floor((head.length - so.mode.length - 19) / 2)\n              console.log('-'.repeat(minuses) + ' STARTING ' + so.mode.toUpperCase() + ' TRADING ' + '-'.repeat(minuses + (minuses % 2 == 0 ? 0 : 1)))\n              if (so.mode === 'paper') {\n                console.log('!!! Paper mode enabled. No real trades are performed until you remove --paper from the startup command.')\n              }\n              console.log('Press ' + ' l '.inverse + ' to list available commands.')\n              engine.syncBalance(function (err) {\n                if (err) {\n                  if (err.desc) console.error(err.desc)\n                  if (err.body) console.error(err.body)\n                  throw err\n                }\n                session = {\n                  id: crypto.randomBytes(4).toString('hex'),\n                  selector: so.selector.normalized,\n                  started: new Date().getTime(),\n                  mode: so.mode,\n                  options: so\n                }\n                session._id = session.id\n                sessions.find({selector: so.selector.normalized}).limit(1).sort({started: -1}).toArray(function (err, prev_sessions) {\n                  if (err) throw err\n                  var prev_session = prev_sessions[0]\n                  if (prev_session && !cmd.reset_profit) {\n                    if (prev_session.orig_capital && prev_session.orig_price && prev_session.deposit === so.deposit && ((so.mode === 'paper' && !raw_opts.currency_capital && !raw_opts.asset_capital) || (so.mode === 'live' && prev_session.balance.asset == s.balance.asset && prev_session.balance.currency == s.balance.currency))) {\n                      s.orig_capital = session.orig_capital = prev_session.orig_capital\n                      s.orig_price = session.orig_price = prev_session.orig_price\n                      if (so.mode === 'paper') {\n                        s.balance = prev_session.balance\n                      }\n                    }\n                  }\n                  if(s.lookback.length > so.keep_lookback_periods){\n                    s.lookback.splice(-1,1)\n                  }\n\n                  forwardScan()\n                  setInterval(forwardScan, so.poll_trades)\n                  if (!so.non_interactive) {\n                    engine.onMessage(executeCommand)\n                  }\n                  readline.emitKeypressEvents(process.stdin)\n                  if (!so.non_interactive && process.stdin.setRawMode) {\n                    process.stdin.setRawMode(true)\n                    process.stdin.on('keypress', executeKey)\n                  }\n                })\n              })\n              return\n            }\n            db_cursor = trades[trades.length - 1].time\n            trade_cursor = s.exchange.getCursor(trades[trades.length - 1])\n            engine.update(trades, true, function (err) {\n              if (err) throw err\n              setImmediate(getNext)\n            })\n          })\n        }\n        engine.writeHeader()\n        getNext()\n      })\n\n      var prev_timeout = null\n      function forwardScan () {\n        function saveSession () {\n          engine.syncBalance(function (err) {\n            if (!err && s.balance.asset === undefined) {\n              // TODO not the nicest place to verify the state, but did not found a better one\n              throw new Error('Error during syncing balance. Please check your API-Key')\n            }\n            if (err) {\n              console.error('\\n' + moment().format('YYYY-MM-DD HH:mm:ss') + ' - error syncing balance')\n              if (err.desc) console.error(err.desc)\n              if (err.body) console.error(err.body)\n              console.error(err)\n            }\n            if (botStartTime && botStartTime - moment() < 0 ) {\n              // Not sure if I should just handle exit code directly or thru printTrade.  Decided on printTrade being if code is added there for clean exits this can just take advantage of it.\n              engine.exit(() => {\n                printTrade(true)\n              })\n            }\n            session.updated = new Date().getTime()\n            session.balance = s.balance\n            session.start_capital = s.start_capital\n            session.start_price = s.start_price\n            session.num_trades = s.my_trades.length\n            if (so.deposit) session.deposit = so.deposit\n            if (!session.orig_capital) session.orig_capital = s.start_capital\n            if (!session.orig_price) session.orig_price = s.start_price\n            if (s.period) {\n              session.price = s.period.close\n              var d = tb().resize(conf.balance_snapshot_period)\n              var b = {\n                id: so.selector.normalized + '-' + d.toString(),\n                selector: so.selector.normalized,\n                time: d.toMilliseconds(),\n                currency: s.balance.currency,\n                asset: s.balance.asset,\n                price: s.period.close,\n                start_capital: session.orig_capital,\n                start_price: session.orig_price,\n              }\n              b._id = b.id\n              b.consolidated = n(s.balance.asset).multiply(s.period.close).add(s.balance.currency).value()\n              b.profit = (b.consolidated - session.orig_capital) / session.orig_capital\n              b.buy_hold = s.period.close * (session.orig_capital / session.orig_price)\n              b.buy_hold_profit = (b.buy_hold - session.orig_capital) / session.orig_capital\n              b.vs_buy_hold = (b.consolidated - b.buy_hold) / b.buy_hold\n              conf.output.api.on && printTrade(false, false, true)\n              if (so.mode === 'live') {\n                balances.replaceOne({_id: b.id}, b, {upsert: true}, function (err) {\n                  if (err) {\n                    console.error('\\n' + moment().format('YYYY-MM-DD HH:mm:ss') + ' - error saving balance')\n                    console.error(err)\n                  }\n                })\n              }\n              session.balance = b\n            }\n            else {\n              session.balance = {\n                currency: s.balance.currency,\n                asset: s.balance.asset\n              }\n            }\n            sessions.replaceOne({_id: session.id}, session, {upsert: true}, function (err) {\n              if (err) {\n                console.error('\\n' + moment().format('YYYY-MM-DD HH:mm:ss') + ' - error saving session')\n                console.error(err)\n              }\n              if (s.period) {\n                engine.writeReport(true)\n              } else {\n                readline.clearLine(process.stdout)\n                readline.cursorTo(process.stdout, 0)\n                process.stdout.write('Waiting on first live trade to display reports, could be a few minutes ...')\n              }\n            })\n          })\n        }\n        var opts = {\n          product_id: so.selector.product_id,\n          from: trade_cursor + 1\n        }\n        s.exchange.getTrades(opts, function (err, trades) {\n          if (err) {\n            if (err.code === 'ETIMEDOUT' || err.code === 'ENOTFOUND' || err.code === 'ECONNRESET') {\n              if (prev_timeout) {\n                console.error('\\n' + moment().format('YYYY-MM-DD HH:mm:ss') + ' - getTrades request timed out. retrying...')\n              }\n              prev_timeout = true\n            }\n            else if (err.code === 'HTTP_STATUS') {\n              if (prev_timeout) {\n                console.error('\\n' + moment().format('YYYY-MM-DD HH:mm:ss') + ' - getTrades request failed: ' + err.message + '. retrying...')\n              }\n              prev_timeout = true\n            }\n            else {\n              console.error('\\n' + moment().format('YYYY-MM-DD HH:mm:ss') + ' - getTrades request failed. retrying...')\n              console.error(err)\n            }\n            return\n          }\n          prev_timeout = null\n          if (trades.length) {\n            trades.sort(function (a, b) {\n              if (a.time > b.time) return -1\n              if (a.time < b.time) return 1\n              return 0\n            })\n            trades.forEach(function (trade) {\n              var this_cursor = s.exchange.getCursor(trade)\n              trade_cursor = Math.max(this_cursor, trade_cursor)\n              saveTrade(trade)\n            })\n            engine.update(trades, function (err) {\n              if (err) {\n                console.error('\\n' + moment().format('YYYY-MM-DD HH:mm:ss') + ' - error saving session')\n                console.error(err)\n              }\n              resume_markers.replaceOne({_id: marker.id}, marker, {upsert: true}, function (err) {\n                if (err) {\n                  console.error('\\n' + moment().format('YYYY-MM-DD HH:mm:ss') + ' - error saving marker')\n                  console.error(err)\n                }\n              })\n              if (s.my_trades.length > my_trades_size) {\n                s.my_trades.slice(my_trades_size).forEach(function (my_trade) {\n                  my_trade.id = crypto.randomBytes(4).toString('hex')\n                  my_trade._id = my_trade.id\n                  my_trade.selector = so.selector.normalized\n                  my_trade.session_id = session.id\n                  my_trade.mode = so.mode\n                  my_trades.insertOne(my_trade, function (err) {\n                    if (err) {\n                      console.error('\\n' + moment().format('YYYY-MM-DD HH:mm:ss') + ' - error saving my_trade')\n                      console.error(err)\n                    }\n                  })\n                })\n                my_trades_size = s.my_trades.length\n              }\n              function savePeriod (period) {\n                if (!period.id) {\n                  period.id = crypto.randomBytes(4).toString('hex')\n                  period.selector = so.selector.normalized\n                  period.session_id = session.id\n                }\n                period._id = period.id\n                periods.replaceOne({_id: period.id}, period, {upsert: true}, function (err) {\n                  if (err) {\n                    console.error('\\n' + moment().format('YYYY-MM-DD HH:mm:ss') + ' - error saving my_trade')\n                    console.error(err)\n                  }\n                })\n              }\n              if (s.lookback.length > lookback_size) {\n                savePeriod(s.lookback[0])\n                lookback_size = s.lookback.length\n              }\n              if (s.period) {\n                savePeriod(s.period)\n              }\n              saveSession()\n            })\n          }\n          else {\n            trade_cursor += parseInt(so.poll_trades)\n            saveSession()\n          }\n        })\n        function saveTrade (trade) {\n          trade.id = so.selector.normalized + '-' + String(trade.trade_id)\n          trade._id = trade.id\n          trade.selector = so.selector.normalized\n          if (!marker.from) {\n            marker.from = trade_cursor\n            marker.oldest_time = trade.time\n            marker.newest_time = trade.time\n          }\n          marker.to = marker.to ? Math.max(marker.to, trade_cursor) : trade_cursor\n          marker.newest_time = Math.max(marker.newest_time, trade.time)\n          trades.insertOne(trade, function (err) {\n            // ignore duplicate key errors\n            if (err && err.code !== 11000) {\n              console.error('\\n' + moment().format('YYYY-MM-DD HH:mm:ss') + ' - error saving trade')\n              console.error(err)\n            }\n          })\n        }\n      }\n    })\n}\n"
  },
  {
    "path": "conf-sample.js",
    "content": "var c = module.exports = {}\n\n// mongo configuration\nc.mongo = {}\nc.mongo.db = process.env.ZENBOT_MONGODB_DATABASE || 'zenbot4'\n\n// Must provide EITHER c.mongo.connectionString OR c.mongo.host,port,username,password\nc.mongo.connectionString = process.env.ZENBOT_MONGODB_CONNECTION_STRING || null\n\n// The following is not needed when c.mongo.connectionString is provided:\nc.mongo.host = process.env.ZENBOT_MONGODB_HOST || 'localhost'\nc.mongo.port = process.env.ZENBOT_MONGODB_PORT || 27017\nc.mongo.username = process.env.ZENBOT_MONGO_USERNAME || null\nc.mongo.password = process.env.ZENBOT_MONGO_PASSWORD || null\n// when using mongodb replication, i.e. when running a mongodb cluster, you can define your replication set here; when you are not using replication (most of the users), just set it to `null` (default).\nc.mongo.replicaSet = process.env.ZENBOT_MONGO_REPLICASET || null\nc.mongo.authMechanism = process.env.ZENBOT_MONGO_AUTH_MECHANISM || null\n\n// default selector. only used if omitting [selector] argument from a command.\nc.selector = process.env.ZENBOT_DEFAULT_SELECTOR || 'gdax.BTC-USD'\n// name of default trade strategy\nc.strategy = process.env.ZENBOT_DEFAULT_STRATEGY || 'trend_ema'\n\n// Exchange API keys:\n\n// to enable GDAX trading, enter your API credentials:\nc.gdax = {}\nc.gdax.key = process.env.ZENBOT_GDAX_API_KEY || 'YOUR-API-KEY'\nc.gdax.b64secret = process.env.ZENBOT_GDAX_B64_SECRET || 'YOUR-API-SECRET'\nc.gdax.passphrase = process.env.ZENBOT_GDAX_PASSPHRASE || 'YOUR-API-PASSPHRASE'\n// set to true to trade on the sandbox platform API\nc.gdax.sandbox = process.env.ZENBOT_GDAX_SANDBOX || false\n\n// to enable Poloniex trading, enter your API credentials:\nc.poloniex = {}\nc.poloniex.key = process.env.ZENBOT_POLONIEX_API_KEY || 'YOUR-API-KEY'\nc.poloniex.secret = process.env.ZENBOT_POLONIEX_SECRET || 'YOUR-API-SECRET'\n// please note: poloniex does not support market orders via the API\n\n// to enable Kraken trading, enter your API credentials:\nc.kraken = {}\nc.kraken.key = process.env.ZENBOT_KRAKEN_API_KEY || 'YOUR-API-KEY'\nc.kraken.secret = process.env.ZENBOT_KRAKEN_SECRET || 'YOUR-API-SECRET'\n// Please read API TOS on https://www.kraken.com/u/settings/api\nc.kraken.tosagree = process.env.ZENBOT_KRAKEN_TOS_AGREE || 'disagree'\n\n// to enable Binance trading, enter your API credentials:\nc.binance = {}\nc.binance.key = process.env.ZENBOT_BINANCE_API_KEY || 'YOUR-API-KEY'\nc.binance.secret = process.env.ZENBOT_BINANCE_SECRET || 'YOUR-API-SECRET'\n\n// to enable Binance US trading, enter your API credentials:\nc.binanceus = {}\nc.binanceus.key = 'YOUR-API-KEY'\nc.binanceus.secret = 'YOUR-SECRET'\n\n// to enable Bittrex trading, enter your API credentials:\nc.bittrex = {}\nc.bittrex.key = process.env.ZENBOT_BITTREX_API_KEY || 'YOUR-API-KEY'\nc.bittrex.secret = process.env.ZENBOT_BITTREX_SECRET || 'YOUR-API-SECRET'\n// make sure to give your API key access to only: \"Trade Limit\" and \"Read Info\",\n// please note that this might change in the future.\n// please note that bittrex API is limited, you cannot use backfills or sims (paper/live trading only)\n\n// to enable Bitfinex trading, enter your API credentials:\nc.bitfinex = {}\nc.bitfinex.key = process.env.ZENBOT_BITFINEX_API_KEY || 'YOUR-API-KEY'\nc.bitfinex.secret = process.env.ZENBOT_BITFINEX_SECRET || 'YOUR-API-SECRET'\n// May use 'exchange' or 'margin' wallet balances\nc.bitfinex.wallet = process.env.ZENBOT_BITFINEX_WALLET || 'exchange'\n\n// to enable Bitstamp trading, enter your API credentials:\nc.bitstamp = {}\nc.bitstamp.key = process.env.ZENBOT_BITSTAMP_API_KEY || 'YOUR-API-KEY'\nc.bitstamp.secret = process.env.ZENBOT_BITSTAMP_SECRET || 'YOUR-API-SECRET'\n// A client ID is required on Bitstamp\nc.bitstamp.client_id = process.env.ZENBOT_BITSTAMP_CLIENT_ID || 'YOUR-CLIENT-ID'\n\n// to enable CEX.IO trading, enter your API credentials:\nc.cexio = {}\nc.cexio.username = process.env.ZENBOT_CEXIO_CLIENT_ID || 'YOUR-CLIENT-ID'\nc.cexio.key = process.env.ZENBOT_CEXIO_API_KEY || 'YOUR-API-KEY'\nc.cexio.secret = process.env.ZENBOT_CEXIO_SECRET || 'YOUR-API-SECRET'\n\n\n// to enable Gemini trading, enter your API credentials:\nc.gemini = {}\nc.gemini.key = process.env.ZENBOT_GEMINI_API_KEY || 'YOUR-API-KEY'\nc.gemini.secret = process.env.ZENBOT_GEMINI_SECRET || 'YOUR-API-SECRET'\n// set to false to trade on the live platform API\nc.gemini.sandbox = process.env.ZENBOT_GEMINI_SANDBOX || true\n\n// to enable hitBTC trading, enter your API credentials:\nc.hitbtc = {}\nc.hitbtc.key = process.env.ZENBOT_HITBTC_API_KEY || 'YOUR-API-KEY'\nc.hitbtc.secret = process.env.ZENBOT_HITBTC_SECRET || 'YOUR-API-SECRET'\n\n// to enable therock trading, enter your API credentials:\nc.therock = {}\nc.therock.key = process.env.ZENBOT_THEROCK_API_KEY || 'YOUR-API-KEY'\nc.therock.secret = process.env.ZENBOT_THEROCK_SECRET || 'YOUR-API-SECRET'\n\n// Optional stop-order triggers:\n\n// sell if price drops below this % of bought price (0 to disable)\nc.sell_stop_pct = process.env.ZENBOT_SELL_STOP_PCT || 0\n// buy if price surges above this % of sold price (0 to disable)\nc.buy_stop_pct = process.env.ZENBOT_BUY_STOP_PCT || 0\n// enable trailing sell stop when reaching this % profit (0 to disable)\nc.profit_stop_enable_pct = process.env.ZENBOT_PROFIT_STOP_ENABLE_PCT || 0\n// maintain a trailing stop this % below the high-water mark of profit\nc.profit_stop_pct = process.env.ZENBOT_PROFIT_STOP_PCT || 1\n\n// Order execution rules:\n\n// avoid trading at a slippage above this pct\nc.max_slippage_pct = process.env.ZENBOT_MAX_SLIPPAGE_PCT || 5\n// buy with this % of currency balance (WARNING : sim won't work properly if you set this value to 100)\nc.buy_pct = process.env.ZENBOT_BUY_PCT || 99\n// sell with this % of asset balance (WARNING : sim won't work properly if you set this value to 100)\nc.sell_pct = process.env.ZENBOT_SELL_PCT || 99\n// ms to adjust non-filled order after\nc.order_adjust_time = process.env.ZENBOT_ORDER_ADJUST_TIME || 5000\n// avoid selling at a loss below this pct set to 0 to ensure selling at a higher price...\nc.max_sell_loss_pct = process.env.ZENBOT_MAX_SELL_LOSS_PCT || 99\n// avoid buying at a loss above this pct set to 0 to ensure buying at a lower price...\nc.max_buy_loss_pct = process.env.ZENBOT_MAX_BUY_LOSS_PCT || 99\n// ms to poll order status\nc.order_poll_time = process.env.ZENBOT_ORDER_POLL_TIME || 5000\n// ms to wait for settlement (after an order cancel)\nc.wait_for_settlement = process.env.ZENBOT_WAIT_FOR_SETTLEMENT || 5000\n// % to mark down buy price for orders\nc.markdown_buy_pct = process.env.ZENBOT_MARKDOWN_BUY_PCT || 0\n// % to mark up sell price for orders\nc.markup_sell_pct = process.env.ZENBOT_MARKUP_SELL_PCT || 0\n// become a market taker (high fees) or a market maker (low fees)\nc.order_type = process.env.ZENBOT_ORDER_TYPE || 'maker'\n// when supported by the exchange, use post only type orders.\nc.post_only = process.env.ZENBOT_POST_ONLY || true\n// use separated fee currency such as binance's BNB.\nc.use_fee_asset = process.env.ZENBOT_USE_FEE_ASSET || false\n\n// Misc options:\n\n// default # days for backfill and sim commands\nc.days = process.env.ZENBOT_DAYS || 14\n// defaults to a high number of lookback periods\nc.keep_lookback_periods = process.env.ZENBOT_KEEP_LOOKBACK_PERIODS || 50000\n// ms to poll new trades at\nc.poll_trades = process.env.ZENBOT_POLL_TRADES || 30000\n// amount of currency to start simulations with\nc.currency_capital = process.env.ZENBOT_CURRENCY_CAPITAL || 1000\n// amount of asset to start simulations with\nc.asset_capital = process.env.ZENBOT_ASSET_CAPITAL || 0\n// for sim, reverse time at the end of the graph, normalizing buy/hold to 0\nc.symmetrical = process.env.ZENBOT_SYMMETRICAL || false\n// number of periods to calculate RSI at\nc.rsi_periods = process.env.ZENBOT_RSI_PERIODS || 14\n// period to record balances for stats\nc.balance_snapshot_period = process.env.ZENBOT_BALANCE_SNAPSHOT_PERIOD || '15m'\n// avg. amount of slippage to apply to sim trades\nc.avg_slippage_pct = process.env.ZENBOT_AVG_SLIPPAGE_PCT || 0.045\n// time to leave an order open, default to 1 day (this feature is not supported on all exchanges, currently: GDAX)\nc.cancel_after = process.env.ZENBOT_CANCEL_AFTER || 'day'\n// load and use previous trades for stop-order triggers and loss protection (live/paper mode only)\nc.use_prev_trades = process.env.ZENBOT_USE_PREV_TRADES || false\n// minimum number of previous trades to load if use_prev_trades is enabled, set to 0 to disable and use trade time instead\nc.min_prev_trades = process.env.ZENBOT_MIN_PREV_TRADES || 0\n\n// Notifiers:\nc.notifiers = {}\n\n//common\n\nc.notifiers.only_completed_trades = process.env.ZENBOT_NOTIFY_ONLY_COMPLETED_TRADES || false // Filter to notifier's messages for getting Commpleted Trades info.\n\n// xmpp config\nc.notifiers.xmpp = {}\nc.notifiers.xmpp.on = process.env.ZENBOT_XMPP_ENABLE || false  // false xmpp disabled; true xmpp enabled (credentials should be correct)\nc.notifiers.xmpp.jid = process.env.ZENBOT_XMPP_JID || 'trader@domain.com'\nc.notifiers.xmpp.password = process.env.ZENBOT_XMPP_PASSWORD || ''\nc.notifiers.xmpp.host = process.env.ZENBOT_XMPP_HOST || 'domain.com'\nc.notifiers.xmpp.port = process.env.ZENBOT_XMPP_PORT || 5222\nc.notifiers.xmpp.to = process.env.ZENBOT_XMPP_TO || 'MeMyselfAndI@domain.com'\n// end xmpp configs\n\n// pushbullets configs\nc.notifiers.pushbullet = {}\nc.notifiers.pushbullet.on = process.env.ZENBOT_PUSHBULLET_ENABLE || false // false pushbullets disabled; true pushbullets enabled (key should be correct)\nc.notifiers.pushbullet.key = process.env.ZENBOT_PUSHBULLET_API_KEY || ''\nc.notifiers.pushbullet.deviceID = process.env.ZENBOT_PUSHBULLET_DEVICE_ID || ''\n// end pushbullets configs\n\n// ifttt configs\nc.notifiers.ifttt = {}\nc.notifiers.ifttt.on = process.env.ZENBOT_IFTTT_ENABLE || false // false ifttt disabled; true ifttt enabled (key should be correct)\nc.notifiers.ifttt.makerKey = process.env.ZENBOT_IFTTT_API_KEY || ''\nc.notifiers.ifttt.eventName = process.env.ZENBOT_IFTTT_EVENT_NAME || 'zenbot'\n// end ifttt configs\n\n// slack config\nc.notifiers.slack = {}\nc.notifiers.slack.on = process.env.ZENBOT_SLACK_ENABLE || false\nc.notifiers.slack.webhook_url = process.env.ZENBOT_SLACK_WEBHOOK_URL || ''\n// end slack config\n\n// ADAMANT Messenger config\nc.notifiers.adamant = {}\nc.notifiers.adamant.on = process.env.ZENBOT_ADAMANT_ENABLE || false\nc.notifiers.adamant.nodes = typeof process.env.ZENBOT_ADAMANT_NODES !== 'undefined' ? process.env.ZENBOT_ADAMANT_NODES.split(',') : [\n  'https://endless.adamant.im',\n  'https://clown.adamant.im',\n  'https://bid.adamant.im',\n  'https://unusual.adamant.im',\n  'https://debate.adamant.im',\n  'http://185.231.245.26:36666',\n  'https://lake.adamant.im',\n  'http://localhost:36666'\n]\nc.notifiers.adamant.fromPassphrase = process.env.ZENBOT_ADAMANT_FROM_PASSPHRASE || ''\nc.notifiers.adamant.toAddresses = typeof process.env.ZENBOT_ADAMANT_TO_ADDRESSES !== 'undefined' ? process.env.ZENBOT_ADAMANT_TO_ADDRESSES.split(',') : ['']\n// end ADAMANT Messenger config\n\n// discord configs\nc.notifiers.discord = {}\nc.notifiers.discord.on = process.env.ZENBOT_DISCORD_ENABLE || false // false discord disabled; true discord enabled (key should be correct)\nc.notifiers.discord.id = process.env.ZENBOT_DISCORD_ID || ''\nc.notifiers.discord.token = process.env.ZENBOT_DISCORD_TOKEN || ''\nc.notifiers.discord.username = process.env.ZENBOT_DISCORD_USERNAME || 'Zenbot'\nc.notifiers.discord.avatar_url = process.env.ZENBOT_DISCORD_AVATAR_URL || ''\nc.notifiers.discord.color = process.env.ZENBOT_DISCORD_COLOR || null // color as a decimal\n// end discord configs\n\n// prowl configs\nc.notifiers.prowl = {}\nc.notifiers.prowl.on = process.env.ZENBOT_PROWL_ENABLE || false // false prowl disabled; true prowl enabled (key should be correct)\nc.notifiers.prowl.key = process.env.ZENBOT_PROWL_KEY\n// end prowl configs\n\n// textbelt configs\nc.notifiers.textbelt = {}\nc.notifiers.textbelt.on = process.env.ZENBOT_TEXTBELT_ENABLE || false // false textbelt disabled; true textbelt enabled (key should be correct)\nc.notifiers.textbelt.phone = process.env.ZENBOT_TEXTBELT_PHONE\nc.notifiers.textbelt.key = process.env.ZENBOT_TEXTBELT_KEY\n// end textbelt configs\n\n// pushover configs\nc.notifiers.pushover = {}\nc.notifiers.pushover.on = process.env.ZENBOT_PUSHOVER_ENABLE || false // false pushover disabled; true pushover enabled (keys should be correct)\nc.notifiers.pushover.token = process.env.ZENBOT_PUSHOVER_TOKEN // create application and supply the token here\nc.notifiers.pushover.user = process.env.ZENBOT_PUSHOVER_USER_KEY // this is your own user's key (not application related)\nc.notifiers.pushover.priority = process.env.ZENBOT_PUSHOVER_PRIORITY || '0' // choose a priority to send zenbot messages with, see https://pushover.net/api#priority\n// end pushover configs\n\n// telegram configs\nc.notifiers.telegram = {}\nc.notifiers.telegram.on = process.env.ZENBOT_TELEGRAM_ENABLE || false // false telegram disabled; true telegram enabled (key should be correct)\nc.notifiers.telegram.interactive = process.env.ZENBOT_TELEGRAM_INTERACTIVE || false // true telegram is interactive\nc.notifiers.telegram.bot_token = process.env.ZENBOT_TELEGRAM_BOT_TOKEN\nc.notifiers.telegram.chat_id = process.env.ZENBOT_TELEGRAM_CHAT_ID // the id of the chat the messages should be send in\n// end telegram configs\n\n// output\nc.output = {}\n\n// REST API\nc.output.api = {}\nc.output.api.on = process.env.ZENBOT_API_ENABLE || true\nc.output.api.ip = process.env.ZENBOT_API_IP || '0.0.0.0' // IPv4 or IPv6 address to listen on, uses all available interfaces if omitted\nc.output.api.port = process.env.ZENBOT_API_PORT || 17365\n"
  },
  {
    "path": "docker-compose-traefik.yml",
    "content": "version: '3.1'\nservices:\n  zenbotserver:\n    build:\n      context: .\n      dockerfile: Dockerfile\n    volumes:\n      - ./:/app/\n      - /app/node_modules/\n      - /app/dist/\n    restart: always\n    tty: true\n    expose:\n      - \"17365\"\n    labels:\n      - \"traefik.enable=true\"\n      - \"traefik.frontend.rule=Host:$(TRAEFIK_HOST_ZEN)\"\n      - \"traefik.docker.network=$(TRAEFIK_NETWORK_NAME)\"\n      - \"traefik.port=17365\"\n      - \"traefik.frontend.auth.basic=$(BASIC_AUTH_ZEN)\"\n    networks:\n      - internal\n      - proxy\n    depends_on:\n      - mongodb\n    environment:\n      - MONGODB_PORT_27017_TCP_ADDR=mongodb\n\n  mongodb:\n    image: mongo:latest\n    restart: always\n    volumes:\n      - ./data/db:/data/db\n    command: mongod --smallfiles --bind_ip=0.0.0.0 --logpath=/dev/null\n    networks:\n      - internal\n    expose:\n      - 27017\n\n  # \"adminMongo is a Web based user interface (GUI) to handle all your MongoDB connections/databases needs.\"\n  adminmongo:\n    image: mrvautin/adminmongo\n    expose:\n      - 1234\n    depends_on:\n      - mongodb\n    environment:\n      - \"CONN_NAME=zenbot_mongodb\"\n      - \"DB_HOST=mongodb\"\n      - \"DB_PORT=27017\"\n      - \"HOST=0.0.0.0\"\n    labels:\n      - \"traefik.enable=true\"\n      - \"traefik.frontend.rule=Host:$(TRAEFIK_HOST_DB)\"\n      - \"traefik.docker.network=$(TRAEFIK_NETWORK_NAME)\"\n      - \"traefik.port=1234\"\n      - \"traefik.frontend.auth.basic=$(BASIC_AUTH_DB)\"\n    networks:\n      - internal\n      - proxy\n    command: \"npm start\"\n\nnetworks:\n  proxy:\n    external:\n      name: \"$(TRAEFIK_NETWORK_NAME)\"\n  internal:\n    external: false\n"
  },
  {
    "path": "docker-compose-windows.yml",
    "content": "server:\n  image: deviavir/zenbot:unstable\n  volumes:\n    - ./conf.js:/app/conf.js\n    - ./extensions:/app/extensions\n  links:\n    - mongodb\n  command: [ \"trade\", \"--paper\" ]\n  restart: always\n\nmongodb:\n  image: mongo:latest\n  volumes_from:\n    - mongodb-data\n  command: mongod --smallfiles --bind_ip=0.0.0.0 --logpath=/dev/null\n\nmongodb-data:\n  image: mongo:latest\n  volumes:\n    - /data/db\n  command: \"true\"\n"
  },
  {
    "path": "docker-compose.yml",
    "content": "version: \"3.1\"\nservices:\n  server:\n    build:\n      context: .\n      dockerfile: Dockerfile\n    image: deviavir/zenbot:unstable\n    volumes:\n      - ./simulations/:/app/simulations/\n      - ./conf.js:/app/conf.js:ro\n    restart: always\n    tty: true\n    ports:\n      - \"17365:17365\"\n    depends_on:\n      - mongodb\n    environment:\n      - ZENBOT_MONGODB_HOST=mongodb\n    stdin_open: true\n  mongodb:\n    image: mongo:latest\n    volumes:\n      - ./database:/data/db\n    command: mongod --bind_ip=0.0.0.0 --logpath=/dev/null\n  # Remove below comments to use this container. \"adminMongo is a Web based user interface (GUI) to handle all your MongoDB connections/databases needs.\"\n  #\n  #adminmongo:\n  #  image: mrvautin/adminmongo\n  #  links:\n  #    - mongodb\n  #  tty: true\n  #  ports:\n  #    - \"127.0.0.1:1234:1234\"\n  #  environment:\n  #    - CONN_NAME=zenbot_mongodb\n  #    - DB_HOST=mongodb\n  #    - DB_PORT=27017\n  #    - HOST=0.0.0.0\n  #  command: \"npm start\"\n"
  },
  {
    "path": "docs/FAQ.md",
    "content": "# Frequently Asked Questions\n\nHere are a few questions that have been asked often as well as answers from the community.\n\nIf you have a question that is not answered here, feel free to ask in the [Reddit](#is-there-a-community-to-get-involved-with-zenbot) community and suggest it to be placed here.\n\nThanks!\n\n\n\n## Contents\n\n### [General](#general-1)\n* [Is there a community to get involved with Zenbot?](#is-there-a-community-to-get-involved-with-zenbot)\n\n### [Trading](#trading-1)\n* [Will I make money with Zenbot?](#will-i-make-money-with-zenbot)\n* [Why do simulations, paper trading, and live trading all yield different results?](#why-do-simulations-paper-trading-and-live-trading-all-yield-different-results)\n* [Why should I use simulations or paper trading if they do not reflect live trading?](#why-should-i-use-simulations-or-paper-trading-if-they-do-not-reflect-live-trading)\n* [Does Zenbot use Limit (maker) orders or Market (taker) orders?](#does-zenbot-use-limit-maker-orders-or-market-taker-orders)\n\n### [Technical](#technical-1)\n* [Can I install Zenbot on Windows?](#can-i-install-zenbot-on-windows)\n* [Is Docker necessary when installing Zenbot?](#is-docker-necessary-when-installing-zenbot)\n* [How do I launch Zenbot?](#how-do-i-launch-zenbot)\n* [How do I update Zenbot?](#how-do-i-update-zenbot)\n\n### [Errors](#errors-1)\n* [Why do I keep getting a \"Nonce\" error?](#why-do-i-keep-getting-a-nonce-error)\n* [Why do I keep getting a \"JavaScript heap out of memory\" error](#why-do-i-keep-getting-a-javascript-heap-out-of-memory-error)\n\n\n## Answers\n\n### General\n\n#### Is there a community to get involved with Zenbot?\n\nOf course! Check out our Reddit community ([subreddit zenbot](https://reddit.com/r/zenbot)).\n\nThere is also [a shared Google Docs spreadsheet containing community sim results and variable descriptions](https://docs.google.com/spreadsheets/d/1WjFKRUY4KpkdIJiA3RVvKqiyNkMe9xtgLSfYESFXk1g/edit#gid=70204991).\n\n\n\n### Trading\n\n#### Will I make money with Zenbot?\n\nThat depends… Different configurations and strategies will yield different results.\n\nThe current default config and parameters will likely lose you money, so proceed with caution. Try running simulations and paper trading first to see how the bot acts (see warning below).\n\n\n\n#### Why do simulations, paper trading, and live trading all yield different results?\n\nSimulations and paper trading almost always give overly optimistic results compared to live trading. This is because simulations and paper trading both make assumptions about when/if an order is filled.\n\nBecause Zenbot defaults to using Limit orders (which often lessen fees), there tends to be much more slippage (the difference between when the bot decides to buy and when it actually buys) in live trading. Due to this, live trading is almost always worse than sims and paper trading.\n\nAlso, remember that past results do not guarantee future returns.\n\n\n\n#### Why should I use simulations or paper trading if they do not reflect live trading?\n\nSimulations are more optimistic than paper trading.\nPaper trading is more optimistic than live trading.\nTherefore, if a simulation does not yield good results, odds are that neither will paper trading or (by extension) live trading.\n\n\n\n#### Does Zenbot use Limit (maker) orders or Market (taker) orders?\n\nZenbot uses Limit orders by default because on most exchanges, Limit orders result in lower fees than Market orders. For instance, on GDAX there is no fee for a Limit order trade compared to a 0.25% (BTC) or 0.3% (ETH & LTC) trade fee on a Market order.\n\nCheck your exchange for fees.\n\n\n\n### Technical\n\n#### Can I install Zenbot on Windows?\n\nYes, Zenbot can be installed on Windows, although it is recommended that Linux or macOS is used instead.\n\nPlease note that these instructions are for Windows 10.\n\n1. Install the \"Bash on Windows subsystem\" (see https://msdn.microsoft.com/en-us/commandline/wsl/about for more information)\n\n> Note: You can then choose between Ubuntu, Fedora and OpenSUSE in the Windows store.\n\n2. Open a terminal window, your disks will now be mounted under `/mnt/*`. So for example navigate to your directory (example: `cd /mnt/c/zenbot`)\n\n3. Install node (`curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -; sudo apt-get install nodejs`)\n\n4. Run zenbot as you would otherwise\n\n> Note: MongoDB is not working in this subsystem, please use the Windows version!\n\n\n\n#### Is Docker necessary when installing Zenbot?\n\nNo, Docker is often not necessary to run Zenbot. It is often simpler to run Zenbot on a Linux machine (Debian, CentOS, etc.) without Docker.\n\nIf running Zenbot on Windows, Docker may be needed.\n\n\n\n#### How do I launch Zenbot?\n\nAfter installation, you lauch Zenbot via command line.\nExamples:\n```\n./zenbot.sh backfill gdax.ETH-BTC\n./zenbot.sh sim gdax.ETH-BTC --days=14\nzenbot sim --days 14\n```\nYou can [generate a command with this shared Google Docs spreadsheet](https://docs.google.com/spreadsheets/d/1HECEHW-I9Evve_FQV3LT_IWGV6FU34tHif9TEouKtfg/edit?usp=sharing).\nDo not hesitate to copy this file to your Google drive or download it as an spreadsheet, as everybody can modify it simultaneously.\n\n\n\n#### How do I update Zenbot?\n\nWithout Docker:\n```\ngit pull\nnpm install\n./zenbot.sh trade --paper\n```\n\nWith Docker:\n```\ngit pull\ndocker-compose down\ndocker rmi zenbot_server\ndocker-compose build\ndocker-compose up -d\n```\n\n\n\n### Errors\n\n#### Why do I keep getting a \"Nonce\" error?\n\nThis error may occur when multiple instances of Zenbot are used with the same API key. To avoid this, use a different API key for each concurrent instance of Zenbot.\n\nThis could also occur if the Zenbot server's time is not correct. Using NTP will keep the time current and help avoid this error.\n\n#### Why do I keep getting a \"JavaScript heap out of memory\" error\n\nThis error may occur when your node environment does not have enough memory.\n\nSolution (Linux & Docker): Change the line\n\n`env node zenbot.js $@`\n\nin [zenbot.sh](../zenbot.sh) to \n\n`env node --max-old-space-size=<memory> zenbot.js $@`\n\n where `<memory>` is the amount of memory node is allowed to use (e.g. 4096 for 4GB). For Windows you have to change the file [zenbot.bat](../zenbot.bat) respectively.\n"
  },
  {
    "path": "docs/README.md",
    "content": "## Quick-start\n\n### Step 1) Requirements\n\n- Windows / Linux / macOS 10 (or Docker)\n- [Node.js](https://nodejs.org/) (version 8.3.0 or higher) and [MongoDB](https://www.mongodb.com/).\n\n### Step 2) Install zenbot 4\n\nRun in your console,\n\n```\ngit clone https://github.com/deviavir/zenbot.git\n```\n\nOr, without git,\n\n```\nwget https://github.com/deviavir/zenbot/archive/master.tar.gz\ntar -xf master.tar.gz\nmv zenbot-master zenbot\n```\n\nCreate your configuration file by copying `conf-sample.js` to `conf.js`:\n\n```\ncp conf-sample.js conf.js\n```\n\n- View and edit `conf.js`.\n- It's possible to use zenbot in \"paper trading\" mode without making any changes.\n- You must add your exchange API keys to enable real trading however.\n- API keys do NOT need deposit/withdrawal permissions.\n\nIf using Docker, skip to section \"Docker\" below.\n\nInstall dependencies:\n\n```\ncd zenbot\nnpm install\n# optional, installs the `zenbot.sh` binary in /usr/local/bin:\nnpm link\n```\n\n### Ubuntu 16.04 Step-By-Step\n[Video](https://youtu.be/BEhU55W9pBI)\n[Blog Post](https://jaynagpaul.com/algorithmic-crypto-trading?utm_source=zenbot)\n\n```\nsudo apt-get update\nsudo apt-get upgrade -y\nsudo apt-get install build-essential mongodb -y\n\ncurl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -\nsudo apt-get install -y nodejs\n\ngit clone https://github.com/deviavir/zenbot.git\ncd zenbot\nnpm install\n\n./zenbot.sh trade --paper\n```\n\n### Docker (Optional)\n\nTo run Zenbot under Docker, install Docker, Docker Compose, Docker Machine (if necessary) You can follow instructions at https://docs.docker.com/compose/install/\n\nAfter installing (step 2 above),\n\n```\ncd zenbot\ndocker-compose up (-d if you don't want to see the log)\n```\n\nIf you are running windows use the following command\n\n```\ndocker-compose --file=docker-compose-windows.yml up\n```\n\nIf you wish to run commands (e.g. backfills, list-selectors), you can run this separate command after a successful `docker-compose up -d`:\n\n```\ndocker-compose exec server zenbot list-selectors\ndocker-compose exec server zenbot backfill <selector> --days <days>\n```\n\n#### Updating docker\n\nIn case you are behind on updates, you can run:\n```\ndocker pull deviavir/zenbot:unstable\n```\nAnd re-run `docker-compose up -d` to start the new image.\n\n`deviavir/zenbot` is automatically updated after every merge.\nYou can follow the tags/builds here: https://hub.docker.com/r/deviavir/zenbot/builds/\n\n## Selectors\n\nA \"selector\" is a short identifier that tells Zenbot which exchange and currency pair to act on. Use the form `{exchange_slug}.{asset}-{currency}`. A complete list of selectors your Zenbot install supports can be found with:\n\n```\nzenbot list-selectors\n\ngdax:\n  gdax.BTC-EUR   (BTC/EUR)\n  gdax.BTC-GBP   (BTC/GBP)\n  gdax.BTC-USD   (BTC/USD)\n  gdax.ETH-BTC   (ETH/BTC)\n  gdax.ETH-USD   (ETH/USD)\n  gdax.LTC-BTC   (LTC/BTC)\n  gdax.LTC-USD   (LTC/USD)\n\npoloniex:\n  poloniex.AMP-BTC   (Synereo AMP/BTC)\n  poloniex.ARDR-BTC   (Ardor/BTC)\n  poloniex.BCN-BTC   (Bytecoin/BTC)\n  poloniex.BCN-XMR   (Bytecoin/XMR)\n  poloniex.BCY-BTC   (BitCrystals/BTC)\n\n...etc\n```\n\n## Run a simulation for your selector\n\nTo backfill data (provided that your chosen exchange supports it), use:\n\n```\nzenbot backfill <selector> --days <days>\n```\n\nYou can also select start and end date:\n\n```\nzenbot backfill <selector> --start=\"Unixtime in ms\" --end=\"Unixtime in ms\"\n```\nNote you can use them separately.\n\nAfter you've backfilled, you can run a simulation:\n\n```\nzenbot sim <selector> [options]\n```\n\nFor a list of options for the `sim` command, use:\n\n```\nzenbot sim --help\n\n```\n\nFor additional options related to the strategy, use:\n\n```\nzenbot list-strategies\n```\n\n- By default the sim will start with 1000 units of currency. Override with `--currency_capital` and `--asset_capital`.\n- Open `sim_result.html` in your browser to see a candlestick graph with trades.\n\n### Screenshot and example result\n\nZenbot outputs an HTML graph of each simulation result. In the screenshot below, the pink arrows represent the bot buying (up arrow) and selling (down arrow) as it iterated the historical data of [GDAX](https://gdax.com/) exchange's BTC/USD product.\n\n![screenshot](https://cloud.githubusercontent.com/assets/106763/25983930/7e5f9436-369c-11e7-971b-ba2916442eea.png)\n\n```\nend balance 2954.50 (195.45%)\nbuy hold 1834.44 (83.44%)\nvs. buy hold 61.06%\n110 trades over 91 days (avg 1.21 trades/day)\n```\n\nZenbot started with $1,000 USD and ended with $2,954.50 after 90 days, making 195% ROI! In spite of a buy/hold strategy returning a respectable 83.44%, Zenbot has considerable potential for beating buy/holders.\n\n- Note that this example used tweaked settings to achieve optimal return: `--profit_stop_enable_pct=10`, `--profit_stop_pct=4`, `--trend_ema=36`, and `--sell_rate=-0.006`. Default parameters yielded around 65% ROI.\n- [Raw data](https://gist.github.com/carlos8f/b09a734cf626ffb9bb3bcb1ca35f3db4) from simulation\n\n## Running zenbot\n\nThe following command will launch the bot, and if you haven't touched `c.selector` in `conf.js`, will trade the default BTC/USD pair on GDAX.\n\n```\nzenbot trade [--paper] [--manual]\n```\n\nUse the `--paper` flag to only perform simulated trades while watching the market.\n\nUse the `--manual` flag to watch the price and account balance, but do not perform trades automatically.\n\nHere's how to run a different selector (example: ETH-BTC on Poloniex):\n\n```\nzenbot trade poloniex.eth-btc\n```\n\nFor a full list of options for the `trade` command, use:\n\n```\nzenbot trade --help\n\n  Usage: trade [options] [selector]\n\n  run trading bot against live market data\n\n  Options:\n\n    --conf <path>                     path to optional conf overrides file\n    --strategy <name>                 strategy to use\n    --order_type <type>               order type to use (maker/taker)\n    --paper                           use paper trading mode (no real trades will take place)\n    --manual                          watch price and account balance, but do not perform trades automatically\n    --non_interactive                 disable keyboard inputs to the bot\n    --currency_capital <amount>       for paper trading, amount of start capital in currency\n    --asset_capital <amount>          for paper trading, amount of start capital in asset\n    --avg_slippage_pct <pct>          avg. amount of slippage to apply to paper trades\n    --buy_pct <pct>                   buy with this % of currency balance\n    --deposit <amt>                   absolute initial capital (in currency) at the bots disposal (previously --buy_max_amt)\n    --sell_pct <pct>                  sell with this % of asset balance\n    --markdown_buy_pct <pct>          % to mark down buy price\n    --markup_sell_pct <pct>           % to mark up sell price\n    --order_adjust_time <ms>          adjust bid/ask on this interval to keep orders competitive\n    --order_poll_time <ms>            poll order status on this interval\n    --sell_stop_pct <pct>             sell if price drops below this % of bought price\n    --buy_stop_pct <pct>              buy if price surges above this % of sold price\n    --profit_stop_enable_pct <pct>    enable trailing sell stop when reaching this % profit\n    --profit_stop_pct <pct>           maintain a trailing stop this % below the high-water mark of profit\n    --max_sell_loss_pct <pct>         avoid selling at a loss pct under this float\n    --max_buy_loss_pct <pct>          avoid buying at a loss pct over this float\n    --max_slippage_pct <pct>          avoid selling at a slippage pct above this float\n    --rsi_periods <periods>           number of periods to calculate RSI at\n    --poll_trades <ms>                poll new trades at this interval in ms\n    --currency_increment <amount>     Currency increment, if different than the asset increment\n    --keep_lookback_periods <amount>  Keep this many lookback periods max.\n    --exact_buy_orders                instead of only adjusting maker buy when the price goes up, adjust it if price has changed at all\n    --exact_sell_orders               instead of only adjusting maker sell when the price goes down, adjust it if price has changed at all\n    --use_prev_trades                 load and use previous trades for stop-order triggers and loss protection\n    --min_prev_trades                 minimum number of previous trades to load if use_prev_trades is enabled, set to 0 to disable and use trade time instead\n    --disable_stats                   disable printing order stats\n    --reset_profit                    start new profit calculation from 0\n    --use_fee_asset                   Using separated asset to pay for fees. Such as binance's BNB or Huobi's HT\n    --run_for <minutes>               Execute for a period of minutes then exit with status 0 (default: null)\n    --debug                           output detailed debug info\n    -h, --help                        output usage information\n```\n\nand also:\n\n```\nzenbot list-strategies\n\nbollinger\n  description:\n    Buy when (Signal ≤ Lower Bollinger Band) and sell when (Signal ≥ Upper Bollinger Band).\n  options:\n    --period=<value>  period length, same as --period_length (default: 1h)\n    --period_length=<value>  period length, same as --period (default: 1h)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --bollinger_size=<value>  period size (default: 20)\n    --bollinger_time=<value>  times of standard deviation between the upper band and the moving averages (default: 2)\n    --bollinger_upper_bound_pct=<value>  pct the current price should be near the bollinger upper bound before we sell (default: 0)\n    --bollinger_lower_bound_pct=<value>  pct the current price should be near the bollinger lower bound before we buy (default: 0)\n\ncci_srsi\n  description:\n    Stochastic CCI Strategy\n  options:\n    --period=<value>  period length, same as --period_length (default: 20m)\n    --period_length=<value>  period length, same as --period (default: 20m)\n    --min_periods=<value>  min. number of history periods (default: 30)\n    --ema_acc=<value>  sideways threshold (0.2-0.4) (default: 0.03)\n    --cci_periods=<value>  number of RSI periods (default: 14)\n    --rsi_periods=<value>  number of RSI periods (default: 14)\n    --srsi_periods=<value>  number of RSI periods (default: 9)\n    --srsi_k=<value>  %K line (default: 5)\n    --srsi_d=<value>  %D line (default: 3)\n    --oversold_rsi=<value>  buy when RSI reaches or drops below this value (default: 18)\n    --overbought_rsi=<value>  sell when RSI reaches or goes above this value (default: 85)\n    --oversold_cci=<value>  buy when CCI reaches or drops below this value (default: -90)\n    --overbought_cci=<value>  sell when CCI reaches or goes above this value (default: 140)\n    --constant=<value>  constant (default: 0.015)\nIf you have questions about this strategy, contact me... @talvasconcelos\n\ncrossover_vwap\n  description:\n    Estimate trends by comparing \"Volume Weighted Average Price\" to the \"Exponential Moving Average\".\n  options:\n    --period=<value>  period length, same as --period_length (default: 120m)\n    --period_length=<value>  period length, same as --period (default: 120m)\n    --emalen1=<value>  Length of EMA 1 (default: 30)\n    --smalen1=<value>  Length of SMA 1 (default: 108)\n    --smalen2=<value>  Length of SMA 2 (default: 60)\n    --vwap_length=<value>  Min periods for vwap to start (default: 10)\n    --vwap_max=<value>  Max history for vwap. Increasing this makes it more sensitive to short-term changes (default: 8000)\n\ndema\n  description:\n    Buy when (short ema > long ema) and sell when (short ema < long ema).\n  options:\n    --period=<value>  period length (default: 1h)\n    --min_periods=<value>  min. number of history periods (default: 21)\n    --ema_short_period=<value>  number of periods for the shorter EMA (default: 10)\n    --ema_long_period=<value>  number of periods for the longer EMA (default: 21)\n    --up_trend_threshold=<value>  threshold to trigger a buy signal (default: 0)\n    --down_trend_threshold=<value>  threshold to trigger a sold signal (default: 0)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 9)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 80)\n    --noise_level_pct=<value>  do not trade when short ema is with this % of last short ema, 0 disables this feature (default: 0)\n\nmacd\n  description:\n    Buy when (MACD - Signal > 0) and sell when (MACD - Signal < 0).\n  options:\n    --period=<value>  period length, same as --period_length (default: 1h)\n    --period_length=<value>  period length, same as --period (default: 1h)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --ema_short_period=<value>  number of periods for the shorter EMA (default: 12)\n    --ema_long_period=<value>  number of periods for the longer EMA (default: 26)\n    --signal_period=<value>  number of periods for the signal EMA (default: 9)\n    --up_trend_threshold=<value>  threshold to trigger a buy signal (default: 0)\n    --down_trend_threshold=<value>  threshold to trigger a sold signal (default: 0)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 25)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 70)\n\nmomentum\n  description:\n    MOM = Close(Period) - Close(Length)\n  options:\n    --momentum_size=<value>  number of periods to look back for momentum (default: 5)\n\nneural\n  description:\n    Use neural learning to predict future price. Buy = mean(last 3 real prices) < mean(current & last prediction)\n  options:\n    --period=<value>  period length - make sure to lower your poll trades time to lower than this value. Same as --period_length (default: 1m)\n    --period_length=<value>  period length - make sure to lower your poll trades time to lower than this value. Same as --period (default: 1m)\n    --activation_1_type=<value>  Neuron Activation Type: sigmoid, tanh, relu (default: sigmoid)\n    --neurons_1=<value>  Neurons in layer 1 Shoot for atleast 100 (default: 1)\n    --depth=<value>  Rows of data to predict ahead for matches/learning (default: 1)\n    --selector=<value>  Selector (default: Gdax.BTC-USD)\n    --min_periods=<value>  Periods to calculate learn from (default: 1000)\n    --min_predict=<value>  Periods to predict next number from (default: 1)\n    --momentum=<value>  momentum of prediction (default: 0.9)\n    --decay=<value>  decay of prediction, use teeny tiny increments (default: 0.1)\n    --threads=<value>  Number of processing threads you'd like to run (best for sim) (default: 1)\n    --learns=<value>  Number of times to 'learn' the neural network with past data (default: 2)\n\nnoop\n  description:\n    Just do nothing. Can be used to e.g. for training the strategy.\n  options:\n    --period=<value>  period length, same as --period_length (default: 30m)\n    --period_length=<value>  period length, same as --period (default: 30m)\n\nrsi\n  description:\n    Attempts to buy low and sell high by tracking RSI high-water readings.\n  options:\n    --period=<value>  period length, same as --period_length (default: 2m)\n    --period_length=<value>  period length, same as --period (default: 2m)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --rsi_periods=<value>  number of RSI periods\n    --oversold_rsi=<value>  buy when RSI reaches or drops below this value (default: 30)\n    --overbought_rsi=<value>  sell when RSI reaches or goes above this value (default: 82)\n    --rsi_recover=<value>  allow RSI to recover this many points before buying (default: 3)\n    --rsi_drop=<value>  allow RSI to fall this many points before selling (default: 0)\n    --rsi_divisor=<value>  sell when RSI reaches high-water reading divided by this value (default: 2)\n\nsar\n  description:\n    Parabolic SAR\n  options:\n    --period=<value>  period length, same as --period_length (default: 2m)\n    --period_length=<value>  period length, same as --period (default: 2m)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --sar_af=<value>  acceleration factor for parabolic SAR (default: 0.015)\n    --sar_max_af=<value>  max acceleration factor for parabolic SAR (default: 0.3)\n\nspeed\n  description:\n    Trade when % change from last two 1m periods is higher than average.\n  options:\n    --period=<value>  period length, same as --period_length (default: 1m)\n    --period_length=<value>  period length, same as --period (default: 1m)\n    --min_periods=<value>  min. number of history periods (default: 3000)\n    --baseline_periods=<value>  lookback periods for volatility baseline (default: 3000)\n    --trigger_factor=<value>  multiply with volatility baseline EMA to get trigger value (default: 1.6)\n\nsrsi_macd\n  description:\n    Stochastic MACD Strategy\n  options:\n    --period=<value>  period length, same as --period_length (default: 30m)\n    --period_length=<value>  period length, same as --period (default: 30m)\n    --min_periods=<value>  min. number of history periods (default: 200)\n    --rsi_periods=<value>  number of RSI periods\n    --srsi_periods=<value>  number of RSI periods (default: 9)\n    --srsi_k=<value>  %D line (default: 5)\n    --srsi_d=<value>  %D line (default: 3)\n    --oversold_rsi=<value>  buy when RSI reaches or drops below this value (default: 20)\n    --overbought_rsi=<value>  sell when RSI reaches or goes above this value (default: 80)\n    --ema_short_period=<value>  number of periods for the shorter EMA (default: 24)\n    --ema_long_period=<value>  number of periods for the longer EMA (default: 200)\n    --signal_period=<value>  number of periods for the signal EMA (default: 9)\n    --up_trend_threshold=<value>  threshold to trigger a buy signal (default: 0)\n    --down_trend_threshold=<value>  threshold to trigger a sold signal (default: 0)\n\nstddev\n  description:\n    Buy when standard deviation and mean increase, sell on mean decrease.\n  options:\n    --period=<value>  period length, set poll trades to 100ms, poll order 1000ms. Same as --period_length (default: 100ms)\n    --period_length=<value>  period length, set poll trades to 100ms, poll order 1000ms. Same as --period (default: 100ms)\n    --trendtrades_1=<value>  Trades for array 1 to be subtracted stddev and mean from (default: 5)\n    --trendtrades_2=<value>  Trades for array 2 to be calculated stddev and mean from (default: 53)\n    --min_periods=<value>  min_periods (default: 1250)\n\nta_ema\n  description:\n    Buy when (EMA - last(EMA) > 0) and sell when (EMA - last(EMA) < 0). Optional buy on low RSI.\n  options:\n    --period=<value>  period length, same as --period_length (default: 10m)\n    --period_length=<value>  period length, same as --period (default: 10m)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --trend_ema=<value>  number of periods for trend EMA (default: 20)\n    --neutral_rate=<value>  avoid trades if abs(trend_ema) under this float (0 to disable, \"auto\" for a variable filter) (default: 0.06)\n    --oversold_rsi_periods=<value>  number of periods for oversold RSI (default: 20)\n    --oversold_rsi=<value>  buy when RSI reaches this value (default: 30)\n\nta_macd\n  description:\n    Buy when (MACD - Signal > 0) and sell when (MACD - Signal < 0).\n  options:\n    --period=<value>  period length, same as --period_length (default: 1h)\n    --period_length=<value>  period length, same as --period (default: 1h)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --ema_short_period=<value>  number of periods for the shorter EMA (default: 12)\n    --ema_long_period=<value>  number of periods for the longer EMA (default: 26)\n    --signal_period=<value>  number of periods for the signal EMA (default: 9)\n    --up_trend_threshold=<value>  threshold to trigger a buy signal (default: 0)\n    --down_trend_threshold=<value>  threshold to trigger a sold signal (default: 0)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 25)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 70)\n\nta_macd_ext\n  description:\n    Buy when (MACD - Signal > 0) and sell when (MACD - Signal < 0) with controllable talib TA types\n  options:\n    --period=<value>  period length, same as --period_length (default: 1h)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --ema_short_period=<value>  number of periods for the shorter EMA (default: 12)\n    --ema_long_period=<value>  number of periods for the longer EMA (default: 26)\n    --signal_period=<value>  number of periods for the signal EMA (default: 9)\n    --fast_ma_type=<value>  fast_ma_type of talib: SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 (default: null)\n    --slow_ma_type=<value>  slow_ma_type of talib: SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 (default: null)\n    --signal_ma_type=<value>  signal_ma_type of talib: SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 (default: null)\n    --default_ma_type=<value>  set default ma_type for fast, slow and signal. You are able to overwrite single types separately (fast_ma_type, slow_ma_type, signal_ma_type) (default: SMA)\n    --up_trend_threshold=<value>  threshold to trigger a buy signal (default: 0)\n    --down_trend_threshold=<value>  threshold to trigger a sold signal (default: 0)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 25)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 70)\n\nta_trix\n  description:\n    TRIX - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA with rsi oversold\n  options:\n    --period=<value>  period length eg 10m (default: 5m)\n    --timeperiod=<value>  timeperiod for TRIX (default: 30)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 25)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 70)\n\ntrend_ema (default)\n  description:\n    Buy when (EMA - last(EMA) > 0) and sell when (EMA - last(EMA) < 0). Optional buy on low RSI.\n  options:\n    --period=<value>  period length, same as --period_length (default: 2m)\n    --period_length=<value>  period length, same as --period (default: 2m)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --trend_ema=<value>  number of periods for trend EMA (default: 26)\n    --neutral_rate=<value>  avoid trades if abs(trend_ema) under this float (0 to disable, \"auto\" for a variable filter) (default: auto)\n    --oversold_rsi_periods=<value>  number of periods for oversold RSI (default: 14)\n    --oversold_rsi=<value>  buy when RSI reaches this value (default: 10)\n\nta_ppo\n  description:\n     PPO - Percentage Price Oscillator with rsi oversold\n  options:\n    --period=<value>  period length, same as --period_length (default: 10m)\n    --ema_short_period=<value>  number of periods for the shorter EMA (default: 12)\n    --ema_long_period=<value>  number of periods for the longer EMA (default: 26)\n    --signal_period=<value>  number of periods for the signal EMA (default: 9)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 25)\n    --ma_type==<value> moving average type of talib: SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 (default: SMA)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 70)\n\nta_ultosc\n  description:\n    ULTOSC - Ultimate Oscillator with rsi oversold\n  options:\n    --period=<value>  period length eg 5m (default: 5m)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --signal=<value>  Provide signal and indicator \"simple\" (buy@65, sell@50), \"low\" (buy@65, sell@30), \"trend\" (buy@30, sell@70) (default: simple)\n    --timeperiod1=<value>  talib ULTOSC timeperiod1 (default: 7)\n    --timeperiod2=<value>  talib ULTOSC timeperiod2 (default: 14)\n    --timeperiod3=<value>  talib ULTOSC timeperiod3 (default: 28)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 25)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 90)\n\nti_hma\n  description:\n    HMA - Hull Moving Average\n  options:\n    --period=<value>  period length eg 10m (default: 15m)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --trend_hma=<value>  number of periods for trend hma (default: 36)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 25)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 70)\n\ntrendline\n  description:\n    Calculate a trendline and trade when trend is positive vs negative.\n  options:\n    --period=<value>  period length (default: 30s)\n    --period_length=<value>  period length (default: 30s)\n    --lastpoints=<value>  Number of trades for short trend average (default: 100)\n    --avgpoints=<value>  Number of trades for long trend average (default: 1000)\n    --lastpoints2=<value>  Number of trades for short trend average (default: 10)\n    --avgpoints2=<value>  Number of trades for long trend average (default: 100)\n    --min_periods=<value>  Basically avgpoints + a BUNCH of more preroll periods for anything less than 5s period (default: 15000)\n    --markup_sell_pct=<value>  test (default: 0)\n    --markdown_buy_pct=<value>  test (default: 0)\n\ntrust_distrust\n  description:\n    Sell when price higher than $sell_min% and highest point - $sell_threshold% is reached. Buy when lowest price point + $buy_threshold% reached.\n  options:\n    --period=<value>  period length, same as --period_length (default: 30m)\n    --period_length=<value>  period length, same as --period (default: 30m)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --sell_threshold=<value>  sell when the top drops at least below this percentage (default: 2)\n    --sell_threshold_max=<value>  sell when the top drops lower than this max, regardless of sell_min (panic sell, 0 to disable) (default: 0)\n    --sell_min=<value>  do not act on anything unless the price is this percentage above the original price (default: 1)\n    --buy_threshold=<value>  buy when the bottom increased at least above this percentage (default: 2)\n    --buy_threshold_max=<value>  wait for multiple buy signals before buying (kill whipsaw, 0 to disable) (default: 0)\n    --greed=<value>  sell if we reach this much profit (0 to be greedy and either win or lose) (default: 0)\n\nwavetrend\n  description:\n    Buy when (Signal < Oversold) and sell when (Signal > Overbought).\n  options:\n    --period=<value>  period length, same as --period_length (default: 1h)\n    --period_length=<value>  period length, same as --period (default: 1h)\n    --min_periods=<value>  min. number of history periods (default: 21)\n    --wavetrend_channel_length=<value>  wavetrend channel length (default: 10)\n    --wavetrend_average_length=<value>  wavetrend average length (default: 21)\n    --wavetrend_overbought_1=<value>  wavetrend overbought limit 1 (default: 60)\n    --wavetrend_overbought_2=<value>  wavetrend overbought limit 2 (default: 53)\n    --wavetrend_oversold_1=<value>  wavetrend oversold limit 1 (default: -60)\n    --wavetrend_oversold_2=<value>  wavetrend oversold limit 2 (default: -53)\n    --wavetrend_trends=<value>  act on trends instead of limits (default: false)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 9)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 80)\n```\n\n## Interactive controls\n\nWhile the `trade` command is running, Zenbot will respond to these keypress commands:\n\n- Pressing `b` will trigger a buy, `s` for sell, and `B` and `S` for market (taker) orders.\n- Pressing `c` or `C` will cancel any active orders.\n- Pressing `m` or `M` will toggle manual mode (`--manual`)\n\nThese commands can be used to override what the bot is doing. Or, while running with the `--manual` flag, this allows you to make all the trade decisions yourself.\n\n### noop strategy\n\nIf you want to use the bot without it trading for you, but just use it for the balance overview and manual trades, you can start the bot with `--strategy noop`, the bot will not trade automatically.\n\n## Conf/argument override files\n\nTo run `trade` or `sim` commands with a pre-defined set of options, use:\n\n```\nzenbot trade --conf <path>\n```\n\nWhere `<path>` points to a JS file that exports an object hash that overrides any conf or argument variables. For example, this file will run gdax.ETH-USD with options specific for that market:\n\n```\nvar c = module.exports = {}\n\n// ETH settings (note: this is just an example, not necessarily recommended)\nc.selector = 'gdax.ETH-USD'\nc.period = '10m'\nc.trend_ema = 20\nc.neutral_rate = 0.1\nc.oversold_rsi_periods = 20\nc.max_slippage_pct = 10\nc.order_adjust_time = 10000\n```\n\n## GUI\n\nA basic web UI is available at the url stated during startup.  This port can be configured in the conf.js or randomly assigned.\nIn it's infancy, there are a few caveats with the current UI.\n- In order to have statistics displayed, they must first be dumped from the CLI.  Pressing `D` will refresh the statistics on each refresh of the dashboard.\n- Currently the data is mostly static with the exception of the tradingview charts.\n- Currently only READ-ONLY\n\n## Reading the console output\n\n![console](https://rawgit.com/deviavir/zenbot/master/assets/console.png)\n\nFrom left to right:\n\n- Timestamp in local time (grey, blue when showing \"live\" stats)\n- Asset price in currency (yellow)\n- Percent change of price since last period (red/green)\n- Volume in asset since last period (grey)\n- [RSI](http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:relative_strength_index_rsi) ANSI graph (red/green)\n- `trend_ema_rate` (red/green, explained below)\n- Current signal or action, including `buy`, `sell`, `buying`, `selling`, `bought`, `sold` and `last_trade_worth` (percent change in the trend direction since last buy/sell)\n- Account balance (asset)\n- Account balance (currency)\n- Profit or loss percent (can be reset with `--reset_profit`)\n- Gain or loss vs. buy/hold strategy\n\n## Strategies\n\n### The `trend_ema` strategy (default)\n\n- The default strategy is called `trend_ema` and resides at `./extensions/strategies/trend_ema`.\n- Defaults to using a 2m period, but you can override this with adding e.g. `--period=5m` to the `sim` or `trade` commands.\n- Computes the 26-period EMA of the current price, and calculates the percent change from the last period's EMA to get the `trend_ema_rate`\n- Considers `trend_ema_rate >= 0` an upwards trend and `trend_ema_rate < 0` a downwards trend\n- Filters out low values (whipsaws) by `neutral_rate`, which when set to `auto`, uses the standard deviation of the `trend_ema_rate` as a variable noise filter.\n- Buys at the beginning of upwards trend, sells at the beginning of downwards trend\n- If `oversold_rsi` is set, tries to buy when the RSI dips below that value, and then starts to recover (a counterpart to `--profit_stop_enable_pct`, which sells when a percent of profit is reached, and then dips)\n- The bot will always try to avoid trade fees, by using post-only orders and thus being a market \"maker\" instead of a \"taker\". Some exchanges will, however, not offer maker discounts.\n\n### The `macd` strategy\n\nThe moving average convergence divergence calculation is a lagging indicator, used to follow trends.\n\n- Can be very effective for trading periods of 1h, with a shorter period like 15m it seems too erratic and the Moving Averages are kind of lost.\n- It's not firing multiple 'buy' or 'sold' signals, only one per trend, which seems to lead to a better quality trading scheme.\n- Especially when the bot will enter in the middle of a trend, it avoids buying unless it's the beginning of the trend.\n\n### The `rsi` strategy\n\nAttempts to buy low and sell high by tracking RSI high-water readings.\n\n- Effective in sideways markets or markets that tend to recover after price drops.\n- Risky to use in bear markets, since the algorithm depends on price recovery.\n- If the other strategies are losing you money, this strategy may perform better, since it basically \"reverses the signals\" and anticipates a reversal instead of expecting the trend to continue.\n\n### The `sar` strategy\n\nUses a [Parabolic SAR](http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:parabolic_sar) indicator to trade when SAR trend reverses.\n\n- Tends to generate earlier signals than EMA-based strategies, resulting in better capture of highs and lows, and better protection against quick price drops.\n- Does not perform well in sideways (non-trending) markets, generating more whipsaws than EMA-based strategies.\n- Most effective with short period (default is 2m), which means it generates 50-100 trades/day, so only usable on GDAX (with 0% maker fee) at the moment.\n- Tested live, [results here](https://github.com/carlos8f/zenbot/pull/246#issuecomment-307528347)\n\n### The `speed` strategy\n\nTrade when % change from last two 1m periods is higher than average.\n\n**This strategy is experimental and has WILDLY varying sim results. NOT RECOMMENDED YET.**\n\n- Like the sar strategy, this generates early signals and can be effective in volatile markets and for sudden price drop protection.\n- Its weakness is that it performs very poorly in low-volatility situations and misses signals from gradually developing trends.\n\n### Tips for tweaking options\n\n- Trade frequency is adjusted with a combination of `--period` and `--trend_ema`. For example, if you want more frequent trading, try `--period=5m` or `--trend_ema=15` or both. If you get too many ping-pong trades or losses from fees, try increasing `period` or `trend_ema` or increasing `neutral_rate`.\n- Sometimes it's tempting to tell the bot trade very often. Try to resist this urge, and go for quality over quantity, since each trade comes with a decent amount of slippage and whipsaw risk.\n- `--oversold_rsi=<rsi>` will try to buy when the price dives. This is one of the ways to get profit above buy/hold, but setting it too high might result in a loss if the price continues to fall.\n- In a market with predictable price surges and corrections, `--profit_stop_enable_pct=10` will try to sell when the last buy hits 10% profit and then drops to 9% (the drop % is set with `--profit_stop_pct`). However in strong, long uptrends this option may end up causing a sell too early.\n- For Kraken and GDAX you may wish to use `--order_type=\"taker\"`, this uses market orders instead of limit orders. You usually pay a higher fee, but you can be sure that your order is filled instantly. This means that the sim will more closely match your live trading. Please note that GDAX does not charge maker fees (limit orders), so you will need to choose between not paying fees and running the risk orders do not get filled on time, or paying somewhat high % of fees and making sure your orders are always filled on time.\n\n## Notifiers\n\nZenbot employs various notifiers to keep you up to date on the bot's actions. We currently send a notification on a buy and on a sell signal.\n\n### pushbullet\n\nSupply zenbot with your api key and device ID and we will send your notifications to your device.\nhttps://www.pushbullet.com/\n\n### Slack\n\nSupply zenbot with a webhook URI and zenbot will push notifications to your webhook.\nhttps://slack.com/\n\n### XMPP\n\nSupply zenbot with your XMPP credentials and zenbot will send notifications by connecting to your XMPP, sending the notification, and disconnecting.\nhttps://xmpp.org/\n\n### IFTTT\n\nSupply zenbot with your IFTTT maker key and zenbot will push notifications to your IFTTT.\nhttps://ifttt.com/maker_webhooks\n\n### DISCORD\n\nSupply zenbot with your Discord webhook id and webhook token zenbot will push notifications to your Discord channel.\n\nHow to add a webhook to a Discord channel\nhttps://support.discordapp.com/hc/en-us/articles/228383668\n\n### Prowl\n\nSupply zenbot with your Prowl API key and zenbot will push notifications to your Prowl enabled devices.\nhttps://www.prowlapp.com/\n\n### TextBelt\n\nSupply zenbot with your TextBelt API key and zenbot will send SMS notifications to your cell phone.\nhttps://www.textbelt.com/\n\n### Telegram\nSupply zenbot with your Telegram bot token and chat id zenbot will push notifications to your Telegram chat.\nhttps://telegram.org/\n\n### ADAMANT Messenger\n\nSupply Zenbot with recipients' ADM addresses, sender's account passPhrase and node list and Zenbot will push notifications to ADAMANT chats.\nhttps://adamant.im/\n\n## Rest API\n\nYou can enable a Rest API for Zenbot by enabling the following configuration\n```\nc.output.api = {}\nc.output.api.on = true\nc.output.api.port = 0 // 0 = random port\n```\nYou can choose a port, or pick 0 for a random port.\n\nOnce you did that, you can call the API on: http://\\<hostname\\>:\\<port\\>/trades\n\n## Manual trade tools\n\nZenbot's order execution engine can also be used for manual trades. Benefits include:\n\n- Avoids market-order fees by using a short-term limit order\n- Can automatically determine order size from account balance\n- Adjusts order every 30s (if needed) to ensure quick execution\n- If an order is partially filled, attempts to re-order with remaining size\n\nThe command to buy is:\n\n```\nzenbot buy <selector> [--size=<size>] [--pct=<pct>]\n```\n\nFor example, to use your remaining USD balance in GDAX to buy Bitcoin:\n\n```\nzenbot buy gdax.BTC-USD\n```\n\nOr to sell 10% of your BTC,\n\n```\nzenbot sell gdax.BTC-USD --pct=10\n```\n"
  },
  {
    "path": "docs/developers.md",
    "content": "## Zenbot exchange API\nThis document is written to help developers implement new extensions for Zenbot.\n\nIt is reverse engineered from inspecting the Zenbot files and the GDAX extension and is not a definitive guide for developing an extension.\n\nAny contribution that makes this document better is certainly welcome.\n\nThe document is an attempt to describe the interface functions used for communication with an exchange and a few helper functions. Each function has a set of calling parameters and return values and statuses\n\nThe input parameters are packed in the \"opts\" object, and the results from invoking the function are returned in an object.\n\n## Error handling\n\nErrors are returned to calling program through a callback functon of this form:\n```javascript\ncb (err)\n```\nThe expected content of \"err\" is as follows:\n```javascript\n  { code: 'HTTP_STATUS', body: body }\n```\n\n**Non recoverable errors** should be handled by the actual extension function. A typical error is \"Page not found\", which most likely is caused by a malformed URL. Such errors should return a descriptive message and force a program exit.\n\n**Recoverable errors** affecting trades should be handled by zenbot, while others could be handled in the extension layer. This needs to be clarified.\n\n\nSome named errors are already handled by the main program (see getTrades below). These are:\n```\n  'ETIMEDOUT', // possibly recoverable\n  'ENOTFOUND', // not recoverable (404?)\n  'ECONNRESET' // possibly recoverable\n```\nZenbot may have some GDAX-specific code. In particular that pertains to return values from exchange functions. Return values in general should be handled in a exchange agnostic and standardized way to make it easiest possible to write extensions.\n\n**Some variables in the \"exchange\" object are worth mentioning**\n```\n  name: 'some_exchange_name'\n  historyScan: 'forward', 'backward' or false\n  makerFee: exchange_maker_fee (numeric) // Set by a function if the exchange supports it\n  takerFee: exchange_taker_fee (numeric) // Else set with a constant\n  backfillRateLimit: some_value_fitting_exchange_policy or 0\n```\n## Functions\n\n**Connecting to the exchange for public requests**\n```javascript\nfuncion publicClient ()\n```\nCalled from:\n- extension/*/exchange.js\n\nReturns a \"client\" object for use in exchange public access functions.\n\n**Connecting and authenticating private requests**\n```javascript\nfunction authedClient ()\n```\nCalled from:\n- extension/*/exchange.js\n\nThe function gets parameters from conf.js in the c object\nIn particular these are:\n```\n  c.<exchange>.key\n  c.<exchange>.secret\n```\nFor specific exchanges also:\n```\n  c.bitstamp.client_id\n  c.gdax.passphrase\n```\nThe functionm returns a \"client\" object for use in exchange authenticated access functions\n\n**Helper function for returning conformant error messages**\n```javascript\nfunction statusErr (resp, body)\n```\nCalled from:\n- extension/*/exchange.js\n\n**Getting public history and trade data**\n```javascript\ngetTrades: function (opts, cb)\n```\nCalled from:\n- https://github.com/carlos8f/zenbot/blob/master/commands/backfill.js\n- https://github.com/carlos8f/zenbot/blob/master/commands/trade.js\n\nInput:\n```\n  opts.product_id\n  opts.from\n  opts.to\n```\nReturn:\n```\n  trades.length\n  (array of?) {\n    trade_id: some_id\n    time: 'transaction_time',\n    size: trade_size,\n    price: trade_prize,\n    side : 'buy' or 'sell'\n  }\n```\nExpected error codes if error:\n```\n  err.code\n\n  'ETIMEDOUT', // possibly recoverable\n  'ENOTFOUND', // not recoverable\n  'ECONNRESET' // possibly recoverable\n```\nCallback:\n```javascript\ncb(null, trades)\n```\n\n**Getting wallet balances**\n```javascript\ngetBalance: function (opts, cb)\n```\nCalled from:\n- https://github.com/carlos8f/zenbot/blob/master/lib/engine.js\n\nInput:\n```\n  opts.currency\n  opts.asset\n```\nReturn:\n```\n  balance.asset\n  balance.asset_hold\n  balance.currency\n  balance.currency_hold\n```\nCallback:\n```javascript\ncb(null, balance)\n```\nComment:\nAsset vs asset_hold and currency vs currency_hold is kind of mysterious to me.\nFor most exchanges I would just return something similar to available_asset and available_currency\nFor exchanges that returns some other values, I would do the calculation on the extension layer\nand not leave it to engine.js, because available_asset and available_currency are only interesting\nvalues from a buy/sell view, IMHO. If someone knows better, please clarify\n\n**Getting public ticker data**\n```javascript\ngetQuote: function (opts, cb)\n```\nCalled from:\n- https://github.com/carlos8f/zenbot/blob/master/lib/engine.js\n- https://github.com/carlos8f/zenbot/blob/master/commands/buy.js\n- https://github.com/carlos8f/zenbot/blob/master/commands/sell.js\n\nInput:\n```\n  opts.product_id\n```\nReturn:\n```\n  {bid: value_of_bid, ask: value_of_ask}\n```\nCallback:\n```javascript\ncb(null, {bid: body.bid, ask: body.ask})\n```\n\n**Canceling a placed order**\n```javascript\ncancelOrder: function (opts, cb)\n```\nCalled from:\n- https://github.com/carlos8f/zenbot/blob/master/lib/engine.js\n\nInput:\n```\n  opts.order_id\n```\nCallback:\n```javascript\ncb()\n```\n\n**Buying function**\n```javascript\nbuy: function (opts, cb)\n```\nCalled from:\n- https://github.com/carlos8f/zenbot/blob/master/lib/engine.js\n\nInput:\n```\n  opts.price\n  opts.size\n```\nReturns:\n```\n\n```\nCallback:\n```javascript\ncb(null, body)\n```\n\n**Selling function**\n```javascript\nsell: function (opts, cb)\n```\nCalled from:\n- https://github.com/carlos8f/zenbot/blob/master/lib/engine.js\n\nInput:\n```\n  opts.price\n  opts.size\n```\nReturns:\n```\n\n```\nCallback:\n```javascript\ncb(null, body)\n```\n\n**Getting data from a placed order**\n```javascript\ngetOrder: function (opts, cb)\n```\nCalled from:\n- https://github.com/carlos8f/zenbot/blob/master/lib/engine.js\n\nInput:\n```\n  opts.order_id\n  opts.product_id\n```\nReturns:\n```\n  order.status\n```\nExpected values in https://github.com/carlos8f/zenbot/blob/master/lib/engine.js:\n- 'done', 'rejected'\n  If 'rejected' order.reject_reason = some_reason ('post only')\nIs '*post only*' spesific for GDAX?\nComment: Needs some clarifying\n\nCallback:\n```javascript\ncb(null, body)\n```\n\n**Getting details from an executed trade**\n```javascript\ngetCursor: function (trade)\n```\nCalled from:\n- https://github.com/carlos8f/zenbot/blob/master/commands/backfill.js\n- https://github.com/carlos8f/zenbot/blob/master/commands/trade.js\n\nInput:\n```\n  trade - This is either a trade or a timestamp\n```\nReturn:\n```\n  trade id or timestamp. It really depends on the exchange API. Some, like Gemini, use only timestamps and will only need to return a timestamp. Others, like GDAX operate on trade ids and it is expected to return 'undefined' when passed an initial timestamp to start backfilling.\n\n  Since backfilling requires a timestamp to select the numbers of days to backfill, it may not be possible to use this option if the exchange does not use timestamps for historical data. In this case return 'undefined' when passed a timestamp value.\n\n```\nCallback:\n```javascript\n\n```\n\n## Extensions\n\nZenbot offers various extensions, arguably it is what makes zenbot so awesome.\n\n### Extending notifiers\n\nIf you wish to add a new notifier, please follow these steps:\n\n- create a your-service-name.js in `/extensions/notifiers/` make sure to use the same function returns as other notifiers\n- add config bootstrap to `/conf-sample.js`\n- send us a PR with your new service :)\n"
  },
  {
    "path": "docs/exchanges/bitstamp.md",
    "content": "# Zenbot Tips for Bitstamp\n\nThe following tips can increase reliability in using Zenbot with Bitstamp.\n\n## 0 Balance\n\nThis is often an indication of a mistake in your conf `c.bitstamp.client_id` value. \n\nThis value should be set to the value of your Customer ID. You can find this ID by going to My Account in Bitstamp: https://www.bitstamp.net/account/balance/\n\n"
  },
  {
    "path": "docs/exchanges/gdax.md",
    "content": "# Zenbot Tips for GDAX\n\nThe following tips can increase reliability in using Zenbot with GDAX (Coinbase Pro).\n\n## Sandbox\nA public sandbox is available for testing API connectivity and web trading. While the sandbox only hosts a subset of the production order books, all of the exchange functionality is available. Additionally, in this environment you are allowed to add unlimited fake funds for testing.\n\nAdjust the config file to enable (true) or disable (false) the use of the sandbox. Ensure the correct API credentials (live or sandbox) are inputted in the config file - otherwise you will recieve an API error. Additionally you will not use the --paper option since it will be conducting (simulated) trades in the sandbox. \n\nThe default setting is set to false.\n\nExample of the Sandbox enabled:\n```\nc.gdax.sandbox = process.env.ZENBOT_GDAX_SANDBOX || true\n```\n\n## Fee Limits\n\nGDAX (Coinbase Pro) uses a maker-taker fee model for determining its trading fees. Orders that provide liquidity (maker orders) are charged different fees than orders that take liquidity (taker orders). Fees are calculated based on the current pricing tier you are in when the order is placed, and not on the tier you would be in after a trade is completed.\n\nSee your GDAX (Coinbase Pro) fees here - https://pro.coinbase.com/orders/fees.\n\nTo adjust the fee limits to match your current pricing tier, modifiy the following javascript file. \n\n```\nextensions/exchanges/gdax/exchange.js\n```\n\nLook for this line:\n```\n  var exchange = {\n    name: 'gdax',\n    historyScan: 'backward',\n    makerFee: 0.35,\n    takerFee: 0.35,\n    backfillRateLimit: 335,\n```\n\nAdjust the makerFee and takerFee, for example:\n```\n  var exchange = {\n    name: 'gdax',\n    historyScan: 'backward',\n    makerFee: 0.5,\n    takerFee: 0.5,\n    backfillRateLimit: 335,\n```\n"
  },
  {
    "path": "docs/exchanges/kraken.md",
    "content": "# Zenbot Tips for Kraken\n\nThe following tips can increase reliability in using Zenbot with Kraken.\n\n## API Rate Limit\n\nThese errors mean that Zenbot is sending too many requests to Kraken in a given amount of time:\n> Kraken API error - unable to call getTrades (Error: Kraken API returned error: API:Rate limit exceeded), retrying in\n\nThere are two ways past this:\n* Increase your [Kraken Account Tier](https://support.kraken.com/hc/en-us/articles/206548367-What-is-the-API-call-rate-limit-). Higher tier accounts have a more relaxed rate limit. \n* Increase poll timers in the zenbot `conf.js`. This reduces how many requests Zenbot is sending in a given amount of time.\n\n### Poll Timers\nThe following `conf.js` settings have helped prevent this from happening:\n```javascript\n// Poll order status every 3 seconds\nc.order_poll_time = 3000\n\n// Poll new trades every 6 seconds\nc.poll_trades = 6000\n```\n\n## Kraken API returned error: API:Invalid nonce\n\nThis is a common error when calling exchange APIs on a regular basis:\n>Kraken API warning - unable to call getBalance (Error: Kraken API returned error: API:Invalid nonce), retrying in 0.15s\n\nNonce errors aren't usually an issue but can introduce a slight delay in your trading. In Kraken, you can increase your API Nonce window, reducing the chances of this happening. \n\nLog into your Kraken account, navigate through *Settings* then *API*, select your API Key and increase your *Nonce Window* for the API Key used by Zenbot. \n\n\n## Orders Placed & Forgotten\n\nI've seen Zenbot getting stuck with `Selling` or `Buying`. Checking for open orders in Kraken, I see the open order there, but Zenbot doesn't seem to have realised the order was placed. This usually happens while the Kraken API is under high load.\n\nThe solution to this is a simple change in this javascript file:\n```\nnode_modules/kraken-api/kraken.js\n```\n\nLook for this line:\n```\n\tvar config = {\n\t\turl: 'https://api.kraken.com',\n\t\tversion: '0',\n\t\tkey: key,\n\t\tsecret: secret,\n\t\totp: otp,\n\t\ttimeoutMS: 5000\n\t};\n```\n\nIncrease the timeoutMS value, for example:\n```\n\tvar config = {\n\t\turl: 'https://api.kraken.com',\n\t\tversion: '0',\n\t\tkey: key,\n\t\tsecret: secret,\n\t\totp: otp,\n\t\ttimeoutMS: 30000\n\t};\n```"
  },
  {
    "path": "docs/exchanges/readme.md",
    "content": "# Zenbot Exchange API Tips\nSince Zenbot supports a number of exchanges, it's becoming harder to provide \"default\" polling settings that work well with all exchange APIs. The goal of this document is to share any settings or tweaks that we find to increase reliability. Anything from proventing API rate limit lockouts (GDAX) to ensuring orders are tracked properly (Kraken).\n\nAny contribution that makes this better for everyone is certainly welcome.\n\n## Exchanges\n\n* [Bitstamp](bitstamp.md)\n* [GDAX](gdax.md)\n* [Kraken](kraken.md)\n\n\n"
  },
  {
    "path": "docs/installation/README.md",
    "content": "### Install Zenbot\n\nRun in your console:\n```\ngit clone https://github.com/deviavir/zenbot.git\n```\n\nOr, without git:\n```\nwget https://github.com/deviavir/zenbot/archive/master.tar.gz\ntar -xf zenbot-master.tar.gz\nmv zenbot-master zenbot\n```\n\nCreate your configuration file by copying `conf-sample.js` to `conf.js`:\n```\ncp conf-sample.js conf.js\n```\n\n- View and edit `conf.js`.\n- It's possible to use Zenbot in \"paper trading\" mode without making any changes.\n- You must add your exchange API keys to enable real trading however.\n- API keys do **not** need deposit/withdrawal permissions.\n\nIf using Docker, skip to the [Docker guide](docker.md).\n\nInstall dependencies:\n```\ncd zenbot\nnpm install\n```\n\nOptional:  \nInstall the `zenbot.sh` binary in `/usr/local/bin`:\n```\nnpm link\n```\n\nRun a Zenbot command:\n```\nzenbot --help\n```\n"
  },
  {
    "path": "docs/installation/debian-ubuntu.md",
    "content": "#### Debian-based OSes (complete guide)\n\nAlthough this guide was initially created for Ubuntu 20.04, Also works with Debian.\n\n```\nsudo apt-get install curl python2 git build-essential mongodb nodejs\n\ncurl -sL https://deb.nodesource.com/setup_15.x | sudo -E bash -\n\nsudo apt-get update\nsudo apt-get upgrade -y\n\nsudo apt-get install curl python2 git build-essential mongodb nodejs\n\ngit clone https://github.com/deviavir/zenbot.git\ncd zenbot\n\nnpm install\n\n./zenbot.sh --help\n```\n\n[Blog Post (Ubuntu 16.04)](https://jaynagpaul.com/algorithmic-crypto-trading?utm_source=zenbot)  \n[Video (Ubuntu 16.04)](https://youtu.be/BEhU55W9pBI)  \n"
  },
  {
    "path": "docs/installation/docker.md",
    "content": "#### Using Docker\n\nTo run Zenbot under Docker, install Docker, Docker Compose, Docker Machine (if necessary).\nYou can follow instructions at https://docs.docker.com/compose/install/.\n\nAfter [installing Zenbot](README.md):\n```\ncd zenbot\ndocker-compose up    # -d if you don't want to see the log\n```\n\nIf you are running Windows use the following command:\n```\ndocker-compose --file=docker-compose-windows.yml up\n```\n\nIf you wish to run commands (e.g. backfills, list-selectors), you can run this separate command after a successful `docker-compose up -d`:\n```\ndocker-compose exec server zenbot list-selectors\ndocker-compose exec server zenbot backfill <selector> --days <days>\n```\n\n#### Updating Docker\n\nIn case you are behind on updates, you can run:\n```\ndocker pull deviavir/zenbot:unstable\n```\n\nAnd re-run `docker-compose up -d` to start the new image.\n\n`deviavir/zenbot` is automatically updated after every merge.\nYou can follow the tags/builds at https://hub.docker.com/r/deviavir/zenbot/builds/.\n"
  },
  {
    "path": "docs/installation/raspberrypi.md",
    "content": "#### Raspberry Pi\n\nYou can run Zenbot on a Raspberry Pi and the default Raspbian OS, but it is not recommend because MongoDB has problems with ARM systems as well as 32-bit OSes since it limits the database to 2GB.\n\nMake sure packages are updated:\n```\nsudo apt-get update\nsudo apt-get upgrade -y\n```\n\nInstall Docker:\n```\ncurl -sSL https://get.docker.com | sh\n```\n\nAutostart on startup:\n```\nsudo systemctl enable docker\n```\n\nGive user permissions:\n```\nsudo usermod -aG docker <username>\n```\n\nReboot, or execute `sudo systemctl start docker`.\n\nInstall docker-compose:\n```\napt-get install python-pip\npip install docker-compose\n```\n\nInstall a MongoDB Docker image made for the Rapsberry Pi (like https://hub.docker.com/r/nonoroazoro/rpi-mongo/):\n```\ndocker pull nonoroazoro/rpi-mongo\n```\n\nRename the MongoDB docker-file to \"mongo\" (if you use the above image):\n```\ndocker tag nonoroazoro/rpi-mongo mongo\n```\n\nInstall Zenbot, described in the [installation guide](README.md).\n\nRun Zenbot:\n```\ncd zenbot\ndocker-compose build\ndocker-compose up -d\n```\n\nCommands are the same:\n```\ndocker run --rm --link zenbot_mongodb_1:mongodb -it zenbot_server [command]\n```\n"
  },
  {
    "path": "docs/installation/requirements.md",
    "content": "### Requirements\n\nThe only requirements to install and run Zenbot are\n\n- Linux / macOS 10 / Windows (or Docker)\n- [Node.js](https://nodejs.org/) (version 8.3.0 or higher)\n- [MongoDB](https://www.mongodb.com/)\n\n\n\n#### Recommendations\n\n- It is recommend to use a 64-bit processor (and OS), because a 32-bit OS will limit the database to 2GB.\n"
  },
  {
    "path": "docs/notifiers/README.md",
    "content": "## Notifiers\n\nZenbot employs various notifiers to keep you up to date on the bot's actions. We currently send a notification on a buy and on a sell signal.\n\n### XMPP\n\nSupply Zenbot with your XMPP credentials and Zenbot will send notifications by connecting to your XMPP, sending the notification, and disconnecting.\nhttps://xmpp.org/\n\n### Pushbullet\n\nSupply Zenbot with your API key and device ID and Zenbot will send notifications to your device.\nhttps://www.pushbullet.com/\n\n### IFTTT\n\nSupply Zenbot with your IFTTT maker key and Zenbot will push notifications to your IFTTT.\nhttps://ifttt.com/maker_webhooks\n\n### Slack\n\nSupply Zenbot with a webhook URI and Zenbot will push notifications to your webhook.\nhttps://slack.com/\n\n### Discord\n\nSupply Zenbot with your Discord webhook id and webhook token and Zenbot will push notifications to your Discord channel.\n\nHow to add a webhook to a Discord channel\nhttps://support.discordapp.com/hc/en-us/articles/228383668\n\n### Prowl\n\nSupply Zenbot with your Prowl API key and Zenbot will push notifications to your Prowl enabled devices.\nhttps://www.prowlapp.com/\n\n### Textbelt\n\nSupply Zenbot with your Textbelt API key and Zenbot will send SMS notifications to your cell phone.\nhttps://www.textbelt.com/\n\n### Pushover\n\nSupply Zenbot with your api token and user key and Zenbot will send notifications to your device.\nhttps://pushover.net/\n\n### Telegram\n\nSupply Zenbot with your Telegram bot token and chat id and Zenbot will push notifications to your Telegram chat.\nhttps://telegram.org/\n\n### ADAMANT Messenger\n\nSupply Zenbot with recipients' ADM addresses, sender's account passPhrase and node list and Zenbot will push notifications to ADAMANT chats.\nhttps://adamant.im/\n"
  },
  {
    "path": "docs/scripts/genetic_backtester.md",
    "content": "# Genetic Backtester - Darwin\n\nThe Genetic Backtester will execute a range of simulations with a range of parameters, limited by the population size, per strategy. Once all sims in the population are complete, the top results are taken as the starting point for the next generation. This continues indefinitely, until interrupted by the user, or --runGenerations is reached.\n\n## Installation\n\nThis script has additional node dependencies that need to be installed before usage:\n\n```bash\ncd scripts/genetic_backtester\nnpm install\ncd ../../\n```\n\n## Usage\n\nLaunch the genetic backtester from the zenbot root by directly invoking darwin.js:\n```bash\n./scripts/genetic_backtester/darwin.js --selector=\"bitfinex.ETH-USD\" --days=\"10\" --currency_capital=\"1000\" --use_strategies=\"all | macd,trend_ema,etc\" --population=\"101\" --population_data=\"simulations/generation_data_[simtimestamp]_gen_[x].json\"\n```\n\n## Parameters\n\nThe following parameters are available when executing darwin.js:\n```\n\n// General Parameters\n--selector=\"gdax.BTC-USD\"                                                               # Which selector (exchange.COIN-ALT) backfill trade data the backtest is to be run against.\n--days=\"30\"                                                                             # How many days of backfill to run the backtest against.\n(or)\n--start=\"201712010001\"                                                                  # Specifies date/time in \"YYYYMMDDhhmm\" format at which to begin backtesting in liu of --days. Backtest will begin with start date through backtest execution time.\n--end=\"201712312359\"                                                                    # Optional - Used in conjunction with --start in order to restrict backtesting to a specific period instead of from start -> now.\n--currency_capital=\"1000\"                                                               # Currency amount to start simulations with. Needs to be bigger than 0 (see issue #449).\n(or)\n--asset_capital=\"100\"                                                                   # Optional - Asset amount to start simulations with.\n\n// Specific Parameters\n--use_strategies=\"all | strategy1,strategy2\"                                            # With this parameter, you can choose to test all, some (comma separated), or just one of the available strategies defined within darwin.\n--population=\"150\"                                                                      # Optional - Number of simulation per generation\n--population_data=\"./simulations/backtest_[simtimestamp]\"                               # Optional - Resume backtesting on a previously terminated backtesting session.\n--runGenerations\t\t\t\t\t\t\t\t\t# Optional - Makes it possible to stop after a number of generations\n```\n\n## Results\n\nWhen the next generation starts testing, a csv file will appear in the simulations folder. This CSV contains all simulations that were executed in that generation, including the parameters and results.\n\nThe top results are listed at the top of the file, in descending order.\n\n## Further Customization\n\nThe default ranges can be further customized per strategy by editing the [darwin.js](blob/master/scripts/genetic_backtester/darwin.js) script.\n"
  },
  {
    "path": "docs/scripts/readme.md",
    "content": "# Scripts\nIn the scripts folder are a number of helper scripts. This is the corresponding documentation so far, with more information on each set of scripts:\n\n* [auto_backtester](auto_backtester.md) *not done yet, contributions welcome*\n* [genetic_algo](genetic_algo.md) *not done yet, contributions welcome*\n* [Genetic Backtester](genetic_backtester.md)\n\n"
  },
  {
    "path": "docs/strategies/howto_create_strategy.md",
    "content": "# How to create a strategy?\n\nAre you sure?\nAt least you should have a minimum of code-writing skills...\n\n**You can find help and very useful information here:**\nhttps://www.reddit.com/r/zenbot/\nhttps://discord.gg/z2VyhmxP8P\n\nFirst of all, you are advised to read the base zenbot documentation, that can be found [here](https://github.com/DeviaVir/zenbot/tree/unstable/docs \"here\").\n\n## # How Zenbot works with strategies?\nZenbot load a strategy by finding the file extensions/strategies/`<strategy-name>`/strategy.js\n\n## # What to do?\n\n### ## 1. Create a new strategy file\nYou should create a new folder inside strategies folder and name it whatever you want.\nYou also can create a copy of the ..\\extensions\\strategies\\noop folder and rename it.\nNOOP strategy is just an example of a strategy file.\n\nYou should have NOOP folder inside strategies folder but if you dont have it, you can download it here:\nhttps://github.com/DeviaVir/zenbot/tree/unstable/extensions/strategies\n\nThis is what you probably will find inside the NOOP strategy file:\n\n    module.exports = {\n      name: 'noop',\n      description: 'Just do nothing. Can be used to e.g. for training the strategy.',\n      getOptions: function () {\n        this.option('period', 'period length, same as --period_length', String, '30m')\n        this.option('period_length', 'period length, same as --period', String, '30m')\n     },\n     calculate: function () {\n     },\n     onPeriod: function (s, cb) {\n       cb()\n     },\n    onReport: function () { \n      var cols = []\n      return cols\n    }\n    }\n\n## # How strategy file is organized?\nZenbot strategy file is organized in 4 sections:\n- getOptions\n- calculate\n- onPeriod\n- onReport\n\n## getOptions\nZenbot will search where the variables needed for your strategy.\n\n    getOptions: function (s) {\n    this.option('period', 'period length, same as --period_length', String, '5m')\n    this.option('period_length', 'period length, same as --period', String, '5m')\n    this.option('min_periods', 'min. number of history periods', Number, 200)\n    // insert here the variables that your strategy will use. **\n    }\n\n## calculate\nIt's called each time there is a new trade. it's the right place to update indicators.\n\n    // calculate MACD\n    ema(s, 'ema_short', s.options.ema_short_period)\n    ema(s, 'ema_long', s.options.ema_long_period)\n    if (s.period.ema_short && s.period.ema_long) {\n      s.period.macd = (s.period.ema_short - s.period.ema_long)\n      ema(s, 'signal', s.options.signal_period, 'macd')\n      if (s.period.signal) {\n        s.period.macd_histogram = s.period.macd - s.period.signal\n    }\n    \n\nOr if you simply want to use RSI indicator:\n\n     // RSI indicator\n     rsi(s, 'rsi', s.options.rsi_periods)\n\n\n## onPeriod\n\nIt's called at the end of each period. It will be the right place to send 'buy' or 'sell' signals.\n\nFor example if you want to buy or sell based on RSI indicator:\n\n    if (s.period.rsi < 30) { \n      s.signal = 'buy' \n    }\n\n## onReport\n\ncalled each time the console is refreshed. It must return an array, and each item in this array will be displayed in the console (after the RSI and before the balance).\n\nExample:\n\n      onReport: function (s) {\n       var cols = []\n       if (typeof s.period.rsi === 'number') {\n         var color = 'grey'\n         if (s.period.rsi <= s.options.oversold_rsi) {\n           color = 'green'\n         }\n         if (s.period.rsi >= s.options.overbought_rsi) {\n           color = 'red'\n         }\n         cols.push(z(4, n(s.period.rsi).format('0'), ' ')[color])\n       }\n       return cols \n       },\n  \n\n\n  \n## # How can I look for past values?\n## Lookback\n\nEach time the period change, the current period is put at the beginning of `s.lookback` and `s.period` is reset. So you can check the last period in `s.lookback[0]`, the one before in `s.lookback[1]`, and so on.\n\n\n### Thanks to:\n- BAKfr\n- TxTheNoob\n"
  },
  {
    "path": "docs/strategies/list-strategies.md",
    "content": "\n```\nzenbot list-strategies\n\nbollinger\n  description:\n    Buy when (Signal ≤ Lower Bollinger Band) and sell when (Signal ≥ Upper Bollinger Band).\n  options:\n    --period=<value>  period length, same as --period_length (default: 1h)\n    --period_length=<value>  period length, same as --period (default: 1h)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --bollinger_size=<value>  period size (default: 20)\n    --bollinger_time=<value>  times of standard deviation between the upper band and the moving averages (default: 2)\n    --bollinger_upper_bound_pct=<value>  pct the current price should be near the bollinger upper bound before we sell (default: 0)\n    --bollinger_lower_bound_pct=<value>  pct the current price should be near the bollinger lower bound before we buy (default: 0)\n\ncci_srsi\n  description:\n    Stochastic CCI Strategy\n  options:\n    --period=<value>  period length, same as --period_length (default: 20m)\n    --period_length=<value>  period length, same as --period (default: 20m)\n    --min_periods=<value>  min. number of history periods (default: 30)\n    --ema_acc=<value>  sideways threshold (0.2-0.4) (default: 0.03)\n    --cci_periods=<value>  number of RSI periods (default: 14)\n    --rsi_periods=<value>  number of RSI periods (default: 14)\n    --srsi_periods=<value>  number of RSI periods (default: 9)\n    --srsi_k=<value>  %K line (default: 5)\n    --srsi_d=<value>  %D line (default: 3)\n    --oversold_rsi=<value>  buy when RSI reaches or drops below this value (default: 18)\n    --overbought_rsi=<value>  sell when RSI reaches or goes above this value (default: 85)\n    --oversold_cci=<value>  buy when CCI reaches or drops below this value (default: -90)\n    --overbought_cci=<value>  sell when CCI reaches or goes above this value (default: 140)\n    --constant=<value>  constant (default: 0.015)\nIf you have questions about this strategy, contact me... @talvasconcelos\n\ncrossover_vwap\n  description:\n    Estimate trends by comparing \"Volume Weighted Average Price\" to the \"Exponential Moving Average\".\n  options:\n    --period=<value>  period length, same as --period_length (default: 120m)\n    --period_length=<value>  period length, same as --period (default: 120m)\n    --emalen1=<value>  Length of EMA 1 (default: 30)\n    --smalen1=<value>  Length of SMA 1 (default: 108)\n    --smalen2=<value>  Length of SMA 2 (default: 60)\n    --vwap_length=<value>  Min periods for vwap to start (default: 10)\n    --vwap_max=<value>  Max history for vwap. Increasing this makes it more sensitive to short-term changes (default: 8000)\n\ndema\n  description:\n    Buy when (short ema > long ema) and sell when (short ema < long ema).\n  options:\n    --period=<value>  period length (default: 1h)\n    --min_periods=<value>  min. number of history periods (default: 21)\n    --ema_short_period=<value>  number of periods for the shorter EMA (default: 10)\n    --ema_long_period=<value>  number of periods for the longer EMA (default: 21)\n    --up_trend_threshold=<value>  threshold to trigger a buy signal (default: 0)\n    --down_trend_threshold=<value>  threshold to trigger a sold signal (default: 0)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 9)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 80)\n    --noise_level_pct=<value>  do not trade when short ema is with this % of last short ema, 0 disables this feature (default: 0)\n\nmacd\n  description:\n    Buy when (MACD - Signal > 0) and sell when (MACD - Signal < 0).\n  options:\n    --period=<value>  period length, same as --period_length (default: 1h)\n    --period_length=<value>  period length, same as --period (default: 1h)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --ema_short_period=<value>  number of periods for the shorter EMA (default: 12)\n    --ema_long_period=<value>  number of periods for the longer EMA (default: 26)\n    --signal_period=<value>  number of periods for the signal EMA (default: 9)\n    --up_trend_threshold=<value>  threshold to trigger a buy signal (default: 0)\n    --down_trend_threshold=<value>  threshold to trigger a sold signal (default: 0)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 25)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 70)\n\nmomentum\n  description:\n    MOM = Close(Period) - Close(Length)\n  options:\n    --momentum_size=<value>  number of periods to look back for momentum (default: 5)\n\nneural\n  description:\n    Use neural learning to predict future price. Buy = mean(last 3 real prices) < mean(current & last prediction)\n  options:\n    --period=<value>  period length - make sure to lower your poll trades time to lower than this value. Same as --period_length (default: 1m)\n    --period_length=<value>  period length - make sure to lower your poll trades time to lower than this value. Same as --period (default: 1m)\n    --activation_1_type=<value>  Neuron Activation Type: sigmoid, tanh, relu (default: sigmoid)\n    --neurons_1=<value>  Neurons in layer 1 Shoot for atleast 100 (default: 1)\n    --depth=<value>  Rows of data to predict ahead for matches/learning (default: 1)\n    --selector=<value>  Selector (default: Gdax.BTC-USD)\n    --min_periods=<value>  Periods to calculate learn from (default: 1000)\n    --min_predict=<value>  Periods to predict next number from (default: 1)\n    --momentum=<value>  momentum of prediction (default: 0.9)\n    --decay=<value>  decay of prediction, use teeny tiny increments (default: 0.1)\n    --threads=<value>  Number of processing threads you'd like to run (best for sim) (default: 1)\n    --learns=<value>  Number of times to 'learn' the neural network with past data (default: 2)\n\nnoop\n  description:\n    Just do nothing. Can be used to e.g. for training the strategy.\n  options:\n    --period=<value>  period length, same as --period_length (default: 30m)\n    --period_length=<value>  period length, same as --period (default: 30m)\n\nrsi\n  description:\n    Attempts to buy low and sell high by tracking RSI high-water readings.\n  options:\n    --period=<value>  period length, same as --period_length (default: 2m)\n    --period_length=<value>  period length, same as --period (default: 2m)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --rsi_periods=<value>  number of RSI periods\n    --oversold_rsi=<value>  buy when RSI reaches or drops below this value (default: 30)\n    --overbought_rsi=<value>  sell when RSI reaches or goes above this value (default: 82)\n    --rsi_recover=<value>  allow RSI to recover this many points before buying (default: 3)\n    --rsi_drop=<value>  allow RSI to fall this many points before selling (default: 0)\n    --rsi_divisor=<value>  sell when RSI reaches high-water reading divided by this value (default: 2)\n\nsar\n  description:\n    Parabolic SAR\n  options:\n    --period=<value>  period length, same as --period_length (default: 2m)\n    --period_length=<value>  period length, same as --period (default: 2m)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --sar_af=<value>  acceleration factor for parabolic SAR (default: 0.015)\n    --sar_max_af=<value>  max acceleration factor for parabolic SAR (default: 0.3)\n\nspeed\n  description:\n    Trade when % change from last two 1m periods is higher than average.\n  options:\n    --period=<value>  period length, same as --period_length (default: 1m)\n    --period_length=<value>  period length, same as --period (default: 1m)\n    --min_periods=<value>  min. number of history periods (default: 3000)\n    --baseline_periods=<value>  lookback periods for volatility baseline (default: 3000)\n    --trigger_factor=<value>  multiply with volatility baseline EMA to get trigger value (default: 1.6)\n\nsrsi_macd\n  description:\n    Stochastic MACD Strategy\n  options:\n    --period=<value>  period length, same as --period_length (default: 30m)\n    --period_length=<value>  period length, same as --period (default: 30m)\n    --min_periods=<value>  min. number of history periods (default: 200)\n    --rsi_periods=<value>  number of RSI periods\n    --srsi_periods=<value>  number of RSI periods (default: 9)\n    --srsi_k=<value>  %D line (default: 5)\n    --srsi_d=<value>  %D line (default: 3)\n    --oversold_rsi=<value>  buy when RSI reaches or drops below this value (default: 20)\n    --overbought_rsi=<value>  sell when RSI reaches or goes above this value (default: 80)\n    --ema_short_period=<value>  number of periods for the shorter EMA (default: 24)\n    --ema_long_period=<value>  number of periods for the longer EMA (default: 200)\n    --signal_period=<value>  number of periods for the signal EMA (default: 9)\n    --up_trend_threshold=<value>  threshold to trigger a buy signal (default: 0)\n    --down_trend_threshold=<value>  threshold to trigger a sold signal (default: 0)\n\nstddev\n  description:\n    Buy when standard deviation and mean increase, sell on mean decrease.\n  options:\n    --period=<value>  period length, set poll trades to 100ms, poll order 1000ms. Same as --period_length (default: 100ms)\n    --period_length=<value>  period length, set poll trades to 100ms, poll order 1000ms. Same as --period (default: 100ms)\n    --trendtrades_1=<value>  Trades for array 1 to be subtracted stddev and mean from (default: 5)\n    --trendtrades_2=<value>  Trades for array 2 to be calculated stddev and mean from (default: 53)\n    --min_periods=<value>  min_periods (default: 1250)\n\nta_ema\n  description:\n    Buy when (EMA - last(EMA) > 0) and sell when (EMA - last(EMA) < 0). Optional buy on low RSI.\n  options:\n    --period=<value>  period length, same as --period_length (default: 10m)\n    --period_length=<value>  period length, same as --period (default: 10m)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --trend_ema=<value>  number of periods for trend EMA (default: 20)\n    --neutral_rate=<value>  avoid trades if abs(trend_ema) under this float (0 to disable, \"auto\" for a variable filter) (default: 0.06)\n    --oversold_rsi_periods=<value>  number of periods for oversold RSI (default: 20)\n    --oversold_rsi=<value>  buy when RSI reaches this value (default: 30)\n\nta_macd\n  description:\n    Buy when (MACD - Signal > 0) and sell when (MACD - Signal < 0).\n  options:\n    --period=<value>  period length, same as --period_length (default: 1h)\n    --period_length=<value>  period length, same as --period (default: 1h)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --ema_short_period=<value>  number of periods for the shorter EMA (default: 12)\n    --ema_long_period=<value>  number of periods for the longer EMA (default: 26)\n    --signal_period=<value>  number of periods for the signal EMA (default: 9)\n    --up_trend_threshold=<value>  threshold to trigger a buy signal (default: 0)\n    --down_trend_threshold=<value>  threshold to trigger a sold signal (default: 0)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 25)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 70)\n\nta_macd_ext\n  description:\n    Buy when (MACD - Signal > 0) and sell when (MACD - Signal < 0) with controllable talib TA types\n  options:\n    --period=<value>  period length, same as --period_length (default: 1h)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --ema_short_period=<value>  number of periods for the shorter EMA (default: 12)\n    --ema_long_period=<value>  number of periods for the longer EMA (default: 26)\n    --signal_period=<value>  number of periods for the signal EMA (default: 9)\n    --fast_ma_type=<value>  fast_ma_type of talib: SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 (default: null)\n    --slow_ma_type=<value>  slow_ma_type of talib: SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 (default: null)\n    --signal_ma_type=<value>  signal_ma_type of talib: SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 (default: null)\n    --default_ma_type=<value>  set default ma_type for fast, slow and signal. You are able to overwrite single types separately (fast_ma_type, slow_ma_type, signal_ma_type) (default: SMA)\n    --up_trend_threshold=<value>  threshold to trigger a buy signal (default: 0)\n    --down_trend_threshold=<value>  threshold to trigger a sold signal (default: 0)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 25)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 70)\n\nta_trix\n  description:\n    TRIX - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA with rsi oversold\n  options:\n    --period=<value>  period length eg 10m (default: 5m)\n    --timeperiod=<value>  timeperiod for TRIX (default: 30)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 25)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 70)\n\ntrend_ema (default)\n  description:\n    Buy when (EMA - last(EMA) > 0) and sell when (EMA - last(EMA) < 0). Optional buy on low RSI.\n  options:\n    --period=<value>  period length, same as --period_length (default: 2m)\n    --period_length=<value>  period length, same as --period (default: 2m)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --trend_ema=<value>  number of periods for trend EMA (default: 26)\n    --neutral_rate=<value>  avoid trades if abs(trend_ema) under this float (0 to disable, \"auto\" for a variable filter) (default: auto)\n    --oversold_rsi_periods=<value>  number of periods for oversold RSI (default: 14)\n    --oversold_rsi=<value>  buy when RSI reaches this value (default: 10)\n\nta_ppo\n  description:\n     PPO - Percentage Price Oscillator with rsi oversold\n  options:\n    --period=<value>  period length, same as --period_length (default: 10m)\n    --ema_short_period=<value>  number of periods for the shorter EMA (default: 12)\n    --ema_long_period=<value>  number of periods for the longer EMA (default: 26)\n    --signal_period=<value>  number of periods for the signal EMA (default: 9)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 25)\n    --ma_type==<value> moving average type of talib: SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 (default: SMA)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 70)\n\nta_ultosc\n  description:\n    ULTOSC - Ultimate Oscillator with rsi oversold\n  options:\n    --period=<value>  period length eg 5m (default: 5m)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --signal=<value>  Provide signal and indicator \"simple\" (buy@65, sell@50), \"low\" (buy@65, sell@30), \"trend\" (buy@30, sell@70) (default: simple)\n    --timeperiod1=<value>  talib ULTOSC timeperiod1 (default: 7)\n    --timeperiod2=<value>  talib ULTOSC timeperiod2 (default: 14)\n    --timeperiod3=<value>  talib ULTOSC timeperiod3 (default: 28)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 25)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 90)\n\nti_hma\n  description:\n    HMA - Hull Moving Average\n  options:\n    --period=<value>  period length eg 10m (default: 15m)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --trend_hma=<value>  number of periods for trend hma (default: 36)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 25)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 70)\n\ntrendline\n  description:\n    Calculate a trendline and trade when trend is positive vs negative.\n  options:\n    --period=<value>  period length (default: 30s)\n    --period_length=<value>  period length (default: 30s)\n    --lastpoints=<value>  Number of trades for short trend average (default: 100)\n    --avgpoints=<value>  Number of trades for long trend average (default: 1000)\n    --lastpoints2=<value>  Number of trades for short trend average (default: 10)\n    --avgpoints2=<value>  Number of trades for long trend average (default: 100)\n    --min_periods=<value>  Basically avgpoints + a BUNCH of more preroll periods for anything less than 5s period (default: 15000)\n    --markup_sell_pct=<value>  test (default: 0)\n    --markdown_buy_pct=<value>  test (default: 0)\n\ntrust_distrust\n  description:\n    Sell when price higher than $sell_min% and highest point - $sell_threshold% is reached. Buy when lowest price point + $buy_threshold% reached.\n  options:\n    --period=<value>  period length, same as --period_length (default: 30m)\n    --period_length=<value>  period length, same as --period (default: 30m)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --sell_threshold=<value>  sell when the top drops at least below this percentage (default: 2)\n    --sell_threshold_max=<value>  sell when the top drops lower than this max, regardless of sell_min (panic sell, 0 to disable) (default: 0)\n    --sell_min=<value>  do not act on anything unless the price is this percentage above the original price (default: 1)\n    --buy_threshold=<value>  buy when the bottom increased at least above this percentage (default: 2)\n    --buy_threshold_max=<value>  wait for multiple buy signals before buying (kill whipsaw, 0 to disable) (default: 0)\n    --greed=<value>  sell if we reach this much profit (0 to be greedy and either win or lose) (default: 0)\n\nwavetrend\n  description:\n    Buy when (Signal < Oversold) and sell when (Signal > Overbought).\n  options:\n    --period=<value>  period length, same as --period_length (default: 1h)\n    --period_length=<value>  period length, same as --period (default: 1h)\n    --min_periods=<value>  min. number of history periods (default: 21)\n    --wavetrend_channel_length=<value>  wavetrend channel length (default: 10)\n    --wavetrend_average_length=<value>  wavetrend average length (default: 21)\n    --wavetrend_overbought_1=<value>  wavetrend overbought limit 1 (default: 60)\n    --wavetrend_overbought_2=<value>  wavetrend overbought limit 2 (default: 53)\n    --wavetrend_oversold_1=<value>  wavetrend oversold limit 1 (default: -60)\n    --wavetrend_oversold_2=<value>  wavetrend oversold limit 2 (default: -53)\n    --wavetrend_trends=<value>  act on trends instead of limits (default: false)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 9)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 80)\n```\n"
  },
  {
    "path": "docs/strategies/macd.md",
    "content": "### The `macd` strategy\n\nThe moving average convergence divergence calculation is a lagging indicator, used to follow trends.\n\n- Can be very effective for trading periods of 1h, with a shorter period like 15m it seems too erratic and the Moving Averages are kind of lost.\n- It's not firing multiple 'buy' or 'sold' signals, only one per trend, which seems to lead to a better quality trading scheme.\n- Especially when the bot will enter in the middle of a trend, it avoids buying unless it's the beginning of the trend.\n"
  },
  {
    "path": "docs/strategies/noop.md",
    "content": "### The `noop` strategy\n\nIf you want to use the bot without it trading for you, but just use it for the balance overview and manual trades, you can start the bot with `--strategy noop`, the bot will not trade automatically.\n"
  },
  {
    "path": "docs/strategies/rsi.md",
    "content": "### The `rsi` strategy\n\nAttempts to buy low and sell high by tracking RSI high-water readings.\n\n- Effective in sideways markets or markets that tend to recover after price drops.\n- Risky to use in bear markets, since the algorithm depends on price recovery.\n- If the other strategies are losing you money, this strategy may perform better, since it basically \"reverses the signals\" and anticipates a reversal instead of expecting the trend to continue.\n"
  },
  {
    "path": "docs/strategies/sar.md",
    "content": "### The `sar` strategy\n\nUses a [Parabolic SAR](http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:parabolic_sar) indicator to trade when SAR trend reverses.\n\n- Tends to generate earlier signals than EMA-based strategies, resulting in better capture of highs and lows, and better protection against quick price drops.\n- Does not perform well in sideways (non-trending) markets, generating more whipsaws than EMA-based strategies.\n- Most effective with short period (default is 2m), which means it generates 50-100 trades/day, so only usable on GDAX (with 0% maker fee) at the moment.\n- Tested live, [results here](https://github.com/carlos8f/zenbot/pull/246#issuecomment-307528347)\n"
  },
  {
    "path": "docs/strategies/speed.md",
    "content": "### The `speed` strategy\n\nTrade when % change from last two 1m periods is higher than average.\n\n**This strategy is experimental and has WILDLY varying sim results. NOT RECOMMENDED YET.**\n\n- Like the sar strategy, this generates early signals and can be effective in volatile markets and for sudden price drop protection.\n- Its weakness is that it performs very poorly in low-volatility situations and misses signals from gradually developing trends.\n"
  },
  {
    "path": "docs/strategies/trend_ema.md",
    "content": "### The `trend_ema` strategy\n\n- The default strategy is called `trend_ema` and resides at `./extensions/strategies/trend_ema`.\n- Defaults to using a 2m period, but you can override this with adding e.g. `--period=5m` to the `sim` or `trade` commands.\n- Computes the 26-period EMA of the current price, and calculates the percent change from the last period's EMA to get the `trend_ema_rate`\n- Considers `trend_ema_rate >= 0` an upwards trend and `trend_ema_rate < 0` a downwards trend\n- Filters out low values (whipsaws) by `neutral_rate`, which when set to `auto`, uses the standard deviation of the `trend_ema_rate` as a variable noise filter.\n- Buys at the beginning of upwards trend, sells at the beginning of downwards trend\n- If `oversold_rsi` is set, tries to buy when the RSI dips below that value, and then starts to recover (a counterpart to `--profit_stop_enable_pct`, which sells when a percent of profit is reached, and then dips)\n- The bot will always try to avoid trade fees, by using post-only orders and thus being a market \"maker\" instead of a \"taker\". Some exchanges will, however, not offer maker discounts.\n"
  },
  {
    "path": "docs/strategies/tweaking.md",
    "content": "### Tips for tweaking options\n\n- Trade frequency is adjusted with a combination of `--period` and `--trend_ema`. For example, if you want more frequent trading, try `--period=5m` or `--trend_ema=15` or both. If you get too many ping-pong trades or losses from fees, try increasing `period` or `trend_ema` or increasing `neutral_rate`.\n- Sometimes it's tempting to tell the bot trade very often. Try to resist this urge, and go for quality over quantity, since each trade comes with a decent amount of slippage and whipsaw risk.\n- `--oversold_rsi=<rsi>` will try to buy when the price dives. This is one of the ways to get profit above buy/hold, but setting it too high might result in a loss if the price continues to fall.\n- In a market with predictable price surges and corrections, `--profit_stop_enable_pct=10` will try to sell when the last buy hits 10% profit and then drops to 9% (the drop % is set with `--profit_stop_pct`). However in strong, long uptrends this option may end up causing a sell too early.\n- For Kraken and GDAX you may wish to use `--order_type=\"taker\"`, this uses market orders instead of limit orders. You usually pay a higher fee, but you can be sure that your order is filled instantly. This means that the sim will more closely match your live trading. Please note that GDAX does not charge maker fees (limit orders), so you will need to choose between not paying fees and running the risk orders do not get filled on time, or paying somewhat high % of fees and making sure your orders are always filled on time.\n"
  },
  {
    "path": "extensions/README.md",
    "content": "# zenbot extensions\n\nTo support various exchanges, strategies or notifiers, zenbot \"extensions\" can be made.\n\nYou may have to `npm install` in the extension directory, and/or copy and configure `conf-sample.js` to `conf.js` for it to work.\n"
  },
  {
    "path": "extensions/exchanges/_stub/_codemap.js",
    "content": "module.exports = {\n  _ns: 'zenbot',\n\n  'exchanges.stub': require('./exchange'),\n  'exchanges.list[]': '#exchanges.stub'\n}\n"
  },
  {
    "path": "extensions/exchanges/_stub/exchange.js",
    "content": "const superagent = require('superagent')\n\nmodule.exports = function container (conf) {\n\n  var theExchange = {}\n\n  // TODO: phase out, in favor of calling the method getDirection().\n  //  It will help define a clean interface/design for future exchange plugins.\n  theExchange.historyScan = conf.historyScan || 'backward'\n\n  // TODO: phase the use of the name out.. define a cleaner interface for exchanges, so its easier to define how to write one.\n  theExchange.name = 'stub'\n  theExchange.getName = function() {\n    return 'stub'\n  }\n    \n  theExchange.getDirection = function() {\n    return 'backward'\n  }\n\n  theExchange.getMakerFee = function() {\n    return 0.1\n  }\n\n  theExchange.getTakerFee = function() {\n    return 0.1\n  }\n\n  theExchange.getProducts = function () {\n    return require('./products.json')\n  }\n\n  theExchange.getTrades = function (opts, cb) {\n    var url = 'http://localhost:7802/'\n\n    if (opts.to !== undefined) {\n      url += '?mostRecentTradeId=' + opts.to\n    }\n\n    superagent.get(url).end(function (err, response) {\n      var v = JSON.parse(response.text)\n\n      var rtn = []\n      v.forEach((vv) => { \n        var obj = JSON.parse(vv) \n\n        obj.id = \n\n          rtn.push(obj) })\n\n      cb(null, rtn)\n      // TODO: handle the case where there is no server on the other end\n    })\n  }\n\n  return theExchange\n}\n"
  },
  {
    "path": "extensions/exchanges/_stub/products.json",
    "content": "[\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.002\",\n    \"max_size\": \"2000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"BTC/USD\"\n  }\n]"
  },
  {
    "path": "extensions/exchanges/binance/exchange.js",
    "content": "const ccxt = require('ccxt')\n  , path = require('path')\n  // eslint-disable-next-line no-unused-vars\n  , colors = require('colors')\n  , _ = require('lodash')\n\nmodule.exports = function binance (conf) {\n  var public_client, authed_client\n\n  function publicClient () {\n    if (!public_client) public_client = new ccxt.binance({ 'apiKey': '', 'secret': '', 'options': { 'adjustForTimeDifference': true } })\n    return public_client\n  }\n\n  function authedClient () {\n    if (!authed_client) {\n      if (!conf.binance || !conf.binance.key || conf.binance.key === 'YOUR-API-KEY') {\n        throw new Error('please configure your Binance credentials in ' + path.resolve(__dirname, 'conf.js'))\n      }\n      authed_client = new ccxt.binance({ 'apiKey': conf.binance.key, 'secret': conf.binance.secret, 'options': { 'adjustForTimeDifference': true }, enableRateLimit: true })\n    }\n    return authed_client\n  }\n\n  /**\n  * Convert BNB-BTC to BNB/BTC\n  *\n  * @param product_id BNB-BTC\n  * @returns {string}\n  */\n  function joinProduct(product_id) {\n    let split = product_id.split('-')\n    return split[0] + '/' + split[1]\n  }\n\n  function retry (method, args, err) {\n    if (method !== 'getTrades') {\n      console.error(('\\nBinance API is down! unable to call ' + method + ', retrying in 20s').red)\n      if (err) console.error(err)\n      console.error(args.slice(0, -1))\n    }\n    setTimeout(function () {\n      exchange[method].apply(exchange, args)\n    }, 20000)\n  }\n\n  var orders = {}\n\n  var exchange = {\n    name: 'binance',\n    historyScan: 'forward',\n    historyScanUsesTime: true,\n    makerFee: 0.1,\n    takerFee: 0.1,\n\n    getProducts: function () {\n      return require('./products.json')\n    },\n\n    getTrades: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = publicClient()\n      var startTime = null\n      var args = {}\n      if (opts.from) {\n        startTime = opts.from\n      } else {\n        startTime = parseInt(opts.to, 10) - 3600000\n        args['endTime'] = opts.to\n      }\n\n      const symbol = joinProduct(opts.product_id)\n      client.fetchTrades(symbol, startTime, undefined, args).then(result => {\n\n        if (result.length === 0 && opts.from) {\n          // client.fetchTrades() only returns trades in an 1 hour interval.\n          // So we use fetchOHLCV() to detect trade appart from more than 1h.\n          // Note: it's done only in forward mode.\n          const time_diff = client.options['timeDifference']\n          if (startTime + time_diff < (new Date()).getTime() - 3600000) {\n            // startTime is older than 1 hour ago.\n            return client.fetchOHLCV(symbol, undefined, startTime)\n              .then(ohlcv => {\n                return ohlcv.length ? client.fetchTrades(symbol, ohlcv[0][0]) : []\n              })\n          }\n        }\n        return result\n      }).then(result => {\n        var trades = result.map(trade => ({\n          trade_id: trade.id,\n          time: trade.timestamp,\n          size: parseFloat(trade.amount),\n          price: parseFloat(trade.price),\n          side: trade.side\n        }))\n        cb(null, trades)\n      }).catch(function (error) {\n        console.error('An error occurred', error)\n        return retry('getTrades', func_args)\n      })\n\n    },\n\n    getBalance: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      client.fetchBalance().then(result => {\n        var balance = {asset: 0, currency: 0}\n        Object.keys(result).forEach(function (key) {\n          if (key === opts.currency) {\n            balance.currency = result[key].free + result[key].used\n            balance.currency_hold = result[key].used\n          }\n          if (key === opts.asset) {\n            balance.asset = result[key].free + result[key].used\n            balance.asset_hold = result[key].used\n          }\n        })\n        cb(null, balance)\n      })\n        .catch(function (error) {\n          console.error('An error occurred', error)\n          return retry('getBalance', func_args)\n        })\n    },\n\n    getQuote: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = publicClient()\n      client.fetchTicker(joinProduct(opts.product_id)).then(result => {\n        cb(null, { bid: result.bid, ask: result.ask })\n      })\n        .catch(function (error) {\n          console.error('An error occurred', error)\n          return retry('getQuote', func_args)\n        })\n    },\n\n    getDepth: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = publicClient()\n      client.fetchOrderBook(joinProduct(opts.product_id), {limit: opts.limit}).then(result => {\n        cb(null, result)\n      })\n        .catch(function(error) {\n          console.error('An error ocurred', error)\n          return retry('getDepth', func_args)\n        })\n    },\n\n    cancelOrder: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      client.cancelOrder(opts.order_id, joinProduct(opts.product_id)).then(function (body) {\n        if (body && (body.message === 'Order already done' || body.message === 'order not found')) return cb()\n        cb(null)\n      }, function(err){\n        // match error against string:\n        // \"binance {\"code\":-2011,\"msg\":\"UNKNOWN_ORDER\"}\"\n\n        if (err) {\n          // decide if this error is allowed for a retry\n\n          if (err.message && err.message.match(new RegExp(/-2011|UNKNOWN_ORDER/))) {\n            console.error(('\\ncancelOrder retry - unknown Order: ' + JSON.stringify(opts) + ' - ' + err).cyan)\n          } else {\n            // retry is allowed for this error\n\n            return retry('cancelOrder', func_args, err)\n          }\n        }\n\n        cb()\n      })\n    },\n\n    buy: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      if (typeof opts.post_only === 'undefined') {\n        opts.post_only = true\n      }\n      opts.type = 'limit'\n      var args = {}\n      if (opts.order_type === 'taker') {\n        delete opts.post_only\n        opts.type = 'market'\n      } else {\n        args.timeInForce = 'GTC'\n      }\n      opts.side = 'buy'\n      delete opts.order_type\n      var order = {}\n      client.createOrder(joinProduct(opts.product_id), opts.type, opts.side, this.roundToNearest(opts.size, opts), opts.price, args).then(result => {\n        if (result && result.message === 'Insufficient funds') {\n          order = {\n            status: 'rejected',\n            reject_reason: 'balance'\n          }\n          return cb(null, order)\n        }\n        order = {\n          id: result ? result.id : null,\n          status: 'open',\n          price: opts.price,\n          size: this.roundToNearest(opts.size, opts),\n          post_only: !!opts.post_only,\n          created_at: new Date().getTime(),\n          filled_size: '0',\n          ordertype: opts.order_type\n        }\n        orders['~' + result.id] = order\n        cb(null, order)\n      }).catch(function (error) {\n        console.error('An error occurred', error)\n\n        // decide if this error is allowed for a retry:\n        // {\"code\":-1013,\"msg\":\"Filter failure: MIN_NOTIONAL\"}\n        // {\"code\":-2010,\"msg\":\"Account has insufficient balance for requested action\"}\n\n        if (error.message.match(new RegExp(/-1013|MIN_NOTIONAL|-2010/))) {\n          return cb(null, {\n            status: 'rejected',\n            reject_reason: 'balance'\n          })\n        }\n\n        return retry('buy', func_args)\n      })\n    },\n\n    sell: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      if (typeof opts.post_only === 'undefined') {\n        opts.post_only = true\n      }\n      opts.type = 'limit'\n      var args = {}\n      if (opts.order_type === 'taker') {\n        delete opts.post_only\n        opts.type = 'market'\n      } else {\n        args.timeInForce = 'GTC'\n      }\n      opts.side = 'sell'\n      delete opts.order_type\n      var order = {}\n      client.createOrder(joinProduct(opts.product_id), opts.type, opts.side, this.roundToNearest(opts.size, opts), opts.price, args).then(result => {\n        if (result && result.message === 'Insufficient funds') {\n          order = {\n            status: 'rejected',\n            reject_reason: 'balance'\n          }\n          return cb(null, order)\n        }\n        order = {\n          id: result ? result.id : null,\n          status: 'open',\n          price: opts.price,\n          size: this.roundToNearest(opts.size, opts),\n          post_only: !!opts.post_only,\n          created_at: new Date().getTime(),\n          filled_size: '0',\n          ordertype: opts.order_type\n        }\n        orders['~' + result.id] = order\n        cb(null, order)\n      }).catch(function (error) {\n        console.error('An error occurred', error)\n\n        // decide if this error is allowed for a retry:\n        // {\"code\":-1013,\"msg\":\"Filter failure: MIN_NOTIONAL\"}\n        // {\"code\":-2010,\"msg\":\"Account has insufficient balance for requested action\"}\n\n        if (error.message.match(new RegExp(/-1013|MIN_NOTIONAL|-2010/))) {\n          return cb(null, {\n            status: 'rejected',\n            reject_reason: 'balance'\n          })\n        }\n\n        return retry('sell', func_args)\n      })\n    },\n\n    roundToNearest: function(numToRound, opts) {\n      var numToRoundTo = _.find(this.getProducts(), { 'asset': opts.product_id.split('-')[0], 'currency': opts.product_id.split('-')[1] }).min_size\n      numToRoundTo = 1 / (numToRoundTo)\n\n      return Math.floor(numToRound * numToRoundTo) / numToRoundTo\n    },\n\n    getOrder: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      var order = orders['~' + opts.order_id]\n      client.fetchOrder(opts.order_id, joinProduct(opts.product_id)).then(function (body) {\n        if (body.status !== 'open' && body.status !== 'canceled') {\n          order.status = 'done'\n          order.done_at = new Date().getTime()\n          order.price = parseFloat(body.price)\n          order.filled_size = parseFloat(body.amount) - parseFloat(body.remaining)\n          return cb(null, order)\n        }\n        cb(null, order)\n      }, function(err) {\n        return retry('getOrder', func_args, err)\n      })\n    },\n\n    getCursor: function (trade) {\n      return (trade.time || trade)\n    }\n  }\n  return exchange\n}\n"
  },
  {
    "path": "extensions/exchanges/binance/products.json",
    "content": "[\n  {\n    \"id\": \"ETHBTC\",\n    \"asset\": \"ETH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ETH/BTC\"\n  },\n  {\n    \"id\": \"LTCBTC\",\n    \"asset\": \"LTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LTC/BTC\"\n  },\n  {\n    \"id\": \"BNBBTC\",\n    \"asset\": \"BNB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BNB/BTC\"\n  },\n  {\n    \"id\": \"NEOBTC\",\n    \"asset\": \"NEO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NEO/BTC\"\n  },\n  {\n    \"id\": \"QTUMETH\",\n    \"asset\": \"QTUM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"QTUM/ETH\"\n  },\n  {\n    \"id\": \"EOSETH\",\n    \"asset\": \"EOS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EOS/ETH\"\n  },\n  {\n    \"id\": \"SNTETH\",\n    \"asset\": \"SNT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SNT/ETH\"\n  },\n  {\n    \"id\": \"BNTETH\",\n    \"asset\": \"BNT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BNT/ETH\"\n  },\n  {\n    \"id\": \"BCCBTC\",\n    \"asset\": \"BCC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BCC/BTC\"\n  },\n  {\n    \"id\": \"GASBTC\",\n    \"asset\": \"GAS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"GAS/BTC\"\n  },\n  {\n    \"id\": \"BNBETH\",\n    \"asset\": \"BNB\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BNB/ETH\"\n  },\n  {\n    \"id\": \"BTCUSDT\",\n    \"asset\": \"BTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/USDT\"\n  },\n  {\n    \"id\": \"ETHUSDT\",\n    \"asset\": \"ETH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/USDT\"\n  },\n  {\n    \"id\": \"HSRBTC\",\n    \"asset\": \"HSR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"HSR/BTC\"\n  },\n  {\n    \"id\": \"OAXETH\",\n    \"asset\": \"OAX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"OAX/ETH\"\n  },\n  {\n    \"id\": \"DNTETH\",\n    \"asset\": \"DNT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DNT/ETH\"\n  },\n  {\n    \"id\": \"MCOETH\",\n    \"asset\": \"MCO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MCO/ETH\"\n  },\n  {\n    \"id\": \"ICNETH\",\n    \"asset\": \"ICN\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ICN/ETH\"\n  },\n  {\n    \"id\": \"MCOBTC\",\n    \"asset\": \"MCO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MCO/BTC\"\n  },\n  {\n    \"id\": \"WTCBTC\",\n    \"asset\": \"WTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"WTC/BTC\"\n  },\n  {\n    \"id\": \"WTCETH\",\n    \"asset\": \"WTC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"WTC/ETH\"\n  },\n  {\n    \"id\": \"LRCBTC\",\n    \"asset\": \"LRC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"LRC/BTC\"\n  },\n  {\n    \"id\": \"LRCETH\",\n    \"asset\": \"LRC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"LRC/ETH\"\n  },\n  {\n    \"id\": \"QTUMBTC\",\n    \"asset\": \"QTUM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"QTUM/BTC\"\n  },\n  {\n    \"id\": \"YOYOBTC\",\n    \"asset\": \"YOYOW\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"YOYOW/BTC\"\n  },\n  {\n    \"id\": \"OMGBTC\",\n    \"asset\": \"OMG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"OMG/BTC\"\n  },\n  {\n    \"id\": \"OMGETH\",\n    \"asset\": \"OMG\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"OMG/ETH\"\n  },\n  {\n    \"id\": \"ZRXBTC\",\n    \"asset\": \"ZRX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ZRX/BTC\"\n  },\n  {\n    \"id\": \"ZRXETH\",\n    \"asset\": \"ZRX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ZRX/ETH\"\n  },\n  {\n    \"id\": \"STRATBTC\",\n    \"asset\": \"STRAT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"STRAT/BTC\"\n  },\n  {\n    \"id\": \"STRATETH\",\n    \"asset\": \"STRAT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"STRAT/ETH\"\n  },\n  {\n    \"id\": \"SNGLSBTC\",\n    \"asset\": \"SNGLS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SNGLS/BTC\"\n  },\n  {\n    \"id\": \"SNGLSETH\",\n    \"asset\": \"SNGLS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SNGLS/ETH\"\n  },\n  {\n    \"id\": \"BQXBTC\",\n    \"asset\": \"BQX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BQX/BTC\"\n  },\n  {\n    \"id\": \"BQXETH\",\n    \"asset\": \"BQX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BQX/ETH\"\n  },\n  {\n    \"id\": \"KNCBTC\",\n    \"asset\": \"KNC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"KNC/BTC\"\n  },\n  {\n    \"id\": \"KNCETH\",\n    \"asset\": \"KNC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"KNC/ETH\"\n  },\n  {\n    \"id\": \"FUNBTC\",\n    \"asset\": \"FUN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"FUN/BTC\"\n  },\n  {\n    \"id\": \"FUNETH\",\n    \"asset\": \"FUN\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"FUN/ETH\"\n  },\n  {\n    \"id\": \"SNMBTC\",\n    \"asset\": \"SNM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"SNM/BTC\"\n  },\n  {\n    \"id\": \"SNMETH\",\n    \"asset\": \"SNM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SNM/ETH\"\n  },\n  {\n    \"id\": \"NEOETH\",\n    \"asset\": \"NEO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NEO/ETH\"\n  },\n  {\n    \"id\": \"IOTABTC\",\n    \"asset\": \"IOTA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"IOTA/BTC\"\n  },\n  {\n    \"id\": \"IOTAETH\",\n    \"asset\": \"IOTA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"IOTA/ETH\"\n  },\n  {\n    \"id\": \"LINKBTC\",\n    \"asset\": \"LINK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"LINK/BTC\"\n  },\n  {\n    \"id\": \"LINKETH\",\n    \"asset\": \"LINK\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LINK/ETH\"\n  },\n  {\n    \"id\": \"XVGBTC\",\n    \"asset\": \"XVG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"XVG/BTC\"\n  },\n  {\n    \"id\": \"XVGETH\",\n    \"asset\": \"XVG\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"XVG/ETH\"\n  },\n  {\n    \"id\": \"SALTBTC\",\n    \"asset\": \"SALT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SALT/BTC\"\n  },\n  {\n    \"id\": \"SALTETH\",\n    \"asset\": \"SALT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SALT/ETH\"\n  },\n  {\n    \"id\": \"MDABTC\",\n    \"asset\": \"MDA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MDA/BTC\"\n  },\n  {\n    \"id\": \"MDAETH\",\n    \"asset\": \"MDA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MDA/ETH\"\n  },\n  {\n    \"id\": \"MTLBTC\",\n    \"asset\": \"MTL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MTL/BTC\"\n  },\n  {\n    \"id\": \"MTLETH\",\n    \"asset\": \"MTL\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MTL/ETH\"\n  },\n  {\n    \"id\": \"SUBBTC\",\n    \"asset\": \"SUB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SUB/BTC\"\n  },\n  {\n    \"id\": \"SUBETH\",\n    \"asset\": \"SUB\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SUB/ETH\"\n  },\n  {\n    \"id\": \"EOSBTC\",\n    \"asset\": \"EOS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EOS/BTC\"\n  },\n  {\n    \"id\": \"SNTBTC\",\n    \"asset\": \"SNT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SNT/BTC\"\n  },\n  {\n    \"id\": \"ETCETH\",\n    \"asset\": \"ETC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ETC/ETH\"\n  },\n  {\n    \"id\": \"ETCBTC\",\n    \"asset\": \"ETC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ETC/BTC\"\n  },\n  {\n    \"id\": \"MTHBTC\",\n    \"asset\": \"MTH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MTH/BTC\"\n  },\n  {\n    \"id\": \"MTHETH\",\n    \"asset\": \"MTH\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MTH/ETH\"\n  },\n  {\n    \"id\": \"ENGBTC\",\n    \"asset\": \"ENG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ENG/BTC\"\n  },\n  {\n    \"id\": \"ENGETH\",\n    \"asset\": \"ENG\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ENG/ETH\"\n  },\n  {\n    \"id\": \"DNTBTC\",\n    \"asset\": \"DNT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DNT/BTC\"\n  },\n  {\n    \"id\": \"ZECBTC\",\n    \"asset\": \"ZEC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ZEC/BTC\"\n  },\n  {\n    \"id\": \"ZECETH\",\n    \"asset\": \"ZEC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ZEC/ETH\"\n  },\n  {\n    \"id\": \"BNTBTC\",\n    \"asset\": \"BNT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BNT/BTC\"\n  },\n  {\n    \"id\": \"ASTBTC\",\n    \"asset\": \"AST\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AST/BTC\"\n  },\n  {\n    \"id\": \"ASTETH\",\n    \"asset\": \"AST\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AST/ETH\"\n  },\n  {\n    \"id\": \"DASHBTC\",\n    \"asset\": \"DASH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DASH/BTC\"\n  },\n  {\n    \"id\": \"DASHETH\",\n    \"asset\": \"DASH\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DASH/ETH\"\n  },\n  {\n    \"id\": \"OAXBTC\",\n    \"asset\": \"OAX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"OAX/BTC\"\n  },\n  {\n    \"id\": \"ICNBTC\",\n    \"asset\": \"ICN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ICN/BTC\"\n  },\n  {\n    \"id\": \"BTGBTC\",\n    \"asset\": \"BTG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BTG/BTC\"\n  },\n  {\n    \"id\": \"BTGETH\",\n    \"asset\": \"BTG\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BTG/ETH\"\n  },\n  {\n    \"id\": \"EVXBTC\",\n    \"asset\": \"EVX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"EVX/BTC\"\n  },\n  {\n    \"id\": \"EVXETH\",\n    \"asset\": \"EVX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"EVX/ETH\"\n  },\n  {\n    \"id\": \"REQBTC\",\n    \"asset\": \"REQ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"REQ/BTC\"\n  },\n  {\n    \"id\": \"REQETH\",\n    \"asset\": \"REQ\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"REQ/ETH\"\n  },\n  {\n    \"id\": \"VIBBTC\",\n    \"asset\": \"VIB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VIB/BTC\"\n  },\n  {\n    \"id\": \"VIBETH\",\n    \"asset\": \"VIB\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VIB/ETH\"\n  },\n  {\n    \"id\": \"HSRETH\",\n    \"asset\": \"HSR\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"HSR/ETH\"\n  },\n  {\n    \"id\": \"TRXBTC\",\n    \"asset\": \"TRX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TRX/BTC\"\n  },\n  {\n    \"id\": \"TRXETH\",\n    \"asset\": \"TRX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TRX/ETH\"\n  },\n  {\n    \"id\": \"POWRBTC\",\n    \"asset\": \"POWR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"POWR/BTC\"\n  },\n  {\n    \"id\": \"POWRETH\",\n    \"asset\": \"POWR\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"POWR/ETH\"\n  },\n  {\n    \"id\": \"ARKBTC\",\n    \"asset\": \"ARK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ARK/BTC\"\n  },\n  {\n    \"id\": \"ARKETH\",\n    \"asset\": \"ARK\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ARK/ETH\"\n  },\n  {\n    \"id\": \"YOYOETH\",\n    \"asset\": \"YOYOW\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"YOYOW/ETH\"\n  },\n  {\n    \"id\": \"XRPBTC\",\n    \"asset\": \"XRP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"XRP/BTC\"\n  },\n  {\n    \"id\": \"XRPETH\",\n    \"asset\": \"XRP\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"XRP/ETH\"\n  },\n  {\n    \"id\": \"MODBTC\",\n    \"asset\": \"MOD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MOD/BTC\"\n  },\n  {\n    \"id\": \"MODETH\",\n    \"asset\": \"MOD\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MOD/ETH\"\n  },\n  {\n    \"id\": \"ENJBTC\",\n    \"asset\": \"ENJ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ENJ/BTC\"\n  },\n  {\n    \"id\": \"ENJETH\",\n    \"asset\": \"ENJ\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ENJ/ETH\"\n  },\n  {\n    \"id\": \"STORJBTC\",\n    \"asset\": \"STORJ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"STORJ/BTC\"\n  },\n  {\n    \"id\": \"STORJETH\",\n    \"asset\": \"STORJ\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"STORJ/ETH\"\n  },\n  {\n    \"id\": \"BNBUSDT\",\n    \"asset\": \"BNB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"BNB/USDT\"\n  },\n  {\n    \"id\": \"VENBNB\",\n    \"asset\": \"VEN\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"VEN/BNB\"\n  },\n  {\n    \"id\": \"YOYOBNB\",\n    \"asset\": \"YOYOW\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"YOYOW/BNB\"\n  },\n  {\n    \"id\": \"POWRBNB\",\n    \"asset\": \"POWR\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.10000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"POWR/BNB\"\n  },\n  {\n    \"id\": \"VENBTC\",\n    \"asset\": \"VEN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VEN/BTC\"\n  },\n  {\n    \"id\": \"VENETH\",\n    \"asset\": \"VEN\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VEN/ETH\"\n  },\n  {\n    \"id\": \"KMDBTC\",\n    \"asset\": \"KMD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"KMD/BTC\"\n  },\n  {\n    \"id\": \"KMDETH\",\n    \"asset\": \"KMD\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"KMD/ETH\"\n  },\n  {\n    \"id\": \"NULSBNB\",\n    \"asset\": \"NULS\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"NULS/BNB\"\n  },\n  {\n    \"id\": \"RCNBTC\",\n    \"asset\": \"RCN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"RCN/BTC\"\n  },\n  {\n    \"id\": \"RCNETH\",\n    \"asset\": \"RCN\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"RCN/ETH\"\n  },\n  {\n    \"id\": \"RCNBNB\",\n    \"asset\": \"RCN\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"RCN/BNB\"\n  },\n  {\n    \"id\": \"NULSBTC\",\n    \"asset\": \"NULS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NULS/BTC\"\n  },\n  {\n    \"id\": \"NULSETH\",\n    \"asset\": \"NULS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NULS/ETH\"\n  },\n  {\n    \"id\": \"RDNBTC\",\n    \"asset\": \"RDN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"RDN/BTC\"\n  },\n  {\n    \"id\": \"RDNETH\",\n    \"asset\": \"RDN\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"RDN/ETH\"\n  },\n  {\n    \"id\": \"RDNBNB\",\n    \"asset\": \"RDN\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"RDN/BNB\"\n  },\n  {\n    \"id\": \"XMRBTC\",\n    \"asset\": \"XMR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"XMR/BTC\"\n  },\n  {\n    \"id\": \"XMRETH\",\n    \"asset\": \"XMR\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"XMR/ETH\"\n  },\n  {\n    \"id\": \"DLTBNB\",\n    \"asset\": \"DLT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DLT/BNB\"\n  },\n  {\n    \"id\": \"WTCBNB\",\n    \"asset\": \"WTC\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"WTC/BNB\"\n  },\n  {\n    \"id\": \"DLTBTC\",\n    \"asset\": \"DLT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DLT/BTC\"\n  },\n  {\n    \"id\": \"DLTETH\",\n    \"asset\": \"DLT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DLT/ETH\"\n  },\n  {\n    \"id\": \"AMBBTC\",\n    \"asset\": \"AMB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AMB/BTC\"\n  },\n  {\n    \"id\": \"AMBETH\",\n    \"asset\": \"AMB\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AMB/ETH\"\n  },\n  {\n    \"id\": \"AMBBNB\",\n    \"asset\": \"AMB\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AMB/BNB\"\n  },\n  {\n    \"id\": \"BCCETH\",\n    \"asset\": \"BCC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BCC/ETH\"\n  },\n  {\n    \"id\": \"BCCUSDT\",\n    \"asset\": \"BCC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BCC/USDT\"\n  },\n  {\n    \"id\": \"BCCBNB\",\n    \"asset\": \"BCC\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.10000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BCC/BNB\"\n  },\n  {\n    \"id\": \"BATBTC\",\n    \"asset\": \"BAT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BAT/BTC\"\n  },\n  {\n    \"id\": \"BATETH\",\n    \"asset\": \"BAT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BAT/ETH\"\n  },\n  {\n    \"id\": \"BATBNB\",\n    \"asset\": \"BAT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BAT/BNB\"\n  },\n  {\n    \"id\": \"BCPTBTC\",\n    \"asset\": \"BCPT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BCPT/BTC\"\n  },\n  {\n    \"id\": \"BCPTETH\",\n    \"asset\": \"BCPT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BCPT/ETH\"\n  },\n  {\n    \"id\": \"BCPTBNB\",\n    \"asset\": \"BCPT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BCPT/BNB\"\n  },\n  {\n    \"id\": \"ARNBTC\",\n    \"asset\": \"ARN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ARN/BTC\"\n  },\n  {\n    \"id\": \"ARNETH\",\n    \"asset\": \"ARN\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ARN/ETH\"\n  },\n  {\n    \"id\": \"GVTBTC\",\n    \"asset\": \"GVT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"GVT/BTC\"\n  },\n  {\n    \"id\": \"GVTETH\",\n    \"asset\": \"GVT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"GVT/ETH\"\n  },\n  {\n    \"id\": \"CDTBTC\",\n    \"asset\": \"CDT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CDT/BTC\"\n  },\n  {\n    \"id\": \"CDTETH\",\n    \"asset\": \"CDT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CDT/ETH\"\n  },\n  {\n    \"id\": \"GXSBTC\",\n    \"asset\": \"GXS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"GXS/BTC\"\n  },\n  {\n    \"id\": \"GXSETH\",\n    \"asset\": \"GXS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"GXS/ETH\"\n  },\n  {\n    \"id\": \"NEOUSDT\",\n    \"asset\": \"NEO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"NEO/USDT\"\n  },\n  {\n    \"id\": \"NEOBNB\",\n    \"asset\": \"NEO\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NEO/BNB\"\n  },\n  {\n    \"id\": \"POEBTC\",\n    \"asset\": \"POE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"POE/BTC\"\n  },\n  {\n    \"id\": \"POEETH\",\n    \"asset\": \"POE\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"POE/ETH\"\n  },\n  {\n    \"id\": \"QSPBTC\",\n    \"asset\": \"QSP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"QSP/BTC\"\n  },\n  {\n    \"id\": \"QSPETH\",\n    \"asset\": \"QSP\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"QSP/ETH\"\n  },\n  {\n    \"id\": \"QSPBNB\",\n    \"asset\": \"QSP\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"QSP/BNB\"\n  },\n  {\n    \"id\": \"BTSBTC\",\n    \"asset\": \"BTS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BTS/BTC\"\n  },\n  {\n    \"id\": \"BTSETH\",\n    \"asset\": \"BTS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BTS/ETH\"\n  },\n  {\n    \"id\": \"BTSBNB\",\n    \"asset\": \"BTS\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BTS/BNB\"\n  },\n  {\n    \"id\": \"XZCBTC\",\n    \"asset\": \"XZC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XZC/BTC\"\n  },\n  {\n    \"id\": \"XZCETH\",\n    \"asset\": \"XZC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XZC/ETH\"\n  },\n  {\n    \"id\": \"XZCBNB\",\n    \"asset\": \"XZC\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XZC/BNB\"\n  },\n  {\n    \"id\": \"LSKBTC\",\n    \"asset\": \"LSK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LSK/BTC\"\n  },\n  {\n    \"id\": \"LSKETH\",\n    \"asset\": \"LSK\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LSK/ETH\"\n  },\n  {\n    \"id\": \"LSKBNB\",\n    \"asset\": \"LSK\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"LSK/BNB\"\n  },\n  {\n    \"id\": \"TNTBTC\",\n    \"asset\": \"TNT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TNT/BTC\"\n  },\n  {\n    \"id\": \"TNTETH\",\n    \"asset\": \"TNT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TNT/ETH\"\n  },\n  {\n    \"id\": \"FUELBTC\",\n    \"asset\": \"FUEL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"FUEL/BTC\"\n  },\n  {\n    \"id\": \"FUELETH\",\n    \"asset\": \"FUEL\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"FUEL/ETH\"\n  },\n  {\n    \"id\": \"MANABTC\",\n    \"asset\": \"MANA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MANA/BTC\"\n  },\n  {\n    \"id\": \"MANAETH\",\n    \"asset\": \"MANA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MANA/ETH\"\n  },\n  {\n    \"id\": \"BCDBTC\",\n    \"asset\": \"BCD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BCD/BTC\"\n  },\n  {\n    \"id\": \"BCDETH\",\n    \"asset\": \"BCD\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BCD/ETH\"\n  },\n  {\n    \"id\": \"DGDBTC\",\n    \"asset\": \"DGD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DGD/BTC\"\n  },\n  {\n    \"id\": \"DGDETH\",\n    \"asset\": \"DGD\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DGD/ETH\"\n  },\n  {\n    \"id\": \"IOTABNB\",\n    \"asset\": \"IOTA\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"IOTA/BNB\"\n  },\n  {\n    \"id\": \"ADXBTC\",\n    \"asset\": \"ADX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ADX/BTC\"\n  },\n  {\n    \"id\": \"ADXETH\",\n    \"asset\": \"ADX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ADX/ETH\"\n  },\n  {\n    \"id\": \"ADXBNB\",\n    \"asset\": \"ADX\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ADX/BNB\"\n  },\n  {\n    \"id\": \"ADABTC\",\n    \"asset\": \"ADA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ADA/BTC\"\n  },\n  {\n    \"id\": \"ADAETH\",\n    \"asset\": \"ADA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ADA/ETH\"\n  },\n  {\n    \"id\": \"PPTBTC\",\n    \"asset\": \"PPT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"PPT/BTC\"\n  },\n  {\n    \"id\": \"PPTETH\",\n    \"asset\": \"PPT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"PPT/ETH\"\n  },\n  {\n    \"id\": \"CMTBTC\",\n    \"asset\": \"CMT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CMT/BTC\"\n  },\n  {\n    \"id\": \"CMTETH\",\n    \"asset\": \"CMT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CMT/ETH\"\n  },\n  {\n    \"id\": \"CMTBNB\",\n    \"asset\": \"CMT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CMT/BNB\"\n  },\n  {\n    \"id\": \"XLMBTC\",\n    \"asset\": \"XLM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"XLM/BTC\"\n  },\n  {\n    \"id\": \"XLMETH\",\n    \"asset\": \"XLM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"XLM/ETH\"\n  },\n  {\n    \"id\": \"XLMBNB\",\n    \"asset\": \"XLM\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"XLM/BNB\"\n  },\n  {\n    \"id\": \"CNDBTC\",\n    \"asset\": \"CND\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CND/BTC\"\n  },\n  {\n    \"id\": \"CNDETH\",\n    \"asset\": \"CND\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CND/ETH\"\n  },\n  {\n    \"id\": \"CNDBNB\",\n    \"asset\": \"CND\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CND/BNB\"\n  },\n  {\n    \"id\": \"LENDBTC\",\n    \"asset\": \"LEND\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"LEND/BTC\"\n  },\n  {\n    \"id\": \"LENDETH\",\n    \"asset\": \"LEND\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"LEND/ETH\"\n  },\n  {\n    \"id\": \"WABIBTC\",\n    \"asset\": \"WABI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WABI/BTC\"\n  },\n  {\n    \"id\": \"WABIETH\",\n    \"asset\": \"WABI\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WABI/ETH\"\n  },\n  {\n    \"id\": \"WABIBNB\",\n    \"asset\": \"WABI\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WABI/BNB\"\n  },\n  {\n    \"id\": \"LTCETH\",\n    \"asset\": \"LTC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"LTC/ETH\"\n  },\n  {\n    \"id\": \"LTCUSDT\",\n    \"asset\": \"LTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"LTC/USDT\"\n  },\n  {\n    \"id\": \"LTCBNB\",\n    \"asset\": \"LTC\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"LTC/BNB\"\n  },\n  {\n    \"id\": \"TNBBTC\",\n    \"asset\": \"TNB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TNB/BTC\"\n  },\n  {\n    \"id\": \"TNBETH\",\n    \"asset\": \"TNB\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TNB/ETH\"\n  },\n  {\n    \"id\": \"WAVESBTC\",\n    \"asset\": \"WAVES\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"WAVES/BTC\"\n  },\n  {\n    \"id\": \"WAVESETH\",\n    \"asset\": \"WAVES\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"WAVES/ETH\"\n  },\n  {\n    \"id\": \"WAVESBNB\",\n    \"asset\": \"WAVES\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"WAVES/BNB\"\n  },\n  {\n    \"id\": \"GTOBTC\",\n    \"asset\": \"GTO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"GTO/BTC\"\n  },\n  {\n    \"id\": \"GTOETH\",\n    \"asset\": \"GTO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"GTO/ETH\"\n  },\n  {\n    \"id\": \"GTOBNB\",\n    \"asset\": \"GTO\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"GTO/BNB\"\n  },\n  {\n    \"id\": \"ICXBTC\",\n    \"asset\": \"ICX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ICX/BTC\"\n  },\n  {\n    \"id\": \"ICXETH\",\n    \"asset\": \"ICX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ICX/ETH\"\n  },\n  {\n    \"id\": \"ICXBNB\",\n    \"asset\": \"ICX\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ICX/BNB\"\n  },\n  {\n    \"id\": \"OSTBTC\",\n    \"asset\": \"OST\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"OST/BTC\"\n  },\n  {\n    \"id\": \"OSTETH\",\n    \"asset\": \"OST\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"OST/ETH\"\n  },\n  {\n    \"id\": \"OSTBNB\",\n    \"asset\": \"OST\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"OST/BNB\"\n  },\n  {\n    \"id\": \"ELFBTC\",\n    \"asset\": \"ELF\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ELF/BTC\"\n  },\n  {\n    \"id\": \"ELFETH\",\n    \"asset\": \"ELF\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ELF/ETH\"\n  },\n  {\n    \"id\": \"AIONBTC\",\n    \"asset\": \"AION\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AION/BTC\"\n  },\n  {\n    \"id\": \"AIONETH\",\n    \"asset\": \"AION\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AION/ETH\"\n  },\n  {\n    \"id\": \"AIONBNB\",\n    \"asset\": \"AION\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AION/BNB\"\n  },\n  {\n    \"id\": \"NEBLBTC\",\n    \"asset\": \"NEBL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NEBL/BTC\"\n  },\n  {\n    \"id\": \"NEBLETH\",\n    \"asset\": \"NEBL\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NEBL/ETH\"\n  },\n  {\n    \"id\": \"NEBLBNB\",\n    \"asset\": \"NEBL\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"NEBL/BNB\"\n  },\n  {\n    \"id\": \"BRDBTC\",\n    \"asset\": \"BRD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BRD/BTC\"\n  },\n  {\n    \"id\": \"BRDETH\",\n    \"asset\": \"BRD\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BRD/ETH\"\n  },\n  {\n    \"id\": \"BRDBNB\",\n    \"asset\": \"BRD\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BRD/BNB\"\n  },\n  {\n    \"id\": \"MCOBNB\",\n    \"asset\": \"MCO\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"MCO/BNB\"\n  },\n  {\n    \"id\": \"EDOBTC\",\n    \"asset\": \"EDO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"EDO/BTC\"\n  },\n  {\n    \"id\": \"EDOETH\",\n    \"asset\": \"EDO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EDO/ETH\"\n  },\n  {\n    \"id\": \"WINGSBTC\",\n    \"asset\": \"WINGS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WINGS/BTC\"\n  },\n  {\n    \"id\": \"WINGSETH\",\n    \"asset\": \"WINGS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WINGS/ETH\"\n  },\n  {\n    \"id\": \"NAVBTC\",\n    \"asset\": \"NAV\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NAV/BTC\"\n  },\n  {\n    \"id\": \"NAVETH\",\n    \"asset\": \"NAV\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NAV/ETH\"\n  },\n  {\n    \"id\": \"NAVBNB\",\n    \"asset\": \"NAV\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NAV/BNB\"\n  },\n  {\n    \"id\": \"LUNBTC\",\n    \"asset\": \"LUN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LUN/BTC\"\n  },\n  {\n    \"id\": \"LUNETH\",\n    \"asset\": \"LUN\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LUN/ETH\"\n  },\n  {\n    \"id\": \"TRIGBTC\",\n    \"asset\": \"TRIG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TRIG/BTC\"\n  },\n  {\n    \"id\": \"TRIGETH\",\n    \"asset\": \"TRIG\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TRIG/ETH\"\n  },\n  {\n    \"id\": \"TRIGBNB\",\n    \"asset\": \"TRIG\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"TRIG/BNB\"\n  },\n  {\n    \"id\": \"APPCBTC\",\n    \"asset\": \"APPC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"APPC/BTC\"\n  },\n  {\n    \"id\": \"APPCETH\",\n    \"asset\": \"APPC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"APPC/ETH\"\n  },\n  {\n    \"id\": \"APPCBNB\",\n    \"asset\": \"APPC\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"APPC/BNB\"\n  },\n  {\n    \"id\": \"VIBEBTC\",\n    \"asset\": \"VIBE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VIBE/BTC\"\n  },\n  {\n    \"id\": \"VIBEETH\",\n    \"asset\": \"VIBE\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VIBE/ETH\"\n  },\n  {\n    \"id\": \"RLCBTC\",\n    \"asset\": \"RLC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"RLC/BTC\"\n  },\n  {\n    \"id\": \"RLCETH\",\n    \"asset\": \"RLC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"RLC/ETH\"\n  },\n  {\n    \"id\": \"RLCBNB\",\n    \"asset\": \"RLC\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"RLC/BNB\"\n  },\n  {\n    \"id\": \"INSBTC\",\n    \"asset\": \"INS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"INS/BTC\"\n  },\n  {\n    \"id\": \"INSETH\",\n    \"asset\": \"INS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"INS/ETH\"\n  },\n  {\n    \"id\": \"PIVXBTC\",\n    \"asset\": \"PIVX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"PIVX/BTC\"\n  },\n  {\n    \"id\": \"PIVXETH\",\n    \"asset\": \"PIVX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"PIVX/ETH\"\n  },\n  {\n    \"id\": \"PIVXBNB\",\n    \"asset\": \"PIVX\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"PIVX/BNB\"\n  },\n  {\n    \"id\": \"IOSTBTC\",\n    \"asset\": \"IOST\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"IOST/BTC\"\n  },\n  {\n    \"id\": \"IOSTETH\",\n    \"asset\": \"IOST\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"IOST/ETH\"\n  },\n  {\n    \"id\": \"CHATBTC\",\n    \"asset\": \"CHAT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CHAT/BTC\"\n  },\n  {\n    \"id\": \"CHATETH\",\n    \"asset\": \"CHAT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CHAT/ETH\"\n  },\n  {\n    \"id\": \"STEEMBTC\",\n    \"asset\": \"STEEM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"STEEM/BTC\"\n  },\n  {\n    \"id\": \"STEEMETH\",\n    \"asset\": \"STEEM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"STEEM/ETH\"\n  },\n  {\n    \"id\": \"STEEMBNB\",\n    \"asset\": \"STEEM\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"STEEM/BNB\"\n  },\n  {\n    \"id\": \"NANOBTC\",\n    \"asset\": \"NANO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NANO/BTC\"\n  },\n  {\n    \"id\": \"NANOETH\",\n    \"asset\": \"NANO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NANO/ETH\"\n  },\n  {\n    \"id\": \"NANOBNB\",\n    \"asset\": \"NANO\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"NANO/BNB\"\n  },\n  {\n    \"id\": \"VIABTC\",\n    \"asset\": \"VIA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VIA/BTC\"\n  },\n  {\n    \"id\": \"VIAETH\",\n    \"asset\": \"VIA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"VIA/ETH\"\n  },\n  {\n    \"id\": \"VIABNB\",\n    \"asset\": \"VIA\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"VIA/BNB\"\n  },\n  {\n    \"id\": \"BLZBTC\",\n    \"asset\": \"BLZ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BLZ/BTC\"\n  },\n  {\n    \"id\": \"BLZETH\",\n    \"asset\": \"BLZ\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BLZ/ETH\"\n  },\n  {\n    \"id\": \"BLZBNB\",\n    \"asset\": \"BLZ\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BLZ/BNB\"\n  },\n  {\n    \"id\": \"AEBTC\",\n    \"asset\": \"AE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AE/BTC\"\n  },\n  {\n    \"id\": \"AEETH\",\n    \"asset\": \"AE\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AE/ETH\"\n  },\n  {\n    \"id\": \"AEBNB\",\n    \"asset\": \"AE\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"AE/BNB\"\n  },\n  {\n    \"id\": \"RPXBTC\",\n    \"asset\": \"RPX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"RPX/BTC\"\n  },\n  {\n    \"id\": \"RPXETH\",\n    \"asset\": \"RPX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"RPX/ETH\"\n  },\n  {\n    \"id\": \"RPXBNB\",\n    \"asset\": \"RPX\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"RPX/BNB\"\n  },\n  {\n    \"id\": \"NCASHBTC\",\n    \"asset\": \"NCASH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NCASH/BTC\"\n  },\n  {\n    \"id\": \"NCASHETH\",\n    \"asset\": \"NCASH\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NCASH/ETH\"\n  },\n  {\n    \"id\": \"NCASHBNB\",\n    \"asset\": \"NCASH\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NCASH/BNB\"\n  },\n  {\n    \"id\": \"POABTC\",\n    \"asset\": \"POA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"POA/BTC\"\n  },\n  {\n    \"id\": \"POAETH\",\n    \"asset\": \"POA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"POA/ETH\"\n  },\n  {\n    \"id\": \"POABNB\",\n    \"asset\": \"POA\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"POA/BNB\"\n  },\n  {\n    \"id\": \"ZILBTC\",\n    \"asset\": \"ZIL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ZIL/BTC\"\n  },\n  {\n    \"id\": \"ZILETH\",\n    \"asset\": \"ZIL\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ZIL/ETH\"\n  },\n  {\n    \"id\": \"ZILBNB\",\n    \"asset\": \"ZIL\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ZIL/BNB\"\n  },\n  {\n    \"id\": \"ONTBTC\",\n    \"asset\": \"ONT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ONT/BTC\"\n  },\n  {\n    \"id\": \"ONTETH\",\n    \"asset\": \"ONT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ONT/ETH\"\n  },\n  {\n    \"id\": \"ONTBNB\",\n    \"asset\": \"ONT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ONT/BNB\"\n  },\n  {\n    \"id\": \"STORMBTC\",\n    \"asset\": \"STORM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"STORM/BTC\"\n  },\n  {\n    \"id\": \"STORMETH\",\n    \"asset\": \"STORM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"STORM/ETH\"\n  },\n  {\n    \"id\": \"STORMBNB\",\n    \"asset\": \"STORM\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"STORM/BNB\"\n  },\n  {\n    \"id\": \"QTUMBNB\",\n    \"asset\": \"QTUM\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"QTUM/BNB\"\n  },\n  {\n    \"id\": \"QTUMUSDT\",\n    \"asset\": \"QTUM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"QTUM/USDT\"\n  },\n  {\n    \"id\": \"XEMBTC\",\n    \"asset\": \"XEM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"XEM/BTC\"\n  },\n  {\n    \"id\": \"XEMETH\",\n    \"asset\": \"XEM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"XEM/ETH\"\n  },\n  {\n    \"id\": \"XEMBNB\",\n    \"asset\": \"XEM\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"XEM/BNB\"\n  },\n  {\n    \"id\": \"WANBTC\",\n    \"asset\": \"WAN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WAN/BTC\"\n  },\n  {\n    \"id\": \"WANETH\",\n    \"asset\": \"WAN\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"WAN/ETH\"\n  },\n  {\n    \"id\": \"WANBNB\",\n    \"asset\": \"WAN\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"WAN/BNB\"\n  },\n  {\n    \"id\": \"WPRBTC\",\n    \"asset\": \"WPR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WPR/BTC\"\n  },\n  {\n    \"id\": \"WPRETH\",\n    \"asset\": \"WPR\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WPR/ETH\"\n  },\n  {\n    \"id\": \"QLCBTC\",\n    \"asset\": \"QLC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"QLC/BTC\"\n  },\n  {\n    \"id\": \"QLCETH\",\n    \"asset\": \"QLC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"QLC/ETH\"\n  },\n  {\n    \"id\": \"SYSBTC\",\n    \"asset\": \"SYS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SYS/BTC\"\n  },\n  {\n    \"id\": \"SYSETH\",\n    \"asset\": \"SYS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SYS/ETH\"\n  },\n  {\n    \"id\": \"SYSBNB\",\n    \"asset\": \"SYS\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SYS/BNB\"\n  },\n  {\n    \"id\": \"QLCBNB\",\n    \"asset\": \"QLC\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"QLC/BNB\"\n  },\n  {\n    \"id\": \"GRSBTC\",\n    \"asset\": \"GRS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"GRS/BTC\"\n  },\n  {\n    \"id\": \"GRSETH\",\n    \"asset\": \"GRS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"GRS/ETH\"\n  },\n  {\n    \"id\": \"ADAUSDT\",\n    \"asset\": \"ADA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ADA/USDT\"\n  },\n  {\n    \"id\": \"ADABNB\",\n    \"asset\": \"ADA\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ADA/BNB\"\n  },\n  {\n    \"id\": \"CLOAKBTC\",\n    \"asset\": \"CLOAK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"CLOAK/BTC\"\n  },\n  {\n    \"id\": \"CLOAKETH\",\n    \"asset\": \"CLOAK\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"CLOAK/ETH\"\n  },\n  {\n    \"id\": \"GNTBTC\",\n    \"asset\": \"GNT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"GNT/BTC\"\n  },\n  {\n    \"id\": \"GNTETH\",\n    \"asset\": \"GNT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"GNT/ETH\"\n  },\n  {\n    \"id\": \"GNTBNB\",\n    \"asset\": \"GNT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.10000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"GNT/BNB\"\n  },\n  {\n    \"id\": \"LOOMBTC\",\n    \"asset\": \"LOOM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"LOOM/BTC\"\n  },\n  {\n    \"id\": \"LOOMETH\",\n    \"asset\": \"LOOM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"LOOM/ETH\"\n  },\n  {\n    \"id\": \"LOOMBNB\",\n    \"asset\": \"LOOM\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"LOOM/BNB\"\n  },\n  {\n    \"id\": \"XRPUSDT\",\n    \"asset\": \"XRP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XRP/USDT\"\n  },\n  {\n    \"id\": \"BCNBTC\",\n    \"asset\": \"BCN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BCN/BTC\"\n  },\n  {\n    \"id\": \"BCNETH\",\n    \"asset\": \"BCN\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BCN/ETH\"\n  },\n  {\n    \"id\": \"BCNBNB\",\n    \"asset\": \"BCN\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BCN/BNB\"\n  },\n  {\n    \"id\": \"REPBTC\",\n    \"asset\": \"REP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"REP/BTC\"\n  },\n  {\n    \"id\": \"REPETH\",\n    \"asset\": \"REP\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"REP/ETH\"\n  },\n  {\n    \"id\": \"REPBNB\",\n    \"asset\": \"REP\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"REP/BNB\"\n  },\n  {\n    \"id\": \"BTCTUSD\",\n    \"asset\": \"BTC\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/TUSD\"\n  },\n  {\n    \"id\": \"TUSDBTC\",\n    \"asset\": \"TUSD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TUSD/BTC\"\n  },\n  {\n    \"id\": \"ETHTUSD\",\n    \"asset\": \"ETH\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/TUSD\"\n  },\n  {\n    \"id\": \"TUSDETH\",\n    \"asset\": \"TUSD\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TUSD/ETH\"\n  },\n  {\n    \"id\": \"TUSDBNB\",\n    \"asset\": \"TUSD\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"TUSD/BNB\"\n  },\n  {\n    \"id\": \"ZENBTC\",\n    \"asset\": \"ZEN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ZEN/BTC\"\n  },\n  {\n    \"id\": \"ZENETH\",\n    \"asset\": \"ZEN\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ZEN/ETH\"\n  },\n  {\n    \"id\": \"ZENBNB\",\n    \"asset\": \"ZEN\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ZEN/BNB\"\n  },\n  {\n    \"id\": \"SKYBTC\",\n    \"asset\": \"SKY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SKY/BTC\"\n  },\n  {\n    \"id\": \"SKYETH\",\n    \"asset\": \"SKY\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"SKY/ETH\"\n  },\n  {\n    \"id\": \"SKYBNB\",\n    \"asset\": \"SKY\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"SKY/BNB\"\n  },\n  {\n    \"id\": \"EOSUSDT\",\n    \"asset\": \"EOS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EOS/USDT\"\n  },\n  {\n    \"id\": \"EOSBNB\",\n    \"asset\": \"EOS\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EOS/BNB\"\n  },\n  {\n    \"id\": \"CVCBTC\",\n    \"asset\": \"CVC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CVC/BTC\"\n  },\n  {\n    \"id\": \"CVCETH\",\n    \"asset\": \"CVC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CVC/ETH\"\n  },\n  {\n    \"id\": \"CVCBNB\",\n    \"asset\": \"CVC\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CVC/BNB\"\n  },\n  {\n    \"id\": \"THETABTC\",\n    \"asset\": \"THETA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"THETA/BTC\"\n  },\n  {\n    \"id\": \"THETAETH\",\n    \"asset\": \"THETA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"THETA/ETH\"\n  },\n  {\n    \"id\": \"THETABNB\",\n    \"asset\": \"THETA\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"THETA/BNB\"\n  },\n  {\n    \"id\": \"XRPBNB\",\n    \"asset\": \"XRP\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XRP/BNB\"\n  },\n  {\n    \"id\": \"TUSDUSDT\",\n    \"asset\": \"TUSD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TUSD/USDT\"\n  },\n  {\n    \"id\": \"IOTAUSDT\",\n    \"asset\": \"IOTA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"IOTA/USDT\"\n  },\n  {\n    \"id\": \"XLMUSDT\",\n    \"asset\": \"XLM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XLM/USDT\"\n  },\n  {\n    \"id\": \"IOTXBTC\",\n    \"asset\": \"IOTX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"IOTX/BTC\"\n  },\n  {\n    \"id\": \"IOTXETH\",\n    \"asset\": \"IOTX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"IOTX/ETH\"\n  },\n  {\n    \"id\": \"QKCBTC\",\n    \"asset\": \"QKC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"QKC/BTC\"\n  },\n  {\n    \"id\": \"QKCETH\",\n    \"asset\": \"QKC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"QKC/ETH\"\n  },\n  {\n    \"id\": \"AGIBTC\",\n    \"asset\": \"AGI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AGI/BTC\"\n  },\n  {\n    \"id\": \"AGIETH\",\n    \"asset\": \"AGI\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AGI/ETH\"\n  },\n  {\n    \"id\": \"AGIBNB\",\n    \"asset\": \"AGI\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AGI/BNB\"\n  },\n  {\n    \"id\": \"NXSBTC\",\n    \"asset\": \"NXS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NXS/BTC\"\n  },\n  {\n    \"id\": \"NXSETH\",\n    \"asset\": \"NXS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NXS/ETH\"\n  },\n  {\n    \"id\": \"NXSBNB\",\n    \"asset\": \"NXS\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"NXS/BNB\"\n  },\n  {\n    \"id\": \"ENJBNB\",\n    \"asset\": \"ENJ\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ENJ/BNB\"\n  },\n  {\n    \"id\": \"DATABTC\",\n    \"asset\": \"DATA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DATA/BTC\"\n  },\n  {\n    \"id\": \"DATAETH\",\n    \"asset\": \"DATA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DATA/ETH\"\n  },\n  {\n    \"id\": \"ONTUSDT\",\n    \"asset\": \"ONT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ONT/USDT\"\n  },\n  {\n    \"id\": \"TRXBNB\",\n    \"asset\": \"TRX\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TRX/BNB\"\n  },\n  {\n    \"id\": \"TRXUSDT\",\n    \"asset\": \"TRX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"TRX/USDT\"\n  },\n  {\n    \"id\": \"ETCUSDT\",\n    \"asset\": \"ETC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ETC/USDT\"\n  },\n  {\n    \"id\": \"ETCBNB\",\n    \"asset\": \"ETC\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ETC/BNB\"\n  },\n  {\n    \"id\": \"ICXUSDT\",\n    \"asset\": \"ICX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ICX/USDT\"\n  },\n  {\n    \"id\": \"SCBTC\",\n    \"asset\": \"SC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SC/BTC\"\n  },\n  {\n    \"id\": \"SCETH\",\n    \"asset\": \"SC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SC/ETH\"\n  },\n  {\n    \"id\": \"SCBNB\",\n    \"asset\": \"SC\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SC/BNB\"\n  },\n  {\n    \"id\": \"NPXSBTC\",\n    \"asset\": \"NPXS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NPXS/BTC\"\n  },\n  {\n    \"id\": \"NPXSETH\",\n    \"asset\": \"NPXS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NPXS/ETH\"\n  },\n  {\n    \"id\": \"VENUSDT\",\n    \"asset\": \"VEN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"VEN/USDT\"\n  },\n  {\n    \"id\": \"KEYBTC\",\n    \"asset\": \"KEY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"KEY/BTC\"\n  },\n  {\n    \"id\": \"KEYETH\",\n    \"asset\": \"KEY\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"KEY/ETH\"\n  },\n  {\n    \"id\": \"NASBTC\",\n    \"asset\": \"NAS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NAS/BTC\"\n  },\n  {\n    \"id\": \"NASETH\",\n    \"asset\": \"NAS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NAS/ETH\"\n  },\n  {\n    \"id\": \"NASBNB\",\n    \"asset\": \"NAS\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"NAS/BNB\"\n  },\n  {\n    \"id\": \"MFTBTC\",\n    \"asset\": \"MFT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MFT/BTC\"\n  },\n  {\n    \"id\": \"MFTETH\",\n    \"asset\": \"MFT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MFT/ETH\"\n  },\n  {\n    \"id\": \"MFTBNB\",\n    \"asset\": \"MFT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MFT/BNB\"\n  },\n  {\n    \"id\": \"DENTBTC\",\n    \"asset\": \"DENT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DENT/BTC\"\n  },\n  {\n    \"id\": \"DENTETH\",\n    \"asset\": \"DENT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DENT/ETH\"\n  },\n  {\n    \"id\": \"ARDRBTC\",\n    \"asset\": \"ARDR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ARDR/BTC\"\n  },\n  {\n    \"id\": \"ARDRETH\",\n    \"asset\": \"ARDR\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ARDR/ETH\"\n  },\n  {\n    \"id\": \"ARDRBNB\",\n    \"asset\": \"ARDR\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ARDR/BNB\"\n  },\n  {\n    \"id\": \"NULSUSDT\",\n    \"asset\": \"NULS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NULS/USDT\"\n  },\n  {\n    \"id\": \"HOTBTC\",\n    \"asset\": \"HOT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"HOT/BTC\"\n  },\n  {\n    \"id\": \"HOTETH\",\n    \"asset\": \"HOT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"HOT/ETH\"\n  },\n  {\n    \"id\": \"VETBTC\",\n    \"asset\": \"VET\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VET/BTC\"\n  },\n  {\n    \"id\": \"VETETH\",\n    \"asset\": \"VET\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VET/ETH\"\n  },\n  {\n    \"id\": \"VETUSDT\",\n    \"asset\": \"VET\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"VET/USDT\"\n  },\n  {\n    \"id\": \"VETBNB\",\n    \"asset\": \"VET\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VET/BNB\"\n  },\n  {\n    \"id\": \"DOCKBTC\",\n    \"asset\": \"DOCK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DOCK/BTC\"\n  },\n  {\n    \"id\": \"DOCKETH\",\n    \"asset\": \"DOCK\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DOCK/ETH\"\n  },\n  {\n    \"id\": \"POLYBTC\",\n    \"asset\": \"POLY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"POLY/BTC\"\n  },\n  {\n    \"id\": \"POLYBNB\",\n    \"asset\": \"POLY\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"POLY/BNB\"\n  },\n  {\n    \"id\": \"PHXBTC\",\n    \"asset\": \"PHX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"PHX/BTC\"\n  },\n  {\n    \"id\": \"PHXETH\",\n    \"asset\": \"PHX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"PHX/ETH\"\n  },\n  {\n    \"id\": \"PHXBNB\",\n    \"asset\": \"PHX\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"PHX/BNB\"\n  },\n  {\n    \"id\": \"HCBTC\",\n    \"asset\": \"HC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"HC/BTC\"\n  },\n  {\n    \"id\": \"HCETH\",\n    \"asset\": \"HC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"HC/ETH\"\n  },\n  {\n    \"id\": \"GOBTC\",\n    \"asset\": \"GO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"GO/BTC\"\n  },\n  {\n    \"id\": \"GOBNB\",\n    \"asset\": \"GO\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"GO/BNB\"\n  },\n  {\n    \"id\": \"PAXBTC\",\n    \"asset\": \"PAX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"PAX/BTC\"\n  },\n  {\n    \"id\": \"PAXBNB\",\n    \"asset\": \"PAX\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"PAX/BNB\"\n  },\n  {\n    \"id\": \"PAXUSDT\",\n    \"asset\": \"PAX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"PAX/USDT\"\n  },\n  {\n    \"id\": \"PAXETH\",\n    \"asset\": \"PAX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"PAX/ETH\"\n  },\n  {\n    \"id\": \"RVNBTC\",\n    \"asset\": \"RVN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"RVN/BTC\"\n  },\n  {\n    \"id\": \"RVNBNB\",\n    \"asset\": \"RVN\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"RVN/BNB\"\n  },\n  {\n    \"id\": \"DCRBTC\",\n    \"asset\": \"DCR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DCR/BTC\"\n  },\n  {\n    \"id\": \"DCRBNB\",\n    \"asset\": \"DCR\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DCR/BNB\"\n  },\n  {\n    \"id\": \"USDCBNB\",\n    \"asset\": \"USDC\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"USDC/BNB\"\n  },\n  {\n    \"id\": \"MITHBTC\",\n    \"asset\": \"MITH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MITH/BTC\"\n  },\n  {\n    \"id\": \"MITHBNB\",\n    \"asset\": \"MITH\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MITH/BNB\"\n  },\n  {\n    \"id\": \"BCHABCBTC\",\n    \"asset\": \"BCH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BCH/BTC\"\n  },\n  {\n    \"id\": \"BCHSVBTC\",\n    \"asset\": \"BSV\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BSV/BTC\"\n  },\n  {\n    \"id\": \"BCHABCUSDT\",\n    \"asset\": \"BCH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BCH/USDT\"\n  },\n  {\n    \"id\": \"BCHSVUSDT\",\n    \"asset\": \"BSV\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BSV/USDT\"\n  },\n  {\n    \"id\": \"BNBPAX\",\n    \"asset\": \"BNB\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"BNB/PAX\"\n  },\n  {\n    \"id\": \"BTCPAX\",\n    \"asset\": \"BTC\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/PAX\"\n  },\n  {\n    \"id\": \"ETHPAX\",\n    \"asset\": \"ETH\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/PAX\"\n  },\n  {\n    \"id\": \"XRPPAX\",\n    \"asset\": \"XRP\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XRP/PAX\"\n  },\n  {\n    \"id\": \"EOSPAX\",\n    \"asset\": \"EOS\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EOS/PAX\"\n  },\n  {\n    \"id\": \"XLMPAX\",\n    \"asset\": \"XLM\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XLM/PAX\"\n  },\n  {\n    \"id\": \"RENBTC\",\n    \"asset\": \"REN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"REN/BTC\"\n  },\n  {\n    \"id\": \"RENBNB\",\n    \"asset\": \"REN\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"REN/BNB\"\n  },\n  {\n    \"id\": \"BNBTUSD\",\n    \"asset\": \"BNB\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"BNB/TUSD\"\n  },\n  {\n    \"id\": \"XRPTUSD\",\n    \"asset\": \"XRP\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XRP/TUSD\"\n  },\n  {\n    \"id\": \"EOSTUSD\",\n    \"asset\": \"EOS\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EOS/TUSD\"\n  },\n  {\n    \"id\": \"XLMTUSD\",\n    \"asset\": \"XLM\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XLM/TUSD\"\n  },\n  {\n    \"id\": \"BNBUSDC\",\n    \"asset\": \"BNB\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"BNB/USDC\"\n  },\n  {\n    \"id\": \"BTCUSDC\",\n    \"asset\": \"BTC\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/USDC\"\n  },\n  {\n    \"id\": \"ETHUSDC\",\n    \"asset\": \"ETH\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/USDC\"\n  },\n  {\n    \"id\": \"XRPUSDC\",\n    \"asset\": \"XRP\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XRP/USDC\"\n  },\n  {\n    \"id\": \"EOSUSDC\",\n    \"asset\": \"EOS\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EOS/USDC\"\n  },\n  {\n    \"id\": \"XLMUSDC\",\n    \"asset\": \"XLM\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XLM/USDC\"\n  },\n  {\n    \"id\": \"USDCUSDT\",\n    \"asset\": \"USDC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDC/USDT\"\n  },\n  {\n    \"id\": \"ADATUSD\",\n    \"asset\": \"ADA\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ADA/TUSD\"\n  },\n  {\n    \"id\": \"TRXTUSD\",\n    \"asset\": \"TRX\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"TRX/TUSD\"\n  },\n  {\n    \"id\": \"NEOTUSD\",\n    \"asset\": \"NEO\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"NEO/TUSD\"\n  },\n  {\n    \"id\": \"TRXXRP\",\n    \"asset\": \"TRX\",\n    \"currency\": \"XRP\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"TRX/XRP\"\n  },\n  {\n    \"id\": \"XZCXRP\",\n    \"asset\": \"XZC\",\n    \"currency\": \"XRP\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"XZC/XRP\"\n  },\n  {\n    \"id\": \"PAXTUSD\",\n    \"asset\": \"PAX\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"PAX/TUSD\"\n  },\n  {\n    \"id\": \"USDCTUSD\",\n    \"asset\": \"USDC\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDC/TUSD\"\n  },\n  {\n    \"id\": \"USDCPAX\",\n    \"asset\": \"USDC\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDC/PAX\"\n  },\n  {\n    \"id\": \"LINKUSDT\",\n    \"asset\": \"LINK\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"LINK/USDT\"\n  },\n  {\n    \"id\": \"LINKTUSD\",\n    \"asset\": \"LINK\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"LINK/TUSD\"\n  },\n  {\n    \"id\": \"LINKPAX\",\n    \"asset\": \"LINK\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LINK/PAX\"\n  },\n  {\n    \"id\": \"LINKUSDC\",\n    \"asset\": \"LINK\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"LINK/USDC\"\n  },\n  {\n    \"id\": \"WAVESUSDT\",\n    \"asset\": \"WAVES\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"WAVES/USDT\"\n  },\n  {\n    \"id\": \"WAVESTUSD\",\n    \"asset\": \"WAVES\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"WAVES/TUSD\"\n  },\n  {\n    \"id\": \"WAVESPAX\",\n    \"asset\": \"WAVES\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"WAVES/PAX\"\n  },\n  {\n    \"id\": \"WAVESUSDC\",\n    \"asset\": \"WAVES\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"WAVES/USDC\"\n  },\n  {\n    \"id\": \"BCHABCTUSD\",\n    \"asset\": \"BCH\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BCH/TUSD\"\n  },\n  {\n    \"id\": \"BCHABCPAX\",\n    \"asset\": \"BCH\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BCH/PAX\"\n  },\n  {\n    \"id\": \"BCHABCUSDC\",\n    \"asset\": \"BCH\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BCH/USDC\"\n  },\n  {\n    \"id\": \"BCHSVTUSD\",\n    \"asset\": \"BSV\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BSV/TUSD\"\n  },\n  {\n    \"id\": \"BCHSVPAX\",\n    \"asset\": \"BSV\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BSV/PAX\"\n  },\n  {\n    \"id\": \"BCHSVUSDC\",\n    \"asset\": \"BSV\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BSV/USDC\"\n  },\n  {\n    \"id\": \"LTCTUSD\",\n    \"asset\": \"LTC\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"LTC/TUSD\"\n  },\n  {\n    \"id\": \"LTCPAX\",\n    \"asset\": \"LTC\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"LTC/PAX\"\n  },\n  {\n    \"id\": \"LTCUSDC\",\n    \"asset\": \"LTC\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"LTC/USDC\"\n  },\n  {\n    \"id\": \"TRXPAX\",\n    \"asset\": \"TRX\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"TRX/PAX\"\n  },\n  {\n    \"id\": \"TRXUSDC\",\n    \"asset\": \"TRX\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"TRX/USDC\"\n  },\n  {\n    \"id\": \"BTTBTC\",\n    \"asset\": \"BTT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BTT/BTC\"\n  },\n  {\n    \"id\": \"BTTBNB\",\n    \"asset\": \"BTT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BTT/BNB\"\n  },\n  {\n    \"id\": \"BTTUSDT\",\n    \"asset\": \"BTT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BTT/USDT\"\n  },\n  {\n    \"id\": \"BNBUSDS\",\n    \"asset\": \"BNB\",\n    \"currency\": \"USDS\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BNB/USDS\"\n  },\n  {\n    \"id\": \"BTCUSDS\",\n    \"asset\": \"BTC\",\n    \"currency\": \"USDS\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/USDS\"\n  },\n  {\n    \"id\": \"USDSUSDT\",\n    \"asset\": \"USDS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDS/USDT\"\n  },\n  {\n    \"id\": \"USDSPAX\",\n    \"asset\": \"USDS\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDS/PAX\"\n  },\n  {\n    \"id\": \"USDSTUSD\",\n    \"asset\": \"USDS\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDS/TUSD\"\n  },\n  {\n    \"id\": \"USDSUSDC\",\n    \"asset\": \"USDS\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDS/USDC\"\n  },\n  {\n    \"id\": \"BTTPAX\",\n    \"asset\": \"BTT\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BTT/PAX\"\n  },\n  {\n    \"id\": \"BTTTUSD\",\n    \"asset\": \"BTT\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BTT/TUSD\"\n  },\n  {\n    \"id\": \"BTTUSDC\",\n    \"asset\": \"BTT\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BTT/USDC\"\n  },\n  {\n    \"id\": \"ONGBNB\",\n    \"asset\": \"ONG\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ONG/BNB\"\n  },\n  {\n    \"id\": \"ONGBTC\",\n    \"asset\": \"ONG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ONG/BTC\"\n  },\n  {\n    \"id\": \"ONGUSDT\",\n    \"asset\": \"ONG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ONG/USDT\"\n  },\n  {\n    \"id\": \"HOTBNB\",\n    \"asset\": \"HOT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"HOT/BNB\"\n  },\n  {\n    \"id\": \"HOTUSDT\",\n    \"asset\": \"HOT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"HOT/USDT\"\n  },\n  {\n    \"id\": \"ZILUSDT\",\n    \"asset\": \"ZIL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ZIL/USDT\"\n  },\n  {\n    \"id\": \"ZRXBNB\",\n    \"asset\": \"ZRX\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ZRX/BNB\"\n  },\n  {\n    \"id\": \"ZRXUSDT\",\n    \"asset\": \"ZRX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ZRX/USDT\"\n  },\n  {\n    \"id\": \"FETBNB\",\n    \"asset\": \"FET\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"FET/BNB\"\n  },\n  {\n    \"id\": \"FETBTC\",\n    \"asset\": \"FET\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"FET/BTC\"\n  },\n  {\n    \"id\": \"FETUSDT\",\n    \"asset\": \"FET\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"FET/USDT\"\n  },\n  {\n    \"id\": \"BATUSDT\",\n    \"asset\": \"BAT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BAT/USDT\"\n  },\n  {\n    \"id\": \"XMRBNB\",\n    \"asset\": \"XMR\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"XMR/BNB\"\n  },\n  {\n    \"id\": \"XMRUSDT\",\n    \"asset\": \"XMR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"XMR/USDT\"\n  },\n  {\n    \"id\": \"ZECBNB\",\n    \"asset\": \"ZEC\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ZEC/BNB\"\n  },\n  {\n    \"id\": \"ZECUSDT\",\n    \"asset\": \"ZEC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ZEC/USDT\"\n  },\n  {\n    \"id\": \"ZECPAX\",\n    \"asset\": \"ZEC\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ZEC/PAX\"\n  },\n  {\n    \"id\": \"ZECTUSD\",\n    \"asset\": \"ZEC\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ZEC/TUSD\"\n  },\n  {\n    \"id\": \"ZECUSDC\",\n    \"asset\": \"ZEC\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ZEC/USDC\"\n  },\n  {\n    \"id\": \"IOSTBNB\",\n    \"asset\": \"IOST\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"IOST/BNB\"\n  },\n  {\n    \"id\": \"IOSTUSDT\",\n    \"asset\": \"IOST\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"IOST/USDT\"\n  },\n  {\n    \"id\": \"CELRBNB\",\n    \"asset\": \"CELR\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CELR/BNB\"\n  },\n  {\n    \"id\": \"CELRBTC\",\n    \"asset\": \"CELR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CELR/BTC\"\n  },\n  {\n    \"id\": \"CELRUSDT\",\n    \"asset\": \"CELR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"CELR/USDT\"\n  },\n  {\n    \"id\": \"ADAPAX\",\n    \"asset\": \"ADA\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ADA/PAX\"\n  },\n  {\n    \"id\": \"ADAUSDC\",\n    \"asset\": \"ADA\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ADA/USDC\"\n  },\n  {\n    \"id\": \"NEOPAX\",\n    \"asset\": \"NEO\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"NEO/PAX\"\n  },\n  {\n    \"id\": \"NEOUSDC\",\n    \"asset\": \"NEO\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"NEO/USDC\"\n  },\n  {\n    \"id\": \"DASHBNB\",\n    \"asset\": \"DASH\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DASH/BNB\"\n  },\n  {\n    \"id\": \"DASHUSDT\",\n    \"asset\": \"DASH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"DASH/USDT\"\n  },\n  {\n    \"id\": \"NANOUSDT\",\n    \"asset\": \"NANO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NANO/USDT\"\n  },\n  {\n    \"id\": \"OMGBNB\",\n    \"asset\": \"OMG\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"OMG/BNB\"\n  },\n  {\n    \"id\": \"OMGUSDT\",\n    \"asset\": \"OMG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"OMG/USDT\"\n  },\n  {\n    \"id\": \"THETAUSDT\",\n    \"asset\": \"THETA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"THETA/USDT\"\n  },\n  {\n    \"id\": \"ENJUSDT\",\n    \"asset\": \"ENJ\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ENJ/USDT\"\n  },\n  {\n    \"id\": \"MITHUSDT\",\n    \"asset\": \"MITH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"MITH/USDT\"\n  },\n  {\n    \"id\": \"MATICBNB\",\n    \"asset\": \"MATIC\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MATIC/BNB\"\n  },\n  {\n    \"id\": \"MATICBTC\",\n    \"asset\": \"MATIC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MATIC/BTC\"\n  },\n  {\n    \"id\": \"MATICUSDT\",\n    \"asset\": \"MATIC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"MATIC/USDT\"\n  },\n  {\n    \"id\": \"ATOMBNB\",\n    \"asset\": \"ATOM\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ATOM/BNB\"\n  },\n  {\n    \"id\": \"ATOMBTC\",\n    \"asset\": \"ATOM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ATOM/BTC\"\n  },\n  {\n    \"id\": \"ATOMUSDT\",\n    \"asset\": \"ATOM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ATOM/USDT\"\n  },\n  {\n    \"id\": \"ATOMUSDC\",\n    \"asset\": \"ATOM\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ATOM/USDC\"\n  },\n  {\n    \"id\": \"ATOMPAX\",\n    \"asset\": \"ATOM\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ATOM/PAX\"\n  },\n  {\n    \"id\": \"ATOMTUSD\",\n    \"asset\": \"ATOM\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ATOM/TUSD\"\n  },\n  {\n    \"id\": \"ETCUSDC\",\n    \"asset\": \"ETC\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ETC/USDC\"\n  },\n  {\n    \"id\": \"ETCPAX\",\n    \"asset\": \"ETC\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ETC/PAX\"\n  },\n  {\n    \"id\": \"ETCTUSD\",\n    \"asset\": \"ETC\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ETC/TUSD\"\n  },\n  {\n    \"id\": \"BATUSDC\",\n    \"asset\": \"BAT\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BAT/USDC\"\n  },\n  {\n    \"id\": \"BATPAX\",\n    \"asset\": \"BAT\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BAT/PAX\"\n  },\n  {\n    \"id\": \"BATTUSD\",\n    \"asset\": \"BAT\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BAT/TUSD\"\n  },\n  {\n    \"id\": \"PHBBNB\",\n    \"asset\": \"PHB\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"PHB/BNB\"\n  },\n  {\n    \"id\": \"PHBBTC\",\n    \"asset\": \"PHB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"PHB/BTC\"\n  },\n  {\n    \"id\": \"PHBUSDC\",\n    \"asset\": \"PHB\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"PHB/USDC\"\n  },\n  {\n    \"id\": \"PHBTUSD\",\n    \"asset\": \"PHB\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"PHB/TUSD\"\n  },\n  {\n    \"id\": \"PHBPAX\",\n    \"asset\": \"PHB\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"PHB/PAX\"\n  },\n  {\n    \"id\": \"TFUELBNB\",\n    \"asset\": \"TFUEL\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TFUEL/BNB\"\n  },\n  {\n    \"id\": \"TFUELBTC\",\n    \"asset\": \"TFUEL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TFUEL/BTC\"\n  },\n  {\n    \"id\": \"TFUELUSDT\",\n    \"asset\": \"TFUEL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"TFUEL/USDT\"\n  },\n  {\n    \"id\": \"TFUELUSDC\",\n    \"asset\": \"TFUEL\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TFUEL/USDC\"\n  },\n  {\n    \"id\": \"TFUELTUSD\",\n    \"asset\": \"TFUEL\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TFUEL/TUSD\"\n  },\n  {\n    \"id\": \"TFUELPAX\",\n    \"asset\": \"TFUEL\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TFUEL/PAX\"\n  },\n  {\n    \"id\": \"ONEBNB\",\n    \"asset\": \"ONE\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ONE/BNB\"\n  },\n  {\n    \"id\": \"ONEBTC\",\n    \"asset\": \"ONE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ONE/BTC\"\n  },\n  {\n    \"id\": \"ONEUSDT\",\n    \"asset\": \"ONE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ONE/USDT\"\n  },\n  {\n    \"id\": \"ONETUSD\",\n    \"asset\": \"ONE\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ONE/TUSD\"\n  },\n  {\n    \"id\": \"ONEPAX\",\n    \"asset\": \"ONE\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ONE/PAX\"\n  },\n  {\n    \"id\": \"ONEUSDC\",\n    \"asset\": \"ONE\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ONE/USDC\"\n  },\n  {\n    \"id\": \"FTMBNB\",\n    \"asset\": \"FTM\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"FTM/BNB\"\n  },\n  {\n    \"id\": \"FTMBTC\",\n    \"asset\": \"FTM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"FTM/BTC\"\n  },\n  {\n    \"id\": \"FTMUSDT\",\n    \"asset\": \"FTM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"FTM/USDT\"\n  },\n  {\n    \"id\": \"FTMTUSD\",\n    \"asset\": \"FTM\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"FTM/TUSD\"\n  },\n  {\n    \"id\": \"FTMPAX\",\n    \"asset\": \"FTM\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"FTM/PAX\"\n  },\n  {\n    \"id\": \"FTMUSDC\",\n    \"asset\": \"FTM\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"FTM/USDC\"\n  },\n  {\n    \"id\": \"BTCBBTC\",\n    \"asset\": \"BTCB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BTCB/BTC\"\n  },\n  {\n    \"id\": \"BCPTTUSD\",\n    \"asset\": \"BCPT\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BCPT/TUSD\"\n  },\n  {\n    \"id\": \"BCPTPAX\",\n    \"asset\": \"BCPT\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BCPT/PAX\"\n  },\n  {\n    \"id\": \"BCPTUSDC\",\n    \"asset\": \"BCPT\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BCPT/USDC\"\n  },\n  {\n    \"id\": \"ALGOBNB\",\n    \"asset\": \"ALGO\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ALGO/BNB\"\n  },\n  {\n    \"id\": \"ALGOBTC\",\n    \"asset\": \"ALGO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ALGO/BTC\"\n  },\n  {\n    \"id\": \"ALGOUSDT\",\n    \"asset\": \"ALGO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ALGO/USDT\"\n  },\n  {\n    \"id\": \"ALGOTUSD\",\n    \"asset\": \"ALGO\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ALGO/TUSD\"\n  },\n  {\n    \"id\": \"ALGOPAX\",\n    \"asset\": \"ALGO\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ALGO/PAX\"\n  },\n  {\n    \"id\": \"ALGOUSDC\",\n    \"asset\": \"ALGO\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ALGO/USDC\"\n  },\n  {\n    \"id\": \"USDSBUSDT\",\n    \"asset\": \"USDSB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDSB/USDT\"\n  },\n  {\n    \"id\": \"USDSBUSDS\",\n    \"asset\": \"USDSB\",\n    \"currency\": \"USDS\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDSB/USDS\"\n  },\n  {\n    \"id\": \"GTOUSDT\",\n    \"asset\": \"GTO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"GTO/USDT\"\n  },\n  {\n    \"id\": \"GTOPAX\",\n    \"asset\": \"GTO\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"GTO/PAX\"\n  },\n  {\n    \"id\": \"GTOTUSD\",\n    \"asset\": \"GTO\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"GTO/TUSD\"\n  },\n  {\n    \"id\": \"GTOUSDC\",\n    \"asset\": \"GTO\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"GTO/USDC\"\n  },\n  {\n    \"id\": \"ERDBNB\",\n    \"asset\": \"ERD\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ERD/BNB\"\n  },\n  {\n    \"id\": \"ERDBTC\",\n    \"asset\": \"ERD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ERD/BTC\"\n  },\n  {\n    \"id\": \"ERDUSDT\",\n    \"asset\": \"ERD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ERD/USDT\"\n  },\n  {\n    \"id\": \"ERDPAX\",\n    \"asset\": \"ERD\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ERD/PAX\"\n  },\n  {\n    \"id\": \"ERDUSDC\",\n    \"asset\": \"ERD\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ERD/USDC\"\n  },\n  {\n    \"id\": \"DOGEBNB\",\n    \"asset\": \"DOGE\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DOGE/BNB\"\n  },\n  {\n    \"id\": \"DOGEBTC\",\n    \"asset\": \"DOGE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DOGE/BTC\"\n  },\n  {\n    \"id\": \"DOGEUSDT\",\n    \"asset\": \"DOGE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DOGE/USDT\"\n  },\n  {\n    \"id\": \"DOGEPAX\",\n    \"asset\": \"DOGE\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DOGE/PAX\"\n  },\n  {\n    \"id\": \"DOGEUSDC\",\n    \"asset\": \"DOGE\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DOGE/USDC\"\n  },\n  {\n    \"id\": \"DUSKBNB\",\n    \"asset\": \"DUSK\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DUSK/BNB\"\n  },\n  {\n    \"id\": \"DUSKBTC\",\n    \"asset\": \"DUSK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DUSK/BTC\"\n  },\n  {\n    \"id\": \"DUSKUSDT\",\n    \"asset\": \"DUSK\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"DUSK/USDT\"\n  },\n  {\n    \"id\": \"DUSKUSDC\",\n    \"asset\": \"DUSK\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"DUSK/USDC\"\n  },\n  {\n    \"id\": \"DUSKPAX\",\n    \"asset\": \"DUSK\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"DUSK/PAX\"\n  },\n  {\n    \"id\": \"BGBPUSDC\",\n    \"asset\": \"BGBP\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BGBP/USDC\"\n  },\n  {\n    \"id\": \"ANKRBNB\",\n    \"asset\": \"ANKR\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ANKR/BNB\"\n  },\n  {\n    \"id\": \"ANKRBTC\",\n    \"asset\": \"ANKR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ANKR/BTC\"\n  },\n  {\n    \"id\": \"ANKRUSDT\",\n    \"asset\": \"ANKR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ANKR/USDT\"\n  },\n  {\n    \"id\": \"ANKRTUSD\",\n    \"asset\": \"ANKR\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ANKR/TUSD\"\n  },\n  {\n    \"id\": \"ANKRPAX\",\n    \"asset\": \"ANKR\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ANKR/PAX\"\n  },\n  {\n    \"id\": \"ANKRUSDC\",\n    \"asset\": \"ANKR\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ANKR/USDC\"\n  },\n  {\n    \"id\": \"ONTPAX\",\n    \"asset\": \"ONT\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ONT/PAX\"\n  },\n  {\n    \"id\": \"ONTUSDC\",\n    \"asset\": \"ONT\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ONT/USDC\"\n  },\n  {\n    \"id\": \"WINBNB\",\n    \"asset\": \"WIN\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WIN/BNB\"\n  },\n  {\n    \"id\": \"WINBTC\",\n    \"asset\": \"WIN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WIN/BTC\"\n  },\n  {\n    \"id\": \"WINUSDT\",\n    \"asset\": \"WIN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WIN/USDT\"\n  },\n  {\n    \"id\": \"WINUSDC\",\n    \"asset\": \"WIN\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WIN/USDC\"\n  },\n  {\n    \"id\": \"COSBNB\",\n    \"asset\": \"COS\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"COS/BNB\"\n  },\n  {\n    \"id\": \"COSBTC\",\n    \"asset\": \"COS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"COS/BTC\"\n  },\n  {\n    \"id\": \"COSUSDT\",\n    \"asset\": \"COS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"COS/USDT\"\n  },\n  {\n    \"id\": \"TUSDBTUSD\",\n    \"asset\": \"TUSDB\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TUSDB/TUSD\"\n  },\n  {\n    \"id\": \"NPXSUSDT\",\n    \"asset\": \"NPXS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NPXS/USDT\"\n  },\n  {\n    \"id\": \"NPXSUSDC\",\n    \"asset\": \"NPXS\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NPXS/USDC\"\n  },\n  {\n    \"id\": \"COCOSBNB\",\n    \"asset\": \"COCOS\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"COCOS/BNB\"\n  },\n  {\n    \"id\": \"COCOSBTC\",\n    \"asset\": \"COCOS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"COCOS/BTC\"\n  },\n  {\n    \"id\": \"COCOSUSDT\",\n    \"asset\": \"COCOS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"COCOS/USDT\"\n  },\n  {\n    \"id\": \"MTLUSDT\",\n    \"asset\": \"MTL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MTL/USDT\"\n  },\n  {\n    \"id\": \"TOMOBNB\",\n    \"asset\": \"TOMO\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"TOMO/BNB\"\n  },\n  {\n    \"id\": \"TOMOBTC\",\n    \"asset\": \"TOMO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TOMO/BTC\"\n  },\n  {\n    \"id\": \"TOMOUSDT\",\n    \"asset\": \"TOMO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TOMO/USDT\"\n  },\n  {\n    \"id\": \"TOMOUSDC\",\n    \"asset\": \"TOMO\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TOMO/USDC\"\n  },\n  {\n    \"id\": \"PERLBNB\",\n    \"asset\": \"PERL\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"PERL/BNB\"\n  },\n  {\n    \"id\": \"PERLBTC\",\n    \"asset\": \"PERL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"PERL/BTC\"\n  },\n  {\n    \"id\": \"PERLUSDC\",\n    \"asset\": \"PERL\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"PERL/USDC\"\n  },\n  {\n    \"id\": \"PERLUSDT\",\n    \"asset\": \"PERL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"PERL/USDT\"\n  },\n  {\n    \"id\": \"DENTUSDT\",\n    \"asset\": \"DENT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DENT/USDT\"\n  },\n  {\n    \"id\": \"MFTUSDT\",\n    \"asset\": \"MFT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MFT/USDT\"\n  },\n  {\n    \"id\": \"KEYUSDT\",\n    \"asset\": \"KEY\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"KEY/USDT\"\n  },\n  {\n    \"id\": \"STORMUSDT\",\n    \"asset\": \"STORM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"STORM/USDT\"\n  },\n  {\n    \"id\": \"DOCKUSDT\",\n    \"asset\": \"DOCK\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DOCK/USDT\"\n  },\n  {\n    \"id\": \"WANUSDT\",\n    \"asset\": \"WAN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"WAN/USDT\"\n  },\n  {\n    \"id\": \"FUNUSDT\",\n    \"asset\": \"FUN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"FUN/USDT\"\n  },\n  {\n    \"id\": \"CVCUSDT\",\n    \"asset\": \"CVC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"CVC/USDT\"\n  },\n  {\n    \"id\": \"BTTTRX\",\n    \"asset\": \"BTT\",\n    \"currency\": \"TRX\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BTT/TRX\"\n  },\n  {\n    \"id\": \"WINTRX\",\n    \"asset\": \"WIN\",\n    \"currency\": \"TRX\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"WIN/TRX\"\n  },\n  {\n    \"id\": \"CHZBNB\",\n    \"asset\": \"CHZ\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CHZ/BNB\"\n  },\n  {\n    \"id\": \"CHZBTC\",\n    \"asset\": \"CHZ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CHZ/BTC\"\n  },\n  {\n    \"id\": \"CHZUSDT\",\n    \"asset\": \"CHZ\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"CHZ/USDT\"\n  },\n  {\n    \"id\": \"BANDBNB\",\n    \"asset\": \"BAND\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BAND/BNB\"\n  },\n  {\n    \"id\": \"BANDBTC\",\n    \"asset\": \"BAND\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BAND/BTC\"\n  },\n  {\n    \"id\": \"BANDUSDT\",\n    \"asset\": \"BAND\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BAND/USDT\"\n  },\n  {\n    \"id\": \"BNBBUSD\",\n    \"asset\": \"BNB\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"BNB/BUSD\"\n  },\n  {\n    \"id\": \"BTCBUSD\",\n    \"asset\": \"BTC\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/BUSD\"\n  },\n  {\n    \"id\": \"BUSDUSDT\",\n    \"asset\": \"BUSD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BUSD/USDT\"\n  },\n  {\n    \"id\": \"BEAMBNB\",\n    \"asset\": \"BEAM\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BEAM/BNB\"\n  },\n  {\n    \"id\": \"BEAMBTC\",\n    \"asset\": \"BEAM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BEAM/BTC\"\n  },\n  {\n    \"id\": \"BEAMUSDT\",\n    \"asset\": \"BEAM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BEAM/USDT\"\n  },\n  {\n    \"id\": \"XTZBNB\",\n    \"asset\": \"XTZ\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XTZ/BNB\"\n  },\n  {\n    \"id\": \"XTZBTC\",\n    \"asset\": \"XTZ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XTZ/BTC\"\n  },\n  {\n    \"id\": \"XTZUSDT\",\n    \"asset\": \"XTZ\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XTZ/USDT\"\n  },\n  {\n    \"id\": \"RENUSDT\",\n    \"asset\": \"REN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"REN/USDT\"\n  },\n  {\n    \"id\": \"RVNUSDT\",\n    \"asset\": \"RVN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"RVN/USDT\"\n  },\n  {\n    \"id\": \"HCUSDT\",\n    \"asset\": \"HC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"HC/USDT\"\n  },\n  {\n    \"id\": \"HBARBNB\",\n    \"asset\": \"HBAR\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"HBAR/BNB\"\n  },\n  {\n    \"id\": \"HBARBTC\",\n    \"asset\": \"HBAR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"HBAR/BTC\"\n  },\n  {\n    \"id\": \"HBARUSDT\",\n    \"asset\": \"HBAR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"HBAR/USDT\"\n  },\n  {\n    \"id\": \"NKNBNB\",\n    \"asset\": \"NKN\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NKN/BNB\"\n  },\n  {\n    \"id\": \"NKNBTC\",\n    \"asset\": \"NKN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NKN/BTC\"\n  },\n  {\n    \"id\": \"NKNUSDT\",\n    \"asset\": \"NKN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"NKN/USDT\"\n  },\n  {\n    \"id\": \"XRPBUSD\",\n    \"asset\": \"XRP\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XRP/BUSD\"\n  },\n  {\n    \"id\": \"ETHBUSD\",\n    \"asset\": \"ETH\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/BUSD\"\n  },\n  {\n    \"id\": \"BCHABCBUSD\",\n    \"asset\": \"BCH\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BCH/BUSD\"\n  },\n  {\n    \"id\": \"LTCBUSD\",\n    \"asset\": \"LTC\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"LTC/BUSD\"\n  },\n  {\n    \"id\": \"LINKBUSD\",\n    \"asset\": \"LINK\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"LINK/BUSD\"\n  },\n  {\n    \"id\": \"ETCBUSD\",\n    \"asset\": \"ETC\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ETC/BUSD\"\n  },\n  {\n    \"id\": \"STXBNB\",\n    \"asset\": \"STX\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"STX/BNB\"\n  },\n  {\n    \"id\": \"STXBTC\",\n    \"asset\": \"STX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"STX/BTC\"\n  },\n  {\n    \"id\": \"STXUSDT\",\n    \"asset\": \"STX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"STX/USDT\"\n  },\n  {\n    \"id\": \"KAVABNB\",\n    \"asset\": \"KAVA\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"KAVA/BNB\"\n  },\n  {\n    \"id\": \"KAVABTC\",\n    \"asset\": \"KAVA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"KAVA/BTC\"\n  },\n  {\n    \"id\": \"KAVAUSDT\",\n    \"asset\": \"KAVA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"KAVA/USDT\"\n  },\n  {\n    \"id\": \"BUSDNGN\",\n    \"asset\": \"BUSD\",\n    \"currency\": \"NGN\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922320.00000000\",\n    \"min_total\": \"500.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BUSD/NGN\"\n  },\n  {\n    \"id\": \"BNBNGN\",\n    \"asset\": \"BNB\",\n    \"currency\": \"NGN\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"500.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BNB/NGN\"\n  },\n  {\n    \"id\": \"BTCNGN\",\n    \"asset\": \"BTC\",\n    \"currency\": \"NGN\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"921.00000000\",\n    \"min_total\": \"500.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/NGN\"\n  },\n  {\n    \"id\": \"ARPABNB\",\n    \"asset\": \"ARPA\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ARPA/BNB\"\n  },\n  {\n    \"id\": \"ARPABTC\",\n    \"asset\": \"ARPA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ARPA/BTC\"\n  },\n  {\n    \"id\": \"ARPAUSDT\",\n    \"asset\": \"ARPA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ARPA/USDT\"\n  },\n  {\n    \"id\": \"TRXBUSD\",\n    \"asset\": \"TRX\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"TRX/BUSD\"\n  },\n  {\n    \"id\": \"EOSBUSD\",\n    \"asset\": \"EOS\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EOS/BUSD\"\n  },\n  {\n    \"id\": \"IOTXUSDT\",\n    \"asset\": \"IOTX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"IOTX/USDT\"\n  },\n  {\n    \"id\": \"RLCUSDT\",\n    \"asset\": \"RLC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"RLC/USDT\"\n  },\n  {\n    \"id\": \"MCOUSDT\",\n    \"asset\": \"MCO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"MCO/USDT\"\n  },\n  {\n    \"id\": \"XLMBUSD\",\n    \"asset\": \"XLM\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XLM/BUSD\"\n  },\n  {\n    \"id\": \"ADABUSD\",\n    \"asset\": \"ADA\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ADA/BUSD\"\n  },\n  {\n    \"id\": \"CTXCBNB\",\n    \"asset\": \"CTXC\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CTXC/BNB\"\n  },\n  {\n    \"id\": \"CTXCBTC\",\n    \"asset\": \"CTXC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CTXC/BTC\"\n  },\n  {\n    \"id\": \"CTXCUSDT\",\n    \"asset\": \"CTXC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"CTXC/USDT\"\n  },\n  {\n    \"id\": \"BCHBNB\",\n    \"asset\": \"BCH\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BCH/BNB\"\n  },\n  {\n    \"id\": \"BCHBTC\",\n    \"asset\": \"BCH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BCH/BTC\"\n  },\n  {\n    \"id\": \"BCHUSDT\",\n    \"asset\": \"BCH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BCH/USDT\"\n  },\n  {\n    \"id\": \"BCHUSDC\",\n    \"asset\": \"BCH\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BCH/USDC\"\n  },\n  {\n    \"id\": \"BCHTUSD\",\n    \"asset\": \"BCH\",\n    \"currency\": \"TUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BCH/TUSD\"\n  },\n  {\n    \"id\": \"BCHPAX\",\n    \"asset\": \"BCH\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BCH/PAX\"\n  },\n  {\n    \"id\": \"BCHBUSD\",\n    \"asset\": \"BCH\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BCH/BUSD\"\n  },\n  {\n    \"id\": \"BTCRUB\",\n    \"asset\": \"BTC\",\n    \"currency\": \"RUB\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"900.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/RUB\"\n  },\n  {\n    \"id\": \"ETHRUB\",\n    \"asset\": \"ETH\",\n    \"currency\": \"RUB\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"92232.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.10000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/RUB\"\n  },\n  {\n    \"id\": \"XRPRUB\",\n    \"asset\": \"XRP\",\n    \"currency\": \"RUB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XRP/RUB\"\n  },\n  {\n    \"id\": \"BNBRUB\",\n    \"asset\": \"BNB\",\n    \"currency\": \"RUB\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BNB/RUB\"\n  },\n  {\n    \"id\": \"TROYBNB\",\n    \"asset\": \"TROY\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TROY/BNB\"\n  },\n  {\n    \"id\": \"TROYBTC\",\n    \"asset\": \"TROY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TROY/BTC\"\n  },\n  {\n    \"id\": \"TROYUSDT\",\n    \"asset\": \"TROY\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TROY/USDT\"\n  },\n  {\n    \"id\": \"BUSDRUB\",\n    \"asset\": \"BUSD\",\n    \"currency\": \"RUB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BUSD/RUB\"\n  },\n  {\n    \"id\": \"QTUMBUSD\",\n    \"asset\": \"QTUM\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"QTUM/BUSD\"\n  },\n  {\n    \"id\": \"VETBUSD\",\n    \"asset\": \"VET\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"VET/BUSD\"\n  },\n  {\n    \"id\": \"VITEBNB\",\n    \"asset\": \"VITE\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VITE/BNB\"\n  },\n  {\n    \"id\": \"VITEBTC\",\n    \"asset\": \"VITE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VITE/BTC\"\n  },\n  {\n    \"id\": \"VITEUSDT\",\n    \"asset\": \"VITE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"VITE/USDT\"\n  },\n  {\n    \"id\": \"FTTBNB\",\n    \"asset\": \"FTT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"FTT/BNB\"\n  },\n  {\n    \"id\": \"FTTBTC\",\n    \"asset\": \"FTT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"FTT/BTC\"\n  },\n  {\n    \"id\": \"FTTUSDT\",\n    \"asset\": \"FTT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"FTT/USDT\"\n  },\n  {\n    \"id\": \"BTCTRY\",\n    \"asset\": \"BTC\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/TRY\"\n  },\n  {\n    \"id\": \"BNBTRY\",\n    \"asset\": \"BNB\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"92232.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BNB/TRY\"\n  },\n  {\n    \"id\": \"BUSDTRY\",\n    \"asset\": \"BUSD\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BUSD/TRY\"\n  },\n  {\n    \"id\": \"ETHTRY\",\n    \"asset\": \"ETH\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"ETH/TRY\"\n  },\n  {\n    \"id\": \"XRPTRY\",\n    \"asset\": \"XRP\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XRP/TRY\"\n  },\n  {\n    \"id\": \"USDTTRY\",\n    \"asset\": \"USDT\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDT/TRY\"\n  },\n  {\n    \"id\": \"USDTRUB\",\n    \"asset\": \"USDT\",\n    \"currency\": \"RUB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"USDT/RUB\"\n  },\n  {\n    \"id\": \"BTCEUR\",\n    \"asset\": \"BTC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/EUR\"\n  },\n  {\n    \"id\": \"ETHEUR\",\n    \"asset\": \"ETH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/EUR\"\n  },\n  {\n    \"id\": \"BNBEUR\",\n    \"asset\": \"BNB\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"BNB/EUR\"\n  },\n  {\n    \"id\": \"XRPEUR\",\n    \"asset\": \"XRP\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XRP/EUR\"\n  },\n  {\n    \"id\": \"EURBUSD\",\n    \"asset\": \"EUR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EUR/BUSD\"\n  },\n  {\n    \"id\": \"EURUSDT\",\n    \"asset\": \"EUR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EUR/USDT\"\n  },\n  {\n    \"id\": \"OGNBNB\",\n    \"asset\": \"OGN\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"OGN/BNB\"\n  },\n  {\n    \"id\": \"OGNBTC\",\n    \"asset\": \"OGN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"OGN/BTC\"\n  },\n  {\n    \"id\": \"OGNUSDT\",\n    \"asset\": \"OGN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"OGN/USDT\"\n  },\n  {\n    \"id\": \"DREPBNB\",\n    \"asset\": \"DREP\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DREP/BNB\"\n  },\n  {\n    \"id\": \"DREPBTC\",\n    \"asset\": \"DREP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DREP/BTC\"\n  },\n  {\n    \"id\": \"DREPUSDT\",\n    \"asset\": \"DREP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DREP/USDT\"\n  },\n  {\n    \"id\": \"BULLUSDT\",\n    \"asset\": \"BULL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BULL/USDT\"\n  },\n  {\n    \"id\": \"BULLBUSD\",\n    \"asset\": \"BULL\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BULL/BUSD\"\n  },\n  {\n    \"id\": \"BEARUSDT\",\n    \"asset\": \"BEAR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BEAR/USDT\"\n  },\n  {\n    \"id\": \"BEARBUSD\",\n    \"asset\": \"BEAR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BEAR/BUSD\"\n  },\n  {\n    \"id\": \"ETHBULLUSDT\",\n    \"asset\": \"ETHBULL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"ETHBULL/USDT\"\n  },\n  {\n    \"id\": \"ETHBULLBUSD\",\n    \"asset\": \"ETHBULL\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"ETHBULL/BUSD\"\n  },\n  {\n    \"id\": \"ETHBEARUSDT\",\n    \"asset\": \"ETHBEAR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETHBEAR/USDT\"\n  },\n  {\n    \"id\": \"ETHBEARBUSD\",\n    \"asset\": \"ETHBEAR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETHBEAR/BUSD\"\n  },\n  {\n    \"id\": \"TCTBNB\",\n    \"asset\": \"TCT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TCT/BNB\"\n  },\n  {\n    \"id\": \"TCTBTC\",\n    \"asset\": \"TCT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TCT/BTC\"\n  },\n  {\n    \"id\": \"TCTUSDT\",\n    \"asset\": \"TCT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TCT/USDT\"\n  },\n  {\n    \"id\": \"WRXBNB\",\n    \"asset\": \"WRX\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WRX/BNB\"\n  },\n  {\n    \"id\": \"WRXBTC\",\n    \"asset\": \"WRX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WRX/BTC\"\n  },\n  {\n    \"id\": \"WRXUSDT\",\n    \"asset\": \"WRX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"WRX/USDT\"\n  },\n  {\n    \"id\": \"ICXBUSD\",\n    \"asset\": \"ICX\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ICX/BUSD\"\n  },\n  {\n    \"id\": \"BTSUSDT\",\n    \"asset\": \"BTS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BTS/USDT\"\n  },\n  {\n    \"id\": \"BTSBUSD\",\n    \"asset\": \"BTS\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BTS/BUSD\"\n  },\n  {\n    \"id\": \"LSKUSDT\",\n    \"asset\": \"LSK\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LSK/USDT\"\n  },\n  {\n    \"id\": \"BNTUSDT\",\n    \"asset\": \"BNT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BNT/USDT\"\n  },\n  {\n    \"id\": \"BNTBUSD\",\n    \"asset\": \"BNT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BNT/BUSD\"\n  },\n  {\n    \"id\": \"LTOBNB\",\n    \"asset\": \"LTO\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"LTO/BNB\"\n  },\n  {\n    \"id\": \"LTOBTC\",\n    \"asset\": \"LTO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"LTO/BTC\"\n  },\n  {\n    \"id\": \"LTOUSDT\",\n    \"asset\": \"LTO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"LTO/USDT\"\n  },\n  {\n    \"id\": \"ATOMBUSD\",\n    \"asset\": \"ATOM\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ATOM/BUSD\"\n  },\n  {\n    \"id\": \"DASHBUSD\",\n    \"asset\": \"DASH\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"DASH/BUSD\"\n  },\n  {\n    \"id\": \"NEOBUSD\",\n    \"asset\": \"NEO\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"NEO/BUSD\"\n  },\n  {\n    \"id\": \"WAVESBUSD\",\n    \"asset\": \"WAVES\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"WAVES/BUSD\"\n  },\n  {\n    \"id\": \"XTZBUSD\",\n    \"asset\": \"XTZ\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XTZ/BUSD\"\n  },\n  {\n    \"id\": \"EOSBULLUSDT\",\n    \"asset\": \"EOSBULL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"92232.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"EOSBULL/USDT\"\n  },\n  {\n    \"id\": \"EOSBULLBUSD\",\n    \"asset\": \"EOSBULL\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"EOSBULL/BUSD\"\n  },\n  {\n    \"id\": \"EOSBEARUSDT\",\n    \"asset\": \"EOSBEAR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"EOSBEAR/USDT\"\n  },\n  {\n    \"id\": \"EOSBEARBUSD\",\n    \"asset\": \"EOSBEAR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"EOSBEAR/BUSD\"\n  },\n  {\n    \"id\": \"XRPBULLUSDT\",\n    \"asset\": \"XRPBULL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"XRPBULL/USDT\"\n  },\n  {\n    \"id\": \"XRPBULLBUSD\",\n    \"asset\": \"XRPBULL\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"XRPBULL/BUSD\"\n  },\n  {\n    \"id\": \"XRPBEARUSDT\",\n    \"asset\": \"XRPBEAR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"XRPBEAR/USDT\"\n  },\n  {\n    \"id\": \"XRPBEARBUSD\",\n    \"asset\": \"XRPBEAR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"XRPBEAR/BUSD\"\n  },\n  {\n    \"id\": \"BATBUSD\",\n    \"asset\": \"BAT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BAT/BUSD\"\n  },\n  {\n    \"id\": \"ENJBUSD\",\n    \"asset\": \"ENJ\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ENJ/BUSD\"\n  },\n  {\n    \"id\": \"NANOBUSD\",\n    \"asset\": \"NANO\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NANO/BUSD\"\n  },\n  {\n    \"id\": \"ONTBUSD\",\n    \"asset\": \"ONT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ONT/BUSD\"\n  },\n  {\n    \"id\": \"RVNBUSD\",\n    \"asset\": \"RVN\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"RVN/BUSD\"\n  },\n  {\n    \"id\": \"STRATBUSD\",\n    \"asset\": \"STRAT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"STRAT/BUSD\"\n  },\n  {\n    \"id\": \"STRATBNB\",\n    \"asset\": \"STRAT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"STRAT/BNB\"\n  },\n  {\n    \"id\": \"STRATUSDT\",\n    \"asset\": \"STRAT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"STRAT/USDT\"\n  },\n  {\n    \"id\": \"AIONBUSD\",\n    \"asset\": \"AION\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AION/BUSD\"\n  },\n  {\n    \"id\": \"AIONUSDT\",\n    \"asset\": \"AION\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AION/USDT\"\n  },\n  {\n    \"id\": \"MBLBNB\",\n    \"asset\": \"MBL\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MBL/BNB\"\n  },\n  {\n    \"id\": \"MBLBTC\",\n    \"asset\": \"MBL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MBL/BTC\"\n  },\n  {\n    \"id\": \"MBLUSDT\",\n    \"asset\": \"MBL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MBL/USDT\"\n  },\n  {\n    \"id\": \"COTIBNB\",\n    \"asset\": \"COTI\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"COTI/BNB\"\n  },\n  {\n    \"id\": \"COTIBTC\",\n    \"asset\": \"COTI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"COTI/BTC\"\n  },\n  {\n    \"id\": \"COTIUSDT\",\n    \"asset\": \"COTI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"COTI/USDT\"\n  },\n  {\n    \"id\": \"ALGOBUSD\",\n    \"asset\": \"ALGO\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ALGO/BUSD\"\n  },\n  {\n    \"id\": \"BTTBUSD\",\n    \"asset\": \"BTT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BTT/BUSD\"\n  },\n  {\n    \"id\": \"TOMOBUSD\",\n    \"asset\": \"TOMO\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TOMO/BUSD\"\n  },\n  {\n    \"id\": \"XMRBUSD\",\n    \"asset\": \"XMR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"XMR/BUSD\"\n  },\n  {\n    \"id\": \"ZECBUSD\",\n    \"asset\": \"ZEC\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ZEC/BUSD\"\n  },\n  {\n    \"id\": \"BNBBULLUSDT\",\n    \"asset\": \"BNBBULL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BNBBULL/USDT\"\n  },\n  {\n    \"id\": \"BNBBULLBUSD\",\n    \"asset\": \"BNBBULL\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BNBBULL/BUSD\"\n  },\n  {\n    \"id\": \"BNBBEARUSDT\",\n    \"asset\": \"BNBBEAR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BNBBEAR/USDT\"\n  },\n  {\n    \"id\": \"BNBBEARBUSD\",\n    \"asset\": \"BNBBEAR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BNBBEAR/BUSD\"\n  },\n  {\n    \"id\": \"STPTBNB\",\n    \"asset\": \"STPT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"STPT/BNB\"\n  },\n  {\n    \"id\": \"STPTBTC\",\n    \"asset\": \"STPT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"STPT/BTC\"\n  },\n  {\n    \"id\": \"STPTUSDT\",\n    \"asset\": \"STPT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"STPT/USDT\"\n  },\n  {\n    \"id\": \"BTCZAR\",\n    \"asset\": \"BTC\",\n    \"currency\": \"ZAR\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9214.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/ZAR\"\n  },\n  {\n    \"id\": \"ETHZAR\",\n    \"asset\": \"ETH\",\n    \"currency\": \"ZAR\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.10000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/ZAR\"\n  },\n  {\n    \"id\": \"BNBZAR\",\n    \"asset\": \"BNB\",\n    \"currency\": \"ZAR\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BNB/ZAR\"\n  },\n  {\n    \"id\": \"USDTZAR\",\n    \"asset\": \"USDT\",\n    \"currency\": \"ZAR\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"USDT/ZAR\"\n  },\n  {\n    \"id\": \"BUSDZAR\",\n    \"asset\": \"BUSD\",\n    \"currency\": \"ZAR\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BUSD/ZAR\"\n  },\n  {\n    \"id\": \"BTCBKRW\",\n    \"asset\": \"BTC\",\n    \"currency\": \"BKRW\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"100.00000000\",\n    \"min_total\": \"1000.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/BKRW\"\n  },\n  {\n    \"id\": \"ETHBKRW\",\n    \"asset\": \"ETH\",\n    \"currency\": \"BKRW\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"8000.00000000\",\n    \"min_total\": \"1000.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/BKRW\"\n  },\n  {\n    \"id\": \"BNBBKRW\",\n    \"asset\": \"BNB\",\n    \"currency\": \"BKRW\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"1000.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BNB/BKRW\"\n  },\n  {\n    \"id\": \"WTCUSDT\",\n    \"asset\": \"WTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"WTC/USDT\"\n  },\n  {\n    \"id\": \"DATABUSD\",\n    \"asset\": \"DATA\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DATA/BUSD\"\n  },\n  {\n    \"id\": \"DATAUSDT\",\n    \"asset\": \"DATA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DATA/USDT\"\n  },\n  {\n    \"id\": \"XZCUSDT\",\n    \"asset\": \"XZC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"XZC/USDT\"\n  },\n  {\n    \"id\": \"SOLBNB\",\n    \"asset\": \"SOL\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"SOL/BNB\"\n  },\n  {\n    \"id\": \"SOLBTC\",\n    \"asset\": \"SOL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"SOL/BTC\"\n  },\n  {\n    \"id\": \"SOLUSDT\",\n    \"asset\": \"SOL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"SOL/USDT\"\n  },\n  {\n    \"id\": \"SOLBUSD\",\n    \"asset\": \"SOL\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"SOL/BUSD\"\n  },\n  {\n    \"id\": \"BTCIDRT\",\n    \"asset\": \"BTC\",\n    \"currency\": \"IDRT\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"1.00\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/IDRT\"\n  },\n  {\n    \"id\": \"BNBIDRT\",\n    \"asset\": \"BNB\",\n    \"currency\": \"IDRT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"1.00\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BNB/IDRT\"\n  },\n  {\n    \"id\": \"USDTIDRT\",\n    \"asset\": \"USDT\",\n    \"currency\": \"IDRT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"1000000.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"1.00\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDT/IDRT\"\n  },\n  {\n    \"id\": \"BUSDIDRT\",\n    \"asset\": \"BUSD\",\n    \"currency\": \"IDRT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"1000000.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"1.00\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BUSD/IDRT\"\n  },\n  {\n    \"id\": \"CTSIBTC\",\n    \"asset\": \"CTSI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CTSI/BTC\"\n  },\n  {\n    \"id\": \"CTSIUSDT\",\n    \"asset\": \"CTSI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"CTSI/USDT\"\n  },\n  {\n    \"id\": \"CTSIBNB\",\n    \"asset\": \"CTSI\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CTSI/BNB\"\n  },\n  {\n    \"id\": \"CTSIBUSD\",\n    \"asset\": \"CTSI\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"CTSI/BUSD\"\n  },\n  {\n    \"id\": \"HIVEBNB\",\n    \"asset\": \"HIVE\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"HIVE/BNB\"\n  },\n  {\n    \"id\": \"HIVEBTC\",\n    \"asset\": \"HIVE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"HIVE/BTC\"\n  },\n  {\n    \"id\": \"HIVEUSDT\",\n    \"asset\": \"HIVE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"HIVE/USDT\"\n  },\n  {\n    \"id\": \"CHRBNB\",\n    \"asset\": \"CHR\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CHR/BNB\"\n  },\n  {\n    \"id\": \"CHRBTC\",\n    \"asset\": \"CHR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CHR/BTC\"\n  },\n  {\n    \"id\": \"CHRUSDT\",\n    \"asset\": \"CHR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"CHR/USDT\"\n  },\n  {\n    \"id\": \"BTCUPUSDT\",\n    \"asset\": \"BTCUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BTCUP/USDT\"\n  },\n  {\n    \"id\": \"BTCDOWNUSDT\",\n    \"asset\": \"BTCDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"921415.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BTCDOWN/USDT\"\n  },\n  {\n    \"id\": \"GXSUSDT\",\n    \"asset\": \"GXS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"GXS/USDT\"\n  },\n  {\n    \"id\": \"ARDRUSDT\",\n    \"asset\": \"ARDR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ARDR/USDT\"\n  },\n  {\n    \"id\": \"ERDBUSD\",\n    \"asset\": \"ERD\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ERD/BUSD\"\n  },\n  {\n    \"id\": \"LENDUSDT\",\n    \"asset\": \"LEND\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"LEND/USDT\"\n  },\n  {\n    \"id\": \"HBARBUSD\",\n    \"asset\": \"HBAR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"HBAR/BUSD\"\n  },\n  {\n    \"id\": \"MATICBUSD\",\n    \"asset\": \"MATIC\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"MATIC/BUSD\"\n  },\n  {\n    \"id\": \"WRXBUSD\",\n    \"asset\": \"WRX\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"WRX/BUSD\"\n  },\n  {\n    \"id\": \"ZILBUSD\",\n    \"asset\": \"ZIL\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ZIL/BUSD\"\n  },\n  {\n    \"id\": \"MDTBNB\",\n    \"asset\": \"MDT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MDT/BNB\"\n  },\n  {\n    \"id\": \"MDTBTC\",\n    \"asset\": \"MDT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"MDT/BTC\"\n  },\n  {\n    \"id\": \"MDTUSDT\",\n    \"asset\": \"MDT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"MDT/USDT\"\n  },\n  {\n    \"id\": \"STMXBNB\",\n    \"asset\": \"STMX\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"STMX/BNB\"\n  },\n  {\n    \"id\": \"STMXBTC\",\n    \"asset\": \"STMX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"STMX/BTC\"\n  },\n  {\n    \"id\": \"STMXETH\",\n    \"asset\": \"STMX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"STMX/ETH\"\n  },\n  {\n    \"id\": \"STMXUSDT\",\n    \"asset\": \"STMX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"STMX/USDT\"\n  },\n  {\n    \"id\": \"KNCBUSD\",\n    \"asset\": \"KNC\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"KNC/BUSD\"\n  },\n  {\n    \"id\": \"KNCUSDT\",\n    \"asset\": \"KNC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"KNC/USDT\"\n  },\n  {\n    \"id\": \"REPBUSD\",\n    \"asset\": \"REP\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"REP/BUSD\"\n  },\n  {\n    \"id\": \"REPUSDT\",\n    \"asset\": \"REP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"REP/USDT\"\n  },\n  {\n    \"id\": \"LRCBUSD\",\n    \"asset\": \"LRC\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"LRC/BUSD\"\n  },\n  {\n    \"id\": \"LRCUSDT\",\n    \"asset\": \"LRC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"LRC/USDT\"\n  },\n  {\n    \"id\": \"IQBNB\",\n    \"asset\": \"IQ\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"IQ/BNB\"\n  },\n  {\n    \"id\": \"IQBUSD\",\n    \"asset\": \"IQ\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"IQ/BUSD\"\n  },\n  {\n    \"id\": \"PNTBTC\",\n    \"asset\": \"PNT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"PNT/BTC\"\n  },\n  {\n    \"id\": \"PNTUSDT\",\n    \"asset\": \"PNT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"PNT/USDT\"\n  },\n  {\n    \"id\": \"BTCGBP\",\n    \"asset\": \"BTC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/GBP\"\n  },\n  {\n    \"id\": \"ETHGBP\",\n    \"asset\": \"ETH\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/GBP\"\n  },\n  {\n    \"id\": \"XRPGBP\",\n    \"asset\": \"XRP\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XRP/GBP\"\n  },\n  {\n    \"id\": \"BNBGBP\",\n    \"asset\": \"BNB\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"BNB/GBP\"\n  },\n  {\n    \"id\": \"GBPBUSD\",\n    \"asset\": \"GBP\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"GBP/BUSD\"\n  },\n  {\n    \"id\": \"DGBBNB\",\n    \"asset\": \"DGB\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DGB/BNB\"\n  },\n  {\n    \"id\": \"DGBBTC\",\n    \"asset\": \"DGB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DGB/BTC\"\n  },\n  {\n    \"id\": \"DGBBUSD\",\n    \"asset\": \"DGB\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DGB/BUSD\"\n  },\n  {\n    \"id\": \"BTCUAH\",\n    \"asset\": \"BTC\",\n    \"currency\": \"UAH\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"1800.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/UAH\"\n  },\n  {\n    \"id\": \"USDTUAH\",\n    \"asset\": \"USDT\",\n    \"currency\": \"UAH\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"USDT/UAH\"\n  },\n  {\n    \"id\": \"COMPBTC\",\n    \"asset\": \"COMP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"COMP/BTC\"\n  },\n  {\n    \"id\": \"COMPBNB\",\n    \"asset\": \"COMP\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"COMP/BNB\"\n  },\n  {\n    \"id\": \"COMPBUSD\",\n    \"asset\": \"COMP\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"COMP/BUSD\"\n  },\n  {\n    \"id\": \"COMPUSDT\",\n    \"asset\": \"COMP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"COMP/USDT\"\n  },\n  {\n    \"id\": \"BTCBIDR\",\n    \"asset\": \"BTC\",\n    \"currency\": \"BIDR\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"1.00\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/BIDR\"\n  },\n  {\n    \"id\": \"ETHBIDR\",\n    \"asset\": \"ETH\",\n    \"currency\": \"BIDR\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"1.00\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/BIDR\"\n  },\n  {\n    \"id\": \"BNBBIDR\",\n    \"asset\": \"BNB\",\n    \"currency\": \"BIDR\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"1.00\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BNB/BIDR\"\n  },\n  {\n    \"id\": \"BUSDBIDR\",\n    \"asset\": \"BUSD\",\n    \"currency\": \"BIDR\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"1000000.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"1.00\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BUSD/BIDR\"\n  },\n  {\n    \"id\": \"USDTBIDR\",\n    \"asset\": \"USDT\",\n    \"currency\": \"BIDR\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"1000000.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"1.00\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDT/BIDR\"\n  },\n  {\n    \"id\": \"BKRWUSDT\",\n    \"asset\": \"BKRW\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BKRW/USDT\"\n  },\n  {\n    \"id\": \"BKRWBUSD\",\n    \"asset\": \"BKRW\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BKRW/BUSD\"\n  },\n  {\n    \"id\": \"SCUSDT\",\n    \"asset\": \"SC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SC/USDT\"\n  },\n  {\n    \"id\": \"ZENUSDT\",\n    \"asset\": \"ZEN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"ZEN/USDT\"\n  },\n  {\n    \"id\": \"SXPBTC\",\n    \"asset\": \"SXP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SXP/BTC\"\n  },\n  {\n    \"id\": \"SXPBNB\",\n    \"asset\": \"SXP\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"SXP/BNB\"\n  },\n  {\n    \"id\": \"SXPBUSD\",\n    \"asset\": \"SXP\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SXP/BUSD\"\n  },\n  {\n    \"id\": \"SNXBTC\",\n    \"asset\": \"SNX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SNX/BTC\"\n  },\n  {\n    \"id\": \"SNXBNB\",\n    \"asset\": \"SNX\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SNX/BNB\"\n  },\n  {\n    \"id\": \"SNXBUSD\",\n    \"asset\": \"SNX\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"SNX/BUSD\"\n  },\n  {\n    \"id\": \"SNXUSDT\",\n    \"asset\": \"SNX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"SNX/USDT\"\n  },\n  {\n    \"id\": \"ETHUPUSDT\",\n    \"asset\": \"ETHUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ETHUP/USDT\"\n  },\n  {\n    \"id\": \"ETHDOWNUSDT\",\n    \"asset\": \"ETHDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ETHDOWN/USDT\"\n  },\n  {\n    \"id\": \"ADAUPUSDT\",\n    \"asset\": \"ADAUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ADAUP/USDT\"\n  },\n  {\n    \"id\": \"ADADOWNUSDT\",\n    \"asset\": \"ADADOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ADADOWN/USDT\"\n  },\n  {\n    \"id\": \"LINKUPUSDT\",\n    \"asset\": \"LINKUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LINKUP/USDT\"\n  },\n  {\n    \"id\": \"LINKDOWNUSDT\",\n    \"asset\": \"LINKDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LINKDOWN/USDT\"\n  },\n  {\n    \"id\": \"VTHOBNB\",\n    \"asset\": \"VTHO\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VTHO/BNB\"\n  },\n  {\n    \"id\": \"VTHOBUSD\",\n    \"asset\": \"VTHO\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VTHO/BUSD\"\n  },\n  {\n    \"id\": \"VTHOUSDT\",\n    \"asset\": \"VTHO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VTHO/USDT\"\n  },\n  {\n    \"id\": \"DCRBUSD\",\n    \"asset\": \"DCR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DCR/BUSD\"\n  },\n  {\n    \"id\": \"DGBUSDT\",\n    \"asset\": \"DGB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DGB/USDT\"\n  },\n  {\n    \"id\": \"GBPUSDT\",\n    \"asset\": \"GBP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"GBP/USDT\"\n  },\n  {\n    \"id\": \"STORJBUSD\",\n    \"asset\": \"STORJ\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"STORJ/BUSD\"\n  },\n  {\n    \"id\": \"SXPUSDT\",\n    \"asset\": \"SXP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"SXP/USDT\"\n  },\n  {\n    \"id\": \"IRISBNB\",\n    \"asset\": \"IRIS\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"IRIS/BNB\"\n  },\n  {\n    \"id\": \"IRISBTC\",\n    \"asset\": \"IRIS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"IRIS/BTC\"\n  },\n  {\n    \"id\": \"IRISBUSD\",\n    \"asset\": \"IRIS\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"IRIS/BUSD\"\n  },\n  {\n    \"id\": \"MKRBNB\",\n    \"asset\": \"MKR\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"MKR/BNB\"\n  },\n  {\n    \"id\": \"MKRBTC\",\n    \"asset\": \"MKR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"MKR/BTC\"\n  },\n  {\n    \"id\": \"MKRUSDT\",\n    \"asset\": \"MKR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"MKR/USDT\"\n  },\n  {\n    \"id\": \"MKRBUSD\",\n    \"asset\": \"MKR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"MKR/BUSD\"\n  },\n  {\n    \"id\": \"DAIBNB\",\n    \"asset\": \"DAI\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DAI/BNB\"\n  },\n  {\n    \"id\": \"DAIBTC\",\n    \"asset\": \"DAI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DAI/BTC\"\n  },\n  {\n    \"id\": \"DAIUSDT\",\n    \"asset\": \"DAI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"DAI/USDT\"\n  },\n  {\n    \"id\": \"DAIBUSD\",\n    \"asset\": \"DAI\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"DAI/BUSD\"\n  },\n  {\n    \"id\": \"RUNEBNB\",\n    \"asset\": \"RUNE\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"RUNE/BNB\"\n  },\n  {\n    \"id\": \"RUNEBTC\",\n    \"asset\": \"RUNE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"RUNE/BTC\"\n  },\n  {\n    \"id\": \"RUNEBUSD\",\n    \"asset\": \"RUNE\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"RUNE/BUSD\"\n  },\n  {\n    \"id\": \"MANABUSD\",\n    \"asset\": \"MANA\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MANA/BUSD\"\n  },\n  {\n    \"id\": \"DOGEBUSD\",\n    \"asset\": \"DOGE\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DOGE/BUSD\"\n  },\n  {\n    \"id\": \"LENDBUSD\",\n    \"asset\": \"LEND\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LEND/BUSD\"\n  },\n  {\n    \"id\": \"ZRXBUSD\",\n    \"asset\": \"ZRX\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ZRX/BUSD\"\n  },\n  {\n    \"id\": \"DCRUSDT\",\n    \"asset\": \"DCR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"DCR/USDT\"\n  },\n  {\n    \"id\": \"STORJUSDT\",\n    \"asset\": \"STORJ\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"STORJ/USDT\"\n  },\n  {\n    \"id\": \"XRPBKRW\",\n    \"asset\": \"XRP\",\n    \"currency\": \"BKRW\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"1000.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XRP/BKRW\"\n  },\n  {\n    \"id\": \"ADABKRW\",\n    \"asset\": \"ADA\",\n    \"currency\": \"BKRW\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"1000.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ADA/BKRW\"\n  },\n  {\n    \"id\": \"BTCAUD\",\n    \"asset\": \"BTC\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/AUD\"\n  },\n  {\n    \"id\": \"ETHAUD\",\n    \"asset\": \"ETH\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/AUD\"\n  },\n  {\n    \"id\": \"AUDBUSD\",\n    \"asset\": \"AUD\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"AUD/BUSD\"\n  },\n  {\n    \"id\": \"FIOBNB\",\n    \"asset\": \"FIO\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"FIO/BNB\"\n  },\n  {\n    \"id\": \"FIOBTC\",\n    \"asset\": \"FIO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"FIO/BTC\"\n  },\n  {\n    \"id\": \"FIOBUSD\",\n    \"asset\": \"FIO\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"FIO/BUSD\"\n  },\n  {\n    \"id\": \"BNBUPUSDT\",\n    \"asset\": \"BNBUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BNBUP/USDT\"\n  },\n  {\n    \"id\": \"BNBDOWNUSDT\",\n    \"asset\": \"BNBDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BNBDOWN/USDT\"\n  },\n  {\n    \"id\": \"XTZUPUSDT\",\n    \"asset\": \"XTZUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XTZUP/USDT\"\n  },\n  {\n    \"id\": \"XTZDOWNUSDT\",\n    \"asset\": \"XTZDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XTZDOWN/USDT\"\n  },\n  {\n    \"id\": \"AVABNB\",\n    \"asset\": \"AVA\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"AVA/BNB\"\n  },\n  {\n    \"id\": \"AVABTC\",\n    \"asset\": \"AVA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AVA/BTC\"\n  },\n  {\n    \"id\": \"AVABUSD\",\n    \"asset\": \"AVA\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AVA/BUSD\"\n  },\n  {\n    \"id\": \"USDTBKRW\",\n    \"asset\": \"USDT\",\n    \"currency\": \"BKRW\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"1000.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"USDT/BKRW\"\n  },\n  {\n    \"id\": \"BUSDBKRW\",\n    \"asset\": \"BUSD\",\n    \"currency\": \"BKRW\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"1000.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BUSD/BKRW\"\n  },\n  {\n    \"id\": \"IOTABUSD\",\n    \"asset\": \"IOTA\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"IOTA/BUSD\"\n  },\n  {\n    \"id\": \"MANAUSDT\",\n    \"asset\": \"MANA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MANA/USDT\"\n  },\n  {\n    \"id\": \"XRPAUD\",\n    \"asset\": \"XRP\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XRP/AUD\"\n  },\n  {\n    \"id\": \"BNBAUD\",\n    \"asset\": \"BNB\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"BNB/AUD\"\n  },\n  {\n    \"id\": \"AUDUSDT\",\n    \"asset\": \"AUD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"AUD/USDT\"\n  },\n  {\n    \"id\": \"BALBNB\",\n    \"asset\": \"BAL\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BAL/BNB\"\n  },\n  {\n    \"id\": \"BALBTC\",\n    \"asset\": \"BAL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BAL/BTC\"\n  },\n  {\n    \"id\": \"BALBUSD\",\n    \"asset\": \"BAL\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BAL/BUSD\"\n  },\n  {\n    \"id\": \"YFIBNB\",\n    \"asset\": \"YFI\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"10000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"YFI/BNB\"\n  },\n  {\n    \"id\": \"YFIBTC\",\n    \"asset\": \"YFI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"YFI/BTC\"\n  },\n  {\n    \"id\": \"YFIBUSD\",\n    \"asset\": \"YFI\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"YFI/BUSD\"\n  },\n  {\n    \"id\": \"YFIUSDT\",\n    \"asset\": \"YFI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"YFI/USDT\"\n  },\n  {\n    \"id\": \"BLZBUSD\",\n    \"asset\": \"BLZ\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BLZ/BUSD\"\n  },\n  {\n    \"id\": \"KMDBUSD\",\n    \"asset\": \"KMD\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"KMD/BUSD\"\n  },\n  {\n    \"id\": \"BALUSDT\",\n    \"asset\": \"BAL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BAL/USDT\"\n  },\n  {\n    \"id\": \"BLZUSDT\",\n    \"asset\": \"BLZ\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BLZ/USDT\"\n  },\n  {\n    \"id\": \"IRISUSDT\",\n    \"asset\": \"IRIS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"IRIS/USDT\"\n  },\n  {\n    \"id\": \"KMDUSDT\",\n    \"asset\": \"KMD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"KMD/USDT\"\n  },\n  {\n    \"id\": \"BTCDAI\",\n    \"asset\": \"BTC\",\n    \"currency\": \"DAI\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/DAI\"\n  },\n  {\n    \"id\": \"ETHDAI\",\n    \"asset\": \"ETH\",\n    \"currency\": \"DAI\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/DAI\"\n  },\n  {\n    \"id\": \"BNBDAI\",\n    \"asset\": \"BNB\",\n    \"currency\": \"DAI\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"BNB/DAI\"\n  },\n  {\n    \"id\": \"USDTDAI\",\n    \"asset\": \"USDT\",\n    \"currency\": \"DAI\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDT/DAI\"\n  },\n  {\n    \"id\": \"BUSDDAI\",\n    \"asset\": \"BUSD\",\n    \"currency\": \"DAI\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BUSD/DAI\"\n  },\n  {\n    \"id\": \"JSTBNB\",\n    \"asset\": \"JST\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"JST/BNB\"\n  },\n  {\n    \"id\": \"JSTBTC\",\n    \"asset\": \"JST\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"JST/BTC\"\n  },\n  {\n    \"id\": \"JSTBUSD\",\n    \"asset\": \"JST\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"JST/BUSD\"\n  },\n  {\n    \"id\": \"JSTUSDT\",\n    \"asset\": \"JST\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"JST/USDT\"\n  },\n  {\n    \"id\": \"SRMBNB\",\n    \"asset\": \"SRM\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SRM/BNB\"\n  },\n  {\n    \"id\": \"SRMBTC\",\n    \"asset\": \"SRM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SRM/BTC\"\n  },\n  {\n    \"id\": \"SRMBUSD\",\n    \"asset\": \"SRM\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SRM/BUSD\"\n  },\n  {\n    \"id\": \"SRMUSDT\",\n    \"asset\": \"SRM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SRM/USDT\"\n  },\n  {\n    \"id\": \"ANTBNB\",\n    \"asset\": \"ANT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ANT/BNB\"\n  },\n  {\n    \"id\": \"ANTBTC\",\n    \"asset\": \"ANT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ANT/BTC\"\n  },\n  {\n    \"id\": \"ANTBUSD\",\n    \"asset\": \"ANT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ANT/BUSD\"\n  },\n  {\n    \"id\": \"ANTUSDT\",\n    \"asset\": \"ANT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ANT/USDT\"\n  },\n  {\n    \"id\": \"CRVBNB\",\n    \"asset\": \"CRV\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"CRV/BNB\"\n  },\n  {\n    \"id\": \"CRVBTC\",\n    \"asset\": \"CRV\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"CRV/BTC\"\n  },\n  {\n    \"id\": \"CRVBUSD\",\n    \"asset\": \"CRV\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"CRV/BUSD\"\n  },\n  {\n    \"id\": \"CRVUSDT\",\n    \"asset\": \"CRV\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"CRV/USDT\"\n  },\n  {\n    \"id\": \"SANDBNB\",\n    \"asset\": \"SAND\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SAND/BNB\"\n  },\n  {\n    \"id\": \"SANDBTC\",\n    \"asset\": \"SAND\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SAND/BTC\"\n  },\n  {\n    \"id\": \"SANDUSDT\",\n    \"asset\": \"SAND\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"SAND/USDT\"\n  },\n  {\n    \"id\": \"SANDBUSD\",\n    \"asset\": \"SAND\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"SAND/BUSD\"\n  },\n  {\n    \"id\": \"OCEANBNB\",\n    \"asset\": \"OCEAN\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"OCEAN/BNB\"\n  },\n  {\n    \"id\": \"OCEANBTC\",\n    \"asset\": \"OCEAN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"OCEAN/BTC\"\n  },\n  {\n    \"id\": \"OCEANBUSD\",\n    \"asset\": \"OCEAN\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"OCEAN/BUSD\"\n  },\n  {\n    \"id\": \"OCEANUSDT\",\n    \"asset\": \"OCEAN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"OCEAN/USDT\"\n  },\n  {\n    \"id\": \"NMRBNB\",\n    \"asset\": \"NMR\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NMR/BNB\"\n  },\n  {\n    \"id\": \"NMRBTC\",\n    \"asset\": \"NMR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"NMR/BTC\"\n  },\n  {\n    \"id\": \"NMRBUSD\",\n    \"asset\": \"NMR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"NMR/BUSD\"\n  },\n  {\n    \"id\": \"NMRUSDT\",\n    \"asset\": \"NMR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"NMR/USDT\"\n  },\n  {\n    \"id\": \"DOTBNB\",\n    \"asset\": \"DOT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DOT/BNB\"\n  },\n  {\n    \"id\": \"DOTBTC\",\n    \"asset\": \"DOT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DOT/BTC\"\n  },\n  {\n    \"id\": \"DOTBUSD\",\n    \"asset\": \"DOT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DOT/BUSD\"\n  },\n  {\n    \"id\": \"DOTUSDT\",\n    \"asset\": \"DOT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DOT/USDT\"\n  },\n  {\n    \"id\": \"LUNABNB\",\n    \"asset\": \"LUNA\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"LUNA/BNB\"\n  },\n  {\n    \"id\": \"LUNABTC\",\n    \"asset\": \"LUNA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"LUNA/BTC\"\n  },\n  {\n    \"id\": \"LUNABUSD\",\n    \"asset\": \"LUNA\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"LUNA/BUSD\"\n  },\n  {\n    \"id\": \"LUNAUSDT\",\n    \"asset\": \"LUNA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"LUNA/USDT\"\n  },\n  {\n    \"id\": \"IDEXBTC\",\n    \"asset\": \"IDEX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"IDEX/BTC\"\n  },\n  {\n    \"id\": \"IDEXBUSD\",\n    \"asset\": \"IDEX\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"IDEX/BUSD\"\n  },\n  {\n    \"id\": \"RSRBNB\",\n    \"asset\": \"RSR\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"RSR/BNB\"\n  },\n  {\n    \"id\": \"RSRBTC\",\n    \"asset\": \"RSR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"RSR/BTC\"\n  },\n  {\n    \"id\": \"RSRBUSD\",\n    \"asset\": \"RSR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"RSR/BUSD\"\n  },\n  {\n    \"id\": \"RSRUSDT\",\n    \"asset\": \"RSR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"RSR/USDT\"\n  },\n  {\n    \"id\": \"PAXGBNB\",\n    \"asset\": \"PAXG\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"PAXG/BNB\"\n  },\n  {\n    \"id\": \"PAXGBTC\",\n    \"asset\": \"PAXG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"PAXG/BTC\"\n  },\n  {\n    \"id\": \"PAXGBUSD\",\n    \"asset\": \"PAXG\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"PAXG/BUSD\"\n  },\n  {\n    \"id\": \"PAXGUSDT\",\n    \"asset\": \"PAXG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"PAXG/USDT\"\n  },\n  {\n    \"id\": \"WNXMBNB\",\n    \"asset\": \"WNXM\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"WNXM/BNB\"\n  },\n  {\n    \"id\": \"WNXMBTC\",\n    \"asset\": \"WNXM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"WNXM/BTC\"\n  },\n  {\n    \"id\": \"WNXMBUSD\",\n    \"asset\": \"WNXM\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"WNXM/BUSD\"\n  },\n  {\n    \"id\": \"WNXMUSDT\",\n    \"asset\": \"WNXM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"WNXM/USDT\"\n  },\n  {\n    \"id\": \"TRBBNB\",\n    \"asset\": \"TRB\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"TRB/BNB\"\n  },\n  {\n    \"id\": \"TRBBTC\",\n    \"asset\": \"TRB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"TRB/BTC\"\n  },\n  {\n    \"id\": \"TRBBUSD\",\n    \"asset\": \"TRB\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"TRB/BUSD\"\n  },\n  {\n    \"id\": \"TRBUSDT\",\n    \"asset\": \"TRB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"TRB/USDT\"\n  },\n  {\n    \"id\": \"ETHNGN\",\n    \"asset\": \"ETH\",\n    \"currency\": \"NGN\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"900.00000000\",\n    \"min_total\": \"500.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/NGN\"\n  },\n  {\n    \"id\": \"DOTBIDR\",\n    \"asset\": \"DOT\",\n    \"currency\": \"BIDR\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"1.00\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DOT/BIDR\"\n  },\n  {\n    \"id\": \"LINKAUD\",\n    \"asset\": \"LINK\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"LINK/AUD\"\n  },\n  {\n    \"id\": \"SXPAUD\",\n    \"asset\": \"SXP\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"SXP/AUD\"\n  },\n  {\n    \"id\": \"BZRXBNB\",\n    \"asset\": \"BZRX\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BZRX/BNB\"\n  },\n  {\n    \"id\": \"BZRXBTC\",\n    \"asset\": \"BZRX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BZRX/BTC\"\n  },\n  {\n    \"id\": \"BZRXBUSD\",\n    \"asset\": \"BZRX\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BZRX/BUSD\"\n  },\n  {\n    \"id\": \"BZRXUSDT\",\n    \"asset\": \"BZRX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BZRX/USDT\"\n  },\n  {\n    \"id\": \"WBTCBTC\",\n    \"asset\": \"WBTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"WBTC/BTC\"\n  },\n  {\n    \"id\": \"WBTCETH\",\n    \"asset\": \"WBTC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"WBTC/ETH\"\n  },\n  {\n    \"id\": \"SUSHIBNB\",\n    \"asset\": \"SUSHI\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SUSHI/BNB\"\n  },\n  {\n    \"id\": \"SUSHIBTC\",\n    \"asset\": \"SUSHI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SUSHI/BTC\"\n  },\n  {\n    \"id\": \"SUSHIBUSD\",\n    \"asset\": \"SUSHI\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"SUSHI/BUSD\"\n  },\n  {\n    \"id\": \"SUSHIUSDT\",\n    \"asset\": \"SUSHI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"SUSHI/USDT\"\n  },\n  {\n    \"id\": \"YFIIBNB\",\n    \"asset\": \"YFII\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"YFII/BNB\"\n  },\n  {\n    \"id\": \"YFIIBTC\",\n    \"asset\": \"YFII\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"YFII/BTC\"\n  },\n  {\n    \"id\": \"YFIIBUSD\",\n    \"asset\": \"YFII\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"YFII/BUSD\"\n  },\n  {\n    \"id\": \"YFIIUSDT\",\n    \"asset\": \"YFII\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"YFII/USDT\"\n  },\n  {\n    \"id\": \"KSMBNB\",\n    \"asset\": \"KSM\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"KSM/BNB\"\n  },\n  {\n    \"id\": \"KSMBTC\",\n    \"asset\": \"KSM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"KSM/BTC\"\n  },\n  {\n    \"id\": \"KSMBUSD\",\n    \"asset\": \"KSM\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"KSM/BUSD\"\n  },\n  {\n    \"id\": \"KSMUSDT\",\n    \"asset\": \"KSM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"KSM/USDT\"\n  },\n  {\n    \"id\": \"EGLDBNB\",\n    \"asset\": \"EGLD\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EGLD/BNB\"\n  },\n  {\n    \"id\": \"EGLDBTC\",\n    \"asset\": \"EGLD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"EGLD/BTC\"\n  },\n  {\n    \"id\": \"EGLDBUSD\",\n    \"asset\": \"EGLD\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"EGLD/BUSD\"\n  },\n  {\n    \"id\": \"EGLDUSDT\",\n    \"asset\": \"EGLD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"EGLD/USDT\"\n  },\n  {\n    \"id\": \"DIABNB\",\n    \"asset\": \"DIA\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"DIA/BNB\"\n  },\n  {\n    \"id\": \"DIABTC\",\n    \"asset\": \"DIA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"DIA/BTC\"\n  },\n  {\n    \"id\": \"DIABUSD\",\n    \"asset\": \"DIA\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DIA/BUSD\"\n  },\n  {\n    \"id\": \"DIAUSDT\",\n    \"asset\": \"DIA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DIA/USDT\"\n  },\n  {\n    \"id\": \"RUNEUSDT\",\n    \"asset\": \"RUNE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"RUNE/USDT\"\n  },\n  {\n    \"id\": \"FIOUSDT\",\n    \"asset\": \"FIO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"FIO/USDT\"\n  },\n  {\n    \"id\": \"UMABTC\",\n    \"asset\": \"UMA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"UMA/BTC\"\n  },\n  {\n    \"id\": \"UMAUSDT\",\n    \"asset\": \"UMA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"UMA/USDT\"\n  },\n  {\n    \"id\": \"EOSUPUSDT\",\n    \"asset\": \"EOSUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EOSUP/USDT\"\n  },\n  {\n    \"id\": \"EOSDOWNUSDT\",\n    \"asset\": \"EOSDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EOSDOWN/USDT\"\n  },\n  {\n    \"id\": \"TRXUPUSDT\",\n    \"asset\": \"TRXUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TRXUP/USDT\"\n  },\n  {\n    \"id\": \"TRXDOWNUSDT\",\n    \"asset\": \"TRXDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TRXDOWN/USDT\"\n  },\n  {\n    \"id\": \"XRPUPUSDT\",\n    \"asset\": \"XRPUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XRPUP/USDT\"\n  },\n  {\n    \"id\": \"XRPDOWNUSDT\",\n    \"asset\": \"XRPDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"99999999.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XRPDOWN/USDT\"\n  },\n  {\n    \"id\": \"DOTUPUSDT\",\n    \"asset\": \"DOTUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"DOTUP/USDT\"\n  },\n  {\n    \"id\": \"DOTDOWNUSDT\",\n    \"asset\": \"DOTDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"DOTDOWN/USDT\"\n  },\n  {\n    \"id\": \"SRMBIDR\",\n    \"asset\": \"SRM\",\n    \"currency\": \"BIDR\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"1.00\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"SRM/BIDR\"\n  },\n  {\n    \"id\": \"ONEBIDR\",\n    \"asset\": \"ONE\",\n    \"currency\": \"BIDR\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ONE/BIDR\"\n  },\n  {\n    \"id\": \"LINKTRY\",\n    \"asset\": \"LINK\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.10000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LINK/TRY\"\n  },\n  {\n    \"id\": \"USDTNGN\",\n    \"asset\": \"USDT\",\n    \"currency\": \"NGN\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922320.00000000\",\n    \"min_total\": \"500.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDT/NGN\"\n  },\n  {\n    \"id\": \"BELBNB\",\n    \"asset\": \"BEL\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BEL/BNB\"\n  },\n  {\n    \"id\": \"BELBTC\",\n    \"asset\": \"BEL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BEL/BTC\"\n  },\n  {\n    \"id\": \"BELBUSD\",\n    \"asset\": \"BEL\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BEL/BUSD\"\n  },\n  {\n    \"id\": \"BELUSDT\",\n    \"asset\": \"BEL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BEL/USDT\"\n  },\n  {\n    \"id\": \"WINGBNB\",\n    \"asset\": \"WING\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"WING/BNB\"\n  },\n  {\n    \"id\": \"WINGBTC\",\n    \"asset\": \"WING\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"WING/BTC\"\n  },\n  {\n    \"id\": \"SWRVBNB\",\n    \"asset\": \"SWRV\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SWRV/BNB\"\n  },\n  {\n    \"id\": \"SWRVBUSD\",\n    \"asset\": \"SWRV\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"SWRV/BUSD\"\n  },\n  {\n    \"id\": \"WINGBUSD\",\n    \"asset\": \"WING\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"WING/BUSD\"\n  },\n  {\n    \"id\": \"WINGUSDT\",\n    \"asset\": \"WING\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"WING/USDT\"\n  },\n  {\n    \"id\": \"LTCUPUSDT\",\n    \"asset\": \"LTCUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LTCUP/USDT\"\n  },\n  {\n    \"id\": \"LTCDOWNUSDT\",\n    \"asset\": \"LTCDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LTCDOWN/USDT\"\n  },\n  {\n    \"id\": \"LENDBKRW\",\n    \"asset\": \"LEND\",\n    \"currency\": \"BKRW\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"92232.00000000\",\n    \"min_total\": \"1000.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"LEND/BKRW\"\n  },\n  {\n    \"id\": \"SXPEUR\",\n    \"asset\": \"SXP\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"SXP/EUR\"\n  },\n  {\n    \"id\": \"CREAMBNB\",\n    \"asset\": \"CREAM\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"CREAM/BNB\"\n  },\n  {\n    \"id\": \"CREAMBUSD\",\n    \"asset\": \"CREAM\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"CREAM/BUSD\"\n  },\n  {\n    \"id\": \"UNIBNB\",\n    \"asset\": \"UNI\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"UNI/BNB\"\n  },\n  {\n    \"id\": \"UNIBTC\",\n    \"asset\": \"UNI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"UNI/BTC\"\n  },\n  {\n    \"id\": \"UNIBUSD\",\n    \"asset\": \"UNI\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"UNI/BUSD\"\n  },\n  {\n    \"id\": \"UNIUSDT\",\n    \"asset\": \"UNI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"UNI/USDT\"\n  },\n  {\n    \"id\": \"NBSBTC\",\n    \"asset\": \"NBS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NBS/BTC\"\n  },\n  {\n    \"id\": \"NBSUSDT\",\n    \"asset\": \"NBS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"NBS/USDT\"\n  },\n  {\n    \"id\": \"OXTBTC\",\n    \"asset\": \"OXT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"OXT/BTC\"\n  },\n  {\n    \"id\": \"OXTUSDT\",\n    \"asset\": \"OXT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"OXT/USDT\"\n  },\n  {\n    \"id\": \"SUNBTC\",\n    \"asset\": \"SUN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"SUN/BTC\"\n  },\n  {\n    \"id\": \"SUNUSDT\",\n    \"asset\": \"SUN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"SUN/USDT\"\n  },\n  {\n    \"id\": \"AVAXBNB\",\n    \"asset\": \"AVAX\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"AVAX/BNB\"\n  },\n  {\n    \"id\": \"AVAXBTC\",\n    \"asset\": \"AVAX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"AVAX/BTC\"\n  },\n  {\n    \"id\": \"AVAXBUSD\",\n    \"asset\": \"AVAX\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"AVAX/BUSD\"\n  },\n  {\n    \"id\": \"AVAXUSDT\",\n    \"asset\": \"AVAX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"AVAX/USDT\"\n  },\n  {\n    \"id\": \"HNTBTC\",\n    \"asset\": \"HNT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"HNT/BTC\"\n  },\n  {\n    \"id\": \"HNTUSDT\",\n    \"asset\": \"HNT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"HNT/USDT\"\n  },\n  {\n    \"id\": \"BAKEBNB\",\n    \"asset\": \"BAKE\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BAKE/BNB\"\n  },\n  {\n    \"id\": \"BURGERBNB\",\n    \"asset\": \"BURGER\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BURGER/BNB\"\n  },\n  {\n    \"id\": \"SXPBIDR\",\n    \"asset\": \"SXP\",\n    \"currency\": \"BIDR\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"1000000.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"1.00\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SXP/BIDR\"\n  },\n  {\n    \"id\": \"LINKBKRW\",\n    \"asset\": \"LINK\",\n    \"currency\": \"BKRW\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9200.00000000\",\n    \"min_total\": \"1000.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"LINK/BKRW\"\n  },\n  {\n    \"id\": \"FLMBNB\",\n    \"asset\": \"FLM\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"FLM/BNB\"\n  },\n  {\n    \"id\": \"FLMBTC\",\n    \"asset\": \"FLM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"FLM/BTC\"\n  },\n  {\n    \"id\": \"FLMBUSD\",\n    \"asset\": \"FLM\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"FLM/BUSD\"\n  },\n  {\n    \"id\": \"FLMUSDT\",\n    \"asset\": \"FLM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"FLM/USDT\"\n  },\n  {\n    \"id\": \"SCRTBTC\",\n    \"asset\": \"SCRT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SCRT/BTC\"\n  },\n  {\n    \"id\": \"SCRTETH\",\n    \"asset\": \"SCRT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SCRT/ETH\"\n  },\n  {\n    \"id\": \"CAKEBNB\",\n    \"asset\": \"CAKE\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"CAKE/BNB\"\n  },\n  {\n    \"id\": \"CAKEBUSD\",\n    \"asset\": \"CAKE\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"CAKE/BUSD\"\n  },\n  {\n    \"id\": \"SPARTABNB\",\n    \"asset\": \"SPARTA\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SPARTA/BNB\"\n  },\n  {\n    \"id\": \"UNIUPUSDT\",\n    \"asset\": \"UNIUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"UNIUP/USDT\"\n  },\n  {\n    \"id\": \"UNIDOWNUSDT\",\n    \"asset\": \"UNIDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"99999999.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"UNIDOWN/USDT\"\n  },\n  {\n    \"id\": \"ORNBTC\",\n    \"asset\": \"ORN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ORN/BTC\"\n  },\n  {\n    \"id\": \"ORNUSDT\",\n    \"asset\": \"ORN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ORN/USDT\"\n  },\n  {\n    \"id\": \"TRXNGN\",\n    \"asset\": \"TRX\",\n    \"currency\": \"NGN\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922320.00000000\",\n    \"min_total\": \"500.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TRX/NGN\"\n  },\n  {\n    \"id\": \"SXPTRY\",\n    \"asset\": \"SXP\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SXP/TRY\"\n  },\n  {\n    \"id\": \"UTKBTC\",\n    \"asset\": \"UTK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"UTK/BTC\"\n  },\n  {\n    \"id\": \"UTKUSDT\",\n    \"asset\": \"UTK\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"UTK/USDT\"\n  },\n  {\n    \"id\": \"XVSBNB\",\n    \"asset\": \"XVS\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XVS/BNB\"\n  },\n  {\n    \"id\": \"XVSBTC\",\n    \"asset\": \"XVS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XVS/BTC\"\n  },\n  {\n    \"id\": \"XVSBUSD\",\n    \"asset\": \"XVS\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"XVS/BUSD\"\n  },\n  {\n    \"id\": \"XVSUSDT\",\n    \"asset\": \"XVS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"XVS/USDT\"\n  },\n  {\n    \"id\": \"ALPHABNB\",\n    \"asset\": \"ALPHA\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ALPHA/BNB\"\n  },\n  {\n    \"id\": \"ALPHABTC\",\n    \"asset\": \"ALPHA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ALPHA/BTC\"\n  },\n  {\n    \"id\": \"ALPHABUSD\",\n    \"asset\": \"ALPHA\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ALPHA/BUSD\"\n  },\n  {\n    \"id\": \"ALPHAUSDT\",\n    \"asset\": \"ALPHA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ALPHA/USDT\"\n  },\n  {\n    \"id\": \"VIDTBTC\",\n    \"asset\": \"VIDT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VIDT/BTC\"\n  },\n  {\n    \"id\": \"VIDTBUSD\",\n    \"asset\": \"VIDT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"VIDT/BUSD\"\n  },\n  {\n    \"id\": \"AAVEBNB\",\n    \"asset\": \"AAVE\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AAVE/BNB\"\n  },\n  {\n    \"id\": \"BTCBRL\",\n    \"asset\": \"BTC\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/BRL\"\n  },\n  {\n    \"id\": \"USDTBRL\",\n    \"asset\": \"USDT\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDT/BRL\"\n  },\n  {\n    \"id\": \"AAVEBTC\",\n    \"asset\": \"AAVE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AAVE/BTC\"\n  },\n  {\n    \"id\": \"AAVEETH\",\n    \"asset\": \"AAVE\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"AAVE/ETH\"\n  },\n  {\n    \"id\": \"AAVEBUSD\",\n    \"asset\": \"AAVE\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"AAVE/BUSD\"\n  },\n  {\n    \"id\": \"AAVEUSDT\",\n    \"asset\": \"AAVE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"AAVE/USDT\"\n  },\n  {\n    \"id\": \"AAVEBKRW\",\n    \"asset\": \"AAVE\",\n    \"currency\": \"BKRW\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"1000.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"AAVE/BKRW\"\n  },\n  {\n    \"id\": \"NEARBNB\",\n    \"asset\": \"NEAR\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"NEAR/BNB\"\n  },\n  {\n    \"id\": \"NEARBTC\",\n    \"asset\": \"NEAR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NEAR/BTC\"\n  },\n  {\n    \"id\": \"NEARBUSD\",\n    \"asset\": \"NEAR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NEAR/BUSD\"\n  },\n  {\n    \"id\": \"NEARUSDT\",\n    \"asset\": \"NEAR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NEAR/USDT\"\n  },\n  {\n    \"id\": \"SXPUPUSDT\",\n    \"asset\": \"SXPUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SXPUP/USDT\"\n  },\n  {\n    \"id\": \"SXPDOWNUSDT\",\n    \"asset\": \"SXPDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SXPDOWN/USDT\"\n  },\n  {\n    \"id\": \"DOTBKRW\",\n    \"asset\": \"DOT\",\n    \"currency\": \"BKRW\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9200.00000000\",\n    \"min_total\": \"1000.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DOT/BKRW\"\n  },\n  {\n    \"id\": \"SXPGBP\",\n    \"asset\": \"SXP\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SXP/GBP\"\n  },\n  {\n    \"id\": \"FILBNB\",\n    \"asset\": \"FIL\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"FIL/BNB\"\n  },\n  {\n    \"id\": \"FILBTC\",\n    \"asset\": \"FIL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"FIL/BTC\"\n  },\n  {\n    \"id\": \"FILBUSD\",\n    \"asset\": \"FIL\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"FIL/BUSD\"\n  },\n  {\n    \"id\": \"FILUSDT\",\n    \"asset\": \"FIL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"FIL/USDT\"\n  },\n  {\n    \"id\": \"FILUPUSDT\",\n    \"asset\": \"FILUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"FILUP/USDT\"\n  },\n  {\n    \"id\": \"FILDOWNUSDT\",\n    \"asset\": \"FILDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"FILDOWN/USDT\"\n  },\n  {\n    \"id\": \"YFIUPUSDT\",\n    \"asset\": \"YFIUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"YFIUP/USDT\"\n  },\n  {\n    \"id\": \"YFIDOWNUSDT\",\n    \"asset\": \"YFIDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"99999999.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"YFIDOWN/USDT\"\n  },\n  {\n    \"id\": \"INJBNB\",\n    \"asset\": \"INJ\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"INJ/BNB\"\n  },\n  {\n    \"id\": \"INJBTC\",\n    \"asset\": \"INJ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"INJ/BTC\"\n  },\n  {\n    \"id\": \"INJBUSD\",\n    \"asset\": \"INJ\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"INJ/BUSD\"\n  },\n  {\n    \"id\": \"INJUSDT\",\n    \"asset\": \"INJ\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"INJ/USDT\"\n  },\n  {\n    \"id\": \"AERGOBTC\",\n    \"asset\": \"AERGO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AERGO/BTC\"\n  },\n  {\n    \"id\": \"AERGOBUSD\",\n    \"asset\": \"AERGO\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"AERGO/BUSD\"\n  },\n  {\n    \"id\": \"LINKEUR\",\n    \"asset\": \"LINK\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"LINK/EUR\"\n  },\n  {\n    \"id\": \"ONEBUSD\",\n    \"asset\": \"ONE\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ONE/BUSD\"\n  },\n  {\n    \"id\": \"EASYETH\",\n    \"asset\": \"EASY\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EASY/ETH\"\n  },\n  {\n    \"id\": \"AUDIOBTC\",\n    \"asset\": \"AUDIO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AUDIO/BTC\"\n  },\n  {\n    \"id\": \"AUDIOBUSD\",\n    \"asset\": \"AUDIO\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AUDIO/BUSD\"\n  },\n  {\n    \"id\": \"AUDIOUSDT\",\n    \"asset\": \"AUDIO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AUDIO/USDT\"\n  },\n  {\n    \"id\": \"CTKBNB\",\n    \"asset\": \"CTK\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"CTK/BNB\"\n  },\n  {\n    \"id\": \"CTKBTC\",\n    \"asset\": \"CTK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"CTK/BTC\"\n  },\n  {\n    \"id\": \"CTKBUSD\",\n    \"asset\": \"CTK\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"CTK/BUSD\"\n  },\n  {\n    \"id\": \"CTKUSDT\",\n    \"asset\": \"CTK\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"CTK/USDT\"\n  },\n  {\n    \"id\": \"BCHUPUSDT\",\n    \"asset\": \"BCHUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BCHUP/USDT\"\n  },\n  {\n    \"id\": \"BCHDOWNUSDT\",\n    \"asset\": \"BCHDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BCHDOWN/USDT\"\n  },\n  {\n    \"id\": \"BOTBTC\",\n    \"asset\": \"BOT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"BOT/BTC\"\n  },\n  {\n    \"id\": \"BOTBUSD\",\n    \"asset\": \"BOT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BOT/BUSD\"\n  },\n  {\n    \"id\": \"ETHBRL\",\n    \"asset\": \"ETH\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"45000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/BRL\"\n  },\n  {\n    \"id\": \"DOTEUR\",\n    \"asset\": \"DOT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DOT/EUR\"\n  },\n  {\n    \"id\": \"AKROBTC\",\n    \"asset\": \"AKRO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AKRO/BTC\"\n  },\n  {\n    \"id\": \"AKROUSDT\",\n    \"asset\": \"AKRO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AKRO/USDT\"\n  },\n  {\n    \"id\": \"KP3RBNB\",\n    \"asset\": \"KP3R\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"KP3R/BNB\"\n  },\n  {\n    \"id\": \"KP3RBUSD\",\n    \"asset\": \"KP3R\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"KP3R/BUSD\"\n  },\n  {\n    \"id\": \"AXSBNB\",\n    \"asset\": \"AXS\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AXS/BNB\"\n  },\n  {\n    \"id\": \"AXSBTC\",\n    \"asset\": \"AXS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AXS/BTC\"\n  },\n  {\n    \"id\": \"AXSBUSD\",\n    \"asset\": \"AXS\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AXS/BUSD\"\n  },\n  {\n    \"id\": \"AXSUSDT\",\n    \"asset\": \"AXS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AXS/USDT\"\n  },\n  {\n    \"id\": \"HARDBNB\",\n    \"asset\": \"HARD\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"HARD/BNB\"\n  },\n  {\n    \"id\": \"HARDBTC\",\n    \"asset\": \"HARD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"HARD/BTC\"\n  },\n  {\n    \"id\": \"HARDBUSD\",\n    \"asset\": \"HARD\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"HARD/BUSD\"\n  },\n  {\n    \"id\": \"HARDUSDT\",\n    \"asset\": \"HARD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"HARD/USDT\"\n  },\n  {\n    \"id\": \"BNBBRL\",\n    \"asset\": \"BNB\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"45000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BNB/BRL\"\n  },\n  {\n    \"id\": \"LTCEUR\",\n    \"asset\": \"LTC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"LTC/EUR\"\n  },\n  {\n    \"id\": \"RENBTCBTC\",\n    \"asset\": \"RENBTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"RENBTC/BTC\"\n  },\n  {\n    \"id\": \"RENBTCETH\",\n    \"asset\": \"RENBTC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"RENBTC/ETH\"\n  },\n  {\n    \"id\": \"DNTBUSD\",\n    \"asset\": \"DNT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DNT/BUSD\"\n  },\n  {\n    \"id\": \"DNTUSDT\",\n    \"asset\": \"DNT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DNT/USDT\"\n  },\n  {\n    \"id\": \"SLPETH\",\n    \"asset\": \"SLP\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SLP/ETH\"\n  },\n  {\n    \"id\": \"ADAEUR\",\n    \"asset\": \"ADA\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ADA/EUR\"\n  },\n  {\n    \"id\": \"LTCNGN\",\n    \"asset\": \"LTC\",\n    \"currency\": \"NGN\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"9221.00000000\",\n    \"min_total\": \"500.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"LTC/NGN\"\n  },\n  {\n    \"id\": \"CVPETH\",\n    \"asset\": \"CVP\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"CVP/ETH\"\n  },\n  {\n    \"id\": \"CVPBUSD\",\n    \"asset\": \"CVP\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"CVP/BUSD\"\n  },\n  {\n    \"id\": \"STRAXBTC\",\n    \"asset\": \"STRAX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"STRAX/BTC\"\n  },\n  {\n    \"id\": \"STRAXETH\",\n    \"asset\": \"STRAX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"STRAX/ETH\"\n  },\n  {\n    \"id\": \"STRAXBUSD\",\n    \"asset\": \"STRAX\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"STRAX/BUSD\"\n  },\n  {\n    \"id\": \"STRAXUSDT\",\n    \"asset\": \"STRAX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"STRAX/USDT\"\n  },\n  {\n    \"id\": \"FORBTC\",\n    \"asset\": \"FOR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"FOR/BTC\"\n  },\n  {\n    \"id\": \"FORBUSD\",\n    \"asset\": \"FOR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"FOR/BUSD\"\n  },\n  {\n    \"id\": \"UNFIBNB\",\n    \"asset\": \"UNFI\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"UNFI/BNB\"\n  },\n  {\n    \"id\": \"UNFIBTC\",\n    \"asset\": \"UNFI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"UNFI/BTC\"\n  },\n  {\n    \"id\": \"UNFIBUSD\",\n    \"asset\": \"UNFI\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"UNFI/BUSD\"\n  },\n  {\n    \"id\": \"UNFIUSDT\",\n    \"asset\": \"UNFI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"UNFI/USDT\"\n  },\n  {\n    \"id\": \"FRONTETH\",\n    \"asset\": \"FRONT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"FRONT/ETH\"\n  },\n  {\n    \"id\": \"FRONTBUSD\",\n    \"asset\": \"FRONT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"FRONT/BUSD\"\n  },\n  {\n    \"id\": \"BCHABUSD\",\n    \"asset\": \"BCHA\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BCHA/BUSD\"\n  },\n  {\n    \"id\": \"ROSEBTC\",\n    \"asset\": \"ROSE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ROSE/BTC\"\n  },\n  {\n    \"id\": \"ROSEBUSD\",\n    \"asset\": \"ROSE\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ROSE/BUSD\"\n  },\n  {\n    \"id\": \"ROSEUSDT\",\n    \"asset\": \"ROSE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ROSE/USDT\"\n  },\n  {\n    \"id\": \"AVAXTRY\",\n    \"asset\": \"AVAX\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.10000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AVAX/TRY\"\n  },\n  {\n    \"id\": \"BUSDBRL\",\n    \"asset\": \"BUSD\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BUSD/BRL\"\n  },\n  {\n    \"id\": \"AVAUSDT\",\n    \"asset\": \"AVA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AVA/USDT\"\n  },\n  {\n    \"id\": \"SYSBUSD\",\n    \"asset\": \"SYS\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"SYS/BUSD\"\n  },\n  {\n    \"id\": \"XEMUSDT\",\n    \"asset\": \"XEM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XEM/USDT\"\n  },\n  {\n    \"id\": \"HEGICETH\",\n    \"asset\": \"HEGIC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"HEGIC/ETH\"\n  },\n  {\n    \"id\": \"HEGICBUSD\",\n    \"asset\": \"HEGIC\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"HEGIC/BUSD\"\n  },\n  {\n    \"id\": \"AAVEUPUSDT\",\n    \"asset\": \"AAVEUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AAVEUP/USDT\"\n  },\n  {\n    \"id\": \"AAVEDOWNUSDT\",\n    \"asset\": \"AAVEDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AAVEDOWN/USDT\"\n  },\n  {\n    \"id\": \"PROMBNB\",\n    \"asset\": \"PROM\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"PROM/BNB\"\n  },\n  {\n    \"id\": \"PROMBUSD\",\n    \"asset\": \"PROM\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"PROM/BUSD\"\n  },\n  {\n    \"id\": \"XRPBRL\",\n    \"asset\": \"XRP\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XRP/BRL\"\n  },\n  {\n    \"id\": \"XRPNGN\",\n    \"asset\": \"XRP\",\n    \"currency\": \"NGN\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922320.00000000\",\n    \"min_total\": \"500.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XRP/NGN\"\n  },\n  {\n    \"id\": \"SKLBTC\",\n    \"asset\": \"SKL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SKL/BTC\"\n  },\n  {\n    \"id\": \"SKLBUSD\",\n    \"asset\": \"SKL\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"SKL/BUSD\"\n  },\n  {\n    \"id\": \"SKLUSDT\",\n    \"asset\": \"SKL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"SKL/USDT\"\n  },\n  {\n    \"id\": \"BCHEUR\",\n    \"asset\": \"BCH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BCH/EUR\"\n  },\n  {\n    \"id\": \"YFIEUR\",\n    \"asset\": \"YFI\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"YFI/EUR\"\n  },\n  {\n    \"id\": \"ZILBIDR\",\n    \"asset\": \"ZIL\",\n    \"currency\": \"BIDR\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ZIL/BIDR\"\n  },\n  {\n    \"id\": \"SUSDBTC\",\n    \"asset\": \"SUSD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SUSD/BTC\"\n  },\n  {\n    \"id\": \"SUSDETH\",\n    \"asset\": \"SUSD\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SUSD/ETH\"\n  },\n  {\n    \"id\": \"SUSDUSDT\",\n    \"asset\": \"SUSD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SUSD/USDT\"\n  },\n  {\n    \"id\": \"COVERETH\",\n    \"asset\": \"COVER\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"COVER/ETH\"\n  },\n  {\n    \"id\": \"COVERBUSD\",\n    \"asset\": \"COVER\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"COVER/BUSD\"\n  },\n  {\n    \"id\": \"GLMBTC\",\n    \"asset\": \"GLM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"GLM/BTC\"\n  },\n  {\n    \"id\": \"GLMETH\",\n    \"asset\": \"GLM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"GLM/ETH\"\n  },\n  {\n    \"id\": \"GHSTETH\",\n    \"asset\": \"GHST\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"GHST/ETH\"\n  },\n  {\n    \"id\": \"GHSTBUSD\",\n    \"asset\": \"GHST\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"GHST/BUSD\"\n  },\n  {\n    \"id\": \"SUSHIUPUSDT\",\n    \"asset\": \"SUSHIUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SUSHIUP/USDT\"\n  },\n  {\n    \"id\": \"SUSHIDOWNUSDT\",\n    \"asset\": \"SUSHIDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"99999999.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SUSHIDOWN/USDT\"\n  },\n  {\n    \"id\": \"XLMUPUSDT\",\n    \"asset\": \"XLMUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"920000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XLMUP/USDT\"\n  },\n  {\n    \"id\": \"XLMDOWNUSDT\",\n    \"asset\": \"XLMDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XLMDOWN/USDT\"\n  },\n  {\n    \"id\": \"LINKBRL\",\n    \"asset\": \"LINK\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"45000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"LINK/BRL\"\n  },\n  {\n    \"id\": \"LINKNGN\",\n    \"asset\": \"LINK\",\n    \"currency\": \"NGN\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"92232.00000000\",\n    \"min_total\": \"500.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"LINK/NGN\"\n  },\n  {\n    \"id\": \"LTCRUB\",\n    \"asset\": \"LTC\",\n    \"currency\": \"RUB\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.10000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"LTC/RUB\"\n  },\n  {\n    \"id\": \"TRXTRY\",\n    \"asset\": \"TRX\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TRX/TRY\"\n  },\n  {\n    \"id\": \"XLMEUR\",\n    \"asset\": \"XLM\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XLM/EUR\"\n  },\n  {\n    \"id\": \"DFETH\",\n    \"asset\": \"DF\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DF/ETH\"\n  },\n  {\n    \"id\": \"DFBUSD\",\n    \"asset\": \"DF\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"DF/BUSD\"\n  },\n  {\n    \"id\": \"GRTBTC\",\n    \"asset\": \"GRT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"GRT/BTC\"\n  },\n  {\n    \"id\": \"GRTETH\",\n    \"asset\": \"GRT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"GRT/ETH\"\n  },\n  {\n    \"id\": \"GRTUSDT\",\n    \"asset\": \"GRT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"GRT/USDT\"\n  },\n  {\n    \"id\": \"JUVBTC\",\n    \"asset\": \"JUV\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"JUV/BTC\"\n  },\n  {\n    \"id\": \"JUVBUSD\",\n    \"asset\": \"JUV\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"JUV/BUSD\"\n  },\n  {\n    \"id\": \"JUVUSDT\",\n    \"asset\": \"JUV\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"JUV/USDT\"\n  },\n  {\n    \"id\": \"PSGBTC\",\n    \"asset\": \"PSG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"PSG/BTC\"\n  },\n  {\n    \"id\": \"PSGBUSD\",\n    \"asset\": \"PSG\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"PSG/BUSD\"\n  },\n  {\n    \"id\": \"PSGUSDT\",\n    \"asset\": \"PSG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"PSG/USDT\"\n  },\n  {\n    \"id\": \"BUSDBVND\",\n    \"asset\": \"BUSD\",\n    \"currency\": \"BVND\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"1000000.00000000\",\n    \"min_total\": \"30000.00\",\n    \"increment\": \"1.00\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BUSD/BVND\"\n  },\n  {\n    \"id\": \"USDTBVND\",\n    \"asset\": \"USDT\",\n    \"currency\": \"BVND\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"1000000.00000000\",\n    \"min_total\": \"30000.00\",\n    \"increment\": \"1.00\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDT/BVND\"\n  },\n  {\n    \"id\": \"1INCHBTC\",\n    \"asset\": \"1INCH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"1INCH/BTC\"\n  },\n  {\n    \"id\": \"1INCHUSDT\",\n    \"asset\": \"1INCH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"1INCH/USDT\"\n  },\n  {\n    \"id\": \"REEFBTC\",\n    \"asset\": \"REEF\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"REEF/BTC\"\n  },\n  {\n    \"id\": \"REEFUSDT\",\n    \"asset\": \"REEF\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"REEF/USDT\"\n  },\n  {\n    \"id\": \"OGBTC\",\n    \"asset\": \"OG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"OG/BTC\"\n  },\n  {\n    \"id\": \"OGUSDT\",\n    \"asset\": \"OG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"OG/USDT\"\n  },\n  {\n    \"id\": \"ATMBTC\",\n    \"asset\": \"ATM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ATM/BTC\"\n  },\n  {\n    \"id\": \"ATMUSDT\",\n    \"asset\": \"ATM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ATM/USDT\"\n  },\n  {\n    \"id\": \"ASRBTC\",\n    \"asset\": \"ASR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ASR/BTC\"\n  },\n  {\n    \"id\": \"ASRUSDT\",\n    \"asset\": \"ASR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ASR/USDT\"\n  },\n  {\n    \"id\": \"CELOBTC\",\n    \"asset\": \"CELO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"CELO/BTC\"\n  },\n  {\n    \"id\": \"CELOUSDT\",\n    \"asset\": \"CELO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"CELO/USDT\"\n  },\n  {\n    \"id\": \"RIFBTC\",\n    \"asset\": \"RIF\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"RIF/BTC\"\n  },\n  {\n    \"id\": \"RIFUSDT\",\n    \"asset\": \"RIF\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"RIF/USDT\"\n  },\n  {\n    \"id\": \"CHZTRY\",\n    \"asset\": \"CHZ\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CHZ/TRY\"\n  },\n  {\n    \"id\": \"XLMTRY\",\n    \"asset\": \"XLM\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XLM/TRY\"\n  },\n  {\n    \"id\": \"LINKGBP\",\n    \"asset\": \"LINK\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"LINK/GBP\"\n  },\n  {\n    \"id\": \"GRTEUR\",\n    \"asset\": \"GRT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"GRT/EUR\"\n  },\n  {\n    \"id\": \"BTCSTBTC\",\n    \"asset\": \"BTCST\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BTCST/BTC\"\n  },\n  {\n    \"id\": \"BTCSTBUSD\",\n    \"asset\": \"BTCST\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BTCST/BUSD\"\n  },\n  {\n    \"id\": \"BTCSTUSDT\",\n    \"asset\": \"BTCST\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BTCST/USDT\"\n  },\n  {\n    \"id\": \"TRUBTC\",\n    \"asset\": \"TRU\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"TRU/BTC\"\n  },\n  {\n    \"id\": \"TRUBUSD\",\n    \"asset\": \"TRU\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TRU/BUSD\"\n  },\n  {\n    \"id\": \"TRUUSDT\",\n    \"asset\": \"TRU\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TRU/USDT\"\n  },\n  {\n    \"id\": \"DEXEETH\",\n    \"asset\": \"DEXE\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"DEXE/ETH\"\n  },\n  {\n    \"id\": \"DEXEBUSD\",\n    \"asset\": \"DEXE\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DEXE/BUSD\"\n  },\n  {\n    \"id\": \"EOSEUR\",\n    \"asset\": \"EOS\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"EOS/EUR\"\n  },\n  {\n    \"id\": \"LTCBRL\",\n    \"asset\": \"LTC\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"45000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"LTC/BRL\"\n  },\n  {\n    \"id\": \"USDCBUSD\",\n    \"asset\": \"USDC\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDC/BUSD\"\n  },\n  {\n    \"id\": \"TUSDBUSD\",\n    \"asset\": \"TUSD\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TUSD/BUSD\"\n  },\n  {\n    \"id\": \"PAXBUSD\",\n    \"asset\": \"PAX\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"PAX/BUSD\"\n  },\n  {\n    \"id\": \"CKBBTC\",\n    \"asset\": \"CKB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CKB/BTC\"\n  },\n  {\n    \"id\": \"CKBBUSD\",\n    \"asset\": \"CKB\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CKB/BUSD\"\n  },\n  {\n    \"id\": \"CKBUSDT\",\n    \"asset\": \"CKB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CKB/USDT\"\n  },\n  {\n    \"id\": \"TWTBTC\",\n    \"asset\": \"TWT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TWT/BTC\"\n  },\n  {\n    \"id\": \"TWTBUSD\",\n    \"asset\": \"TWT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TWT/BUSD\"\n  },\n  {\n    \"id\": \"TWTUSDT\",\n    \"asset\": \"TWT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TWT/USDT\"\n  },\n  {\n    \"id\": \"FIROBTC\",\n    \"asset\": \"FIRO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"FIRO/BTC\"\n  },\n  {\n    \"id\": \"FIROETH\",\n    \"asset\": \"FIRO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"FIRO/ETH\"\n  },\n  {\n    \"id\": \"FIROUSDT\",\n    \"asset\": \"FIRO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"FIRO/USDT\"\n  },\n  {\n    \"id\": \"BETHETH\",\n    \"asset\": \"BETH\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"BETH/ETH\"\n  },\n  {\n    \"id\": \"DOGEEUR\",\n    \"asset\": \"DOGE\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DOGE/EUR\"\n  },\n  {\n    \"id\": \"DOGETRY\",\n    \"asset\": \"DOGE\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DOGE/TRY\"\n  },\n  {\n    \"id\": \"DOGEAUD\",\n    \"asset\": \"DOGE\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DOGE/AUD\"\n  },\n  {\n    \"id\": \"DOGEBRL\",\n    \"asset\": \"DOGE\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"DOGE/BRL\"\n  },\n  {\n    \"id\": \"DOTNGN\",\n    \"asset\": \"DOT\",\n    \"currency\": \"NGN\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"92232.00000000\",\n    \"min_total\": \"500.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"DOT/NGN\"\n  },\n  {\n    \"id\": \"PROSETH\",\n    \"asset\": \"PROS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"PROS/ETH\"\n  },\n  {\n    \"id\": \"LITBTC\",\n    \"asset\": \"LIT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"LIT/BTC\"\n  },\n  {\n    \"id\": \"LITBUSD\",\n    \"asset\": \"LIT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LIT/BUSD\"\n  },\n  {\n    \"id\": \"LITUSDT\",\n    \"asset\": \"LIT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LIT/USDT\"\n  },\n  {\n    \"id\": \"BTCVAI\",\n    \"asset\": \"BTC\",\n    \"currency\": \"VAI\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/VAI\"\n  },\n  {\n    \"id\": \"BUSDVAI\",\n    \"asset\": \"BUSD\",\n    \"currency\": \"VAI\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BUSD/VAI\"\n  },\n  {\n    \"id\": \"SFPBTC\",\n    \"asset\": \"SFP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SFP/BTC\"\n  },\n  {\n    \"id\": \"SFPBUSD\",\n    \"asset\": \"SFP\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SFP/BUSD\"\n  },\n  {\n    \"id\": \"SFPUSDT\",\n    \"asset\": \"SFP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SFP/USDT\"\n  },\n  {\n    \"id\": \"DOGEGBP\",\n    \"asset\": \"DOGE\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DOGE/GBP\"\n  },\n  {\n    \"id\": \"DOTTRY\",\n    \"asset\": \"DOT\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.10000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"DOT/TRY\"\n  },\n  {\n    \"id\": \"FXSBTC\",\n    \"asset\": \"FXS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"FXS/BTC\"\n  },\n  {\n    \"id\": \"FXSBUSD\",\n    \"asset\": \"FXS\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"FXS/BUSD\"\n  },\n  {\n    \"id\": \"DODOBTC\",\n    \"asset\": \"DODO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DODO/BTC\"\n  },\n  {\n    \"id\": \"DODOBUSD\",\n    \"asset\": \"DODO\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DODO/BUSD\"\n  },\n  {\n    \"id\": \"DODOUSDT\",\n    \"asset\": \"DODO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DODO/USDT\"\n  },\n  {\n    \"id\": \"FRONTBTC\",\n    \"asset\": \"FRONT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"FRONT/BTC\"\n  },\n  {\n    \"id\": \"EASYBTC\",\n    \"asset\": \"EASY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EASY/BTC\"\n  },\n  {\n    \"id\": \"CAKEBTC\",\n    \"asset\": \"CAKE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"CAKE/BTC\"\n  },\n  {\n    \"id\": \"CAKEUSDT\",\n    \"asset\": \"CAKE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"CAKE/USDT\"\n  },\n  {\n    \"id\": \"BAKEBUSD\",\n    \"asset\": \"BAKE\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BAKE/BUSD\"\n  },\n  {\n    \"id\": \"UFTETH\",\n    \"asset\": \"UFT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"UFT/ETH\"\n  },\n  {\n    \"id\": \"UFTBUSD\",\n    \"asset\": \"UFT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"UFT/BUSD\"\n  },\n  {\n    \"id\": \"1INCHBUSD\",\n    \"asset\": \"1INCH\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"1INCH/BUSD\"\n  },\n  {\n    \"id\": \"BANDBUSD\",\n    \"asset\": \"BAND\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BAND/BUSD\"\n  },\n  {\n    \"id\": \"GRTBUSD\",\n    \"asset\": \"GRT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"GRT/BUSD\"\n  },\n  {\n    \"id\": \"IOSTBUSD\",\n    \"asset\": \"IOST\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"IOST/BUSD\"\n  },\n  {\n    \"id\": \"OMGBUSD\",\n    \"asset\": \"OMG\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"OMG/BUSD\"\n  },\n  {\n    \"id\": \"REEFBUSD\",\n    \"asset\": \"REEF\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"REEF/BUSD\"\n  },\n  {\n    \"id\": \"ACMBTC\",\n    \"asset\": \"ACM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ACM/BTC\"\n  },\n  {\n    \"id\": \"ACMBUSD\",\n    \"asset\": \"ACM\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ACM/BUSD\"\n  },\n  {\n    \"id\": \"ACMUSDT\",\n    \"asset\": \"ACM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ACM/USDT\"\n  },\n  {\n    \"id\": \"AUCTIONBTC\",\n    \"asset\": \"AUCTION\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AUCTION/BTC\"\n  },\n  {\n    \"id\": \"AUCTIONBUSD\",\n    \"asset\": \"AUCTION\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"AUCTION/BUSD\"\n  },\n  {\n    \"id\": \"PHABTC\",\n    \"asset\": \"PHA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"PHA/BTC\"\n  },\n  {\n    \"id\": \"PHABUSD\",\n    \"asset\": \"PHA\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"PHA/BUSD\"\n  },\n  {\n    \"id\": \"DOTGBP\",\n    \"asset\": \"DOT\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DOT/GBP\"\n  },\n  {\n    \"id\": \"ADATRY\",\n    \"asset\": \"ADA\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ADA/TRY\"\n  },\n  {\n    \"id\": \"ADABRL\",\n    \"asset\": \"ADA\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ADA/BRL\"\n  },\n  {\n    \"id\": \"ADAGBP\",\n    \"asset\": \"ADA\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ADA/GBP\"\n  },\n  {\n    \"id\": \"TVKBTC\",\n    \"asset\": \"TVK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TVK/BTC\"\n  },\n  {\n    \"id\": \"TVKBUSD\",\n    \"asset\": \"TVK\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TVK/BUSD\"\n  },\n  {\n    \"id\": \"BADGERBTC\",\n    \"asset\": \"BADGER\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BADGER/BTC\"\n  },\n  {\n    \"id\": \"BADGERBUSD\",\n    \"asset\": \"BADGER\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BADGER/BUSD\"\n  },\n  {\n    \"id\": \"BADGERUSDT\",\n    \"asset\": \"BADGER\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BADGER/USDT\"\n  },\n  {\n    \"id\": \"FISBTC\",\n    \"asset\": \"FIS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"FIS/BTC\"\n  },\n  {\n    \"id\": \"FISBUSD\",\n    \"asset\": \"FIS\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"FIS/BUSD\"\n  },\n  {\n    \"id\": \"FISUSDT\",\n    \"asset\": \"FIS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"FIS/USDT\"\n  },\n  {\n    \"id\": \"DOTBRL\",\n    \"asset\": \"DOT\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"DOT/BRL\"\n  },\n  {\n    \"id\": \"ADAAUD\",\n    \"asset\": \"ADA\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ADA/AUD\"\n  },\n  {\n    \"id\": \"HOTTRY\",\n    \"asset\": \"HOT\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"HOT/TRY\"\n  },\n  {\n    \"id\": \"EGLDEUR\",\n    \"asset\": \"EGLD\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"EGLD/EUR\"\n  },\n  {\n    \"id\": \"OMBTC\",\n    \"asset\": \"OM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"OM/BTC\"\n  },\n  {\n    \"id\": \"OMBUSD\",\n    \"asset\": \"OM\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"OM/BUSD\"\n  },\n  {\n    \"id\": \"OMUSDT\",\n    \"asset\": \"OM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"OM/USDT\"\n  },\n  {\n    \"id\": \"PONDBTC\",\n    \"asset\": \"POND\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"POND/BTC\"\n  },\n  {\n    \"id\": \"PONDBUSD\",\n    \"asset\": \"POND\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"POND/BUSD\"\n  },\n  {\n    \"id\": \"PONDUSDT\",\n    \"asset\": \"POND\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"POND/USDT\"\n  },\n  {\n    \"id\": \"DEGOBTC\",\n    \"asset\": \"DEGO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"DEGO/BTC\"\n  },\n  {\n    \"id\": \"DEGOBUSD\",\n    \"asset\": \"DEGO\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DEGO/BUSD\"\n  },\n  {\n    \"id\": \"DEGOUSDT\",\n    \"asset\": \"DEGO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"DEGO/USDT\"\n  },\n  {\n    \"id\": \"AVAXEUR\",\n    \"asset\": \"AVAX\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"AVAX/EUR\"\n  },\n  {\n    \"id\": \"BTTTRY\",\n    \"asset\": \"BTT\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BTT/TRY\"\n  },\n  {\n    \"id\": \"CHZBRL\",\n    \"asset\": \"CHZ\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"CHZ/BRL\"\n  },\n  {\n    \"id\": \"UNIEUR\",\n    \"asset\": \"UNI\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"UNI/EUR\"\n  },\n  {\n    \"id\": \"ALICEBTC\",\n    \"asset\": \"ALICE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ALICE/BTC\"\n  },\n  {\n    \"id\": \"ALICEBUSD\",\n    \"asset\": \"ALICE\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ALICE/BUSD\"\n  },\n  {\n    \"id\": \"ALICEUSDT\",\n    \"asset\": \"ALICE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ALICE/USDT\"\n  },\n  {\n    \"id\": \"CHZBUSD\",\n    \"asset\": \"CHZ\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"CHZ/BUSD\"\n  },\n  {\n    \"id\": \"CHZEUR\",\n    \"asset\": \"CHZ\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"CHZ/EUR\"\n  },\n  {\n    \"id\": \"CHZGBP\",\n    \"asset\": \"CHZ\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"CHZ/GBP\"\n  },\n  {\n    \"id\": \"BIFIBNB\",\n    \"asset\": \"BIFI\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BIFI/BNB\"\n  },\n  {\n    \"id\": \"BIFIBUSD\",\n    \"asset\": \"BIFI\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BIFI/BUSD\"\n  },\n  {\n    \"id\": \"LINABTC\",\n    \"asset\": \"LINA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"LINA/BTC\"\n  },\n  {\n    \"id\": \"LINABUSD\",\n    \"asset\": \"LINA\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LINA/BUSD\"\n  },\n  {\n    \"id\": \"LINAUSDT\",\n    \"asset\": \"LINA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LINA/USDT\"\n  },\n  {\n    \"id\": \"ADARUB\",\n    \"asset\": \"ADA\",\n    \"currency\": \"RUB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ADA/RUB\"\n  },\n  {\n    \"id\": \"ENJBRL\",\n    \"asset\": \"ENJ\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ENJ/BRL\"\n  },\n  {\n    \"id\": \"ENJEUR\",\n    \"asset\": \"ENJ\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ENJ/EUR\"\n  },\n  {\n    \"id\": \"MATICEUR\",\n    \"asset\": \"MATIC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MATIC/EUR\"\n  },\n  {\n    \"id\": \"NEOTRY\",\n    \"asset\": \"NEO\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.10000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NEO/TRY\"\n  },\n  {\n    \"id\": \"PERPBTC\",\n    \"asset\": \"PERP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"PERP/BTC\"\n  },\n  {\n    \"id\": \"PERPBUSD\",\n    \"asset\": \"PERP\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"PERP/BUSD\"\n  },\n  {\n    \"id\": \"PERPUSDT\",\n    \"asset\": \"PERP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"PERP/USDT\"\n  },\n  {\n    \"id\": \"RAMPBTC\",\n    \"asset\": \"RAMP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"RAMP/BTC\"\n  },\n  {\n    \"id\": \"RAMPBUSD\",\n    \"asset\": \"RAMP\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"RAMP/BUSD\"\n  },\n  {\n    \"id\": \"RAMPUSDT\",\n    \"asset\": \"RAMP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"RAMP/USDT\"\n  },\n  {\n    \"id\": \"SUPERBTC\",\n    \"asset\": \"SUPER\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"SUPER/BTC\"\n  },\n  {\n    \"id\": \"SUPERBUSD\",\n    \"asset\": \"SUPER\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"SUPER/BUSD\"\n  },\n  {\n    \"id\": \"SUPERUSDT\",\n    \"asset\": \"SUPER\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"SUPER/USDT\"\n  },\n  {\n    \"id\": \"CFXBTC\",\n    \"asset\": \"CFX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"CFX/BTC\"\n  },\n  {\n    \"id\": \"CFXBUSD\",\n    \"asset\": \"CFX\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"CFX/BUSD\"\n  },\n  {\n    \"id\": \"CFXUSDT\",\n    \"asset\": \"CFX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"CFX/USDT\"\n  },\n  {\n    \"id\": \"ENJGBP\",\n    \"asset\": \"ENJ\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ENJ/GBP\"\n  },\n  {\n    \"id\": \"EOSTRY\",\n    \"asset\": \"EOS\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EOS/TRY\"\n  },\n  {\n    \"id\": \"LTCGBP\",\n    \"asset\": \"LTC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"LTC/GBP\"\n  },\n  {\n    \"id\": \"LUNAEUR\",\n    \"asset\": \"LUNA\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"LUNA/EUR\"\n  },\n  {\n    \"id\": \"RVNTRY\",\n    \"asset\": \"RVN\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"RVN/TRY\"\n  },\n  {\n    \"id\": \"THETAEUR\",\n    \"asset\": \"THETA\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"THETA/EUR\"\n  },\n  {\n    \"id\": \"XVGBUSD\",\n    \"asset\": \"XVG\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XVG/BUSD\"\n  },\n  {\n    \"id\": \"EPSBTC\",\n    \"asset\": \"EPS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"EPS/BTC\"\n  },\n  {\n    \"id\": \"EPSBUSD\",\n    \"asset\": \"EPS\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"EPS/BUSD\"\n  },\n  {\n    \"id\": \"EPSUSDT\",\n    \"asset\": \"EPS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"EPS/USDT\"\n  },\n  {\n    \"id\": \"AUTOBTC\",\n    \"asset\": \"AUTO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"AUTO/BTC\"\n  },\n  {\n    \"id\": \"AUTOBUSD\",\n    \"asset\": \"AUTO\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"AUTO/BUSD\"\n  },\n  {\n    \"id\": \"AUTOUSDT\",\n    \"asset\": \"AUTO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"AUTO/USDT\"\n  },\n  {\n    \"id\": \"TKOBTC\",\n    \"asset\": \"TKO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TKO/BTC\"\n  },\n  {\n    \"id\": \"TKOBIDR\",\n    \"asset\": \"TKO\",\n    \"currency\": \"BIDR\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TKO/BIDR\"\n  },\n  {\n    \"id\": \"TKOBUSD\",\n    \"asset\": \"TKO\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TKO/BUSD\"\n  },\n  {\n    \"id\": \"TKOUSDT\",\n    \"asset\": \"TKO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TKO/USDT\"\n  },\n  {\n    \"id\": \"PUNDIXETH\",\n    \"asset\": \"PUNDIX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"PUNDIX/ETH\"\n  },\n  {\n    \"id\": \"PUNDIXUSDT\",\n    \"asset\": \"PUNDIX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"PUNDIX/USDT\"\n  },\n  {\n    \"id\": \"BTTBRL\",\n    \"asset\": \"BTT\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BTT/BRL\"\n  },\n  {\n    \"id\": \"BTTEUR\",\n    \"asset\": \"BTT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"BTT/EUR\"\n  },\n  {\n    \"id\": \"HOTEUR\",\n    \"asset\": \"HOT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"HOT/EUR\"\n  },\n  {\n    \"id\": \"WINEUR\",\n    \"asset\": \"WIN\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WIN/EUR\"\n  },\n  {\n    \"id\": \"TLMBTC\",\n    \"asset\": \"TLM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"TLM/BTC\"\n  },\n  {\n    \"id\": \"TLMBUSD\",\n    \"asset\": \"TLM\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TLM/BUSD\"\n  },\n  {\n    \"id\": \"TLMUSDT\",\n    \"asset\": \"TLM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TLM/USDT\"\n  },\n  {\n    \"id\": \"1INCHUPUSDT\",\n    \"asset\": \"1INCHUP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"1INCHUP/USDT\"\n  },\n  {\n    \"id\": \"1INCHDOWNUSDT\",\n    \"asset\": \"1INCHDOWN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"1INCHDOWN/USDT\"\n  },\n  {\n    \"id\": \"BTGBUSD\",\n    \"asset\": \"BTG\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BTG/BUSD\"\n  },\n  {\n    \"id\": \"BTGUSDT\",\n    \"asset\": \"BTG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BTG/USDT\"\n  },\n  {\n    \"id\": \"HOTBUSD\",\n    \"asset\": \"HOT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"HOT/BUSD\"\n  },\n  {\n    \"id\": \"BNBUAH\",\n    \"asset\": \"BNB\",\n    \"currency\": \"UAH\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.10000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BNB/UAH\"\n  },\n  {\n    \"id\": \"ONTTRY\",\n    \"asset\": \"ONT\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ONT/TRY\"\n  },\n  {\n    \"id\": \"VETEUR\",\n    \"asset\": \"VET\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"VET/EUR\"\n  },\n  {\n    \"id\": \"VETGBP\",\n    \"asset\": \"VET\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"VET/GBP\"\n  },\n  {\n    \"id\": \"WINBRL\",\n    \"asset\": \"WIN\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WIN/BRL\"\n  },\n  {\n    \"id\": \"MIRBTC\",\n    \"asset\": \"MIR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MIR/BTC\"\n  },\n  {\n    \"id\": \"MIRBUSD\",\n    \"asset\": \"MIR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"MIR/BUSD\"\n  },\n  {\n    \"id\": \"MIRUSDT\",\n    \"asset\": \"MIR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"MIR/USDT\"\n  },\n  {\n    \"id\": \"BARBTC\",\n    \"asset\": \"BAR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BAR/BTC\"\n  },\n  {\n    \"id\": \"BARBUSD\",\n    \"asset\": \"BAR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BAR/BUSD\"\n  },\n  {\n    \"id\": \"BARUSDT\",\n    \"asset\": \"BAR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BAR/USDT\"\n  },\n  {\n    \"id\": \"FORTHBTC\",\n    \"asset\": \"FORTH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"FORTH/BTC\"\n  },\n  {\n    \"id\": \"FORTHBUSD\",\n    \"asset\": \"FORTH\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"FORTH/BUSD\"\n  },\n  {\n    \"id\": \"FORTHUSDT\",\n    \"asset\": \"FORTH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"FORTH/USDT\"\n  },\n  {\n    \"id\": \"CAKEGBP\",\n    \"asset\": \"CAKE\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"90000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"CAKE/GBP\"\n  },\n  {\n    \"id\": \"DOGERUB\",\n    \"asset\": \"DOGE\",\n    \"currency\": \"RUB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"DOGE/RUB\"\n  },\n  {\n    \"id\": \"HOTBRL\",\n    \"asset\": \"HOT\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"HOT/BRL\"\n  },\n  {\n    \"id\": \"WRXEUR\",\n    \"asset\": \"WRX\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"WRX/EUR\"\n  },\n  {\n    \"id\": \"EZBTC\",\n    \"asset\": \"EZ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EZ/BTC\"\n  },\n  {\n    \"id\": \"EZETH\",\n    \"asset\": \"EZ\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00500000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EZ/ETH\"\n  },\n  {\n    \"id\": \"BAKEUSDT\",\n    \"asset\": \"BAKE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BAKE/USDT\"\n  },\n  {\n    \"id\": \"BURGERBUSD\",\n    \"asset\": \"BURGER\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BURGER/BUSD\"\n  },\n  {\n    \"id\": \"BURGERUSDT\",\n    \"asset\": \"BURGER\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BURGER/USDT\"\n  },\n  {\n    \"id\": \"SLPBUSD\",\n    \"asset\": \"SLP\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SLP/BUSD\"\n  },\n  {\n    \"id\": \"SLPUSDT\",\n    \"asset\": \"SLP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"SLP/USDT\"\n  },\n  {\n    \"id\": \"TRXAUD\",\n    \"asset\": \"TRX\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TRX/AUD\"\n  },\n  {\n    \"id\": \"TRXEUR\",\n    \"asset\": \"TRX\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"TRX/EUR\"\n  },\n  {\n    \"id\": \"VETTRY\",\n    \"asset\": \"VET\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"VET/TRY\"\n  },\n  {\n    \"id\": \"SHIBUSDT\",\n    \"asset\": \"SHIB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00\",\n    \"max_size\": \"10000000000.00\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00\",\n    \"label\": \"SHIB/USDT\"\n  },\n  {\n    \"id\": \"SHIBBUSD\",\n    \"asset\": \"SHIB\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"1.00\",\n    \"max_size\": \"10000000000.00\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00\",\n    \"label\": \"SHIB/BUSD\"\n  },\n  {\n    \"id\": \"ICPBTC\",\n    \"asset\": \"ICP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ICP/BTC\"\n  },\n  {\n    \"id\": \"ICPBNB\",\n    \"asset\": \"ICP\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ICP/BNB\"\n  },\n  {\n    \"id\": \"ICPBUSD\",\n    \"asset\": \"ICP\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ICP/BUSD\"\n  },\n  {\n    \"id\": \"ICPUSDT\",\n    \"asset\": \"ICP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ICP/USDT\"\n  },\n  {\n    \"id\": \"BTCGYEN\",\n    \"asset\": \"BTC\",\n    \"currency\": \"GYEN\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"153.00000000\",\n    \"min_total\": \"1000.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BTC/GYEN\"\n  },\n  {\n    \"id\": \"USDTGYEN\",\n    \"asset\": \"USDT\",\n    \"currency\": \"GYEN\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"1000.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"USDT/GYEN\"\n  },\n  {\n    \"id\": \"SHIBEUR\",\n    \"asset\": \"SHIB\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1.00\",\n    \"max_size\": \"10000000000.00\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00\",\n    \"label\": \"SHIB/EUR\"\n  },\n  {\n    \"id\": \"SHIBRUB\",\n    \"asset\": \"SHIB\",\n    \"currency\": \"RUB\",\n    \"min_size\": \"1.00\",\n    \"max_size\": \"10000000000.00\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00\",\n    \"label\": \"SHIB/RUB\"\n  },\n  {\n    \"id\": \"ETCEUR\",\n    \"asset\": \"ETC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ETC/EUR\"\n  },\n  {\n    \"id\": \"ETCBRL\",\n    \"asset\": \"ETC\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ETC/BRL\"\n  },\n  {\n    \"id\": \"DOGEBIDR\",\n    \"asset\": \"DOGE\",\n    \"currency\": \"BIDR\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DOGE/BIDR\"\n  },\n  {\n    \"id\": \"ARBTC\",\n    \"asset\": \"AR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AR/BTC\"\n  },\n  {\n    \"id\": \"ARBNB\",\n    \"asset\": \"AR\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AR/BNB\"\n  },\n  {\n    \"id\": \"ARBUSD\",\n    \"asset\": \"AR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AR/BUSD\"\n  },\n  {\n    \"id\": \"ARUSDT\",\n    \"asset\": \"AR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"AR/USDT\"\n  },\n  {\n    \"id\": \"POLSBTC\",\n    \"asset\": \"POLS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"POLS/BTC\"\n  },\n  {\n    \"id\": \"POLSBNB\",\n    \"asset\": \"POLS\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"POLS/BNB\"\n  },\n  {\n    \"id\": \"POLSBUSD\",\n    \"asset\": \"POLS\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"POLS/BUSD\"\n  },\n  {\n    \"id\": \"POLSUSDT\",\n    \"asset\": \"POLS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"POLS/USDT\"\n  },\n  {\n    \"id\": \"MDXBTC\",\n    \"asset\": \"MDX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MDX/BTC\"\n  },\n  {\n    \"id\": \"MDXBNB\",\n    \"asset\": \"MDX\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MDX/BNB\"\n  },\n  {\n    \"id\": \"MDXBUSD\",\n    \"asset\": \"MDX\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MDX/BUSD\"\n  },\n  {\n    \"id\": \"MDXUSDT\",\n    \"asset\": \"MDX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MDX/USDT\"\n  },\n  {\n    \"id\": \"MASKBNB\",\n    \"asset\": \"MASK\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MASK/BNB\"\n  },\n  {\n    \"id\": \"MASKBUSD\",\n    \"asset\": \"MASK\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MASK/BUSD\"\n  },\n  {\n    \"id\": \"MASKUSDT\",\n    \"asset\": \"MASK\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MASK/USDT\"\n  },\n  {\n    \"id\": \"LPTBTC\",\n    \"asset\": \"LPT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141570.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LPT/BTC\"\n  },\n  {\n    \"id\": \"LPTBNB\",\n    \"asset\": \"LPT\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"92141570.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"LPT/BNB\"\n  },\n  {\n    \"id\": \"LPTBUSD\",\n    \"asset\": \"LPT\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222440.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LPT/BUSD\"\n  },\n  {\n    \"id\": \"LPTUSDT\",\n    \"asset\": \"LPT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222440.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LPT/USDT\"\n  },\n  {\n    \"id\": \"ETHUAH\",\n    \"asset\": \"ETH\",\n    \"currency\": \"UAH\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9220.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"1.00000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"ETH/UAH\"\n  },\n  {\n    \"id\": \"MATICBRL\",\n    \"asset\": \"MATIC\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222440.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MATIC/BRL\"\n  },\n  {\n    \"id\": \"SOLEUR\",\n    \"asset\": \"SOL\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222440.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SOL/EUR\"\n  },\n  {\n    \"id\": \"SHIBBRL\",\n    \"asset\": \"SHIB\",\n    \"currency\": \"BRL\",\n    \"min_size\": \"1.00\",\n    \"max_size\": \"10000000000.00\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00\",\n    \"label\": \"SHIB/BRL\"\n  },\n  {\n    \"id\": \"AGIXBTC\",\n    \"asset\": \"AGIX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"AGIX/BTC\"\n  },\n  {\n    \"id\": \"ICPEUR\",\n    \"asset\": \"ICP\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ICP/EUR\"\n  },\n  {\n    \"id\": \"MATICGBP\",\n    \"asset\": \"MATIC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"MATIC/GBP\"\n  },\n  {\n    \"id\": \"SHIBTRY\",\n    \"asset\": \"SHIB\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"1.00\",\n    \"max_size\": \"10000000000.00\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00\",\n    \"label\": \"SHIB/TRY\"\n  },\n  {\n    \"id\": \"MATICBIDR\",\n    \"asset\": \"MATIC\",\n    \"currency\": \"BIDR\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"9223.00000000\",\n    \"min_total\": \"20000.00\",\n    \"increment\": \"1.00\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"MATIC/BIDR\"\n  },\n  {\n    \"id\": \"MATICRUB\",\n    \"asset\": \"MATIC\",\n    \"currency\": \"RUB\",\n    \"min_size\": \"0.00010000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"100.00000000\",\n    \"increment\": \"0.10000000\",\n    \"asset_increment\": \"0.00010000\",\n    \"label\": \"MATIC/RUB\"\n  },\n  {\n    \"id\": \"NUBTC\",\n    \"asset\": \"NU\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NU/BTC\"\n  },\n  {\n    \"id\": \"NUBNB\",\n    \"asset\": \"NU\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NU/BNB\"\n  },\n  {\n    \"id\": \"NUBUSD\",\n    \"asset\": \"NU\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NU/BUSD\"\n  },\n  {\n    \"id\": \"NUUSDT\",\n    \"asset\": \"NU\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"NU/USDT\"\n  },\n  {\n    \"id\": \"XVGUSDT\",\n    \"asset\": \"XVG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"XVG/USDT\"\n  },\n  {\n    \"id\": \"RLCBUSD\",\n    \"asset\": \"RLC\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"RLC/BUSD\"\n  },\n  {\n    \"id\": \"CELRBUSD\",\n    \"asset\": \"CELR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"CELR/BUSD\"\n  },\n  {\n    \"id\": \"ATMBUSD\",\n    \"asset\": \"ATM\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ATM/BUSD\"\n  },\n  {\n    \"id\": \"ZENBUSD\",\n    \"asset\": \"ZEN\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.10000000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ZEN/BUSD\"\n  },\n  {\n    \"id\": \"FTMBUSD\",\n    \"asset\": \"FTM\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"FTM/BUSD\"\n  },\n  {\n    \"id\": \"THETABUSD\",\n    \"asset\": \"THETA\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"THETA/BUSD\"\n  },\n  {\n    \"id\": \"WINBUSD\",\n    \"asset\": \"WIN\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"WIN/BUSD\"\n  },\n  {\n    \"id\": \"KAVABUSD\",\n    \"asset\": \"KAVA\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"KAVA/BUSD\"\n  },\n  {\n    \"id\": \"XEMBUSD\",\n    \"asset\": \"XEM\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"XEM/BUSD\"\n  },\n  {\n    \"id\": \"ATABTC\",\n    \"asset\": \"ATA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ATA/BTC\"\n  },\n  {\n    \"id\": \"ATABNB\",\n    \"asset\": \"ATA\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ATA/BNB\"\n  },\n  {\n    \"id\": \"ATABUSD\",\n    \"asset\": \"ATA\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ATA/BUSD\"\n  },\n  {\n    \"id\": \"ATAUSDT\",\n    \"asset\": \"ATA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ATA/USDT\"\n  },\n  {\n    \"id\": \"GTCBTC\",\n    \"asset\": \"GTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"GTC/BTC\"\n  },\n  {\n    \"id\": \"GTCBNB\",\n    \"asset\": \"GTC\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"GTC/BNB\"\n  },\n  {\n    \"id\": \"GTCBUSD\",\n    \"asset\": \"GTC\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"GTC/BUSD\"\n  },\n  {\n    \"id\": \"GTCUSDT\",\n    \"asset\": \"GTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"GTC/USDT\"\n  },\n  {\n    \"id\": \"TORNBTC\",\n    \"asset\": \"TORN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"TORN/BTC\"\n  },\n  {\n    \"id\": \"TORNBNB\",\n    \"asset\": \"TORN\",\n    \"currency\": \"BNB\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"0.05000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TORN/BNB\"\n  },\n  {\n    \"id\": \"TORNBUSD\",\n    \"asset\": \"TORN\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TORN/BUSD\"\n  },\n  {\n    \"id\": \"TORNUSDT\",\n    \"asset\": \"TORN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"922327.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"TORN/USDT\"\n  },\n  {\n    \"id\": \"MATICTRY\",\n    \"asset\": \"MATIC\",\n    \"currency\": \"TRY\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"MATIC/TRY\"\n  },\n  {\n    \"id\": \"ETCGBP\",\n    \"asset\": \"ETC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ETC/GBP\"\n  },\n  {\n    \"id\": \"SOLGBP\",\n    \"asset\": \"SOL\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SOL/GBP\"\n  },\n  {\n    \"id\": \"BAKEBTC\",\n    \"asset\": \"BAKE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"92141578.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"BAKE/BTC\"\n  },\n  {\n    \"id\": \"COTIBUSD\",\n    \"asset\": \"COTI\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9222449.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"COTI/BUSD\"\n  }\n]"
  },
  {
    "path": "extensions/exchanges/binance/update-products.sh",
    "content": "#!/usr/bin/env node\nlet ccxt = require('ccxt')\n\nnew ccxt.binance().fetch_markets().then(function(markets) {\n  var products = []\n\n  var products = markets.map(function (market) {\n    const filters = market.info.filters\n    const price_filter = filters.find(f => f.filterType === 'PRICE_FILTER')\n    const lot_size_filter = filters.find(f => f.filterType === 'LOT_SIZE')\n    const notional_filter = filters.find(f => f.filterType === 'MIN_NOTIONAL')\n\n    // NOTE: price_filter also contains minPrice and maxPrice\n    return {\n      id: market.id,\n      asset: market.base,\n      currency: market.quote,\n      min_size: lot_size_filter.minQty,\n      max_size: lot_size_filter.maxQty,\n      min_total: notional_filter.minNotional,\n      increment: price_filter.tickSize,\n      asset_increment: lot_size_filter.stepSize,\n      label: market.base + '/' + market.quote\n    }\n  })\n\n  var target = require('path').resolve(__dirname, 'products.json')\n  require('fs').writeFileSync(target, JSON.stringify(products, null, 2))\n  console.log('wrote', target)\n  process.exit()\n})\n"
  },
  {
    "path": "extensions/exchanges/binanceus/exchange.js",
    "content": "const ccxt = require('ccxt')\n  , path = require('path')\n  // eslint-disable-next-line no-unused-vars\n  , colors = require('colors')\n  , _ = require('lodash')\n\nmodule.exports = function binanceus (conf) {\n  var public_client, authed_client\n\n  function publicClient () {\n    if (!public_client) public_client = new ccxt.binanceus({ 'apiKey': '', 'secret': '', 'options': { 'adjustForTimeDifference': true } })\n    return public_client\n  }\n\n  function authedClient () {\n    if (!authed_client) {\n      if (!conf.binanceus || !conf.binanceus.key || conf.binanceus.key === 'YOUR-API-KEY') {\n        throw new Error('please configure your BinanceUS credentials in ' + path.resolve(__dirname, 'conf.js'))\n      }\n      authed_client = new ccxt.binanceus({ 'apiKey': conf.binanceus.key, 'secret': conf.binanceus.secret, 'options': { 'adjustForTimeDifference': true }, enableRateLimit: true })\n    }\n    return authed_client\n  }\n\n  /**\n  * Convert BNB-BTC to BNB/BTC\n  *\n  * @param product_id BNB-BTC\n  * @returns {string}\n  */\n  function joinProduct(product_id) {\n    let split = product_id.split('-')\n    return split[0] + '/' + split[1]\n  }\n\n  function retry (method, args, err) {\n    if (method !== 'getTrades') {\n      console.error(('\\nBinanceUS API is down! unable to call ' + method + ', retrying in 20s').red)\n      if (err) console.error(err)\n      console.error(args.slice(0, -1))\n    }\n    setTimeout(function () {\n      exchange[method].apply(exchange, args)\n    }, 20000)\n  }\n\n  var orders = {}\n\n  var exchange = {\n    name: 'binanceus',\n    historyScan: 'forward',\n    historyScanUsesTime: true,\n    makerFee: 0.1,\n    takerFee: 0.1,\n\n    getProducts: function () {\n      return require('./products.json')\n    },\n\n    getTrades: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = publicClient()\n      var startTime = null\n      var args = {}\n      if (opts.from) {\n        startTime = opts.from\n      } else {\n        startTime = parseInt(opts.to, 10) - 3600000\n        args['endTime'] = opts.to\n      }\n\n      const symbol = joinProduct(opts.product_id)\n      client.fetchTrades(symbol, startTime, undefined, args).then(result => {\n\n        if (result.length === 0 && opts.from) {\n          // client.fetchTrades() only returns trades in an 1 hour interval.\n          // So we use fetchOHLCV() to detect trade appart from more than 1h.\n          // Note: it's done only in forward mode.\n          const time_diff = client.options['timeDifference']\n          if (startTime + time_diff < (new Date()).getTime() - 3600000) {\n            // startTime is older than 1 hour ago.\n            return client.fetchOHLCV(symbol, undefined, startTime)\n              .then(ohlcv => {\n                return ohlcv.length ? client.fetchTrades(symbol, ohlcv[0][0]) : []\n              })\n          }\n        }\n        return result\n      }).then(result => {\n        var trades = result.map(trade => ({\n          trade_id: trade.id,\n          time: trade.timestamp,\n          size: parseFloat(trade.amount),\n          price: parseFloat(trade.price),\n          side: trade.side\n        }))\n        cb(null, trades)\n      }).catch(function (error) {\n        console.error('An error occurred', error)\n        return retry('getTrades', func_args)\n      })\n\n    },\n\n    getBalance: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      client.fetchBalance().then(result => {\n        var balance = {asset: 0, currency: 0}\n        Object.keys(result).forEach(function (key) {\n          if (key === opts.currency) {\n            balance.currency = result[key].free + result[key].used\n            balance.currency_hold = result[key].used\n          }\n          if (key === opts.asset) {\n            balance.asset = result[key].free + result[key].used\n            balance.asset_hold = result[key].used\n          }\n        })\n        cb(null, balance)\n      })\n        .catch(function (error) {\n          console.error('An error occurred', error)\n          return retry('getBalance', func_args)\n        })\n    },\n\n    getQuote: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = publicClient()\n      client.fetchTicker(joinProduct(opts.product_id)).then(result => {\n        cb(null, { bid: result.bid, ask: result.ask })\n      })\n        .catch(function (error) {\n          console.error('An error occurred', error)\n          return retry('getQuote', func_args)\n        })\n    },\n\n    getDepth: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = publicClient()\n      client.fetchOrderBook(joinProduct(opts.product_id), {limit: opts.limit}).then(result => {\n        cb(null, result)\n      })\n        .catch(function(error) {\n          console.error('An error ocurred', error)\n          return retry('getDepth', func_args)\n        })\n    },\n\n    cancelOrder: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      client.cancelOrder(opts.order_id, joinProduct(opts.product_id)).then(function (body) {\n        if (body && (body.message === 'Order already done' || body.message === 'order not found')) return cb()\n        cb(null)\n      }, function(err){\n        // match error against string:\n        // \"binanceus {\"code\":-2011,\"msg\":\"UNKNOWN_ORDER\"}\"\n\n        if (err) {\n          // decide if this error is allowed for a retry\n\n          if (err.message && err.message.match(new RegExp(/-2011|UNKNOWN_ORDER/))) {\n            console.error(('\\ncancelOrder retry - unknown Order: ' + JSON.stringify(opts) + ' - ' + err).cyan)\n          } else {\n            // retry is allowed for this error\n\n            return retry('cancelOrder', func_args, err)\n          }\n        }\n\n        cb()\n      })\n    },\n\n    buy: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      if (typeof opts.post_only === 'undefined') {\n        opts.post_only = true\n      }\n      opts.type = 'limit'\n      var args = {}\n      if (opts.order_type === 'taker') {\n        delete opts.price\n        delete opts.post_only\n        opts.type = 'market'\n      } else {\n        args.timeInForce = 'GTC'\n      }\n      opts.side = 'buy'\n      delete opts.order_type\n      var order = {}\n      client.createOrder(joinProduct(opts.product_id), opts.type, opts.side, this.roundToNearest(opts.size, opts), opts.price, args).then(result => {\n        if (result && result.message === 'Insufficient funds') {\n          order = {\n            status: 'rejected',\n            reject_reason: 'balance'\n          }\n          return cb(null, order)\n        }\n        order = {\n          id: result ? result.id : null,\n          status: 'open',\n          price: opts.price,\n          size: this.roundToNearest(opts.size, opts),\n          post_only: !!opts.post_only,\n          created_at: new Date().getTime(),\n          filled_size: '0',\n          ordertype: opts.order_type\n        }\n        orders['~' + result.id] = order\n        cb(null, order)\n      }).catch(function (error) {\n        console.error('An error occurred', error)\n\n        // decide if this error is allowed for a retry:\n        // {\"code\":-1013,\"msg\":\"Filter failure: MIN_NOTIONAL\"}\n        // {\"code\":-2010,\"msg\":\"Account has insufficient balance for requested action\"}\n\n        if (error.message.match(new RegExp(/-1013|MIN_NOTIONAL|-2010/))) {\n          return cb(null, {\n            status: 'rejected',\n            reject_reason: 'balance'\n          })\n        }\n\n        return retry('buy', func_args)\n      })\n    },\n\n    sell: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      if (typeof opts.post_only === 'undefined') {\n        opts.post_only = true\n      }\n      opts.type = 'limit'\n      var args = {}\n      if (opts.order_type === 'taker') {\n        delete opts.price\n        delete opts.post_only\n        opts.type = 'market'\n      } else {\n        args.timeInForce = 'GTC'\n      }\n      opts.side = 'sell'\n      delete opts.order_type\n      var order = {}\n      client.createOrder(joinProduct(opts.product_id), opts.type, opts.side, this.roundToNearest(opts.size, opts), opts.price, args).then(result => {\n        if (result && result.message === 'Insufficient funds') {\n          order = {\n            status: 'rejected',\n            reject_reason: 'balance'\n          }\n          return cb(null, order)\n        }\n        order = {\n          id: result ? result.id : null,\n          status: 'open',\n          price: opts.price,\n          size: this.roundToNearest(opts.size, opts),\n          post_only: !!opts.post_only,\n          created_at: new Date().getTime(),\n          filled_size: '0',\n          ordertype: opts.order_type\n        }\n        orders['~' + result.id] = order\n        cb(null, order)\n      }).catch(function (error) {\n        console.error('An error occurred', error)\n\n        // decide if this error is allowed for a retry:\n        // {\"code\":-1013,\"msg\":\"Filter failure: MIN_NOTIONAL\"}\n        // {\"code\":-2010,\"msg\":\"Account has insufficient balance for requested action\"}\n\n        if (error.message.match(new RegExp(/-1013|MIN_NOTIONAL|-2010/))) {\n          return cb(null, {\n            status: 'rejected',\n            reject_reason: 'balance'\n          })\n        }\n\n        return retry('sell', func_args)\n      })\n    },\n\n    roundToNearest: function(numToRound, opts) {\n      var numToRoundTo = _.find(this.getProducts(), { 'asset': opts.product_id.split('-')[0], 'currency': opts.product_id.split('-')[1] }).min_size\n      numToRoundTo = 1 / (numToRoundTo)\n\n      return Math.floor(numToRound * numToRoundTo) / numToRoundTo\n    },\n\n    getOrder: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      var order = orders['~' + opts.order_id]\n      client.fetchOrder(opts.order_id, joinProduct(opts.product_id)).then(function (body) {\n        if (body.status !== 'open' && body.status !== 'canceled') {\n          order.status = 'done'\n          order.done_at = new Date().getTime()\n          order.filled_size = parseFloat(body.amount) - parseFloat(body.remaining)\n          return cb(null, order)\n        }\n        cb(null, order)\n      }, function(err) {\n        return retry('getOrder', func_args, err)\n      })\n    },\n\n    getCursor: function (trade) {\n      return (trade.time || trade)\n    }\n  }\n  return exchange\n}\n"
  },
  {
    "path": "extensions/exchanges/binanceus/products.json",
    "content": "[\n  {\n    \"id\": \"BTCUSD\",\n    \"asset\": \"BTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0100\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/USD\"\n  },\n  {\n    \"id\": \"ETHUSD\",\n    \"asset\": \"ETH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0100\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/USD\"\n  },\n  {\n    \"id\": \"XRPUSD\",\n    \"asset\": \"XRP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XRP/USD\"\n  },\n  {\n    \"id\": \"BCHUSD\",\n    \"asset\": \"BCH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0100\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BCH/USD\"\n  },\n  {\n    \"id\": \"LTCUSD\",\n    \"asset\": \"LTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0100\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"LTC/USD\"\n  },\n  {\n    \"id\": \"USDTUSD\",\n    \"asset\": \"USDT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDT/USD\"\n  },\n  {\n    \"id\": \"BTCUSDT\",\n    \"asset\": \"BTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/USDT\"\n  },\n  {\n    \"id\": \"ETHUSDT\",\n    \"asset\": \"ETH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/USDT\"\n  },\n  {\n    \"id\": \"XRPUSDT\",\n    \"asset\": \"XRP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XRP/USDT\"\n  },\n  {\n    \"id\": \"BCHUSDT\",\n    \"asset\": \"BCH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"BCH/USDT\"\n  },\n  {\n    \"id\": \"LTCUSDT\",\n    \"asset\": \"LTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"LTC/USDT\"\n  },\n  {\n    \"id\": \"BNBUSD\",\n    \"asset\": \"BNB\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BNB/USD\"\n  },\n  {\n    \"id\": \"BNBUSDT\",\n    \"asset\": \"BNB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BNB/USDT\"\n  },\n  {\n    \"id\": \"ETHBTC\",\n    \"asset\": \"ETH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ETH/BTC\"\n  },\n  {\n    \"id\": \"XRPBTC\",\n    \"asset\": \"XRP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"XRP/BTC\"\n  },\n  {\n    \"id\": \"BNBBTC\",\n    \"asset\": \"BNB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BNB/BTC\"\n  },\n  {\n    \"id\": \"LTCBTC\",\n    \"asset\": \"LTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"100000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LTC/BTC\"\n  },\n  {\n    \"id\": \"BCHBTC\",\n    \"asset\": \"BCH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"10000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"BCH/BTC\"\n  },\n  {\n    \"id\": \"ADAUSD\",\n    \"asset\": \"ADA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ADA/USD\"\n  },\n  {\n    \"id\": \"BATUSD\",\n    \"asset\": \"BAT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BAT/USD\"\n  },\n  {\n    \"id\": \"ETCUSD\",\n    \"asset\": \"ETC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ETC/USD\"\n  },\n  {\n    \"id\": \"XLMUSD\",\n    \"asset\": \"XLM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XLM/USD\"\n  },\n  {\n    \"id\": \"ZRXUSD\",\n    \"asset\": \"ZRX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ZRX/USD\"\n  },\n  {\n    \"id\": \"ADAUSDT\",\n    \"asset\": \"ADA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ADA/USDT\"\n  },\n  {\n    \"id\": \"BATUSDT\",\n    \"asset\": \"BAT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BAT/USDT\"\n  },\n  {\n    \"id\": \"ETCUSDT\",\n    \"asset\": \"ETC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ETC/USDT\"\n  },\n  {\n    \"id\": \"XLMUSDT\",\n    \"asset\": \"XLM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XLM/USDT\"\n  },\n  {\n    \"id\": \"ZRXUSDT\",\n    \"asset\": \"ZRX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ZRX/USDT\"\n  },\n  {\n    \"id\": \"LINKUSD\",\n    \"asset\": \"LINK\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"LINK/USD\"\n  },\n  {\n    \"id\": \"RVNUSD\",\n    \"asset\": \"RVN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"RVN/USD\"\n  },\n  {\n    \"id\": \"DASHUSD\",\n    \"asset\": \"DASH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0100\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"DASH/USD\"\n  },\n  {\n    \"id\": \"ZECUSD\",\n    \"asset\": \"ZEC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0100\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ZEC/USD\"\n  },\n  {\n    \"id\": \"ALGOUSD\",\n    \"asset\": \"ALGO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0010\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ALGO/USD\"\n  },\n  {\n    \"id\": \"IOTAUSD\",\n    \"asset\": \"IOTA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"IOTA/USD\"\n  },\n  {\n    \"id\": \"BUSDUSD\",\n    \"asset\": \"BUSD\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BUSD/USD\"\n  },\n  {\n    \"id\": \"BTCBUSD\",\n    \"asset\": \"BTC\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/BUSD\"\n  },\n  {\n    \"id\": \"DOGEUSDT\",\n    \"asset\": \"DOGE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DOGE/USDT\"\n  },\n  {\n    \"id\": \"WAVESUSD\",\n    \"asset\": \"WAVES\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"WAVES/USD\"\n  },\n  {\n    \"id\": \"ATOMUSDT\",\n    \"asset\": \"ATOM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ATOM/USDT\"\n  },\n  {\n    \"id\": \"ATOMUSD\",\n    \"asset\": \"ATOM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0010\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ATOM/USD\"\n  },\n  {\n    \"id\": \"NEOUSDT\",\n    \"asset\": \"NEO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"NEO/USDT\"\n  },\n  {\n    \"id\": \"NEOUSD\",\n    \"asset\": \"NEO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0010\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"NEO/USD\"\n  },\n  {\n    \"id\": \"VETUSDT\",\n    \"asset\": \"VET\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VET/USDT\"\n  },\n  {\n    \"id\": \"QTUMUSDT\",\n    \"asset\": \"QTUM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"QTUM/USDT\"\n  },\n  {\n    \"id\": \"QTUMUSD\",\n    \"asset\": \"QTUM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0010\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"QTUM/USD\"\n  },\n  {\n    \"id\": \"NANOUSD\",\n    \"asset\": \"NANO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"NANO/USD\"\n  },\n  {\n    \"id\": \"ICXUSD\",\n    \"asset\": \"ICX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ICX/USD\"\n  },\n  {\n    \"id\": \"ENJUSD\",\n    \"asset\": \"ENJ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ENJ/USD\"\n  },\n  {\n    \"id\": \"ONTUSD\",\n    \"asset\": \"ONT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ONT/USD\"\n  },\n  {\n    \"id\": \"ONTUSDT\",\n    \"asset\": \"ONT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ONT/USDT\"\n  },\n  {\n    \"id\": \"ZILUSD\",\n    \"asset\": \"ZIL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ZIL/USD\"\n  },\n  {\n    \"id\": \"ZILBUSD\",\n    \"asset\": \"ZIL\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ZIL/BUSD\"\n  },\n  {\n    \"id\": \"VETUSD\",\n    \"asset\": \"VET\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VET/USD\"\n  },\n  {\n    \"id\": \"BNBBUSD\",\n    \"asset\": \"BNB\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BNB/BUSD\"\n  },\n  {\n    \"id\": \"XRPBUSD\",\n    \"asset\": \"XRP\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"XRP/BUSD\"\n  },\n  {\n    \"id\": \"ETHBUSD\",\n    \"asset\": \"ETH\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"ETH/BUSD\"\n  },\n  {\n    \"id\": \"ALGOBUSD\",\n    \"asset\": \"ALGO\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"ALGO/BUSD\"\n  },\n  {\n    \"id\": \"XTZUSD\",\n    \"asset\": \"XTZ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XTZ/USD\"\n  },\n  {\n    \"id\": \"XTZBUSD\",\n    \"asset\": \"XTZ\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XTZ/BUSD\"\n  },\n  {\n    \"id\": \"HBARUSD\",\n    \"asset\": \"HBAR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"HBAR/USD\"\n  },\n  {\n    \"id\": \"HBARBUSD\",\n    \"asset\": \"HBAR\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"HBAR/BUSD\"\n  },\n  {\n    \"id\": \"OMGUSD\",\n    \"asset\": \"OMG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"OMG/USD\"\n  },\n  {\n    \"id\": \"OMGBUSD\",\n    \"asset\": \"OMG\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"OMG/BUSD\"\n  },\n  {\n    \"id\": \"MATICUSD\",\n    \"asset\": \"MATIC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"MATIC/USD\"\n  },\n  {\n    \"id\": \"MATICBUSD\",\n    \"asset\": \"MATIC\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"MATIC/BUSD\"\n  },\n  {\n    \"id\": \"XTZBTC\",\n    \"asset\": \"XTZ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000010\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"XTZ/BTC\"\n  },\n  {\n    \"id\": \"ADABTC\",\n    \"asset\": \"ADA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ADA/BTC\"\n  },\n  {\n    \"id\": \"REPBUSD\",\n    \"asset\": \"REP\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"1000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"REP/BUSD\"\n  },\n  {\n    \"id\": \"REPUSD\",\n    \"asset\": \"REP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"1000000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0100\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"REP/USD\"\n  },\n  {\n    \"id\": \"EOSBUSD\",\n    \"asset\": \"EOS\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EOS/BUSD\"\n  },\n  {\n    \"id\": \"EOSUSD\",\n    \"asset\": \"EOS\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"EOS/USD\"\n  },\n  {\n    \"id\": \"DOGEUSD\",\n    \"asset\": \"DOGE\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"DOGE/USD\"\n  },\n  {\n    \"id\": \"KNCUSD\",\n    \"asset\": \"KNC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0010\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"KNC/USD\"\n  },\n  {\n    \"id\": \"KNCUSDT\",\n    \"asset\": \"KNC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"KNC/USDT\"\n  },\n  {\n    \"id\": \"VTHOUSDT\",\n    \"asset\": \"VTHO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VTHO/USDT\"\n  },\n  {\n    \"id\": \"VTHOUSD\",\n    \"asset\": \"VTHO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VTHO/USD\"\n  },\n  {\n    \"id\": \"USDCUSD\",\n    \"asset\": \"USDC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"USDC/USD\"\n  },\n  {\n    \"id\": \"COMPUSDT\",\n    \"asset\": \"COMP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"COMP/USDT\"\n  },\n  {\n    \"id\": \"COMPUSD\",\n    \"asset\": \"COMP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0100\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"COMP/USD\"\n  },\n  {\n    \"id\": \"MANAUSD\",\n    \"asset\": \"MANA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"MANA/USD\"\n  },\n  {\n    \"id\": \"HNTUSD\",\n    \"asset\": \"HNT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"HNT/USD\"\n  },\n  {\n    \"id\": \"HNTUSDT\",\n    \"asset\": \"HNT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"HNT/USDT\"\n  },\n  {\n    \"id\": \"MKRUSD\",\n    \"asset\": \"MKR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"MKR/USD\"\n  },\n  {\n    \"id\": \"MKRUSDT\",\n    \"asset\": \"MKR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00001000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00001000\",\n    \"label\": \"MKR/USDT\"\n  },\n  {\n    \"id\": \"DAIUSD\",\n    \"asset\": \"DAI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"DAI/USD\"\n  },\n  {\n    \"id\": \"ONEUSDT\",\n    \"asset\": \"ONE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00001000\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ONE/USDT\"\n  },\n  {\n    \"id\": \"ONEUSD\",\n    \"asset\": \"ONE\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"ONE/USD\"\n  },\n  {\n    \"id\": \"BANDUSDT\",\n    \"asset\": \"BAND\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BAND/USDT\"\n  },\n  {\n    \"id\": \"BANDUSD\",\n    \"asset\": \"BAND\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BAND/USD\"\n  },\n  {\n    \"id\": \"STORJUSDT\",\n    \"asset\": \"STORJ\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"STORJ/USDT\"\n  },\n  {\n    \"id\": \"STORJUSD\",\n    \"asset\": \"STORJ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"STORJ/USD\"\n  },\n  {\n    \"id\": \"BUSDUSDT\",\n    \"asset\": \"BUSD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"BUSD/USDT\"\n  },\n  {\n    \"id\": \"UNIUSD\",\n    \"asset\": \"UNI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"UNI/USD\"\n  },\n  {\n    \"id\": \"UNIUSDT\",\n    \"asset\": \"UNI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"UNI/USDT\"\n  },\n  {\n    \"id\": \"SOLUSD\",\n    \"asset\": \"SOL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SOL/USD\"\n  },\n  {\n    \"id\": \"SOLUSDT\",\n    \"asset\": \"SOL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"SOL/USDT\"\n  },\n  {\n    \"id\": \"LINKBTC\",\n    \"asset\": \"LINK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.10000000\",\n    \"label\": \"LINK/BTC\"\n  },\n  {\n    \"id\": \"VETBTC\",\n    \"asset\": \"VET\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"VET/BTC\"\n  },\n  {\n    \"id\": \"UNIBTC\",\n    \"asset\": \"UNI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"90000000.00000000\",\n    \"min_total\": \"0.00010000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"UNI/BTC\"\n  },\n  {\n    \"id\": \"EGLDUSDT\",\n    \"asset\": \"EGLD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"EGLD/USDT\"\n  },\n  {\n    \"id\": \"EGLDUSD\",\n    \"asset\": \"EGLD\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0010\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"EGLD/USD\"\n  },\n  {\n    \"id\": \"PAXGUSDT\",\n    \"asset\": \"PAXG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"PAXG/USDT\"\n  },\n  {\n    \"id\": \"PAXGUSD\",\n    \"asset\": \"PAXG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0100\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"PAXG/USD\"\n  },\n  {\n    \"id\": \"OXTUSDT\",\n    \"asset\": \"OXT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00010000\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"OXT/USDT\"\n  },\n  {\n    \"id\": \"OXTUSD\",\n    \"asset\": \"OXT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01000000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01000000\",\n    \"label\": \"OXT/USD\"\n  },\n  {\n    \"id\": \"ZENUSDT\",\n    \"asset\": \"ZEN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00100000\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ZEN/USDT\"\n  },\n  {\n    \"id\": \"ZENUSD\",\n    \"asset\": \"ZEN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00100000\",\n    \"max_size\": \"900000.00000000\",\n    \"min_total\": \"10.0000\",\n    \"increment\": \"0.0010\",\n    \"asset_increment\": \"0.00100000\",\n    \"label\": \"ZEN/USD\"\n  },\n  {\n    \"id\": \"BTCUSDC\",\n    \"asset\": \"BTC\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.00000100\",\n    \"max_size\": \"9000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.01000000\",\n    \"asset_increment\": \"0.00000100\",\n    \"label\": \"BTC/USDC\"\n  },\n  {\n    \"id\": \"ONEBUSD\",\n    \"asset\": \"ONE\",\n    \"currency\": \"BUSD\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"9000000.00000000\",\n    \"min_total\": \"10.00000000\",\n    \"increment\": \"0.00000100\",\n    \"asset_increment\": \"1.00000000\",\n    \"label\": \"ONE/BUSD\"\n  }\n]"
  },
  {
    "path": "extensions/exchanges/binanceus/update-products.sh",
    "content": "#!/usr/bin/env node\nlet ccxt = require('ccxt')\n\nnew ccxt.binanceus().fetch_markets().then(function(markets) {\n  var products = []\n\n  var products = markets.map(function (market) {\n    const filters = market.info.filters\n    const price_filter = filters.find(f => f.filterType === 'PRICE_FILTER')\n    const lot_size_filter = filters.find(f => f.filterType === 'LOT_SIZE')\n    const notional_filter = filters.find(f => f.filterType === 'MIN_NOTIONAL')\n\n    // NOTE: price_filter also contains minPrice and maxPrice\n    return {\n      id: market.id,\n      asset: market.base,\n      currency: market.quote,\n      min_size: lot_size_filter.minQty,\n      max_size: lot_size_filter.maxQty,\n      min_total: notional_filter.minNotional,\n      increment: price_filter.tickSize,\n      asset_increment: lot_size_filter.stepSize,\n      label: market.base + '/' + market.quote\n    }\n  })\n\n  var target = require('path').resolve(__dirname, 'products.json')\n  require('fs').writeFileSync(target, JSON.stringify(products, null, 2))\n  console.log('wrote', target)\n  process.exit()\n})\n"
  },
  {
    "path": "extensions/exchanges/bitfinex/exchange.js",
    "content": "const BFX = require('bitfinex-api-node')\nvar minimist = require('minimist')\n  , path = require('path')\n  , n = require('numbro')\n\nmodule.exports = function bitfinex(conf) {\n  var s = { options: minimist(process.argv) }\n  var so = s.options\n\n  var ws_connecting = false\n  var ws_connected = false\n  var ws_timeout = 60000\n  var ws_retry = 10000\n  const getTrades_timeout = 2000\n\n  var pair, public_client, ws_client\n\n  var ws_trades = []\n  var ws_balance = []\n  var ws_orders = []\n  var ws_ticker = []\n  var ws_hb = []\n  var ws_walletCalcDone = []\n  var heartbeat_interval\n\n  function publicClient() {\n    if (!public_client) public_client = new BFX().rest(2, { transform: true })\n    return public_client\n  }\n\n  function wsUpdateTrades(pair, trades) {\n    trades.forEach(function (trade) {\n      var newTrade = {\n        trade_id: Number(trade.id),\n        time: Number(trade.mts),\n        size: Math.abs(trade.amount),\n        price: Number(trade.price),\n        side: trade.amount > 0 ? 'buy' : 'sell'\n      }\n      ws_trades.push(newTrade)\n    })\n\n    if (ws_trades.length > 1010)\n      ws_trades.shift()\n  }\n\n  function wsUpdateTicker(pair, ticker) {\n    ws_ticker = ticker\n  }\n\n  function wsMessage(message) {\n    console.log(message)\n    if (message[0] != 'undefined')\n      ws_hb[message[0]] = Date.now()\n  }\n\n  function wsUpdateOrder(ws_order) {\n    var cid = ws_order[2]\n\n    // https://bitfinex.readme.io/v2/reference#ws-auth-orders\n    var order = ws_orders['~' + cid]\n    if (!order) {\n      if (so.debug) console.warn(('\\nWarning: Order ' + cid + ' not found in cache for wsUpdateOrder (manual order?).').red)\n      return\n    }\n\n    if (ws_order[13] === 'ACTIVE' || ws_order[13].match(/^PARTIALLY FILLED/)) {\n      order.status = 'open'\n    } else if (ws_order[13].match(/^EXECUTED/)) {\n      order.status = 'done'\n    } else if (ws_order[13] === 'CANCELED') {\n      order.status = 'rejected'\n    } else if (ws_order[13] === 'POSTONLY CANCELED') {\n      order.status = 'rejected'\n      order.reject_reason = 'post only'\n    }\n\n    order.bitfinex_id = ws_order[0]\n    order.created_at = ws_order[4]\n    order.filled_size = n(ws_order[7]).subtract(ws_order[6]).format('0.00000000')\n    order.bitfinex_status = ws_order[13]\n    order.price = ws_order[16]\n    order.price_avg = ws_order[17]\n\n    ws_orders['~' + cid] = order\n  }\n\n  function wsUpdateOrderCancel(ws_order) {\n    var cid = ws_order[2]\n\n    if (!ws_orders['~' + cid]) {\n      if (so.debug) console.warn(('\\nWarning: Order ' + cid + ' not found in cache for wsUpdateOrderCancel (manual order?).').red)\n      return\n    }\n\n    if (ws_order[13].match(/^INSUFFICIENT MARGIN/)) {\n      ws_orders['~' + cid].status = 'rejected'\n      ws_orders['~' + cid].reject_reason = 'balance'\n    }\n\n    setTimeout(function () {\n      delete (ws_orders['~' + cid])\n    }, 60000 * 60 * 12)\n\n    wsUpdateOrder(ws_order)\n  }\n\n  function wsUpdateReqOrder(error) {\n    if (error[6] === 'ERROR' && error[7].match(/^Invalid order: not enough .* balance for/)) {\n      var cid = error[4][2]\n\n      if (!ws_orders['~' + cid]) {\n        if (so.debug) console.warn(('\\nWarning: Order ' + cid + ' not found in cache for wsUpdateReqOrder (manual order?).').red)\n        return\n      }\n\n      ws_orders['~' + cid].status = 'rejected'\n      ws_orders['~' + cid].reject_reason = 'balance'\n    }\n    if (error[6] === 'ERROR' && error[7] === 'Invalid price.') {\n      cid = error[4][2]\n\n      if (!ws_orders['~' + cid]) {\n        if (so.debug) console.warn(('\\nWarning: Order ' + cid + ' not found in cache for wsUpdateReqOrder (manual order?).').red)\n        return\n      }\n\n      if (so.debug) console.log(ws_orders['~' + cid])\n\n      ws_orders['~' + cid].status = 'rejected'\n      ws_orders['~' + cid].reject_reason = 'price'\n    }\n  }\n\n  function updateWallet(wallets) {\n    if (typeof (wallets[0]) !== 'object') wallets = [wallets]\n\n    wallets.forEach(function (wallet) {\n      if (wallet['type'] === conf.bitfinex.wallet) {\n        ws_balance[wallet['currency'].toUpperCase()] = {}\n        ws_balance[wallet['currency'].toUpperCase()].balance = wallet['balance']\n        ws_balance[wallet['currency'].toUpperCase()].available = wallet['balanceAvailable'] ? wallet['balanceAvailable'] : 0\n        ws_balance[wallet['currency'].toUpperCase()].wallet = wallet['type']\n\n        if (wallet['balanceAvailable'] !== null) {\n          ws_walletCalcDone[wallet['currency']] = true\n        }\n      }\n    })\n  }\n\n  function wsConnect() {\n    if (ws_connected || ws_connecting) return\n    ws_client.open()\n    ws_connecting = true\n  }\n\n  function wsSubscribed(event) {\n    // We only use the 'trades' channel for heartbeats. That one should be most frequently updated.\n    if (event.channel === 'trades') {\n      ws_hb[event.chanId] = Date.now()\n\n      heartbeat_interval = setInterval(function () {\n        if (ws_hb[event.chanId]) {\n          var timeoutThreshold = (Number(Date.now()) - ws_timeout)\n          if (timeoutThreshold > ws_hb[event.chanId]) {\n            console.warn(('\\nWebSockets Warning: No message on channel \\'trade\\' within ' + ws_timeout / 1000 + ' seconds, reconnecting...').red)\n            ws_client.close()\n          }\n        }\n      }, ws_timeout)\n    }\n  }\n\n  function wsClose() {\n    ws_connecting = false\n    ws_connected = false\n    clearInterval(heartbeat_interval)\n\n    console.error(('\\nWebSockets Error: Connection closed.').red + ' Retrying every ' + (ws_retry / 1000 + ' seconds').yellow + '.')\n  }\n\n  function wsError(e) {\n    console.warn(e)\n\n    ws_connecting = false\n    ws_connected = false\n\n    if (e.event == 'auth' && e.status == 'FAILED') {\n      var errorMessage = ('\\nWebSockets Warning: Authentication ' + e.status + ' (Reason: \"' + e.msg + '\").').red\n      if (e.msg == 'apikey: invalid') errorMessage = errorMessage + '\\nEither your API key is invalid or you tried reconnecting to quickly. Wait and/or check your API keys.'\n      console.warn(errorMessage)\n      ws_client.close()\n    }\n    else {\n      ws_client.close()\n    }\n  }\n\n  function wsClient() {\n    if (!ws_client) {\n      if (!conf.bitfinex || !conf.bitfinex.key || conf.bitfinex.key === 'YOUR-API-KEY') {\n        throw new Error('please configure your Bitfinex credentials in ' + path.resolve(__dirname, 'conf.js'))\n      }\n      ws_connected = false\n\n      ws_client = new BFX({ apiKey: conf.bitfinex.key, apiSecret: conf.bitfinex.secret, transform: true }).ws()\n\n      ws_client.on('error', (err) => wsError(err))\n      ws_client.on('open', ws_client.auth.bind(ws_client))\n      ws_client.on('close', wsClose)\n      ws_client.on('subscribed', wsSubscribed)\n\n      ws_client.once('auth', () => {\n        if (so.debug) {\n          console.log(('\\nWebSockets: We are now fully connected and authenticated.').green)\n        }\n        ws_connecting = false\n        ws_connected = true\n\n        ws_client.subscribeTrades(pair)\n        ws_client.subscribeTicker(pair)\n        ws_client.onWalletSnapshot({}, (wallets) => updateWallet(wallets))\n        ws_client.onWalletUpdate({}, (wallets) => updateWallet(wallets))\n        ws_client.onTicker({}, (ticker) => wsUpdateTicker(pair, ticker))\n        ws_client.onMessage({}, (msg) => wsMessage(msg))\n        ws_client.onTrades({}, (trades) => wsUpdateTrades(pair, trades))\n        ws_client.onOrderUpdate({}, (order) => {\n          if (order['type'] == 'oc') {\n            wsUpdateOrderCancel(order)\n          } else {\n            wsUpdateOrder(order)\n          }\n        })\n        ws_client.onMarginInfoUpdate({}, (symbol) => marginSymbolWebsocket(symbol))\n        ws_client.onPositionSnapshot({}, (positions) => assetPositionMargin(positions))\n        ws_client.onNotification({ type: 'on-req' }, (order) => wsUpdateReqOrder(order))\n      })\n\n      // we need also more position updates here, but messages are completely undocumented\n      // https://bitfinex.readme.io/v1/reference#ws-auth-position-updates\n      // <pn|pu|pc> possible only \"pu\" for update\n\n      setInterval(function () {\n        wsConnect()\n      }, ws_retry)\n    }\n  }\n\n  /**\n   *\n   * @param position ['tXRPUSD']\n   * @returns {string}\n   */\n  function assetPositionMarginAssetExtract(position) {\n    let pair = position[0]\n\n    // tXRPUSD\n    if (pair.substring(0, 1) === 't') {\n      pair = pair.substring(1)\n    }\n\n    return pair.substring(0, pair.length - 3)\n  }\n\n  /**\n   * We have no wallet on margin orders; fake current asset capital via open position\n   *\n   * @param positions\n   * @see https://bitfinex.readme.io/v1/reference#ws-auth-position-snapshot\n   */\n  function assetPositionMargin(positions) {\n    // skip non margin\n    if (conf.bitfinex.wallet !== 'margin') {\n      return\n    }\n\n    // current positions in request\n    // we need it for clear\n    let assets = []\n\n    positions.filter(function (position) {\n      return position.length > 2\n    }).forEach(function (position) {\n      let asset = assetPositionMarginAssetExtract(position)\n      if (!ws_balance[asset]) {\n        ws_balance[asset] = {}\n      }\n\n      assets.push(asset)\n\n      let action = position[1].toLowerCase()\n\n      if (action === 'active') {\n        ws_balance[asset].balance = position[2]\n        ws_balance[asset].available = position[2]\n        ws_balance[asset].wallet = 'margin'\n      } else if (action === 'closed') {\n        ws_balance[asset].balance = 0\n        ws_balance[asset].available = 0\n        ws_balance[asset].wallet = 'margin'\n      }\n    })\n\n    // clear non open positions; which are not existing anymore\n    for (let key in ws_balance) {\n      if (assets.indexOf(key) < 0 && ws_balance[key]) {\n        ws_balance[key].balance = 0\n        ws_balance[key].available = 0\n\n        if (so.debug) {\n          console.log('Clear asset: ' + JSON.stringify(ws_balance[key]))\n        }\n      }\n    }\n  }\n\n  function joinProduct(product_id) {\n    return product_id.split('-')[0] + '' + product_id.split('-')[1]\n  }\n\n  function retry(method, args, cb) {\n    setTimeout(function () {\n      exchange[method].call(exchange, args, cb)\n    }, ws_retry)\n  }\n\n  function waitForCalc(method, args, cb) {\n    setTimeout(function () {\n      exchange[method].call(exchange, args, cb)\n    }, 50)\n  }\n\n  function marginSymbolWebsocket(symbol) {\n    /*\n    [ 'sym',\n    'tBTCUSD',\n    [ 101.11144665, // \"all\" - \"active positions\"\n      179.11144665, // \"all\"\n      78.11144665, // \"all\" - \"active positions\" - \"active unfilled orders\"\n      78.11144665, // \"all\" - \"active positions\" - \"active unfilled orders\" ?\n      null,\n      null,\n      null,\n      null\n   ]\n    */\n\n    if (symbol[0] !== 'sym') {\n      return\n    }\n\n    // tBTCUSD\n    if (symbol[1].substring(0, 1) !== 't') {\n      return\n    }\n\n    let pair = symbol[1].substring(1)\n\n    // not nice but values are not splitted\n    // \"tBTCUSD\" extract => \"USD\"\n    // \"tDASHUSD\" extract => \"USD\"\n    let currency = symbol[1].substring(symbol[1].length - 3)\n\n    // which array index to use to get available balance? :)\n    ws_balance[currency].available = symbol[2][0]\n    ws_balance[currency].balance = symbol[2][0]\n\n    ws_walletCalcDone[pair] = true\n  }\n\n  function updateBalance(opts) {\n    switch (conf.bitfinex.wallet) {\n      case 'margin':\n        try {\n          ws_walletCalcDone[opts.asset] = 'inProgress'\n          ws_walletCalcDone[opts.currency] = 'inProgress'\n\n          ws_client.send([0, 'calc', null, [\n            ['margin_base'],\n            ['margin_sym_' + opts.asset.toUpperCase() + opts.currency.toUpperCase()],\n            ['funding_sym_' + opts.currency.toUpperCase()],\n          ]])\n        } catch (e) {\n          if (so.debug) {\n            console.warn(e)\n            console.warn(('\\nWebSockets Warning: Cannot send \\'calc\\' for getBalance update (maybe connection not open?).').red + ' Waiting for reconnect.')\n          }\n        }\n\n        break\n\n      case 'exchange':\n        try {\n          ws_walletCalcDone[opts.asset] = 'inProgress'\n          ws_walletCalcDone[opts.currency] = 'inProgress'\n\n          ws_client.send([0, 'calc', null, [\n            ['wallet_exchange_' + opts.currency],\n            ['wallet_exchange_' + opts.asset]\n          ]])\n        } catch (e) {\n          if (so.debug) {\n            console.warn(e)\n            console.warn(('\\nWebSockets Warning: Cannot send \\'calc\\' for getBalance update (maybe connection not open?).').red + ' Waiting for reconnect.')\n          }\n        }\n\n        break\n      default:\n        console.log('not supported wallet:' + opts.wallet)\n    }\n  }\n\n  var exchange = {\n    name: 'bitfinex',\n    historyScan: 'backward',\n    historyScanUsesTime: true,\n    makerFee: 0.1,\n    takerFee: 0.2,\n\n    getProducts: function () {\n      return require('./products.json')\n    },\n\n    getTrades: function (opts, cb) {\n      if (!pair) { pair = joinProduct(opts.product_id) }\n\n      // Backfilling using the REST API\n      if (opts.to || opts.to === null) {\n        setTimeout(function () {\n          var client = publicClient()\n          var args = {}\n          args.sort = -1 //backward\n          args.limit = 1000 //this is max\n          if (opts.from) {\n            args.start = opts.from\n          }\n          else if (opts.to) {\n            args.end = opts.to\n          }\n          else if (args.start && !args.end) {\n            args.end = args.start + 500000\n          }\n          else if (args.end && !args.start) {\n            args.start = args.end - 500000\n          }\n          const tpair = 't' + joinProduct(opts.product_id)\n          client.trades(tpair, args.start, args.end, args.limit, args.sort, function (err, body) {\n            if (err) {\n              if (err.statusCode !== 500) {\n                console.log(err.message, 'retrying...')\n                return retry('getTrades', opts, cb)\n              } else {\n                cb(err)\n              }\n            }\n            var trades = body.map(function (trade) {\n              return {\n                trade_id: trade.id,\n                time: trade.mts,\n                size: Math.abs(trade.amount),\n                price: trade.price,\n                side: trade.amount > 0 ? 'buy' : 'sell'\n              }\n            })\n            if (so.debug && trades.length > 0) console.log(new Date().toISOString(), 'got trade count ', trades.length, ' range: ',\n              new Date(trades[trades.length - 1].time).toISOString(), '-', new Date(trades[0].time).toISOString())\n            cb(null, trades)\n          })\n          // only 1 request per second allowed https://bitcoin.stackexchange.com/questions/36952/bitfinex-api-limit\n          // but during testing I have discovered that 1 second is not enough, so double timeout looks better\n        }, getTrades_timeout)\n      } else {\n        // We're live now (i.e. opts.from is set), use websockets\n        if (!ws_client) { wsClient() }\n        if (typeof (ws_trades) === 'undefined') { return retry('getTrades', opts, cb) }\n        var trades = ws_trades.filter(function (trade) { return trade.time >= opts.from })\n        cb(null, trades)\n      }\n    },\n\n    getBalance: function (opts, cb) {\n      if (!pair) {\n        pair = joinProduct(opts.asset + '-' + opts.currency)\n      }\n\n      if (pair && !ws_walletCalcDone) {\n        ws_walletCalcDone = {}\n        ws_walletCalcDone[opts.asset] = false\n        ws_walletCalcDone[opts.currency] = false\n      }\n\n      if (!ws_client) {\n        wsClient()\n      }\n\n      if (Object.keys(ws_balance).length === 0) {\n        if (so.debug && ws_connected === true) {\n          console.warn(('WebSockets Warning: Waiting for initial websockets snapshot.').red + ' Retrying in ' + (ws_retry / 1000 + ' seconds').yellow + '.')\n        }\n        return retry('getBalance', opts, cb)\n      }\n\n      if (ws_walletCalcDone[opts.asset] === false && ws_walletCalcDone[opts.currency] === false) {\n        updateBalance(opts)\n        return waitForCalc('getBalance', opts, cb)\n      } else if (\n        (ws_walletCalcDone[opts.asset] === false && ws_walletCalcDone[opts.currency] === true) ||\n        (ws_walletCalcDone[opts.asset] === true && ws_walletCalcDone[opts.currency] === false)\n      ) {\n        return waitForCalc('getBalance', opts, cb)\n      } else {\n        let balance = {}\n\n        balance.currency = ws_balance[opts.currency] && ws_balance[opts.currency].balance ? n(ws_balance[opts.currency].balance).format('0.00000000') : n(0).format('0.00000000')\n        balance.asset = ws_balance[opts.asset] && ws_balance[opts.asset].balance ? n(ws_balance[opts.asset].balance).format('0.00000000') : n(0).format('0.00000000')\n\n        balance.currency_hold = ws_balance[opts.currency] && ws_balance[opts.currency].available ? n(ws_balance[opts.currency].balance).subtract(ws_balance[opts.currency].available).format('0.00000000') : n(0).format('0.00000000')\n        balance.asset_hold = ws_balance[opts.asset] && ws_balance[opts.asset].available ? n(ws_balance[opts.asset].balance).subtract(ws_balance[opts.asset].available).format('0.00000000') : n(0).format('0.00000000')\n\n        ws_walletCalcDone[opts.asset] = false\n        ws_walletCalcDone[opts.currency] = false\n\n        cb(null, balance)\n      }\n    },\n\n    getQuote: function (opts, cb) {\n      cb(null, { bid: String(ws_ticker.bid), ask: String(ws_ticker.ask) })\n    },\n\n    cancelOrder: function (opts, cb) {\n      var order = ws_orders['~' + opts.order_id]\n      ws_orders['~' + opts.order_id].reject_reason = 'zenbot cancel'\n\n      var ws_cancel_order = [\n        0,\n        'oc',\n        null,\n        {\n          id: order.bitfinex_id\n        }\n      ]\n\n      try {\n        ws_client.send(ws_cancel_order)\n      }\n      catch (e) {\n        if (so.debug) {\n          console.warn(e)\n          console.warn(('\\nWebSockets Warning: Cannot send cancelOrder (maybe connection not open?).').red + ' Retrying in ' + (ws_retry / 1000 + ' seconds').yellow + '.')\n        }\n        return retry('cancelOrder', opts, cb)\n      }\n      cb()\n    },\n\n    trade: function (action, opts, cb) {\n      if (!pair) { pair = joinProduct(opts.product_id) }\n      var symbol = 't' + pair\n\n      if (!ws_client) { wsClient() }\n\n      var cid = Math.round(((new Date()).getTime()).toString() * Math.random())\n      var amount = action === 'buy' ? opts.size : opts.size * -1\n      var price = opts.price\n\n      // only exchange need a prefix; no needed for margin\n      let walletName = conf.bitfinex.wallet.toUpperCase() === 'EXCHANGE' ? 'EXCHANGE ' : ''\n\n      if (opts.order_type === 'maker' && typeof opts.type === 'undefined') {\n        opts.type = walletName + 'LIMIT'\n      } else if (opts.order_type === 'taker' && typeof opts.type === 'undefined') {\n        opts.type = walletName + 'MARKET'\n      }\n\n      if (typeof opts.post_only === 'undefined') {\n        opts.post_only = true\n      }\n\n      var type = opts.type\n      var is_postonly = opts.post_only\n\n      var order = {\n        id: cid,\n        bitfinex_id: null,\n        status: 'open',\n        price: opts.price,\n        size: opts.size,\n        post_only: !!opts.post_only,\n        created_at: new Date().getTime(),\n        filled_size: 0,\n        ordertype: opts.order_type\n      }\n\n      var ws_order = [\n        0,\n        'on',\n        null,\n        {\n          cid: cid,\n          type: type,\n          symbol: symbol,\n          amount: String(amount),\n          price: price,\n          hidden: 0,\n          postonly: is_postonly ? 1 : 0\n        }\n      ]\n\n      try {\n        ws_client.send(ws_order)\n      }\n      catch (e) {\n        if (so.debug) {\n          console.warn(e)\n          console.warn(('\\nWebSockets Warning: Cannot send trade (maybe connection not open?).').red + (' Orders are sensitive, we\\'re marking this one as rejected and will not just repeat the order automatically.').yellow)\n        }\n\n        order.status = 'rejected'\n        order.reject_reason = 'could not send order over websockets'\n      }\n      ws_orders['~' + cid] = order\n\n      return cb(null, order)\n    },\n\n    buy: function (opts, cb) {\n      exchange.trade('buy', opts, cb)\n    },\n\n    sell: function (opts, cb) {\n      exchange.trade('sell', opts, cb)\n    },\n\n    getOrder: function (opts, cb) {\n      var order = ws_orders['~' + opts.order_id]\n\n      if (!order) {\n        return cb(new Error('order id ' + opts.order_id + ' not found'))\n      }\n\n      if (order.status === 'rejected' && order.reject_reason === 'post only') {\n        return cb(null, order)\n      } else if (order.status === 'rejected' && order.reject_reason === 'zenbot canceled') {\n        return cb(null, order)\n      }\n\n      if (order.status == 'done') {\n        order.done_at = new Date().getTime()\n        return cb(null, order)\n      }\n\n      cb(null, order)\n    },\n\n    // return the property used for range querying.\n    getCursor: function (trade) {\n      return (trade.time || trade)\n    }\n  }\n  return exchange\n}\n"
  },
  {
    "path": "extensions/exchanges/bitfinex/products.json",
    "content": "[\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": \"2000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"BTC/USD\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.04\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"LTC/USD\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.04\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"LTC/BTC\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.006\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"ETH/USD\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.006\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ETH/BTC\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.4\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"ETC/BTC\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.4\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.0001\",\n    \"label\": \"ETC/USD\"\n  },\n  {\n    \"asset\": \"RRT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"62.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"RRT/USD\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.04\",\n    \"max_size\": \"20000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"ZEC/USD\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.04\",\n    \"max_size\": \"20000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ZEC/BTC\"\n  },\n  {\n    \"asset\": \"XMR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.02\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"XMR/USD\"\n  },\n  {\n    \"asset\": \"XMR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.02\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"XMR/BTC\"\n  },\n  {\n    \"asset\": \"DSH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.02\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"DSH/USD\"\n  },\n  {\n    \"asset\": \"DSH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.02\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"DSH/BTC\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": \"2000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BTC/EUR\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"JPY\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": \"2000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BTC/JPY\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"8.0\",\n    \"max_size\": \"2000000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"XRP/USD\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"8.0\",\n    \"max_size\": \"2000000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"XRP/BTC\"\n  },\n  {\n    \"asset\": \"IOT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"8.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"IOT/USD\"\n  },\n  {\n    \"asset\": \"IOT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"8.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"IOT/BTC\"\n  },\n  {\n    \"asset\": \"IOT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"8.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"IOT/ETH\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.8\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0001\",\n    \"label\": \"EOS/USD\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.8\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"EOS/BTC\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.8\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"EOS/ETH\"\n  },\n  {\n    \"asset\": \"SAN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"14.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"SAN/USD\"\n  },\n  {\n    \"asset\": \"SAN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"14.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"SAN/BTC\"\n  },\n  {\n    \"asset\": \"SAN\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"14.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"SAN/ETH\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.6\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.0001\",\n    \"label\": \"OMG/USD\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.6\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"OMG/BTC\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.6\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"OMG/ETH\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.0001\",\n    \"label\": \"NEO/USD\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"NEO/BTC\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"NEO/ETH\"\n  },\n  {\n    \"asset\": \"ETP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"12.0\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"ETP/USD\"\n  },\n  {\n    \"asset\": \"ETP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"12.0\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETP/BTC\"\n  },\n  {\n    \"asset\": \"ETP\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"12.0\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETP/ETH\"\n  },\n  {\n    \"asset\": \"QTM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.8\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.0001\",\n    \"label\": \"QTM/USD\"\n  },\n  {\n    \"asset\": \"QTM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.8\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"QTM/BTC\"\n  },\n  {\n    \"asset\": \"EDO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"4.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"EDO/USD\"\n  },\n  {\n    \"asset\": \"EDO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"4.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EDO/BTC\"\n  },\n  {\n    \"asset\": \"EDO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"4.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EDO/ETH\"\n  },\n  {\n    \"asset\": \"BTG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.0001\",\n    \"label\": \"BTG/USD\"\n  },\n  {\n    \"asset\": \"BTG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"BTG/BTC\"\n  },\n  {\n    \"asset\": \"DAT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"48.0\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"DAT/USD\"\n  },\n  {\n    \"asset\": \"DAT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"48.0\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000000001\",\n    \"label\": \"DAT/BTC\"\n  },\n  {\n    \"asset\": \"QSH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"52.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"QSH/USD\"\n  },\n  {\n    \"asset\": \"YYW\",\n    \"currency\": \"USD\",\n    \"min_size\": \"228.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"YYW/USD\"\n  },\n  {\n    \"asset\": \"GNT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"20.0\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"GNT/USD\"\n  },\n  {\n    \"asset\": \"SNT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"82.0\",\n    \"max_size\": \"500000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"SNT/USD\"\n  },\n  {\n    \"asset\": \"IOT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"8.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"IOT/EUR\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"8.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"BAT/USD\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"8.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BAT/BTC\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"8.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BAT/ETH\"\n  },\n  {\n    \"asset\": \"MNA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"24.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"MNA/USD\"\n  },\n  {\n    \"asset\": \"MNA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"24.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"MNA/BTC\"\n  },\n  {\n    \"asset\": \"FUN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"656.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"FUN/USD\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"6.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"ZRX/USD\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"6.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ZRX/BTC\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"6.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ZRX/ETH\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"74.0\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"TRX/USD\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"74.0\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.000000001\",\n    \"label\": \"TRX/BTC\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"74.0\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.000000001\",\n    \"label\": \"TRX/ETH\"\n  },\n  {\n    \"asset\": \"SNG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"276.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"SNG/USD\"\n  },\n  {\n    \"asset\": \"REP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"1000.0\",\n    \"increment\": \"0.0001\",\n    \"label\": \"REP/USD\"\n  },\n  {\n    \"asset\": \"REP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"1000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"REP/BTC\"\n  },\n  {\n    \"asset\": \"NEC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"12.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"NEC/USD\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": \"2000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BTC/GBP\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.006\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ETH/EUR\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"JPY\",\n    \"min_size\": \"0.006\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ETH/JPY\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.006\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ETH/GBP\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"NEO/EUR\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"JPY\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"NEO/JPY\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"NEO/GBP\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.8\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"EOS/EUR\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"JPY\",\n    \"min_size\": \"0.8\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"EOS/JPY\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.8\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"EOS/GBP\"\n  },\n  {\n    \"asset\": \"IOT\",\n    \"currency\": \"JPY\",\n    \"min_size\": \"8.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"IOT/JPY\"\n  },\n  {\n    \"asset\": \"IOT\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"8.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"IOT/GBP\"\n  },\n  {\n    \"asset\": \"REQ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"92.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"REQ/USD\"\n  },\n  {\n    \"asset\": \"LRC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"LRC/USD\"\n  },\n  {\n    \"asset\": \"WAX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"50.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"WAX/USD\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"DAI/USD\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"DAI/BTC\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"DAI/ETH\"\n  },\n  {\n    \"asset\": \"BFT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"232.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"BFT/USD\"\n  },\n  {\n    \"asset\": \"ODE\",\n    \"currency\": \"USD\",\n    \"min_size\": \"92.0\",\n    \"max_size\": \"200000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ODE/USD\"\n  },\n  {\n    \"asset\": \"ANT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.6\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.0001\",\n    \"label\": \"ANT/USD\"\n  },\n  {\n    \"asset\": \"ANT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.6\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"ANT/BTC\"\n  },\n  {\n    \"asset\": \"ANT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.6\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"ANT/ETH\"\n  },\n  {\n    \"asset\": \"STJ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"4.0\",\n    \"max_size\": \"30000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"STJ/USD\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"28.0\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"XLM/USD\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"28.0\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"XLM/BTC\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"28.0\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"XLM/ETH\"\n  },\n  {\n    \"asset\": \"XVG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"472.0\",\n    \"max_size\": \"1500000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"XVG/USD\"\n  },\n  {\n    \"asset\": \"MKR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.004\",\n    \"max_size\": \"250.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"MKR/USD\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"KNC/USD\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"20000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"KNC/BTC\"\n  },\n  {\n    \"asset\": \"POA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"80.0\",\n    \"max_size\": \"150000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"POA/USD\"\n  },\n  {\n    \"asset\": \"LYM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"904.0\",\n    \"max_size\": \"400000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"LYM/USD\"\n  },\n  {\n    \"asset\": \"UTK\",\n    \"currency\": \"USD\",\n    \"min_size\": \"14.0\",\n    \"max_size\": \"300000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"UTK/USD\"\n  },\n  {\n    \"asset\": \"VEE\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1332.0\",\n    \"max_size\": \"5000000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"VEE/USD\"\n  },\n  {\n    \"asset\": \"ORS\",\n    \"currency\": \"USD\",\n    \"min_size\": \"180.0\",\n    \"max_size\": \"500000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"ORS/USD\"\n  },\n  {\n    \"asset\": \"ZCN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"8.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"ZCN/USD\"\n  },\n  {\n    \"asset\": \"ESS\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2046.0\",\n    \"max_size\": \"20000000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"ESS/USD\"\n  },\n  {\n    \"asset\": \"IQX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"986.0\",\n    \"max_size\": \"100000000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"IQX/USD\"\n  },\n  {\n    \"asset\": \"ZIL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"104.0\",\n    \"max_size\": \"1500000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ZIL/USD\"\n  },\n  {\n    \"asset\": \"ZIL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"748.0\",\n    \"max_size\": \"1500000.0\",\n    \"increment\": \"0.0000000001\",\n    \"label\": \"ZIL/BTC\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"20000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"BNT/USD\"\n  },\n  {\n    \"asset\": \"XRA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"204.0\",\n    \"max_size\": \"500000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"XRA/USD\"\n  },\n  {\n    \"asset\": \"DGX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.04\",\n    \"max_size\": \"750.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"DGX/USD\"\n  },\n  {\n    \"asset\": \"VET\",\n    \"currency\": \"USD\",\n    \"min_size\": \"156.0\",\n    \"max_size\": \"5000000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"VET/USD\"\n  },\n  {\n    \"asset\": \"VET\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"156.0\",\n    \"max_size\": \"5000000.0\",\n    \"increment\": \"0.0000000001\",\n    \"label\": \"VET/BTC\"\n  },\n  {\n    \"asset\": \"GOT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"32.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"GOT/USD\"\n  },\n  {\n    \"asset\": \"GOT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"32.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000000001\",\n    \"label\": \"GOT/EUR\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.0001\",\n    \"label\": \"XTZ/USD\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"XTZ/BTC\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"74.0\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.000000001\",\n    \"label\": \"TRX/EUR\"\n  },\n  {\n    \"asset\": \"YGG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"12046.0\",\n    \"max_size\": \"8000000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"YGG/USD\"\n  },\n  {\n    \"asset\": \"MLN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.06\",\n    \"max_size\": \"500000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"MLN/USD\"\n  },\n  {\n    \"asset\": \"OMN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.6\",\n    \"max_size\": \"20000.0\",\n    \"increment\": \"0.0001\",\n    \"label\": \"OMN/USD\"\n  },\n  {\n    \"asset\": \"OMN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.6\",\n    \"max_size\": \"20000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"OMN/BTC\"\n  },\n  {\n    \"asset\": \"PNK\",\n    \"currency\": \"USD\",\n    \"min_size\": \"26.0\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"PNK/USD\"\n  },\n  {\n    \"asset\": \"PNK\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"26.0\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"PNK/ETH\"\n  },\n  {\n    \"asset\": \"DGB\",\n    \"currency\": \"USD\",\n    \"min_size\": \"76.0\",\n    \"max_size\": \"2500000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"DGB/USD\"\n  },\n  {\n    \"asset\": \"BSV\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.02\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"BSV/USD\"\n  },\n  {\n    \"asset\": \"BSV\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.02\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BSV/BTC\"\n  },\n  {\n    \"asset\": \"ENJ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"12.0\",\n    \"max_size\": \"500000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"ENJ/USD\"\n  },\n  {\n    \"asset\": \"RBT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": \"500.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"RBT/USD\"\n  },\n  {\n    \"asset\": \"RBT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": \"500.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"RBT/BTC\"\n  },\n  {\n    \"asset\": \"UST\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"5000000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"UST/USD\"\n  },\n  {\n    \"asset\": \"EUT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUT/EUR\"\n  },\n  {\n    \"asset\": \"EUT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"EUT/USD\"\n  },\n  {\n    \"asset\": \"UDC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"UDC/USD\"\n  },\n  {\n    \"asset\": \"TSD\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"TSD/USD\"\n  },\n  {\n    \"asset\": \"PAX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"PAX/USD\"\n  },\n  {\n    \"asset\": \"PAS\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1586.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"PAS/USD\"\n  },\n  {\n    \"asset\": \"VSY\",\n    \"currency\": \"USD\",\n    \"min_size\": \"100.0\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"VSY/USD\"\n  },\n  {\n    \"asset\": \"VSY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"100.0\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000000001\",\n    \"label\": \"VSY/BTC\"\n  },\n  {\n    \"asset\": \"BTT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"6036.0\",\n    \"max_size\": \"100000000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"BTT/USD\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": \"2000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BTC/UST\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.006\",\n    \"max_size\": \"2000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ETH/UST\"\n  },\n  {\n    \"asset\": \"CLO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"3696.0\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"CLO/USD\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.04\",\n    \"max_size\": \"2000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"LTC/UST\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.8\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"EOS/UST\"\n  },\n  {\n    \"asset\": \"GNO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.04\",\n    \"max_size\": \"1000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"GNO/USD\"\n  },\n  {\n    \"asset\": \"ATO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.4\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.0001\",\n    \"label\": \"ATO/USD\"\n  },\n  {\n    \"asset\": \"ATO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.4\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"ATO/BTC\"\n  },\n  {\n    \"asset\": \"ATO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.4\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"ATO/ETH\"\n  },\n  {\n    \"asset\": \"WBT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": \"10.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"WBT/USD\"\n  },\n  {\n    \"asset\": \"XCH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"30000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"XCH/USD\"\n  },\n  {\n    \"asset\": \"EUS\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"EUS/USD\"\n  },\n  {\n    \"asset\": \"LEO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"LEO/USD\"\n  },\n  {\n    \"asset\": \"LEO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"LEO/BTC\"\n  },\n  {\n    \"asset\": \"LEO\",\n    \"currency\": \"UST\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"LEO/UST\"\n  },\n  {\n    \"asset\": \"LEO\",\n    \"currency\": \"EOS\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"LEO/EOS\"\n  },\n  {\n    \"asset\": \"LEO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"LEO/ETH\"\n  },\n  {\n    \"asset\": \"ZBT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"6.0\",\n    \"max_size\": \"25000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"ZBT/USD\"\n  },\n  {\n    \"asset\": \"USK\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"USK/USD\"\n  },\n  {\n    \"asset\": \"GTX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"4.0\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"GTX/USD\"\n  },\n  {\n    \"asset\": \"KAN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"430.0\",\n    \"max_size\": \"500000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"KAN/USD\"\n  },\n  {\n    \"asset\": \"GTX\",\n    \"currency\": \"UST\",\n    \"min_size\": \"4.0\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"GTX/UST\"\n  },\n  {\n    \"asset\": \"KAN\",\n    \"currency\": \"UST\",\n    \"min_size\": \"430.0\",\n    \"max_size\": \"500000.0\",\n    \"increment\": \"0.0000000001\",\n    \"label\": \"KAN/UST\"\n  },\n  {\n    \"asset\": \"AMP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"25000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"AMP/USD\"\n  },\n  {\n    \"asset\": \"ALG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"6.0\",\n    \"max_size\": \"150000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"ALG/USD\"\n  },\n  {\n    \"asset\": \"ALG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"6.0\",\n    \"max_size\": \"150000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ALG/BTC\"\n  },\n  {\n    \"asset\": \"ALG\",\n    \"currency\": \"UST\",\n    \"min_size\": \"6.0\",\n    \"max_size\": \"150000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ALG/UST\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"XCH\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": \"25000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BTC/XCH\"\n  },\n  {\n    \"asset\": \"AMP\",\n    \"currency\": \"UST\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"25000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"AMP/UST\"\n  },\n  {\n    \"asset\": \"DUS\",\n    \"currency\": \"K:U\",\n    \"min_size\": \"38.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.000000001\",\n    \"label\": \"DUS/K:U\"\n  },\n  {\n    \"asset\": \"DUS\",\n    \"currency\": \"K:B\",\n    \"min_size\": \"38.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.000000001\",\n    \"label\": \"DUS/K:B\"\n  },\n  {\n    \"asset\": \"UOS\",\n    \"currency\": \"USD\",\n    \"min_size\": \"16.0\",\n    \"max_size\": \"400000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"UOS/USD\"\n  },\n  {\n    \"asset\": \"UOS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"16.0\",\n    \"max_size\": \"400000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"UOS/BTC\"\n  },\n  {\n    \"asset\": \"RRB\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"RRB/USD\"\n  },\n  {\n    \"asset\": \"RRB\",\n    \"currency\": \"UST\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"RRB/UST\"\n  },\n  {\n    \"asset\": \"AMP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"25000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"AMP/BTC\"\n  },\n  {\n    \"asset\": \"FTT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.6\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0001\",\n    \"label\": \"FTT/USD\"\n  },\n  {\n    \"asset\": \"FTT\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.6\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"FTT/UST\"\n  },\n  {\n    \"asset\": \"PAX\",\n    \"currency\": \"UST\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"PAX/UST\"\n  },\n  {\n    \"asset\": \"UDC\",\n    \"currency\": \"UST\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"UDC/UST\"\n  },\n  {\n    \"asset\": \"TSD\",\n    \"currency\": \"UST\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"TSD/UST\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \":CN\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BTC/:CN\"\n  },\n  {\n    \"asset\": \"UST\",\n    \"currency\": \":CN\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"UST/:CN\"\n  },\n  {\n    \"asset\": \"CNH\",\n    \"currency\": \":CN\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"500000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"CNH/:CN\"\n  },\n  {\n    \"asset\": \"CHZ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"128.0\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"CHZ/USD\"\n  },\n  {\n    \"asset\": \"CHZ\",\n    \"currency\": \"UST\",\n    \"min_size\": \"128.0\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000000001\",\n    \"label\": \"CHZ/UST\"\n  },\n  {\n    \"asset\": \"XAU\",\n    \"currency\": \"T:U\",\n    \"min_size\": \"0.002\",\n    \"max_size\": \"400.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"XAU/T:U\"\n  },\n  {\n    \"asset\": \"XAU\",\n    \"currency\": \"T:B\",\n    \"min_size\": \"0.002\",\n    \"max_size\": \"400.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"XAU/T:B\"\n  },\n  {\n    \"asset\": \"XAU\",\n    \"currency\": \"T:U\",\n    \"min_size\": \"0.002\",\n    \"max_size\": \"400.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"XAU/T:U\"\n  },\n  {\n    \"asset\": \"RIN\",\n    \"currency\": \"GX:\",\n    \"min_size\": \"18.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"RIN/GX:\"\n  },\n  {\n    \"asset\": \"BTS\",\n    \"currency\": \"E:U\",\n    \"min_size\": \"0.4\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"BTS/E:U\"\n  },\n  {\n    \"asset\": \"TES\",\n    \"currency\": \"TBT\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": \"100.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"TES/TBT\"\n  },\n  {\n    \"asset\": \"TES\",\n    \"currency\": \"TBT\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": \"100.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"TES/TBT\"\n  },\n  {\n    \"asset\": \"AAA\",\n    \"currency\": \"BBB\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"100.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"AAA/BBB\"\n  },\n  {\n    \"asset\": \"DOG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0004\",\n    \"max_size\": \"1000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"DOG/USD\"\n  },\n  {\n    \"asset\": \"DOG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.0004\",\n    \"max_size\": \"1000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"DOG/BTC\"\n  },\n  {\n    \"asset\": \"DOG\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.0004\",\n    \"max_size\": \"1000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"DOG/UST\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0001\",\n    \"label\": \"DOT/USD\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10.0\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"ADA/USD\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"10.0\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ADA/BTC\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"UST\",\n    \"min_size\": \"10.0\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ADA/UST\"\n  },\n  {\n    \"asset\": \"FET\",\n    \"currency\": \"USD\",\n    \"min_size\": \"18.0\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.00001\",\n    \"label\": \"FET/USD\"\n  },\n  {\n    \"asset\": \"FET\",\n    \"currency\": \"UST\",\n    \"min_size\": \"18.0\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"FET/UST\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"DOT/UST\"\n  },\n  {\n    \"asset\": \"LIN\",\n    \"currency\": \"K:U\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"LIN/K:U\"\n  },\n  {\n    \"asset\": \"LIN\",\n    \"currency\": \"K:U\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"LIN/K:U\"\n  },\n  {\n    \"asset\": \"COM\",\n    \"currency\": \"P:U\",\n    \"min_size\": \"0.008\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"COM/P:U\"\n  },\n  {\n    \"asset\": \"COM\",\n    \"currency\": \"P:U\",\n    \"min_size\": \"0.008\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"COM/P:U\"\n  },\n  {\n    \"asset\": \"KSM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.04\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"KSM/USD\"\n  },\n  {\n    \"asset\": \"KSM\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.04\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"KSM/UST\"\n  },\n  {\n    \"asset\": \"EGL\",\n    \"currency\": \"D:U\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"EGL/D:U\"\n  },\n  {\n    \"asset\": \"EGL\",\n    \"currency\": \"D:U\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"EGL/D:U\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0001\",\n    \"label\": \"UNI/USD\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"UNI/UST\"\n  },\n  {\n    \"asset\": \"BAN\",\n    \"currency\": \"D:U\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"BAN/D:U\"\n  },\n  {\n    \"asset\": \"BAN\",\n    \"currency\": \"D:U\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"BAN/D:U\"\n  },\n  {\n    \"asset\": \"AVA\",\n    \"currency\": \"X:U\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"AVA/X:U\"\n  },\n  {\n    \"asset\": \"AVA\",\n    \"currency\": \"X:U\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"AVA/X:U\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0001\",\n    \"label\": \"SNX/USD\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"SNX/UST\"\n  },\n  {\n    \"asset\": \"YFI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0001\",\n    \"max_size\": \"100.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"YFI/USD\"\n  },\n  {\n    \"asset\": \"YFI\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.0001\",\n    \"max_size\": \"100.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"YFI/UST\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.06\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"BAL/USD\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.06\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BAL/UST\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"DT:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"25000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"EOS/DT:\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"DT:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"25000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"EOS/DT:\"\n  },\n  {\n    \"asset\": \"NUT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"NUT/USD\"\n  },\n  {\n    \"asset\": \"DAP\",\n    \"currency\": \"P:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"DAP/P:U\"\n  },\n  {\n    \"asset\": \"DAP\",\n    \"currency\": \"P:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"DAP/P:U\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"FIL/USD\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"FIL/UST\"\n  },\n  {\n    \"asset\": \"JST\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"JST/USD\"\n  },\n  {\n    \"asset\": \"JST\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"JST/BTC\"\n  },\n  {\n    \"asset\": \"JST\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"JST/UST\"\n  },\n  {\n    \"asset\": \"IQX\",\n    \"currency\": \"UST\",\n    \"min_size\": \"986.0\",\n    \"max_size\": \"100000000.0\",\n    \"increment\": \"0.0000000001\",\n    \"label\": \"IQX/UST\"\n  },\n  {\n    \"asset\": \"HEZ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"HEZ/USD\"\n  },\n  {\n    \"asset\": \"HEZ\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"HEZ/UST\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"ABC\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BCH/ABC\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"N:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BCH/N:U\"\n  },\n  {\n    \"asset\": \"XDC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"XDC/USD\"\n  },\n  {\n    \"asset\": \"XDC\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"XDC/UST\"\n  },\n  {\n    \"asset\": \"PLU\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"PLU/USD\"\n  },\n  {\n    \"asset\": \"SUN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"SUN/USD\"\n  },\n  {\n    \"asset\": \"SUN\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"SUN/UST\"\n  },\n  {\n    \"asset\": \"UOP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"UOP/USD\"\n  },\n  {\n    \"asset\": \"UOP\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"UOP/UST\"\n  },\n  {\n    \"asset\": \"EUT\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"EUT/UST\"\n  },\n  {\n    \"asset\": \"XMR\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"XMR/UST\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"2000000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"XRP/UST\"\n  },\n  {\n    \"asset\": \"B21\",\n    \"currency\": \"X:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"B21/X:U\"\n  },\n  {\n    \"asset\": \"B21\",\n    \"currency\": \"X:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"B21/X:U\"\n  },\n  {\n    \"asset\": \"SUS\",\n    \"currency\": \"HI:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"SUS/HI:\"\n  },\n  {\n    \"asset\": \"SUS\",\n    \"currency\": \"HI:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"SUS/HI:\"\n  },\n  {\n    \"asset\": \"XSN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"XSN/USD\"\n  },\n  {\n    \"asset\": \"EXR\",\n    \"currency\": \"D:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"500000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"EXR/D:U\"\n  },\n  {\n    \"asset\": \"EXR\",\n    \"currency\": \"D:B\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"500000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"EXR/D:B\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.2\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"DOT/BTC\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"2X:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"2000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ETH/2X:\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"2X:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"2000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ETH/2X:\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"2X:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"2000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ETH/2X:\"\n  },\n  {\n    \"asset\": \"AAV\",\n    \"currency\": \"E:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"AAV/E:U\"\n  },\n  {\n    \"asset\": \"AAV\",\n    \"currency\": \"E:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"AAV/E:U\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"UST\",\n    \"min_size\": \"10.0\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"XLM/UST\"\n  },\n  {\n    \"asset\": \"EUS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUS/BTC\"\n  },\n  {\n    \"asset\": \"CTK\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"CTK/USD\"\n  },\n  {\n    \"asset\": \"CTK\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"CTK/UST\"\n  },\n  {\n    \"asset\": \"SOL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"SOL/USD\"\n  },\n  {\n    \"asset\": \"SOL\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"SOL/UST\"\n  },\n  {\n    \"asset\": \"BES\",\n    \"currency\": \"T:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BES/T:U\"\n  },\n  {\n    \"asset\": \"ALB\",\n    \"currency\": \"T:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ALB/T:U\"\n  },\n  {\n    \"asset\": \"ALB\",\n    \"currency\": \"T:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ALB/T:U\"\n  },\n  {\n    \"asset\": \"CEL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"CEL/USD\"\n  },\n  {\n    \"asset\": \"CEL\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"CEL/UST\"\n  },\n  {\n    \"asset\": \"SUK\",\n    \"currency\": \"U:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"SUK/U:U\"\n  },\n  {\n    \"asset\": \"SUK\",\n    \"currency\": \"U:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"SUK/U:U\"\n  },\n  {\n    \"asset\": \"BMI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"BMI/USD\"\n  },\n  {\n    \"asset\": \"BMI\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BMI/UST\"\n  },\n  {\n    \"asset\": \"MOB\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"MOB/USD\"\n  },\n  {\n    \"asset\": \"MOB\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"MOB/UST\"\n  },\n  {\n    \"asset\": \"NEA\",\n    \"currency\": \"R:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"25000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"NEA/R:U\"\n  },\n  {\n    \"asset\": \"NEA\",\n    \"currency\": \"R:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"25000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"NEA/R:U\"\n  },\n  {\n    \"asset\": \"BOS\",\n    \"currency\": \"ON:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BOS/ON:\"\n  },\n  {\n    \"asset\": \"BOS\",\n    \"currency\": \"ON:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BOS/ON:\"\n  },\n  {\n    \"asset\": \"LUN\",\n    \"currency\": \"A:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"LUN/A:U\"\n  },\n  {\n    \"asset\": \"LUN\",\n    \"currency\": \"A:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"LUN/A:U\"\n  },\n  {\n    \"asset\": \"ICE\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"25000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"ICE/USD\"\n  },\n  {\n    \"asset\": \"DOG\",\n    \"currency\": \"E:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1500000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"DOG/E:U\"\n  },\n  {\n    \"asset\": \"DOG\",\n    \"currency\": \"E:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1500000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"DOG/E:U\"\n  },\n  {\n    \"asset\": \"OXY\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"OXY/USD\"\n  },\n  {\n    \"asset\": \"OXY\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"OXY/UST\"\n  },\n  {\n    \"asset\": \"1IN\",\n    \"currency\": \"CH:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"1IN/CH:\"\n  },\n  {\n    \"asset\": \"1IN\",\n    \"currency\": \"CH:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"1IN/CH:\"\n  },\n  {\n    \"asset\": \"IDX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"IDX/USD\"\n  },\n  {\n    \"asset\": \"FOR\",\n    \"currency\": \"TH:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"FOR/TH:\"\n  },\n  {\n    \"asset\": \"FOR\",\n    \"currency\": \"TH:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"FOR/TH:\"\n  },\n  {\n    \"asset\": \"IDX\",\n    \"currency\": \"UST\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"2000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"IDX/UST\"\n  },\n  {\n    \"asset\": \"CHE\",\n    \"currency\": \"X:U\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1000000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"CHE/X:U\"\n  },\n  {\n    \"asset\": \"QTF\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.001\",\n    \"label\": \"QTF/USD\"\n  },\n  {\n    \"asset\": \"QTF\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"QTF/BTC\"\n  },\n  {\n    \"asset\": \"OCE\",\n    \"currency\": \"AN:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"OCE/AN:\"\n  },\n  {\n    \"asset\": \"OCE\",\n    \"currency\": \"AN:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"OCE/AN:\"\n  },\n  {\n    \"asset\": \"PLA\",\n    \"currency\": \"NET\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"PLA/NET\"\n  },\n  {\n    \"asset\": \"PLA\",\n    \"currency\": \"NET\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"PLA/NET\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": \"100.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BTC/F0:\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"0.006\",\n    \"max_size\": \"1000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ETH/F0:\"\n  },\n  {\n    \"asset\": \"XAU\",\n    \"currency\": \"TF0\",\n    \"min_size\": \"0.002\",\n    \"max_size\": \"400.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"XAU/TF0\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"DOM\",\n    \"min_size\": \"0.008\",\n    \"max_size\": \"5000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BTC/DOM\"\n  },\n  {\n    \"asset\": \"TES\",\n    \"currency\": \"TBT\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": \"1000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"TES/TBT\"\n  },\n  {\n    \"asset\": \"AMP\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"2.0\",\n    \"max_size\": \"100000.0\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"AMP/F0:\"\n  },\n  {\n    \"asset\": \"EUR\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"0.8\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"EUR/F0:\"\n  },\n  {\n    \"asset\": \"GBP\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"0.8\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.0000001\",\n    \"label\": \"GBP/F0:\"\n  },\n  {\n    \"asset\": \"JPY\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"106.0\",\n    \"max_size\": \"10000000.0\",\n    \"increment\": \"0.000000001\",\n    \"label\": \"JPY/F0:\"\n  },\n  {\n    \"asset\": \"EUR\",\n    \"currency\": \"OPE\",\n    \"min_size\": \"0.0006\",\n    \"max_size\": \"1000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"EUR/OPE\"\n  },\n  {\n    \"asset\": \"GER\",\n    \"currency\": \"MAN\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": \"1000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"GER/MAN\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"EOS/F0:\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"LTC/F0:\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"DOT/F0:\"\n  },\n  {\n    \"asset\": \"XAG\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"XAG/F0:\"\n  },\n  {\n    \"asset\": \"IOT\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"IOT/F0:\"\n  },\n  {\n    \"asset\": \"LIN\",\n    \"currency\": \"KF0\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"LIN/KF0\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"UNI/F0:\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"100.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ETH/F0:\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ADA/F0:\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"250000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"XLM/F0:\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"50000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"DOT/F0:\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"F0:\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"7500.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"LTC/F0:\"\n  },\n  {\n    \"asset\": \"XAU\",\n    \"currency\": \"TF0\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"500.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"XAU/TF0\"\n  },\n  {\n    \"asset\": \"DOG\",\n    \"currency\": \"EF0\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"500000.0\",\n    \"increment\": \"0.000001\",\n    \"label\": \"DOG/EF0\"\n  }\n]"
  },
  {
    "path": "extensions/exchanges/bitfinex/update-products.sh",
    "content": "#!/usr/bin/env node\nvar request = require('micro-request')\nrequest('https://api.bitfinex.com/v1/symbols_details', {headers: {'User-Agent': 'zenbot/4'}}, function (err, resp, body) {\n  if (err) throw err\n  if (resp.statusCode !== 200) {\n    var err = new Error('non-200 status: ' + resp.statusCode)\n    err.code = 'HTTP_STATUS'\n    err.body = body\n    console.error(err)\n    process.exit(1)\n  }\n  var products = []\n  body.forEach(function (product) {\n    var min_size = parseFloat(product.minimum_order_size)\n    var prec = 0\n    if (min_size > 130 ) {\n      prec = 4 \n    } else if (min_size > 30) {\n      prec = 3\n    } else if (min_size > 1) {\n      prec = 2\n    } else if (min_size > 0.1) {\n      prec = 1\n    }\n    var increment = '0.' + '0'.repeat(prec + product.price_precision - (product.pair.substring(3, 6).toUpperCase() == 'USD' ? 3 : 0)) + '1'\n    products.push({\n//     id: product.pair,\n      asset: product.pair.substring(0, 3).toUpperCase(),\n      currency: product.pair.substring(3, 6).toUpperCase(),\n      min_size: product.minimum_order_size,\n      max_size: product.maximum_order_size,\n      increment: increment,\n      label: product.pair.substring(0, 3).toUpperCase() + '/' + product.pair.substring(3, 6).toUpperCase()\n    })\n  })\n  var target = require('path').resolve(__dirname, 'products.json')\n  require('fs').writeFileSync(target, JSON.stringify(products, null, 2))\n  console.log('wrote', target)\n  process.exit()\n})\n"
  },
  {
    "path": "extensions/exchanges/bitstamp/exchange.js",
    "content": "var Bitstamp = require('bitstamp')\n  , path = require('path')\n  , WebSocket = require('ws')\n  // eslint-disable-next-line no-unused-vars\n  , n = require('numbro')\n  , _ = require('lodash')\nconst { GridFSBucket } = require('mongodb')\n\nvar args = process.argv\n\nconst restAPIURL = 'www.bitstamp.net'\nconst wsURL = 'wss://ws.bitstamp.net'\n\nvar wsOpts = {  \n  pairOk: false,\n  currencyPair: 'btcusd',\n  trades: { evType: 'trade', channel: 'live_trades' },\n  quotes: { evType: 'data', channel: 'order_book' }\n}\n\n// The use of bitstamp-ws  requires that\n// Knowledge of the asset/currency pair\n// before the first call for a trade\n// As zenbot dont returns the currency pair\n// before the first trade is requested\n// it has been neccessary to get it from\n// the command line arguments\nparsePairDataFromArgs(args);\n\nfunction parsePairDataFromArgs(argsData) {\n  for (const value of argsData) {\n    if (value.toLowerCase().match(/bitstamp/)) {\n      var p = value.split('.')[1]\n      var prod = p.split('-')[0] + p.split('-')[1]\n      var pair = prod.toLowerCase()\n      if (!wsOpts.pairOk) {\n        wsOpts.trades.channel = 'live_trades_' + pair\n        wsOpts.quotes.channel = 'order_book_' + pair\n        wsOpts.currencyPair = pair\n        wsOpts.pairOk = true\n        break\n      }\n    }\n  }\n};\n\nfunction joinProduct(product_id) {\n  return product_id.split('-')[0] + product_id.split('-')[1]\n}\n\nmodule.exports = function bitstamp(conf) {  \n\n  function authedClient() {\n    if (conf.bitstamp.key && conf.bitstamp.key !== 'YOUR-API-KEY') {\n      return new Bitstamp(conf.bitstamp.key, conf.bitstamp.secret, conf.bitstamp.client_id, 5000, restAPIURL)\n    }\n    throw new Error('\\nPlease configure your Bitstamp credentials in ' + path.resolve(__dirname, 'conf.js'))\n  }\n\n  //-----------------------------------------------------\n  //  The websocket functions\n  //\n\n  var Bitstamp_WS = function (confSelector) {\n    // if pair data was not received from cli args, parse it from the selector\n    if (!wsOpts.pairOk) {\n      parsePairDataFromArgs([confSelector])\n    }\n\n    // fetch initial order book from REST\n    var client = new Bitstamp(null, null, null, 5000, restAPIURL)\n    client.order_book(wsOpts.currencyPair, function (err, data) {\n      wsquotes = {\n        bid: data.bids[0][0],\n        ask: data.asks[0][0]\n      }\n    });\n\n    this.client = new WebSocket(wsURL)\n\n    // bitstamp publishes all data over just 2 channels\n    // make sure we only subscribe to each channel once\n    this.bound = {\n      trade: false,\n      data: false\n    }\n\n    // subscribe on open\n    this.client.on('open', function open() {\n      this.subscribe()\n    }.bind(this))\n  }\n\n  Bitstamp.prototype.tradeDaily = function (direction, market, amount, price, callback) {\n    this._post(market, direction, callback, {\n      amount: amount,\n      price: price,\n      daily_order: true\n    })\n  }\n\n  Bitstamp.prototype.tradeMarket = function (direction, market, amount, callback) {\n    this._post(market, direction + '/market', callback, {\n      amount: amount,\n    })\n  }\n\n  var util = require('util')\n  var EventEmitter = require('events').EventEmitter\n  util.inherits(Bitstamp_WS, EventEmitter)\n\n\n  Bitstamp_WS.prototype.createSubscribeMessage = function (chanName) {\n    return JSON.stringify({\n      \"event\": \"bts:subscribe\",\n      \"data\": {\n        \"channel\": chanName\n      }\n    })\n  }\n\n  Bitstamp_WS.prototype.bindEvent = function (eventBroadcasts) {\n    this.client.on('message', function incoming(data) {\n      var parsedData = JSON.parse(data);\n      Object.keys(eventBroadcasts).forEach(function (eventName) {\n        if (parsedData.event === eventName) {\n          var broadcastFunction = eventBroadcasts[eventName]\n          broadcastFunction(parsedData.data);\n        }\n      })\n    });\n  }\n\n  Bitstamp_WS.prototype.subscribe = function () {\n    if (wsOpts.pairOk) {\n      var eventFunctions = {};\n\n      this.client.send(this.createSubscribeMessage(wsOpts.trades.channel));\n      eventFunctions[wsOpts.trades.evType] = this.broadcast(wsOpts.trades.evType)\n\n      this.client.send(this.createSubscribeMessage(wsOpts.quotes.channel));\n      eventFunctions[wsOpts.quotes.evType] = this.broadcast(wsOpts.quotes.evType)\n\n      this.bindEvent(eventFunctions)\n    }\n  }\n\n  Bitstamp_WS.prototype.broadcast = function (name) {\n    if (this.bound[name])\n      return function noop() { }\n    this.bound[name] = true\n    return function (e) {\n      this.emit(name, e)\n    }.bind(this)\n  }\n  // Placeholders\n  var wsquotes = {}\n  var wstrades = []\n\n  var bistampWS = new Bitstamp_WS(conf.selector)\n\n  bistampWS.on('data', function (data) {\n    wsquotes = {\n      bid: data.bids[0][0],\n      ask: data.asks[0][0]\n    }\n  })\n\n  bistampWS.on('trade', function (data) {\n    wstrades.push({\n      trade_id: data.id,\n      time: Number(data.timestamp) * 1000,\n      size: data.amount,\n      price: data.price,\n      side: data.type === 0 ? 'buy' : 'sell'\n    })\n  })\n  //-----------------------------------------------------\n\n  function statusErr(err, body) {\n    if (typeof body === 'undefined') {\n      var ret = {}\n      var res = err.toString().split(':', 2)\n      ret.status = res[1]\n      return new Error(ret.status)\n    } else {\n      if (body.error) {\n        return new Error('\\nError: ' + body.error)\n      } else {\n        return body\n      }\n    }\n  }\n\n  function retry(method, wait, args) {\n    if (method !== 'getTrades') {\n      console.error(('\\nBitstamp API is not answering! unable to call ' + method + ', retrying in ' + wait + 's').red)\n    }\n    setTimeout(function () {\n      exchange[method].apply(exchange, args)\n    }, wait * 1000)\n  }\n\n  var lastBalance = { asset: 0, currency: 0 }\n  var orders = {}\n\n  var exchange = {\n    name: 'bitstamp',\n    historyScan: false,\n    makerFee: 0.50,\n    takerFee: 0.50,\n\n    getProducts: function () {\n      return require('./products.json')\n    },\n\n    //-----------------------------------------------------\n    // Public API functions\n    // getQuote() and getTrades() are using Bitstamp websockets\n    // The data is not done by calling the interface function,\n    // but rather pulled from the \"wstrades\" and \"wsquotes\" JSOM objects\n    // Those objects are populated by the websockets event handlers\n\n    getTrades: function (opts, cb) {\n      var wait = 2   // Seconds\n      var func_args = [].slice.call(arguments)\n      if (wstrades.length === 0) return retry('getTrades', wait, func_args)\n      var trades = wstrades.splice(0, wstrades.length)\n      cb(null, trades)\n    },\n\n    getQuote: function (opts, cb) {\n      var wait = 2   // Seconds\n      var func_args = [].slice.call(arguments)\n      if (_.isEmpty(wsquotes)) return retry('getQuote', wait, func_args)\n      cb(null, wsquotes)\n    },\n\n    //-----------------------------------------------------\n    // Private (authenticated) functions\n    //\n\n    getBalance: function (opts, cb) {\n      var wait = 10\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      client.balance(null, function (err, body) {\n        body = statusErr(err, body)\n        if (body.status === 'error') {\n          return retry('getBalance', wait, func_args)\n        }\n        var balance = {\n          asset: '0',\n          asset_hold: '0',\n          currency: '0',\n          currency_hold: '0'\n        }\n\n        // Dirty hack to avoid engine.js bailing out when balance has 0 value\n        // The added amount is small enough to not have any significant effect\n        balance.currency = n(body[opts.currency.toLowerCase() + '_balance']) + 0.000001\n        balance.asset = n(body[opts.asset.toLowerCase() + '_balance']) + 0.000001\n        balance.currency_hold = n(body[opts.currency.toLowerCase() + '_reserved']) + 0.000001\n        balance.asset_hold = n(body[opts.asset.toLowerCase() + '_reserved']) + 0.000001\n\n        if (typeof balance.asset == undefined || typeof balance.currency == undefined) {\n          console.log('Communication delay, fallback to previous balance')\n          balance = lastBalance\n        } else {\n          lastBalance = balance\n        }\n        cb(null, balance)\n      })\n    },\n\n    cancelOrder: function (opts, cb) {\n      var wait = 2;\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      client.cancel_order(opts.order_id, function (err, body) {\n\n        body = statusErr(err, body)\n        if (body.status === 'error') {\n          return retry('cancelOrder', wait, func_args)\n        }\n        cb()\n      })\n    },\n\n    trade: function (type, opts, cb) {\n      var client = authedClient()\n      var currencyPair = joinProduct(opts.product_id).toLowerCase()\n      if (typeof opts.order_type === 'undefined') {\n        opts.order_type = 'maker'\n      }\n      // Bitstamp has no \"post only\" trade type\n      opts.post_only = false\n      if (opts.order_type === 'maker') {\n        client.tradeDaily(type, currencyPair, opts.size, opts.price, function (err, body) {\n          body = statusErr(err, body)\n          if (body.status === 'error') {\n            var order = { status: 'rejected', reject_reason: 'balance' }\n            return cb(null, order)\n          } else {\n            // Statuses:\n            // 'In Queue', 'Open', 'Finished'\n            body.status = 'done'\n          }\n          if (body.datetime) body.done_at = body.created_at = body.datetime\n\n          orders['~' + body.id] = body\n          cb(null, body)\n        })\n      } else { // order_type === taker\n        client.tradeMarket(type, currencyPair, opts.size, function (err, body) {\n          body = statusErr(err, body)\n          if (body.status === 'error') {\n            var order = { status: 'rejected', reject_reason: 'balance' }\n            return cb(null, order)\n          } else {\n            body.status = 'done'\n          }\n          orders['~' + body.id] = body\n          cb(null, body)\n        })\n      }\n    },\n\n    buy: function (opts, cb) {\n      exchange.trade('buy', opts, cb)\n    },\n\n    sell: function (opts, cb) {\n      exchange.trade('sell', opts, cb)\n    },\n\n    getOrder: function (opts, cb) {\n      var client = authedClient()\n      client.order_status(opts.order_id, function (err, body) {\n\n        body = statusErr(err, body)\n        if (body.status === 'error') {\n          body = orders['~' + opts.order_id]\n          body.status = 'done'\n          body.done_reason = 'canceled'\n        } else if (body.status === 'Finished')\n          body.status = 'done'\n\n        if (body.status === 'done') {\n          if (body.transactions && body.transactions[0].datetime) body.done_at = body.transactions[0].datetime\n        }\n\n        cb(null, body)\n      })\n    },\n\n    // return the property used for range querying.\n    getCursor: function (trade) {\n      return trade.trade_id\n    }\n  }\n  return exchange\n}\n"
  },
  {
    "path": "extensions/exchanges/bitstamp/products.json",
    "content": "[\n  {\n    \"id\": \"BTCUSD\",\n    \"asset\": \"BTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"BTC/USD\"\n  },\n  {\n    \"id\": \"BTCEUR\",\n    \"asset\": \"BTC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"BTC/EUR\"\n  },\n  {\n    \"id\": \"BTCGBP\",\n    \"asset\": \"BTC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"BTC/GBP\"\n  },\n  {\n    \"id\": \"BTCPAX\",\n    \"asset\": \"BTC\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"BTC/PAX\"\n  },\n  {\n    \"id\": \"BTCUSDC\",\n    \"asset\": \"BTC\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"BTC/USDC\"\n  },\n  {\n    \"id\": \"GBPUSD\",\n    \"asset\": \"GBP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"GBP/USD\"\n  },\n  {\n    \"id\": \"GBPEUR\",\n    \"asset\": \"GBP\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"GBP/EUR\"\n  },\n  {\n    \"id\": \"EURUSD\",\n    \"asset\": \"EUR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"EUR/USD\"\n  },\n  {\n    \"id\": \"ETHUSD\",\n    \"asset\": \"ETH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"ETH/USD\"\n  },\n  {\n    \"id\": \"ETHEUR\",\n    \"asset\": \"ETH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"ETH/EUR\"\n  },\n  {\n    \"id\": \"ETHBTC\",\n    \"asset\": \"ETH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/BTC\"\n  },\n  {\n    \"id\": \"ETHGBP\",\n    \"asset\": \"ETH\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"ETH/GBP\"\n  },\n  {\n    \"id\": \"ETHPAX\",\n    \"asset\": \"ETH\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"ETH/PAX\"\n  },\n  {\n    \"id\": \"ETHUSDC\",\n    \"asset\": \"ETH\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"ETH/USDC\"\n  },\n  {\n    \"id\": \"XRPUSD\",\n    \"asset\": \"XRP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"XRP/USD\"\n  },\n  {\n    \"id\": \"XRPEUR\",\n    \"asset\": \"XRP\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"XRP/EUR\"\n  },\n  {\n    \"id\": \"XRPBTC\",\n    \"asset\": \"XRP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"XRP/BTC\"\n  },\n  {\n    \"id\": \"XRPGBP\",\n    \"asset\": \"XRP\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"XRP/GBP\"\n  },\n  {\n    \"id\": \"XRPPAX\",\n    \"asset\": \"XRP\",\n    \"currency\": \"PAX\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"XRP/PAX\"\n  },\n  {\n    \"id\": \"UNIUSD\",\n    \"asset\": \"UNI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"UNI/USD\"\n  },\n  {\n    \"id\": \"UNIEUR\",\n    \"asset\": \"UNI\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"UNI/EUR\"\n  },\n  {\n    \"id\": \"UNIBTC\",\n    \"asset\": \"UNI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"UNI/BTC\"\n  },\n  {\n    \"id\": \"LTCUSD\",\n    \"asset\": \"LTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"LTC/USD\"\n  },\n  {\n    \"id\": \"LTCEUR\",\n    \"asset\": \"LTC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"LTC/EUR\"\n  },\n  {\n    \"id\": \"LTCBTC\",\n    \"asset\": \"LTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"LTC/BTC\"\n  },\n  {\n    \"id\": \"LTCGBP\",\n    \"asset\": \"LTC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"LTC/GBP\"\n  },\n  {\n    \"id\": \"LINKUSD\",\n    \"asset\": \"LINK\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"LINK/USD\"\n  },\n  {\n    \"id\": \"LINKEUR\",\n    \"asset\": \"LINK\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"LINK/EUR\"\n  },\n  {\n    \"id\": \"LINKGBP\",\n    \"asset\": \"LINK\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"LINK/GBP\"\n  },\n  {\n    \"id\": \"LINKBTC\",\n    \"asset\": \"LINK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"LINK/BTC\"\n  },\n  {\n    \"id\": \"LINKETH\",\n    \"asset\": \"LINK\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.005\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"LINK/ETH\"\n  },\n  {\n    \"id\": \"XLMBTC\",\n    \"asset\": \"XLM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"XLM/BTC\"\n  },\n  {\n    \"id\": \"XLMUSD\",\n    \"asset\": \"XLM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"XLM/USD\"\n  },\n  {\n    \"id\": \"XLMEUR\",\n    \"asset\": \"XLM\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"XLM/EUR\"\n  },\n  {\n    \"id\": \"XLMGBP\",\n    \"asset\": \"XLM\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"XLM/GBP\"\n  },\n  {\n    \"id\": \"BCHUSD\",\n    \"asset\": \"BCH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"BCH/USD\"\n  },\n  {\n    \"id\": \"BCHEUR\",\n    \"asset\": \"BCH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"BCH/EUR\"\n  },\n  {\n    \"id\": \"BCHBTC\",\n    \"asset\": \"BCH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BCH/BTC\"\n  },\n  {\n    \"id\": \"BCHGBP\",\n    \"asset\": \"BCH\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"BCH/GBP\"\n  },\n  {\n    \"id\": \"AAVEUSD\",\n    \"asset\": \"AAVE\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"AAVE/USD\"\n  },\n  {\n    \"id\": \"AAVEEUR\",\n    \"asset\": \"AAVE\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"AAVE/EUR\"\n  },\n  {\n    \"id\": \"AAVEBTC\",\n    \"asset\": \"AAVE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"AAVE/BTC\"\n  },\n  {\n    \"id\": \"ALGOUSD\",\n    \"asset\": \"ALGO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"ALGO/USD\"\n  },\n  {\n    \"id\": \"ALGOEUR\",\n    \"asset\": \"ALGO\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"ALGO/EUR\"\n  },\n  {\n    \"id\": \"ALGOBTC\",\n    \"asset\": \"ALGO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ALGO/BTC\"\n  },\n  {\n    \"id\": \"SNXUSD\",\n    \"asset\": \"SNX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"SNX/USD\"\n  },\n  {\n    \"id\": \"SNXEUR\",\n    \"asset\": \"SNX\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"SNX/EUR\"\n  },\n  {\n    \"id\": \"SNXBTC\",\n    \"asset\": \"SNX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"SNX/BTC\"\n  },\n  {\n    \"id\": \"BATUSD\",\n    \"asset\": \"BAT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"BAT/USD\"\n  },\n  {\n    \"id\": \"BATEUR\",\n    \"asset\": \"BAT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"BAT/EUR\"\n  },\n  {\n    \"id\": \"BATBTC\",\n    \"asset\": \"BAT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BAT/BTC\"\n  },\n  {\n    \"id\": \"MKRUSD\",\n    \"asset\": \"MKR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"MKR/USD\"\n  },\n  {\n    \"id\": \"MKREUR\",\n    \"asset\": \"MKR\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"MKR/EUR\"\n  },\n  {\n    \"id\": \"MKRBTC\",\n    \"asset\": \"MKR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"MKR/BTC\"\n  },\n  {\n    \"id\": \"ZRXUSD\",\n    \"asset\": \"ZRX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"ZRX/USD\"\n  },\n  {\n    \"id\": \"ZRXEUR\",\n    \"asset\": \"ZRX\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"ZRX/EUR\"\n  },\n  {\n    \"id\": \"ZRXBTC\",\n    \"asset\": \"ZRX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ZRX/BTC\"\n  },\n  {\n    \"id\": \"YFIUSD\",\n    \"asset\": \"YFI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"YFI/USD\"\n  },\n  {\n    \"id\": \"YFIEUR\",\n    \"asset\": \"YFI\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"YFI/EUR\"\n  },\n  {\n    \"id\": \"YFIBTC\",\n    \"asset\": \"YFI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"YFI/BTC\"\n  },\n  {\n    \"id\": \"UMAUSD\",\n    \"asset\": \"UMA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"UMA/USD\"\n  },\n  {\n    \"id\": \"UMAEUR\",\n    \"asset\": \"UMA\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"UMA/EUR\"\n  },\n  {\n    \"id\": \"UMABTC\",\n    \"asset\": \"UMA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"UMA/BTC\"\n  },\n  {\n    \"id\": \"OMGUSD\",\n    \"asset\": \"OMG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"OMG/USD\"\n  },\n  {\n    \"id\": \"OMGEUR\",\n    \"asset\": \"OMG\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"OMG/EUR\"\n  },\n  {\n    \"id\": \"OMGGBP\",\n    \"asset\": \"OMG\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.01\",\n    \"label\": \"OMG/GBP\"\n  },\n  {\n    \"id\": \"OMGBTC\",\n    \"asset\": \"OMG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"OMG/BTC\"\n  },\n  {\n    \"id\": \"KNCUSD\",\n    \"asset\": \"KNC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"KNC/USD\"\n  },\n  {\n    \"id\": \"KNCEUR\",\n    \"asset\": \"KNC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"KNC/EUR\"\n  },\n  {\n    \"id\": \"KNCBTC\",\n    \"asset\": \"KNC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"KNC/BTC\"\n  },\n  {\n    \"id\": \"CRVUSD\",\n    \"asset\": \"CRV\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"CRV/USD\"\n  },\n  {\n    \"id\": \"CRVEUR\",\n    \"asset\": \"CRV\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"CRV/EUR\"\n  },\n  {\n    \"id\": \"CRVBTC\",\n    \"asset\": \"CRV\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"CRV/BTC\"\n  },\n  {\n    \"id\": \"AUDIOUSD\",\n    \"asset\": \"AUDIO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"AUDIO/USD\"\n  },\n  {\n    \"id\": \"AUDIOEUR\",\n    \"asset\": \"AUDIO\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"AUDIO/EUR\"\n  },\n  {\n    \"id\": \"AUDIOBTC\",\n    \"asset\": \"AUDIO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.0002\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"AUDIO/BTC\"\n  },\n  {\n    \"id\": \"USDCUSD\",\n    \"asset\": \"USDC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"USDC/USD\"\n  },\n  {\n    \"id\": \"USDCEUR\",\n    \"asset\": \"USDC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"USDC/EUR\"\n  },\n  {\n    \"id\": \"DAIUSD\",\n    \"asset\": \"DAI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"DAI/USD\"\n  },\n  {\n    \"id\": \"PAXUSD\",\n    \"asset\": \"PAX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"PAX/USD\"\n  },\n  {\n    \"id\": \"PAXEUR\",\n    \"asset\": \"PAX\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"PAX/EUR\"\n  },\n  {\n    \"id\": \"PAXGBP\",\n    \"asset\": \"PAX\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"PAX/GBP\"\n  },\n  {\n    \"id\": \"ETH2ETH\",\n    \"asset\": \"ETH2\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00000001\",\n    \"min_total\": \"0.005\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH2/ETH\"\n  },\n  {\n    \"id\": \"GUSDUSD\",\n    \"asset\": \"GUSD\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00001\",\n    \"min_total\": \"20\",\n    \"increment\": \"0.00001\",\n    \"label\": \"GUSD/USD\"\n  }\n]"
  },
  {
    "path": "extensions/exchanges/bitstamp/update-products.sh",
    "content": "#!/usr/bin/env node\nlet ccxt = require('ccxt')\n\nnew ccxt.bitstamp().fetch_markets().then(function(markets) {\n  var products = []\n\n  var products = markets.map(function (market) {\n    return {\n      id: market.id.toUpperCase(),\n      asset: market.base,\n      currency: market.quote,\n      min_size: market.limits.amount.min.toFixed(market.precision.amount),\n      min_total: market.limits.cost.min.toString(),\n      increment: Math.pow(10, -market.precision.price).toFixed(market.precision.price),\n      label: market.base + '/' + market.quote\n    }\n  })\n\n  var target = require('path').resolve(__dirname, 'products.json')\n  require('fs').writeFileSync(target, JSON.stringify(products, null, 2))\n  console.log('wrote', target)\n  process.exit()\n})\n"
  },
  {
    "path": "extensions/exchanges/bittrex/exchange.js",
    "content": "var bittrex_authed = require('node-bittrex-api'),\n  bittrex_public = require('node-bittrex-api'),\n  n = require('numbro')\n\nmodule.exports = function bittrex(conf) {\n  let recoverableErrors = new RegExp(/(ESOCKETTIMEOUT|ESOCKETTIMEDOUT|ETIMEDOUT|ECONNRESET|ECONNREFUSED|ENOTFOUND|Invalid nonce|Rate limit exceeded|URL request error)/)\n  let shownWarning = false\n  let firstRun = true\n  let allowGetMarketCall = true\n  let marketRefresh = 15000\n\n  bittrex_authed.options({\n    'apikey': conf.bittrex.key.trim(),\n    'apisecret': conf.bittrex.secret.trim(),\n    'stream': false,\n    'cleartext': false,\n    'verbose': false\n  })\n\n  function joinProduct(product_id) {\n    return product_id.split('-')[1] + '-' + product_id.split('-')[0]\n  }\n\n  function retry(method, args, error) {\n    var timeout = 2500\n    if (error)\n      if (error.message)\n        if (error.message.match(/Rate limit exceeded/)) {\n          timeout = 10000\n        }\n    setTimeout(function () {\n      exchange[method].apply(exchange, args)\n    }, timeout)\n    return false\n  }\n\n  function handleErrors(command, err, data, args, callback) {\n    if (err) {\n      if (err.message && err.message.match(recoverableErrors)) {\n        return retry(command, args, err)\n      }\n      return callback(err, [])\n    }\n    if (typeof data !== 'object') {\n      console.log(`Bittrex API ${command} had an abnormal response, quitting.`)\n      return callback(null, [])\n    }\n    // generic error handler data was null and err was null\n    if (data == null) {\n      return retry(command, args, err)\n    }\n    // specific handlers\n    if ((command == 'getQuote' || command == 'getTrades') && data.result == null ) {\n      return retry(command, args, data)\n    }\n    if (!data.success) {\n      if (data.message && data.message.match(recoverableErrors)) {\n        return retry(command, args, data.message)\n      }\n      return callback(null, [])\n    }\n    return true\n  }\n\n  var orders = {}\n\n  var exchange = {\n    name: 'bittrex',\n    historyScan: 'forward',\n    makerFee: 0.25,\n    takerFee: 0.25,\n\n    getProducts: function() {\n      return require('./products.json')\n    },\n\n    getTrades: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var args = {\n        market:joinProduct(opts.product_id),\n        marketName: joinProduct(opts.product_id),\n        tickInterval: 'oneMin'\n      }\n      // accomplish back trades using 2 calls. ticks and getMarket and create a hybrid result.\n      var trades = []\n      // first run do the full deal. 2nd run only returns the last trades\n      if (allowGetMarketCall != true) {\n        cb(null, [])\n        return null\n      }\n      if (firstRun) {\n        bittrex_public.getticks(args,  function(data, err) {\n          let res = handleErrors('getTrades', err, data, func_args, cb)\n          if (!shownWarning) {\n            console.log('Bittrex backfill is indirectly supported through the use of a hybrid system that combines a low resolution')\n            console.log('long term market of about 10 days and a short term high resolution market of the last 1-5 minutes.')\n            shownWarning = true\n          }\n          if (res) {\n            let lastVal = 0\n            for (const key in Object.keys(data.result)) {\n              var trade = data.result[key]\n              if (isNaN(opts.from) || new Date(trade.T).getTime() > new Date(opts.from).getTime()) {\n                let buySell = 'sell'\n                // todo: unsure about the >. if the price is greater than the last one should this one be a buy or sell. figure it out.\n                if (parseFloat(trade.C) > lastVal) buySell = 'buy'\n                trades.push({\n                  trade_id: new Date(trade.T).getTime(),\n                  time: new Date(trade.T).getTime(),\n                  size: parseFloat(trade.V),\n                  price: parseFloat(trade.C),\n                  // selector should get overwritten by backfill, but was a point where it was missing in the backfill function so this was put in so it is never missed\n                  selector: 'bittrex.'+opts.product_id,\n                  side: buySell\n                })\n                lastVal = parseFloat(trade.C)\n              }\n            }\n            bittrex_public.getmarkethistory(args,  function(data, err) {\n              let res2 = handleErrors('getTrades', err, data, func_args, cb)\n              if (res2) {\n                for (const key in Object.keys(data.result)) {\n                  var trade = data.result[key]\n                  if (isNaN(opts.from) || new Date(trade.TimeStamp).getTime() > new Date(opts.from).getTime()) {\n                    trades.push({\n                      // trade_id: trade.Id,\n                      trade_id: trade.id,\n                      time: new Date(trade.TimeStamp).getTime(),\n                      size: parseFloat(trade.Quantity),\n                      price: parseFloat(trade.Price),\n                      // selector should get overwritten by backfill, but was a point where it was missing in the backfill function so this was put in so it is never missed\n                      selector: 'bittrex.'+opts.product_id,\n                      side: trade.OrderType || trade.OrderType == 'SELL' ? 'sell': 'buy'\n                      // selector:\n                    })\n                  }\n                }\n                firstRun = false\n                allowGetMarketCall = false\n                setTimeout(()=>{allowGetMarketCall = true},marketRefresh)\n                // make sure all times come out sorted correctly. there is a chance they can appear in the array out of order otherwise.\n                trades = trades.sort((a, b) => {\n                  if (a.time < b.time) return 1\n                  if (a.time > b.time) return -1\n                  return 0\n                }\n                )\n                cb(null, trades)\n              }\n            })\n          }\n        })\n      }\n      else {\n        bittrex_public.getmarkethistory(args,  function(data, err) {\n          let res2 = handleErrors('getTrades', err, data, func_args, cb)\n          if (res2) {\n            for (const key in Object.keys(data.result)) {\n              var trade = data.result[key]\n              if (isNaN(opts.from) || new Date(trade.TimeStamp).getTime() > new Date(opts.from).getTime()) {\n                trades.push({\n                // trade_id: trade.Id,\n                  trade_id: new Date(trade.TimeStamp).getTime(),\n                  time: new Date(trade.TimeStamp).getTime(),\n                  size: parseFloat(trade.Quantity),\n                  price: parseFloat(trade.Price),\n                  // selector should get overwritten by backfill, but was a point where it was missing in the backfill function so this was put in so it is never missed\n                  selector: 'bittrex.'+opts.product_id,\n                  side: trade.OrderType || trade.OrderType == 'SELL' ? 'sell': 'buy'\n                })\n              }\n            }\n            allowGetMarketCall = false\n            setTimeout(()=>{allowGetMarketCall = true},marketRefresh)\n            // Sorting at this point may be redundant.\n            trades = trades.sort((a, b) => {\n              if (a.time < b.time) return 1\n              if (a.time > b.time) return -1\n              return 0\n            }\n            )\n            cb(null, trades)\n          }\n        })\n      }\n    },\n\n    getBalance: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      bittrex_authed.getbalances(function(data,err ) {\n        let res = handleErrors('getBalance', err, data, func_args, cb)\n        var balance = {\n          asset: 0,\n          currency: 0\n        }\n        if (res) {\n          for (const key in data.result) {\n            var _balance = data.result[key]\n            if (opts.last_signal === 'buy') {\n              if (_balance['Currency'] === opts.currency.toUpperCase()) {\n                balance.currency = n(_balance.Available).format('0.00000000'),\n                balance.currency_hold = 0\n              }\n              if (_balance['Currency'] === opts.asset.toUpperCase()) {\n                balance.asset = n(_balance.Available).format('0.00000000'),\n                balance.asset_hold = 0\n              }\n            }\n            else {\n              if (_balance['Currency'] === opts.asset.toUpperCase()) {\n                balance.asset = n(_balance.Available).format('0.00000000'),\n                balance.asset_hold = 0\n              }\n              if (_balance['Currency'] === opts.currency.toUpperCase()) {\n                balance.currency = n(_balance.Available).format('0.00000000'),\n                balance.currency_hold = 0\n              }\n            }\n          }\n          cb(null, balance)\n        }\n      })\n    },\n\n    getOrderBook: function (opts, cb) {\n      var args = {\n        market: joinProduct(opts.product_id),\n        type: 'both',\n        depth: 10\n      }\n      bittrex_public.getorderbook(args, function(data) {\n        if (typeof data !== 'object') {\n          console.log('Bittrex API (getorderbook) had an abnormal response, quitting.')\n          return cb(null, [])\n        }\n        if (!data.success) {\n          if (data.message && data.message.match(recoverableErrors)) {\n            return retry('getOrderBook', args, data.message)\n          }\n          console.log(data.message)\n          return cb(null, [])\n        }\n        if (typeof data.result.buy[0].Rate === 'undefined') {\n          console.log(data.message)\n          return cb(null, [])\n        }\n        cb(null, {\n          buyOrderRate: data.result.buy[0].Rate,\n          buyOrderAmount: data.result.buy[0].Quantity,\n          sellOrderRate: data.result.sell[0].Rate,\n          sellOrderAmount: data.result.sell[0].Quantity\n        })\n      })\n    },\n\n    getQuote: function (opts, cb) {\n      if (opts == null) return\n      if (opts.product_id == null) return\n      var func_args = [].slice.call(arguments)\n      var args = {\n        market: joinProduct(opts.product_id)\n      }\n      bittrex_public.getticker(args, function(data, err ) {\n        let res = handleErrors('getQuote', err, data, func_args, cb)\n        if (res)\n          cb(null, {\n            bid: data.result.Bid,\n            ask: data.result.Ask\n          })\n      })\n    },\n\n    cancelOrder: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      let args = {\n        uuid: opts.order_id\n      }\n      bittrex_authed.cancel(args, function (data, err) {\n        if (err) {\n          return retry('cancelOrder', func_args, err)\n        }\n        cb()\n      })\n    },\n\n    trade: function (type, opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var params = {\n        market: joinProduct(opts.product_id),\n        quantity: opts.size,\n        rate: opts.price\n      }\n      if (!('order_type' in opts) || !opts.order_type) {\n        opts.order_type = 'maker'\n      }\n      var fn = function(data,err) {\n        if (err != null ) {\n          if (data == null) {\n            data = {}\n            data.message = err.message\n            data.success = err.success\n            data.result = err.result\n          }\n          console.log('API Error')\n          console.log(JSON.stringify(err))\n          if (err.message && err.message.match(recoverableErrors)) {\n            return retry('trade', func_args, err.message)\n          }\n        }\n        if (err && err.message) {\n          if (err.message =='MIN_TRADE_REQUIREMENT_NOT_MET') {\n            let returnResult = {\n              reject_reason:'balance',\n              status:'rejected'\n            }\n            return cb(null, returnResult)\n          }\n        }\n        if (typeof data !== 'object') {\n          return cb(null, {})\n        }\n        if (!data.success) {\n          if (data.message && data.message.match(recoverableErrors)) {\n            return retry('trade', func_args, data.message)\n          }\n          console.log(data.message)\n          return cb(null, [])\n        }\n        var order = {\n          id: data && data.result ? data.result.uuid : null,\n          status: 'open',\n          price: opts.price,\n          size: opts.size,\n          post_only: !!opts.post_only,\n          created_at: new Date().getTime(),\n          filled_size: '0',\n          ordertype: opts.order_type\n        }\n        orders['~' + data.result.uuid] = order\n        cb(null, order)\n      }\n      if (type === 'buy') {\n        if (opts.order_type === 'maker') {\n          bittrex_authed.buylimit(params, fn)\n        }\n        if (opts.order_type === 'taker') {\n          bittrex_authed.buymarket(params, fn)\n        }\n      }\n      if (type === 'sell') {\n        if (opts.order_type === 'maker') {\n          bittrex_authed.selllimit(params, fn)\n        }\n        if (opts.order_type === 'taker') {\n          bittrex_authed.sellmarket(params, fn)\n        }\n      }\n    },\n\n    buy: function (opts, cb) {\n      exchange.trade('buy', opts, cb)\n    },\n\n    sell: function (opts, cb) {\n      exchange.trade('sell', opts, cb)\n    },\n\n    getOrder: function(opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var order = orders['~' + opts.order_id]\n      if (!order) return cb(new Error('order not found in cache'))\n      var params = {\n        uuid: opts.order_id\n      }\n      bittrex_authed.getorder(params, function(data, err) {\n        let res = handleErrors('getOrder', err, data, func_args, cb)\n        if (res) {\n          var orderData = data.result\n          if (!orderData) {\n            return cb('Order not found')\n          }\n          if (orderData.QuantityRemaining == 0) {\n            order.status = 'done'\n            order.done_at = new Date().getTime()\n            order.filled_size = parseFloat(orderData.Quantity) - parseFloat(orderData.QuantityRemaining)\n            return cb(null, order)\n          }\n          cb(null, order)\n        }\n      })\n    },\n\n    // return the property used for range querying.\n    getCursor: function (trade) {\n      return (trade.time || trade)\n    }\n  }\n  return exchange\n}\n"
  },
  {
    "path": "extensions/exchanges/bittrex/products.json",
    "content": "[\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01156120\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/LTC\"\n  },\n  {\n    \"asset\": \"DOGE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"7.71428570\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/DOGE\"\n  },\n  {\n    \"asset\": \"VTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.67649800\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/VTC\"\n  },\n  {\n    \"asset\": \"PPC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"3.20665080\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PPC\"\n  },\n  {\n    \"asset\": \"FTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"62.06896550\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/FTC\"\n  },\n  {\n    \"asset\": \"RDD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"415.38461540\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/RDD\"\n  },\n  {\n    \"asset\": \"NXT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"38.29787240\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/NXT\"\n  },\n  {\n    \"asset\": \"POT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"58.06451610\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/POT\"\n  },\n  {\n    \"asset\": \"BLK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"29.34782610\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BLK\"\n  },\n  {\n    \"asset\": \"EMC2\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"6.75000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/EMC2\"\n  },\n  {\n    \"asset\": \"XMY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"490.90909090\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/XMY\"\n  },\n  {\n    \"asset\": \"GRS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.25000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GRS\"\n  },\n  {\n    \"asset\": \"NLG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"90.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/NLG\"\n  },\n  {\n    \"asset\": \"XWC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.89274450\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/XWC\"\n  },\n  {\n    \"asset\": \"MONA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.92449920\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MONA\"\n  },\n  {\n    \"asset\": \"THC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"110.20408160\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/THC\"\n  },\n  {\n    \"asset\": \"VRC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"21.09375000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/VRC\"\n  },\n  {\n    \"asset\": \"CURE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"16.66666670\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CURE\"\n  },\n  {\n    \"asset\": \"XDN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"380.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/XDN\"\n  },\n  {\n    \"asset\": \"NAV\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"4.58015270\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/NAV\"\n  },\n  {\n    \"asset\": \"XST\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"16.51376150\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/XST\"\n  },\n  {\n    \"asset\": \"AR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.12495660\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/AR\"\n  },\n  {\n    \"asset\": \"VIA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.94384450\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/VIA\"\n  },\n  {\n    \"asset\": \"PINK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"135.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PINK\"\n  },\n  {\n    \"asset\": \"IOC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"11.84210530\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/IOC\"\n  },\n  {\n    \"asset\": \"SYS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"7.61636110\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SYS\"\n  },\n  {\n    \"asset\": \"DGB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"22.40663900\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/DGB\"\n  },\n  {\n    \"asset\": \"BURST\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"192.85714290\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BURST\"\n  },\n  {\n    \"asset\": \"EXCL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"10.07462690\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/EXCL\"\n  },\n  {\n    \"asset\": \"BLOCK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.72019210\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BLOCK\"\n  },\n  {\n    \"asset\": \"BTS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"27.13567840\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BTS\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.30572160\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/XRP\"\n  },\n  {\n    \"asset\": \"GAME\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"11.20331950\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GAME\"\n  },\n  {\n    \"asset\": \"NXS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.04622960\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/NXS\"\n  },\n  {\n    \"asset\": \"GEO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"3.61687880\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GEO\"\n  },\n  {\n    \"asset\": \"FLO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"37.50000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/FLO\"\n  },\n  {\n    \"asset\": \"MUE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"128.57142860\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MUE\"\n  },\n  {\n    \"asset\": \"XEM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"7.81476120\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/XEM\"\n  },\n  {\n    \"asset\": \"SPHR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"7.79220780\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SPHR\"\n  },\n  {\n    \"asset\": \"OK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"42.18750000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/OK\"\n  },\n  {\n    \"asset\": \"AEON\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.88770050\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/AEON\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00140180\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ETH\"\n  },\n  {\n    \"asset\": \"EXP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"18.55670100\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/EXP\"\n  },\n  {\n    \"asset\": \"AGRS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.42914980\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/AGRS\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"5.94059410\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/XLM\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00005460\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BTC\"\n  },\n  {\n    \"asset\": \"FCT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.23910050\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/FCT\"\n  },\n  {\n    \"asset\": \"MAID\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.66140960\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MAID\"\n  },\n  {\n    \"asset\": \"SLS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.07714290\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SLS\"\n  },\n  {\n    \"asset\": \"VAL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.90863200\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/VAL\"\n  },\n  {\n    \"asset\": \"DCR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01392710\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/DCR\"\n  },\n  {\n    \"asset\": \"XVG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"50.46728970\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/XVG\"\n  },\n  {\n    \"asset\": \"PIVX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.84552290\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PIVX\"\n  },\n  {\n    \"asset\": \"MEME\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"55.10204080\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MEME\"\n  },\n  {\n    \"asset\": \"STEEM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"3.04912480\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/STEEM\"\n  },\n  {\n    \"asset\": \"LSK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.55739060\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/LSK\"\n  },\n  {\n    \"asset\": \"WAVES\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.23685250\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/WAVES\"\n  },\n  {\n    \"asset\": \"LBC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"15.56195960\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/LBC\"\n  },\n  {\n    \"asset\": \"SBD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.38916110\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SBD\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.08854350\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ETC\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.08880250\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/ETC\"\n  },\n  {\n    \"asset\": \"STRAX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.46301820\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/STRAX\"\n  },\n  {\n    \"asset\": \"REPV2\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.07004980\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/REPV2\"\n  },\n  {\n    \"asset\": \"ARDR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"8.30769230\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ARDR\"\n  },\n  {\n    \"asset\": \"FIRO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.23710210\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/FIRO\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.02727320\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/NEO\"\n  },\n  {\n    \"asset\": \"UBQ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"5.04672900\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/UBQ\"\n  },\n  {\n    \"asset\": \"KMD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.08870970\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/KMD\"\n  },\n  {\n    \"asset\": \"SIB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"48.64864870\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SIB\"\n  },\n  {\n    \"asset\": \"CRW\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"19.14893620\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CRW\"\n  },\n  {\n    \"asset\": \"ARK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.48883380\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ARK\"\n  },\n  {\n    \"asset\": \"GBYTE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.03532140\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GBYTE\"\n  },\n  {\n    \"asset\": \"GLM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"6.70807450\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GLM\"\n  },\n  {\n    \"asset\": \"MORE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"31.95266270\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MORE\"\n  },\n  {\n    \"asset\": \"GLM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"6.67866620\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/GLM\"\n  },\n  {\n    \"asset\": \"REPV2\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.07289300\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/REPV2\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00141900\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ETH\"\n  },\n  {\n    \"asset\": \"WINGS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"27.97927460\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/WINGS\"\n  },\n  {\n    \"asset\": \"RLC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.34730540\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/RLC\"\n  },\n  {\n    \"asset\": \"GNO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01780160\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GNO\"\n  },\n  {\n    \"asset\": \"GNO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01711170\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/GNO\"\n  },\n  {\n    \"asset\": \"HMQ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"337.50000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/HMQ\"\n  },\n  {\n    \"asset\": \"ANT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.35495960\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ANT\"\n  },\n  {\n    \"asset\": \"ANT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.35864990\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/ANT\"\n  },\n  {\n    \"asset\": \"SC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"71.05263160\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SC\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"2.45610370\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/BAT\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.43133730\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BAT\"\n  },\n  {\n    \"asset\": \"ZEN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.03111370\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ZEN\"\n  },\n  {\n    \"asset\": \"QRL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"6.39053250\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/QRL\"\n  },\n  {\n    \"asset\": \"PTOY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"150.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PTOY\"\n  },\n  {\n    \"asset\": \"MYST\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"7.30717190\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MYST\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.44817000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BNT\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.45472870\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/BNT\"\n  },\n  {\n    \"asset\": \"NMR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.04181380\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/NMR\"\n  },\n  {\n    \"asset\": \"NMR\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.04295450\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/NMR\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01159090\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/LTC\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"2.31976570\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/XRP\"\n  },\n  {\n    \"asset\": \"SNT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"15.65217390\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SNT\"\n  },\n  {\n    \"asset\": \"SNT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"15.90524540\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/SNT\"\n  },\n  {\n    \"asset\": \"ADT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1800.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ADT\"\n  },\n  {\n    \"asset\": \"PAY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"24.32432430\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PAY\"\n  },\n  {\n    \"asset\": \"PAY\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"24.36495590\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/PAY\"\n  },\n  {\n    \"asset\": \"MTL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.80428950\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MTL\"\n  },\n  {\n    \"asset\": \"STORJ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.59763310\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/STORJ\"\n  },\n  {\n    \"asset\": \"ADX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.55560810\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ADX\"\n  },\n  {\n    \"asset\": \"ADX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"2.59802480\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/ADX\"\n  },\n  {\n    \"asset\": \"SC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"71.64634150\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/SC\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01169830\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/LTC\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.08933630\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ETC\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2.32558140\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/XRP\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.36525980\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/OMG\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.36538910\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/OMG\"\n  },\n  {\n    \"asset\": \"CVC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"5.86319220\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CVC\"\n  },\n  {\n    \"asset\": \"CVC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"5.87500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/CVC\"\n  },\n  {\n    \"asset\": \"PART\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.03927490\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PART\"\n  },\n  {\n    \"asset\": \"QTUM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.16086750\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/QTUM\"\n  },\n  {\n    \"asset\": \"QTUM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.16073870\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/QTUM\"\n  },\n  {\n    \"asset\": \"XEM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"7.88458310\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/XEM\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"5.97432310\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/XLM\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.02745740\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/NEO\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00332110\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/BCH\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00334660\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BCH\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00330630\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BCH\"\n  },\n  {\n    \"asset\": \"DNT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"8.33333330\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/DNT\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.02735660\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/NEO\"\n  },\n  {\n    \"asset\": \"WAVES\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.24172890\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/WAVES\"\n  },\n  {\n    \"asset\": \"STRAX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.47478740\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/STRAX\"\n  },\n  {\n    \"asset\": \"DGB\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"22.50239390\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/DGB\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.36684390\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/OMG\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.48390060\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ADA\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.48504370\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MANA\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"2.46318330\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/MANA\"\n  },\n  {\n    \"asset\": \"RCN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"23.17596570\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/RCN\"\n  },\n  {\n    \"asset\": \"VIB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"21.42857140\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/VIB\"\n  },\n  {\n    \"asset\": \"VIB\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"22.04158200\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/VIB\"\n  },\n  {\n    \"asset\": \"MER\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"108.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MER\"\n  },\n  {\n    \"asset\": \"POWR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"7.12401050\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/POWR\"\n  },\n  {\n    \"asset\": \"POWR\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"7.12157180\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/POWR\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"2.49213470\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/ADA\"\n  },\n  {\n    \"asset\": \"ENG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"18.81533100\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ENG\"\n  },\n  {\n    \"asset\": \"ENG\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"18.77746700\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/ENG\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2.51018480\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ADA\"\n  },\n  {\n    \"asset\": \"XVG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"50.91119150\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/XVG\"\n  },\n  {\n    \"asset\": \"IGNIS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"20.37735850\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/IGNIS\"\n  },\n  {\n    \"asset\": \"SRN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"110.20408160\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SRN\"\n  },\n  {\n    \"asset\": \"SRN\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"110.84905660\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/SRN\"\n  },\n  {\n    \"asset\": \"WAXP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"14.87603310\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/WAXP\"\n  },\n  {\n    \"asset\": \"WAXP\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"14.88283730\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/WAXP\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.83923710\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ZRX\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.85012660\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/ZRX\"\n  },\n  {\n    \"asset\": \"VEE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"540.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/VEE\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"22.40663900\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/TRX\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"22.38805970\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/TRX\"\n  },\n  {\n    \"asset\": \"TUSD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.96866410\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/TUSD\"\n  },\n  {\n    \"asset\": \"LRC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"5.40000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/LRC\"\n  },\n  {\n    \"asset\": \"TUSD\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"3.00485890\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/TUSD\"\n  },\n  {\n    \"asset\": \"DMT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"3.00166760\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/DMT\"\n  },\n  {\n    \"asset\": \"DMT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"2.83360130\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/DMT\"\n  },\n  {\n    \"asset\": \"TUSD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3.00902710\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/TUSD\"\n  },\n  {\n    \"asset\": \"SC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"73.26241700\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SC\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"22.59967870\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/TRX\"\n  },\n  {\n    \"asset\": \"STMX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"59.34065930\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/STMX\"\n  },\n  {\n    \"asset\": \"STMX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"57.85802220\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/STMX\"\n  },\n  {\n    \"asset\": \"AID\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"75.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/AID\"\n  },\n  {\n    \"asset\": \"NGC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"62.06896550\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/NGC\"\n  },\n  {\n    \"asset\": \"GTO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"40.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GTO\"\n  },\n  {\n    \"asset\": \"DCR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01419470\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/DCR\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00005450\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/BTC\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.99508810\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/USDT\"\n  },\n  {\n    \"asset\": \"TUSD\",\n    \"currency\": \"USD\",\n    \"min_size\": \"3.00108040\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/TUSD\"\n  },\n  {\n    \"asset\": \"TUBE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"150.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/TUBE\"\n  },\n  {\n    \"asset\": \"CBC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"33.12883440\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CBC\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00141630\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ETH\"\n  },\n  {\n    \"asset\": \"MFT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"192.85714290\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MFT\"\n  },\n  {\n    \"asset\": \"LOOM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"22.04081630\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/LOOM\"\n  },\n  {\n    \"asset\": \"DGB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"22.72634300\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/DGB\"\n  },\n  {\n    \"asset\": \"RVN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"16.21621620\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/RVN\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.32153220\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/XRP\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.08823530\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ETC\"\n  },\n  {\n    \"asset\": \"BFT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"49.09090910\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BFT\"\n  },\n  {\n    \"asset\": \"GO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"63.52941180\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GO\"\n  },\n  {\n    \"asset\": \"HYDRO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1800.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/HYDRO\"\n  },\n  {\n    \"asset\": \"UPP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"18.81533100\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/UPP\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.51033420\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ADA\"\n  },\n  {\n    \"asset\": \"DOGE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"7.80598490\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/DOGE\"\n  },\n  {\n    \"asset\": \"ENJ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.21841150\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ENJ\"\n  },\n  {\n    \"asset\": \"MET\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.95456960\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MET\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01165440\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/LTC\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"22.55639100\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/TRX\"\n  },\n  {\n    \"asset\": \"DTA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1080.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/DTA\"\n  },\n  {\n    \"asset\": \"EDR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"50.94339620\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/EDR\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00332020\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/BCH\"\n  },\n  {\n    \"asset\": \"XHV\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.14191480\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/XHV\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.85583200\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ZRX\"\n  },\n  {\n    \"asset\": \"NPXS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"771.42857140\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/NPXS\"\n  },\n  {\n    \"asset\": \"PMA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2700.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PMA\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2.45314320\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BAT\"\n  },\n  {\n    \"asset\": \"RVN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"16.37651750\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/RVN\"\n  },\n  {\n    \"asset\": \"SC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"71.34363850\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/SC\"\n  },\n  {\n    \"asset\": \"PAX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"3.00333710\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PAX\"\n  },\n  {\n    \"asset\": \"ZIL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"16.21621620\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ZIL\"\n  },\n  {\n    \"asset\": \"MOC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"19.49458490\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MOC\"\n  },\n  {\n    \"asset\": \"SPC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"49.54128440\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SPC\"\n  },\n  {\n    \"asset\": \"MED\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"26.47058820\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MED\"\n  },\n  {\n    \"asset\": \"BSV\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00999460\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BSV\"\n  },\n  {\n    \"asset\": \"IOST\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"41.53846160\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/IOST\"\n  },\n  {\n    \"asset\": \"BSV\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01028840\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BSV\"\n  },\n  {\n    \"asset\": \"BSV\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01012210\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/BSV\"\n  },\n  {\n    \"asset\": \"SOLVE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"11.36842100\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SOLVE\"\n  },\n  {\n    \"asset\": \"USDS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.98013240\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/USDS\"\n  },\n  {\n    \"asset\": \"PMA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"6665.18551430\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/PMA\"\n  },\n  {\n    \"asset\": \"NPXS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"783.33333330\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/NPXS\"\n  },\n  {\n    \"asset\": \"NPXS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"789.47368420\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/NPXS\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.84153020\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ZRX\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.45491150\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/BAT\"\n  },\n  {\n    \"asset\": \"BSV\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01025640\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/BSV\"\n  },\n  {\n    \"asset\": \"USDS\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.99832090\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/USDS\"\n  },\n  {\n    \"asset\": \"DRGN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"12.79620850\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/DRGN\"\n  },\n  {\n    \"asset\": \"PAX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"3.00150080\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/PAX\"\n  },\n  {\n    \"asset\": \"VITE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"15.88235300\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/VITE\"\n  },\n  {\n    \"asset\": \"IOTX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"68.35443040\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/IOTX\"\n  },\n  {\n    \"asset\": \"DGB\",\n    \"currency\": \"USD\",\n    \"min_size\": \"22.54791430\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/DGB\"\n  },\n  {\n    \"asset\": \"BTM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"12.85714290\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BTM\"\n  },\n  {\n    \"asset\": \"QNT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.07444680\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/QNT\"\n  },\n  {\n    \"asset\": \"BTU\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"6.01336300\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BTU\"\n  },\n  {\n    \"asset\": \"ZEN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.03090210\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ZEN\"\n  },\n  {\n    \"asset\": \"BTT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"385.71428570\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BTT\"\n  },\n  {\n    \"asset\": \"NKN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"4.94505500\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/NKN\"\n  },\n  {\n    \"asset\": \"KMD\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.10375280\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/KMD\"\n  },\n  {\n    \"asset\": \"BTT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"393.50197080\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BTT\"\n  },\n  {\n    \"asset\": \"GRIN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"3.13588850\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GRIN\"\n  },\n  {\n    \"asset\": \"CTXC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"23.27746741\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CTXC\"\n  },\n  {\n    \"asset\": \"HXRO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"4.93150690\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/HXRO\"\n  },\n  {\n    \"asset\": \"META\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"17.47572820\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/META\"\n  },\n  {\n    \"asset\": \"GRIN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3.46151720\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/GRIN\"\n  },\n  {\n    \"asset\": \"FSN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.23417460\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/FSN\"\n  },\n  {\n    \"asset\": \"ANKR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"19.49458490\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ANKR\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.99610320\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/XLM\"\n  },\n  {\n    \"asset\": \"TRAC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"4.95412850\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/TRAC\"\n  },\n  {\n    \"asset\": \"CRO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"15.29745040\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CRO\"\n  },\n  {\n    \"asset\": \"ONT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.34562670\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ONT\"\n  },\n  {\n    \"asset\": \"SOLVE\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"11.61928310\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/SOLVE\"\n  },\n  {\n    \"asset\": \"ONG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.60743600\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ONG\"\n  },\n  {\n    \"asset\": \"MARO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"7.39726030\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MARO\"\n  },\n  {\n    \"asset\": \"PTON\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"5400.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PTON\"\n  },\n  {\n    \"asset\": \"PI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"65.06024100\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PI\"\n  },\n  {\n    \"asset\": \"ANKR\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"19.52097470\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/ANKR\"\n  },\n  {\n    \"asset\": \"PLA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1800.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PLA\"\n  },\n  {\n    \"asset\": \"ORBS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"20.07434940\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ORBS\"\n  },\n  {\n    \"asset\": \"ENJ\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.21354960\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ENJ\"\n  },\n  {\n    \"asset\": \"VBK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"186.20689660\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/VBK\"\n  },\n  {\n    \"asset\": \"BORA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"13.36633660\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BORA\"\n  },\n  {\n    \"asset\": \"CND\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"90.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CND\"\n  },\n  {\n    \"asset\": \"ONT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.34633890\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ONT\"\n  },\n  {\n    \"asset\": \"FX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"4.17956660\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/FX\"\n  },\n  {\n    \"asset\": \"FX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"4.00045400\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/FX\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.15273650\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ATOM\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.15438460\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ATOM\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.15205420\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/ATOM\"\n  },\n  {\n    \"asset\": \"OCEAN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.12431160\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/OCEAN\"\n  },\n  {\n    \"asset\": \"OCEAN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2.16730200\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/OCEAN\"\n  },\n  {\n    \"asset\": \"BWX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"30.85714290\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BWX\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.25000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SNX\"\n  },\n  {\n    \"asset\": \"VDX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1350.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/VDX\"\n  },\n  {\n    \"asset\": \"VDX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1488.95936630\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/VDX\"\n  },\n  {\n    \"asset\": \"VDX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1639.53488370\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/VDX\"\n  },\n  {\n    \"asset\": \"COSM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1350.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/COSM\"\n  },\n  {\n    \"asset\": \"LAMB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"36.48648650\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/LAMB\"\n  },\n  {\n    \"asset\": \"STPT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"44.26229510\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/STPT\"\n  },\n  {\n    \"asset\": \"MKR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00087160\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MKR\"\n  },\n  {\n    \"asset\": \"MKR\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00088520\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/MKR\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.98177800\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/DAI\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"2.94473920\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/DAI\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2.99662880\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/DAI\"\n  },\n  {\n    \"asset\": \"FNB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"337.50000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/FNB\"\n  },\n  {\n    \"asset\": \"PROM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.25714290\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PROM\"\n  },\n  {\n    \"asset\": \"ABYSS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"45.76271190\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ABYSS\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.44705690\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/EOS\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.44626890\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/EOS\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.44981910\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/EOS\"\n  },\n  {\n    \"asset\": \"AMP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"52.94117650\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/AMP\"\n  },\n  {\n    \"asset\": \"DUSK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"10.44487430\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/DUSK\"\n  },\n  {\n    \"asset\": \"URAC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1800.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/URAC\"\n  },\n  {\n    \"asset\": \"BRZ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"16.77018630\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BRZ\"\n  },\n  {\n    \"asset\": \"TEMCO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"207.69230770\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/TEMCO\"\n  },\n  {\n    \"asset\": \"SPIN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2700.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SPIN\"\n  },\n  {\n    \"asset\": \"LUNA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.20987180\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/LUNA\"\n  },\n  {\n    \"asset\": \"CHR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"58.13953488\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CHR\"\n  },\n  {\n    \"asset\": \"ARDX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1800.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ARDX\"\n  },\n  {\n    \"asset\": \"ARDX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1800.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/ARDX\"\n  },\n  {\n    \"asset\": \"ARDX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1800.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ARDX\"\n  },\n  {\n    \"asset\": \"TUDA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"234.78260870\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/TUDA\"\n  },\n  {\n    \"asset\": \"UTK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"5.59006210\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/UTK\"\n  },\n  {\n    \"asset\": \"PXL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"32.53012050\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PXL\"\n  },\n  {\n    \"asset\": \"AKRO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"59.34065930\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/AKRO\"\n  },\n  {\n    \"asset\": \"TSHP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"117.39130430\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/TSHP\"\n  },\n  {\n    \"asset\": \"HEDG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.04545450\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/HEDG\"\n  },\n  {\n    \"asset\": \"MRPH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.53583620\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MRPH\"\n  },\n  {\n    \"asset\": \"HBAR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"10.56751470\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/HBAR\"\n  },\n  {\n    \"asset\": \"HBAR\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"10.58558560\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/HBAR\"\n  },\n  {\n    \"asset\": \"HBAR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10.66392530\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/HBAR\"\n  },\n  {\n    \"asset\": \"HBAR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"10.70187310\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/HBAR\"\n  },\n  {\n    \"asset\": \"VET\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"12.79620850\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/VET\"\n  },\n  {\n    \"asset\": \"VET\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"12.94710060\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/VET\"\n  },\n  {\n    \"asset\": \"SIX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"24.65753420\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SIX\"\n  },\n  {\n    \"asset\": \"WGP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"234.78260870\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/WGP\"\n  },\n  {\n    \"asset\": \"APM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"90.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/APM\"\n  },\n  {\n    \"asset\": \"FLETA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"150.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/FLETA\"\n  },\n  {\n    \"asset\": \"DCR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01415550\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/DCR\"\n  },\n  {\n    \"asset\": \"HDAC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"43.20000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/HDAC\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.08161540\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/LINK\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.45027650\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/EOS\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.51968050\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/XTZ\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.51815180\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/XTZ\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.52651070\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/XTZ\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.52191800\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/XTZ\"\n  },\n  {\n    \"asset\": \"XTP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"415.38461540\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/XTP\"\n  },\n  {\n    \"asset\": \"CTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.53417750\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CTC\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.15361140\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ATOM\"\n  },\n  {\n    \"asset\": \"IOTA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.39932620\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/IOTA\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.08174270\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/LINK\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.08177790\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/LINK\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.08268920\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/LINK\"\n  },\n  {\n    \"asset\": \"VRA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"72.97297300\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/VRA\"\n  },\n  {\n    \"asset\": \"ABBC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"21.09375000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ABBC\"\n  },\n  {\n    \"asset\": \"FRSP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1800.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/FRSP\"\n  },\n  {\n    \"asset\": \"WICC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"5.77540110\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/WICC\"\n  },\n  {\n    \"asset\": \"WICC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.93471810\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/WICC\"\n  },\n  {\n    \"asset\": \"NMR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.04241610\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/NMR\"\n  },\n  {\n    \"asset\": \"RVN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"16.30959440\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/RVN\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.99102690\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/DAI\"\n  },\n  {\n    \"asset\": \"VANY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1800.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/VANY\"\n  },\n  {\n    \"asset\": \"BOA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"8.83797050\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BOA\"\n  },\n  {\n    \"asset\": \"CPC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"138.46153850\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CPC\"\n  },\n  {\n    \"asset\": \"CKB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"120.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CKB\"\n  },\n  {\n    \"asset\": \"CKB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"121.98905600\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/CKB\"\n  },\n  {\n    \"asset\": \"MOF\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"6.67490730\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MOF\"\n  },\n  {\n    \"asset\": \"MOF\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"6.75675160\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/MOF\"\n  },\n  {\n    \"asset\": \"WAXP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"14.79503330\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/WAXP\"\n  },\n  {\n    \"asset\": \"WAXP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"15.06888060\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/WAXP\"\n  },\n  {\n    \"asset\": \"UPT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"675.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/UPT\"\n  },\n  {\n    \"asset\": \"UPUSD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"3.34987590\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/UPUSD\"\n  },\n  {\n    \"asset\": \"UPEUR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"3.01844610\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/UPEUR\"\n  },\n  {\n    \"asset\": \"CVT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"11.44067800\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CVT\"\n  },\n  {\n    \"asset\": \"HBD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.99041650\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/HBD\"\n  },\n  {\n    \"asset\": \"HIVE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"5.64263320\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/HIVE\"\n  },\n  {\n    \"asset\": \"CRO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"15.43606900\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/CRO\"\n  },\n  {\n    \"asset\": \"SXP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.81215220\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SXP\"\n  },\n  {\n    \"asset\": \"ELAMA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"125.58139540\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ELAMA\"\n  },\n  {\n    \"asset\": \"STC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"40.90909090\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/STC\"\n  },\n  {\n    \"asset\": \"IRIS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"17.82178220\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/IRIS\"\n  },\n  {\n    \"asset\": \"IRIS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"17.85820580\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/IRIS\"\n  },\n  {\n    \"asset\": \"BOA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"8.12523410\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BOA\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00044994\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/BTC\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.02330566\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/ETH\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"3.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/USDT\"\n  },\n  {\n    \"asset\": \"BSV\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01954270\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/BSV\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01407285\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/BCH\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"21.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/TRX\"\n  },\n  {\n    \"asset\": \"APM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"93.72071230\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/APM\"\n  },\n  {\n    \"asset\": \"HXRO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.04278610\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/HXRO\"\n  },\n  {\n    \"asset\": \"OGN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.75040520\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/OGN\"\n  },\n  {\n    \"asset\": \"OGN\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.72984910\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/OGN\"\n  },\n  {\n    \"asset\": \"ALGO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.02778820\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ALGO\"\n  },\n  {\n    \"asset\": \"OXT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"4.41537200\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/OXT\"\n  },\n  {\n    \"asset\": \"OXT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"4.47681010\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/OXT\"\n  },\n  {\n    \"asset\": \"ICX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.38426050\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ICX\"\n  },\n  {\n    \"asset\": \"USDC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.98013240\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/USDC\"\n  },\n  {\n    \"asset\": \"USDC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"2.99242340\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/USDC\"\n  },\n  {\n    \"asset\": \"USDC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.99982000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/USDC\"\n  },\n  {\n    \"asset\": \"USDC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3.00441650\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/USDC\"\n  },\n  {\n    \"asset\": \"UPUSD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3.86100380\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/UPUSD\"\n  },\n  {\n    \"asset\": \"BRZ\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"16.85677360\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BRZ\"\n  },\n  {\n    \"asset\": \"XUC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"5.07042260\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/XUC\"\n  },\n  {\n    \"asset\": \"MDT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"43.20000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MDT\"\n  },\n  {\n    \"asset\": \"MDT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"44.70272690\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/MDT\"\n  },\n  {\n    \"asset\": \"REV\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"234.78260870\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/REV\"\n  },\n  {\n    \"asset\": \"XUC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.11509930\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/XUC\"\n  },\n  {\n    \"asset\": \"REV\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"231.83925810\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/REV\"\n  },\n  {\n    \"asset\": \"UCT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"317.64705880\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/UCT\"\n  },\n  {\n    \"asset\": \"UCT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"340.52213390\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/UCT\"\n  },\n  {\n    \"asset\": \"YOU\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"29.18918920\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/YOU\"\n  },\n  {\n    \"asset\": \"HIVE\",\n    \"currency\": \"USD\",\n    \"min_size\": \"5.58919420\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/HIVE\"\n  },\n  {\n    \"asset\": \"HIVE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.59670170\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/HIVE\"\n  },\n  {\n    \"asset\": \"ENJ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.23046640\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ENJ\"\n  },\n  {\n    \"asset\": \"ENJ\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.22238790\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/ENJ\"\n  },\n  {\n    \"asset\": \"HDAO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"142.10526320\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/HDAO\"\n  },\n  {\n    \"asset\": \"HDAO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"152.20700150\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/HDAO\"\n  },\n  {\n    \"asset\": \"DNA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1800.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/DNA\"\n  },\n  {\n    \"asset\": \"DNA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1415.09433960\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/DNA\"\n  },\n  {\n    \"asset\": \"SOLVE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"11.63737930\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SOLVE\"\n  },\n  {\n    \"asset\": \"CNTM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"4.96780130\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CNTM\"\n  },\n  {\n    \"asset\": \"LBC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"16.19433200\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/LBC\"\n  },\n  {\n    \"asset\": \"LOON\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"59.34065930\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/LOON\"\n  },\n  {\n    \"asset\": \"TNC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"69.23076920\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/TNC\"\n  },\n  {\n    \"asset\": \"LOON\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"59.55926150\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/LOON\"\n  },\n  {\n    \"asset\": \"ALGO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.05479450\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ALGO\"\n  },\n  {\n    \"asset\": \"ALGO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2.07749040\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ALGO\"\n  },\n  {\n    \"asset\": \"UBT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.54065620\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/UBT\"\n  },\n  {\n    \"asset\": \"UBT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.63567390\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/UBT\"\n  },\n  {\n    \"asset\": \"DEP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"300.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/DEP\"\n  },\n  {\n    \"asset\": \"DEP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"294.40628070\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/DEP\"\n  },\n  {\n    \"asset\": \"USD\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"3.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/USD\"\n  },\n  {\n    \"asset\": \"CELO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.74719800\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CELO\"\n  },\n  {\n    \"asset\": \"CELO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.75834590\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/CELO\"\n  },\n  {\n    \"asset\": \"CELO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.75037520\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/CELO\"\n  },\n  {\n    \"asset\": \"CELO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.75547720\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/CELO\"\n  },\n  {\n    \"asset\": \"CNTM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"4.72017240\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/CNTM\"\n  },\n  {\n    \"asset\": \"VID\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"5.44904140\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/VID\"\n  },\n  {\n    \"asset\": \"HNS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"5.21739130\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/HNS\"\n  },\n  {\n    \"asset\": \"HNS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"5.16634910\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/HNS\"\n  },\n  {\n    \"asset\": \"HNS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"4.65116280\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/HNS\"\n  },\n  {\n    \"asset\": \"PHNX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"14.02597400\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PHNX\"\n  },\n  {\n    \"asset\": \"UTI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1350.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/UTI\"\n  },\n  {\n    \"asset\": \"SOLVE\",\n    \"currency\": \"USD\",\n    \"min_size\": \"11.56069370\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/SOLVE\"\n  },\n  {\n    \"asset\": \"4ART\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"26.47058820\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/4ART\"\n  },\n  {\n    \"asset\": \"4ART\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"26.95659990\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/4ART\"\n  },\n  {\n    \"asset\": \"VLX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"18.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/VLX\"\n  },\n  {\n    \"asset\": \"VLX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"18.40490800\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/VLX\"\n  },\n  {\n    \"asset\": \"MET\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.96856630\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/MET\"\n  },\n  {\n    \"asset\": \"TRAC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"4.99698760\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/TRAC\"\n  },\n  {\n    \"asset\": \"TRAC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"4.86042480\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/TRAC\"\n  },\n  {\n    \"asset\": \"ME\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"216.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ME\"\n  },\n  {\n    \"asset\": \"DAWN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.57679980\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/DAWN\"\n  },\n  {\n    \"asset\": \"KDA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"3.09633030\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/KDA\"\n  },\n  {\n    \"asset\": \"KDA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3.12327570\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/KDA\"\n  },\n  {\n    \"asset\": \"BTE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.79461610\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BTE\"\n  },\n  {\n    \"asset\": \"BTE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.73711640\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BTE\"\n  },\n  {\n    \"asset\": \"GXC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.94599020\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GXC\"\n  },\n  {\n    \"asset\": \"GXC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2.91047380\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/GXC\"\n  },\n  {\n    \"asset\": \"LUCY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"186.20689660\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/LUCY\"\n  },\n  {\n    \"asset\": \"LUCY\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"183.03843810\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/LUCY\"\n  },\n  {\n    \"asset\": \"COMP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00673330\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/COMP\"\n  },\n  {\n    \"asset\": \"COMP\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00676260\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/COMP\"\n  },\n  {\n    \"asset\": \"COMP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00676780\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/COMP\"\n  },\n  {\n    \"asset\": \"COMP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00681930\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/COMP\"\n  },\n  {\n    \"asset\": \"LUNA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.21215130\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/LUNA\"\n  },\n  {\n    \"asset\": \"KDAG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"4.88245930\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/KDAG\"\n  },\n  {\n    \"asset\": \"KDAG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"4.92182500\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/KDAG\"\n  },\n  {\n    \"asset\": \"WBTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00005380\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/WBTC\"\n  },\n  {\n    \"asset\": \"WBTC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00005630\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/WBTC\"\n  },\n  {\n    \"asset\": \"WBTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00005300\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/WBTC\"\n  },\n  {\n    \"asset\": \"DOGE\",\n    \"currency\": \"USD\",\n    \"min_size\": \"7.78634270\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/DOGE\"\n  },\n  {\n    \"asset\": \"DOGE\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"7.79177720\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/DOGE\"\n  },\n  {\n    \"asset\": \"UQC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.13161100\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/UQC\"\n  },\n  {\n    \"asset\": \"UQC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.13558100\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/UQC\"\n  },\n  {\n    \"asset\": \"ECOC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"91.52542370\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ECOC\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"6.01017690\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/XLM\"\n  },\n  {\n    \"asset\": \"ECOC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"85.71428570\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ECOC\"\n  },\n  {\n    \"asset\": \"FOR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"31.39534880\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/FOR\"\n  },\n  {\n    \"asset\": \"CRO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"15.35947710\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/CRO\"\n  },\n  {\n    \"asset\": \"SKM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"385.71428570\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SKM\"\n  },\n  {\n    \"asset\": \"SKM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"339.36651590\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SKM\"\n  },\n  {\n    \"asset\": \"CRO\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"20.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/CRO\"\n  },\n  {\n    \"asset\": \"INSTAR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"88.52459020\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/INSTAR\"\n  },\n  {\n    \"asset\": \"SUTER\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"120.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SUTER\"\n  },\n  {\n    \"asset\": \"SUTER\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"121.06537530\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SUTER\"\n  },\n  {\n    \"asset\": \"CRO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"15.31471740\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/CRO\"\n  },\n  {\n    \"asset\": \"VANY\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1785.71428570\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/VANY\"\n  },\n  {\n    \"asset\": \"SUKU\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"4.63121780\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SUKU\"\n  },\n  {\n    \"asset\": \"CGT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.05201360\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CGT\"\n  },\n  {\n    \"asset\": \"CGT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.05271300\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/CGT\"\n  },\n  {\n    \"asset\": \"KSM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00797900\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/KSM\"\n  },\n  {\n    \"asset\": \"KSM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00808960\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/KSM\"\n  },\n  {\n    \"asset\": \"KSM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00790150\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/KSM\"\n  },\n  {\n    \"asset\": \"SUKU\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"4.56885260\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SUKU\"\n  },\n  {\n    \"asset\": \"CNS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1350.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CNS\"\n  },\n  {\n    \"asset\": \"CNS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1639.34426230\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/CNS\"\n  },\n  {\n    \"asset\": \"MFA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"131.70731710\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MFA\"\n  },\n  {\n    \"asset\": \"MFA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"140.38371550\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/MFA\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.08448190\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/DOT\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.08489360\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/DOT\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.08579270\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/DOT\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.08521520\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/DOT\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/DOT\"\n  },\n  {\n    \"asset\": \"SENSO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.93000540\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SENSO\"\n  },\n  {\n    \"asset\": \"SENSO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"2.90703670\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/SENSO\"\n  },\n  {\n    \"asset\": \"FME\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1800.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/FME\"\n  },\n  {\n    \"asset\": \"FME\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1485.14851490\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/FME\"\n  },\n  {\n    \"asset\": \"INX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"675.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/INX\"\n  },\n  {\n    \"asset\": \"INX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"600.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/INX\"\n  },\n  {\n    \"asset\": \"FCT2\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"15.25423730\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/FCT2\"\n  },\n  {\n    \"asset\": \"TRYB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"25.71428570\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/TRYB\"\n  },\n  {\n    \"asset\": \"TRYB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"25.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/TRYB\"\n  },\n  {\n    \"asset\": \"KLAY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.20428190\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/KLAY\"\n  },\n  {\n    \"asset\": \"KLAY\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.17779620\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/KLAY\"\n  },\n  {\n    \"asset\": \"UST\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.96703300\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/UST\"\n  },\n  {\n    \"asset\": \"UST\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3.00601200\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/UST\"\n  },\n  {\n    \"asset\": \"MKR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00088000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/MKR\"\n  },\n  {\n    \"asset\": \"KLV\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"37.50000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/KLV\"\n  },\n  {\n    \"asset\": \"KLV\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"38.51585570\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/KLV\"\n  },\n  {\n    \"asset\": \"OXEN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.87760780\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/OXEN\"\n  },\n  {\n    \"asset\": \"OXEN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.91795010\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/OXEN\"\n  },\n  {\n    \"asset\": \"USDN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"3.03370790\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/USDN\"\n  },\n  {\n    \"asset\": \"USDN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3.07660750\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/USDN\"\n  },\n  {\n    \"asset\": \"SDT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.19423000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SDT\"\n  },\n  {\n    \"asset\": \"SDT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2.09351010\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SDT\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MATIC\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/MATIC\"\n  },\n  {\n    \"asset\": \"RVC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2700.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/RVC\"\n  },\n  {\n    \"asset\": \"RVC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2830.18867930\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/RVC\"\n  },\n  {\n    \"asset\": \"KRT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2700.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/KRT\"\n  },\n  {\n    \"asset\": \"KRT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3896.10389610\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/KRT\"\n  },\n  {\n    \"asset\": \"DUCATO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.13351790\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/DUCATO\"\n  },\n  {\n    \"asset\": \"LMCH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"415.38461540\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/LMCH\"\n  },\n  {\n    \"asset\": \"LMCH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"494.23393740\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/LMCH\"\n  },\n  {\n    \"asset\": \"GST\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"3.28267480\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GST\"\n  },\n  {\n    \"asset\": \"GST\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3.33333330\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/GST\"\n  },\n  {\n    \"asset\": \"ECELL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"55.67010310\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ECELL\"\n  },\n  {\n    \"asset\": \"ECELL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"56.25351590\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ECELL\"\n  },\n  {\n    \"asset\": \"BWF\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"245.45454550\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BWF\"\n  },\n  {\n    \"asset\": \"BWF\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"237.71790810\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BWF\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.09801790\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/UNI\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.09873820\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/UNI\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.09802320\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/UNI\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.09852540\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/UNI\"\n  },\n  {\n    \"asset\": \"EXE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"490.90909090\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/EXE\"\n  },\n  {\n    \"asset\": \"EXE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"483.09178740\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/EXE\"\n  },\n  {\n    \"asset\": \"UPXAU\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00173710\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/UPXAU\"\n  },\n  {\n    \"asset\": \"ETHBULL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00050000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ETHBULL\"\n  },\n  {\n    \"asset\": \"ADABEAR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"300000.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ADABEAR\"\n  },\n  {\n    \"asset\": \"ADABULL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00017160\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ADABULL\"\n  },\n  {\n    \"asset\": \"ETHBEAR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"100000.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ETHBEAR\"\n  },\n  {\n    \"asset\": \"ETHBULL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00061480\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ETHBULL\"\n  },\n  {\n    \"asset\": \"BEAR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3061.22448980\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BEAR\"\n  },\n  {\n    \"asset\": \"BULL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00005500\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BULL\"\n  },\n  {\n    \"asset\": \"ADABEAR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"300000.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ADABEAR\"\n  },\n  {\n    \"asset\": \"ADABULL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00017140\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ADABULL\"\n  },\n  {\n    \"asset\": \"ETHBEAR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"150000.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ETHBEAR\"\n  },\n  {\n    \"asset\": \"BULL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00005410\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/BULL\"\n  },\n  {\n    \"asset\": \"BEAR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"3030.30303030\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/BEAR\"\n  },\n  {\n    \"asset\": \"DFI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.88510080\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/DFI\"\n  },\n  {\n    \"asset\": \"DFI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.88867300\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/DFI\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01913610\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/FIL\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01914850\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/FIL\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01915120\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/FIL\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01909650\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/FIL\"\n  },\n  {\n    \"asset\": \"ELA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.32494880\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ELA\"\n  },\n  {\n    \"asset\": \"ELA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.32786890\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ELA\"\n  },\n  {\n    \"asset\": \"CUSD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.97356830\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CUSD\"\n  },\n  {\n    \"asset\": \"CUSD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3.00300300\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/CUSD\"\n  },\n  {\n    \"asset\": \"CAMP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2700.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CAMP\"\n  },\n  {\n    \"asset\": \"CAMP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2158.27338130\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/CAMP\"\n  },\n  {\n    \"asset\": \"QLC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"32.53012050\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/QLC\"\n  },\n  {\n    \"asset\": \"QLC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"23.70979220\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/QLC\"\n  },\n  {\n    \"asset\": \"KAI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"24.65753420\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/KAI\"\n  },\n  {\n    \"asset\": \"KAI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"24.39024390\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/KAI\"\n  },\n  {\n    \"asset\": \"XWC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.91289930\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/XWC\"\n  },\n  {\n    \"asset\": \"GLEEC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"5.37848610\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GLEEC\"\n  },\n  {\n    \"asset\": \"AKN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"8.61244020\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/AKN\"\n  },\n  {\n    \"asset\": \"AKN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"8.61326440\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/AKN\"\n  },\n  {\n    \"asset\": \"NVT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"38.57142860\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/NVT\"\n  },\n  {\n    \"asset\": \"NVT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"39.46849100\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/NVT\"\n  },\n  {\n    \"asset\": \"LCS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"15.37672990\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/LCS\"\n  },\n  {\n    \"asset\": \"SHR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"40.60150380\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SHR\"\n  },\n  {\n    \"asset\": \"SHR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"41.37360360\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SHR\"\n  },\n  {\n    \"asset\": \"UMA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.10844030\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/UMA\"\n  },\n  {\n    \"asset\": \"UMA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.10919090\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/UMA\"\n  },\n  {\n    \"asset\": \"UMA\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.37500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/UMA\"\n  },\n  {\n    \"asset\": \"UMA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.10513770\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/UMA\"\n  },\n  {\n    \"asset\": \"UMA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.10759250\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/UMA\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00837610\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/AAVE\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00853260\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/AAVE\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.04730000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/AAVE\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00857140\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/AAVE\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00848500\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/AAVE\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.05532390\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BAL\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.05423080\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/BAL\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.23700000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/BAL\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.05657810\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/BAL\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.05656320\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BAL\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"3.41555980\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/REN\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"3.32916200\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/REN\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"9.40500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/REN\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"3.47959220\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/REN\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3.44431690\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/REN\"\n  },\n  {\n    \"asset\": \"RENBTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00005390\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/RENBTC\"\n  },\n  {\n    \"asset\": \"RENBTC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.00005470\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/RENBTC\"\n  },\n  {\n    \"asset\": \"RENBTC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00018500\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/RENBTC\"\n  },\n  {\n    \"asset\": \"RENBTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00005420\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/RENBTC\"\n  },\n  {\n    \"asset\": \"RENBTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00005430\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/RENBTC\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.07956820\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/KNC\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.08908900\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/KNC\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"3.25000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/KNC\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.11111110\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/KNC\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.11018600\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/KNC\"\n  },\n  {\n    \"asset\": \"BAND\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.19145540\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BAND\"\n  },\n  {\n    \"asset\": \"BAND\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.19926060\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/BAND\"\n  },\n  {\n    \"asset\": \"BAND\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.51100000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/BAND\"\n  },\n  {\n    \"asset\": \"BAND\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.20040080\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/BAND\"\n  },\n  {\n    \"asset\": \"BAND\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.18767600\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BAND\"\n  },\n  {\n    \"asset\": \"YFL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01257890\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/YFL\"\n  },\n  {\n    \"asset\": \"YFL\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.01190730\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/YFL\"\n  },\n  {\n    \"asset\": \"YFL\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00590000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/YFL\"\n  },\n  {\n    \"asset\": \"YFL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01298300\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/YFL\"\n  },\n  {\n    \"asset\": \"YFL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01071430\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/YFL\"\n  },\n  {\n    \"asset\": \"BBC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"19.21708190\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BBC\"\n  },\n  {\n    \"asset\": \"BBC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"20.14775020\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BBC\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"2.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/XRP\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"3.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/ADA\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"16.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/XLM\"\n  },\n  {\n    \"asset\": \"SG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.76903360\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SG\"\n  },\n  {\n    \"asset\": \"AAPL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.02194800\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/AAPL\"\n  },\n  {\n    \"asset\": \"AAPL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.02222140\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/AAPL\"\n  },\n  {\n    \"asset\": \"AAPL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.02254930\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/AAPL\"\n  },\n  {\n    \"asset\": \"AMZN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00090330\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/AMZN\"\n  },\n  {\n    \"asset\": \"AMZN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00088170\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/AMZN\"\n  },\n  {\n    \"asset\": \"AMZN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00087940\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/AMZN\"\n  },\n  {\n    \"asset\": \"BABA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01215780\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BABA\"\n  },\n  {\n    \"asset\": \"BABA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01250540\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/BABA\"\n  },\n  {\n    \"asset\": \"BABA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01268810\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BABA\"\n  },\n  {\n    \"asset\": \"BILI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.02828880\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BILI\"\n  },\n  {\n    \"asset\": \"BILI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.02803740\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/BILI\"\n  },\n  {\n    \"asset\": \"BILI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.02872600\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BILI\"\n  },\n  {\n    \"asset\": \"BNTX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01947180\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BNTX\"\n  },\n  {\n    \"asset\": \"BNTX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01966050\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/BNTX\"\n  },\n  {\n    \"asset\": \"BNTX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.02069020\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BNTX\"\n  },\n  {\n    \"asset\": \"BYND\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.02449760\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BYND\"\n  },\n  {\n    \"asset\": \"BYND\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.02162940\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/BYND\"\n  },\n  {\n    \"asset\": \"BYND\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.02162940\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BYND\"\n  },\n  {\n    \"asset\": \"FB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00956780\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/FB\"\n  },\n  {\n    \"asset\": \"FB\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00976030\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/FB\"\n  },\n  {\n    \"asset\": \"FB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00996380\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/FB\"\n  },\n  {\n    \"asset\": \"GOOGL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00129650\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GOOGL\"\n  },\n  {\n    \"asset\": \"GOOGL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00130700\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/GOOGL\"\n  },\n  {\n    \"asset\": \"GOOGL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00131880\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/GOOGL\"\n  },\n  {\n    \"asset\": \"NFLX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00528320\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/NFLX\"\n  },\n  {\n    \"asset\": \"NFLX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00546800\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/NFLX\"\n  },\n  {\n    \"asset\": \"NFLX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00555680\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/NFLX\"\n  },\n  {\n    \"asset\": \"PFE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.07634560\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PFE\"\n  },\n  {\n    \"asset\": \"PFE\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.07734350\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/PFE\"\n  },\n  {\n    \"asset\": \"PFE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.07832900\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/PFE\"\n  },\n  {\n    \"asset\": \"SPY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00715340\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SPY\"\n  },\n  {\n    \"asset\": \"SPY\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00718510\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/SPY\"\n  },\n  {\n    \"asset\": \"SPY\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00726420\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SPY\"\n  },\n  {\n    \"asset\": \"TSLA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00426030\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/TSLA\"\n  },\n  {\n    \"asset\": \"TSLA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00421900\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/TSLA\"\n  },\n  {\n    \"asset\": \"TSLA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00418290\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/TSLA\"\n  },\n  {\n    \"asset\": \"ADK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"3.23935210\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ADK\"\n  },\n  {\n    \"asset\": \"UPXAU\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00168800\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/UPXAU\"\n  },\n  {\n    \"asset\": \"GNC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"78.26086960\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GNC\"\n  },\n  {\n    \"asset\": \"GNC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"79.34408890\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/GNC\"\n  },\n  {\n    \"asset\": \"CBC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"32.70824250\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/CBC\"\n  },\n  {\n    \"asset\": \"FIT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"675.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/FIT\"\n  },\n  {\n    \"asset\": \"ACXT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.10377680\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ACXT\"\n  },\n  {\n    \"asset\": \"TEA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"10.15037600\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/TEA\"\n  },\n  {\n    \"asset\": \"TEA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"10.45332590\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/TEA\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.86399720\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GRT\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.79890540\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/GRT\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1.62000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/GRT\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.88475360\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/GRT\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.88445760\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/GRT\"\n  },\n  {\n    \"asset\": \"KOK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"5.14285710\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/KOK\"\n  },\n  {\n    \"asset\": \"KOK\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.19480520\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/KOK\"\n  },\n  {\n    \"asset\": \"BTCV\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.06203480\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BTCV\"\n  },\n  {\n    \"asset\": \"BTCV\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.06257560\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BTCV\"\n  },\n  {\n    \"asset\": \"SAND\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.75749430\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SAND\"\n  },\n  {\n    \"asset\": \"PANDO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.96930530\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/PANDO\"\n  },\n  {\n    \"asset\": \"GOLD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"308.00821360\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/GOLD\"\n  },\n  {\n    \"asset\": \"MTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"20.37735850\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MTC\"\n  },\n  {\n    \"asset\": \"LBC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"15.66666670\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/LBC\"\n  },\n  {\n    \"asset\": \"LBC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"15.77121230\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/LBC\"\n  },\n  {\n    \"asset\": \"OGT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"4.91803280\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/OGT\"\n  },\n  {\n    \"asset\": \"OGT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"4.97100250\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/OGT\"\n  },\n  {\n    \"asset\": \"MCH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"13.92563710\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/MCH\"\n  },\n  {\n    \"asset\": \"MYST\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"6.83869790\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/MYST\"\n  },\n  {\n    \"asset\": \"AMC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.31640010\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/AMC\"\n  },\n  {\n    \"asset\": \"AMC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.31618890\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/AMC\"\n  },\n  {\n    \"asset\": \"AMC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.31505990\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/AMC\"\n  },\n  {\n    \"asset\": \"GME\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01766880\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GME\"\n  },\n  {\n    \"asset\": \"GME\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01804190\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/GME\"\n  },\n  {\n    \"asset\": \"GME\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01782430\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/GME\"\n  },\n  {\n    \"asset\": \"BB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.36043250\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BB\"\n  },\n  {\n    \"asset\": \"BB\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.34642030\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/BB\"\n  },\n  {\n    \"asset\": \"BB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.35281670\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BB\"\n  },\n  {\n    \"asset\": \"NOK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.72424890\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/NOK\"\n  },\n  {\n    \"asset\": \"NOK\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.72957200\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/NOK\"\n  },\n  {\n    \"asset\": \"NOK\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.72167430\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/NOK\"\n  },\n  {\n    \"asset\": \"SLV\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.12325390\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SLV\"\n  },\n  {\n    \"asset\": \"SLV\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.12417730\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/SLV\"\n  },\n  {\n    \"asset\": \"SLV\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.12573870\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SLV\"\n  },\n  {\n    \"asset\": \"SQ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01227740\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SQ\"\n  },\n  {\n    \"asset\": \"SQ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01229310\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/SQ\"\n  },\n  {\n    \"asset\": \"SQ\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01216910\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SQ\"\n  },\n  {\n    \"asset\": \"MSTR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00471690\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MSTR\"\n  },\n  {\n    \"asset\": \"MSTR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00458840\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/MSTR\"\n  },\n  {\n    \"asset\": \"MSTR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00474480\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/MSTR\"\n  },\n  {\n    \"asset\": \"PHNX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"13.86898430\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/PHNX\"\n  },\n  {\n    \"asset\": \"DOGE\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"40.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/DOGE\"\n  },\n  {\n    \"asset\": \"RDD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"448.43049330\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/RDD\"\n  },\n  {\n    \"asset\": \"UPCO2\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.42342980\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/UPCO2\"\n  },\n  {\n    \"asset\": \"UPCO2\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.44936340\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/UPCO2\"\n  },\n  {\n    \"asset\": \"VRA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"74.18397630\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/VRA\"\n  },\n  {\n    \"asset\": \"PROS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2.85714290\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/PROS\"\n  },\n  {\n    \"asset\": \"TFC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"5.67226890\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/TFC\"\n  },\n  {\n    \"asset\": \"TFC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.73449300\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/TFC\"\n  },\n  {\n    \"asset\": \"DGB\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"45.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/DGB\"\n  },\n  {\n    \"asset\": \"CBC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"28.20000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/CBC\"\n  },\n  {\n    \"asset\": \"SMBSWAP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"3.05257210\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SMBSWAP\"\n  },\n  {\n    \"asset\": \"SMBSWAP\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"3.05412960\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/SMBSWAP\"\n  },\n  {\n    \"asset\": \"SMBSWAP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3.12503260\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SMBSWAP\"\n  },\n  {\n    \"asset\": \"SMARTCREDIT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.39261880\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SMARTCREDIT\"\n  },\n  {\n    \"asset\": \"WXBTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.55658630\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/WXBTC\"\n  },\n  {\n    \"asset\": \"WXBTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.54539950\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/WXBTC\"\n  },\n  {\n    \"asset\": \"SBT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"94.30996540\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SBT\"\n  },\n  {\n    \"asset\": \"CUSD\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"2.99483870\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/CUSD\"\n  },\n  {\n    \"asset\": \"GLEEC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.52486190\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/GLEEC\"\n  },\n  {\n    \"asset\": \"AGRS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2.46874970\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/AGRS\"\n  },\n  {\n    \"asset\": \"BEST\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.29361640\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BEST\"\n  },\n  {\n    \"asset\": \"CUT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"8.46394980\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CUT\"\n  },\n  {\n    \"asset\": \"CUT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"8.62192850\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/CUT\"\n  },\n  {\n    \"asset\": \"SLICE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"3.32103320\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SLICE\"\n  },\n  {\n    \"asset\": \"CEL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.48578630\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CEL\"\n  },\n  {\n    \"asset\": \"CEL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.49099840\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/CEL\"\n  },\n  {\n    \"asset\": \"SLICE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3.44831550\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SLICE\"\n  },\n  {\n    \"asset\": \"IQQ\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"15.41623850\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/IQQ\"\n  },\n  {\n    \"asset\": \"IQQ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"15.34090910\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/IQQ\"\n  },\n  {\n    \"asset\": \"REVV\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"10.40462430\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/REVV\"\n  },\n  {\n    \"asset\": \"REVV\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"10.41666670\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/REVV\"\n  },\n  {\n    \"asset\": \"XEM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"7.79423230\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/XEM\"\n  },\n  {\n    \"asset\": \"IOTA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.41442720\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/IOTA\"\n  },\n  {\n    \"asset\": \"IOTA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.41776940\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/IOTA\"\n  },\n  {\n    \"asset\": \"XEM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"7.88705730\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/XEM\"\n  },\n  {\n    \"asset\": \"UBQ\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.19552490\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/UBQ\"\n  },\n  {\n    \"asset\": \"LSK\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.56295740\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/LSK\"\n  },\n  {\n    \"asset\": \"WAVES\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.23940630\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/WAVES\"\n  },\n  {\n    \"asset\": \"KMD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.10091740\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/KMD\"\n  },\n  {\n    \"asset\": \"VAL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.92364530\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/VAL\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/MATIC\"\n  },\n  {\n    \"asset\": \"ROOM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.92788290\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ROOM\"\n  },\n  {\n    \"asset\": \"ROOM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.95185430\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ROOM\"\n  },\n  {\n    \"asset\": \"SPI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.02070920\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SPI\"\n  },\n  {\n    \"asset\": \"SPI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.02072570\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SPI\"\n  },\n  {\n    \"asset\": \"JOB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1800.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/JOB\"\n  },\n  {\n    \"asset\": \"JOB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1796.40718560\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/JOB\"\n  },\n  {\n    \"asset\": \"GNY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.59241480\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GNY\"\n  },\n  {\n    \"asset\": \"GAME\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"11.08975310\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/GAME\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.37907510\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/OMG\"\n  },\n  {\n    \"asset\": \"QTUM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.16173380\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/QTUM\"\n  },\n  {\n    \"asset\": \"INXT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.20338220\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/INXT\"\n  },\n  {\n    \"asset\": \"INXT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.17467250\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/INXT\"\n  },\n  {\n    \"asset\": \"CLT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.38235500\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CLT\"\n  },\n  {\n    \"asset\": \"CLT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.37318070\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/CLT\"\n  },\n  {\n    \"asset\": \"FOL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.42043930\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/FOL\"\n  },\n  {\n    \"asset\": \"FOL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2.42387030\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/FOL\"\n  },\n  {\n    \"asset\": \"VIL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.11441650\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/VIL\"\n  },\n  {\n    \"asset\": \"STRK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.07500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/STRK\"\n  },\n  {\n    \"asset\": \"STRK\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.07500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/STRK\"\n  },\n  {\n    \"asset\": \"CELO\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.61000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/CELO\"\n  },\n  {\n    \"asset\": \"DFI\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.90000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/DFI\"\n  },\n  {\n    \"asset\": \"UBT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1.75000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/UBT\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.10000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"EUR/UNI\"\n  },\n  {\n    \"asset\": \"GET\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.54854630\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/GET\"\n  },\n  {\n    \"asset\": \"GET\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.55248620\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GET\"\n  },\n  {\n    \"asset\": \"XELS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.51868220\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/XELS\"\n  },\n  {\n    \"asset\": \"XELS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.52182990\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/XELS\"\n  },\n  {\n    \"asset\": \"RFOX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"10.77844310\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/RFOX\"\n  },\n  {\n    \"asset\": \"RFOX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"10.00033340\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/RFOX\"\n  },\n  {\n    \"asset\": \"BONDLY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"7.40740740\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BONDLY\"\n  },\n  {\n    \"asset\": \"BONDLY\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"7.61750000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BONDLY\"\n  },\n  {\n    \"asset\": \"COIN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00923270\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/COIN\"\n  },\n  {\n    \"asset\": \"COIN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00919500\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/COIN\"\n  },\n  {\n    \"asset\": \"COIN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00924460\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/COIN\"\n  },\n  {\n    \"asset\": \"BONDLY\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"7.13743360\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/BONDLY\"\n  },\n  {\n    \"asset\": \"1INCH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.51194539\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/1INCH\"\n  },\n  {\n    \"asset\": \"1INCH\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.51107325\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/1INCH\"\n  },\n  {\n    \"asset\": \"1INCH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.51107325\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/1INCH\"\n  },\n  {\n    \"asset\": \"NFTX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.02021154\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/NFTX\"\n  },\n  {\n    \"asset\": \"NFTX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.02019658\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/NFTX\"\n  },\n  {\n    \"asset\": \"NFTX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.02021699\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/NFTX\"\n  },\n  {\n    \"asset\": \"URQA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.85000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/URQA\"\n  },\n  {\n    \"asset\": \"URQA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.85000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/URQA\"\n  },\n  {\n    \"asset\": \"RSV\",\n    \"currency\": \"USD\",\n    \"min_size\": \"3.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/RSV\"\n  },\n  {\n    \"asset\": \"RSV\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/RSV\"\n  },\n  {\n    \"asset\": \"RSR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"37.50000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/RSR\"\n  },\n  {\n    \"asset\": \"RSR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"37.50000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/RSR\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.50000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/MANA\"\n  },\n  {\n    \"asset\": \"STEEM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3.17620303\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/STEEM\"\n  },\n  {\n    \"asset\": \"RGT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.15000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/RGT\"\n  },\n  {\n    \"asset\": \"RGT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.15000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/RGT\"\n  },\n  {\n    \"asset\": \"RGT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.15000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/RGT\"\n  },\n  {\n    \"asset\": \"MONA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.20000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/MONA\"\n  },\n  {\n    \"asset\": \"AVAX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.11000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/AVAX\"\n  },\n  {\n    \"asset\": \"AVAX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.11000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/AVAX\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.25000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/SNX\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.25000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SNX\"\n  },\n  {\n    \"asset\": \"XMY\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"667.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/XMY\"\n  },\n  {\n    \"asset\": \"IGNIS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"23.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/IGNIS\"\n  },\n  {\n    \"asset\": \"SIG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.88000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/SIG\"\n  },\n  {\n    \"asset\": \"SIG\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.88000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/SIG\"\n  },\n  {\n    \"asset\": \"SIG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.88000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SIG\"\n  },\n  {\n    \"asset\": \"AVAX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.11000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/AVAX\"\n  },\n  {\n    \"asset\": \"ABNB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01800000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ABNB\"\n  },\n  {\n    \"asset\": \"ABNB\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01800000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ABNB\"\n  },\n  {\n    \"asset\": \"ABNB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01800000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ABNB\"\n  },\n  {\n    \"asset\": \"ACB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.36000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ACB\"\n  },\n  {\n    \"asset\": \"ACB\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.36000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ACB\"\n  },\n  {\n    \"asset\": \"ACB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.36000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ACB\"\n  },\n  {\n    \"asset\": \"AMD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.03500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/AMD\"\n  },\n  {\n    \"asset\": \"AMD\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.03500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/AMD\"\n  },\n  {\n    \"asset\": \"AMD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.03500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/AMD\"\n  },\n  {\n    \"asset\": \"APHA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.20900000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/APHA\"\n  },\n  {\n    \"asset\": \"APHA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.20900000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/APHA\"\n  },\n  {\n    \"asset\": \"APHA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.20900000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/APHA\"\n  },\n  {\n    \"asset\": \"ARKK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.02400000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ARKK\"\n  },\n  {\n    \"asset\": \"ARKK\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.02400000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ARKK\"\n  },\n  {\n    \"asset\": \"ARKK\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.02400000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ARKK\"\n  },\n  {\n    \"asset\": \"BITW\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.03700000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BITW\"\n  },\n  {\n    \"asset\": \"BITW\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.03700000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/BITW\"\n  },\n  {\n    \"asset\": \"BITW\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.03700000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BITW\"\n  },\n  {\n    \"asset\": \"CGC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.11000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CGC\"\n  },\n  {\n    \"asset\": \"CGC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.11000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/CGC\"\n  },\n  {\n    \"asset\": \"CGC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.11000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/CGC\"\n  },\n  {\n    \"asset\": \"CRON\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.36500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CRON\"\n  },\n  {\n    \"asset\": \"CRON\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.36500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/CRON\"\n  },\n  {\n    \"asset\": \"CRON\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.36500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/CRON\"\n  },\n  {\n    \"asset\": \"GDXJ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.06000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GDXJ\"\n  },\n  {\n    \"asset\": \"GDXJ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.06000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/GDXJ\"\n  },\n  {\n    \"asset\": \"GDXJ\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.06000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/GDXJ\"\n  },\n  {\n    \"asset\": \"GLD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01800000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GLD\"\n  },\n  {\n    \"asset\": \"GLD\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01800000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/GLD\"\n  },\n  {\n    \"asset\": \"GLD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01800000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/GLD\"\n  },\n  {\n    \"asset\": \"GLXY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.09100000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/GLXY\"\n  },\n  {\n    \"asset\": \"GLXY\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.09100000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/GLXY\"\n  },\n  {\n    \"asset\": \"GLXY\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.09100000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/GLXY\"\n  },\n  {\n    \"asset\": \"MRNA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01700000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/MRNA\"\n  },\n  {\n    \"asset\": \"MRNA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01700000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/MRNA\"\n  },\n  {\n    \"asset\": \"MRNA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01700000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/MRNA\"\n  },\n  {\n    \"asset\": \"NIO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.07100000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/NIO\"\n  },\n  {\n    \"asset\": \"NIO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.07100000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/NIO\"\n  },\n  {\n    \"asset\": \"NIO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.07100000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/NIO\"\n  },\n  {\n    \"asset\": \"NVDA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/NVDA\"\n  },\n  {\n    \"asset\": \"NVDA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/NVDA\"\n  },\n  {\n    \"asset\": \"NVDA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/NVDA\"\n  },\n  {\n    \"asset\": \"PENN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.03300000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PENN\"\n  },\n  {\n    \"asset\": \"PENN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.03300000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/PENN\"\n  },\n  {\n    \"asset\": \"PENN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.03300000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/PENN\"\n  },\n  {\n    \"asset\": \"PYPL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01100000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PYPL\"\n  },\n  {\n    \"asset\": \"PYPL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01100000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/PYPL\"\n  },\n  {\n    \"asset\": \"PYPL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01100000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/PYPL\"\n  },\n  {\n    \"asset\": \"TSM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.02500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/TSM\"\n  },\n  {\n    \"asset\": \"TSM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.02500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/TSM\"\n  },\n  {\n    \"asset\": \"TSM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.02500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/TSM\"\n  },\n  {\n    \"asset\": \"TWTR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.04500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/TWTR\"\n  },\n  {\n    \"asset\": \"TWTR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.04500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/TWTR\"\n  },\n  {\n    \"asset\": \"TWTR\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.04500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/TWTR\"\n  },\n  {\n    \"asset\": \"UBER\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.05200000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/UBER\"\n  },\n  {\n    \"asset\": \"UBER\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.05200000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/UBER\"\n  },\n  {\n    \"asset\": \"UBER\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.05200000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/UBER\"\n  },\n  {\n    \"asset\": \"USO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.07100000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/USO\"\n  },\n  {\n    \"asset\": \"USO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.07100000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/USO\"\n  },\n  {\n    \"asset\": \"USO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.07100000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/USO\"\n  },\n  {\n    \"asset\": \"ZM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00900000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/ZM\"\n  },\n  {\n    \"asset\": \"ZM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00900000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ZM\"\n  },\n  {\n    \"asset\": \"ZM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00900000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ZM\"\n  },\n  {\n    \"asset\": \"MMAON\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"20.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/MMAON\"\n  },\n  {\n    \"asset\": \"MRPH\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.53583620\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/MRPH\"\n  },\n  {\n    \"asset\": \"MRPH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.53583620\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/MRPH\"\n  },\n  {\n    \"asset\": \"XDB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"35.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/XDB\"\n  },\n  {\n    \"asset\": \"XDB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"35.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/XDB\"\n  },\n  {\n    \"asset\": \"ZUSD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ZUSD\"\n  },\n  {\n    \"asset\": \"SYLO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"300.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/SYLO\"\n  },\n  {\n    \"asset\": \"XYM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"12.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/XYM\"\n  },\n  {\n    \"asset\": \"XYM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"12.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/XYM\"\n  },\n  {\n    \"asset\": \"XYM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"12.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/XYM\"\n  },\n  {\n    \"asset\": \"NDAU\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.12500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/NDAU\"\n  },\n  {\n    \"asset\": \"MYID\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"750.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/MYID\"\n  },\n  {\n    \"asset\": \"MOGX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"230.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/MOGX\"\n  },\n  {\n    \"asset\": \"DAF\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"30.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/DAF\"\n  },\n  {\n    \"asset\": \"LRC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"5.40000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/LRC\"\n  },\n  {\n    \"asset\": \"ZILD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00750000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ZILD\"\n  },\n  {\n    \"asset\": \"PIST\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"6.67000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/PIST\"\n  },\n  {\n    \"asset\": \"DOGEBULL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00002200\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/DOGEBULL\"\n  },\n  {\n    \"asset\": \"DOGEBULL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.00002200\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/DOGEBULL\"\n  },\n  {\n    \"asset\": \"POLC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"5.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/POLC\"\n  },\n  {\n    \"asset\": \"POLC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/POLC\"\n  },\n  {\n    \"asset\": \"XDN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"380.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/XDN\"\n  },\n  {\n    \"asset\": \"CRV\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.83000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CRV\"\n  },\n  {\n    \"asset\": \"CRV\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.83000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/CRV\"\n  },\n  {\n    \"asset\": \"CRV\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.83000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/CRV\"\n  },\n  {\n    \"asset\": \"RAMP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"8.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/RAMP\"\n  },\n  {\n    \"asset\": \"RAMP\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"8.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/RAMP\"\n  },\n  {\n    \"asset\": \"RAMP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/RAMP\"\n  },\n  {\n    \"asset\": \"PUNDIX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"2.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/PUNDIX\"\n  },\n  {\n    \"asset\": \"PUNDIX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/PUNDIX\"\n  },\n  {\n    \"asset\": \"PUNDIX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"2.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PUNDIX\"\n  },\n  {\n    \"asset\": \"JASMY\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/JASMY\"\n  },\n  {\n    \"asset\": \"ROC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"7.50000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/ROC\"\n  },\n  {\n    \"asset\": \"BST\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"6.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/BST\"\n  },\n  {\n    \"asset\": \"BST\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"6.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BST\"\n  },\n  {\n    \"asset\": \"VVT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"22.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/VVT\"\n  },\n  {\n    \"asset\": \"BAX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3000.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/BAX\"\n  },\n  {\n    \"asset\": \"PTOY\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"150.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/PTOY\"\n  },\n  {\n    \"asset\": \"STRK\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.07500000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/STRK\"\n  },\n  {\n    \"asset\": \"PIST\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"6.67000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PIST\"\n  },\n  {\n    \"asset\": \"EDG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"188.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/EDG\"\n  },\n  {\n    \"asset\": \"EDG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"188.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/EDG\"\n  },\n  {\n    \"asset\": \"AKT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/AKT\"\n  },\n  {\n    \"asset\": \"AKT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/AKT\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"2.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/MATIC\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.25000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/SNX\"\n  },\n  {\n    \"asset\": \"PRT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"86.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/PRT\"\n  },\n  {\n    \"asset\": \"BAX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"3000.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"ETH/BAX\"\n  },\n  {\n    \"asset\": \"CADX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"4.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/CADX\"\n  },\n  {\n    \"asset\": \"XEP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1675.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/XEP\"\n  },\n  {\n    \"asset\": \"PPAY\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"38.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/PPAY\"\n  },\n  {\n    \"asset\": \"PPAY\",\n    \"currency\": \"USD\",\n    \"min_size\": \"38.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/PPAY\"\n  },\n  {\n    \"asset\": \"PPAY\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"38.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/PPAY\"\n  },\n  {\n    \"asset\": \"STORJ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"3.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/STORJ\"\n  },\n  {\n    \"asset\": \"ANT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.70000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USD/ANT\"\n  },\n  {\n    \"asset\": \"DACXI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"46.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"BTC/DACXI\"\n  },\n  {\n    \"asset\": \"DACXI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"46.00000000\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDT/DACXI\"\n  }\n]"
  },
  {
    "path": "extensions/exchanges/bittrex/update-products.sh",
    "content": "#!/usr/bin/env node\n\nvar bittrex = require('node-bittrex-api')\n\nvar mapping\nvar products = []\n\nfunction addProduct(base, quote, minSize, altname) {\n    products.push({\n        asset: quote,\n        currency: base,\n        min_size: minSize,\n        max_size: '1000000',\n        increment: '0.00000001',\n        label: base + '/' + quote\n    })\n}\n\nbittrex.getmarkets(function (data) {\n    if(typeof data !== 'object') {\n        console.log('bittrex API had an abnormal response, quitting.')\n        process.exit(1)\n    }\n    if('error' in data || !data.success) {\n        console.log(data.error)\n        console.log(data.message)\n        process.exit(1)\n    }\n    else {\n        mapping = data.result\n\n        mapping = data.result\n\n        Object.keys(data.result).forEach(function (result) {\n            addProduct(data.result[result].BaseCurrency, data.result[result].MarketCurrency, data.result[result].MinTradeSize.toFixed(8), data.result[result].altname)\n        })\n        var target = require('path').resolve(__dirname, 'products.json')\n        require('fs').writeFileSync(target, JSON.stringify(products, null, 2))\n        console.log('wrote', target)\n        process.exit()\n    }\n})\n"
  },
  {
    "path": "extensions/exchanges/cexio/exchange.js",
    "content": "const CEX = require('cexio-api-node')\nconst path = require('path')\nconst n = require('numbro')\nconst minimist = require('minimist')\nconst _ = require('lodash')\nconst debug = require('../../../lib/debug')\n\nmodule.exports = function cexio (conf) {\n  let s = {\n    options: minimist(process.argv)\n  }\n  let so = s.options\n\n  let public_client, authed_client, ws_client, ws_authed, ws_subscribed, amount_format\n  let ws_trades = []\n  let orders = {}\n\n  function publicClient () {\n    if (!public_client) {\n      public_client = new CEX().rest\n    }\n    return public_client\n  }\n\n  function authedClient () {\n    if (!authed_client) {\n      if (!conf.cexio || !conf.cexio.username || !conf.cexio.key || conf.cexio.key === 'YOUR-API-KEY') {\n        throw new Error('please configure your CEX.IO credentials in ' + path.resolve(__dirname, 'conf.js'))\n      }\n      authed_client = new CEX(conf.cexio.username, conf.cexio.key, conf.cexio.secret).rest\n    }\n    return authed_client\n  }\n\n  function joinProduct (product_id) {\n    return product_id.split('-')[0] + '/' + product_id.split('-')[1]\n  }\n\n  function retry (method, args) {\n    debug.msg(('CEX.IO API is down! unable to call ' + method + ', retrying in 10s').red)\n    setTimeout(function () {\n      exchange[method].apply(exchange, args)\n    }, 10000)\n  }\n\n  function refreshFees(args) {\n    let skew = 5000 // in ms\n    let now = new Date()\n    let nowUTC = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds())\n    let midnightUTC = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds()).setHours(24,0,0,0)\n    let countdown = midnightUTC - nowUTC + skew\n    if (debug.on) {\n      let hours = parseInt((countdown/(1000*60*60))%24)\n      let minutes = parseInt((countdown/(1000*60))%60)\n      let seconds = parseInt((countdown/1000)%60)\n      debug.msg('Refreshing fees in ' + hours + ' hours ' + minutes + ' minutes ' + seconds + ' seconds')\n    }\n    setTimeout(function() {\n      exchange['setFees'].apply(exchange, args)\n    }, countdown)\n  }\n\n  function wsClient() {\n    return new Promise(function(resolve, reject) {\n      if (!ws_client) {\n        if (!conf.cexio || !conf.cexio.key || conf.cexio.key === 'YOUR-API-KEY') {\n          throw new Error('please configure your CEX.IO credentials in ' + path.resolve(__dirname, 'conf.js'))\n        }\n        ws_client = new CEX(conf.cexio.key, conf.cexio.secret).ws\n        ws_client.open()\n        ws_client.on('open', function() {\n          debug.msg('WebSocket connected')\n          ws_client.auth()\n          ws_client.on('auth', function() {\n            debug.msg('WebSocket authenticated')\n            ws_authed = true\n            resolve(ws_client)\n          })\n        })\n        ws_client.on('message', function(msg) {\n          switch (msg.e) {\n          case 'disconnecting':\n            debug.msg('WebSocket disconnecting:', msg.reason)\n            break\n          case 'ping':\n            ws_client.send({ e: 'pong' }) // Heartbeat\n            break\n          case 'get-balance':\n            ws_client.emit('balance', msg.data)\n            break\n          case 'ticker':\n            ws_client.emit('ticker', msg.data)\n            break\n          case 'history':\n            ws_client.emit('history', msg.data)\n            break\n          case 'history-update':\n            msg.data.forEach(function(trade) {\n              ws_trades.push({\n                trade_id: Number(trade[4]),\n                time: Number(trade[1]),\n                size: Number(n(trade[2]).divide(amount_format).format('0.00000000')),\n                price: Number(trade[3]),\n                side: trade[0]\n              })\n            })\n            break\n          case 'cancel-order':\n            ws_client.emit('cancelOrder', msg.data)\n            break\n          case 'place-order':\n            ws_client.emit('placeOrder', msg.data)\n            break\n          case 'get-order':\n            ws_client.emit('getOrder', msg.data)\n            break\n          }\n        })\n        ws_client.on('error', function(err) {\n          console.error('WebSocket error:', err)\n        })\n        ws_client.on('close', function() {\n          ws_client = null\n          ws_authed = false\n          ws_subscribed = false\n          debug.msg('WebSocket disconnected')\n        })\n      } else {\n        switch (ws_client.ws.readyState) {\n        case 0:\n          reject('WebSocket connecting')\n          break\n        case 1:\n          if (ws_authed) {\n            resolve(ws_client)\n          } else {\n            reject('WebSocket auth pending')\n          }\n          break\n        case 2: \n          reject('WebSocket closing')\n          break\n        case 3:\n          reject('WebSocket closed')\n          break\n        }\n      }\n    })\n  }\n\n  function wsTrades(pair) {\n    return new Promise(function(resolve, reject) {\n      wsClient().then(function(client) {\n        client.send({\n          e: 'subscribe',\n          rooms: [ 'pair-' + pair ]\n        })\n        client.once('history', function(trades) {\n          resolve(trades)\n        })\n      }).catch(function(err) {\n        reject(err)\n      })\n    })\n  }\n\n  function wsBalance() {\n    return new Promise(function(resolve, reject) {\n      wsClient().then(function(client) {\n        client.getBalance()\n        client.once('balance', function(balance) {\n          if (balance.error) {\n            reject(balance.error)\n          } else {\n            resolve(balance)\n          }\n        })\n      }).catch(function(err) {\n        reject(err)\n      })\n    })\n  }\n\n  function wsQuote(pair) {\n    return new Promise(function(resolve, reject) {\n      wsClient().then(function(client) {\n        client.authTicker(pair)\n        client.once('ticker', function(quote) {\n          if (quote.error) {\n            reject(quote.error)\n          } else {\n            resolve(quote)\n          }\n        })\n      }).catch(function(err) {\n        reject(err)\n      })\n    })\n  }\n\n  function wsCancelOrder(order_id) {\n    return new Promise(function(resolve, reject) {\n      wsClient().then(function(client) {\n        client.cancelOrder(order_id)\n        client.once('cancelOrder', function(order) {\n          if (order.error) {\n            reject(order.error)\n          } else {\n            resolve()\n          }\n        })\n      }).catch(function(err) {\n        reject(err)\n      })\n    })\n  }\n\n  function wsTrade(order) {\n    return new Promise(function(resolve, reject) {\n      wsClient().then(function(client) {\n        client.placeOrder(order.type, order.pair, order.size, order.price)\n        client.once('placeOrder', function(order) {\n          if (order.error) {\n            reject(order.error)\n          } else {\n            resolve(order)\n          }\n        })\n      }).catch(function(err) {\n        reject(err)\n      })\n    })\n  }\n\n  function wsGetOrder(order_id) {\n    return new Promise(function(resolve, reject) {\n      wsClient().then(function(client) {\n        client.getOrder(order_id)\n        client.once('getOrder', function(order) {\n          if (order.error) {\n            reject(order.error)\n          } else {\n            resolve(order)\n          }\n        })\n      }).catch(function(err) {\n        reject(err)\n      })\n    })\n  }\n\n  let exchange = {\n    name: 'cexio',\n    historyScan: 'forward',\n    backfillRateLimit: 0,\n    makerFee: 0.16,\n    takerFee: 0.25,\n    dynamicFees: true,\n    makerBuy100Workaround: true,\n\n    getProducts: function () {\n      return require('./products.json')\n    },\n\n    getTrades: function (opts, cb) {\n      let func_args = [].slice.call(arguments)\n      if (so._[2] === 'backfill') { // Backfill using REST\n        let client = publicClient()\n        let pair = joinProduct(opts.product_id)\n        client.trade_history(pair, opts.from, function (err, body) {\n          if (err || (typeof body === 'string' && body.match(/error/))) {\n            debug.msg(('getTrades ' + (err ? err : body)).red)\n            return retry('getTrades', func_args)\n          }\n          let trades = body.map(function (trade) {\n            return {\n              trade_id: Number(trade.tid),\n              time: Number(trade.date) * 1000,\n              size: Number(trade.amount),\n              price: Number(trade.price),\n              side: trade.type\n            }\n          })\n          const maxTrade = _.maxBy(trades, 'trade_id')\n          if (maxTrade && (maxTrade.trade_id <= opts.from)) {\n            func_args[0].from = func_args[0].from + trades.length\n            return retry('getTrades', func_args)\n          }\n          cb(null, trades)\n        })\n      } else { // WebSocket once Live\n        if (!ws_subscribed) wsTrades(opts.product_id).then(function(data) {\n          ws_subscribed = true\n          amount_format = opts.product_id.split('-')[0] === 'ETH' ? 1000000 : 100000000 // trade amount is an unformatted integer\n          data.forEach(function(trade) {\n            let t = trade.split(':')\n            ws_trades.push({\n              trade_id: Number(t[4]),\n              time: Number(t[1]),\n              size: Number(n(t[2]).divide(amount_format).format('0.00000000')),\n              price: Number(t[3]),\n              side: t[0]\n            })\n          })\n        }).catch(function(err) {\n          debug.msg(('getTrades ' + err).red)\n          return retry('getTrades', func_args)\n        })\n        _.remove(ws_trades, function(t) {\n          return t.trade_id <= opts.from\n        })\n        cb(null, ws_trades)\n      }\n    },\n\n    getBalance: function (opts, cb) {\n      let func_args = [].slice.call(arguments)\n      wsBalance().then(function(data) {\n        let ws_balance = {\n          currency: n(data.balance[opts.currency]).format('0.00000000'),\n          asset: n(data.balance[opts.asset]).format('0.00000000'),\n          currency_hold: n(data.obalance[opts.currency]).format('0.00000000'),\n          asset_hold: n(data.obalance[opts.asset]).format('0.00000000')\n        }\n        cb(null, ws_balance)\n      }).catch(function(err) {\n        debug.msg(('getBalance ' + err).red)\n        return retry('getBalance', func_args)\n      })\n    },\n\n    getQuote: function (opts, cb) {\n      let func_args = [].slice.call(arguments)\n      wsQuote(opts.product_id).then(function(data) {\n        let ws_ticker = {\n          ask: data.ask,\n          bid: data.bid\n        }\n        cb(null, ws_ticker)\n      }).catch(function(err) {\n        debug.msg(('getQuote ' + err).red)\n        return retry('getQuote', func_args)\n      })\n    },\n\n    cancelOrder: function (opts, cb) {\n      let func_args = [].slice.call(arguments)\n      wsCancelOrder(opts.order_id).then(function() {\n        cb()\n      }).catch(function(err) {\n        debug.msg(('cancelOrder ' + err).red)\n        if (err !== 'Error: Order not found') return retry('cancelOrder', func_args)\n      })\n    },\n\n    trade: function (action, opts, cb) {\n      let func_args = [].slice.call(arguments)\n      if (opts.order_type === 'taker') { // Looks like WebSocket doesn't support taker/market orders (yet?)\n        delete opts.price\n        delete opts.post_only\n        if (action === 'buy') {\n          opts.size = n(opts.size).multiply(opts.orig_price).value() // CEXIO estimates asset size and uses free currency to performe margin buy\n        }\n        let client = authedClient()\n        client.place_order(joinProduct(opts.product_id), action, opts.size, opts.price, 'market', function (err, body) {\n          if (err || (typeof body === 'string' && body.match(/error/))) {\n            debug.msg(('trade ' + (err ? err : body)).red)\n            if (body === 'error: Error: Place order error: Insufficient funds.') {\n              let order = {\n                status: 'rejected',\n                reject_reason: 'balance'\n              }\n              return cb(null, order)\n            } else {\n              return retry('trade', func_args)\n            }\n          } else {\n            let order = {\n              id: body.id,\n              status: 'open',\n              price: opts.price,\n              size: opts.size,\n              post_only: !!opts.post_only,\n              created_at: body.time,\n              filled_size: '0',\n              ordertype: 'taker'\n            }\n            orders['~' + body.id] = order\n            cb(null, order)\n          }\n        })\n      } else {\n        wsTrade({\n          type: action,\n          pair: opts.product_id,\n          size: opts.size,\n          price: opts.price\n        }).then(function(data) {\n          let order = {\n            id: data.id,\n            status: 'open',\n            price: data.price,\n            size: data.amount,\n            post_only: !!opts.post_only,\n            created_at: data.time,\n            filled_size: data.amount - data.pending,\n            ordertype: 'maker'\n          }\n          orders['~' + data.id] = order\n          cb(null, order)\n        }).catch(function(err) {\n          debug.msg(('trade ' + err).red)\n          return retry('trade', func_args)\n        })\n      }\n    },\n\n    buy: function (opts, cb) {\n      exchange.trade('buy', opts, cb)\n    },\n\n    sell: function (opts, cb) {\n      exchange.trade('sell', opts, cb)\n    },\n\n    getOrder: function (opts, cb) {\n      let func_args = [].slice.call(arguments)\n      let order = orders['~' + opts.order_id]\n      wsGetOrder(opts.order_id).then(function(data) {\n        if (data.status === 'c') {\n          order.status = 'rejected'\n          order.reject_reason = 'canceled'\n        } else if ( data.status === 'd' || data.status === 'cd') {\n          order.status = 'done'\n          order.done_at = new Date().getTime()\n          order.filled_size = n(data.amount).subtract(data.remains).format('0.00000000')\n        }\n        cb(null, order)\n      }).catch(function(err) {\n        debug.msg(('getOrder ' + err).red)\n        return retry('getOrder', func_args)\n      })\n    },\n\n    setFees: function(opts) {\n      let func_args = [].slice.call(arguments)\n      let client = authedClient()\n      client.get_my_fee(function (err, body) {\n        if (err || (typeof body === 'string' && body.match(/error/))) {\n          debug.msg(('setFees ' + (err ? err : body) + ' - using fixed fees!').red)\n          return retry('setFees', func_args)\n        } else {\n          let pair = opts.asset + ':' + opts.currency\n          let makerFee = (parseFloat(body[pair].buyMaker) + parseFloat(body[pair].sellMaker)) / 2\n          let takerFee = (parseFloat(body[pair].buy) + parseFloat(body[pair].sell)) / 2\n          if (exchange.makerFee != makerFee) {\n            debug.msg('Maker fee changed: ' + exchange.makerFee + '% -> ' + makerFee + '%')\n            exchange.makerFee = makerFee\n          }\n          if (exchange.takerFee != takerFee) {\n            debug.msg('Taker fee changed: ' + exchange.takerFee + '% -> ' + takerFee + '%')\n            exchange.takerFee = takerFee\n          }\n        }\n        return refreshFees(func_args)\n      })\n    },\n\n    // return the property used for range querying.\n    getCursor: function (trade) {\n      return trade.trade_id\n    }\n  }\n  return exchange\n}\n"
  },
  {
    "path": "extensions/exchanges/cexio/products.json",
    "content": "[\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0004\",\n    \"max_size\": null,\n    \"increment\": \"0.1\",\n    \"label\": \"BTC/USD\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.003\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ETH/USD\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.02\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BCH/USD\"\n  },\n  {\n    \"asset\": \"DASH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.065\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"DASH/USD\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.03\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"LTC/USD\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"11\",\n    \"max_size\": null,\n    \"increment\": \"0.0001\",\n    \"label\": \"XRP/USD\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"32\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"XLM/USD\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"OMG/USD\"\n  },\n  {\n    \"asset\": \"MHC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"650\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"MHC/USD\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"200\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"TRX/USD\"\n  },\n  {\n    \"asset\": \"BTT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"780\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BTT/USD\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"3.825136\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ADA/USD\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.14\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"NEO/USD\"\n  },\n  {\n    \"asset\": \"GAS\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.8\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"GAS/USD\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BAT/USD\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.2\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ATOM/USD\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"XTZ/USD\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.0004\",\n    \"max_size\": null,\n    \"increment\": \"0.1\",\n    \"label\": \"BTC/EUR\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.003\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ETH/EUR\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.02\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BCH/EUR\"\n  },\n  {\n    \"asset\": \"DASH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.065\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"DASH/EUR\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"11\",\n    \"max_size\": null,\n    \"increment\": \"0.0001\",\n    \"label\": \"XRP/EUR\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"32\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"XLM/EUR\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"OMG/EUR\"\n  },\n  {\n    \"asset\": \"MHC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"650\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"MHC/EUR\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"200\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"TRX/EUR\"\n  },\n  {\n    \"asset\": \"BTT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"780\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BTT/EUR\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.08\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"LTC/EUR\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"3.825136\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ADA/EUR\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.14\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"NEO/EUR\"\n  },\n  {\n    \"asset\": \"GAS\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.8\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"GAS/EUR\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"10\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BAT/EUR\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1.2\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ATOM/EUR\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"2.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"XTZ/EUR\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.0004\",\n    \"max_size\": null,\n    \"increment\": \"0.1\",\n    \"label\": \"BTC/GBP\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.003\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ETH/GBP\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.02\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BCH/GBP\"\n  },\n  {\n    \"asset\": \"MHC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"650\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"MHC/GBP\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.08\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"LTC/GBP\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"11\",\n    \"max_size\": null,\n    \"increment\": \"0.0001\",\n    \"label\": \"XRP/GBP\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"3.825136\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ADA/GBP\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.14\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"NEO/GBP\"\n  },\n  {\n    \"asset\": \"GAS\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.8\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"GAS/GBP\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"1.2\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ATOM/GBP\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"10\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BAT/GBP\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"2.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"XTZ/GBP\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"RUB\",\n    \"min_size\": \"0.0004\",\n    \"max_size\": null,\n    \"increment\": \"1\",\n    \"label\": \"BTC/RUB\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.003\",\n    \"max_size\": null,\n    \"increment\": \"0.000001\",\n    \"label\": \"ETH/BTC\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.02\",\n    \"max_size\": null,\n    \"increment\": \"0.000001\",\n    \"label\": \"BCH/BTC\"\n  },\n  {\n    \"asset\": \"DASH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.065\",\n    \"max_size\": null,\n    \"increment\": \"0.000001\",\n    \"label\": \"DASH/BTC\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.08\",\n    \"max_size\": null,\n    \"increment\": \"0.000001\",\n    \"label\": \"LTC/BTC\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"11\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"XRP/BTC\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"32\",\n    \"max_size\": null,\n    \"increment\": \"0.000001\",\n    \"label\": \"XLM/BTC\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1.5\",\n    \"max_size\": null,\n    \"increment\": \"0.000001\",\n    \"label\": \"OMG/BTC\"\n  },\n  {\n    \"asset\": \"GUSD\",\n    \"currency\": \"USD\",\n    \"min_size\": \"8\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"GUSD/USD\"\n  },\n  {\n    \"asset\": \"ONT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"12\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ONT/USD\"\n  },\n  {\n    \"asset\": \"ONG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ONG/USD\"\n  },\n  {\n    \"asset\": \"GUSD\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"8\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"GUSD/EUR\"\n  },\n  {\n    \"asset\": \"ONT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"12\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ONT/EUR\"\n  },\n  {\n    \"asset\": \"ONG\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ONG/EUR\"\n  },\n  {\n    \"asset\": \"MHC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"650\",\n    \"max_size\": null,\n    \"increment\": \"0.000001\",\n    \"label\": \"MHC/BTC\"\n  },\n  {\n    \"asset\": \"MHC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"650\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"MHC/ETH\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"200\",\n    \"max_size\": null,\n    \"increment\": \"0.000001\",\n    \"label\": \"TRX/BTC\"\n  },\n  {\n    \"asset\": \"BTT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"780\",\n    \"max_size\": null,\n    \"increment\": \"0.000001\",\n    \"label\": \"BTT/BTC\"\n  },\n  {\n    \"asset\": \"ONT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"12\",\n    \"max_size\": null,\n    \"increment\": \"0.000001\",\n    \"label\": \"ONT/BTC\"\n  },\n  {\n    \"asset\": \"ONG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.000001\",\n    \"label\": \"ONG/BTC\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"USDT/USD\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"USDT/EUR\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"USDT/GBP\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"RUB\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"USDT/RUB\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.0004\",\n    \"max_size\": null,\n    \"increment\": \"0.1\",\n    \"label\": \"BTC/USDT\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.0004\",\n    \"max_size\": null,\n    \"increment\": \"0.1\",\n    \"label\": \"BTC/USDC\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.003\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ETH/USDT\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.02\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BCH/USDT\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.08\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"LTC/USDT\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"11\",\n    \"max_size\": null,\n    \"increment\": \"0.0001\",\n    \"label\": \"XRP/USDT\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"32\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"XLM/USDT\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"OMG/USDT\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"200\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"TRX/USDT\"\n  },\n  {\n    \"asset\": \"ONT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"12\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ONT/USDT\"\n  },\n  {\n    \"asset\": \"ONG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ONG/USDT\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.26\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ADA/USDT\"\n  },\n  {\n    \"asset\": \"USDC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"USDC/USD\"\n  },\n  {\n    \"asset\": \"WABI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"29\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"WABI/USD\"\n  },\n  {\n    \"asset\": \"WABI\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"29\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"WABI/EUR\"\n  },\n  {\n    \"asset\": \"WABI\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"29\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"WABI/GBP\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"9\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"MATIC/USD\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"9\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"MATIC/EUR\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"9\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"MATIC/GBP\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"9\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"MATIC/USDT\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"LINK/USD\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"LINK/EUR\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"LINK/GBP\"\n  },\n  {\n    \"asset\": \"MKR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0015\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"MKR/USD\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"7.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ZRX/USD\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"15\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ZRX/USDT\"\n  },\n  {\n    \"asset\": \"LAMB\",\n    \"currency\": \"USD\",\n    \"min_size\": \"157\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"LAMB/USD\"\n  },\n  {\n    \"asset\": \"LAMB\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"157\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"LAMB/USDT\"\n  },\n  {\n    \"asset\": \"HOT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"400\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"HOT/USD\"\n  },\n  {\n    \"asset\": \"HOT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"400\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"HOT/USDT\"\n  },\n  {\n    \"asset\": \"DASH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.065\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"DASH/USDT\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.14\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"NEO/USDT\"\n  },\n  {\n    \"asset\": \"GAS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.8\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"GAS/USDT\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"10\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BAT/USDT\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.2\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ATOM/USDT\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"XTZ/USDT\"\n  },\n  {\n    \"asset\": \"GUSD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"8\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"GUSD/USDT\"\n  },\n  {\n    \"asset\": \"USDC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"USDC/USDT\"\n  },\n  {\n    \"asset\": \"WABI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"29\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"WABI/USDT\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"LINK/USDT\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.3\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"DOT/USD\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.3\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"DOT/USDT\"\n  },\n  {\n    \"asset\": \"COMP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.06\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"COMP/USD\"\n  },\n  {\n    \"asset\": \"COMP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.02\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"COMP/USDT\"\n  },\n  {\n    \"asset\": \"ZIL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"21\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ZIL/USD\"\n  },\n  {\n    \"asset\": \"ZIL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"21\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ZIL/USDT\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.3\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"UNI/USD\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.3\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"UNI/USDT\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.02\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"UNI/ETH\"\n  },\n  {\n    \"asset\": \"UMA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"UMA/USD\"\n  },\n  {\n    \"asset\": \"UMA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"UMA/USDT\"\n  },\n  {\n    \"asset\": \"UMA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"UMA/ETH\"\n  },\n  {\n    \"asset\": \"YFI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"YFI/USD\"\n  },\n  {\n    \"asset\": \"YFI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"YFI/USDT\"\n  },\n  {\n    \"asset\": \"YFI\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"YFI/ETH\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"SNX/USD\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"SNX/USDT\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"SNX/ETH\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"3.7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"KNC/USD\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3.7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"KNC/USDT\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"3.7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"KNC/ETH\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.6\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BAL/USD\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.6\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BAL/USDT\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.6\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BAL/ETH\"\n  },\n  {\n    \"asset\": \"CRV\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.3\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"CRV/USD\"\n  },\n  {\n    \"asset\": \"CRV\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"3\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"CRV/USDT\"\n  },\n  {\n    \"asset\": \"CRV\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"3\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"CRV/ETH\"\n  },\n  {\n    \"asset\": \"WBTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"WBTC/USDT\"\n  },\n  {\n    \"asset\": \"WBTC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.0002\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"WBTC/ETH\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"DAI/USD\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"DAI/USDT\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"DAI/ETH\"\n  },\n  {\n    \"asset\": \"TUSD\",\n    \"currency\": \"USD\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"TUSD/USD\"\n  },\n  {\n    \"asset\": \"TUSD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"TUSD/USDT\"\n  },\n  {\n    \"asset\": \"TUSD\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"TUSD/ETH\"\n  },\n  {\n    \"asset\": \"MTA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"8\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"MTA/USDT\"\n  },\n  {\n    \"asset\": \"MTA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"8\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"MTA/ETH\"\n  },\n  {\n    \"asset\": \"MUSD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"MUSD/USDT\"\n  },\n  {\n    \"asset\": \"MUSD\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"MUSD/ETH\"\n  },\n  {\n    \"asset\": \"SUSHI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"SUSHI/USD\"\n  },\n  {\n    \"asset\": \"SUSHI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"SUSHI/USDT\"\n  },\n  {\n    \"asset\": \"SUSHI\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"SUSHI/ETH\"\n  },\n  {\n    \"asset\": \"CREAM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.05\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"CREAM/USDT\"\n  },\n  {\n    \"asset\": \"CREAM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.05\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"CREAM/ETH\"\n  },\n  {\n    \"asset\": \"YFII\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.004\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"YFII/USD\"\n  },\n  {\n    \"asset\": \"YFII\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.004\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"YFII/USDT\"\n  },\n  {\n    \"asset\": \"YFII\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.004\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"YFII/ETH\"\n  },\n  {\n    \"asset\": \"BUSD\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BUSD/USD\"\n  },\n  {\n    \"asset\": \"BUSD\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"10\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BUSD/USDT\"\n  },\n  {\n    \"asset\": \"BUSD\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"10\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BUSD/ETH\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"25\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"REN/USD\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"25\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"REN/USDT\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"25\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"REN/ETH\"\n  },\n  {\n    \"asset\": \"BAND\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BAND/USDT\"\n  },\n  {\n    \"asset\": \"BAND\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BAND/ETH\"\n  },\n  {\n    \"asset\": \"AKRO\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"298\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"AKRO/USDT\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BNT/USDT\"\n  },\n  {\n    \"asset\": \"ZAP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"140\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ZAP/USDT\"\n  },\n  {\n    \"asset\": \"SRM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.65\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"SRM/USDT\"\n  },\n  {\n    \"asset\": \"ANT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ANT/USDT\"\n  },\n  {\n    \"asset\": \"PAXG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.004\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"PAXG/USDT\"\n  },\n  {\n    \"asset\": \"OCEAN\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"16\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"OCEAN/USDT\"\n  },\n  {\n    \"asset\": \"STORJ\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"STORJ/USDT\"\n  },\n  {\n    \"asset\": \"KAVA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.8\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"KAVA/USDT\"\n  },\n  {\n    \"asset\": \"KSM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.02\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"KSM/USDT\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.02\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"AAVE/USDT\"\n  },\n  {\n    \"asset\": \"REPV2\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.6\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"REPV2/USDT\"\n  },\n  {\n    \"asset\": \"BCHA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.4\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BCHA/USDT\"\n  },\n  {\n    \"asset\": \"OCEAN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"5.5\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"OCEAN/USD\"\n  },\n  {\n    \"asset\": \"SRM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.6\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"SRM/USD\"\n  },\n  {\n    \"asset\": \"KAVA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.8\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"KAVA/USD\"\n  },\n  {\n    \"asset\": \"STORJ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"STORJ/USD\"\n  },\n  {\n    \"asset\": \"GLM\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"24\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"GLM/USDT\"\n  },\n  {\n    \"asset\": \"GLM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"24\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"GLM/USD\"\n  },\n  {\n    \"asset\": \"GZIL\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.05\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"GZIL/USDT\"\n  },\n  {\n    \"asset\": \"GZIL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.05\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"GZIL/USD\"\n  },\n  {\n    \"asset\": \"TON\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"TON/USDT\"\n  },\n  {\n    \"asset\": \"TON\",\n    \"currency\": \"USD\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"TON/USD\"\n  },\n  {\n    \"asset\": \"AWG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.12\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"AWG/USD\"\n  },\n  {\n    \"asset\": \"FUN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"309\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"FUN/USD\"\n  },\n  {\n    \"asset\": \"UTK\",\n    \"currency\": \"USD\",\n    \"min_size\": \"25\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"UTK/USD\"\n  },\n  {\n    \"asset\": \"UTK\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"25\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"UTK/USDT\"\n  },\n  {\n    \"asset\": \"USDC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"7\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"USDC/EUR\"\n  },\n  {\n    \"asset\": \"1INCH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.3\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"1INCH/USD\"\n  },\n  {\n    \"asset\": \"RENBTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00015\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"RENBTC/USD\"\n  },\n  {\n    \"asset\": \"RSR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"216\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"RSR/USD\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"MANA/USD\"\n  },\n  {\n    \"asset\": \"LRC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"LRC/USD\"\n  },\n  {\n    \"asset\": \"DNT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"20\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"DNT/USD\"\n  },\n  {\n    \"asset\": \"CVC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"24\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"CVC/USD\"\n  },\n  {\n    \"asset\": \"XSGD\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"XSGD/USD\"\n  },\n  {\n    \"asset\": \"ZWAP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ZWAP/USD\"\n  },\n  {\n    \"asset\": \"BNB\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.02\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"BNB/USD\"\n  },\n  {\n    \"asset\": \"HAPI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.08\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"HAPI/USD\"\n  },\n  {\n    \"asset\": \"AWX\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"2\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"AWX/USDT\"\n  },\n  {\n    \"asset\": \"COTI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"15\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"COTI/USD\"\n  },\n  {\n    \"asset\": \"AWS\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"AWS/USD\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.02\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"AAVE/USD\"\n  },\n  {\n    \"asset\": \"RENBTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.000186\",\n    \"max_size\": null,\n    \"increment\": \"0.000001\",\n    \"label\": \"RENBTC/BTC\"\n  },\n  {\n    \"asset\": \"WBTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.000185\",\n    \"max_size\": null,\n    \"increment\": \"0.000001\",\n    \"label\": \"WBTC/BTC\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"99.051931\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"TRX/GBP\"\n  },\n  {\n    \"asset\": \"ZAP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"84.797092\",\n    \"max_size\": null,\n    \"increment\": \"0.01\",\n    \"label\": \"ZAP/USD\"\n  }\n]"
  },
  {
    "path": "extensions/exchanges/cexio/update-products.sh",
    "content": "#!/usr/bin/env node\nconst ccxt = require('ccxt')\nconst path = require('path')\nvar client = new ccxt.cex()\nclient.fetchMarkets().then(result => {\n  var products = []\n  result.forEach(function (product) {\n    var increment = ''\n    if (product.info.symbol1 === 'BTC' && product.info.symbol2 !== 'RUB') {\n      increment = '0.1'\n    } else if (product.info.symbol1 === 'BTC' && product.info.symbol2 === 'RUB') {\n      increment = '1'\n    } else if (product.info.symbol2 === 'BTC' && (product.info.symbol1 === 'XRP' || product.info.symbol1 === 'GHS')) {\n      increment = '0.00000001'\n    } else if (product.info.symbol2 === 'BTC') {\n      increment = '0.000001'\n    } else if (product.info.symbol1 === 'XRP') {\n      increment = '0.0001'\n    } else {\n      increment = '0.01'\n    }\n    products.push({\n      asset: product.info.symbol1,\n      currency: product.info.symbol2,\n      min_size: product.info.minLotSize.toString(),\n      max_size: product.info.maxLotSize != null ? product.info.maxLotSize.toString() : product.info.maxLotSize,\n      increment: increment,\n      label: product.id\n    })\n  })\n  var target = path.resolve(__dirname, 'products.json')\n  require('fs').writeFileSync(target, JSON.stringify(products, null, 2))\n  console.log('wrote', target)\n  process.exit()\n})\n"
  },
  {
    "path": "extensions/exchanges/gdax/exchange.js",
    "content": "var Gdax = require('coinbase-pro'),\n  minimist = require('minimist')\n\nmodule.exports = function gdax (conf) {\n  var so = minimist(process.argv)\n  var public_client = {}, authed_client, websocket_client = {}, websocket_cache = {}\n\n  function publicClient (product_id) {\n    if (!public_client[product_id]) {\n      websocketClient(product_id)\n      public_client[product_id] = new Gdax.PublicClient(conf.gdax.apiURI)\n    }\n    return public_client[product_id]\n  }\n\n  function websocketClient (product_id) {\n    if (!websocket_client[product_id]) {\n      var auth = null\n      var client_state = {}\n      if(conf.gdax.key && conf.gdax.key !== 'YOUR-API-KEY'){\n        auth = {\n          key: conf.gdax.key,\n          secret: conf.gdax.b64secret,\n          passphrase: conf.gdax.passphrase\n        }\n      if(conf.gdax.sandbox == true){\n        conf.gdax.websocketURI = 'wss://ws-feed-public.sandbox.pro.coinbase.com' }\n      }\n\n      var channels = ['matches', 'ticker']\n\n      // subscribe to user channels which need fully auth data\n      if (auth) {\n        channels.push('user')\n      }\n\n      websocket_client[product_id] = new Gdax.WebsocketClient([product_id], conf.gdax.websocketURI, auth, {channels})\n\n      // initialize a cache for the websocket connection\n      websocket_cache[product_id] = {\n        trades: [],\n        trade_ids: [],\n        orders: {},\n        ticker: {}\n      }\n\n      websocket_client[product_id].on('open', () => {\n        if (so.debug) {\n          console.log('websocket connection to ' + product_id + ' opened')\n        }\n      })\n\n      websocket_client[product_id].on('message', (message) => {\n        // all messages with user_id are related to trades for current authenticated user\n        if(message.user_id){\n          if (so.debug) {\n            console.log('websocket user channel income', message)\n          }\n\n          switch (message.type) {\n          case 'open':\n            handleOrderOpen(message, product_id)\n            break\n          case 'done':\n            handleOrderDone(message, product_id)\n            break\n          case 'change':\n            handleOrderChange(message, product_id)\n            break\n          case 'match':\n            handleOrderMatch(message, product_id)\n            break\n          default:\n            break\n          }\n        }\n\n        switch (message.type) {\n        case 'open':\n          break\n        case 'done':\n          break\n        case 'change':\n          break\n        case 'match':\n          handleTrade(message, product_id)\n          break\n        case 'ticker':\n          handleTicker(message, product_id)\n          break\n        default:\n          break\n        }\n      })\n\n      websocket_client[product_id].on('error', (err) => {\n        client_state.errored = true\n\n        if (so.debug) {\n          console.error('websocket error: ', err, 'restarting websocket connection')\n        }\n\n        websocket_client[product_id].disconnect()\n        websocket_client[product_id] = null\n        websocket_cache[product_id] = null\n        websocketClient(product_id)\n      })\n\n      websocket_client[product_id].on('close', () => {\n        if (client_state.errored){\n          client_state.errored = false\n          return\n        }\n\n        if (so.debug) {\n          console.error('websocket connection to '+product_id+' closed, attempting reconnect')\n        }\n\n        websocket_client[product_id] = null\n        websocket_client[product_id] = websocketClient(product_id)\n      })\n    }\n    return websocket_client[product_id]\n  }\n\n  function authedClient () {\n    if (!authed_client) {\n      if (!conf.gdax || !conf.gdax.key || conf.gdax.key === 'YOUR-API-KEY') {\n        throw new Error('please configure your GDAX credentials in conf.js')\n      }\n      if (conf.gdax.sandbox === true) {\n        conf.gdax.apiURI = 'https://api-public.sandbox.pro.coinbase.com'\n      }\n      authed_client = new Gdax.AuthenticatedClient(conf.gdax.key, conf.gdax.b64secret, conf.gdax.passphrase, conf.gdax.apiURI)\n    }\n    return authed_client\n  }\n\n  function statusErr (resp, body) {\n    if (resp.statusCode !== 200) {\n      var err = new Error('non-200 status: ' + resp.statusCode)\n      err.code = 'HTTP_STATUS'\n      err.body = body\n      return err\n    }\n  }\n\n  function retry (method, args, err) {\n    if (method !== 'getTrades') {\n      console.error(('\\nGDAX API is down! unable to call ' + method + ', retrying in 10s').red)\n      if (err) console.error(err)\n      console.error(args.slice(0, -1))\n    }\n    setTimeout(function () {\n      exchange[method].apply(exchange, args)\n    }, 10000)\n  }\n\n  function handleOrderOpen(update, product_id) {\n    websocket_cache[product_id].orders['~'+update.order_id] = {\n      id: update.order_id,\n      price: update.price,\n      size: update.remaining_size,\n      product_id: update.product_id,\n      side: update.side,\n      status: 'open',\n      settled: false,\n      filled_size: 0\n    }\n  }\n\n  function handleOrderDone(update, product_id) {\n    let cached_order = websocket_cache[product_id].orders['~'+update.order_id]\n    if(cached_order){\n      /*\n      order canceled by user or on platform: which must be retried see \"reason\":\n      { type: 'done',\n        side: 'sell',\n        order_id: 'xxxx',\n        reason: 'canceled',\n        product_id: 'LTC-EUR',\n        price: '142.33000000',\n        remaining_size: '1.24390150',\n        sequence: 1337,\n        user_id: '5a2aeXXX',\n        profile_id: 'xxx',\n        time: '2018-03-09T16:28:49.293000Z'\n      }\n\n      complete order response; no further action:\n      { type: 'done',\n        side: 'sell',\n        order_id: 'xxxx',\n        reason: 'filled',\n        product_id: 'LTC-EUR',\n        price: '142.81000000',\n        remaining_size: '0.00000000',\n        sequence: 1337,\n        user_id: '5a2aeXXX',\n        profile_id: 'xxx',\n        time: '2018-03-09T16:56:39.352000Z'\n      }\n      */\n\n      // get order \"reason\":\n      //  - \"canceled\" by user or platform\n      //  - \"filled\" order successfully placed and filled\n      let reason = update.reason\n\n      cached_order.status = 'done'\n\n      // \"canceled\" is not a success order instead it must be retried\n      // force zenbot a order retry; see \"engine.js\" for possible retry conditions\n      if (reason && reason == 'canceled') {\n        cached_order.status = 'rejected'\n        cached_order.reject_reason = 'post only'\n      }\n\n      cached_order.done_at = update.time\n      cached_order.done_reason = reason\n      cached_order.settled = true\n    }\n  }\n\n  function handleOrderChange(update, product_id) {\n    var cached_order = websocket_cache[product_id].orders['~'+update.order_id]\n    if(cached_order && update.new_size){\n      cached_order.size = update.new_size\n    }\n  }\n\n  function handleOrderMatch(update, product_id) {\n    var cached_order = websocket_cache[product_id].orders['~'+update.maker_order_id] || websocket_cache[product_id].orders['~'+update.taker_order_id]\n    if(cached_order){\n      cached_order.price = update.price\n      cached_order.filled_size = (parseFloat(cached_order.filled_size) + update.size).toString()\n    }\n  }\n\n  function handleTrade(trade, product_id) {\n    var cache = websocket_cache[product_id]\n    cache.trades.push(trade)\n    cache.trade_ids.push(trade.trade_id)\n  }\n\n  function handleTicker(ticker, product_id) {\n    websocket_cache[product_id].ticker = ticker\n  }\n\n  var orders = {}\n\n  var exchange = {\n    name: 'gdax',\n    historyScan: 'backward',\n    makerFee: 0.35,\n    takerFee: 0.35,\n    backfillRateLimit: 335,\n\n    getProducts: function () {\n      return require('./products.json')\n    },\n\n    getTrades: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = publicClient(opts.product_id)\n      var args = {}\n      if (opts.from) {\n        // move cursor into the future\n        args.before = opts.from\n      }\n      else if (opts.to) {\n        // move cursor into the past\n        args.after = opts.to\n      }\n      // check for locally cached trades from the websocket feed\n      var cache = websocket_cache[opts.product_id]\n      var max_trade_id = cache.trade_ids.reduce(function(a, b) {\n        return Math.max(a, b)\n      }, -1)\n      if (opts.from && max_trade_id >= opts.from) {\n        var fromIndex = cache.trades.findIndex((value)=> {return value.trade_id == opts.from})\n        var newTrades = cache.trades.slice(fromIndex + 1)\n        newTrades = newTrades.map(function (trade) {\n          return {\n            trade_id: trade.trade_id,\n            time: new Date(trade.time).getTime(),\n            size: Number(trade.size),\n            price: Number(trade.price),\n            side: trade.side\n          }\n        })\n        newTrades.reverse()\n        cb(null, newTrades)\n        // trim cache\n        cache.trades = cache.trades.slice(fromIndex)\n        cache.trade_ids = cache.trade_ids.slice(fromIndex)\n        return\n      }\n      if(so.debug) console.log('getproducttrades call')\n      client.getProductTrades(opts.product_id, args, function (err, resp, body) {\n        if (!err) err = statusErr(resp, body)\n        if (err) return retry('getTrades', func_args, err)\n        var trades = body.map(function (trade) {\n          return {\n            trade_id: trade.trade_id,\n            time: new Date(trade.time).getTime(),\n            size: Number(trade.size),\n            price: Number(trade.price),\n            side: trade.side\n          }\n        })\n        trades.reverse()\n        cb(null, trades)\n      })\n    },\n\n    getBalance: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n\n      if (so.debug) {\n        console.log('getaccounts call')\n      }\n\n      client.getAccounts(function (err, resp, body) {\n        if (!err) err = statusErr(resp, body)\n        if (err) return retry('getBalance', func_args, err)\n        var balance = {asset: 0, currency: 0}\n        body.forEach(function (account) {\n          if (account.currency === opts.currency) {\n            balance.currency = account.balance\n            balance.currency_hold = account.hold\n          }\n          else if (account.currency === opts.asset) {\n            balance.asset = account.balance\n            balance.asset_hold = account.hold\n          }\n        })\n        cb(null, balance)\n      })\n    },\n\n    getQuote: function (opts, cb) {\n      // check websocket cache first\n      if(websocket_cache[opts.product_id]) {\n        var ticker = websocket_cache[opts.product_id].ticker\n        if(ticker.best_ask && ticker.best_bid){\n          cb(null, {bid: ticker.best_bid, ask: ticker.best_ask})\n          return\n        }\n      }\n      var func_args = [].slice.call(arguments)\n      var client = publicClient(opts.product_id)\n      if(so.debug) console.log('getproductticker call')\n      client.getProductTicker(opts.product_id, function (err, resp, body) {\n        if (!err) err = statusErr(resp, body)\n        if (err) return retry('getQuote', func_args, err)\n        if (body.bid || body.ask)\n          cb(null, {bid: body.bid, ask: body.ask})\n        else\n          cb({code: 'ENOTFOUND', body: opts.product_id + ' has no liquidity to quote'})\n      })\n    },\n\n    cancelOrder: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n\n      if (so.debug) {\n        console.log('cancelorder call')\n      }\n\n      client.cancelOrder(opts.order_id, function (err, resp, body) {\n        if (body && (body.message === 'Order already done' || body.message === 'order not found')) {\n          return cb()\n        }\n\n        if (!err) {\n          err = statusErr(resp, body)\n        }\n\n        if (err) {\n          return retry('cancelOrder', func_args, err)\n        }\n\n        cb()\n      })\n    },\n\n    buy: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      if (typeof opts.post_only === 'undefined') {\n        opts.post_only = true\n      }\n      if (opts.order_type === 'taker') {\n        delete opts.price\n        delete opts.post_only\n        delete opts.cancel_after\n        opts.type = 'market'\n      }\n      else {\n        opts.time_in_force = 'GTT'\n      }\n      delete opts.order_type\n\n      if (so.debug) {\n        console.log('buy call')\n      }\n\n      client.buy(opts, function (err, resp, body) {\n        if (body && body.message === 'Insufficient funds') {\n          return cb(null, {\n            status: 'rejected',\n            reject_reason: 'balance'\n          })\n        }\n\n        if (!err) {\n          err = statusErr(resp, body)\n        }\n\n        if (err) {\n          return retry('buy', func_args, err)\n        }\n\n        orders['~' + body.id] = body\n        cb(null, body)\n      })\n    },\n\n    sell: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n\n      if (typeof opts.post_only === 'undefined') {\n        opts.post_only = true\n      }\n\n      if (opts.order_type === 'taker') {\n        delete opts.price\n        delete opts.post_only\n        delete opts.cancel_after\n        opts.type = 'market'\n      }\n      else {\n        opts.time_in_force = 'GTT'\n      }\n      delete opts.order_type\n\n      if (so.debug) {\n        console.log('sell call')\n      }\n\n      client.sell(opts, function (err, resp, body) {\n        if (body && body.message === 'Insufficient funds') {\n          return cb(null, {\n            status: 'rejected',\n            reject_reason: 'balance'\n          })\n        }\n\n        if (!err) {\n          err = statusErr(resp, body)\n        }\n\n        if (err) {\n          return retry('sell', func_args, err)\n        }\n\n        orders['~' + body.id] = body\n        cb(null, body)\n      })\n    },\n\n    getOrder: function (opts, cb) {\n      if(websocket_cache[opts.product_id] && websocket_cache[opts.product_id].orders['~' + opts.order_id]) {\n        let order_cache = websocket_cache[opts.product_id].orders['~' + opts.order_id]\n\n        if (so.debug) {\n          console.log('getOrder websocket cache', order_cache)\n        }\n\n        cb(null, order_cache)\n        return\n      }\n\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n\n      if (so.debug) {\n        console.log('getorder call')\n      }\n\n      client.getOrder(opts.order_id, function (err, resp, body) {\n        if (!err && resp.statusCode !== 404) {\n          err = statusErr(resp, body)\n        }\n\n        if (resp.statusCode === 404) {\n          // order was cancelled. recall from cache\n          body = orders['~' + opts.order_id]\n          body.status = 'done'\n          body.done_reason = 'canceled'\n        }\n\n        if (err) {\n          return retry('getOrder', func_args, err)\n        }\n\n        cb(null, body)\n      })\n    },\n\n    // return the property used for range querying.\n    getCursor: function (trade) {\n      return trade.trade_id\n    }\n  }\n  return exchange\n}\n"
  },
  {
    "path": "extensions/exchanges/gdax/products.json",
    "content": "[\n  {\n    \"asset\": \"1INCH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"59000\",\n    \"increment\": \"0.0000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"1INCH/BTC\"\n  },\n  {\n    \"asset\": \"1INCH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"59000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"1INCH/EUR\"\n  },\n  {\n    \"asset\": \"1INCH\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"59000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"1INCH/GBP\"\n  },\n  {\n    \"asset\": \"1INCH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"59000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"1INCH/USD\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"1200\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"AAVE/BTC\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"1200\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"AAVE/EUR\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"1200\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"AAVE/GBP\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"1200\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"AAVE/USD\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"250000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"ADA/BTC\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"170000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"ADA/ETH\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1\",\n    \"max_size\": \"250000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"ADA/EUR\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"1\",\n    \"max_size\": \"250000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"ADA/GBP\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"250000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"ADA/USD\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"170000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"ADA/USDC\"\n  },\n  {\n    \"asset\": \"ALGO\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"260000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"ALGO/BTC\"\n  },\n  {\n    \"asset\": \"ALGO\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1\",\n    \"max_size\": \"500000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"ALGO/EUR\"\n  },\n  {\n    \"asset\": \"ALGO\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"1\",\n    \"max_size\": \"500000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"ALGO/GBP\"\n  },\n  {\n    \"asset\": \"ALGO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"500000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"ALGO/USD\"\n  },\n  {\n    \"asset\": \"AMP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10\",\n    \"max_size\": \"6800000\",\n    \"increment\": \"0.00001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"AMP/USD\"\n  },\n  {\n    \"asset\": \"ANKR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"10\",\n    \"max_size\": \"4000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"ANKR/BTC\"\n  },\n  {\n    \"asset\": \"ANKR\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"10\",\n    \"max_size\": \"4000000\",\n    \"increment\": \"0.00001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"ANKR/EUR\"\n  },\n  {\n    \"asset\": \"ANKR\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"10\",\n    \"max_size\": \"4000000\",\n    \"increment\": \"0.00001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"ANKR/GBP\"\n  },\n  {\n    \"asset\": \"ANKR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10\",\n    \"max_size\": \"4000000\",\n    \"increment\": \"0.00001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"ANKR/USD\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"25000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"ATOM/BTC\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"25000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"ATOM/USD\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"6700\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"BAL/BTC\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"6700\",\n    \"increment\": \"0.00001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"BAL/USD\"\n  },\n  {\n    \"asset\": \"BAND\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"18000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"BAND/BTC\"\n  },\n  {\n    \"asset\": \"BAND\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"18000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"BAND/EUR\"\n  },\n  {\n    \"asset\": \"BAND\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"18000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"BAND/GBP\"\n  },\n  {\n    \"asset\": \"BAND\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"18000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"BAND/USD\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"170000\",\n    \"increment\": \"0.0000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"BAT/BTC\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1\",\n    \"max_size\": \"300000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"BAT/ETH\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"170000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"BAT/EUR\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"170000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"BAT/USD\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"800000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"BAT/USDC\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"400\",\n    \"increment\": \"0.00001\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"BCH/BTC\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"100\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"BCH/EUR\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"250\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"BCH/GBP\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"700\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"BCH/USD\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"95000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"BNT/BTC\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1\",\n    \"max_size\": \"95000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.000001\",\n    \"label\": \"BNT/EUR\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"1\",\n    \"max_size\": \"95000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.000001\",\n    \"label\": \"BNT/GBP\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"95000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.000001\",\n    \"label\": \"BNT/USD\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.0001\",\n    \"max_size\": \"200\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"BTC/EUR\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.0001\",\n    \"max_size\": \"80\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"BTC/GBP\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0001\",\n    \"max_size\": \"280\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"BTC/USD\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.0001\",\n    \"max_size\": \"280\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"BTC/USDC\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.0001\",\n    \"max_size\": \"280\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"BTC/USDT\"\n  },\n  {\n    \"asset\": \"CGLD\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"34000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"CGLD/BTC\"\n  },\n  {\n    \"asset\": \"CGLD\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"34000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"CGLD/EUR\"\n  },\n  {\n    \"asset\": \"CGLD\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"34000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"CGLD/GBP\"\n  },\n  {\n    \"asset\": \"CGLD\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"34000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"CGLD/USD\"\n  },\n  {\n    \"asset\": \"COMP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"1700\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"COMP/BTC\"\n  },\n  {\n    \"asset\": \"COMP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"1700\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"COMP/USD\"\n  },\n  {\n    \"asset\": \"CRV\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.5\",\n    \"max_size\": \"100000\",\n    \"increment\": \"0.0000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"CRV/BTC\"\n  },\n  {\n    \"asset\": \"CRV\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.5\",\n    \"max_size\": \"100000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"CRV/EUR\"\n  },\n  {\n    \"asset\": \"CRV\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.5\",\n    \"max_size\": \"100000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"CRV/GBP\"\n  },\n  {\n    \"asset\": \"CRV\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.5\",\n    \"max_size\": \"100000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"CRV/USD\"\n  },\n  {\n    \"asset\": \"CTSI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"360000\",\n    \"increment\": \"0.0000001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"CTSI/BTC\"\n  },\n  {\n    \"asset\": \"CTSI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"360000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"CTSI/USD\"\n  },\n  {\n    \"asset\": \"CVC\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"2000000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"CVC/USDC\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"100000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"0.00001\",\n    \"label\": \"DAI/USD\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"100000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"0.00001\",\n    \"label\": \"DAI/USDC\"\n  },\n  {\n    \"asset\": \"DASH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"1500\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"DASH/BTC\"\n  },\n  {\n    \"asset\": \"DASH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"1500\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"DASH/USD\"\n  },\n  {\n    \"asset\": \"DNT\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"10000000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"DNT/USDC\"\n  },\n  {\n    \"asset\": \"DOGE\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"690000\",\n    \"increment\": \"0.0000001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"DOGE/BTC\"\n  },\n  {\n    \"asset\": \"DOGE\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1\",\n    \"max_size\": \"690000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"DOGE/EUR\"\n  },\n  {\n    \"asset\": \"DOGE\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"1\",\n    \"max_size\": \"690000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"DOGE/GBP\"\n  },\n  {\n    \"asset\": \"DOGE\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"690000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"DOGE/USD\"\n  },\n  {\n    \"asset\": \"DOGE\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1\",\n    \"max_size\": \"690000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"DOGE/USDT\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.0000001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"DOT/BTC\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"DOT/EUR\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"DOT/GBP\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"DOT/USD\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"DOT/USDT\"\n  },\n  {\n    \"asset\": \"ENJ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"97000\",\n    \"increment\": \"0.0000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"ENJ/BTC\"\n  },\n  {\n    \"asset\": \"ENJ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"97000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"ENJ/USD\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"50000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"EOS/BTC\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"50000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"EOS/EUR\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"50000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"EOS/USD\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"5000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"ETC/BTC\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"20000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"ETC/EUR\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"20000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"ETC/GBP\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"20000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"ETC/USD\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"2400\",\n    \"increment\": \"0.00001\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"ETH/BTC\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"DAI\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"700\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.0001\",\n    \"label\": \"ETH/DAI\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1600\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"ETH/EUR\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1400\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"ETH/GBP\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"2800\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"ETH/USD\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"2800\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"ETH/USDC\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"2800\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"ETH/USDT\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"3400\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"FIL/BTC\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"3400\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"FIL/EUR\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"3400\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"FIL/GBP\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"3400\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"FIL/USD\"\n  },\n  {\n    \"asset\": \"FORTH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"7200\",\n    \"increment\": \"0.0000001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"FORTH/BTC\"\n  },\n  {\n    \"asset\": \"FORTH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"7200\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"FORTH/EUR\"\n  },\n  {\n    \"asset\": \"FORTH\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"7200\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"FORTH/GBP\"\n  },\n  {\n    \"asset\": \"FORTH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"7200\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"FORTH/USD\"\n  },\n  {\n    \"asset\": \"GNT\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"1500000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"GNT/USDC\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"10\",\n    \"max_size\": \"2500000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"GRT/BTC\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"10\",\n    \"max_size\": \"2500000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"GRT/EUR\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"10\",\n    \"max_size\": \"2500000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"GRT/GBP\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10\",\n    \"max_size\": \"2500000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"GRT/USD\"\n  },\n  {\n    \"asset\": \"GTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"44000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"GTC/USD\"\n  },\n  {\n    \"asset\": \"ICP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1300\",\n    \"increment\": \"0.0000001\",\n    \"asset_increment\": \"0.0001\",\n    \"label\": \"ICP/BTC\"\n  },\n  {\n    \"asset\": \"ICP\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1300\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.0001\",\n    \"label\": \"ICP/EUR\"\n  },\n  {\n    \"asset\": \"ICP\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1300\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.0001\",\n    \"label\": \"ICP/GBP\"\n  },\n  {\n    \"asset\": \"ICP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1300\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.0001\",\n    \"label\": \"ICP/USD\"\n  },\n  {\n    \"asset\": \"ICP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"1300\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.0001\",\n    \"label\": \"ICP/USDT\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"600000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"KNC/BTC\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"500000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"KNC/USD\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"6500\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"LINK/BTC\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"90000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"LINK/ETH\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"90000\",\n    \"increment\": \"0.00001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"LINK/EUR\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"90000\",\n    \"increment\": \"0.00001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"LINK/GBP\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"90000\",\n    \"increment\": \"0.00001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"LINK/USD\"\n  },\n  {\n    \"asset\": \"LOOM\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"2500000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"LOOM/USDC\"\n  },\n  {\n    \"asset\": \"LRC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"440000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"LRC/BTC\"\n  },\n  {\n    \"asset\": \"LRC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"560000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.000001\",\n    \"label\": \"LRC/USD\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"8000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"LTC/BTC\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"1000\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"LTC/EUR\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"1000\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"LTC/GBP\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"4000\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"LTC/USD\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"220000\",\n    \"increment\": \"0.0000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"MANA/BTC\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"220000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"MANA/ETH\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"220000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"MANA/EUR\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"220000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"MANA/USD\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"2800000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"MANA/USDC\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"5\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"MATIC/BTC\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"5\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"MATIC/EUR\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"5\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"MATIC/GBP\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"5\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"MATIC/USD\"\n  },\n  {\n    \"asset\": \"MIR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"27000\",\n    \"increment\": \"0.0000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"MIR/BTC\"\n  },\n  {\n    \"asset\": \"MIR\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"27000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"MIR/EUR\"\n  },\n  {\n    \"asset\": \"MIR\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"27000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"MIR/GBP\"\n  },\n  {\n    \"asset\": \"MIR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"27000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"MIR/USD\"\n  },\n  {\n    \"asset\": \"MKR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"240\",\n    \"increment\": \"0.00001\",\n    \"asset_increment\": \"0.000001\",\n    \"label\": \"MKR/BTC\"\n  },\n  {\n    \"asset\": \"MKR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"240\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.000001\",\n    \"label\": \"MKR/USD\"\n  },\n  {\n    \"asset\": \"MLN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"3300\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"MLN/USD\"\n  },\n  {\n    \"asset\": \"NKN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"1400000\",\n    \"increment\": \"0.0000001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"NKN/BTC\"\n  },\n  {\n    \"asset\": \"NKN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"1400000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"NKN/USD\"\n  },\n  {\n    \"asset\": \"NMR\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"3900\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"NMR/BTC\"\n  },\n  {\n    \"asset\": \"NMR\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"3900\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"NMR/EUR\"\n  },\n  {\n    \"asset\": \"NMR\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"3900\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"NMR/GBP\"\n  },\n  {\n    \"asset\": \"NMR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"3900\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"NMR/USD\"\n  },\n  {\n    \"asset\": \"NU\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"10\",\n    \"max_size\": \"1300000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"NU/BTC\"\n  },\n  {\n    \"asset\": \"NU\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"10\",\n    \"max_size\": \"1300000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.000001\",\n    \"label\": \"NU/EUR\"\n  },\n  {\n    \"asset\": \"NU\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"10\",\n    \"max_size\": \"1300000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.000001\",\n    \"label\": \"NU/GBP\"\n  },\n  {\n    \"asset\": \"NU\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10\",\n    \"max_size\": \"1300000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.000001\",\n    \"label\": \"NU/USD\"\n  },\n  {\n    \"asset\": \"OGN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"130000\",\n    \"increment\": \"0.0000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"OGN/BTC\"\n  },\n  {\n    \"asset\": \"OGN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"130000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"OGN/USD\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"150000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"OMG/BTC\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1\",\n    \"max_size\": \"500000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"OMG/EUR\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"1\",\n    \"max_size\": \"150000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"OMG/GBP\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"500000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"OMG/USD\"\n  },\n  {\n    \"asset\": \"OXT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"500000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"OXT/USD\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"460000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"REN/BTC\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"460000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.000001\",\n    \"label\": \"REN/USD\"\n  },\n  {\n    \"asset\": \"REP\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"5000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"0.000001\",\n    \"label\": \"REP/BTC\"\n  },\n  {\n    \"asset\": \"REP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"5000\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.000001\",\n    \"label\": \"REP/USD\"\n  },\n  {\n    \"asset\": \"RLC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"93000\",\n    \"increment\": \"0.0000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"RLC/BTC\"\n  },\n  {\n    \"asset\": \"RLC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"93000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"RLC/USD\"\n  },\n  {\n    \"asset\": \"SKL\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"5\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"SKL/BTC\"\n  },\n  {\n    \"asset\": \"SKL\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"5\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"SKL/EUR\"\n  },\n  {\n    \"asset\": \"SKL\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"5\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"SKL/GBP\"\n  },\n  {\n    \"asset\": \"SKL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"5\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"SKL/USD\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"19000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"SNX/BTC\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"19000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"SNX/EUR\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"19000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"SNX/GBP\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"19000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"SNX/USD\"\n  },\n  {\n    \"asset\": \"STORJ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"280000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"STORJ/BTC\"\n  },\n  {\n    \"asset\": \"STORJ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"280000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"STORJ/USD\"\n  },\n  {\n    \"asset\": \"SUSHI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"12500\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"SUSHI/BTC\"\n  },\n  {\n    \"asset\": \"SUSHI\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"12500\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"SUSHI/ETH\"\n  },\n  {\n    \"asset\": \"SUSHI\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"12500\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"SUSHI/EUR\"\n  },\n  {\n    \"asset\": \"SUSHI\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"12500\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"SUSHI/GBP\"\n  },\n  {\n    \"asset\": \"SUSHI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"12500\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"SUSHI/USD\"\n  },\n  {\n    \"asset\": \"TRB\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"3100\",\n    \"increment\": \"0.0000001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"TRB/BTC\"\n  },\n  {\n    \"asset\": \"TRB\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"3100\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"TRB/USD\"\n  },\n  {\n    \"asset\": \"UMA\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"4500\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"UMA/BTC\"\n  },\n  {\n    \"asset\": \"UMA\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"4500\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"UMA/EUR\"\n  },\n  {\n    \"asset\": \"UMA\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"4500\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"UMA/GBP\"\n  },\n  {\n    \"asset\": \"UMA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"4500\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.001\",\n    \"label\": \"UMA/USD\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"25000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.1\",\n    \"label\": \"UNI/BTC\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1\",\n    \"max_size\": \"200000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.000001\",\n    \"label\": \"UNI/USD\"\n  },\n  {\n    \"asset\": \"USDC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1\",\n    \"max_size\": \"250000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"USDC/EUR\"\n  },\n  {\n    \"asset\": \"USDC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"1\",\n    \"max_size\": \"250000\",\n    \"increment\": \"0.001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"USDC/GBP\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1\",\n    \"max_size\": \"100000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"USDT/EUR\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"1\",\n    \"max_size\": \"100000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"USDT/GBP\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"USDT/USD\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"1000000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"USDT/USDC\"\n  },\n  {\n    \"asset\": \"WBTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.0001\",\n    \"max_size\": \"10\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"WBTC/BTC\"\n  },\n  {\n    \"asset\": \"WBTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0001\",\n    \"max_size\": \"10\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"WBTC/USD\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"600000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"XLM/BTC\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1\",\n    \"max_size\": \"600000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"XLM/EUR\"\n  },\n  {\n    \"asset\": \"XLM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"600000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"1\",\n    \"label\": \"XLM/USD\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"100000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"XTZ/BTC\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1\",\n    \"max_size\": \"100000\",\n    \"increment\": \"0.00001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"XTZ/EUR\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"1\",\n    \"max_size\": \"100000\",\n    \"increment\": \"0.00001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"XTZ/GBP\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"100000\",\n    \"increment\": \"0.0001\",\n    \"asset_increment\": \"0.01\",\n    \"label\": \"XTZ/USD\"\n  },\n  {\n    \"asset\": \"YFI\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.00001\",\n    \"max_size\": \"4.2\",\n    \"increment\": \"0.00001\",\n    \"asset_increment\": \"0.000001\",\n    \"label\": \"YFI/BTC\"\n  },\n  {\n    \"asset\": \"YFI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00001\",\n    \"max_size\": \"5\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.000001\",\n    \"label\": \"YFI/USD\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"1500\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"0.0001\",\n    \"label\": \"ZEC/BTC\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"1200\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00001\",\n    \"label\": \"ZEC/USD\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.01\",\n    \"max_size\": \"5000\",\n    \"increment\": \"0.01\",\n    \"asset_increment\": \"0.00000001\",\n    \"label\": \"ZEC/USDC\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"1\",\n    \"max_size\": \"600000\",\n    \"increment\": \"0.00000001\",\n    \"asset_increment\": \"0.00001\",\n    \"label\": \"ZRX/BTC\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1\",\n    \"max_size\": \"600000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"0.00001\",\n    \"label\": \"ZRX/EUR\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1\",\n    \"max_size\": \"600000\",\n    \"increment\": \"0.000001\",\n    \"asset_increment\": \"0.00001\",\n    \"label\": \"ZRX/USD\"\n  }\n]"
  },
  {
    "path": "extensions/exchanges/gdax/test.js",
    "content": "var Gdax = require('coinbase-pro')\nvar c = require('../../../conf')\nvar client = new Gdax.AuthenticatedClient(c.gdax.key, c.gdax.b64secret, c.gdax.passphrase, c.gdax.apiURI)\n\nvar order_id = 'd63a349d-0a0e-40f5-8ddb-83f8dc23441a'\n\nclient.getOrder(order_id, function (err, resp, body) {\n  if (err) console.error(err)\n  else if (resp.statusCode === 404) {\n    console.error('NotFound')\n  }\n  else {\n    console.log(body)\n  }\n})\n"
  },
  {
    "path": "extensions/exchanges/gdax/update-products.sh",
    "content": "#!/usr/bin/env node\nvar request = require('micro-request')\nrequest('https://api.pro.coinbase.com/products', {headers: {'User-Agent': 'zenbot/4'}}, function (err, resp, body) {\n  if (err) throw err\n  if (resp.statusCode !== 200) {\n    var err = new Error('non-200 status: ' + resp.statusCode)\n    err.code = 'HTTP_STATUS'\n    err.body = body\n    console.error(err)\n    process.exit(1)\n  }\n  var products = []\n  body.forEach(function (product) {\n    let regex = /\\.0*$|(\\.\\d*[1-9])0+$/\n    products.push({\n      asset: product.base_currency,\n      currency: product.quote_currency,\n      //min_size: product.base_min_size,\n      //max_size: product.base_max_size,\n      //increment: product.quote_increment,\n      //asset_increment: product.base_increment,\n      min_size: Number(product.base_min_size).toFixed(10).replace(regex,'$1'),\n      max_size: Number(product.base_max_size).toFixed(10).replace(regex,'$1'),\n      increment: Number(product.quote_increment).toFixed(10).replace(regex,'$1'),\n      asset_increment: Number(product.base_increment).toFixed(10).replace(/\\.0*$|(\\.\\d*[1-9])0+$/,'$1'),\n      label: product.display_name\n    })\n  })\n  products.sort(function(a, b) {\n    var nameA = a.label.toUpperCase(); // ignore upper and lowercase\n    var nameB = b.label.toUpperCase(); // ignore upper and lowercase\n    if (nameA < nameB) {\n      return -1;\n    }\n    if (nameA > nameB) {\n      return 1;\n    }\n\n    // names must be equal\n    return 0;\n  });\n  var target = require('path').resolve(__dirname, 'products.json')\n  require('fs').writeFileSync(target, JSON.stringify(products, null, 2))\n  console.log('wrote', target)\n  process.exit()\n})\n"
  },
  {
    "path": "extensions/exchanges/gemini/.snyk",
    "content": "# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.\nversion: v1.14.1\nignore: {}\n# patches apply the minimum changes required to fix a vulnerability\npatch:\n  SNYK-JS-LODASH-567746:\n    - gemini-api > lodash:\n        patched: '2020-05-01T00:48:22.572Z'\n"
  },
  {
    "path": "extensions/exchanges/gemini/exchange.js",
    "content": "var GeminiAPI = require('gemini-api'),\n  path = require('path'),\n  minimist = require('minimist'),\n  // eslint-disable-next-line no-unused-vars\n  colors = require('colors'),\n  n = require('numbro')\n\nmodule.exports = function gemini (conf) {\n  var s = {\n    options: minimist(process.argv)\n  }\n  var so = s.options\n\n  var public_client, authed_client\n\n  function publicClient() {\n    if (!public_client) public_client = new GeminiAPI.default({\n      sandbox: conf.gemini.sandbox || false\n    })\n    return public_client\n  }\n\n  function authedClient() {\n    if (!authed_client) {\n      if (!conf.gemini || !conf.gemini.key || !conf.gemini.key === 'YOUR-API-KEY') {\n        throw new Error('please configure your Gemini credentials in ' + path.resolve(__dirname, 'conf.js'))\n      }\n\n      authed_client = new GeminiAPI.default({\n        key: conf.gemini.key,\n        secret: conf.gemini.secret,\n        sandbox: conf.gemini.sandbox\n      })\n    }\n    return authed_client\n  }\n\n  function joinProduct(product_id) {\n    return (product_id.split('-')[0].toLowerCase() + product_id.split('-')[1]).toLowerCase()\n  }\n\n  function retry(method, args, error) {\n    if (error.code === 429) {\n      console.error((`\\nGemini API rate limit exceeded! unable to call ${method}, aborting`).red)\n      return\n    }\n\n    if (method !== 'getTrades') {\n      console.error((`\\nGemini API is down: (${method}) ${error.message}`).red)\n      console.log(('Retrying in 30 sseconds ...').yellow)\n    }\n\n    debugOut(error)\n\n    setTimeout(function() {\n      exchange[method].apply(exchange, args)\n    }, 30000)\n\n  }\n\n  function debugOut(msg) {\n    if (so.debug) console.log(msg)\n  }\n\n  var orders = {}\n\n  var exchange = {\n    name: 'gemini',\n    historyScan: 'forward',\n    makerFee: 0.10,\n    takerFee: 0.10,\n\n    getProducts: function() {\n      return require('./products.json')\n    },\n\n    getTrades: function(opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var args = {\n        limit_trades: 1000,\n        since: opts.from\n      }\n\n      var client = publicClient()\n      client.getTradeHistory(joinProduct(opts.product_id), args)\n        .then(body => {\n          var trades = body.filter(t => {\n            return t.type !== 'auction'\n          }).map(function(trade) {\n            return {\n              trade_id: trade.tid,\n              time: trade.timestampms,\n              size: Number(trade.amount),\n              price: Number(trade.price),\n              side: trade.type\n            }\n          })\n\n          cb(null, trades)\n        })\n        .catch(error => retry('getTrades', func_args, error))\n    },\n\n    getBalance: function(opts, cb) {\n      var func_args = [].slice.call(arguments)\n\n      var client = authedClient()\n      client.getMyAvailableBalances()\n        .then(body => {\n          var asset = body.find(x => x.currency.toLowerCase() === opts.asset.toLowerCase())\n          var currency = body.find(x => x.currency.toLowerCase() === opts.currency.toLowerCase())\n\n          var balance = {\n            asset: n(asset.amount).format('0.00000'),\n            asset_hold: n(asset.amount).subtract(asset.available).format('0.00000'),\n            currency: n(currency.amount).format('0.00'),\n            currency_hold: n(currency.amount).subtract(currency.available).format('0.00')\n          }\n\n          debugOut('Balance/Hold:')\n          debugOut(`  ${currency.currency} (${balance.currency}/${balance.currency_hold})`)\n          debugOut(`  ${asset.currency} (${balance.asset}/${balance.asset_hold})`)\n\n          cb(null, balance)\n        })\n        .catch(error => retry('getBalance', func_args, error))\n    },\n\n    getQuote: function(opts, cb) {\n      var func_args = [].slice.call(arguments)\n\n      var client = publicClient()\n      client.getTicker(joinProduct(opts.product_id))\n        .then(body => {\n          var r = {\n            bid: String(body.bid),\n            ask: String(body.ask)\n          }\n\n          cb(null, r)\n        })\n        .catch(error => retry('getQuote', func_args, error))\n    },\n\n    cancelOrder: function(opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var params = {\n        order_id: opts.order_id\n      }\n\n      debugOut(`Cancelling order ${opts.order_id}`)\n\n      var client = authedClient()\n      client.cancelOrder(params)\n        .then(cb())\n        .catch(error => retry('cancelOrder', func_args, error))\n    },\n\n    buy: function(opts, cb) {\n      var params = {\n        symbol: joinProduct(opts.product_id),\n        amount: n(opts.size).format('0.00000'),\n        price: n(opts.price).format('0.00'),\n        side: 'buy',\n        type: 'exchange limit',\n        options: []\n      }\n\n      if (opts.order_type === 'taker') {\n        params.options.push('immediate-or-cancel')\n      } else if (opts.post_only) {\n        params.options.push('maker-or-cancel')\n      }\n\n      debugOut(`Requesting ${opts.order_type} buy for ${opts.size} assets`)\n\n      var client = authedClient()\n      client.newOrder(params)\n        .then(body => {\n          var order = {\n            id: body.order_id,\n            status: 'open',\n            price: Number(opts.price),\n            size: Number(opts.size),\n            created_at: new Date().getTime(),\n            filled_size: '0',\n            ordertype: opts.order_type,\n            postonly: !!opts.post_only\n          }\n\n          if (opts.post_only && body.is_cancelled) {\n            order.status = 'rejected',\n            order.reject_reason = 'post only'\n          }\n\n          debugOut(`    Purchase ID: ${body.id}`)\n\n          orders['~' + body.order_id] = order\n          cb(null, order)\n        })\n        .catch(error => cb(error))\n    },\n\n    sell: function(opts, cb) {\n      var params = {\n        symbol: joinProduct(opts.product_id),\n        amount: n(opts.size).format('0.00000'),\n        price: n(opts.price).format('0.00'),\n        side: 'sell',\n        type: 'exchange limit',\n        options: []\n      }\n\n      if (opts.order_type === 'taker') {\n        params.options.push('immediate-or-cancel')\n      } else if (opts.post_only) {\n        params.options.push('maker-or-cancel')\n      }\n\n      debugOut(`Requesting ${opts.order_type} sell for ${opts.size} assets`)\n\n      var client = authedClient()\n      client.newOrder(params)\n        .then(body => {\n          var order = {\n            id: body.order_id,\n            status: 'open',\n            price: Number(opts.price),\n            size: Number(opts.size),\n            created_at: new Date().getTime(),\n            filled_size: '0',\n            ordertype: opts.order_type,\n            postonly: !!opts.post_only\n          }\n\n          if (opts.post_only && body.is_cancelled) {\n            order.status = 'rejected',\n            order.reject_reason = 'post only'\n          }\n\n          debugOut(`    Purchase ID: ${body.id}`)\n\n          orders['~' + body.order_id] = order\n          cb(null, order)\n        })\n        .catch(error => cb(error))\n    },\n\n    getOrder: function(opts, cb) {\n      var order = orders['~' + opts.order_id]\n      var params = {\n        order_id: opts.order_id\n      }\n\n      var client = authedClient()\n      client.getMyOrderStatus(params)\n        .then(body => {\n          if (typeof body !== 'undefined') {\n            if (body.is_cancelled) {\n              order.status = 'done'\n              order.done_at = new Date().getTime()\n              order.filled_size = '0.00000'\n            } else if (!body.is_live) {\n              order.status = 'done'\n              order.done_at = new Date().getTime()\n              order.filled_size = n(body.executed_amount).format('0.00000')\n              order.price = n(body.avg_execution_price).format('0.00')\n            } else {\n              order.filled_size = n(body.executed_amount).format('0.00000')\n              order.price = n(body.avg_execution_price).format('0.00')\n            }\n          }\n\n          debugOut(`Lookup order ${opts.order_id} status is ${order.status}`)\n\n          cb(null, order)\n        })\n        .catch(error => cb(error))\n    },\n\n    // return the property used for range querying.\n    getCursor: function(trade) {\n      return (trade.time || trade)\n    }\n  }\n  return exchange\n}\n"
  },
  {
    "path": "extensions/exchanges/gemini/package.json",
    "content": "{\n  \"name\": \"zenbot_gemini\",\n  \"version\": \"0.0.1\",\n  \"description\": \"Zenbot supporting code for Gemini\",\n  \"dependencies\": {\n    \"gemini-api\": \"^2.0.4\",\n    \"snyk\": \"^1.316.1\"\n  },\n  \"scripts\": {\n    \"snyk-protect\": \"snyk protect\",\n    \"prepublish\": \"npm run snyk-protect\"\n  },\n  \"snyk\": true\n}\n"
  },
  {
    "path": "extensions/exchanges/gemini/products.json",
    "content": "[\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.00001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"BTC/USD\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"DAI\",\n    \"min_size\": \"0.00001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"BTC/DAI\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.00001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"BTC/GBP\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.00001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"BTC/EUR\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"SGD\",\n    \"min_size\": \"0.00001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"BTC/SGD\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.00001\",\n    \"label\": \"ETH/BTC\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"ETH/USD\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"ETH/GBP\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"ETH/EUR\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"SGD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"ETH/SGD\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"DAI\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"ETH/DAI\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"BCH/USD\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.00001\",\n    \"label\": \"BCH/BTC\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"BCH/ETH\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"LTC/USD\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.00001\",\n    \"label\": \"LTC/BTC\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"LTC/ETH\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"BCH\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"LTC/BCH\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"ZEC/USD\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.00001\",\n    \"label\": \"ZEC/BTC\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"ZEC/ETH\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"BCH\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"ZEC/BCH\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"LTC\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"ZEC/LTC\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"BAT/USD\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.00001\",\n    \"label\": \"BAT/BTC\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"BAT/ETH\"\n  },\n  {\n    \"asset\": \"LIN\",\n    \"currency\": \"KUS\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"LIN/KUS\"\n  },\n  {\n    \"asset\": \"LIN\",\n    \"currency\": \"KBT\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"LIN/KBT\"\n  },\n  {\n    \"asset\": \"LIN\",\n    \"currency\": \"KET\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"LIN/KET\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"DAI/USD\"\n  },\n  {\n    \"asset\": \"OXT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"OXT/USD\"\n  },\n  {\n    \"asset\": \"OXT\",\n    \"currency\": \"BTC\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.00001\",\n    \"label\": \"OXT/BTC\"\n  },\n  {\n    \"asset\": \"OXT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"OXT/ETH\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"FIL/USD\"\n  },\n  {\n    \"asset\": \"AMP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"AMP/USD\"\n  },\n  {\n    \"asset\": \"PAX\",\n    \"currency\": \"GUS\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"PAX/GUS\"\n  },\n  {\n    \"asset\": \"COM\",\n    \"currency\": \"PUS\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"COM/PUS\"\n  },\n  {\n    \"asset\": \"MKR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"MKR/USD\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"ZRX/USD\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"KNC/USD\"\n  },\n  {\n    \"asset\": \"STO\",\n    \"currency\": \"RJU\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"STO/RJU\"\n  },\n  {\n    \"asset\": \"MAN\",\n    \"currency\": \"AUS\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"MAN/AUS\"\n  },\n  {\n    \"asset\": \"AAV\",\n    \"currency\": \"EUS\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"AAV/EUS\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"SNX/USD\"\n  },\n  {\n    \"asset\": \"YFI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"YFI/USD\"\n  },\n  {\n    \"asset\": \"UMA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"UMA/USD\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"BAL/USD\"\n  },\n  {\n    \"asset\": \"CRV\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"CRV/USD\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"REN/USD\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"UNI/USD\"\n  },\n  {\n    \"asset\": \"ENJ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"ENJ/USD\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"BNT/USD\"\n  },\n  {\n    \"asset\": \"1IN\",\n    \"currency\": \"CHU\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"1IN/CHU\"\n  },\n  {\n    \"asset\": \"SKL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"SKL/USD\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"GRT/USD\"\n  },\n  {\n    \"asset\": \"LRC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"LRC/USD\"\n  },\n  {\n    \"asset\": \"SAN\",\n    \"currency\": \"DUS\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"SAN/DUS\"\n  },\n  {\n    \"asset\": \"CUB\",\n    \"currency\": \"EUS\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"CUB/EUS\"\n  },\n  {\n    \"asset\": \"LPT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"LPT/USD\"\n  },\n  {\n    \"asset\": \"BON\",\n    \"currency\": \"DUS\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"BON/DUS\"\n  },\n  {\n    \"asset\": \"MAT\",\n    \"currency\": \"ICU\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"MAT/ICU\"\n  },\n  {\n    \"asset\": \"INJ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"INJ/USD\"\n  },\n  {\n    \"asset\": \"SUS\",\n    \"currency\": \"HIU\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"SUS/HIU\"\n  },\n  {\n    \"asset\": \"DOG\",\n    \"currency\": \"EUS\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"DOG/EUS\"\n  },\n  {\n    \"asset\": \"GUS\",\n    \"currency\": \"DUS\",\n    \"min_size\": \"0.001\",\n    \"max_size\": \"10000\",\n    \"increment\": \"0.01\",\n    \"label\": \"GUS/DUS\"\n  }\n]"
  },
  {
    "path": "extensions/exchanges/gemini/update-products.sh",
    "content": "#!/usr/bin/env node\nvar request = require('micro-request')\nrequest('https://api.gemini.com/v1/symbols', {headers: {'User-Agent': 'zenbot/4'}}, function (err, resp, body) {\n  if (err) throw err\n  if (resp.statusCode !== 200) {\n    var err = new Error('non-200 status: ' + resp.statusCode)\n    err.code = 'HTTP_STATUS'\n    err.body = body\n    console.error(err)\n    process.exit(1)\n  }\n  var products = []\n  body.forEach(function (product) {\n    products.push({\n      asset: product.substring(0, 3).toUpperCase(),\n      currency: product.substring(3, 6).toUpperCase(),\n      min_size: (product.substring(0, 3).toUpperCase() === 'BTC') ? '0.00001' : '0.001',\n      max_size: '10000',\n      increment: (product.substring(3, 6).toUpperCase() === 'BTC') ? '0.00001' : '0.01',\n      label: product.substring(0, 3).toUpperCase() + '/' + product.substring(3, 6).toUpperCase()\n    })\n  })\n  var target = require('path').resolve(__dirname, 'products.json')\n  require('fs').writeFileSync(target, JSON.stringify(products, null, 2))\n  console.log('wrote', target)\n  process.exit()\n})\n"
  },
  {
    "path": "extensions/exchanges/hitbtc/exchange.js",
    "content": "const ccxt = require('ccxt')\nconst path = require('path')\n\n\nmodule.exports = function container (conf) {\n \n  //let recoverableErrors = new RegExp(/(ESOCKETTIMEOUT|ESOCKETTIMEDOUT|ETIMEDOUT|ECONNRESET|ECONNREFUSED|ENOTFOUND|Invalid nonce|Rate limit exceeded|URL request error)/)\n \n  var public_client, authed_client\n\n  function publicClient () {\n    if (!public_client) public_client = new ccxt.hitbtc({ 'apiKey': '', 'secret': '' })\n    return public_client\n  }\n\n  function authedClient() {\n    if (!authed_client) {\n      if (!conf.hitbtc || !conf.hitbtc.key || !conf.hitbtc.key === 'YOUR-API-KEY') {\n        throw new Error('please configure your HitBTC credentials in ' + path.resolve(__dirname, 'conf.js'))\n      }\n      authed_client = new ccxt.hitbtc({ 'apiKey': conf.hitbtc.key, 'secret': conf.hitbtc.secret })\n    }\n    return authed_client\n  }\n\n  function joinProduct(product_id) {\n    return product_id.split('-')[0] + '/' + product_id.split('-')[1]\n  }\n\n  function retry (method, args, err) {\n    var timeout = 5000\n    if (method == 'getOrder') {\n      // it can take up to 30 seconds for hitbtc to update with an order change.\n      if (err)    \n        if (err.message.match(/not found/)) {\n          timeout = 7000\n        }\n    }\n\n    if (err)\n      if (err.message)\n        if (err.message.match(/Rate limit exceeded/)) {\n          timeout = 10000\n        } \n    setTimeout(function () {\n      exchange[method].apply(exchange, args)\n    }, timeout)\n    return false\n\n  }\n\n  // function handleErrors(command, err, data, args, callback) {\n\n  //   if (err)\n  //   {\n  //     if (err.message && err.message.match(recoverableErrors)) {\n  \n  //       return retry(command, args, err)\n  //     }\n  //     return callback(err, [])     \n  //   }\n   \n    \n  //   if (typeof data !== 'object') {\n  //     console.log(`bittrex API ${command} had an abnormal response, quitting.`)\n  //     return callback(null, [])\n  //   }\n\n  //   // generic error handler data was null and err was null\n  //   if (data == null)\n  //   {\n  //     return retry(command, args, err)\n  //   }\n\n  //   // specific handlers\n  //   if ((command == 'getQuote' || command == 'getTrades') && data.result == null )\n  //   {\n\n  //     return retry(command, args, data)\n  //   }\n\n  //   if(!data.success) {\n  //     if (data.message && data.message.match(recoverableErrors)) {\n  //       return retry(command, args, data.message)\n  //     }\n  //     return callback(null, [])\n  //   }\n\n\n  //   return true\n  // }\n\n\n  var firstRun = true\n  var exchange = {\n    name: 'hitbtc',\n    historyScan: 'forward',\n    makerFee:  -0.01,\n    takerFee: 0.1,\n\n    getProducts: function () {\n      if (firstRun)\n      {\n        firstRun = false\n        var client = publicClient()\n        this.makerFee = client.fees.trading.maker * 100 \n        this.takerFee = client.fees.trading.taker * 100\n      \n      }\n      return require('./products.json')\n    },\n\n    getTrades: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = publicClient()\n      {\n        client.fetchTrades(joinProduct(opts.product_id),opts.from)\n          .then(result => {\n            var trades = result.map(function (trade) {\n              return {\n                trade_id: trade.id,\n                time: trade.timestamp,\n                size: parseFloat(trade.amount),\n                price: parseFloat(trade.price),\n                selector: 'hitbtc.'+opts.product_id,\n                side: trade.side\n              }\n            })\n\n            cb(null, trades)\n          })\n          .catch(function (error) {\n            return retry('getTrades', func_args,error)\n          })\n      }\n    },\n\n    getBalance: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      client.fetchBalance()\n        .then(result => {\n          var balance = {asset: 0, currency: 0}\n          Object.keys(result).forEach(function (key) {\n            if (key === opts.currency) {\n              balance.currency = result[key].free\n              balance.currency_hold = result[key].used\n            }\n            if (key === opts.asset) {\n              balance.asset = result[key].free\n              balance.asset_hold = result[key].used\n            }\n          })\n          cb(null, balance)\n        })\n        .catch(function (error) {\n          return retry('getBalance', func_args,error)\n        })\n    },\n\n    getQuote: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = publicClient()\n      client.fetchTicker(joinProduct(opts.product_id))\n        .then(result => {\n          cb(null, { bid: result.bid, ask: result.ask })\n        })\n        .catch(function (error) {\n          return retry('getQuote', func_args,error)\n        })\n    },\n\n    cancelOrder: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      client.cancelOrder(opts.order_id,joinProduct(opts.product_id) )\n        .then( (result) => {\n          cb(result)\n        })\n        .catch(function (error) {\n          return retry('cancelOrder', func_args,error)\n        })\n    },\n\n    buy: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      if (typeof opts.post_only === 'undefined') {\n        opts.post_only = true\n      }\n\n      if (opts.order_type === 'taker') {\n        opts.type = 'market'\n      }\n      if (opts.order_type == 'maker') {\n        opts.type = 'limit'\n      }\n\n      opts.side = 'buy'\n\n      let callParams = {\n        symbol : joinProduct(opts.product_id),\n        type : opts.type,\n        side: 'buy', \n        quantity: opts.size, \n        price: opts.price \n      }\n     \n      client.createOrder( callParams.symbol, callParams.type, callParams.side, callParams.quantity, callParams.price)\n        .then(result => {\n       \n          cb(null, result)\n        }).catch(function (error) {\n          if (error.message.match(/Insufficient funds/)) \n          {\n            let order = {\n              status: 'rejected',\n              reject_reason: 'balance'\n            }\n            return cb(null, order)\n          }\n          return retry('buy', func_args)\n        })\n    },\n\n    sell: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      if (typeof opts.post_only === 'undefined') {\n        opts.post_only = true\n      }\n      if (opts.order_type === 'taker') {\n        opts.type = 'market'\n      }\n      if (opts.order_type == 'maker') {\n        opts.type = 'limit'\n      }\n      opts.side = 'sell'\n      let callParams = {\n        symbol : joinProduct(opts.product_id),\n        type : opts.type,\n        side: 'sell', \n        quantity: opts.size, \n        price: opts.price \n      }\n      \n      client.createOrder(callParams.symbol, callParams.type, callParams.side, callParams.quantity, callParams.price)\n        .then(result => {\n          let order = {\n            id: result ? result.id : null,\n            status: 'open',\n            price: opts.price,\n            size: opts.size,\n            post_only: !!opts.post_only,\n            created_at: new Date().getTime(),\n            filled_size: '0',\n            ordertype: opts.order_type\n          }\n         \n       \n          return cb(null, order)\n        }).catch(function (error) {\n          if (error.message.match(/Insufficient funds/)) \n          {\n            let order = {\n              status: 'rejected',\n              reject_reason: 'balance'\n            }\n            return cb(null, order)\n          }\n          return retry('sell', func_args, error)\n        })\n    },\n\n    getOrder: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n\n      client.fetchOrder(opts.order_id, joinProduct(opts.product_id),{wait:100000})\n        .then( result => {\n          let r = result\n          if (result.status === 'canceled') {\n          // order was cancelled. recall from cache\n    \n            return cb({message:'Order not found',desc:'Order cancel or deleted'})\n          }\n          if (result.status == 'open')\n          {\n            result.status = 'open'\n            result.filled_size = parseFloat(result.amount) - parseFloat(result.remaining)\n          \n            return cb(null, result)\n          }\n\n          if (result.status == 'done' || result.status == 'closed') {\n            result.status = 'done'\n            result.done_at = new Date().getTime()\n            result.filled_size = parseFloat(result.amount) - parseFloat(result.remaining)\n            return cb(null, result)\n          }\n\n          return cb(null,r)\n        }).catch(function (error) {\n          return retry('getOrder', func_args,error)\n        }) \n    },\n\n    getCursor: function (trade) {\n      return (trade.time || trade)\n    }\n  }\n  return exchange\n}\n"
  },
  {
    "path": "extensions/exchanges/hitbtc/products.json",
    "content": "[\n  {\n    \"asset\": \"BCN\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000000001\",\n    \"label\": \"BCN/BTC\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"BTC/USDT\"\n  },\n  {\n    \"asset\": \"DASH\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DASH/BTC\"\n  },\n  {\n    \"asset\": \"DOGE\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1000,\n    \"increment\": \"0.000000001\",\n    \"label\": \"DOGE/BTC\"\n  },\n  {\n    \"asset\": \"DOGE\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DOGE/USDT\"\n  },\n  {\n    \"asset\": \"DSH\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.000000001\",\n    \"label\": \"DSH/BTC\"\n  },\n  {\n    \"asset\": \"EMC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"EMC/BTC\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ETH/BTC\"\n  },\n  {\n    \"asset\": \"FCN\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"FCN/BTC\"\n  },\n  {\n    \"asset\": \"LSK\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.0000001\",\n    \"label\": \"LSK/BTC\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"LTC/BTC\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"LTC/USDT\"\n  },\n  {\n    \"asset\": \"NXT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"NXT/BTC\"\n  },\n  {\n    \"asset\": \"QCN\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"QCN/BTC\"\n  },\n  {\n    \"asset\": \"SBD\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"SBD/BTC\"\n  },\n  {\n    \"asset\": \"SC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.000000001\",\n    \"label\": \"SC/BTC\"\n  },\n  {\n    \"asset\": \"STEEM\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"STEEM/BTC\"\n  },\n  {\n    \"asset\": \"XDN\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000000001\",\n    \"label\": \"XDN/BTC\"\n  },\n  {\n    \"asset\": \"XEM\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"XEM/BTC\"\n  },\n  {\n    \"asset\": \"XMR\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"XMR/BTC\"\n  },\n  {\n    \"asset\": \"ARDR\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.000000001\",\n    \"label\": \"ARDR/BTC\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ZEC/BTC\"\n  },\n  {\n    \"asset\": \"WAVES\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.0000001\",\n    \"label\": \"WAVES/BTC\"\n  },\n  {\n    \"asset\": \"MAID\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"MAID/BTC\"\n  },\n  {\n    \"asset\": \"AMP\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"AMP/BTC\"\n  },\n  {\n    \"asset\": \"BUS\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.0001,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"BUS/BTC\"\n  },\n  {\n    \"asset\": \"DGD\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DGD/BTC\"\n  },\n  {\n    \"asset\": \"ICN\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ICN/BTC\"\n  },\n  {\n    \"asset\": \"SNGLS\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"SNGLS/BTC\"\n  },\n  {\n    \"asset\": \"1ST\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"1ST/BTC\"\n  },\n  {\n    \"asset\": \"TRST\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"TRST/BTC\"\n  },\n  {\n    \"asset\": \"TIME\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"TIME/BTC\"\n  },\n  {\n    \"asset\": \"GNO\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"GNO/BTC\"\n  },\n  {\n    \"asset\": \"REP\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"REP/BTC\"\n  },\n  {\n    \"asset\": \"XMR\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"XMR/USDT\"\n  },\n  {\n    \"asset\": \"DASH\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"DASH/USDT\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"ETH/USDT\"\n  },\n  {\n    \"asset\": \"NXT\",\n    \"currency\": \"USDT\",\n    \"min_size\": 1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"NXT/USDT\"\n  },\n  {\n    \"asset\": \"ZRC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ZRC/BTC\"\n  },\n  {\n    \"asset\": \"BOS\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BOS/BTC\"\n  },\n  {\n    \"asset\": \"DCT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DCT/BTC\"\n  },\n  {\n    \"asset\": \"ANT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ANT/BTC\"\n  },\n  {\n    \"asset\": \"AEON\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"AEON/BTC\"\n  },\n  {\n    \"asset\": \"GUP\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"GUP/BTC\"\n  },\n  {\n    \"asset\": \"PLU\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"PLU/BTC\"\n  },\n  {\n    \"asset\": \"LUN\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"LUN/BTC\"\n  },\n  {\n    \"asset\": \"TAAS\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"TAAS/BTC\"\n  },\n  {\n    \"asset\": \"NXC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"NXC/BTC\"\n  },\n  {\n    \"asset\": \"EDG\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"EDG/BTC\"\n  },\n  {\n    \"asset\": \"RLC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"RLC/BTC\"\n  },\n  {\n    \"asset\": \"SWT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"SWT/BTC\"\n  },\n  {\n    \"asset\": \"TKN\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"TKN/BTC\"\n  },\n  {\n    \"asset\": \"WINGS\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"WINGS/BTC\"\n  },\n  {\n    \"asset\": \"XAUR\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"XAUR/BTC\"\n  },\n  {\n    \"asset\": \"AE\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"AE/BTC\"\n  },\n  {\n    \"asset\": \"PTOY\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"PTOY/BTC\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"ZEC/USDT\"\n  },\n  {\n    \"asset\": \"XEM\",\n    \"currency\": \"USDT\",\n    \"min_size\": 1,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"XEM/USDT\"\n  },\n  {\n    \"asset\": \"BCN\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BCN/USDT\"\n  },\n  {\n    \"asset\": \"XDN\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"XDN/USDT\"\n  },\n  {\n    \"asset\": \"MAID\",\n    \"currency\": \"USDT\",\n    \"min_size\": 1,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"MAID/USDT\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ETC/BTC\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"ETC/USDT\"\n  },\n  {\n    \"asset\": \"CFI\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"CFI/BTC\"\n  },\n  {\n    \"asset\": \"PLBT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"PLBT/BTC\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BNT/BTC\"\n  },\n  {\n    \"asset\": \"XDNCO\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100000,\n    \"increment\": \"0.0000000001\",\n    \"label\": \"XDNCO/BTC\"\n  },\n  {\n    \"asset\": \"FYN\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"FYN/ETH\"\n  },\n  {\n    \"asset\": \"SNM\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"SNM/ETH\"\n  },\n  {\n    \"asset\": \"SNT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"SNT/ETH\"\n  },\n  {\n    \"asset\": \"CVC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"CVC/USDT\"\n  },\n  {\n    \"asset\": \"PAY\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"PAY/ETH\"\n  },\n  {\n    \"asset\": \"OAX\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"OAX/ETH\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"OMG/ETH\"\n  },\n  {\n    \"asset\": \"BQX\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BQX/ETH\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"XTZ/BTC\"\n  },\n  {\n    \"asset\": \"DICE\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DICE/BTC\"\n  },\n  {\n    \"asset\": \"CFI\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"CFI/ETH\"\n  },\n  {\n    \"asset\": \"PTOY\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"PTOY/ETH\"\n  },\n  {\n    \"asset\": \"1ST\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"1ST/ETH\"\n  },\n  {\n    \"asset\": \"XAUR\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"XAUR/ETH\"\n  },\n  {\n    \"asset\": \"TAAS\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"TAAS/ETH\"\n  },\n  {\n    \"asset\": \"TIME\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"TIME/ETH\"\n  },\n  {\n    \"asset\": \"DICE\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DICE/ETH\"\n  },\n  {\n    \"asset\": \"SWT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"SWT/ETH\"\n  },\n  {\n    \"asset\": \"XMR\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"XMR/ETH\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ETC/ETH\"\n  },\n  {\n    \"asset\": \"DASH\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DASH/ETH\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ZEC/ETH\"\n  },\n  {\n    \"asset\": \"PLU\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"PLU/ETH\"\n  },\n  {\n    \"asset\": \"GNO\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"GNO/ETH\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.00000001\",\n    \"label\": \"XRP/BTC\"\n  },\n  {\n    \"asset\": \"NET\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"NET/ETH\"\n  },\n  {\n    \"asset\": \"STRAT\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"STRAT/USDT\"\n  },\n  {\n    \"asset\": \"STRAT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"STRAT/BTC\"\n  },\n  {\n    \"asset\": \"SNC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"SNC/ETH\"\n  },\n  {\n    \"asset\": \"ADX\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ADX/ETH\"\n  },\n  {\n    \"asset\": \"BET\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BET/ETH\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"EOS/ETH\"\n  },\n  {\n    \"asset\": \"DENT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DENT/ETH\"\n  },\n  {\n    \"asset\": \"SAN\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"SAN/ETH\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"EOS/BTC\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"EOS/USDT\"\n  },\n  {\n    \"asset\": \"MNE\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"MNE/BTC\"\n  },\n  {\n    \"asset\": \"MSP\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"MSP/ETH\"\n  },\n  {\n    \"asset\": \"DDF\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DDF/ETH\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"XTZ/ETH\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"XTZ/USDT\"\n  },\n  {\n    \"asset\": \"UET\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"UET/ETH\"\n  },\n  {\n    \"asset\": \"MYB\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"MYB/ETH\"\n  },\n  {\n    \"asset\": \"SUR\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"SUR/ETH\"\n  },\n  {\n    \"asset\": \"IXT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"IXT/ETH\"\n  },\n  {\n    \"asset\": \"PLR\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"PLR/ETH\"\n  },\n  {\n    \"asset\": \"TIX\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"TIX/ETH\"\n  },\n  {\n    \"asset\": \"NDC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"NDC/ETH\"\n  },\n  {\n    \"asset\": \"PRO\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"PRO/ETH\"\n  },\n  {\n    \"asset\": \"AVT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"AVT/ETH\"\n  },\n  {\n    \"asset\": \"COSS\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"COSS/ETH\"\n  },\n  {\n    \"asset\": \"EVX\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"EVX/USDT\"\n  },\n  {\n    \"asset\": \"DLT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DLT/BTC\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BNT/ETH\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"BNT/USDT\"\n  },\n  {\n    \"asset\": \"QAU\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"QAU/BTC\"\n  },\n  {\n    \"asset\": \"QAU\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"QAU/ETH\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"MANA/USDT\"\n  },\n  {\n    \"asset\": \"DNT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DNT/BTC\"\n  },\n  {\n    \"asset\": \"FYP\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"FYP/BTC\"\n  },\n  {\n    \"asset\": \"OPT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"OPT/BTC\"\n  },\n  {\n    \"asset\": \"TNT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"TNT/ETH\"\n  },\n  {\n    \"asset\": \"STX\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"STX/BTC\"\n  },\n  {\n    \"asset\": \"STX\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"STX/ETH\"\n  },\n  {\n    \"asset\": \"STX\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"STX/USDT\"\n  },\n  {\n    \"asset\": \"TNT\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"TNT/USDT\"\n  },\n  {\n    \"asset\": \"TNT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"TNT/BTC\"\n  },\n  {\n    \"asset\": \"BitClave\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BitClave/BTC\"\n  },\n  {\n    \"asset\": \"BitClave\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BitClave/ETH\"\n  },\n  {\n    \"asset\": \"BitClave\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"BitClave/USDT\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BCH/BTC\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BCH/ETH\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"BCH/USDT\"\n  },\n  {\n    \"asset\": \"ENG\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ENG/ETH\"\n  },\n  {\n    \"asset\": \"XUC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"XUC/USDT\"\n  },\n  {\n    \"asset\": \"SNC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"SNC/BTC\"\n  },\n  {\n    \"asset\": \"SNC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"SNC/USDT\"\n  },\n  {\n    \"asset\": \"OAX\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"OAX/USDT\"\n  },\n  {\n    \"asset\": \"OAX\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"OAX/BTC\"\n  },\n  {\n    \"asset\": \"BAS\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BAS/ETH\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ZRX/BTC\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ZRX/ETH\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"ZRX/USDT\"\n  },\n  {\n    \"asset\": \"RVT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"RVT/BTC\"\n  },\n  {\n    \"asset\": \"ICOS\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ICOS/BTC\"\n  },\n  {\n    \"asset\": \"ICOS\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ICOS/ETH\"\n  },\n  {\n    \"asset\": \"ICOS\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"ICOS/USDT\"\n  },\n  {\n    \"asset\": \"PPC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"PPC/BTC\"\n  },\n  {\n    \"asset\": \"PPC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"PPC/USDT\"\n  },\n  {\n    \"asset\": \"QTUM\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"QTUM/ETH\"\n  },\n  {\n    \"asset\": \"VERI\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"VERI/BTC\"\n  },\n  {\n    \"asset\": \"VERI\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"VERI/ETH\"\n  },\n  {\n    \"asset\": \"VERI\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"VERI/USDT\"\n  },\n  {\n    \"asset\": \"IGNIS\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"IGNIS/ETH\"\n  },\n  {\n    \"asset\": \"PRG\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"PRG/BTC\"\n  },\n  {\n    \"asset\": \"PRG\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"PRG/ETH\"\n  },\n  {\n    \"asset\": \"PRG\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"PRG/USDT\"\n  },\n  {\n    \"asset\": \"BMC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BMC/BTC\"\n  },\n  {\n    \"asset\": \"BMC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BMC/ETH\"\n  },\n  {\n    \"asset\": \"BMC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"BMC/USDT\"\n  },\n  {\n    \"asset\": \"CND\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"CND/BTC\"\n  },\n  {\n    \"asset\": \"CND\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"CND/ETH\"\n  },\n  {\n    \"asset\": \"CND\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"CND/USDT\"\n  },\n  {\n    \"asset\": \"SKIN\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.00000001\",\n    \"label\": \"SKIN/BTC\"\n  },\n  {\n    \"asset\": \"MGO\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"MGO/BTC\"\n  },\n  {\n    \"asset\": \"MGO\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"MGO/USDT\"\n  },\n  {\n    \"asset\": \"CDT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 1,\n    \"increment\": \"0.0000001\",\n    \"label\": \"CDT/ETH\"\n  },\n  {\n    \"asset\": \"CDT\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"CDT/USDT\"\n  },\n  {\n    \"asset\": \"FUN\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.00000001\",\n    \"label\": \"FUN/BTC\"\n  },\n  {\n    \"asset\": \"FUN\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"FUN/ETH\"\n  },\n  {\n    \"asset\": \"FUN\",\n    \"currency\": \"USDT\",\n    \"min_size\": 1,\n    \"increment\": \"0.0000001\",\n    \"label\": \"FUN/USDT\"\n  },\n  {\n    \"asset\": \"HVN\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.00000001\",\n    \"label\": \"HVN/BTC\"\n  },\n  {\n    \"asset\": \"HVN\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"HVN/ETH\"\n  },\n  {\n    \"asset\": \"FUEL\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"FUEL/BTC\"\n  },\n  {\n    \"asset\": \"FUEL\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"FUEL/ETH\"\n  },\n  {\n    \"asset\": \"FUEL\",\n    \"currency\": \"USDT\",\n    \"min_size\": 1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"FUEL/USDT\"\n  },\n  {\n    \"asset\": \"POE\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000000001\",\n    \"label\": \"POE/BTC\"\n  },\n  {\n    \"asset\": \"POE\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.00000001\",\n    \"label\": \"POE/ETH\"\n  },\n  {\n    \"asset\": \"MCAP\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"MCAP/BTC\"\n  },\n  {\n    \"asset\": \"AIR\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.00000001\",\n    \"label\": \"AIR/BTC\"\n  },\n  {\n    \"asset\": \"AIR\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"AIR/ETH\"\n  },\n  {\n    \"asset\": \"AIR\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"AIR/USDT\"\n  },\n  {\n    \"asset\": \"AMB\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"AMB/USDT\"\n  },\n  {\n    \"asset\": \"AMB\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"AMB/ETH\"\n  },\n  {\n    \"asset\": \"AMB\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"AMB/BTC\"\n  },\n  {\n    \"asset\": \"NTO\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"NTO/BTC\"\n  },\n  {\n    \"asset\": \"ICO\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ICO/BTC\"\n  },\n  {\n    \"asset\": \"PING\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"PING/BTC\"\n  },\n  {\n    \"asset\": \"RKC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"RKC/ETH\"\n  },\n  {\n    \"asset\": \"GAME\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"GAME/BTC\"\n  },\n  {\n    \"asset\": \"TKR\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"TKR/ETH\"\n  },\n  {\n    \"asset\": \"HPC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"HPC/BTC\"\n  },\n  {\n    \"asset\": \"PPT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"PPT/ETH\"\n  },\n  {\n    \"asset\": \"MTH\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"MTH/BTC\"\n  },\n  {\n    \"asset\": \"MTH\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"MTH/ETH\"\n  },\n  {\n    \"asset\": \"WMGO\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"WMGO/BTC\"\n  },\n  {\n    \"asset\": \"WMGO\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"WMGO/USDT\"\n  },\n  {\n    \"asset\": \"LRC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"LRC/BTC\"\n  },\n  {\n    \"asset\": \"LRC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"LRC/ETH\"\n  },\n  {\n    \"asset\": \"ICX\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"ICX/BTC\"\n  },\n  {\n    \"asset\": \"ICX\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ICX/ETH\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"NEO/BTC\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"NEO/ETH\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"NEO/USDT\"\n  },\n  {\n    \"asset\": \"CSNO\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"CSNO/BTC\"\n  },\n  {\n    \"asset\": \"ORME\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"ORME/BTC\"\n  },\n  {\n    \"asset\": \"ICX\",\n    \"currency\": \"USDT\",\n    \"min_size\": 100,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"ICX/USDT\"\n  },\n  {\n    \"asset\": \"PIX\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"PIX/BTC\"\n  },\n  {\n    \"asset\": \"PIX\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"PIX/ETH\"\n  },\n  {\n    \"asset\": \"IND\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"IND/ETH\"\n  },\n  {\n    \"asset\": \"KICK\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"KICK/BTC\"\n  },\n  {\n    \"asset\": \"YOYOW\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"YOYOW/BTC\"\n  },\n  {\n    \"asset\": \"MIPS\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"MIPS/BTC\"\n  },\n  {\n    \"asset\": \"CDT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"CDT/BTC\"\n  },\n  {\n    \"asset\": \"XVG\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1000,\n    \"increment\": \"0.00000001\",\n    \"label\": \"XVG/BTC\"\n  },\n  {\n    \"asset\": \"XVG\",\n    \"currency\": \"ETH\",\n    \"min_size\": 1000,\n    \"increment\": \"0.0000001\",\n    \"label\": \"XVG/ETH\"\n  },\n  {\n    \"asset\": \"XVG\",\n    \"currency\": \"USDT\",\n    \"min_size\": 1000,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"XVG/USDT\"\n  },\n  {\n    \"asset\": \"DGB\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"DGB/BTC\"\n  },\n  {\n    \"asset\": \"DGB\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DGB/ETH\"\n  },\n  {\n    \"asset\": \"DGB\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"DGB/USDT\"\n  },\n  {\n    \"asset\": \"DCN\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10000,\n    \"increment\": \"0.00000001\",\n    \"label\": \"DCN/ETH\"\n  },\n  {\n    \"asset\": \"DCN\",\n    \"currency\": \"USDT\",\n    \"min_size\": 1000,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DCN/USDT\"\n  },\n  {\n    \"asset\": \"LAT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"LAT/BTC\"\n  },\n  {\n    \"asset\": \"CCT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"CCT/ETH\"\n  },\n  {\n    \"asset\": \"EBET\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"EBET/ETH\"\n  },\n  {\n    \"asset\": \"VIBE\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"VIBE/BTC\"\n  },\n  {\n    \"asset\": \"VOISE\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"VOISE/BTC\"\n  },\n  {\n    \"asset\": \"ENJ\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"ENJ/BTC\"\n  },\n  {\n    \"asset\": \"ENJ\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ENJ/ETH\"\n  },\n  {\n    \"asset\": \"ENJ\",\n    \"currency\": \"USDT\",\n    \"min_size\": 100,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"ENJ/USDT\"\n  },\n  {\n    \"asset\": \"ZSC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"ZSC/BTC\"\n  },\n  {\n    \"asset\": \"ZSC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"ZSC/ETH\"\n  },\n  {\n    \"asset\": \"ZSC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 100,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"ZSC/USDT\"\n  },\n  {\n    \"asset\": \"ETBS\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"ETBS/BTC\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1000,\n    \"increment\": \"0.00000001\",\n    \"label\": \"TRX/BTC\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"ETH\",\n    \"min_size\": 1000,\n    \"increment\": \"0.0000001\",\n    \"label\": \"TRX/ETH\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"USDT\",\n    \"min_size\": 100,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"TRX/USDT\"\n  },\n  {\n    \"asset\": \"VEN\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"VEN/BTC\"\n  },\n  {\n    \"asset\": \"VEN\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"VEN/ETH\"\n  },\n  {\n    \"asset\": \"VEN\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"VEN/USDT\"\n  },\n  {\n    \"asset\": \"ART\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ART/BTC\"\n  },\n  {\n    \"asset\": \"EVX\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"EVX/BTC\"\n  },\n  {\n    \"asset\": \"EVX\",\n    \"currency\": \"ETH\",\n    \"min_size\": 1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"EVX/ETH\"\n  },\n  {\n    \"asset\": \"QVT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"QVT/ETH\"\n  },\n  {\n    \"asset\": \"EBTCOLD\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"EBTCOLD/BTC\"\n  },\n  {\n    \"asset\": \"EBTCOLD\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"EBTCOLD/ETH\"\n  },\n  {\n    \"asset\": \"EBTCOLD\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"EBTCOLD/USDT\"\n  },\n  {\n    \"asset\": \"BKB\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BKB/BTC\"\n  },\n  {\n    \"asset\": \"EXN\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"EXN/BTC\"\n  },\n  {\n    \"asset\": \"TGT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"TGT/BTC\"\n  },\n  {\n    \"asset\": \"ATS\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"ATS/ETH\"\n  },\n  {\n    \"asset\": \"UGT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"UGT/BTC\"\n  },\n  {\n    \"asset\": \"UGT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"UGT/ETH\"\n  },\n  {\n    \"asset\": \"UGT\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"UGT/USDT\"\n  },\n  {\n    \"asset\": \"CTR\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"CTR/BTC\"\n  },\n  {\n    \"asset\": \"CTR\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"CTR/ETH\"\n  },\n  {\n    \"asset\": \"CTR\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"CTR/USDT\"\n  },\n  {\n    \"asset\": \"BMT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BMT/BTC\"\n  },\n  {\n    \"asset\": \"BMT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"BMT/ETH\"\n  },\n  {\n    \"asset\": \"SUB\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"SUB/BTC\"\n  },\n  {\n    \"asset\": \"SUB\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"SUB/ETH\"\n  },\n  {\n    \"asset\": \"SUB\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"SUB/USDT\"\n  },\n  {\n    \"asset\": \"WTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"WTC/BTC\"\n  },\n  {\n    \"asset\": \"CNX\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"CNX/BTC\"\n  },\n  {\n    \"asset\": \"ATB\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"ATB/BTC\"\n  },\n  {\n    \"asset\": \"ATB\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"ATB/ETH\"\n  },\n  {\n    \"asset\": \"ATB\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"ATB/USDT\"\n  },\n  {\n    \"asset\": \"ODN\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ODN/BTC\"\n  },\n  {\n    \"asset\": \"BTM\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"BTM/BTC\"\n  },\n  {\n    \"asset\": \"BTM\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BTM/ETH\"\n  },\n  {\n    \"asset\": \"BTM\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"BTM/USDT\"\n  },\n  {\n    \"asset\": \"B2X\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"B2X/BTC\"\n  },\n  {\n    \"asset\": \"B2X\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"B2X/ETH\"\n  },\n  {\n    \"asset\": \"B2X\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"B2X/USDT\"\n  },\n  {\n    \"asset\": \"ATM\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"ATM/BTC\"\n  },\n  {\n    \"asset\": \"ATM\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"ATM/ETH\"\n  },\n  {\n    \"asset\": \"ATM\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"ATM/USDT\"\n  },\n  {\n    \"asset\": \"LIFE\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"LIFE/BTC\"\n  },\n  {\n    \"asset\": \"VIB\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"VIB/BTC\"\n  },\n  {\n    \"asset\": \"VIB\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"VIB/ETH\"\n  },\n  {\n    \"asset\": \"VIB\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"VIB/USDT\"\n  },\n  {\n    \"asset\": \"DRT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"DRT/ETH\"\n  },\n  {\n    \"asset\": \"STU\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"STU/USDT\"\n  },\n  {\n    \"asset\": \"HDG\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"HDG/ETH\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"OMG/BTC\"\n  },\n  {\n    \"asset\": \"PAY\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"PAY/BTC\"\n  },\n  {\n    \"asset\": \"COSS\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"COSS/BTC\"\n  },\n  {\n    \"asset\": \"PPT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"PPT/BTC\"\n  },\n  {\n    \"asset\": \"SNT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"SNT/BTC\"\n  },\n  {\n    \"asset\": \"BTG\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BTG/BTC\"\n  },\n  {\n    \"asset\": \"BTG\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BTG/ETH\"\n  },\n  {\n    \"asset\": \"BTG\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"BTG/USDT\"\n  },\n  {\n    \"asset\": \"SMART\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"SMART/BTC\"\n  },\n  {\n    \"asset\": \"SMART\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"SMART/ETH\"\n  },\n  {\n    \"asset\": \"SMART\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"SMART/USDT\"\n  },\n  {\n    \"asset\": \"XUC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"XUC/ETH\"\n  },\n  {\n    \"asset\": \"XUC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"XUC/BTC\"\n  },\n  {\n    \"asset\": \"CL\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"CL/BTC\"\n  },\n  {\n    \"asset\": \"CL\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"CL/ETH\"\n  },\n  {\n    \"asset\": \"CL\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"CL/USDT\"\n  },\n  {\n    \"asset\": \"LA\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"LA/ETH\"\n  },\n  {\n    \"asset\": \"CLD\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"CLD/BTC\"\n  },\n  {\n    \"asset\": \"CLD\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"CLD/ETH\"\n  },\n  {\n    \"asset\": \"CLD\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"CLD/USDT\"\n  },\n  {\n    \"asset\": \"ELM\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ELM/BTC\"\n  },\n  {\n    \"asset\": \"EDO\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"EDO/BTC\"\n  },\n  {\n    \"asset\": \"EDO\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"EDO/ETH\"\n  },\n  {\n    \"asset\": \"EDO\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"EDO/USDT\"\n  },\n  {\n    \"asset\": \"HGT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"HGT/ETH\"\n  },\n  {\n    \"asset\": \"POLL\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"POLL/BTC\"\n  },\n  {\n    \"asset\": \"IXT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"IXT/BTC\"\n  },\n  {\n    \"asset\": \"ATS\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"ATS/BTC\"\n  },\n  {\n    \"asset\": \"SCL\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"SCL/BTC\"\n  },\n  {\n    \"asset\": \"ATL\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ATL/BTC\"\n  },\n  {\n    \"asset\": \"EBTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"EBTC/BTC\"\n  },\n  {\n    \"asset\": \"EBTC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"EBTC/ETH\"\n  },\n  {\n    \"asset\": \"EBTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"EBTC/USDT\"\n  },\n  {\n    \"asset\": \"ETP\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"ETP/BTC\"\n  },\n  {\n    \"asset\": \"ETP\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"ETP/ETH\"\n  },\n  {\n    \"asset\": \"ETP\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"ETP/USDT\"\n  },\n  {\n    \"asset\": \"OTX\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"OTX/BTC\"\n  },\n  {\n    \"asset\": \"CDX\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"CDX/ETH\"\n  },\n  {\n    \"asset\": \"DRPU\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DRPU/BTC\"\n  },\n  {\n    \"asset\": \"NEBL\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"NEBL/BTC\"\n  },\n  {\n    \"asset\": \"NEBL\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"NEBL/ETH\"\n  },\n  {\n    \"asset\": \"HAC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"HAC/BTC\"\n  },\n  {\n    \"asset\": \"CTX\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"CTX/BTC\"\n  },\n  {\n    \"asset\": \"CTX\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"CTX/ETH\"\n  },\n  {\n    \"asset\": \"ELE\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"ELE/BTC\"\n  },\n  {\n    \"asset\": \"ARN\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ARN/BTC\"\n  },\n  {\n    \"asset\": \"ARN\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"ARN/ETH\"\n  },\n  {\n    \"asset\": \"SISA\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"SISA/BTC\"\n  },\n  {\n    \"asset\": \"SISA\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"SISA/ETH\"\n  },\n  {\n    \"asset\": \"STU\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"STU/BTC\"\n  },\n  {\n    \"asset\": \"STU\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"STU/ETH\"\n  },\n  {\n    \"asset\": \"GVT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"GVT/ETH\"\n  },\n  {\n    \"asset\": \"INDI\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"INDI/BTC\"\n  },\n  {\n    \"asset\": \"BTX\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"BTX/BTC\"\n  },\n  {\n    \"asset\": \"BTX\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"BTX/USDT\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"LTC/ETH\"\n  },\n  {\n    \"asset\": \"BCN\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"BCN/ETH\"\n  },\n  {\n    \"asset\": \"MAID\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"MAID/ETH\"\n  },\n  {\n    \"asset\": \"NXT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"NXT/ETH\"\n  },\n  {\n    \"asset\": \"STRAT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"STRAT/ETH\"\n  },\n  {\n    \"asset\": \"XDN\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"XDN/ETH\"\n  },\n  {\n    \"asset\": \"XEM\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"XEM/ETH\"\n  },\n  {\n    \"asset\": \"PLR\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"PLR/BTC\"\n  },\n  {\n    \"asset\": \"SUR\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"SUR/BTC\"\n  },\n  {\n    \"asset\": \"BQX\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"BQX/BTC\"\n  },\n  {\n    \"asset\": \"DOGE\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"DOGE/ETH\"\n  },\n  {\n    \"asset\": \"ITS\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"ITS/BTC\"\n  },\n  {\n    \"asset\": \"AMM\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"AMM/BTC\"\n  },\n  {\n    \"asset\": \"AMM\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"AMM/ETH\"\n  },\n  {\n    \"asset\": \"AMM\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"AMM/USDT\"\n  },\n  {\n    \"asset\": \"DBIX\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"DBIX/BTC\"\n  },\n  {\n    \"asset\": \"PRE\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"PRE/BTC\"\n  },\n  {\n    \"asset\": \"KBR\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"KBR/BTC\"\n  },\n  {\n    \"asset\": \"TBT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"TBT/BTC\"\n  },\n  {\n    \"asset\": \"ERO\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"ERO/BTC\"\n  },\n  {\n    \"asset\": \"SMS\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"SMS/BTC\"\n  },\n  {\n    \"asset\": \"SMS\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"SMS/ETH\"\n  },\n  {\n    \"asset\": \"SMS\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"SMS/USDT\"\n  },\n  {\n    \"asset\": \"ZAP\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"ZAP/BTC\"\n  },\n  {\n    \"asset\": \"DOV\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"DOV/BTC\"\n  },\n  {\n    \"asset\": \"DOV\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DOV/ETH\"\n  },\n  {\n    \"asset\": \"FRD\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"FRD/BTC\"\n  },\n  {\n    \"asset\": \"DRPU\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DRPU/ETH\"\n  },\n  {\n    \"asset\": \"OTN\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"OTN/BTC\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"ETH\",\n    \"min_size\": 1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"XRP/ETH\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"USDT\",\n    \"min_size\": 1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"XRP/USDT\"\n  },\n  {\n    \"asset\": \"HSR\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"HSR/BTC\"\n  },\n  {\n    \"asset\": \"LEND\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"LEND/BTC\"\n  },\n  {\n    \"asset\": \"LEND\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"LEND/ETH\"\n  },\n  {\n    \"asset\": \"SPF\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"SPF/ETH\"\n  },\n  {\n    \"asset\": \"SBTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"SBTC/BTC\"\n  },\n  {\n    \"asset\": \"SBTC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"SBTC/ETH\"\n  },\n  {\n    \"asset\": \"BTCA\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"BTCA/BTC\"\n  },\n  {\n    \"asset\": \"BTCA\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BTCA/ETH\"\n  },\n  {\n    \"asset\": \"BTCA\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"BTCA/USDT\"\n  },\n  {\n    \"asset\": \"WRC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"WRC/BTC\"\n  },\n  {\n    \"asset\": \"WRC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"WRC/ETH\"\n  },\n  {\n    \"asset\": \"WRC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"WRC/USDT\"\n  },\n  {\n    \"asset\": \"LOC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"LOC/BTC\"\n  },\n  {\n    \"asset\": \"LOC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"LOC/ETH\"\n  },\n  {\n    \"asset\": \"LOC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.100000000000000006\",\n    \"label\": \"LOC/USDT\"\n  },\n  {\n    \"asset\": \"SWFTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.00000001\",\n    \"label\": \"SWFTC/BTC\"\n  },\n  {\n    \"asset\": \"SWFTC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"SWFTC/ETH\"\n  },\n  {\n    \"asset\": \"SWFTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"SWFTC/USDT\"\n  },\n  {\n    \"asset\": \"STAR\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"STAR/ETH\"\n  },\n  {\n    \"asset\": \"SBTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"SBTC/USDT\"\n  },\n  {\n    \"asset\": \"STORM\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"STORM/BTC\"\n  },\n  {\n    \"asset\": \"DIM\",\n    \"currency\": \"ETH\",\n    \"min_size\": 1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"DIM/ETH\"\n  },\n  {\n    \"asset\": \"DIM\",\n    \"currency\": \"USDT\",\n    \"min_size\": 1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"DIM/USDT\"\n  },\n  {\n    \"asset\": \"DIM\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DIM/BTC\"\n  },\n  {\n    \"asset\": \"NGC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"NGC/BTC\"\n  },\n  {\n    \"asset\": \"NGC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"NGC/ETH\"\n  },\n  {\n    \"asset\": \"NGC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"NGC/USDT\"\n  },\n  {\n    \"asset\": \"EMC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"EMC/ETH\"\n  },\n  {\n    \"asset\": \"EMC\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"EMC/USDT\"\n  },\n  {\n    \"asset\": \"MCO\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"MCO/BTC\"\n  },\n  {\n    \"asset\": \"MCO\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"MCO/ETH\"\n  },\n  {\n    \"asset\": \"MCO\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.001,\n    \"increment\": \"0.100000000000000006\",\n    \"label\": \"MCO/USDT\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"ETH\",\n    \"min_size\": 1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"MANA/ETH\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"MANA/BTC\"\n  },\n  {\n    \"asset\": \"ECH\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"ECH/BTC\"\n  },\n  {\n    \"asset\": \"CPAY\",\n    \"currency\": \"ETH\",\n    \"min_size\": 1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"CPAY/ETH\"\n  },\n  {\n    \"asset\": \"DATA\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"DATA/BTC\"\n  },\n  {\n    \"asset\": \"DATA\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DATA/ETH\"\n  },\n  {\n    \"asset\": \"DATA\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"DATA/USDT\"\n  },\n  {\n    \"asset\": \"UTT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"UTT/BTC\"\n  },\n  {\n    \"asset\": \"UTT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"UTT/ETH\"\n  },\n  {\n    \"asset\": \"UTT\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"UTT/USDT\"\n  },\n  {\n    \"asset\": \"KMD\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"KMD/BTC\"\n  },\n  {\n    \"asset\": \"KMD\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"KMD/ETH\"\n  },\n  {\n    \"asset\": \"KMD\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"KMD/USDT\"\n  },\n  {\n    \"asset\": \"QTUM\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"QTUM/USDT\"\n  },\n  {\n    \"asset\": \"QTUM\",\n    \"currency\": \"BTC\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"QTUM/BTC\"\n  },\n  {\n    \"asset\": \"SNT\",\n    \"currency\": \"USDT\",\n    \"min_size\": 1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"SNT/USDT\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.01,\n    \"increment\": \"0.010000000000000000\",\n    \"label\": \"OMG/USDT\"\n  },\n  {\n    \"asset\": \"EKO\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"EKO/BTC\"\n  },\n  {\n    \"asset\": \"EKO\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"EKO/ETH\"\n  },\n  {\n    \"asset\": \"ADX\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.00000001\",\n    \"label\": \"ADX/BTC\"\n  },\n  {\n    \"asset\": \"ADX\",\n    \"currency\": \"USDT\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"ADX/USDT\"\n  },\n  {\n    \"asset\": \"LSK\",\n    \"currency\": \"ETH\",\n    \"min_size\": 1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"LSK/ETH\"\n  },\n  {\n    \"asset\": \"LSK\",\n    \"currency\": \"USDT\",\n    \"min_size\": 1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"LSK/USDT\"\n  },\n  {\n    \"asset\": \"PLR\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"PLR/USDT\"\n  },\n  {\n    \"asset\": \"SUR\",\n    \"currency\": \"USDT\",\n    \"min_size\": 1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"SUR/USDT\"\n  },\n  {\n    \"asset\": \"BQX\",\n    \"currency\": \"USDT\",\n    \"min_size\": 1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"BQX/USDT\"\n  },\n  {\n    \"asset\": \"DRT\",\n    \"currency\": \"USDT\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"DRT/USDT\"\n  },\n  {\n    \"asset\": \"REP\",\n    \"currency\": \"ETH\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.000100000000000000\",\n    \"label\": \"REP/ETH\"\n  },\n  {\n    \"asset\": \"REP\",\n    \"currency\": \"USDT\",\n    \"min_size\": 0.1,\n    \"increment\": \"0.001000000000000000\",\n    \"label\": \"REP/USDT\"\n  },\n  {\n    \"asset\": \"TIO\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"TIO/BTC\"\n  },\n  {\n    \"asset\": \"TIO\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"TIO/ETH\"\n  },\n  {\n    \"asset\": \"TIO\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"TIO/USDT\"\n  },\n  {\n    \"asset\": \"WAX\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"WAX/BTC\"\n  },\n  {\n    \"asset\": \"WAX\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"WAX/ETH\"\n  },\n  {\n    \"asset\": \"WAX\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"WAX/USDT\"\n  },\n  {\n    \"asset\": \"ULTC\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.00000001\",\n    \"label\": \"ULTC/BTC\"\n  },\n  {\n    \"asset\": \"EET\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"EET/BTC\"\n  },\n  {\n    \"asset\": \"EET\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"EET/ETH\"\n  },\n  {\n    \"asset\": \"EET\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"EET/USDT\"\n  },\n  {\n    \"asset\": \"C20\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"C20/BTC\"\n  },\n  {\n    \"asset\": \"C20\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"C20/ETH\"\n  },\n  {\n    \"asset\": \"IDH\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"IDH/BTC\"\n  },\n  {\n    \"asset\": \"IDH\",\n    \"currency\": \"ETH\",\n    \"min_size\": 1,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"IDH/ETH\"\n  },\n  {\n    \"asset\": \"IPL\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.00000001\",\n    \"label\": \"IPL/BTC\"\n  },\n  {\n    \"asset\": \"COV\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"COV/BTC\"\n  },\n  {\n    \"asset\": \"COV\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"COV/ETH\"\n  },\n  {\n    \"asset\": \"SENT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10000,\n    \"increment\": \"0.0000000001\",\n    \"label\": \"SENT/BTC\"\n  },\n  {\n    \"asset\": \"SENT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10000,\n    \"increment\": \"0.000000001\",\n    \"label\": \"SENT/ETH\"\n  },\n  {\n    \"asset\": \"SENT\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10000,\n    \"increment\": \"0.00000001\",\n    \"label\": \"SENT/USDT\"\n  },\n  {\n    \"asset\": \"SMT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.00000001\",\n    \"label\": \"SMT/BTC\"\n  },\n  {\n    \"asset\": \"SMT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"SMT/ETH\"\n  },\n  {\n    \"asset\": \"SMT\",\n    \"currency\": \"USDT\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"SMT/USDT\"\n  },\n  {\n    \"asset\": \"W3C\",\n    \"currency\": \"BTC\",\n    \"min_size\": 1000,\n    \"increment\": \"0.000000001\",\n    \"label\": \"W3C/BTC\"\n  },\n  {\n    \"asset\": \"W3C\",\n    \"currency\": \"ETH\",\n    \"min_size\": 1000,\n    \"increment\": \"0.00000001\",\n    \"label\": \"W3C/ETH\"\n  },\n  {\n    \"asset\": \"CAS\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.00000001\",\n    \"label\": \"CAS/BTC\"\n  },\n  {\n    \"asset\": \"CAS\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"CAS/ETH\"\n  },\n  {\n    \"asset\": \"CAS\",\n    \"currency\": \"USDT\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"CAS/USDT\"\n  },\n  {\n    \"asset\": \"CHAT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"CHAT/BTC\"\n  },\n  {\n    \"asset\": \"CHAT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"CHAT/ETH\"\n  },\n  {\n    \"asset\": \"CHAT\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"CHAT/USDT\"\n  },\n  {\n    \"asset\": \"GRMD\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"GRMD/BTC\"\n  },\n  {\n    \"asset\": \"AVH\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.00000001\",\n    \"label\": \"AVH/BTC\"\n  },\n  {\n    \"asset\": \"TRAC\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"TRAC/ETH\"\n  },\n  {\n    \"asset\": \"JNT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"JNT/ETH\"\n  },\n  {\n    \"asset\": \"CLOUT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"CLOUT/BTC\"\n  },\n  {\n    \"asset\": \"UTK\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.00000001\",\n    \"label\": \"UTK/BTC\"\n  },\n  {\n    \"asset\": \"UTK\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"UTK/ETH\"\n  },\n  {\n    \"asset\": \"UTK\",\n    \"currency\": \"USDT\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"UTK/USDT\"\n  },\n  {\n    \"asset\": \"GNX\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"GNX/ETH\"\n  },\n  {\n    \"asset\": \"CHSB\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.00000001\",\n    \"label\": \"CHSB/BTC\"\n  },\n  {\n    \"asset\": \"CHSB\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"CHSB/ETH\"\n  },\n  {\n    \"asset\": \"AVH\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"AVH/ETH\"\n  },\n  {\n    \"asset\": \"NEU\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"NEU/BTC\"\n  },\n  {\n    \"asset\": \"NEU\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"NEU/ETH\"\n  },\n  {\n    \"asset\": \"NEU\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"NEU/USDT\"\n  },\n  {\n    \"asset\": \"AVH\",\n    \"currency\": \"USDT\",\n    \"min_size\": 100,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"AVH/USDT\"\n  },\n  {\n    \"asset\": \"CLOUT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"CLOUT/ETH\"\n  },\n  {\n    \"asset\": \"CLOUT\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"CLOUT/USDT\"\n  },\n  {\n    \"asset\": \"TAU\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"TAU/BTC\"\n  },\n  {\n    \"asset\": \"MEK\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"MEK/BTC\"\n  },\n  {\n    \"asset\": \"BAR\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"BAR/BTC\"\n  },\n  {\n    \"asset\": \"BAR\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"BAR/ETH\"\n  },\n  {\n    \"asset\": \"BAR\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"BAR/USDT\"\n  },\n  {\n    \"asset\": \"FLP\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"FLP/BTC\"\n  },\n  {\n    \"asset\": \"FLP\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"FLP/ETH\"\n  },\n  {\n    \"asset\": \"FLP\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"FLP/USDT\"\n  },\n  {\n    \"asset\": \"R\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"R/BTC\"\n  },\n  {\n    \"asset\": \"R\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"R/ETH\"\n  },\n  {\n    \"asset\": \"EKO\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"EKO/USDT\"\n  },\n  {\n    \"asset\": \"PKT\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"PKT/BTC\"\n  },\n  {\n    \"asset\": \"PKT\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"PKT/ETH\"\n  },\n  {\n    \"asset\": \"CPG\",\n    \"currency\": \"BTC\",\n    \"min_size\": 100,\n    \"increment\": \"0.00000001\",\n    \"label\": \"CPG/BTC\"\n  },\n  {\n    \"asset\": \"CPG\",\n    \"currency\": \"ETH\",\n    \"min_size\": 100,\n    \"increment\": \"0.0000001\",\n    \"label\": \"CPG/ETH\"\n  },\n  {\n    \"asset\": \"WLK\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"WLK/BTC\"\n  },\n  {\n    \"asset\": \"WLK\",\n    \"currency\": \"ETH\",\n    \"min_size\": 10,\n    \"increment\": \"0.000001000000000000\",\n    \"label\": \"WLK/ETH\"\n  },\n  {\n    \"asset\": \"WLK\",\n    \"currency\": \"USDT\",\n    \"min_size\": 10,\n    \"increment\": \"0.000010000000000000\",\n    \"label\": \"WLK/USDT\"\n  },\n  {\n    \"asset\": \"EVN\",\n    \"currency\": \"BTC\",\n    \"min_size\": 10,\n    \"increment\": \"0.0000001\",\n    \"label\": \"EVN/BTC\"\n  }\n]"
  },
  {
    "path": "extensions/exchanges/hitbtc/update-products.sh",
    "content": "#!/usr/bin/env node\nconst ccxt = require ('ccxt')\nconst c = require('../../../conf')\nconst n = require('numbro')\n\nconst hitbtc = new ccxt.hitbtc2 ({\n  'apiKey': c.hitbtc.key,\n  'secret': c.hitbtc.secret,\n})\n\nhitbtc.fetch_markets()\n  .then(result =>   {\n    var products = []\n    result.forEach(function (product) {\n      products.push({\n        asset: product.base,\n        currency: product.quote,\n        min_size: product.limits.amount.min,    \n        max_size: product.limits.amount.max, \n        increment: n(product.step).format('0.000000000000000000'),\n        label: product.symbol\n      })\n    })\n    var target = require('path').resolve(__dirname, 'products.json')\n    require('fs').writeFileSync(target, JSON.stringify(products, null, 2))\n    console.log('wrote', target)\n    process.exit()\n  })\n  .catch(function (error) {\n    console.error('An error occurred', error)\n    process.exit(1)\n  })\n"
  },
  {
    "path": "extensions/exchanges/kraken/exchange.js",
    "content": "var KrakenClient = require('kraken-api'),\n  minimist = require('minimist'),\n  moment = require('moment'),\n  n = require('numbro'),\n  // eslint-disable-next-line no-unused-vars\n  colors = require('colors')\n\nmodule.exports = function container(conf) {\n  var s = {\n    options: minimist(process.argv)\n  }\n  var so = s.options\n\n  var public_client, authed_client\n  // var recoverableErrors = new RegExp(/(ESOCKETTIMEDOUT|ETIMEDOUT|ECONNRESET|ECONNREFUSED|ENOTFOUND|API:Invalid nonce|API:Rate limit exceeded|between Cloudflare and the origin web server)/)\n  var recoverableErrors = new RegExp(/(ESOCKETTIMEDOUT|ETIMEDOUT|ECONNRESET|ECONNREFUSED|ENOTFOUND|API:Invalid nonce|between Cloudflare and the origin web server|The web server reported a gateway time-out|The web server reported a bad gateway|525: SSL handshake failed|Service:Unavailable|api.kraken.com \\| 522:)/)\n  var silencedRecoverableErrors = new RegExp(/(ESOCKETTIMEDOUT|ETIMEDOUT)/)\n\n  function publicClient() {\n    if (!public_client) {\n      public_client = new KrakenClient()\n    }\n    return public_client\n  }\n\n  function authedClient() {\n    if (!authed_client) {\n      if (!conf.kraken || !conf.kraken.key || conf.kraken.key === 'YOUR-API-KEY') {\n        throw new Error('please configure your Kraken credentials in conf.js')\n      }\n      authed_client = new KrakenClient(conf.kraken.key, conf.kraken.secret)\n    }\n    return authed_client\n  }\n\n  // This is to deal with a silly bug where kraken doesn't use a consistent definition for currency\n  // with certain assets they will mix the use of 'Z' and 'X' prefixes\n  function joinProductFormatted(product_id) {\n    var asset = product_id.split('-')[0]\n    var currency = product_id.split('-')[1]\n    return asset + currency\n  }\n\n  function retry(method, args, error) {\n    let timeout, errorMsg\n    if (error.message.match(/API:Rate limit exceeded/)) {\n      timeout = 10000\n    } else {\n      timeout = 150\n    }\n\n    // silence common timeout errors\n    if (so.debug || !error.message.match(silencedRecoverableErrors)) {\n      if (error.message.match(/between Cloudflare and the origin web server/)) {\n        errorMsg = 'Connection between Cloudflare CDN and api.kraken.com failed'\n      }\n      else if (error.message.match(/The web server reported a gateway time-out/)) {\n        errorMsg = 'Web server Gateway time-out'\n      }\n      else if (error.message.match(/The web server reported a bad gateway/)) {\n        errorMsg = 'Web server bad Gateway'\n      }\n      else if (error.message.match(/525: SSL handshake failed/)) {\n        errorMsg = 'SSL handshake failed'\n      }\n      else if (error.message.match(/Service:Unavailable/)) {\n        errorMsg = 'Service Unavailable'\n      }\n      else if (error.message.match(/api.kraken.com \\| 522:/)) {\n        errorMsg = 'Generic 522 Server error'\n      }\n\n      else {\n        errorMsg = error\n      }\n      console.warn(('\\nKraken API warning - unable to call ' + method + ' (' + errorMsg + '), retrying in ' + timeout / 1000 + 's').yellow)\n    }\n    setTimeout(function() {\n      exchange[method].apply(exchange, args)\n    }, timeout)\n  }\n\n  var orders = {}\n\n  var exchange = {\n    name: 'kraken',\n    historyScan: 'forward',\n    makerFee: 0.16,\n    takerFee: 0.26,\n    // The limit for the public API is not documented, 1750 ms between getTrades in backfilling seems to do the trick to omit warning messages.\n    backfillRateLimit: 3500,\n\n    getProducts: function() {\n      return require('./products.json')\n    },\n\n    getTrades: function(opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = publicClient()\n      var args = {\n        pair: joinProductFormatted(opts.product_id)\n      }\n      if (opts.from) {\n        args.since = Number(opts.from) * 1000000\n      }\n\n      client.api('Trades', args, function(error, data) {\n        if (error && error.message.match(recoverableErrors)) {\n          return retry('getTrades', func_args, error)\n        }\n        if (error) {\n          console.error(('\\nTrades error:').red)\n          console.error(error)\n          return cb(null, [])\n        }\n        if (data.error.length) {\n          return cb(data.error.join(','))\n        }\n\n        var trades = []\n        Object.keys(data.result[args.pair]).forEach(function(i) {\n          var trade = data.result[args.pair][i]\n          if (!opts.from || (Number(opts.from) < moment.unix((trade[2]).valueOf()))) {\n            trades.push({\n              trade_id: trade[2] + trade[1] + trade[0],\n              time: moment.unix(trade[2]).valueOf(),\n              size: parseFloat(trade[1]),\n              price: parseFloat(trade[0]),\n              side: trade[3] == 'b' ? 'buy' : 'sell'\n            })\n          }\n        })\n\n        cb(null, trades)\n      })\n    },\n\n    getBalance: function(opts, cb) {\n      var args = [].slice.call(arguments)\n      var client = authedClient()\n      client.api('Balance', null, function(error, data) {\n        var balance = {\n          asset: '0',\n          asset_hold: '0',\n          currency: '0',\n          currency_hold: '0'\n        }\n\n        if (error) {\n          if (error.message.match(recoverableErrors)) {\n            return retry('getBalance', args, error)\n          }\n          console.error(('\\ngetBalance error:').red)\n          console.error(error)\n          return cb(error)\n        }\n\n        if (data.error.length) {\n          return cb(data.error.join(','))\n        }\n\n        if (data.result[opts.currency]) {\n          balance.currency = n(data.result[opts.currency]).format('0.00000000')\n          balance.currency_hold = '0'\n        }\n\n        if (data.result[opts.asset]) {\n          balance.asset = n(data.result[opts.asset]).format('0.00000000')\n          balance.asset_hold = '0'\n        }\n\n        cb(null, balance)\n      })\n    },\n\n    getQuote: function(opts, cb) {\n      var args = [].slice.call(arguments)\n      var client = publicClient()\n      var pair = joinProductFormatted(opts.product_id)\n      client.api('Ticker', {\n        pair: pair\n      }, function(error, data) {\n        if (error) {\n          if (error.message.match(recoverableErrors)) {\n            return retry('getQuote', args, error)\n          }\n          console.error(('\\ngetQuote error:').red)\n          console.error(error)\n          return cb(error)\n        }\n        if (data.error.length) {\n          return cb(data.error.join(','))\n        }\n        cb(null, {\n          bid: data.result[pair].b[0],\n          ask: data.result[pair].a[0],\n        })\n      })\n    },\n\n    cancelOrder: function(opts, cb) {\n      var args = [].slice.call(arguments)\n      var client = authedClient()\n      client.api('CancelOrder', {\n        txid: opts.order_id\n      }, function(error, data) {\n        if (error) {\n          if (error.message.match(recoverableErrors)) {\n            return retry('cancelOrder', args, error)\n          }\n          console.error(('\\ncancelOrder error:').red)\n          console.error(error)\n          return cb(error)\n        }\n        if (data.error.length) {\n          return cb(data.error.join(','))\n        }\n        if (so.debug) {\n          console.log('\\nFunction: cancelOrder')\n          console.log(data)\n        }\n        cb(error)\n      })\n    },\n\n    trade: function(type, opts, cb) {\n      var args = [].slice.call(arguments)\n      var client = authedClient()\n      var params = {\n        pair: joinProductFormatted(opts.product_id),\n        type: type,\n        ordertype: (opts.order_type === 'taker' ? 'market' : 'limit'),\n        volume: opts.size,\n        trading_agreement: conf.kraken.tosagree\n      }\n      if (opts.post_only === true && params.ordertype === 'limit') {\n        params.oflags = 'post'\n      }\n      if ('price' in opts) {\n        params.price = opts.price\n      }\n      if (so.debug) {\n        console.log('\\nFunction: trade')\n        console.log(params)\n      }\n      client.api('AddOrder', params, function(error, data) {\n        if (error && error.message.match(recoverableErrors)) {\n          return retry('trade', args, error)\n        }\n\n        var order = {\n          id: data && data.result ? data.result.txid[0] : null,\n          status: 'open',\n          price: opts.price,\n          size: opts.size,\n          created_at: new Date().getTime(),\n          filled_size: '0'\n        }\n\n        if (opts.order_type === 'maker') {\n          order.post_only = !!opts.post_only\n        }\n\n        if (so.debug) {\n          console.log('\\nData:')\n          console.log(data)\n          console.log('\\nOrder:')\n          console.log(order)\n          console.log('\\nError:')\n          console.log(error)\n        }\n\n        if (error) {\n          if (error.message.match(/Order:Insufficient funds$/)) {\n            order.status = 'rejected'\n            order.reject_reason = 'balance'\n            return cb(null, order)\n          } else if (error.message.length) {\n            console.error(('\\nUnhandeld AddOrder error:').red)\n            console.error(error)\n            order.status = 'rejected'\n            order.reject_reason = error.message\n            return cb(null, order)\n          } else if (data.error.length) {\n            console.error(('\\nUnhandeld AddOrder error:').red)\n            console.error(data.error)\n            order.status = 'rejected'\n            order.reject_reason = data.error.join(',')\n          }\n        }\n\n        orders['~' + data.result.txid[0]] = order\n        cb(null, order)\n      })\n    },\n\n    buy: function(opts, cb) {\n      exchange.trade('buy', opts, cb)\n    },\n\n    sell: function(opts, cb) {\n      exchange.trade('sell', opts, cb)\n    },\n\n    getOrder: function(opts, cb) {\n      var args = [].slice.call(arguments)\n      var order = orders['~' + opts.order_id]\n      if (!order) return cb(new Error('order not found in cache'))\n      var client = authedClient()\n      var params = {\n        txid: opts.order_id\n      }\n      client.api('QueryOrders', params, function(error, data) {\n        if (error) {\n          if (error.message.match(recoverableErrors)) {\n            return retry('getOrder', args, error)\n          }\n          console.error(('\\ngetOrder error:').red)\n          console.error(error)\n          return cb(error)\n        }\n        if (data.error.length) {\n          return cb(data.error.join(','))\n        }\n        var orderData = data.result[params.txid]\n        if (so.debug) {\n          console.log('\\nfunction: QueryOrders')\n          console.log(orderData)\n        }\n\n        if (!orderData) {\n          return cb('Order not found')\n        }\n\n        if (orderData.status === 'canceled' && orderData.reason === 'Post only order') {\n          order.status = 'rejected'\n          order.reject_reason = 'post only'\n          order.done_at = new Date().getTime()\n          order.filled_size = '0.00000000'\n          return cb(null, order)\n        }\n\n        if (orderData.status === 'closed' || (orderData.status === 'canceled' && orderData.reason === 'User canceled')) {\n          order.status = 'done'\n          order.done_at = new Date().getTime()\n          order.filled_size = n(orderData.vol_exec).format('0.00000000')\n          order.price = n(orderData.price).format('0.00000000')\n          return cb(null, order)\n        }\n\n        cb(null, order)\n      })\n    },\n\n    // return the property used for range querying.\n    getCursor: function(trade) {\n      return (trade.time || trade)\n    }\n  }\n  return exchange\n}\n"
  },
  {
    "path": "extensions/exchanges/kraken/products.json",
    "content": "[\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.0200000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"AAVE/AUD\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.0200000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"AAVE/ETH\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.0200000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"AAVE/EUR\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.0200000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"AAVE/GBP\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0200000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"AAVE/USD\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.0200000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"AAVE/XBT\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"ADA/AUD\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"ADA/ETH\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"ADA/EUR\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"ADA/GBP\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"ADA/USD\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"ADA/USDT\"\n  },\n  {\n    \"asset\": \"ADA\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"ADA/XBT\"\n  },\n  {\n    \"asset\": \"ALGO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"ALGO/ETH\"\n  },\n  {\n    \"asset\": \"ALGO\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"ALGO/EUR\"\n  },\n  {\n    \"asset\": \"ALGO\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"ALGO/GBP\"\n  },\n  {\n    \"asset\": \"ALGO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"ALGO/USD\"\n  },\n  {\n    \"asset\": \"ALGO\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"ALGO/XBT\"\n  },\n  {\n    \"asset\": \"ANKR\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"50.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"ANKR/EUR\"\n  },\n  {\n    \"asset\": \"ANKR\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"50.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"ANKR/GBP\"\n  },\n  {\n    \"asset\": \"ANKR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"50.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"ANKR/USD\"\n  },\n  {\n    \"asset\": \"ANKR\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"50.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"ANKR/XBT\"\n  },\n  {\n    \"asset\": \"ANT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"ANT/ETH\"\n  },\n  {\n    \"asset\": \"ANT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"ANT/EUR\"\n  },\n  {\n    \"asset\": \"ANT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"ANT/USD\"\n  },\n  {\n    \"asset\": \"ANT\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"ANT/XBT\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.3000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"ATOM/AUD\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.3000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"ATOM/ETH\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.3000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"ATOM/EUR\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.3000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"ATOM/GBP\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.3000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"ATOM/USD\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.3000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"ATOM/XBT\"\n  },\n  {\n    \"asset\": \"AUD\",\n    \"currency\": \"JPY\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"AUD/JPY\"\n  },\n  {\n    \"asset\": \"AUD\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"AUD/USD\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.1500000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"BAL/ETH\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.1500000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"BAL/EUR\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1500000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"BAL/USD\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.1500000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"BAL/XBT\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"BAT/ETH\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"BAT/EUR\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"BAT/USD\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"BAT/XBT\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.0100000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"BCH/AUD\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.0100000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"BCH/ETH\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.0100000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"BCH/EUR\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.0100000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"BCH/GBP\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"JPY\",\n    \"min_size\": \"0.0100000000\",\n    \"increment\": \"1.0000000000\",\n    \"label\": \"BCH/JPY\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0100000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"BCH/USD\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.0100000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"BCH/USDT\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.0100000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"BCH/XBT\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"BNT/EUR\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"BNT/GBP\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"BNT/USD\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"BNT/XBT\"\n  },\n  {\n    \"asset\": \"COMP\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.0100000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"COMP/ETH\"\n  },\n  {\n    \"asset\": \"COMP\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.0100000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"COMP/EUR\"\n  },\n  {\n    \"asset\": \"COMP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0100000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"COMP/USD\"\n  },\n  {\n    \"asset\": \"COMP\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.0100000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"COMP/XBT\"\n  },\n  {\n    \"asset\": \"CRV\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"2.5000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"CRV/ETH\"\n  },\n  {\n    \"asset\": \"CRV\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"2.5000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"CRV/EUR\"\n  },\n  {\n    \"asset\": \"CRV\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.5000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"CRV/USD\"\n  },\n  {\n    \"asset\": \"CRV\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"2.5000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"CRV/XBT\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"DAI/EUR\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"DAI/USD\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"DAI/USDT\"\n  },\n  {\n    \"asset\": \"DASH\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.0300000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"DASH/EUR\"\n  },\n  {\n    \"asset\": \"DASH\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0300000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"DASH/USD\"\n  },\n  {\n    \"asset\": \"DASH\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.0300000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"DASH/XBT\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"DOT/AUD\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"DOT/ETH\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"DOT/EUR\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"DOT/GBP\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"DOT/USD\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"DOT/USDT\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"DOT/XBT\"\n  },\n  {\n    \"asset\": \"ENJ\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"2.0000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"ENJ/EUR\"\n  },\n  {\n    \"asset\": \"ENJ\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"2.0000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"ENJ/GBP\"\n  },\n  {\n    \"asset\": \"ENJ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.0000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"ENJ/USD\"\n  },\n  {\n    \"asset\": \"ENJ\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"2.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"ENJ/XBT\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"EOS/ETH\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"EOS/EUR\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"EOS/USD\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"EOS/USDT\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"EOS/XBT\"\n  },\n  {\n    \"asset\": \"ETH2.S\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.0040000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"ETH2.S/ETH\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.0040000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"ETH/AUD\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"CHF\",\n    \"min_size\": \"0.0040000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"ETH/CHF\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"DAI\",\n    \"min_size\": \"0.0040000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"ETH/DAI\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.0040000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"ETH/USDC\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.0040000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"ETH/USDT\"\n  },\n  {\n    \"asset\": \"EUR\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"EUR/AUD\"\n  },\n  {\n    \"asset\": \"EUR\",\n    \"currency\": \"CAD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"EUR/CAD\"\n  },\n  {\n    \"asset\": \"EUR\",\n    \"currency\": \"CHF\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"EUR/CHF\"\n  },\n  {\n    \"asset\": \"EUR\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"EUR/GBP\"\n  },\n  {\n    \"asset\": \"EUR\",\n    \"currency\": \"JPY\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"EUR/JPY\"\n  },\n  {\n    \"asset\": \"EWT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"EWT/EUR\"\n  },\n  {\n    \"asset\": \"EWT\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"EWT/GBP\"\n  },\n  {\n    \"asset\": \"EWT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"EWT/USD\"\n  },\n  {\n    \"asset\": \"EWT\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"EWT/XBT\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.0500000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"FIL/AUD\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.0500000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"FIL/ETH\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.0500000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"FIL/EUR\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.0500000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"FIL/GBP\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0500000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"FIL/USD\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.0500000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"FIL/XBT\"\n  },\n  {\n    \"asset\": \"FLOW\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"FLOW/ETH\"\n  },\n  {\n    \"asset\": \"FLOW\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"FLOW/EUR\"\n  },\n  {\n    \"asset\": \"FLOW\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"FLOW/GBP\"\n  },\n  {\n    \"asset\": \"FLOW\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"FLOW/USD\"\n  },\n  {\n    \"asset\": \"FLOW\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"FLOW/XBT\"\n  },\n  {\n    \"asset\": \"GHST\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"GHST/EUR\"\n  },\n  {\n    \"asset\": \"GHST\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"GHST/GBP\"\n  },\n  {\n    \"asset\": \"GHST\",\n    \"currency\": \"USD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"GHST/USD\"\n  },\n  {\n    \"asset\": \"GHST\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"GHST/XBT\"\n  },\n  {\n    \"asset\": \"GNO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.0500000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"GNO/ETH\"\n  },\n  {\n    \"asset\": \"GNO\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.0500000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"GNO/EUR\"\n  },\n  {\n    \"asset\": \"GNO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0500000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"GNO/USD\"\n  },\n  {\n    \"asset\": \"GNO\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.0500000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"GNO/XBT\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"3.5000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"GRT/AUD\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"3.5000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"GRT/ETH\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"3.5000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"GRT/EUR\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"3.5000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"GRT/GBP\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"3.5000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"GRT/USD\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"3.5000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"GRT/XBT\"\n  },\n  {\n    \"asset\": \"ICX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"3.0000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"ICX/ETH\"\n  },\n  {\n    \"asset\": \"ICX\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"3.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"ICX/EUR\"\n  },\n  {\n    \"asset\": \"ICX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"3.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"ICX/USD\"\n  },\n  {\n    \"asset\": \"ICX\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"3.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"ICX/XBT\"\n  },\n  {\n    \"asset\": \"KAVA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"KAVA/ETH\"\n  },\n  {\n    \"asset\": \"KAVA\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"KAVA/EUR\"\n  },\n  {\n    \"asset\": \"KAVA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"KAVA/USD\"\n  },\n  {\n    \"asset\": \"KAVA\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"KAVA/XBT\"\n  },\n  {\n    \"asset\": \"KEEP\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"KEEP/ETH\"\n  },\n  {\n    \"asset\": \"KEEP\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"KEEP/EUR\"\n  },\n  {\n    \"asset\": \"KEEP\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"KEEP/USD\"\n  },\n  {\n    \"asset\": \"KEEP\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"KEEP/XBT\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"2.0000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"KNC/ETH\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"2.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"KNC/EUR\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"2.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"KNC/USD\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"2.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"KNC/XBT\"\n  },\n  {\n    \"asset\": \"KSM\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.0200000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"KSM/AUD\"\n  },\n  {\n    \"asset\": \"KSM\",\n    \"currency\": \"DOT\",\n    \"min_size\": \"0.0200000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"KSM/DOT\"\n  },\n  {\n    \"asset\": \"KSM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.0200000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"KSM/ETH\"\n  },\n  {\n    \"asset\": \"KSM\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.0200000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"KSM/EUR\"\n  },\n  {\n    \"asset\": \"KSM\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.0200000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"KSM/GBP\"\n  },\n  {\n    \"asset\": \"KSM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0200000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"KSM/USD\"\n  },\n  {\n    \"asset\": \"KSM\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.0200000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"KSM/XBT\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"LINK/AUD\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"LINK/ETH\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"LINK/EUR\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"LINK/GBP\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"LINK/USD\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"LINK/USDT\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"LINK/XBT\"\n  },\n  {\n    \"asset\": \"LPT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"LPT/EUR\"\n  },\n  {\n    \"asset\": \"LPT\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"LPT/GBP\"\n  },\n  {\n    \"asset\": \"LPT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"LPT/USD\"\n  },\n  {\n    \"asset\": \"LPT\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"LPT/XBT\"\n  },\n  {\n    \"asset\": \"LSK\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"LSK/ETH\"\n  },\n  {\n    \"asset\": \"LSK\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"LSK/EUR\"\n  },\n  {\n    \"asset\": \"LSK\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"LSK/USD\"\n  },\n  {\n    \"asset\": \"LSK\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0000000010\",\n    \"label\": \"LSK/XBT\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.0300000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"LTC/AUD\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.0300000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"LTC/ETH\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.0300000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"LTC/GBP\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.0300000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"LTC/USDT\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"7.0000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"MANA/ETH\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"7.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"MANA/EUR\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"7.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"MANA/USD\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"7.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"MANA/XBT\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"20.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"MATIC/EUR\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"20.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"MATIC/GBP\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"20.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"MATIC/USD\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"20.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"MATIC/XBT\"\n  },\n  {\n    \"asset\": \"MINA\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"MINA/EUR\"\n  },\n  {\n    \"asset\": \"MINA\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"MINA/GBP\"\n  },\n  {\n    \"asset\": \"MINA\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"MINA/USD\"\n  },\n  {\n    \"asset\": \"MINA\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"MINA/XBT\"\n  },\n  {\n    \"asset\": \"MKR\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.0020000000\",\n    \"increment\": \"0.1000000000\",\n    \"label\": \"MKR/EUR\"\n  },\n  {\n    \"asset\": \"MKR\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.0020000000\",\n    \"increment\": \"0.1000000000\",\n    \"label\": \"MKR/GBP\"\n  },\n  {\n    \"asset\": \"MKR\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0020000000\",\n    \"increment\": \"0.1000000000\",\n    \"label\": \"MKR/USD\"\n  },\n  {\n    \"asset\": \"MKR\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.0020000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"MKR/XBT\"\n  },\n  {\n    \"asset\": \"NANO\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.5000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"NANO/ETH\"\n  },\n  {\n    \"asset\": \"NANO\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1.5000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"NANO/EUR\"\n  },\n  {\n    \"asset\": \"NANO\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.5000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"NANO/USD\"\n  },\n  {\n    \"asset\": \"NANO\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"1.5000000000\",\n    \"increment\": \"0.0000000010\",\n    \"label\": \"NANO/XBT\"\n  },\n  {\n    \"asset\": \"OCEAN\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"OCEAN/EUR\"\n  },\n  {\n    \"asset\": \"OCEAN\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"OCEAN/GBP\"\n  },\n  {\n    \"asset\": \"OCEAN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"OCEAN/USD\"\n  },\n  {\n    \"asset\": \"OCEAN\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"OCEAN/XBT\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"OMG/ETH\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"OMG/EUR\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"OMG/USD\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0000000010\",\n    \"label\": \"OMG/XBT\"\n  },\n  {\n    \"asset\": \"OXT\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"OXT/ETH\"\n  },\n  {\n    \"asset\": \"OXT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"OXT/EUR\"\n  },\n  {\n    \"asset\": \"OXT\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"OXT/USD\"\n  },\n  {\n    \"asset\": \"OXT\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"OXT/XBT\"\n  },\n  {\n    \"asset\": \"PAXG\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.0040000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"PAXG/ETH\"\n  },\n  {\n    \"asset\": \"PAXG\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.0040000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"PAXG/EUR\"\n  },\n  {\n    \"asset\": \"PAXG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0040000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"PAXG/USD\"\n  },\n  {\n    \"asset\": \"PAXG\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.0040000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"PAXG/XBT\"\n  },\n  {\n    \"asset\": \"QTUM\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"QTUM/ETH\"\n  },\n  {\n    \"asset\": \"QTUM\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"QTUM/EUR\"\n  },\n  {\n    \"asset\": \"QTUM\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"QTUM/USD\"\n  },\n  {\n    \"asset\": \"QTUM\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"QTUM/XBT\"\n  },\n  {\n    \"asset\": \"RARI\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.3000000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"RARI/EUR\"\n  },\n  {\n    \"asset\": \"RARI\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.3000000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"RARI/GBP\"\n  },\n  {\n    \"asset\": \"RARI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.3000000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"RARI/USD\"\n  },\n  {\n    \"asset\": \"RARI\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.3000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"RARI/XBT\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"REN/EUR\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"REN/GBP\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"USD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"REN/USD\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"REN/XBT\"\n  },\n  {\n    \"asset\": \"REPV2\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.1500000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"REPV2/ETH\"\n  },\n  {\n    \"asset\": \"REPV2\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.1500000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"REPV2/EUR\"\n  },\n  {\n    \"asset\": \"REPV2\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.1500000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"REPV2/USD\"\n  },\n  {\n    \"asset\": \"REPV2\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.1500000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"REPV2/XBT\"\n  },\n  {\n    \"asset\": \"SAND\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"SAND/EUR\"\n  },\n  {\n    \"asset\": \"SAND\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"SAND/GBP\"\n  },\n  {\n    \"asset\": \"SAND\",\n    \"currency\": \"USD\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"SAND/USD\"\n  },\n  {\n    \"asset\": \"SAND\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"SAND/XBT\"\n  },\n  {\n    \"asset\": \"SC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"280.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"SC/ETH\"\n  },\n  {\n    \"asset\": \"SC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"280.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"SC/EUR\"\n  },\n  {\n    \"asset\": \"SC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"280.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"SC/USD\"\n  },\n  {\n    \"asset\": \"SC\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"280.0000000000\",\n    \"increment\": \"0.0000000001\",\n    \"label\": \"SC/XBT\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.4000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"SNX/AUD\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.4000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"SNX/ETH\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.4000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"SNX/EUR\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.4000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"SNX/GBP\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.4000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"SNX/USD\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.4000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"SNX/XBT\"\n  },\n  {\n    \"asset\": \"STORJ\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"3.0000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"STORJ/ETH\"\n  },\n  {\n    \"asset\": \"STORJ\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"3.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"STORJ/EUR\"\n  },\n  {\n    \"asset\": \"STORJ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"3.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"STORJ/USD\"\n  },\n  {\n    \"asset\": \"STORJ\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"3.0000000000\",\n    \"increment\": \"0.0000000010\",\n    \"label\": \"STORJ/XBT\"\n  },\n  {\n    \"asset\": \"SUSHI\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"SUSHI/EUR\"\n  },\n  {\n    \"asset\": \"SUSHI\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"SUSHI/GBP\"\n  },\n  {\n    \"asset\": \"SUSHI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"SUSHI/USD\"\n  },\n  {\n    \"asset\": \"SUSHI\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"SUSHI/XBT\"\n  },\n  {\n    \"asset\": \"TBTC\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.0001000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"TBTC/ETH\"\n  },\n  {\n    \"asset\": \"TBTC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.0001000000\",\n    \"increment\": \"0.1000000000\",\n    \"label\": \"TBTC/EUR\"\n  },\n  {\n    \"asset\": \"TBTC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0001000000\",\n    \"increment\": \"0.1000000000\",\n    \"label\": \"TBTC/USD\"\n  },\n  {\n    \"asset\": \"TBTC\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.0001000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"TBTC/XBT\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"50.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"TRX/ETH\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"50.0000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"TRX/EUR\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"50.0000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"TRX/USD\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"50.0000000000\",\n    \"increment\": \"0.0000000001\",\n    \"label\": \"TRX/XBT\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"UNI/ETH\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"UNI/EUR\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"UNI/USD\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.2000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"UNI/XBT\"\n  },\n  {\n    \"asset\": \"USDC\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"USDC/AUD\"\n  },\n  {\n    \"asset\": \"USDC\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"USDC/EUR\"\n  },\n  {\n    \"asset\": \"USDC\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"USDC/GBP\"\n  },\n  {\n    \"asset\": \"USD\",\n    \"currency\": \"CHF\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"USD/CHF\"\n  },\n  {\n    \"asset\": \"USDC\",\n    \"currency\": \"USD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"USDC/USD\"\n  },\n  {\n    \"asset\": \"USDC\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"USDC/USDT\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"USDT/AUD\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"CAD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"USDT/CAD\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"CHF\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"USDT/CHF\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"USDT/EUR\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"USDT/GBP\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"JPY\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"USDT/JPY\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"ZUSD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"USDT/USD\"\n  },\n  {\n    \"asset\": \"WAVES\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"WAVES/ETH\"\n  },\n  {\n    \"asset\": \"WAVES\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"WAVES/EUR\"\n  },\n  {\n    \"asset\": \"WAVES\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"WAVES/USD\"\n  },\n  {\n    \"asset\": \"WAVES\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.5000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"WAVES/XBT\"\n  },\n  {\n    \"asset\": \"XBT\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.0001000000\",\n    \"increment\": \"0.1000000000\",\n    \"label\": \"XBT/AUD\"\n  },\n  {\n    \"asset\": \"XBT\",\n    \"currency\": \"CHF\",\n    \"min_size\": \"0.0001000000\",\n    \"increment\": \"0.1000000000\",\n    \"label\": \"XBT/CHF\"\n  },\n  {\n    \"asset\": \"XBT\",\n    \"currency\": \"DAI\",\n    \"min_size\": \"0.0001000000\",\n    \"increment\": \"0.1000000000\",\n    \"label\": \"XBT/DAI\"\n  },\n  {\n    \"asset\": \"XBT\",\n    \"currency\": \"USDC\",\n    \"min_size\": \"0.0001000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"XBT/USDC\"\n  },\n  {\n    \"asset\": \"XBT\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"0.0001000000\",\n    \"increment\": \"0.1000000000\",\n    \"label\": \"XBT/USDT\"\n  },\n  {\n    \"asset\": \"XDG\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"50.0000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"XDG/EUR\"\n  },\n  {\n    \"asset\": \"XDG\",\n    \"currency\": \"USD\",\n    \"min_size\": \"50.0000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"XDG/USD\"\n  },\n  {\n    \"asset\": \"XDG\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"50.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"XDG/USDT\"\n  },\n  {\n    \"asset\": \"XETC\",\n    \"currency\": \"XETH\",\n    \"min_size\": \"0.3500000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"ETC/ETH\"\n  },\n  {\n    \"asset\": \"XETC\",\n    \"currency\": \"XXBT\",\n    \"min_size\": \"0.3500000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"ETC/XBT\"\n  },\n  {\n    \"asset\": \"XETC\",\n    \"currency\": \"ZEUR\",\n    \"min_size\": \"0.3500000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"ETC/EUR\"\n  },\n  {\n    \"asset\": \"XETC\",\n    \"currency\": \"ZUSD\",\n    \"min_size\": \"0.3500000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"ETC/USD\"\n  },\n  {\n    \"asset\": \"XETH\",\n    \"currency\": \"XXBT\",\n    \"min_size\": \"0.0040000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"ETH/XBT\"\n  },\n  {\n    \"asset\": \"XETH\",\n    \"currency\": \"ZCAD\",\n    \"min_size\": \"0.0040000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"ETH/CAD\"\n  },\n  {\n    \"asset\": \"XETH\",\n    \"currency\": \"ZEUR\",\n    \"min_size\": \"0.0040000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"ETH/EUR\"\n  },\n  {\n    \"asset\": \"XETH\",\n    \"currency\": \"ZGBP\",\n    \"min_size\": \"0.0040000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"ETH/GBP\"\n  },\n  {\n    \"asset\": \"XETH\",\n    \"currency\": \"ZJPY\",\n    \"min_size\": \"0.0040000000\",\n    \"increment\": \"1.0000000000\",\n    \"label\": \"ETH/JPY\"\n  },\n  {\n    \"asset\": \"XETH\",\n    \"currency\": \"ZUSD\",\n    \"min_size\": \"0.0040000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"ETH/USD\"\n  },\n  {\n    \"asset\": \"XLTC\",\n    \"currency\": \"XXBT\",\n    \"min_size\": \"0.0300000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"LTC/XBT\"\n  },\n  {\n    \"asset\": \"XLTC\",\n    \"currency\": \"ZEUR\",\n    \"min_size\": \"0.0300000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"LTC/EUR\"\n  },\n  {\n    \"asset\": \"XLTC\",\n    \"currency\": \"ZJPY\",\n    \"min_size\": \"0.0300000000\",\n    \"increment\": \"1.0000000000\",\n    \"label\": \"LTC/JPY\"\n  },\n  {\n    \"asset\": \"XLTC\",\n    \"currency\": \"ZUSD\",\n    \"min_size\": \"0.0300000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"LTC/USD\"\n  },\n  {\n    \"asset\": \"XMLN\",\n    \"currency\": \"XETH\",\n    \"min_size\": \"0.1000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"MLN/ETH\"\n  },\n  {\n    \"asset\": \"XMLN\",\n    \"currency\": \"XXBT\",\n    \"min_size\": \"0.1000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"MLN/XBT\"\n  },\n  {\n    \"asset\": \"XMLN\",\n    \"currency\": \"ZEUR\",\n    \"min_size\": \"0.1000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"MLN/EUR\"\n  },\n  {\n    \"asset\": \"XMLN\",\n    \"currency\": \"ZUSD\",\n    \"min_size\": \"0.1000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"MLN/USD\"\n  },\n  {\n    \"asset\": \"XREP\",\n    \"currency\": \"XETH\",\n    \"min_size\": \"0.1500000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"REP/ETH\"\n  },\n  {\n    \"asset\": \"XREP\",\n    \"currency\": \"XXBT\",\n    \"min_size\": \"0.1500000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"REP/XBT\"\n  },\n  {\n    \"asset\": \"XREP\",\n    \"currency\": \"ZEUR\",\n    \"min_size\": \"0.1500000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"REP/EUR\"\n  },\n  {\n    \"asset\": \"XREP\",\n    \"currency\": \"ZUSD\",\n    \"min_size\": \"0.1500000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"REP/USD\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"XRP/AUD\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"XRP/ETH\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"XRP/GBP\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"USDT\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"XRP/USDT\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"XTZ/AUD\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"XTZ/ETH\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"XTZ/EUR\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"XTZ/GBP\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"USD\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"XTZ/USD\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"1.0000000000\",\n    \"increment\": \"0.0000001000\",\n    \"label\": \"XTZ/XBT\"\n  },\n  {\n    \"asset\": \"XXBT\",\n    \"currency\": \"ZCAD\",\n    \"min_size\": \"0.0001000000\",\n    \"increment\": \"0.1000000000\",\n    \"label\": \"XBT/CAD\"\n  },\n  {\n    \"asset\": \"XXBT\",\n    \"currency\": \"ZEUR\",\n    \"min_size\": \"0.0001000000\",\n    \"increment\": \"0.1000000000\",\n    \"label\": \"XBT/EUR\"\n  },\n  {\n    \"asset\": \"XXBT\",\n    \"currency\": \"ZGBP\",\n    \"min_size\": \"0.0001000000\",\n    \"increment\": \"0.1000000000\",\n    \"label\": \"XBT/GBP\"\n  },\n  {\n    \"asset\": \"XXBT\",\n    \"currency\": \"ZJPY\",\n    \"min_size\": \"0.0001000000\",\n    \"increment\": \"1.0000000000\",\n    \"label\": \"XBT/JPY\"\n  },\n  {\n    \"asset\": \"XXBT\",\n    \"currency\": \"ZUSD\",\n    \"min_size\": \"0.0001000000\",\n    \"increment\": \"0.1000000000\",\n    \"label\": \"XBT/USD\"\n  },\n  {\n    \"asset\": \"XXDG\",\n    \"currency\": \"XXBT\",\n    \"min_size\": \"50.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"XDG/XBT\"\n  },\n  {\n    \"asset\": \"XXLM\",\n    \"currency\": \"XXBT\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"XLM/XBT\"\n  },\n  {\n    \"asset\": \"XXLM\",\n    \"currency\": \"ZAUD\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"XLM/AUD\"\n  },\n  {\n    \"asset\": \"XXLM\",\n    \"currency\": \"ZEUR\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"XLM/EUR\"\n  },\n  {\n    \"asset\": \"XXLM\",\n    \"currency\": \"ZGBP\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"XLM/GBP\"\n  },\n  {\n    \"asset\": \"XXLM\",\n    \"currency\": \"ZUSD\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"XLM/USD\"\n  },\n  {\n    \"asset\": \"XXMR\",\n    \"currency\": \"XXBT\",\n    \"min_size\": \"0.0200000000\",\n    \"increment\": \"0.0000010000\",\n    \"label\": \"XMR/XBT\"\n  },\n  {\n    \"asset\": \"XXMR\",\n    \"currency\": \"ZEUR\",\n    \"min_size\": \"0.0200000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"XMR/EUR\"\n  },\n  {\n    \"asset\": \"XXMR\",\n    \"currency\": \"ZUSD\",\n    \"min_size\": \"0.0200000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"XMR/USD\"\n  },\n  {\n    \"asset\": \"XXRP\",\n    \"currency\": \"XXBT\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"XRP/XBT\"\n  },\n  {\n    \"asset\": \"XXRP\",\n    \"currency\": \"ZCAD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"XRP/CAD\"\n  },\n  {\n    \"asset\": \"XXRP\",\n    \"currency\": \"ZEUR\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"XRP/EUR\"\n  },\n  {\n    \"asset\": \"XXRP\",\n    \"currency\": \"ZJPY\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"XRP/JPY\"\n  },\n  {\n    \"asset\": \"XXRP\",\n    \"currency\": \"ZUSD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"XRP/USD\"\n  },\n  {\n    \"asset\": \"XZEC\",\n    \"currency\": \"XXBT\",\n    \"min_size\": \"0.0350000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"ZEC/XBT\"\n  },\n  {\n    \"asset\": \"XZEC\",\n    \"currency\": \"ZEUR\",\n    \"min_size\": \"0.0350000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"ZEC/EUR\"\n  },\n  {\n    \"asset\": \"XZEC\",\n    \"currency\": \"ZUSD\",\n    \"min_size\": \"0.0350000000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"ZEC/USD\"\n  },\n  {\n    \"asset\": \"YFI\",\n    \"currency\": \"AUD\",\n    \"min_size\": \"0.0001500000\",\n    \"increment\": \"1.0000000000\",\n    \"label\": \"YFI/AUD\"\n  },\n  {\n    \"asset\": \"YFI\",\n    \"currency\": \"ETH\",\n    \"min_size\": \"0.0001500000\",\n    \"increment\": \"0.0100000000\",\n    \"label\": \"YFI/ETH\"\n  },\n  {\n    \"asset\": \"YFI\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"0.0001500000\",\n    \"increment\": \"1.0000000000\",\n    \"label\": \"YFI/EUR\"\n  },\n  {\n    \"asset\": \"YFI\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"0.0001500000\",\n    \"increment\": \"1.0000000000\",\n    \"label\": \"YFI/GBP\"\n  },\n  {\n    \"asset\": \"YFI\",\n    \"currency\": \"USD\",\n    \"min_size\": \"0.0001500000\",\n    \"increment\": \"1.0000000000\",\n    \"label\": \"YFI/USD\"\n  },\n  {\n    \"asset\": \"YFI\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"0.0001500000\",\n    \"increment\": \"0.0001000000\",\n    \"label\": \"YFI/XBT\"\n  },\n  {\n    \"asset\": \"ZEUR\",\n    \"currency\": \"ZUSD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"EUR/USD\"\n  },\n  {\n    \"asset\": \"ZGBP\",\n    \"currency\": \"ZUSD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"GBP/USD\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"EUR\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"ZRX/EUR\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"GBP\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"ZRX/GBP\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"USD\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"ZRX/USD\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"XBT\",\n    \"min_size\": \"5.0000000000\",\n    \"increment\": \"0.0000000100\",\n    \"label\": \"ZRX/XBT\"\n  },\n  {\n    \"asset\": \"ZUSD\",\n    \"currency\": \"ZCAD\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0000100000\",\n    \"label\": \"USD/CAD\"\n  },\n  {\n    \"asset\": \"ZUSD\",\n    \"currency\": \"ZJPY\",\n    \"min_size\": \"10.0000000000\",\n    \"increment\": \"0.0010000000\",\n    \"label\": \"USD/JPY\"\n  }\n]"
  },
  {
    "path": "extensions/exchanges/kraken/update-products.sh",
    "content": "#!/usr/bin/env node\n\nvar KrakenClient = require('kraken-api')\nvar kraken = new KrakenClient()\n\nvar products = []\n\nfunction addProduct (base, quote, label, min_size, increment) {\n  products.push({\n    asset: base,\n    currency: quote,\n    min_size: parseFloat(min_size).toFixed(10),\n    increment: (10 ** (-1 * increment)).toFixed(10),\n    label: label\n  })\n}\n\nkraken.api('AssetPairs', null, function (error, data) {\n  if (error) {\n    console.log(error)\n    process.exit(1)\n  } else {\n    Object.keys(data.result).forEach(function (pair) {\n      if (!pair.match('.d')) {\n        if (!data.result[pair].wsname) {\n          console.warn(`Cannot identify pair for ${pair}`)\n          return\n        }\n        const wsname = data.result[pair].wsname\n        const split = wsname.split('/')\n        const asset = pair.substring(0, pair.indexOf(split[0]) + split[0].length)\n        const currency = pair.substring(asset.length)\n\n        addProduct(asset, currency, wsname,\n          data.result[pair].ordermin, data.result[pair].pair_decimals)\n      }\n    })\n    var target = require('path').resolve(__dirname, 'products.json')\n    require('fs').writeFileSync(target, JSON.stringify(products, null, 2))\n    console.log('wrote', target)\n    process.exit()\n  }\n})\n"
  },
  {
    "path": "extensions/exchanges/poloniex/exchange.js",
    "content": "var Poloniex = require('poloniex.js')\n  , moment = require('moment')\n  , n = require('numbro')\n  // eslint-disable-next-line no-unused-vars\n  , colors = require('colors')\n\nmodule.exports = function container (conf) {\n\n  var public_client, authed_client\n\n  function publicClient (/*product_id*/) {\n    if (!public_client) public_client = new Poloniex()\n    return public_client\n  }\n\n  function authedClient () {\n    if (!authed_client) {\n      if (!conf.poloniex || !conf.poloniex.key || conf.poloniex.key === 'YOUR-API-KEY') {\n        throw new Error('please configure your Poloniex credentials in conf.js')\n      }\n      authed_client = new Poloniex(conf.poloniex.key, conf.poloniex.secret)\n    }\n    return authed_client\n  }\n\n  function joinProduct (product_id) {\n    return product_id.split('-')[1] + '_' + product_id.split('-')[0]\n  }\n\n  function retry (method, args) {\n    setTimeout(function () {\n      exchange[method].apply(exchange, args)\n    }, 1)\n  }\n\n  var orders = {}\n\n  var exchange = {\n    name: 'poloniex',\n    historyScan: 'backward',\n    makerFee: 0.15,\n    takerFee: 0.25,\n    offset: 43200,\n\n    getProducts: function () {\n      return require('./products.json')\n    },\n\n    getTrades: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = publicClient()\n      var args = {\n        currencyPair: joinProduct(opts.product_id)\n      }\n      if (opts.from) {\n        args.start = opts.from\n      }\n      if (opts.to) {\n        args.end = opts.to\n      }\n      if (args.start && !args.end) {\n        // add 12 hours\n        args.end = args.start + (opts.offset || this.offset)\n      }\n      else if (args.end && !args.start) {\n        // subtract 12 hours\n        args.start = args.end - (opts.offset || this.offset)\n      }\n\n      client._public('returnTradeHistory', args, function (err, body) {\n        if (err) return cb(err)\n        if (typeof body === 'string') {\n          return retry('getTrades', func_args)\n        }\n        if (!body.map) {\n          console.error('\\ngetTrades odd result:')\n          console.error(body)\n          return retry('getTrades', func_args)\n        }\n\n        if (body.length >= 50000) {\n          func_args[0].offset = opts.offset / 2;\n          return retry('getTrades', func_args)\n        }\n\n        var trades = body.map(function (trade) {\n          return {\n            trade_id: trade.tradeID,\n            time: moment.utc(trade.date).valueOf(),\n            size: Number(trade.amount),\n            price: Number(trade.rate),\n            side: trade.type\n          }\n        })\n        cb(null, trades)\n      })\n    },\n\n    getBalance: function (opts, cb) {\n      var args = [].slice.call(arguments)\n      var client = authedClient()\n      client.returnCompleteBalances(function (err, body) {\n        if (err) return cb(err)\n        var balance = {asset: 0, currency: 0}\n        if (typeof body === 'string') {\n          return retry('getBalance', args)\n        }\n        if (body.error) {\n          console.error('\\ngetBalance error:')\n          console.error(body)\n          return retry('getBalance', args)\n        }\n        if (body[opts.currency]) {\n          balance.currency = n(body[opts.currency].available).add(body[opts.currency].onOrders).format('0.00000000')\n          balance.currency_hold = body[opts.currency].onOrders\n        }\n        if (body[opts.asset]) {\n          balance.asset = n(body[opts.asset].available).add(body[opts.asset].onOrders).format('0.00000000')\n          balance.asset_hold = body[opts.asset].onOrders\n        }\n        cb(null, balance)\n      })\n    },\n\n    getOrderBook: function (opts, cb) {\n      var client = publicClient()\n      var params = {\n        currencyPair: joinProduct(opts.product_id),\n        depth: 10\n      }\n      client._public('returnOrderBook', params, function (err,  data) {\n        if (typeof data !== 'object') {\n          return cb(null, [])\n        }\n        if (data.error) {\n          console.error('getOrderBook error:')\n          console.error(data)\n          return retry('getOrderBook', params)\n        }\n        cb(null, {\n          buyOrderRate: data.bids[0][0],\n          buyOrderAmount: data.bids[0][1],\n          sellOrderRate: data.asks[0][0],\n          sellOrderAmount: data.asks[0][1]\n        })\n      })\n    },\n\n    getQuote: function (opts, cb) {\n      var args = [].slice.call(arguments)\n      var client = publicClient()\n      var product_id = joinProduct(opts.product_id)\n      client.getTicker(function (err, body) {\n        if (err) return cb(err)\n        if (typeof body === 'string') {\n          return retry('getQuote', args)\n        }\n        if (body.error) {\n          console.error('\\ngetQuote error:')\n          console.error(body)\n          return retry('getQuote', args)\n        }\n        var quote = body[product_id]\n        if (!quote) return cb(new Error('no quote for ' + product_id))\n        if (quote.isFrozen == '1') console.error('\\nwarning: product ' + product_id + ' is frozen')\n        cb(null, {\n          bid: quote.highestBid,\n          ask: quote.lowestAsk,\n        })\n      })\n    },\n\n    cancelOrder: function (opts, cb) {\n      var args = [].slice.call(arguments)\n      var client = authedClient()\n      client._private('cancelOrder', {orderNumber: opts.order_id}, function (err, result) {\n        if (typeof result === 'string') {\n          return retry('cancelOrder', args)\n        }\n        if (!err && !result.success) {\n          // sometimes the order gets cancelled on the server side for some reason and we get this. ignore that case...\n          if (result.error !== 'Invalid order number, or you are not the person who placed the order.') {\n            err = new Error('unable to cancel order')\n            err.body = result\n          }\n        }\n        cb(err)\n      })\n    },\n\n    trade: function (type, opts, cb) {\n      var args = [].slice.call(arguments)\n      var client = authedClient()\n      var params = {\n        currencyPair: joinProduct(opts.product_id),\n        rate: opts.price,\n        amount: opts.size,\n        postOnly: opts.post_only === false ? '0' : '1'\n      }\n      client._private(type, params, function (err, result) {\n        if (typeof result === 'string') {\n          return retry('trade', args)\n        }\n        var order = {\n          id: result ? result.orderNumber : null,\n          status: 'open',\n          price: opts.price,\n          size: opts.size,\n          post_only: !!opts.post_only,\n          created_at: new Date().getTime(),\n          filled_size: '0'\n        }\n        if (result && result.error === 'Unable to place post-only order at this price.') {\n          order.status = 'rejected'\n          order.reject_reason = 'post only'\n          return cb(null, order)\n        }\n        else if (result && result.error && result.error.match(/^Not enough/)) {\n          order.status = 'rejected'\n          order.reject_reason = 'balance'\n          return cb(null, order)\n        } else if (result && result.error && result.error.match(/^Nonce must be greater/)) {\n            return retry('trade', args)\n        }\n        if (!err && result.error) {\n          err = new Error('unable to ' + type)\n          err.body = result\n        }\n        if (err) return cb(err)\n        orders['~' + result.orderNumber] = order\n        cb(null, order)\n      })\n    },\n\n    buy: function (opts, cb) {\n      exchange.trade('buy', opts, cb)\n    },\n\n    sell: function (opts, cb) {\n      exchange.trade('sell', opts, cb)\n    },\n\n    getOrder: function (opts, cb) {\n      var args = [].slice.call(arguments)\n      var order = orders['~' + opts.order_id]\n      if (!order) return cb(new Error('order not found in cache'))\n      var client = authedClient()\n      var params = {\n        currencyPair: joinProduct(opts.product_id)\n      }\n      client._private('returnOpenOrders', params, function (err, body) {\n        if (err) return cb(err)\n        if (typeof body === 'string' || !body) {\n          return retry('getOrder', args)\n        }\n        var active = false\n        if (!body.forEach) {\n          console.error('\\nreturnOpenOrders odd result in checking state of order, trying again')\n          //console.error(body)\n          return retry('getOrder', args)\n        }\n        else {\n          body.forEach(function (api_order) {\n            if (api_order.orderNumber == opts.order_id) active = true\n          })\n        }\n        client.returnOrderTrades(opts.order_id, function (err, body) {\n          if (typeof body === 'string' || !body) {\n            return retry('getOrder', args)\n          }\n          if (err || body.error || !body.forEach) return cb(null, order)\n          if (body.length === 0 && !active) {\n            order.status = 'cancelled'\n            return cb(null, order)\n          }\n          order.filled_size = '0'\n          body.forEach(function (trade) {\n            order.filled_size = n(order.filled_size).add(trade.amount).format('0.00000000')\n          })\n          if (n(order.filled_size).value() == n(order.size).value()) {\n            order.status = 'done'\n            order.done_at = new Date().getTime()\n          }\n          cb(null, order)\n        })\n      })\n    },\n\n    // return the property used for range querying.\n    getCursor: function (trade) {\n      return Math.floor((trade.time || trade) / 1000)\n    }\n  }\n  return exchange\n}\n"
  },
  {
    "path": "extensions/exchanges/poloniex/products.json",
    "content": "[\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Aave/Bitcoin\"\n  },\n  {\n    \"asset\": \"AAVE\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Aave/Tether USD\"\n  },\n  {\n    \"asset\": \"ADABEAR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Short Cardano Token/Tether USD\"\n  },\n  {\n    \"asset\": \"ADABULL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Long Cardano Token/Tether USD\"\n  },\n  {\n    \"asset\": \"ADD\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"ADD/Tether USD\"\n  },\n  {\n    \"asset\": \"ADEL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Akropolis Delphi/Tether USD\"\n  },\n  {\n    \"asset\": \"AKITA\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Akita Inu/Tether USD\"\n  },\n  {\n    \"asset\": \"AKRO\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Akropolis/Bitcoin\"\n  },\n  {\n    \"asset\": \"AKRO\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Akropolis/Tether USD\"\n  },\n  {\n    \"asset\": \"ALPHA\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Alpha Finance/Tether USD\"\n  },\n  {\n    \"asset\": \"AMP\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Amp/Bitcoin\"\n  },\n  {\n    \"asset\": \"AMP\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Amp/Tron\"\n  },\n  {\n    \"asset\": \"AMP\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Amp/Tether USD\"\n  },\n  {\n    \"asset\": \"API3\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"API3/Tether USD\"\n  },\n  {\n    \"asset\": \"ARDR\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Ardor/Bitcoin\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Cosmos/Bitcoin\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Cosmos/USD Coin\"\n  },\n  {\n    \"asset\": \"ATOM\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Cosmos/Tether USD\"\n  },\n  {\n    \"asset\": \"AVA\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Travala.com Token/Bitcoin\"\n  },\n  {\n    \"asset\": \"AVA\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Travala.com Token/Tron\"\n  },\n  {\n    \"asset\": \"AVA\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Travala.com Token/Tether USD\"\n  },\n  {\n    \"asset\": \"B20\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"B20/Tether USD\"\n  },\n  {\n    \"asset\": \"BAC\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Basis Cash/Tether USD\"\n  },\n  {\n    \"asset\": \"BADGER\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Badger DAO/Tether USD\"\n  },\n  {\n    \"asset\": \"BAL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Balancer/Tether USD\"\n  },\n  {\n    \"asset\": \"BAND\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Band Protocol Token/Tether USD\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Basic Attention Token/Bitcoin\"\n  },\n  {\n    \"asset\": \"BAT\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Basic Attention Token/Tether USD\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin Cash/Bitcoin\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin Cash/USD Coin\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin Cash/Tether USD\"\n  },\n  {\n    \"asset\": \"BCHA\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin Cash ABC/Bitcoin\"\n  },\n  {\n    \"asset\": \"BCHA\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin Cash ABC/Tether USD\"\n  },\n  {\n    \"asset\": \"BCHBEAR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Short Bitcoin Cash Token/Tether USD\"\n  },\n  {\n    \"asset\": \"BCHBULL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Long Bitcoin Cash Token/Tether USD\"\n  },\n  {\n    \"asset\": \"BCHC\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"BitCherry/Tether USD\"\n  },\n  {\n    \"asset\": \"BCHSV\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin SV/Bitcoin\"\n  },\n  {\n    \"asset\": \"BCHSV\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin SV/USD Coin\"\n  },\n  {\n    \"asset\": \"BCHSV\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin SV/Tether USD\"\n  },\n  {\n    \"asset\": \"BCN\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bytecoin/Tether USD\"\n  },\n  {\n    \"asset\": \"BDP\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Big Data Protocol/Tether USD\"\n  },\n  {\n    \"asset\": \"BEAR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Short Bitcoin Token/Tether USD\"\n  },\n  {\n    \"asset\": \"BID\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bidao/Bitcoin\"\n  },\n  {\n    \"asset\": \"BID\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bidao/Tether USD\"\n  },\n  {\n    \"asset\": \"BLY\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Blocery/Tether USD\"\n  },\n  {\n    \"asset\": \"BNB\",\n    \"currency\": \"BUSD\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Binance Coin/Binance USD\"\n  },\n  {\n    \"asset\": \"BNB\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Binance Coin/Tron\"\n  },\n  {\n    \"asset\": \"BNB\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Binance Coin/Tether USD\"\n  },\n  {\n    \"asset\": \"BNT\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bancor/Bitcoin\"\n  },\n  {\n    \"asset\": \"BOND\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"BarnBridge/Tether USD\"\n  },\n  {\n    \"asset\": \"BRG\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bridge Oracle/Tron\"\n  },\n  {\n    \"asset\": \"BRG\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bridge Oracle/Tether USD\"\n  },\n  {\n    \"asset\": \"BSVBEAR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Short Bitcoin SV Token/Tether USD\"\n  },\n  {\n    \"asset\": \"BSVBULL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Long Bitcoin SV Token/Tether USD\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"BNB\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin/Binance Coin\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"BUSD\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin/Binance USD\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"DAI\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin/Dai Stablecoin\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"PAX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin/Paxos Standard\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"TUSD\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin/TrueUSD\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin/USD Coin\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"USDJ\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin/USDJ\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin/Tether USD\"\n  },\n  {\n    \"asset\": \"BTCST\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin Standard Hashrate Token/Tether USD\"\n  },\n  {\n    \"asset\": \"BTS\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"BitShares/Bitcoin\"\n  },\n  {\n    \"asset\": \"BTT\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"BitTorrent/Tron\"\n  },\n  {\n    \"asset\": \"BTT\",\n    \"currency\": \"USDJ\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"BitTorrent/USDJ\"\n  },\n  {\n    \"asset\": \"BTT\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"BitTorrent/Tether USD\"\n  },\n  {\n    \"asset\": \"BULL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Long Bitcoin Token/Tether USD\"\n  },\n  {\n    \"asset\": \"BUSD\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Binance USD/Tether USD\"\n  },\n  {\n    \"asset\": \"BVOL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Bitcoin Volatility Token/Tether USD\"\n  },\n  {\n    \"asset\": \"BZRX\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"bZx Protocol Token/Tether USD\"\n  },\n  {\n    \"asset\": \"CHR\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Chromia/Bitcoin\"\n  },\n  {\n    \"asset\": \"CHR\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Chromia/Tron\"\n  },\n  {\n    \"asset\": \"CHR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Chromia/Tether USD\"\n  },\n  {\n    \"asset\": \"COMBO\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Furucombo/Tether USD\"\n  },\n  {\n    \"asset\": \"COMP\",\n    \"currency\": \"ETH\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Compound Governance Token/Ethereum\"\n  },\n  {\n    \"asset\": \"COMP\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Compound Governance Token/Tether USD\"\n  },\n  {\n    \"asset\": \"CORN\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Corn/Tether USD\"\n  },\n  {\n    \"asset\": \"CREAM\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Cream/Tether USD\"\n  },\n  {\n    \"asset\": \"CRV\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Curve Finance/Tether USD\"\n  },\n  {\n    \"asset\": \"CTSI\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Cartesi Token /Tether USD\"\n  },\n  {\n    \"asset\": \"CUDOS\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"CudosToken/Tether USD\"\n  },\n  {\n    \"asset\": \"CUSDT\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Compound USDT/Tether USD\"\n  },\n  {\n    \"asset\": \"CVC\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Civic/Bitcoin\"\n  },\n  {\n    \"asset\": \"CVP\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"PowerPool Concentrated Vot Power/Tether USD\"\n  },\n  {\n    \"asset\": \"CVT\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"CyberVeinToken/Bitcoin\"\n  },\n  {\n    \"asset\": \"CVT\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"CyberVeinToken/Tether USD\"\n  },\n  {\n    \"asset\": \"DAI\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Dai Stablecoin/Tether USD\"\n  },\n  {\n    \"asset\": \"DASH\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Dash/Bitcoin\"\n  },\n  {\n    \"asset\": \"DASH\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Dash/USD Coin\"\n  },\n  {\n    \"asset\": \"DASH\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Dash/Tether USD\"\n  },\n  {\n    \"asset\": \"DCR\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Decred/Bitcoin\"\n  },\n  {\n    \"asset\": \"DEC\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Decentr/Tether USD\"\n  },\n  {\n    \"asset\": \"DEGO\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Dego Finance/Tether USD\"\n  },\n  {\n    \"asset\": \"DEXT\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"DexTools/Tether USD\"\n  },\n  {\n    \"asset\": \"DHT\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"dHedge DAO/Tether USD\"\n  },\n  {\n    \"asset\": \"DIA\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"DIA/Tether USD\"\n  },\n  {\n    \"asset\": \"DICE\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"TRONbetDice/Tron\"\n  },\n  {\n    \"asset\": \"DICE\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"TRONbetDice/Tether USD\"\n  },\n  {\n    \"asset\": \"DOGE\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Dogecoin/Bitcoin\"\n  },\n  {\n    \"asset\": \"DOGE\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Dogecoin/USD Coin\"\n  },\n  {\n    \"asset\": \"DOGE\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Dogecoin/Tether USD\"\n  },\n  {\n    \"asset\": \"DOS\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"DOS Network/Tether USD\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Polkadot/Bitcoin\"\n  },\n  {\n    \"asset\": \"DOT\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Polkadot/Tether USD\"\n  },\n  {\n    \"asset\": \"ELON\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Dogelon/Tether USD\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"EOS/Bitcoin\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"ETH\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"EOS/Ethereum\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"EOS/USD Coin\"\n  },\n  {\n    \"asset\": \"EOS\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"EOS/Tether USD\"\n  },\n  {\n    \"asset\": \"EOSBEAR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Short EOS Token/Tether USD\"\n  },\n  {\n    \"asset\": \"EOSBULL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Long EOS Token/Tether USD\"\n  },\n  {\n    \"asset\": \"ESD\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Empty Set Dollar/Tether USD\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Ethereum Classic/Bitcoin\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"ETH\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Ethereum Classic/Ethereum\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Ethereum Classic/USD Coin\"\n  },\n  {\n    \"asset\": \"ETC\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Ethereum Classic/Tether USD\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Ethereum/Bitcoin\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"DAI\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Ethereum/Dai Stablecoin\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"PAX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Ethereum/Paxos Standard\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Ethereum/Tron\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"TUSD\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Ethereum/TrueUSD\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Ethereum/USD Coin\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Ethereum/Tether USD\"\n  },\n  {\n    \"asset\": \"ETHBEAR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Short Ethereum Token/Tether USD\"\n  },\n  {\n    \"asset\": \"ETHBULL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Long Ethereum Token/Tether USD\"\n  },\n  {\n    \"asset\": \"EXE\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"8X8 Protocol/Bitcoin\"\n  },\n  {\n    \"asset\": \"EXE\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"8X8 Protocol/Tether USD\"\n  },\n  {\n    \"asset\": \"FARM\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Harvest Finance/Bitcoin\"\n  },\n  {\n    \"asset\": \"FARM\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Harvest Finance/Tether USD\"\n  },\n  {\n    \"asset\": \"FCT2\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Firmachain/Bitcoin\"\n  },\n  {\n    \"asset\": \"FCT2\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Firmachain/Tether USD\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Filecoin/Bitcoin\"\n  },\n  {\n    \"asset\": \"FIL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Filecoin/Tether USD\"\n  },\n  {\n    \"asset\": \"FOAM\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Foam/Bitcoin\"\n  },\n  {\n    \"asset\": \"FORTH\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Ampleforth Governance Token/Tether USD\"\n  },\n  {\n    \"asset\": \"FRONT\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Frontier/Bitcoin\"\n  },\n  {\n    \"asset\": \"FRONT\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Frontier/Tether USD\"\n  },\n  {\n    \"asset\": \"FSW\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"FalconSwap/Tether USD\"\n  },\n  {\n    \"asset\": \"FTT\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"FTX Token/Tether USD\"\n  },\n  {\n    \"asset\": \"FUND\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Unification/Bitcoin\"\n  },\n  {\n    \"asset\": \"FUND\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Unification/Tron\"\n  },\n  {\n    \"asset\": \"FUND\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Unification/Tether USD\"\n  },\n  {\n    \"asset\": \"GAS\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Gas/Bitcoin\"\n  },\n  {\n    \"asset\": \"GEEQ\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"GEEQ/Tether USD\"\n  },\n  {\n    \"asset\": \"GHST\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Aavegotchi/Tether USD\"\n  },\n  {\n    \"asset\": \"GLM\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Golem Network Token/Bitcoin\"\n  },\n  {\n    \"asset\": \"GLM\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Golem Network Token/Tether USD\"\n  },\n  {\n    \"asset\": \"GRT\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"The Graph/Tether USD\"\n  },\n  {\n    \"asset\": \"GTC\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Gitcoin/Tether USD\"\n  },\n  {\n    \"asset\": \"HEGIC\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Hegic/Tether USD\"\n  },\n  {\n    \"asset\": \"HGET\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Hedget/Bitcoin\"\n  },\n  {\n    \"asset\": \"HGET\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Hedget/Tether USD\"\n  },\n  {\n    \"asset\": \"HT\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Huobi Token/Tether USD\"\n  },\n  {\n    \"asset\": \"IBVOL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Inverse Bitcoin Volatility Token/Tether USD\"\n  },\n  {\n    \"asset\": \"INJ\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Injective Protocol/Bitcoin\"\n  },\n  {\n    \"asset\": \"INJ\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Injective Protocol/Tether USD\"\n  },\n  {\n    \"asset\": \"JFI\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"JackPool.finance/Tether USD\"\n  },\n  {\n    \"asset\": \"JST\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Just/Tron\"\n  },\n  {\n    \"asset\": \"JST\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Just/Tether USD\"\n  },\n  {\n    \"asset\": \"KCS\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"KuCoin Token/Tether USD\"\n  },\n  {\n    \"asset\": \"KISHU\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Kishu Inu /Tron\"\n  },\n  {\n    \"asset\": \"KLV\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Klever/Bitcoin\"\n  },\n  {\n    \"asset\": \"KLV\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Klever/Tron\"\n  },\n  {\n    \"asset\": \"KLV\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Klever/Tether USD\"\n  },\n  {\n    \"asset\": \"KNC\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Kyber/Bitcoin\"\n  },\n  {\n    \"asset\": \"KP3R\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Keep3rV1/Tether USD\"\n  },\n  {\n    \"asset\": \"KTON\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Darwinia Commitment Token/Tether USD\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Chainlink/Bitcoin\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Chainlink/Tron\"\n  },\n  {\n    \"asset\": \"LINK\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Chainlink/Tether USD\"\n  },\n  {\n    \"asset\": \"LINKBEAR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Short Chainlink Token/Tether USD\"\n  },\n  {\n    \"asset\": \"LINKBULL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Long Chainlink Token/Tether USD\"\n  },\n  {\n    \"asset\": \"LIVE\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"TRONbetLive/Tether USD\"\n  },\n  {\n    \"asset\": \"LON\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Tokenlon/Tether USD\"\n  },\n  {\n    \"asset\": \"LOOM\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"LOOM Network/Bitcoin\"\n  },\n  {\n    \"asset\": \"LPT\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Livepeer/Bitcoin\"\n  },\n  {\n    \"asset\": \"LPT\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Livepeer/Tether USD\"\n  },\n  {\n    \"asset\": \"LQTY\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"LQTY/Tether USD\"\n  },\n  {\n    \"asset\": \"LRC\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Loopring/Bitcoin\"\n  },\n  {\n    \"asset\": \"LRC\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Loopring/Tether USD\"\n  },\n  {\n    \"asset\": \"LSK\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Lisk/Bitcoin\"\n  },\n  {\n    \"asset\": \"LSK\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Lisk/Tether USD\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Litecoin/Bitcoin\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Litecoin/USD Coin\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Litecoin/Tether USD\"\n  },\n  {\n    \"asset\": \"LTCBEAR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Short Litecoin Token/Tether USD\"\n  },\n  {\n    \"asset\": \"LTCBULL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Long Litecoin Token/Tether USD\"\n  },\n  {\n    \"asset\": \"LUSD\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"LUSD Stablecoin/Tether USD\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Decentraland/Bitcoin\"\n  },\n  {\n    \"asset\": \"MANA\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Decentraland/Tether USD\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Polygon/Bitcoin\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Polygon/Tron\"\n  },\n  {\n    \"asset\": \"MATIC\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Polygon/Tether USD\"\n  },\n  {\n    \"asset\": \"MCB\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"MCDex/Tether USD\"\n  },\n  {\n    \"asset\": \"MDT\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Measurable Data Token/Bitcoin\"\n  },\n  {\n    \"asset\": \"MDT\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Measurable Data Token/Tron\"\n  },\n  {\n    \"asset\": \"MDT\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Measurable Data Token/Tether USD\"\n  },\n  {\n    \"asset\": \"MEME\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Meme/Tether USD\"\n  },\n  {\n    \"asset\": \"MIR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Wrapped Mirror Token/Tether USD\"\n  },\n  {\n    \"asset\": \"MIST\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Alchemist/Tether USD\"\n  },\n  {\n    \"asset\": \"MKR\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Maker/Bitcoin\"\n  },\n  {\n    \"asset\": \"MKR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Maker/Tether USD\"\n  },\n  {\n    \"asset\": \"MPH\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"88mph/Tether USD\"\n  },\n  {\n    \"asset\": \"MTA\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Meta/Tether USD\"\n  },\n  {\n    \"asset\": \"MVL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Mass Vehicle Ledger Token/Tether USD\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Neo/Bitcoin\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Neo/Tron\"\n  },\n  {\n    \"asset\": \"NEO\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Neo/Tether USD\"\n  },\n  {\n    \"asset\": \"NFT\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"APENFT/Tron\"\n  },\n  {\n    \"asset\": \"NFT\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"APENFT/Tether USD\"\n  },\n  {\n    \"asset\": \"NFTX\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"NFTX/Tether USD\"\n  },\n  {\n    \"asset\": \"NMR\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Numeraire/Bitcoin\"\n  },\n  {\n    \"asset\": \"NU\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"NuCypher/Tether USD\"\n  },\n  {\n    \"asset\": \"NXT\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"NXT/Bitcoin\"\n  },\n  {\n    \"asset\": \"OCEAN\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Ocean Protocol/Tether USD\"\n  },\n  {\n    \"asset\": \"OM\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"MANTRA DAO/Tether USD\"\n  },\n  {\n    \"asset\": \"OMG\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"OmiseGO/Bitcoin\"\n  },\n  {\n    \"asset\": \"ONEINCH\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"1INCH Token/Tether USD\"\n  },\n  {\n    \"asset\": \"PAX\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Paxos Standard/Tether USD\"\n  },\n  {\n    \"asset\": \"PBTC35A\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Poolin pBTC35A/Tether USD\"\n  },\n  {\n    \"asset\": \"PEARL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Pearl Finance/Tether USD\"\n  },\n  {\n    \"asset\": \"PERX\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"PeerEx Network/Tether USD\"\n  },\n  {\n    \"asset\": \"POLS\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Polkastarter/Tether USD\"\n  },\n  {\n    \"asset\": \"POLY\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Polymath/Bitcoin\"\n  },\n  {\n    \"asset\": \"PRQ\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"PARSIQ/Tether USD\"\n  },\n  {\n    \"asset\": \"QTUM\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Qtum/Bitcoin\"\n  },\n  {\n    \"asset\": \"QTUM\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Qtum/Tether USD\"\n  },\n  {\n    \"asset\": \"QUICK\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Quickswap/Tether USD\"\n  },\n  {\n    \"asset\": \"RARI\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Rarible/Tether USD\"\n  },\n  {\n    \"asset\": \"REEF\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Reef Finance/Tether USD\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Ren/Bitcoin\"\n  },\n  {\n    \"asset\": \"REN\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Ren/Tether USD\"\n  },\n  {\n    \"asset\": \"REPV2\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Augur/Bitcoin\"\n  },\n  {\n    \"asset\": \"REPV2\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Augur/Tether USD\"\n  },\n  {\n    \"asset\": \"RFUEL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Rio DeFi/Tether USD\"\n  },\n  {\n    \"asset\": \"RING\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Darwinia Network Native Token/Tether USD\"\n  },\n  {\n    \"asset\": \"RLC\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"RLC/Tether USD\"\n  },\n  {\n    \"asset\": \"ROOK\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"KeeperDAO/Tether USD\"\n  },\n  {\n    \"asset\": \"RSR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Reserve Rights Token/Tether USD\"\n  },\n  {\n    \"asset\": \"SAND\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"The Sandbox/Bitcoin\"\n  },\n  {\n    \"asset\": \"SAND\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"The Sandbox/Tether USD\"\n  },\n  {\n    \"asset\": \"SC\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Siacoin/Bitcoin\"\n  },\n  {\n    \"asset\": \"SC\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Siacoin/Tether USD\"\n  },\n  {\n    \"asset\": \"SENSO\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"SENSO/Bitcoin\"\n  },\n  {\n    \"asset\": \"SENSO\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"SENSO/Tether USD\"\n  },\n  {\n    \"asset\": \"SFI\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"saffron.finance/Tether USD\"\n  },\n  {\n    \"asset\": \"SHIB\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Shiba Inu/Tether USD\"\n  },\n  {\n    \"asset\": \"SNT\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Status/Bitcoin\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Synthetix Network Token/Bitcoin\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Synthetix Network Token/Tron\"\n  },\n  {\n    \"asset\": \"SNX\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Synthetix Network Token/Tether USD\"\n  },\n  {\n    \"asset\": \"SRM\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Serum/Tether USD\"\n  },\n  {\n    \"asset\": \"STAKE\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"xDAI Stake/Tether USD\"\n  },\n  {\n    \"asset\": \"STEEM\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"STEEM/Bitcoin\"\n  },\n  {\n    \"asset\": \"STEEM\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"STEEM/Tron\"\n  },\n  {\n    \"asset\": \"STEEM\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"STEEM/Tether USD\"\n  },\n  {\n    \"asset\": \"STORJ\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Storj/Bitcoin\"\n  },\n  {\n    \"asset\": \"STPT\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Standard Tokenization Protocol/Bitcoin\"\n  },\n  {\n    \"asset\": \"STPT\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Standard Tokenization Protocol/Tether USD\"\n  },\n  {\n    \"asset\": \"STR\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Stellar/Bitcoin\"\n  },\n  {\n    \"asset\": \"STR\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Stellar/USD Coin\"\n  },\n  {\n    \"asset\": \"STR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Stellar/Tether USD\"\n  },\n  {\n    \"asset\": \"SUN\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Sun/Tron\"\n  },\n  {\n    \"asset\": \"SUN\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Sun/Tether USD\"\n  },\n  {\n    \"asset\": \"SUSHI\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"SushiSwap/Tether USD\"\n  },\n  {\n    \"asset\": \"SWAP\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Trustswap/Bitcoin\"\n  },\n  {\n    \"asset\": \"SWAP\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Trustswap/Tether USD\"\n  },\n  {\n    \"asset\": \"SWFTC\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"SwftCoin/Bitcoin\"\n  },\n  {\n    \"asset\": \"SWFTC\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"SwftCoin/Tron\"\n  },\n  {\n    \"asset\": \"SWFTC\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"SwftCoin/Tether USD\"\n  },\n  {\n    \"asset\": \"SWINGBY\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Swingby/Bitcoin\"\n  },\n  {\n    \"asset\": \"SWINGBY\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Swingby/Tron\"\n  },\n  {\n    \"asset\": \"SWINGBY\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Swingby/Tether USD\"\n  },\n  {\n    \"asset\": \"SWRV\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Swerve/Tether USD\"\n  },\n  {\n    \"asset\": \"SXP\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Swipe/Bitcoin\"\n  },\n  {\n    \"asset\": \"SXP\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Swipe/Tron\"\n  },\n  {\n    \"asset\": \"SXP\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Swipe/Tether USD\"\n  },\n  {\n    \"asset\": \"TAI\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"tBridge Token/Tether USD\"\n  },\n  {\n    \"asset\": \"TEND\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Tendies/Tether USD\"\n  },\n  {\n    \"asset\": \"TORN\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Tornado Cash/Tether USD\"\n  },\n  {\n    \"asset\": \"TRADE\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"UniTrade/Tether USD\"\n  },\n  {\n    \"asset\": \"TRB\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Tellor/Tether USD\"\n  },\n  {\n    \"asset\": \"TRU\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"TrueFi/Bitcoin\"\n  },\n  {\n    \"asset\": \"TRU\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"TrueFi/Tether USD\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Tron/Bitcoin\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Tron/USD Coin\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"USDJ\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Tron/USDJ\"\n  },\n  {\n    \"asset\": \"TRX\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Tron/Tether USD\"\n  },\n  {\n    \"asset\": \"TRXBEAR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Short TRX Token/Tether USD\"\n  },\n  {\n    \"asset\": \"TRXBULL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Long TRX Token/Tether USD\"\n  },\n  {\n    \"asset\": \"TUSD\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"TrueUSD/USD Coin\"\n  },\n  {\n    \"asset\": \"TUSD\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"TrueUSD/Tether USD\"\n  },\n  {\n    \"asset\": \"UMA\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"UMA/Tether USD\"\n  },\n  {\n    \"asset\": \"UNI\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Uniswap/Tether USD\"\n  },\n  {\n    \"asset\": \"USDJ\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"USDJ/Tether USD\"\n  },\n  {\n    \"asset\": \"USDT\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Tether USD/USD Coin\"\n  },\n  {\n    \"asset\": \"UST\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"TerraUSD/Tether USD\"\n  },\n  {\n    \"asset\": \"VALUE\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Value Liquidity/Tether USD\"\n  },\n  {\n    \"asset\": \"VSP\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Vesper Finance/Tron\"\n  },\n  {\n    \"asset\": \"VSP\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Vesper Finance/Tether USD\"\n  },\n  {\n    \"asset\": \"WBTC\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Wrapped Bitcoin/Bitcoin\"\n  },\n  {\n    \"asset\": \"WBTC\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Wrapped Bitcoin/Tether USD\"\n  },\n  {\n    \"asset\": \"WETH\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Wrapped Ethereum on Tron/Tether USD\"\n  },\n  {\n    \"asset\": \"WHALE\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"WHALE/Tether USD\"\n  },\n  {\n    \"asset\": \"WIN\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"WINK/Tron\"\n  },\n  {\n    \"asset\": \"WIN\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"WINK/Tether USD\"\n  },\n  {\n    \"asset\": \"WNXM\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Wrapped NXM/Tether USD\"\n  },\n  {\n    \"asset\": \"WRX\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"WazirX/Bitcoin\"\n  },\n  {\n    \"asset\": \"WRX\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"WazirX/Tron\"\n  },\n  {\n    \"asset\": \"WRX\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"WazirX/Tether USD\"\n  },\n  {\n    \"asset\": \"XEM\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"NEM/Bitcoin\"\n  },\n  {\n    \"asset\": \"XFLR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Spark [IOU]/Tether USD\"\n  },\n  {\n    \"asset\": \"XLMBEAR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Short Stellar Token/Tether USD\"\n  },\n  {\n    \"asset\": \"XLMBULL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Long Stellar Token/Tether USD\"\n  },\n  {\n    \"asset\": \"XMR\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Monero/Bitcoin\"\n  },\n  {\n    \"asset\": \"XMR\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Monero/USD Coin\"\n  },\n  {\n    \"asset\": \"XMR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Monero/Tether USD\"\n  },\n  {\n    \"asset\": \"XOR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Sora Token/Tether USD\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"XRP/Bitcoin\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"XRP/Tron\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"XRP/USD Coin\"\n  },\n  {\n    \"asset\": \"XRP\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"XRP/Tether USD\"\n  },\n  {\n    \"asset\": \"XRPBEAR\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Short XRP Token/Tether USD\"\n  },\n  {\n    \"asset\": \"XRPBULL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"3X Long XRP Token/Tether USD\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Tezos/Bitcoin\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"TRX\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Tezos/Tron\"\n  },\n  {\n    \"asset\": \"XTZ\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Tezos/Tether USD\"\n  },\n  {\n    \"asset\": \"XYM\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Symbol/Bitcoin\"\n  },\n  {\n    \"asset\": \"XYM\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Symbol/Tether USD\"\n  },\n  {\n    \"asset\": \"YFI\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"yearn.finance/Tether USD\"\n  },\n  {\n    \"asset\": \"YFII\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"DFI.money/Tether USD\"\n  },\n  {\n    \"asset\": \"YFL\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"YFLink/Tether USD\"\n  },\n  {\n    \"asset\": \"ZAP\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Zap/Tether USD\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Zcash/Bitcoin\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"ETH\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Zcash/Ethereum\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"USDC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Zcash/USD Coin\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"Zcash/Tether USD\"\n  },\n  {\n    \"asset\": \"ZKS\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"ZKSwap/Tether USD\"\n  },\n  {\n    \"asset\": \"ZLOT\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"zLOT/Tether USD\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"BTC\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"0x/Bitcoin\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"ETH\",\n    \"min_total\": \"0.0001\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"0x/Ethereum\"\n  },\n  {\n    \"asset\": \"ZRX\",\n    \"currency\": \"USDT\",\n    \"min_total\": \"1\",\n    \"max_size\": null,\n    \"increment\": \"0.00000001\",\n    \"label\": \"0x/Tether USD\"\n  }\n]"
  },
  {
    "path": "extensions/exchanges/poloniex/update-products.sh",
    "content": "#!/usr/bin/env node\nvar request = require('micro-request')\nrequest('https://poloniex.com/public?command=returnTicker', {headers: {'User-Agent': 'zenbot/4'}}, function (err, resp, ticker) {\n  if (err) throw err\n  if (resp.statusCode !== 200) {\n    var err = new Error('non-200 status: ' + resp.statusCode)\n    err.code = 'HTTP_STATUS'\n    err.body = body\n    console.error(err)\n    process.exit(1)\n  }\n  request('https://poloniex.com/public?command=returnCurrencies', {headers: {'User-Agent': 'zenbot/4'}}, function (err, resp, currencies) {\n    if (err) throw err\n    if (resp.statusCode !== 200) {\n      var err = new Error('non-200 status: ' + resp.statusCode)\n      err.code = 'HTTP_STATUS'\n      err.body = body\n      console.error(err)\n      process.exit(1)\n    }\n    var products = []\n    Object.keys(ticker).forEach(function (pair) {\n      var asset = pair.split('_')[1], currency = pair.split('_')[0]\n      if(currency === \"USDT\"){\n        min_total = '1'\n      }else {\n        min_total = '0.0001'\n      }\n      products.push({\n        asset: asset,\n        currency: currency,\n        min_total: min_total,\n        max_size: null,\n        increment: '0.00000001',\n        label: currencies[asset].name + '/' + currencies[currency].name\n      })\n    })\n    products.sort(function (a, b) {\n      if (a.asset < b.asset) return -1\n      if (a.asset > b.asset) return 1\n      if (a.currency < b.currency) return -1\n      if (a.currency > b.currency) return 1\n      return 0\n    })\n    var target = require('path').resolve(__dirname, 'products.json')\n    require('fs').writeFileSync(target, JSON.stringify(products, null, 2))\n    console.log('wrote', target)\n    process.exit()\n  })\n})\n"
  },
  {
    "path": "extensions/exchanges/sim/exchange.js",
    "content": "let path = require('path')\n  , n = require('numbro')\n  , _ = require('lodash')\n\nmodule.exports = function sim (conf, s) {\n\n  let latency = 100 // In milliseconds, enough to be realistic without being disruptive\n  let so = s.options\n  let exchange_id = so.selector.exchange_id\n  let real_exchange = require(path.resolve(__dirname, `../${exchange_id}/exchange`))(conf)\n\n  var now\n  var balance = { asset: so.asset_capital, currency: so.currency_capital, asset_hold: 0, currency_hold: 0 }\n\n  var last_order_id = 1001\n  var orders = {}\n  var openOrders = {}\n\n  // When orders change in any way, it's likely our \"_hold\" values have changed. Recalculate them\n  function recalcHold() {\n    balance.currency_hold = 0\n    balance.asset_hold = 0\n    _.each(openOrders, function(order) {\n      if (order.tradetype === 'buy') {\n        balance.currency_hold += n(order.remaining_size).multiply(n(order.price)).value()\n      }\n      else {\n        balance.asset_hold += n(order.remaining_size).value()\n      }\n    })\n  }\n\n  var exchange = {\n    name: 'sim',\n    historyScan: real_exchange.historyScan,\n    historyScanUsesTime: real_exchange.historyScanUsesTime,\n    makerFee: real_exchange.makerFee,\n    takerFee: real_exchange.takerFee,\n    dynamicFees: real_exchange.dynamicFees,\n\n    getProducts: real_exchange.getProducts,\n\n    getTrades: function (opts, cb) {\n      if (so.mode === 'paper') {\n        return real_exchange.getTrades(opts, cb)\n      }\n      else {\n        return cb(null, [])\n      }\n    },\n\n    getBalance: function (opts, cb) {\n      setTimeout(function() {\n        s.sim_asset = balance.asset\n        return cb(null, balance)\n      }, latency)\n    },\n\n    getQuote: function (opts, cb) {\n      if (so.mode === 'paper') {\n        return real_exchange.getQuote(opts, cb)\n      }\n      else {\n        setTimeout(function() {\n          return cb(null, {\n            bid: s.period.close,\n            ask: s.period.close\n          })\n        }, latency)\n      }\n    },\n\n    cancelOrder: function (opts, cb) {\n      setTimeout(function() {\n        var order_id = '~' + opts.order_id\n        var order = orders[order_id]\n\n        if (order.status === 'open') {\n          order.status = 'cancelled'\n          delete openOrders[order_id]\n          recalcHold()\n        }\n\n        cb(null)\n      }, latency)\n    },\n\n    buy: function (opts, cb) {\n      setTimeout(function() {\n        if (so.debug) console.log(`buying ${opts.size * opts.price} vs on hold: ${balance.currency} - ${balance.currency_hold} = ${balance.currency - balance.currency_hold}`)\n        if (opts.size * opts.price > (balance.currency - balance.currency_hold)) {\n          if (so.debug) console.log('nope')\n          return cb(null, { status: 'rejected', reject_reason: 'balance'})\n        }\n\n        var result = {\n          id: last_order_id++\n        }\n\n        var order = {\n          id: result.id,\n          status: 'open',\n          price: opts.price,\n          size: opts.size,\n          orig_size: opts.size,\n          remaining_size: opts.size,\n          post_only: !!opts.post_only,\n          filled_size: 0,\n          ordertype: opts.order_type,\n          tradetype: 'buy',\n          orig_time: now,\n          time: now,\n          created_at: now\n        }\n\n        orders['~' + result.id] = order\n        openOrders['~' + result.id] = order\n        recalcHold()\n        cb(null, order)\n      }, latency)\n    },\n\n    sell: function (opts, cb) {\n      setTimeout(function() {\n        if (so.debug) console.log(`selling ${opts.size} vs on hold: ${balance.asset} - ${balance.asset_hold} = ${balance.asset - balance.asset_hold}`)\n        if (opts.size > (balance.asset - balance.asset_hold)) {\n          if (so.debug) console.log('nope')\n          return cb(null, { status: 'rejected', reject_reason: 'balance'})\n        }\n\n        var result = {\n          id: last_order_id++\n        }\n\n        var order = {\n          id: result.id,\n          status: 'open',\n          price: opts.price,\n          size: opts.size,\n          orig_size: opts.size,\n          remaining_size: opts.size,\n          post_only: !!opts.post_only,\n          filled_size: 0,\n          ordertype: opts.order_type,\n          tradetype: 'sell',\n          orig_time: now,\n          time: now,\n          created_at: now\n        }\n        orders['~' + result.id] = order\n        openOrders['~' + result.id] = order\n        recalcHold()\n        cb(null, order)\n      }, latency)\n    },\n\n    getOrder: function (opts, cb) {\n      setTimeout(function() {\n        var order = orders['~' + opts.order_id]\n        cb(null, order)\n      }, latency)\n    },\n\n    setFees: function(opts) {\n      if (so.mode === 'paper') {\n        return real_exchange.setFees(opts)\n      }\n    },\n\n    getCursor: real_exchange.getCursor,\n\n    getTime: function() {\n      return now\n    },\n\n    processTrade: function(trade) {\n      var orders_changed = false\n      \n      now = trade.time\n\n      _.each(openOrders, function(order) {\n        if (trade.time - order.time < so.order_adjust_time) {\n          return // Not time yet\n        }\n        if (order.tradetype === 'buy' && trade.price <= order.price) {\n          processBuy(order, trade)\n          orders_changed = true\n        }\n        else if (order.tradetype === 'sell' && trade.price >= order.price) {\n          processSell(order, trade)\n          orders_changed = true\n        }\n      })\n\n      if (orders_changed)\n        recalcHold()\n    }\n  }\n\n  function processBuy (buy_order, trade) {\n    let fee = 0\n    let size = Math.min(buy_order.remaining_size, trade.size)\n    let price = buy_order.price\n\n    // Add estimated slippage to price\n    if (so.order_type === 'maker') {\n      price = n(price).add(n(price).multiply(so.avg_slippage_pct / 100)).format('0.00000000')\n    }\n\n    let total = n(price).multiply(size)\n\n    // Compute fees\n    if (so.order_type === 'maker' && exchange.makerFee) {\n      fee = n(size).multiply(exchange.makerFee / 100).value()\n    }\n    else if (so.order_type === 'taker' && s.exchange.takerFee) {\n      fee = n(size).multiply(exchange.takerFee / 100).value()\n    }\n\n    // Update balance\n    balance.asset = n(balance.asset).add(size).subtract(fee).format('0.00000000')\n    balance.currency = n(balance.currency).subtract(total).format('0.00000000')\n\n    // Process existing order size changes\n    let order = buy_order\n    order.filled_size = order.filled_size + size\n    order.remaining_size = order.size - order.filled_size\n\n    if (order.remaining_size <= 0) {\n      if (so.debug) console.log('full fill bought')\n      order.status = 'done'\n      order.done_at = trade.time\n      delete openOrders['~' + order.id]\n    }\n    else {\n      if (so.debug) console.log('partial fill buy')\n    }\n  }\n\n  function processSell (sell_order, trade) {\n    let fee = 0\n    let size = Math.min(sell_order.remaining_size, trade.size)\n    let price = sell_order.price\n\n    // Add estimated slippage to price\n    if (so.order_type === 'maker') {\n      price = n(price).subtract(n(price).multiply(so.avg_slippage_pct / 100)).format('0.00000000')\n    }\n\n    let total = n(price).multiply(size)\n\n    // Compute fees\n    if (so.order_type === 'maker' && exchange.makerFee) {\n      fee = n(total).multiply(exchange.makerFee / 100).value()\n    }\n    else if (so.order_type === 'taker' && exchange.takerFee) {\n      fee = n(total).multiply(exchange.takerFee / 100).value()\n    }\n\n    // Update balance\n    balance.asset = n(balance.asset).subtract(size).value()\n    balance.currency = n(balance.currency).add(total).subtract(fee).format('0.00000000')\n\n    // Process existing order size changes\n    let order = sell_order\n    order.filled_size = order.filled_size + size\n    order.remaining_size = order.size - order.filled_size\n\n    if (order.remaining_size <= 0) {\n      if (so.debug) console.log('full fill sold')\n      order.status = 'done'\n      order.done_at = trade.time\n      delete openOrders['~' + order.id]\n    }\n    else {\n      if (so.debug) console.log('partial fill sell')\n    }\n  }\n\n  return exchange\n}\n"
  },
  {
    "path": "extensions/exchanges/therock/exchange.js",
    "content": "const ccxt = require ('ccxt'),\n  path = require('path')\n\nmodule.exports = function container(conf) {\n\n  var public_client, authed_client\n\n  function publicClient() {\n    if (!public_client) public_client = new ccxt.therock ({'apiKey': '', 'secret': '' })\n    return public_client\n  }\n\n  function authedClient() {\n    if (!authed_client) {\n      if (!conf.therock || !conf.therock.key || !conf.therock.key === 'YOUR-API-KEY') {\n        throw new Error('please configure your TheRockTrading credentials in ' + path.resolve(__dirname, 'conf.js'))\n      }\n\n      authed_client = new ccxt.therock ({ 'apiKey': conf.therock.key,'secret': conf.therock.secret })\n    }\n    return authed_client\n  }\n\n\n  function joinProduct(product_id) {\n    return product_id.split('-')[0] + product_id.split('-')[1]\n  }\n\n  function retry(method, args) {\n    if (method !== 'getTrades') {\n      console.error(('\\n TheRockTrading API is down! unable to call ' + method + ', retrying in 10s').red)\n    }\n    setTimeout(function () {\n      exchange[method].apply(exchange, args)\n    }, 20000)\n  }\n\n  var orders = {}\n\n  var exchange = {\n    name: 'therock',\n    historyScan: 'forward',\n    makerFee: 0.3,\n    takerFee: 0.2,\n\n    getProducts: function () {\n      return require('./products.json')\n    },\n\n    getTradesTheRock: function (args, cb, trades=[]) {\n      let _this = this\n      let client = publicClient()\n      let market = client.market(args.id)\n\n      try {\n        client.request(\n          `funds/${args.id}/trades?after=${args.after}&per_page=${args.per_page}&page=${args.page}&id=${args.id}`,\n          'public', 'GET', args\n        ).then(function(response) {\n          trades = trades.concat(response['trades'])\n\n          if (response['trades'].length > 0 && response['meta'].current.page < response['meta'].next.page) {\n            args['page'] = response['meta'].next.page\n            return _this.getTradesTheRock(args, cb, trades)\n          }\n\n          return cb(client.parseTrades (trades, market))\n        }).catch(function(error) {\n          console.log('Retrying...', error)\n          return _this.getTradesTheRock(args, cb, trades)\n        })\n      } catch(error) {\n        console.log('Retrying...', error)\n        return _this.getTradesTheRock(args, cb, trades)\n      }\n    },\n\n    getTrades: function (opts, cb) {\n      var args = {\n        id: joinProduct(opts.product_id),\n        per_page: 200,\n        page: 1\n      }\n      if (opts.from) {\n        args.after = new Date(opts.from).toISOString()\n      }\n      if(opts.to){\n        args.before = new Date(opts.to).toISOString()\n      }\n\n      this.getTradesTheRock(args, function(result) {\n        var trades = result.map(function(trade) {\n          return {\n            trade_id: trade.id,\n            time: trade.timestamp,\n            size: parseFloat(trade.amount),\n            price: parseFloat(trade.price),\n            side: trade.side,\n          }\n        })\n        cb(null, trades)\n      })\n    },\n\n    getBalance: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      client.fetchBalance().then(result =>{\n        var balance = {asset: 0, currency: 0}\n        Object.keys(result).forEach(function(key){\n          if(key === opts.currency){\n            balance.currency = result[key].free\n            balance.currency_hold = result[key].used\n          }\n          if(key === opts.asset){\n            balance.asset = result[key].free\n            balance.asset_hold = result[key].used\n          }\n          cb(null, balance)\n        })\n      })\n        .catch(function (error) {\n          console.error('An error occurred', error)\n          return retry('getBalance', func_args)\n        })\n    },\n\n\n    getQuote: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = publicClient()\n      client.fetchTicker({id: joinProduct(opts.product_id)}).then(result =>{\n        cb(null, { bid: result.bid, ask: result.ask })\n      })\n        .catch(function (error) {\n          console.error('An error occurred', error)\n          return retry('getQuote', func_args)\n        })\n    },\n\n    cancelOrder: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      client.cancelOrder(opts.order_id, function (err, resp, body) {\n        if (body && (body.message === 'Order already done' || body.message === 'order not found')) return cb()\n\n        if (err) return retry('cancelOrder', func_args)\n        cb()\n      })\n    },\n\n    buy: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      if (typeof opts.post_only === 'undefined') {\n        opts.post_only = true\n      }\n      if (opts.order_type === 'taker') {\n        delete opts.price\n        delete opts.post_only\n        opts.type = 'market'\n      }\n      opts.side = 'buy'\n      delete opts.order_type\n      client.createOrder(opts.market, opts.type, opts.side, opts.amount, opts.price, opts).then(result =>{\n        if (result && result.message === 'Insufficient funds') {\n          var order = {\n            status: 'rejected',\n            reject_reason: 'balance'\n          }\n          return cb(null, order)\n        }\n\n        orders['~' + result.id] = result\n        cb(null, result)\n      }).catch(function (error) {\n        console.error('An error occurred', error)\n        return retry('buy', func_args)\n      })\n    },\n\n    sell: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      if (typeof opts.post_only === 'undefined') {\n        opts.post_only = true\n      }\n      if (opts.order_type === 'taker') {\n        delete opts.price\n        delete opts.post_only\n        opts.type = 'market'\n      }\n      opts.side = 'sell'\n      delete opts.order_type\n      client.createOrder(opts.market, opts.type, opts.side, opts.amount, opts.price, opts).then(result =>{\n        if (result && result.message === 'Insufficient funds') {\n          var order = {\n            status: 'rejected',\n            reject_reason: 'balance'\n          }\n          return cb(null, order)\n        }\n\n        orders['~' + result.id] = result\n        cb(null, result)\n      }).catch(function (error) {\n        console.error('An error occurred', error)\n        return retry('buy', func_args)\n      })\n    },\n\n    getOrder: function (opts, cb) {\n      var func_args = [].slice.call(arguments)\n      var client = authedClient()\n      client.getOrder(opts.order_id, function (err, resp, body) {\n\n        if (err) return retry('getOrder', func_args)\n        if (resp.statusCode === 404) {\n          // order was cancelled. recall from cache\n          body = orders['~' + opts.order_id]\n          body.status = 'done'\n          body.done_reason = 'canceled'\n        }\n        cb(null, body)\n      })\n    },\n\n    getCursor: function (trade) {\n      return (trade.time || trade)\n    },\n  }\n  return exchange\n}\n"
  },
  {
    "path": "extensions/exchanges/therock/products.json",
    "content": "[\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"EUR\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BTC/EUR\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"USD\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BTC/USD\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"EUR\",\n    \"increment\": \"0.000001\",\n    \"label\": \"LTC/EUR\"\n  },\n  {\n    \"asset\": \"LTC\",\n    \"currency\": \"BTC\",\n    \"increment\": \"0.000001\",\n    \"label\": \"LTC/BTC\"\n  },\n  {\n    \"asset\": \"BTC\",\n    \"currency\": \"XRP\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BTC/XRP\"\n  },\n  {\n    \"asset\": \"EUR\",\n    \"currency\": \"XRP\",\n    \"increment\": \"0.000001\",\n    \"label\": \"EUR/XRP\"\n  },\n  {\n    \"asset\": \"USD\",\n    \"currency\": \"XRP\",\n    \"increment\": \"0.000001\",\n    \"label\": \"USD/XRP\"\n  },\n  {\n    \"asset\": \"PPC\",\n    \"currency\": \"EUR\",\n    \"increment\": \"0.000001\",\n    \"label\": \"PPC/EUR\"\n  },\n  {\n    \"asset\": \"PPC\",\n    \"currency\": \"BTC\",\n    \"increment\": \"0.000001\",\n    \"label\": \"PPC/BTC\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"EUR\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ETH/EUR\"\n  },\n  {\n    \"asset\": \"ETH\",\n    \"currency\": \"BTC\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ETH/BTC\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"BTC\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ZEC/BTC\"\n  },\n  {\n    \"asset\": \"ZEC\",\n    \"currency\": \"EUR\",\n    \"increment\": \"0.000001\",\n    \"label\": \"ZEC/EUR\"\n  },\n  {\n    \"asset\": \"BCH\",\n    \"currency\": \"BTC\",\n    \"increment\": \"0.000001\",\n    \"label\": \"BCH/BTC\"\n  }\n]"
  },
  {
    "path": "extensions/exchanges/therock/update-products.sh",
    "content": "#!/usr/bin/env node\nconst ccxt = require ('ccxt')\nconst c = require('../../../conf')\n\nconst therock = new ccxt.therock ({\n  'apiKey': c.therock.key,\n  'secret': c.therock.secret,\n})\n\ntherock.fetch_markets('BTCUSD')\n  .then(result =>   {\n    var products = []\n    result.forEach(function (product) {\n      console.log(product)\n      products.push({\n        asset: product.base,\n        currency: product.quote,\n        increment: '0.000001',\n        label: product.symbol\n      })\n    })\n    var target = require('path').resolve(__dirname, 'products.json')\n    require('fs').writeFileSync(target, JSON.stringify(products, null, 2))\n    console.log('wrote', target)\n    process.exit()\n  })\n  .catch(function (error) {\n    console.error('An error occurred', error)\n    process.exit(1)\n  })\n"
  },
  {
    "path": "extensions/notifiers/adamant.js",
    "content": "module.exports = function adamant (config) {\n  const api = require('adamant-api')({passPhrase: config.fromPassphrase, node: config.nodes, logLevel: 'error'}, null)\n  var adamant = {\n    pushMessage: function(title, message) {\n      config.toAddresses.forEach(address => {\n        if (address) \n          var result = api.send(config.fromPassphrase, address, title + ': ' + message, 'message')\n        if (!result.success) {\n          console.error(`Message to address ${address} was not accepted by ADAMANT node: ${result.error}.`)\n        }\n      })\n    }\n  }\n  return adamant\n}\n"
  },
  {
    "path": "extensions/notifiers/discord.js",
    "content": "var request = require('request')\n\nmodule.exports = function discord (config) {\n  var discord = {\n    pushMessage: function(title, message) {\n      var postData = {\n        'username': (config.username != '' ? config.username : 'Zenbot'),\n        'avatar_url': (config.avatar_url != '' ? config.avatar_url : 'https://camo.githubusercontent.com/db46d81f1352cee31f9baea72dc4396a15ad1d3e/68747470733a2f2f7261776769742e636f6d2f6361726c6f7338662f7a656e626f742f6d61737465722f6173736574732f7a656e626f745f7371756172652e706e67'),\n        'embeds': [{\n          'color': (config.color != null ? config.color : 15258703),\n          'fields': [{\n            'name': title,\n            'value': message\n          }]\n        }]\n      }\n\n      function callback(error) {\n        if (error) {\n          console.log('Error happened: '+ error)\n        }\n      }\n\n      var options = {\n        method: 'POST',\n        url: 'https://discordapp.com/api/webhooks/' + config.id + '/' + config.token,\n        json: postData\n      }\n\n      request(options, callback)\n    }\n  }\n  return discord\n}\n"
  },
  {
    "path": "extensions/notifiers/ifttt.js",
    "content": "var request = require('request')\n\nmodule.exports = function ifttt (config) {\n  var ifttt = {\n    pushMessage: function(title, message) {\n      var postData = {'value1': title , 'value2': message }\n\n      function callback(error) {\n        if (error) {\n          console.log('Error happened: '+ error)\n        }\n      }\n\n      var options = {\n        method: 'POST',\n        url: 'https://maker.ifttt.com/trigger/' + config.eventName + '/with/key/' + config.makerKey,\n        json: postData\n      }\n\n      request(options, callback)\n    }\n  }\n  return ifttt\n}\n"
  },
  {
    "path": "extensions/notifiers/prowl.js",
    "content": "var Prowl = require('node-prowl')\n\nmodule.exports = function prowl (config) {\n  var prowl = {\n    pushMessage: function(title, message) {\n      var p = new Prowl(config.key)\n      p.push(message, title, function(err) {\n        if (err) {\n          console.log('error: Push message failed, ' + err)\n          return\n        }\n      })\n    }\n  }\n  return prowl\n}\n"
  },
  {
    "path": "extensions/notifiers/pushbullet.js",
    "content": "var pusher = require('pushbullet')\n\nmodule.exports = function pushbullet (config) {\n  var pushbullet = {\n    pushMessage: function(title, message) {\n      var pb = new pusher(config.key)\n      pb.note(config.deviceID, title, message, (err) => {\n        if (err) {\n          console.log('error: Push message failed, ' + err)\n          return\n        }\n      })\n    }\n  }\n  return pushbullet\n}\n"
  },
  {
    "path": "extensions/notifiers/pushover.js",
    "content": "var request = require('request')\n\nmodule.exports = function pushover (config) {\n  var pushover = {\n    pushMessage: function(title, message) {\n      var postData = {\n        'token': config.token,\n        'user': config.user,\n        'tite': title,\n        'message': message,\n        'priority': config.priority\n      }\n\n      function callback(error) {\n        if (error) {\n          console.log('Error happened: '+ error)\n        }\n      }\n\n      var options = {\n        method: 'POST',\n        url: 'https://api.pushover.net/1/messages.json',\n        json: postData\n      }\n\n      request(options, callback)\n    }\n  }\n  return pushover\n}\n"
  },
  {
    "path": "extensions/notifiers/slack.js",
    "content": "var IncomingWebhook = require('@slack/client').IncomingWebhook\n\nmodule.exports = function slack (config) {\n  var slack = {\n    pushMessage: function(title, message) {\n      var slackWebhook = new IncomingWebhook(config.webhook_url || '', {})\n      slackWebhook.send(title + ': ' + message, function (err) {\n        if (err) {\n          console.error('\\nerror: slack webhook')\n          console.error(err)\n        }\n      })\n    }\n  }\n  return slack\n}\n"
  },
  {
    "path": "extensions/notifiers/telegram.js",
    "content": "process.env['NTBA_FIX_319'] = 1\n\nvar TelegramBot = require('node-telegram-bot-api')\n\nmodule.exports = function telegram (config) {\n  var bot = new TelegramBot(config.bot_token, { polling: true })\n  var wrapper = function(cb) {\n    return function(message) {\n      if (message.chat.id != config.chat_id) {\n        console.log('\\nChat ID error: command coming from wrong chat: ' + message.chat.id)\n        return\n      }\n      cb(message.text)\n    }\n  }\n  var telegram = {\n    pushMessage: function(title, message) {\n      bot.sendMessage(config.chat_id, title + ': ' + message).catch(function (error) {\n        console.error('\\nerror: telegram notification')\n        console.log(error.response.body) // => { ok: false, error_code: 400, description: 'Bad Request: chat not found' }\n      })\n    },\n    onMessage: function (callback) {\n      bot.on('message', wrapper(callback))\n      bot.on('webhook_error', (error) => {\n        console.log('\\nwebhook error: telegram event ' + error.code)\n      })\n      bot.on('polling_error', (error) => {\n        console.log('\\npolling error: telegram event ' + error.code)\n      })\n      bot.on('error', (error) => {\n        console.log('\\nerror: telegram event ' + error.code)\n      })\n    }\n  }\n  return telegram\n}\n"
  },
  {
    "path": "extensions/notifiers/textbelt.js",
    "content": "var request = require('request')\n\nmodule.exports = function textbelt (config) {\n  var textbelt = {\n    pushMessage: function(title, message) {\n      var postData = {'number': config.phone, 'message': title+': '+message, 'key': config.key }\n\n      function callback(error) {\n        if (error) {\n          console.log('Error happened: '+ error)\n        }\n      }\n\n      var options = {\n        method: 'POST',\n        url: 'https://textbelt.com/text',\n        json: postData\n      }\n\n      request(options, callback)\n    }\n  }\n  return textbelt\n}\n"
  },
  {
    "path": "extensions/notifiers/xmpp.js",
    "content": "var simplexmpp = require('simple-xmpp')\n\nmodule.exports = function xmpp (config) {\n  var xmpp = {\n    pushMessage: function(title, message) {\n      if (!simplexmpp.conn) {\n        simplexmpp.connect({\n          jid       : config.jid,\n          password  : config.password,\n          host      : config.host,\n          port      : config.port,\n          reconnect : true\n        })\n      }\n\n      simplexmpp.send(config.to, title + ': ' + message)\n    }\n  }\n  return xmpp\n}"
  },
  {
    "path": "extensions/output/_codemap.js",
    "content": "module.exports = {\n  _ns: 'zenbot',\n\n  'output.api': require('./api')\n}\n"
  },
  {
    "path": "extensions/output/api.js",
    "content": "module.exports = function api () {\n  let express = require('express')\n  let app = express()\n  let random_port = require('random-port')\n  let path = require('path')\n  let moment = require('moment')\n\n  let run = function(reporter, tradeObject) {\n    if (!reporter.port || reporter.port === 0) {\n      random_port({from: 20000}, function(port) {\n        startServer(port, reporter.ip, tradeObject)\n      })\n    } else {\n      startServer(reporter.port, reporter.ip, tradeObject)\n    }\n  }\n\n  let objectWithoutKey = (object, key) => {\n    // eslint-disable-next-line no-unused-vars\n    const {[key]: deletedKey, ...otherKeys} = object\n    return otherKeys\n  }\n\n  // set up rate limiter: maximum of fifty requests per minute\n  let RateLimit = require('express-rate-limit');\n  let limiter = new RateLimit({\n    windowMs: 1*60*1000, // 1 minute\n    max: 50\n  });\n\n  let startServer = function(port, ip, tradeObject) {\n    tradeObject.port = port\n\n    app.set('views', path.join(__dirname+'/../../templates'))\n    app.set('view engine', 'ejs')\n\n    app.use(limiter);\n    app.use('/assets', express.static(__dirname+'/../../templates/dashboard_assets'))\n    app.use('/assets-wp', express.static(__dirname+'/../../dist/'))\n    app.use('/assets-zenbot', express.static(__dirname+'/../../assets'))\n\n    app.get('/', function (req, res) {\n      app.locals.moment = moment\n      app.locals.deposit = tradeObject.options.deposit\n      let datas = JSON.parse(JSON.stringify(objectWithoutKey(tradeObject, 'options'))) // deep copy to prevent alteration\n      res.render('dashboard', datas)\n    })\n\n    app.get('/trades', function (req, res) {\n      res.send(objectWithoutKey(tradeObject, 'options'))\n    })\n\n    app.get('/stats', function (req, res) {\n      res.sendFile(path.join(__dirname+'../../../stats/index.html'))\n    })\n\n    if (ip && ip !== '0.0.0.0') {\n      app.listen(port, ip)\n      tradeObject.url = ip + ':' + port + '/'\n    } else {\n      app.listen(port)\n      tradeObject.url = require('ip').address() + ':' + port + '/'\n    }\n    console.log('Web GUI running on http://' + tradeObject.url)\n  }\n\n  return {\n    run: run\n  }\n}\n"
  },
  {
    "path": "extensions/strategies/bollinger/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , bollinger = require('../../../lib/bollinger')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'bollinger',\n  description: 'Buy when (Signal ≤ Lower Bollinger Band) and sell when (Signal ≥ Upper Bollinger Band).',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '1h')\n    this.option('period_length', 'period length, same as --period', String, '1h')\n    this.option('bollinger_size', 'period size', Number, 20)\n    this.option('bollinger_time', 'times of standard deviation between the upper band and the moving averages', Number, 2)\n    this.option('bollinger_upper_bound_pct', 'pct the current price should be near the bollinger upper bound before we sell', Number, 0)\n    this.option('bollinger_lower_bound_pct', 'pct the current price should be near the bollinger lower bound before we buy', Number, 0)\n  },\n\n  calculate: function (s) {\n    // calculate Bollinger Bands\n    bollinger(s, 'bollinger', s.options.bollinger_size)\n  },\n\n  onPeriod: function (s, cb) {\n    if (s.period.bollinger) {\n      if (s.period.bollinger.upperBound && s.period.bollinger.lowerBound) {\n        let upperBound = s.period.bollinger.upperBound\n        let lowerBound = s.period.bollinger.lowerBound\n        if (s.period.close > (upperBound / 100) * (100 - s.options.bollinger_upper_bound_pct)) {\n          s.signal = 'sell'\n        } else if (s.period.close < (lowerBound / 100) * (100 + s.options.bollinger_lower_bound_pct)) {\n          s.signal = 'buy'\n        } else {\n          s.signal = null // hold\n        }\n      }\n    }\n    cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    if (s.period.bollinger) {\n      if (s.period.bollinger.upperBound && s.period.bollinger.lowerBound) {\n        let upperBound = s.period.bollinger.upperBound\n        let lowerBound = s.period.bollinger.lowerBound\n        var color = 'grey'\n        if (s.period.close > (upperBound / 100) * (100 - s.options.bollinger_upper_bound_pct)) {\n          color = 'green'\n        } else if (s.period.close < (lowerBound / 100) * (100 + s.options.bollinger_lower_bound_pct)) {\n          color = 'red'\n        }\n        cols.push(z(8, n(s.period.close).format('+00.0000'), ' ')[color])\n        cols.push(z(8, n(lowerBound).format('0.000000').substring(0,7), ' ').cyan)\n        cols.push(z(8, n(upperBound).format('0.000000').substring(0,7), ' ').cyan)\n      }\n    }\n    else {\n      cols.push('         ')\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    bollinger_size: Phenotypes.Range(1, 40),\n    bollinger_time: Phenotypes.RangeFloat(1,6),\n    bollinger_upper_bound_pct: Phenotypes.RangeFloat(-1, 30),\n    bollinger_lower_bound_pct: Phenotypes.RangeFloat(-1, 30)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/cci_srsi/strategy.js",
    "content": "let z = require('zero-fill')\n  , n = require('numbro')\n  , ema = require('../../../lib/ema')\n  , srsi = require('../../../lib/srsi')\n  , cci = require('../../../lib/cci')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'cci_srsi',\n  description: 'Stochastic CCI Strategy',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '20m')\n    this.option('period_length', 'period length, same as --period', String, '20m')\n    this.option('min_periods', 'min. number of history periods', Number, 30)\n    this.option('ema_acc', 'sideways threshold (0.2-0.4)', Number, 0.03)\n    this.option('cci_periods', 'number of CCI periods', Number, 14)\n    this.option('rsi_periods', 'number of RSI periods', Number, 14)\n    this.option('srsi_periods', 'number of SRSI periods', Number, 9)\n    this.option('srsi_k', '%K line', Number, 5)\n    this.option('srsi_d', '%D line', Number, 3)\n    this.option('oversold_rsi', 'buy when RSI reaches or drops below this value', Number, 18)\n    this.option('overbought_rsi', 'sell when RSI reaches or goes above this value', Number, 85)\n    this.option('oversold_cci', 'buy when CCI reaches or drops below this value', Number, -90)\n    this.option('overbought_cci', 'sell when CCI reaches or goes above this value', Number, 140)\n    this.option('constant', 'constant', Number, 0.015)\n    console.log('If you have questions about this strategy, contact me... @talvasconcelos')\n  },\n\n  calculate: function (s) {\n    //get market trend\n    ema(s, 'trend_ema', s.options.min_periods)\n    if (typeof s.period.trend_ema !== 'undefined')\n      s.trend = s.period.trend_ema > s.lookback[0].trend_ema ? 'up' : 'down'\n\n    // compute Stochastic RSI\n    srsi(s, 'srsi', s.options.rsi_periods, s.options.srsi_k, s.options.srsi_d)\n\n    // compute CCI\n    cci(s, 'cci', s.options.cci_periods, s.options.constant)\n\n    if (typeof s.period.cci !== 'undefined' && typeof s.period.srsi_K !== 'undefined') {\n      s.cci_fromAbove = s.period.cci < s.lookback[0]['cci']\n      s.rsi_fromAbove = s.period.srsi_K < s.lookback[0]['srsi_K']\n    }\n\n    if (s.period.trend_ema && s.lookback[0] && s.lookback[0].trend_ema) {\n      s.period.acc = Math.abs((s.period.trend_ema - s.lookback[0].trend_ema) / s.lookback[0].trend_ema * 100)\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (!s.in_preroll && typeof s.trend !== 'undefined') {\n\n      // Sideways Market\n      if (s.period.acc < s.options.ema_acc) {\n        // Buy signal\n        if (s.period.cci <= s.options.oversold_cci && /*s.period.srsi_K > s.period.srsi_D &&*/ s.period.srsi_K <= s.options.oversold_rsi) {\n          if (!s.cci_fromAbove && !s.rsi_fromAbove) {\n            s.signal = 'buy'\n          }\n        }\n        // Sell signal\n        if (s.period.cci >= s.options.overbought_cci && /*s.period.srsi_K < s.period.srsi_D &&*/ s.period.srsi_K >= s.options.overbought_rsi) {\n          if (s.cci_fromAbove || s.rsi_fromAbove) {\n            s.signal = 'sell'\n          }\n        }\n        //cb()\n      }\n      // Buy signal\n      if (s.trend === 'up') {\n        if (s.period.cci <= s.options.oversold_cci && /*s.period.srsi_K > s.period.srsi_D &&*/ s.period.srsi_K <= s.options.oversold_rsi) {\n          if (!s.cci_fromAbove && !s.rsi_fromAbove) {\n            s.signal = 'buy'\n          }\n        }\n      }\n      // Sell signal\n      if (s.trend === 'down') {\n        if (s.period.cci >= s.options.overbought_cci && /*s.period.srsi_K < s.period.srsi_D &&*/ s.period.srsi_K >= s.options.overbought_rsi) {\n          if (s.cci_fromAbove || s.rsi_fromAbove) {\n            s.signal = 'sell'\n          }\n        }\n      }\n    }\n    cb()\n  },\n  onReport: function (s) {\n    var cols = []\n    if (typeof s.period.cci === 'number') {\n      var color = 'grey'\n      if (s.period.cci > 0) {\n        color = 'green'\n      }\n      else if (s.period.cci < 0) {\n        color = 'red'\n      }\n      cols.push(z(8, n(s.period.cci).format('000'), ' ')[color])\n      cols.push(s.period.acc > s.options.ema_acc ? z(8, n(s.period.srsi_K).format('000'), ' ')[color] : '   -->   ')\n    }\n    else {\n      cols.push('         ')\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 200),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    ema_acc: Phenotypes.RangeFloat(0, 0.5),\n    cci_periods: Phenotypes.Range(1, 200),\n    rsi_periods: Phenotypes.Range(1, 200),\n    srsi_periods: Phenotypes.Range(1, 200),\n    srsi_k: Phenotypes.Range(1, 50),\n    srsi_d: Phenotypes.Range(1, 50),\n    oversold_rsi: Phenotypes.Range(1, 100),\n    overbought_rsi: Phenotypes.Range(1, 100),\n    oversold_cci: Phenotypes.Range(-100, 100),\n    overbought_cci: Phenotypes.Range(1, 100),\n    constant: Phenotypes.RangeFloat(0.001, 0.05)\n  }\n}\n\n/* Made by talvasconcelos*/\n"
  },
  {
    "path": "extensions/strategies/crossover_vwap/example_sims/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<body>\n\n<h2>VWAP Max (--vwap_max)</h2>\n\n<ul>\n  <li><a target=\"_blank\" href=\"vwapmax0.html?static=1\">vwap_max=0</a></li>\n  <li><a target=\"_blank\" href=\"vwapmax10.html?static=1\">vwap_max=10</a></li>\n  <li><a target=\"_blank\" href=\"vwapmax100.html?static=1\">vwap_max=100</a></li>\n  <li><a target=\"_blank\" href=\"vwapmax500.html?static=1\">vwap_max=500</a></li>\n  <li><a target=\"_blank\" href=\"vwapmax1000.html?static=1\">vwap_max=1000</a></li>\n  <li><a target=\"_blank\" href=\"vwapmax5000.html?static=1\">vwap_max=5000</a></li>\n  <li><a target=\"_blank\" href=\"vwapmax10000.html?static=1\">vwap_max=10000</a></li>\n  <li><a target=\"_blank\" href=\"vwapmax20000.html?static=1\">vwap_max=20000</a></li>\n</ul>  \n\n</body>\n</html>\n"
  },
  {
    "path": "extensions/strategies/crossover_vwap/example_sims/main.css",
    "content": "html {\n  height: 100%;\n}\n\nbody {\n  font: 10px sans-serif;\n  background-color: #000000;\n  color: #fff;\n  position: relative;\n}\n\nsvg {\n    margin: 50px 0 0 0;\n    width: 100%;\n    height: auto;\n    z-index: 2;\n}\n\n.axis path,\n.axis line {\n    fill: none;\n    stroke: #444;\n    shape-rendering: crispEdges;\n}\n\n.axis.x path {\n    stroke: none;\n}\n\ntext {\n    fill: #fff;\n}\n\ntext.symbol {\n    fill: #BBBBBB;\n}\n\npath {\n    fill: none;\n    stroke-width: 1;\n}\n\npath.candle {\n    stroke: #888;\n}\n\npath.candle.up {\n    stroke: rgb(85, 255, 14);\n}\n\npath.candle.down {\n    fill: rgb(232, 87, 35);\n    stroke: #944329;\n}\n\n.close.annotation.up path {\n    stroke: #8ff;\n    stroke-width: 1;\n    fill: #8ff;\n}\n\n.close.annotation.up text {\n    fill: #000;\n}\n\npath.volume {\n    fill: #588bbd;\n}\n\n.indicator-plot path.line {\n    fill: none;\n    stroke-width: 1;\n}\n\n.ma-0 path.line {\n    stroke: #1f77b4;\n    stroke-width: 2;\n}\n\n.ma-1 path.line {\n    stroke: #aec7e8;\n    stroke-width: 2;\n}\n\n.ma-2 path.line {\n    stroke: #00ff65;\n    stroke-width: 2;\n}\n\n.sma-0 path.line {\n    stroke: #ff0d6d;\n    stroke-width: 2;\n}\n\n.sma-1 path.line {\n    stroke: #910eff;\n    stroke-width: 2;\n}\n\n.indicator4 path.line {\n    stroke: gold;\n    stroke-width: 3;\n}\n\npath.adx{\n    stroke: #ff7f0e;\n}\n\nbutton {\n    position: absolute;\n    right: 110px;\n    top: 25px;\n}\n\npath.macd {\n    stroke: #a0f;\n}\n\npath.signal {\n    stroke: #0f0;\n}\n\npath.difference {\n    fill: #35474c;\n}\n\npath.rsi {\n    stroke: #09d;\n}\n\npath.overbought {\n    stroke: #9f9;\n    stroke-dasharray: 1, 5;\n}\n\npath.oversold {\n    stroke: #f99;\n    stroke-dasharray: 1, 5;\n}\n\npath.middle, path.zero {\n    stroke: #888;\n    stroke-opacity: 0.5;\n    stroke-dasharray: 1, 5;\n}\n\n.analysis path, .analysis circle {\n    stroke: blue;\n    stroke-width: 0.8;\n}\n\n.trendline circle {\n    stroke-width: 0;\n    display: none;\n}\n\n.mouseover .trendline path {\n    stroke-width: 1.2;\n}\n\n.mouseover .trendline circle {\n    stroke-width: 1;\n    display: inline;\n}\n\n.dragging .trendline path, .dragging .trendline circle {\n    stroke: darkblue;\n}\n\n.interaction path, .interaction circle {\n    pointer-events: all;\n}\n\n.interaction .body {\n    cursor: move;\n}\n\n.trendlines .interaction .start, .trendlines .interaction .end {\n    cursor: nwse-resize;\n}\n\n.supstance path {\n    stroke-dasharray: 2, 2;\n}\n\n.supstances .interaction path {\n    pointer-events: all;\n    cursor: ns-resize;\n}\n\n.mouseover .supstance path {\n    stroke-width: 1.5;\n}\n\n.dragging .supstance path {\n    stroke: darkblue;\n}\n\n.crosshair {\n    cursor: crosshair;\n}\n\n.crosshair path.wire {\n    stroke: #fff;\n    stroke-opacity: 0.5;\n    stroke-dasharray: 1, 5;\n}\n\n.crosshair .axisannotation path {\n    fill: #000;\n    stroke: #fff;\n}\n\n.axisannotation.y path {\n    stroke: #fff;\n}\n\n.tradearrow path.tradearrow {\n    stroke: none;\n}\n\n.tradearrow path.buy {\n    fill: #00ff87;\n}\n\n.tradearrow path.sell {\n    fill: #ff0000;\n}\n\n.tradearrow path.highlight {\n    fill: none;\n    stroke-width: 2;\n}\n\n.tradearrow path.highlight.buy {\n    stroke: #0000FF;\n}\n\n.tradearrow path.highlight.sell {\n    stroke: #9900FF;\n}\n\n.loading {\n    width: 50%;\n    height: 50%;\n    overflow: auto;\n    margin: auto;\n    position: absolute;\n    top: 0; left: 0; bottom: 0; right: 0;\n    text-align: center;\n    font-size: 80px;\n    z-index: 1;\n    color: #888;\n}\n\n.no-data {\n    display: none;\n    color: #888;\n    font-size: 80px;\n    text-align: center;\n} \n\n.options {\n    position: absolute;\n    top: 20px;\n    left: 20px;\n    z-index: 3;\n}\n\n.footer {\n    position: fixed;\n    right: 20px;\n    bottom: 20px;\n    color: #aac;\n    font-size: 1.2em;\n}\n\n.footer a {\n    color: cyan;\n    text-decoration: none;\n}\npre {\n    font-size: 2em;\n}"
  },
  {
    "path": "extensions/strategies/crossover_vwap/example_sims/vwapmax0.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>kraken.XXRP-ZEUR - zenbot 4.0.5 sim result</title>\n  <link href=\"main.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n  <div class=\"ticker-graph\"></div>\n  <script src=\"https://code.jquery.com/jquery-3.0.0.slim.min.js\"></script>\n  <script src=\"https://d3js.org/d3.v4.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/techan.js/0.8.0/techan.min.js\"></script>\n  <script>\n    var withData = function (data, trades) {\n      var dim = {\n          width: 1280, height: 520,\n          margin: { top: 20, right: 50, bottom: 20, left: 50 },\n          ohlc: { height: 450 }\n      };\n      dim.plot = {\n          width: dim.width - dim.margin.left - dim.margin.right,\n          height: dim.height - dim.margin.top - dim.margin.bottom\n      };\n\n      var yInit, yPercentInit, zoomableInit;\n\n      var x = techan.scale.financetime()\n              .range([0, dim.plot.width]);\n\n      var y = d3.scaleLinear()\n              .range([dim.ohlc.height, 0]);\n\n      var zoom = d3.zoom()\n              .on(\"zoom\", zoomed);\n\n      var yPercent = y.copy();   // Same as y at this stage, will get a different domain later\n\n      var yVolume = d3.scaleLinear()\n              .range([y(0), y(1)]);\n\n      var candlestick = techan.plot.candlestick()\n              .xScale(x)\n              .yScale(y);\n\n      var tradearrow = techan.plot.tradearrow()\n              .xScale(x)\n              .yScale(y)\n              .y(function(d) {\n                  // Display the buy and sell arrows a bit above and below the price, so the price is still visible\n                  if(d.type === 'buy') return y(d.price);\n                  if(d.type === 'sell') return y(d.price);\n                  else \n                    return y(d.price);\n              });\n\n      var ema2 = techan.plot.ema()\n        .xScale(x)\n        .yScale(y);\n\n      var sma0 = techan.plot.sma()\n              .xScale(x)\n              .yScale(y);\n    \n      var sma1 = techan.plot.sma()\n              .xScale(x)\n              .yScale(y);\n    \n      var adx1 = techan.plot.adx()\n              .xScale(x)\n              .yScale(y);\n  \n      var volume = techan.plot.volume()\n              .accessor(candlestick.accessor())   // Set the accessor to a ohlc accessor so we get highlighted bars\n              .xScale(x)\n              .yScale(yVolume);\n\n      var xAxis = d3.axisBottom(x);\n\n      var timeAnnotation = techan.plot.axisannotation()\n              .axis(xAxis)\n              .orient('bottom')\n              .format(d3.timeFormat('%c'))\n              .width(140)\n              .translate([0, dim.plot.height]);\n\n      var yAxis = d3.axisRight(y);\n\n      var ohlcAnnotation = techan.plot.axisannotation()\n              .axis(yAxis)\n              .orient('right')\n              .format(d3.format(',.8f'))\n              .translate([x(1), 0]);\n\n      var percentAxis = d3.axisLeft(yPercent)\n              .tickFormat(d3.format('+.1%'));\n\n      var percentAnnotation = techan.plot.axisannotation()\n              .axis(percentAxis)\n              .orient('left');\n\n      var volumeAxis = d3.axisRight(yVolume)\n              .ticks(3)\n              .tickFormat(d3.format(\",.3s\"));\n\n      var volumeAnnotation = techan.plot.axisannotation()\n              .axis(volumeAxis)\n              .orient(\"right\")\n              .width(35);\n\n      var ohlcCrosshair = techan.plot.crosshair()\n              .xScale(timeAnnotation.axis().scale())\n              .yScale(ohlcAnnotation.axis().scale())\n              .xAnnotation(timeAnnotation)\n              .yAnnotation([ohlcAnnotation, percentAnnotation, volumeAnnotation])\n              .verticalWireRange([0, dim.plot.height]);\n\n      var svg = d3.select(\"body\").append(\"svg\")\n              .attr(\"viewBox\", \"0 0 \" + dim.width + \" \" + dim.height)\n              .attr(\"width\", dim.width)\n              .attr(\"height\", dim.height);\n\n      var defs = svg.append(\"defs\");\n\n      defs.append(\"clipPath\")\n              .attr(\"id\", \"ohlcClip\")\n          .append(\"rect\")\n              .attr(\"x\", 0)\n              .attr(\"y\", 0)\n              .attr(\"width\", dim.plot.width)\n              .attr(\"height\", dim.ohlc.height);\n\n      svg = svg.append(\"g\")\n              .attr(\"transform\", \"translate(\" + dim.margin.left + \",\" + dim.margin.top + \")\");\n\n      svg.append('text')\n              .attr(\"class\", \"symbol\")\n              .attr(\"x\", 50)\n              .text(\"kraken.XXRP-ZEUR - zenbot 4.0.5\");\n\n      svg.append(\"g\")\n              .attr(\"class\", \"x axis\")\n              .attr(\"transform\", \"translate(0,\" + (dim.plot.height - 30) + \")\");\n\n      var ohlcSelection = svg.append(\"g\")\n              .attr(\"class\", \"ohlc\")\n              .attr(\"transform\", \"translate(0,0)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"axis\")\n              .attr(\"transform\", \"translate(\" + x(1) + \",0)\")\n          .append(\"text\")\n              .attr(\"transform\", \"rotate(-90)\")\n              .attr(\"y\", -12)\n              .attr(\"dy\", \".71em\")\n              .style(\"text-anchor\", \"end\")\n              .text(\"Price\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"close annotation up\")\n              .attr(\"font-weight\", \"900\")\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"volume\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"candlestick\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator ema ma-2\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator sma sma-0\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator sma sma-1\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator adx adx-1\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line1\")\n                .attr(\"class\", \"indicator ema ma-2\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line2\")\n                .attr(\"class\", \"indicator sma sma-0\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line3\")\n                .attr(\"class\", \"indicator sma sma-1\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n            \n      svg.append(\"g\")\n                .attr(\"id\", \"data_line4\")\n                .attr(\"class\", \"indicator indicator4\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"percent axis\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"volume axis\");\n\n      // Add trendlines and other interactions last to be above zoom pane\n      svg.append('g')\n              .attr(\"class\", \"crosshair ohlc\");\n\n      svg.append(\"g\")\n              .attr(\"class\", \"tradearrow\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      var accessor = candlestick.accessor();\n\n      data = data.map(function (d) {\n        d.date = new Date(d.time)\n        return d\n      })\n      data.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n      trades = trades.map(function (t) {\n        t.date = new Date(t.time)\n        return t\n      })\n      trades.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n\n      //$('body').css('backgroundColor', '#1f2d35')\n      x.domain(techan.scale.plot.time(data).domain());\n      y.domain(techan.scale.plot.ohlc(data).domain());\n      yPercent.domain(techan.scale.plot.percent(y, accessor(data[0])).domain());\n      yVolume.domain(techan.scale.plot.volume(data).domain());\n\n      svg.select(\"g.candlestick\").datum(data)\n      var last = data[data.length-1]\n      if (!last) {\n        return\n      }\n  \n      var parseQueryString = function(url) {\n        var urlParams = {};\n        url.replace(\n          new RegExp(\"([^?=&]+)(=([^&]*))?\", \"g\"),\n          function($0, $1, $2, $3) {\n            urlParams[$1] = $3;\n          }\n        );\n\n        return urlParams;\n      }\n  \n      var urlToParse = location.search;  \n      var qParams = parseQueryString(urlToParse ); \n  \n      var tperiod = qParams.period;\n  \n      svg.select(\"g.volume\").datum(data)\n  \n      // svg.select(\"g.ema.ma-2\").datum(techan.indicator.ema().period(tperiod*2)(data)).call(ema2);\n      // svg.select(\"g.sma.sma-0\").datum(techan.indicator.sma().period(tperiod*2)(data)).call(sma0);\n      // svg.select(\"g.sma.sma-1\").datum(techan.indicator.sma().period(tperiod)(data)).call(sma1);\n  \n      // svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1);\n      // svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2);\n      // svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3);\n      //\n  \n        \n      var plotLine1 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.ema1); });\n\n      var plotLine2 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.sma1); });\n\n      var plotLine3 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.sma2); });\n          \n      var plotLine4 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2) && !isNaN(d.vwap); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.vwap); });\n        \n        \n      svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1);\n      svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2);\n      svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3);\n      svg.select(\"g#data_line4 path\").datum(data).attr(\"d\", plotLine4);\n      //svg.select(\"g.adx.adx-1\").datum(techan.indicator.adx().period(tperiod)(data)).call(adx1);\n  \n      svg.select(\"g.tradearrow\").datum(trades).call(tradearrow);\n  \n      // Stash for zooming\n      zoomableInit = x.zoomable().domain([0, data.length]).copy(); // Zoom in a little to hide indicator preroll\n      yInit = y.copy();\n      yPercentInit = yPercent.copy();\n\n      draw();\n\n      function draw() {\n        svg.select(\"g.x.axis\").call(xAxis);\n        svg.select(\"g.ohlc .axis\").call(yAxis);\n        svg.select(\"g.volume.axis\").call(volumeAxis);\n        svg.select(\"g.percent.axis\").call(percentAxis);\n        svg.select(\"g.candlestick\").call(candlestick);\n        svg.select(\"g.volume\").call(volume);\n        svg.select(\"g.crosshair.ohlc\").call(ohlcCrosshair).call(zoom);\n        svg.select(\"g.tradearrow\").call(tradearrow);\n        // svg.select(\"g .ema.ma-2\").call(ema2.refresh).call(zoom);\n        // svg.select(\"g .sma.sma-0\").call(sma0.refresh).call(zoom);\n        // svg.select(\"g .sma.sma-1\").call(sma1.refresh).call(zoom);\n        // svg.select(\"g .adx.adx-1\").call(adx1.refresh).call(zoom);\n    \n        svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1).call(zoom);\n        svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2).call(zoom);\n        svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3).call(zoom);\n        svg.select(\"g#data_line4 path\").datum(data).attr(\"d\", plotLine4).call(zoom);\n      }\n\n\n      function zoomed() {\n        x.zoomable().domain(d3.event.transform.rescaleX(zoomableInit).domain());\n        y.domain(d3.event.transform.rescaleY(yInit).domain());\n        yPercent.domain(d3.event.transform.rescaleY(yPercentInit).domain());\n\n        draw();\n      }\n  \n      if(!qParams.static)\n        setTimeout(function(){ window.location.reload(1); }, 10000);\n    }\n  </script>\n  <script>\nvar data = [{\"period_id\":\"120m210163\",\"size\":\"120m\",\"time\":1513173600000,\"open\":0.3875,\"high\":0.399,\"low\":0.3812,\"close\":0.3935,\"volume\":1394606.5288537226,\"close_time\":1513174686001,\"vwap\":0.23424151817081387,\"ema1\":0.27287274681999496,\"sma1\":0.2141562685185185,\"sma2\":0.22013291666666668},{\"period_id\":\"120m210162\",\"size\":\"120m\",\"time\":1513166400000,\"open\":0.38999,\"high\":0.395,\"low\":0.371,\"close\":0.3875,\"volume\":2764537.296713162,\"close_time\":1513173592543,\"vwap\":0.23408352388093892,\"ema1\":0.2645536259110291,\"sma1\":0.21242386111111108,\"sma2\":0.21690791666666667,\"rsi_avg_gain\":0.009856092175262298,\"rsi_avg_loss\":0.000811144798512558,\"rsi\":92},{\"period_id\":\"120m210161\",\"size\":\"120m\",\"time\":1513159200000,\"open\":0.37499,\"high\":0.39,\"low\":0.35,\"close\":0.38331,\"volume\":4774045.706226606,\"close_time\":1513166399125,\"vwap\":0.23328232522609943,\"ema1\":0.2560745656290311,\"sma1\":0.21074265740740744,\"sma2\":0.21373625000000002,\"rsi_avg_gain\":0.010291945419513242,\"rsi_avg_loss\":0.0008735405522442933,\"rsi\":92},{\"period_id\":\"120m210160\",\"size\":\"120m\",\"time\":1513152000000,\"open\":0.365,\"high\":0.43,\"low\":0.362,\"close\":0.37037,\"volume\":10615001.811561493,\"close_time\":1513159196158,\"vwap\":0.23044341634769133,\"ema1\":0.24729970808620566,\"sma1\":0.20869450925925928,\"sma2\":0.21075141666666672,\"rsi_avg_gain\":0.010088248913321952,\"rsi_avg_loss\":0.0009407359793400081,\"rsi\":91},{\"period_id\":\"120m210159\",\"size\":\"120m\",\"time\":1513144800000,\"open\":0.31155,\"high\":0.3799,\"low\":0.30039,\"close\":0.36201,\"volume\":7383654.496617741,\"close_time\":1513151997966,\"vwap\":0.21937938013299804,\"ema1\":0.23881210174732329,\"sma1\":0.20709302777777777,\"sma2\":0.2079064166666667,\"rsi_avg_gain\":0.010221191137423641,\"rsi_avg_loss\":0.0010131002854430857,\"rsi\":91},{\"period_id\":\"120m210158\",\"size\":\"120m\",\"time\":1513137600000,\"open\":0.28467,\"high\":0.319,\"low\":0.28201,\"close\":0.3084,\"volume\":1939410.0138247905,\"close_time\":1513144797985,\"vwap\":0.21561411913511858,\"ema1\":0.2303156949712766,\"sma1\":0.2060463611111111,\"sma2\":0.2061830833333334,\"rsi_avg_gain\":0.006883590455686998,\"rsi_avg_loss\":0.0010910310766310155,\"rsi\":86},{\"period_id\":\"120m210157\",\"size\":\"120m\",\"time\":1513130400000,\"open\":0.2981,\"high\":0.3,\"low\":0.27671,\"close\":0.28923,\"volume\":1470804.7478552302,\"close_time\":1513137551841,\"vwap\":0.21536412402687552,\"ema1\":0.22493057048653706,\"sma1\":0.20516673148148146,\"sma2\":0.20477208333333338,\"rsi_avg_gain\":0.005938482029201381,\"rsi_avg_loss\":0.0011749565440641705,\"rsi\":83},{\"period_id\":\"120m210156\",\"size\":\"120m\",\"time\":1513123200000,\"open\":0.27601,\"high\":0.29897,\"low\":0.27,\"close\":0.298,\"volume\":3115674.8552143956,\"close_time\":1513130393652,\"vwap\":0.21526959487148994,\"ema1\":0.22049612707181548,\"sma1\":0.20430552777777777,\"sma2\":0.20283875000000007,\"rsi_avg_gain\":0.006395288339139949,\"rsi_avg_loss\":0.0005907224320691066,\"rsi\":92},{\"period_id\":\"120m210155\",\"size\":\"120m\",\"time\":1513116000000,\"open\":0.272,\"high\":0.32956,\"low\":0.272,\"close\":0.27601,\"volume\":15006128.73051956,\"close_time\":1513123194998,\"vwap\":0.21482756659363006,\"ema1\":0.2151510323871131,\"sma1\":0.2032051574074074,\"sma2\":0.20133858333333338,\"rsi_avg_gain\":0.005195695134458405,\"rsi_avg_loss\":0.0006361626191513457,\"rsi\":89},{\"period_id\":\"120m210154\",\"size\":\"120m\",\"time\":1513108800000,\"open\":0.22885,\"high\":0.271965,\"low\":0.2287,\"close\":0.271965,\"volume\":13060193.335544836,\"close_time\":1513115999358,\"vwap\":0.20566535775692882,\"ema1\":0.210953862206914,\"sma1\":0.20263140740740743,\"sma2\":0.19982250000000004,\"rsi_avg_gain\":0.005284210144801362,\"rsi_avg_loss\":0.0006850982052399108,\"rsi\":89},{\"period_id\":\"120m210153\",\"size\":\"120m\",\"time\":1513101600000,\"open\":0.226,\"high\":0.22885,\"low\":0.222,\"close\":0.22885,\"volume\":2796097.9907069877,\"close_time\":1513108799425,\"vwap\":0.20082096348401388,\"ema1\":0.20674619753152876,\"sma1\":0.20245687037037038,\"sma2\":0.19904166666666667,\"rsi_avg_gain\":0.0023741493867091576,\"rsi_avg_loss\":0.0007377980671814424,\"rsi\":76},{\"period_id\":\"120m210152\",\"size\":\"120m\",\"time\":1513094400000,\"open\":0.21948,\"high\":0.228,\"low\":0.2161,\"close\":0.22503,\"volume\":6439607.943355674,\"close_time\":1513101587721,\"vwap\":0.20066509102057076,\"ema1\":0.20522179736128937,\"sma1\":0.2023068703703704,\"sma2\":0.19840783333333334,\"rsi_avg_gain\":0.002262930108763709,\"rsi_avg_loss\":0.0007945517646569379,\"rsi\":74},{\"period_id\":\"120m210151\",\"size\":\"120m\",\"time\":1513087200000,\"open\":0.2171,\"high\":0.2199,\"low\":0.21,\"close\":0.21989,\"volume\":2382252.81933436,\"close_time\":1513094394487,\"vwap\":0.20031432087997106,\"ema1\":0.20385571442068864,\"sma1\":0.20224298148148154,\"sma2\":0.19788466666666665,\"rsi_avg_gain\":0.002041617040207071,\"rsi_avg_loss\":0.0008556711311690101,\"rsi\":70},{\"period_id\":\"120m210150\",\"size\":\"120m\",\"time\":1513080000000,\"open\":0.2199,\"high\":0.22,\"low\":0.21203,\"close\":0.2171,\"volume\":2916612.944391042,\"close_time\":1513087188989,\"vwap\":0.2002593153554823,\"ema1\":0.20274990162211545,\"sma1\":0.20214483333333336,\"sma2\":0.19739133333333334,\"rsi_avg_gain\":0.0019840491202229985,\"rsi_avg_loss\":0.0009214919874127801,\"rsi\":68},{\"period_id\":\"120m210149\",\"size\":\"120m\",\"time\":1513072800000,\"open\":0.21318,\"high\":0.2199,\"low\":0.21048,\"close\":0.2199,\"volume\":2803692.7908667373,\"close_time\":1513079996977,\"vwap\":0.20016776240770864,\"ema1\":0.20176023966501996,\"sma1\":0.20203464814814817,\"sma2\":0.19681183333333332,\"rsi_avg_gain\":0.0021366682833170755,\"rsi_avg_loss\":0.0007769913710599151,\"rsi\":73},{\"period_id\":\"120m210148\",\"size\":\"120m\",\"time\":1513065600000,\"open\":0.20682,\"high\":0.2147,\"low\":0.20681,\"close\":0.2139,\"volume\":2409213.2365118363,\"close_time\":1513072781584,\"vwap\":0.20009176861595054,\"ema1\":0.2005092217108834,\"sma1\":0.20197261111111112,\"sma2\":0.19634699999999997,\"rsi_avg_gain\":0.0018394889204953115,\"rsi_avg_loss\":0.000836759938064524,\"rsi\":69},{\"period_id\":\"120m210147\",\"size\":\"120m\",\"time\":1513058400000,\"open\":0.209,\"high\":0.2099,\"low\":0.205,\"close\":0.20682,\"volume\":761639.33327307,\"close_time\":1513065594627,\"vwap\":0.20004581412042435,\"ema1\":0.19958571975990982,\"sma1\":0.201949,\"sma2\":0.1961045,\"rsi_avg_gain\":0.0014363726836103352,\"rsi_avg_loss\":0.0009011260871464106,\"rsi\":61},{\"period_id\":\"120m210146\",\"size\":\"120m\",\"time\":1513051200000,\"open\":0.2013,\"high\":0.21124,\"low\":0.19611,\"close\":0.20898,\"volume\":2402623.3937815027,\"close_time\":1513058363795,\"vwap\":0.20003958220140575,\"ema1\":0.19908680388128291,\"sma1\":0.20189224074074075,\"sma2\":0.19572866666666663,\"rsi_avg_gain\":0.0015468628900418995,\"rsi_avg_loss\":0.0008042896323115195,\"rsi\":66},{\"period_id\":\"120m210145\",\"size\":\"120m\",\"time\":1513044000000,\"open\":0.20056,\"high\":0.2015,\"low\":0.19804,\"close\":0.20129,\"volume\":182878.24229903996,\"close_time\":1513051003700,\"vwap\":0.19999870786982255,\"ema1\":0.19840451449378518,\"sma1\":0.20193853703703699,\"sma2\":0.19548216666666668,\"rsi_avg_gain\":0.001074313881583584,\"rsi_avg_loss\":0.0008661580655662517,\"rsi\":55},{\"period_id\":\"120m210144\",\"size\":\"120m\",\"time\":1513036800000,\"open\":0.2018,\"high\":0.203,\"low\":0.1961,\"close\":0.19999,\"volume\":1030371.8747069496,\"close_time\":1513043937932,\"vwap\":0.19999878507288119,\"ema1\":0.19820551549335658,\"sma1\":0.2019912222222222,\"sma2\":0.19529933333333332,\"rsi_avg_gain\":0.0010569534109361677,\"rsi_avg_loss\":0.0009327856090713479,\"rsi\":53},{\"period_id\":\"120m210143\",\"size\":\"120m\",\"time\":1513029600000,\"open\":0.20101,\"high\":0.202,\"low\":0.2,\"close\":0.2018,\"volume\":1521322.558584841,\"close_time\":1513036796088,\"vwap\":0.19999890942468368,\"ema1\":0.1980824475963467,\"sma1\":0.20204677777777771,\"sma2\":0.19518599999999997,\"rsi_avg_gain\":0.0011382575194697191,\"rsi_avg_loss\":0.0008653075789999126,\"rsi\":57},{\"period_id\":\"120m210142\",\"size\":\"120m\",\"time\":1513022400000,\"open\":0.202,\"high\":0.202,\"low\":0.2,\"close\":0.20119,\"volume\":978930.4729250503,\"close_time\":1513029582354,\"vwap\":0.19999697608294278,\"ema1\":0.1978260646719568,\"sma1\":0.20209788888888885,\"sma2\":0.19512699999999997,\"rsi_avg_gain\":0.0011788927132750822,\"rsi_avg_loss\":0.0009318697004614445,\"rsi\":56},{\"period_id\":\"120m210141\",\"size\":\"120m\",\"time\":1513015200000,\"open\":0.203,\"high\":0.20773,\"low\":0.20001,\"close\":0.202,\"volume\":1492537.8041972315,\"close_time\":1513022380076,\"vwap\":0.19999599841331697,\"ema1\":0.19759406913209174,\"sma1\":0.20210038888888884,\"sma2\":0.1950686666666666,\"rsi_avg_gain\":0.0012695767681423962,\"rsi_avg_loss\":0.0009412442928046321,\"rsi\":57},{\"period_id\":\"120m210140\",\"size\":\"120m\",\"time\":1513008000000,\"open\":0.20474,\"high\":0.206,\"low\":0.2021,\"close\":0.204,\"volume\":1342877.567555539,\"close_time\":1513015199565,\"vwap\":0.19999046290893624,\"ema1\":0.19729021183085668,\"sma1\":0.20212631481481477,\"sma2\":0.19500033333333328,\"rsi_avg_gain\":0.001367236519537965,\"rsi_avg_loss\":0.0008598015460972981,\"rsi\":61},{\"period_id\":\"120m210139\",\"size\":\"120m\",\"time\":1513000800000,\"open\":0.20238,\"high\":0.2049,\"low\":0.20083,\"close\":0.20486,\"volume\":1091793.7951348608,\"close_time\":1513007991071,\"vwap\":0.19998389113012227,\"ema1\":0.19682746781919164,\"sma1\":0.20216798148148143,\"sma2\":0.1948854999999999,\"rsi_avg_gain\":0.0014724085595024237,\"rsi_avg_loss\":0.0008597862804124749,\"rsi\":63},{\"period_id\":\"120m210138\",\"size\":\"120m\",\"time\":1512993600000,\"open\":0.20099,\"high\":0.205,\"low\":0.2003984,\"close\":0.20214,\"volume\":2245705.2988893474,\"close_time\":1513000786065,\"vwap\":0.19997945729903152,\"ema1\":0.19627350008258415,\"sma1\":0.20222353703703697,\"sma2\":0.1948279999999999,\"rsi_avg_gain\":0.0013764399871564563,\"rsi_avg_loss\":0.0009259236865980498,\"rsi\":60},{\"period_id\":\"120m210137\",\"size\":\"120m\",\"time\":1512986400000,\"open\":0.20054,\"high\":0.2025,\"low\":0.1996,\"close\":0.201,\"volume\":1180345.4121488596,\"close_time\":1512993538146,\"vwap\":0.1999686924643765,\"ema1\":0.19586891388138306,\"sma1\":0.20230224074074066,\"sma2\":0.1947621666666666,\"rsi_avg_gain\":0.0013946276784761857,\"rsi_avg_loss\":0.0009971485855671306,\"rsi\":58},{\"period_id\":\"120m210136\",\"size\":\"120m\",\"time\":1512979200000,\"open\":0.19841,\"high\":0.202,\"low\":0.19696,\"close\":0.2012,\"volume\":1455140.9476323111,\"close_time\":1512986398978,\"vwap\":0.19996723853445464,\"ema1\":0.19551504587320256,\"sma1\":0.20237622222222212,\"sma2\":0.1947051666666666,\"rsi_avg_gain\":0.0015019067306666614,\"rsi_avg_loss\":0.0010584677075338347,\"rsi\":59},{\"period_id\":\"120m210135\",\"size\":\"120m\",\"time\":1512972000000,\"open\":0.1955,\"high\":0.199,\"low\":0.19447,\"close\":0.19841,\"volume\":600052.8410154001,\"close_time\":1512978995397,\"vwap\":0.19996711066605252,\"ema1\":0.19512298007135448,\"sma1\":0.20247418518518506,\"sma2\":0.1947016666666666,\"rsi_avg_gain\":0.0014028226330256362,\"rsi_avg_loss\":0.0011398883004210528,\"rsi\":55},{\"period_id\":\"120m210134\",\"size\":\"120m\",\"time\":1512964800000,\"open\":0.19194,\"high\":0.19676,\"low\":0.19102,\"close\":0.19601,\"volume\":539611.00519656,\"close_time\":1512971904794,\"vwap\":0.19996781061074692,\"ema1\":0.1948962890417927,\"sma1\":0.2025927037037036,\"sma2\":0.1948064999999999,\"rsi_avg_gain\":0.001326116681719915,\"rsi_avg_loss\":0.0012275720158380567,\"rsi\":52},{\"period_id\":\"120m210133\",\"size\":\"120m\",\"time\":1512957600000,\"open\":0.1897,\"high\":0.19214,\"low\":0.1895,\"close\":0.19205,\"volume\":441306.56720423984,\"close_time\":1512964362686,\"vwap\":0.19996855870071373,\"ema1\":0.19481948138950256,\"sma1\":0.20278214814814804,\"sma2\":0.19496699999999995,\"rsi_avg_gain\":0.0011235102726214474,\"rsi_avg_loss\":0.0013220006324409842,\"rsi\":46},{\"period_id\":\"120m210132\",\"size\":\"120m\",\"time\":1512950400000,\"open\":0.18952,\"high\":0.19378,\"low\":0.18952,\"close\":0.18971,\"volume\":431192.4742363398,\"close_time\":1512957565944,\"vwap\":0.19996953179140511,\"ema1\":0.19501048010601998,\"sma1\":0.2029786296296295,\"sma2\":0.19519916666666662,\"rsi_avg_gain\":0.0010299341397461733,\"rsi_avg_loss\":0.0014236929887825984,\"rsi\":42},{\"period_id\":\"120m210131\",\"size\":\"120m\",\"time\":1512943200000,\"open\":0.19185,\"high\":0.19429,\"low\":0.18951,\"close\":0.18952,\"volume\":784356.8331573796,\"close_time\":1512950356364,\"vwap\":0.19997144857491575,\"ema1\":0.1953760304581593,\"sma1\":0.20314594444444437,\"sma2\":0.1954546666666666,\"rsi_avg_gain\":0.001094544458188187,\"rsi_avg_loss\":0.0015332078340735676,\"rsi\":42},{\"period_id\":\"120m210130\",\"size\":\"120m\",\"time\":1512936000000,\"open\":0.1948,\"high\":0.1949,\"low\":0.19,\"close\":0.19004,\"volume\":1233056.1801976203,\"close_time\":1512943196487,\"vwap\":0.19997821714253994,\"ema1\":0.19577989462768752,\"sma1\":0.20328575925925915,\"sma2\":0.19568766666666662,\"rsi_avg_gain\":0.0011787401857411247,\"rsi_avg_loss\":0.0016111468982330734,\"rsi\":42},{\"period_id\":\"120m210129\",\"size\":\"120m\",\"time\":1512928800000,\"open\":0.1935,\"high\":0.19676,\"low\":0.19301,\"close\":0.19439,\"volume\":387426.0634739798,\"close_time\":1512935995196,\"vwap\":0.1999885665065417,\"ema1\":0.196175749429597,\"sma1\":0.20342687037037027,\"sma2\":0.19583466666666666,\"rsi_avg_gain\":0.0012694125077212111,\"rsi_avg_loss\":0.0014004658904048465,\"rsi\":48},{\"period_id\":\"120m210128\",\"size\":\"120m\",\"time\":1512921600000,\"open\":0.1925,\"high\":0.19867,\"low\":0.192,\"close\":0.1935,\"volume\":746355.7882153098,\"close_time\":1512928784644,\"vwap\":0.1999900646073968,\"ema1\":0.19629890456267265,\"sma1\":0.2035315925925925,\"sma2\":0.19602466666666665,\"rsi_avg_gain\":0.001298598085238227,\"rsi_avg_loss\":0.0015081940358206037,\"rsi\":46},{\"period_id\":\"120m210127\",\"size\":\"120m\",\"time\":1512914400000,\"open\":0.19889,\"high\":0.2,\"low\":0.192,\"close\":0.1925,\"volume\":1304227.7168578205,\"close_time\":1512921590443,\"vwap\":0.19999487772937,\"ema1\":0.19649193246354663,\"sma1\":0.20368807407407397,\"sma2\":0.19624249999999996,\"rsi_avg_gain\":0.0013215671687180906,\"rsi_avg_loss\":0.0016242089616529576,\"rsi\":45},{\"period_id\":\"120m210126\",\"size\":\"120m\",\"time\":1512907200000,\"open\":0.19353,\"high\":0.19949,\"low\":0.1917,\"close\":0.19868,\"volume\":650525.0708087999,\"close_time\":1512914393147,\"vwap\":0.20000236574673522,\"ema1\":0.19676723815068778,\"sma1\":0.203757611111111,\"sma2\":0.19633949999999994,\"rsi_avg_gain\":0.0014232261816964052,\"rsi_avg_loss\":0.0012737634971647243,\"rsi\":53},{\"period_id\":\"120m210125\",\"size\":\"120m\",\"time\":1512900000000,\"open\":0.19333,\"high\":0.19902,\"low\":0.19,\"close\":0.19385,\"volume\":978565.5069178501,\"close_time\":1512907196740,\"vwap\":0.20000372336488748,\"ema1\":0.19663532354039037,\"sma1\":0.20378575925925915,\"sma2\":0.19652599999999995,\"rsi_avg_gain\":0.0011611666572115132,\"rsi_avg_loss\":0.0013717453046389338,\"rsi\":46},{\"period_id\":\"120m210124\",\"size\":\"120m\",\"time\":1512892800000,\"open\":0.19131,\"high\":0.194,\"low\":0.19,\"close\":0.19341,\"volume\":531661.3797847299,\"close_time\":1512899982936,\"vwap\":0.2000115463886323,\"ema1\":0.19682741481903798,\"sma1\":0.20383964814814806,\"sma2\":0.19673416666666668,\"rsi_avg_gain\":0.0012166410154585531,\"rsi_avg_loss\":0.001477264174226544,\"rsi\":45},{\"period_id\":\"120m210122\",\"size\":\"120m\",\"time\":1512878400000,\"open\":0.191,\"high\":0.19313,\"low\":0.1895,\"close\":0.19301,\"volume\":391477.15581255,\"close_time\":1512882237255,\"vwap\":0.20001383875700782,\"ema1\":0.19706309859966128,\"sma1\":0.2039214999999999,\"sma2\":0.19693149999999998,\"rsi_avg_gain\":0.00127945955510921,\"rsi_avg_loss\":0.0015908998799362784,\"rsi\":45},{\"period_id\":\"120m210121\",\"size\":\"120m\",\"time\":1512871200000,\"open\":0.195,\"high\":0.19843,\"low\":0.191,\"close\":0.191,\"volume\":822354.6339335999,\"close_time\":1512878389037,\"vwap\":0.2000151194182676,\"ema1\":0.19734262264101723,\"sma1\":0.20394529629629618,\"sma2\":0.19716733333333333,\"rsi_avg_gain\":0.0012232641362714583,\"rsi_avg_loss\":0.0017132767937775306,\"rsi\":42},{\"period_id\":\"120m210120\",\"size\":\"120m\",\"time\":1512864000000,\"open\":0.19926,\"high\":0.19928,\"low\":0.195,\"close\":0.195,\"volume\":575411.43770943,\"close_time\":1512871187661,\"vwap\":0.2000171222777957,\"ema1\":0.19778004489212186,\"sma1\":0.20398992592592582,\"sma2\":0.1973611666666667,\"rsi_avg_gain\":0.001317361377523109,\"rsi_avg_loss\":0.0015373750086834941,\"rsi\":46},{\"period_id\":\"120m210119\",\"size\":\"120m\",\"time\":1512856800000,\"open\":0.2,\"high\":0.20254,\"low\":0.19733,\"close\":0.19929,\"volume\":680314.7565415404,\"close_time\":1512863991018,\"vwap\":0.2000177582808378,\"ema1\":0.1979717721260613,\"sma1\":0.20402974074074068,\"sma2\":0.1975107666666667,\"rsi_avg_gain\":0.0014186968681018097,\"rsi_avg_loss\":0.0013256346247360717,\"rsi\":52},{\"period_id\":\"120m210118\",\"size\":\"120m\",\"time\":1512849600000,\"open\":0.19851,\"high\":0.2,\"low\":0.1953,\"close\":0.2,\"volume\":352961.11425362,\"close_time\":1512856793108,\"vwap\":0.2000179393408876,\"ema1\":0.19788085985889312,\"sma1\":0.2040714074074073,\"sma2\":0.19762693333333337,\"rsi_avg_gain\":0.0015278273964173337,\"rsi_avg_loss\":0.001372991134331153,\"rsi\":53},{\"period_id\":\"120m210117\",\"size\":\"120m\",\"time\":1512842400000,\"open\":0.19541,\"high\":0.19867,\"low\":0.19486,\"close\":0.19799,\"volume\":926232.5305575604,\"close_time\":1512849579268,\"vwap\":0.200018043337174,\"ema1\":0.19773471226295472,\"sma1\":0.20412631481481475,\"sma2\":0.19777710000000004,\"rsi_avg_gain\":0.001490737196141743,\"rsi_avg_loss\":0.001478605836972011,\"rsi\":50},{\"period_id\":\"120m210116\",\"size\":\"120m\",\"time\":1512835200000,\"open\":0.2025,\"high\":0.2027,\"low\":0.19541,\"close\":0.19541,\"volume\":641413.0257922799,\"close_time\":1512842398360,\"vwap\":0.20001990656861152,\"ema1\":0.19771710621212402,\"sma1\":0.20409103703703693,\"sma2\":0.1979792666666667,\"rsi_avg_gain\":0.001406947749691108,\"rsi_avg_loss\":0.0015923447475083194,\"rsi\":47},{\"period_id\":\"120m210115\",\"size\":\"120m\",\"time\":1512828000000,\"open\":0.2029,\"high\":0.203,\"low\":0.19926,\"close\":0.2025,\"volume\":759955.0663505401,\"close_time\":1512835181045,\"vwap\":0.2000205872999991,\"ema1\":0.19787621698537394,\"sma1\":0.20402622222222214,\"sma2\":0.19804026666666671,\"rsi_avg_gain\":0.001515174499667347,\"rsi_avg_loss\":0.001169448189624343,\"rsi\":56},{\"period_id\":\"120m210114\",\"size\":\"120m\",\"time\":1512820800000,\"open\":0.19915,\"high\":0.203,\"low\":0.1964,\"close\":0.20288,\"volume\":1060196.08788046,\"close_time\":1512827997733,\"vwap\":0.20001956163653503,\"ema1\":0.19755733539815834,\"sma1\":0.2040447407407406,\"sma2\":0.19809226666666674,\"rsi_avg_gain\":0.0016317263842571428,\"rsi_avg_loss\":0.0012301749734416009,\"rsi\":57},{\"period_id\":\"120m210113\",\"size\":\"120m\",\"time\":1512813600000,\"open\":0.19899,\"high\":0.2,\"low\":0.196,\"close\":0.199,\"volume\":1697599.1494401302,\"close_time\":1512820796071,\"vwap\":0.2000184979801352,\"ema1\":0.19719025508078994,\"sma1\":0.20412427777777767,\"sma2\":0.1982202666666667,\"rsi_avg_gain\":0.001458782259969231,\"rsi_avg_loss\":0.0013248038175524934,\"rsi\":52},{\"period_id\":\"120m210112\",\"size\":\"120m\",\"time\":1512806400000,\"open\":0.2015,\"high\":0.20181,\"low\":0.196,\"close\":0.198,\"volume\":1049080.849649,\"close_time\":1512813598514,\"vwap\":0.20001943660669036,\"ema1\":0.19706544508636165,\"sma1\":0.20420474074074063,\"sma2\":0.1983702666666667,\"rsi_avg_gain\":0.0014940732030437874,\"rsi_avg_loss\":0.0014267118035180698,\"rsi\":51},{\"period_id\":\"120m210111\",\"size\":\"120m\",\"time\":1512799200000,\"open\":0.201,\"high\":0.203,\"low\":0.19911,\"close\":0.19931,\"volume\":611834.19321072,\"close_time\":1512806227310,\"vwap\":0.20002037683770998,\"ema1\":0.1970009930233521,\"sma1\":0.20425103703703693,\"sma2\":0.1985104333333334,\"rsi_avg_gain\":0.0016090019109702325,\"rsi_avg_loss\":0.001435689634557923,\"rsi\":53},{\"period_id\":\"120m210110\",\"size\":\"120m\",\"time\":1512792000000,\"open\":0.20095,\"high\":0.20189,\"low\":0.19933,\"close\":0.2018,\"volume\":327272.42923343997,\"close_time\":1512799199401,\"vwap\":0.20002004322755243,\"ema1\":0.19684175116289362,\"sma1\":0.20433437037037028,\"sma2\":0.19856810000000003,\"rsi_avg_gain\":0.0017327712887371734,\"rsi_avg_loss\":0.001354588837216223,\"rsi\":56},{\"period_id\":\"120m210109\",\"size\":\"120m\",\"time\":1512784800000,\"open\":0.199,\"high\":0.20181,\"low\":0.199,\"close\":0.20148,\"volume\":97245.56367083998,\"close_time\":1512791938779,\"vwap\":0.20001998548303693,\"ema1\":0.1964998029672311,\"sma1\":0.20441020370370364,\"sma2\":0.19864193333333333,\"rsi_avg_gain\":0.0018414460032554164,\"rsi_avg_loss\":0.0014587879785405479,\"rsi\":56},{\"period_id\":\"120m210108\",\"size\":\"120m\",\"time\":1512777600000,\"open\":0.2,\"high\":0.20181,\"low\":0.19801,\"close\":0.19981,\"volume\":403268.47447363014,\"close_time\":1512784528415,\"vwap\":0.2000199725487287,\"ema1\":0.1961563411029022,\"sma1\":0.2044859444444444,\"sma2\":0.19872843333333334,\"rsi_avg_gain\":0.0018546341573519864,\"rsi_avg_loss\":0.0015710024384282821,\"rsi\":54},{\"period_id\":\"120m210107\",\"size\":\"120m\",\"time\":1512770400000,\"open\":0.19995,\"high\":0.20194,\"low\":0.19811,\"close\":0.2,\"volume\":1030570.62235018,\"close_time\":1512777589000,\"vwap\":0.2000200370096444,\"ema1\":0.19590436462724028,\"sma1\":0.20456057407407402,\"sma2\":0.19878193333333335,\"rsi_avg_gain\":0.001997298323302139,\"rsi_avg_loss\":0.001677233395230456,\"rsi\":54},{\"period_id\":\"120m210106\",\"size\":\"120m\",\"time\":1512763200000,\"open\":0.20056,\"high\":0.2029,\"low\":0.19882,\"close\":0.20195,\"volume\":687992.28091057,\"close_time\":1512770355398,\"vwap\":0.20002016189497007,\"ema1\":0.1956219070153258,\"sma1\":0.2046263148148148,\"sma2\":0.19878443333333337,\"rsi_avg_gain\":0.002150936655863842,\"rsi_avg_loss\":0.0016562513487097233,\"rsi\":56},{\"period_id\":\"120m210105\",\"size\":\"120m\",\"time\":1512756000000,\"open\":0.2,\"high\":0.204,\"low\":0.199,\"close\":0.20292,\"volume\":1842953.0237013297,\"close_time\":1512763170809,\"vwap\":0.20001990014613372,\"ema1\":0.19518548680948622,\"sma1\":0.20477048148148147,\"sma2\":0.1988857666666667,\"rsi_avg_gain\":0.002316393321699522,\"rsi_avg_loss\":0.0017090399139950867,\"rsi\":58},{\"period_id\":\"120m210104\",\"size\":\"120m\",\"time\":1512748800000,\"open\":0.196,\"high\":0.20086,\"low\":0.196,\"close\":0.2,\"volume\":1102251.6171724405,\"close_time\":1512755976994,\"vwap\":0.20001606623823764,\"ema1\":0.19465207210669216,\"sma1\":0.20497548148148148,\"sma2\":0.19904876666666674,\"rsi_avg_gain\":0.0022699620387533334,\"rsi_avg_loss\":0.0018405045227639395,\"rsi\":55},{\"period_id\":\"120m210103\",\"size\":\"120m\",\"time\":1512741600000,\"open\":0.20001,\"high\":0.20182,\"low\":0.19001,\"close\":0.196,\"volume\":1809689.6471748506,\"close_time\":1512748783413,\"vwap\":0.2000166963942017,\"ema1\":0.1942832494933606,\"sma1\":0.2052364074074074,\"sma2\":0.1992737666666667,\"rsi_avg_gain\":0.0021368821955805124,\"rsi_avg_loss\":0.001982081793745781,\"rsi\":52},{\"period_id\":\"120m210102\",\"size\":\"120m\",\"time\":1512734400000,\"open\":0.19362,\"high\":0.20199,\"low\":0.193,\"close\":0.20182,\"volume\":1979923.9914177093,\"close_time\":1512741577584,\"vwap\":0.20002278463243411,\"ema1\":0.1941648529066958,\"sma1\":0.20548446296296297,\"sma2\":0.19942676666666675,\"rsi_avg_gain\":0.0023012577490867056,\"rsi_avg_loss\":0.0016868573163416108,\"rsi\":58},{\"period_id\":\"120m210101\",\"size\":\"120m\",\"time\":1512727200000,\"open\":0.1931,\"high\":0.19999,\"low\":0.19,\"close\":0.194,\"volume\":1792191.8218561397,\"close_time\":1512734388888,\"vwap\":0.20002482586244552,\"ema1\":0.19363691172784725,\"sma1\":0.2057149259259259,\"sma2\":0.1996746,\"rsi_avg_gain\":0.0018767391144010677,\"rsi_avg_loss\":0.0018166155714448118,\"rsi\":51},{\"period_id\":\"120m210100\",\"size\":\"120m\",\"time\":1512720000000,\"open\":0.19009,\"high\":0.2,\"low\":0.18955,\"close\":0.19301,\"volume\":1800915.4518014311,\"close_time\":1512727186604,\"vwap\":0.2000319921519937,\"ema1\":0.19361187115735395,\"sma1\":0.20594529629629627,\"sma2\":0.1999061,\"rsi_avg_gain\":0.0019449498155088409,\"rsi_avg_loss\":0.0019563552307867204,\"rsi\":50},{\"period_id\":\"120m210099\",\"size\":\"120m\",\"time\":1512712800000,\"open\":0.191,\"high\":0.19649,\"low\":0.18501,\"close\":0.19128,\"volume\":1533508.5199854106,\"close_time\":1512719994835,\"vwap\":0.20004560397664836,\"ema1\":0.19365337951303355,\"sma1\":0.2061701111111111,\"sma2\":0.20016993333333336,\"rsi_avg_gain\":0.00196148441670183,\"rsi_avg_loss\":0.0021068440946933912,\"rsi\":48},{\"period_id\":\"120m210098\",\"size\":\"120m\",\"time\":1512705600000,\"open\":0.203,\"high\":0.20687,\"low\":0.19021,\"close\":0.19131,\"volume\":824094.35925791,\"close_time\":1512712790789,\"vwap\":0.20006456295895972,\"ema1\":0.19381706085876,\"sma1\":0.20631177777777776,\"sma2\":0.20040060000000004,\"rsi_avg_gain\":0.002112367833371202,\"rsi_avg_loss\":0.002266601332746729,\"rsi\":48},{\"period_id\":\"120m210097\",\"size\":\"120m\",\"time\":1512698400000,\"open\":0.20457,\"high\":0.208,\"low\":0.19155,\"close\":0.205,\"volume\":1802558.6234344696,\"close_time\":1512705589882,\"vwap\":0.20006664726622697,\"ema1\":0.19398996160763998,\"sma1\":0.20649585185185182,\"sma2\":0.20039776666666667,\"rsi_avg_gain\":0.0022748576667074483,\"rsi_avg_loss\":0.0013878783583426326,\"rsi\":62},{\"period_id\":\"120m210096\",\"size\":\"120m\",\"time\":1512691200000,\"open\":0.18264,\"high\":0.21,\"low\":0.18,\"close\":0.20457,\"volume\":5069064.234255623,\"close_time\":1512698364848,\"vwap\":0.20006177761177657,\"ema1\":0.19323064861506342,\"sma1\":0.2067273333333333,\"sma2\":0.20039026666666665,\"rsi_avg_gain\":0.0024167697949157145,\"rsi_avg_loss\":0.0014946382320612968,\"rsi\":62},{\"period_id\":\"120m210095\",\"size\":\"120m\",\"time\":1512684000000,\"open\":0.18631,\"high\":0.18699,\"low\":0.18,\"close\":0.182,\"volume\":2887392.7136900085,\"close_time\":1512691099048,\"vwap\":0.20004386898154305,\"ema1\":0.19244862438161953,\"sma1\":0.20717187037037035,\"sma2\":0.20079026666666666,\"rsi_avg_gain\":0.0008665213176015379,\"rsi_avg_loss\":0.0016096104037583196,\"rsi\":35},{\"period_id\":\"120m210094\",\"size\":\"120m\",\"time\":1512676800000,\"open\":0.18049,\"high\":0.186,\"low\":0.18007,\"close\":0.186,\"volume\":1397581.4726467493,\"close_time\":1512683999964,\"vwap\":0.20015730071327265,\"ema1\":0.1931692191665588,\"sma1\":0.2075561296296296,\"sma2\":0.20114843333333327,\"rsi_avg_gain\":0.000933176803570887,\"rsi_avg_loss\":0.0014257342809704976,\"rsi\":40},{\"period_id\":\"120m210093\",\"size\":\"120m\",\"time\":1512669600000,\"open\":0.182,\"high\":0.18889,\"low\":0.18004,\"close\":0.181,\"volume\":1519254.1145062689,\"close_time\":1512676772537,\"vwap\":0.20017613804839995,\"ema1\":0.19366364807459735,\"sma1\":0.2078807592592592,\"sma2\":0.20157693333333332,\"rsi_avg_gain\":0.0006203442499994165,\"rsi_avg_loss\":0.001535406148737459,\"rsi\":29},{\"period_id\":\"120m210092\",\"size\":\"120m\",\"time\":1512662400000,\"open\":0.18434,\"high\":0.18959,\"low\":0.18,\"close\":0.182,\"volume\":1880239.514088659,\"close_time\":1512669591339,\"vwap\":0.2002056137374644,\"ema1\":0.19453700311422475,\"sma1\":0.208233537037037,\"sma2\":0.20199393333333326,\"rsi_avg_gain\":0.0006680630384609101,\"rsi_avg_loss\":0.0015765912371018787,\"rsi\":30},{\"period_id\":\"120m210091\",\"size\":\"120m\",\"time\":1512655200000,\"open\":0.1885,\"high\":0.18995,\"low\":0.18301,\"close\":0.187,\"volume\":1319921.42306792,\"close_time\":1512662369202,\"vwap\":0.2002580816125602,\"ema1\":0.19540162401865405,\"sma1\":0.20853307407407404,\"sma2\":0.20230944066666665,\"rsi_avg_gain\":0.0007194525029579033,\"rsi_avg_loss\":0.0013132521014943305,\"rsi\":35},{\"period_id\":\"120m210090\",\"size\":\"120m\",\"time\":1512648000000,\"open\":0.1875,\"high\":0.19,\"low\":0.1875,\"close\":0.1885,\"volume\":1411372.0180265396,\"close_time\":1512655194555,\"vwap\":0.20028116160568452,\"ema1\":0.19598104636476812,\"sma1\":0.2088013148148148,\"sma2\":0.2026461073333333,\"rsi_avg_gain\":0.0007747950031854342,\"rsi_avg_loss\":0.0012988868785323558,\"rsi\":37},{\"period_id\":\"120m210089\",\"size\":\"120m\",\"time\":1512640800000,\"open\":0.18521,\"high\":0.18979,\"low\":0.181,\"close\":0.1875,\"volume\":2092077.3675429292,\"close_time\":1512647973104,\"vwap\":0.2003002256463693,\"ema1\":0.1964969805968211,\"sma1\":0.20908057407407407,\"sma2\":0.20298944066666663,\"rsi_avg_gain\":0.000757471541892006,\"rsi_avg_loss\":0.0013988012538040755,\"rsi\":35},{\"period_id\":\"120m210088\",\"size\":\"120m\",\"time\":1512633600000,\"open\":0.1872,\"high\":0.18979,\"low\":0.18513,\"close\":0.18513,\"volume\":1129966.4392239994,\"close_time\":1512640768505,\"vwap\":0.20034935569712276,\"ema1\":0.19711746201729152,\"sma1\":0.20934177777777777,\"sma2\":0.20340394066666662,\"rsi_avg_gain\":0.0006334308912683133,\"rsi_avg_loss\":0.0015064013502505429,\"rsi\":30},{\"period_id\":\"120m210087\",\"size\":\"120m\",\"time\":1512626400000,\"open\":0.19225,\"high\":0.19231,\"low\":0.1852,\"close\":0.18601,\"volume\":1170682.04228123,\"close_time\":1512633583210,\"vwap\":0.20036535810359266,\"ema1\":0.19794418353572543,\"sma1\":0.20957705555555553,\"sma2\":0.20378977399999998,\"rsi_avg_gain\":0.0006821563444427989,\"rsi_avg_loss\":0.001554586069500583,\"rsi\":30},{\"period_id\":\"120m210086\",\"size\":\"120m\",\"time\":1512619200000,\"open\":0.1855,\"high\":0.19288,\"low\":0.18373,\"close\":0.19227,\"volume\":312959.47167122003,\"close_time\":1512626260601,\"vwap\":0.2003775429407503,\"ema1\":0.1987672306761203,\"sma1\":0.20980964814814815,\"sma2\":0.2040286073333333,\"rsi_avg_gain\":0.0007346299093999373,\"rsi_avg_loss\":0.0011926311517698597,\"rsi\":38},{\"period_id\":\"120m210085\",\"size\":\"120m\",\"time\":1512612000000,\"open\":0.18694,\"high\":0.19286,\"low\":0.18393,\"close\":0.18643,\"volume\":1313166.93189536,\"close_time\":1512619169443,\"vwap\":0.2003790373248742,\"ema1\":0.19921531555033548,\"sma1\":0.21004325925925926,\"sma2\":0.20440660733333332,\"rsi_avg_gain\":0.0003419091331999337,\"rsi_avg_loss\":0.0012843720095983104,\"rsi\":21},{\"period_id\":\"120m210084\",\"size\":\"120m\",\"time\":1512604800000,\"open\":0.18902,\"high\":0.1927,\"low\":0.1865,\"close\":0.1865,\"volume\":1847827.2706492287,\"close_time\":1512611942664,\"vwap\":0.20039578258144433,\"ema1\":0.2000970614503586,\"sma1\":0.21020344444444447,\"sma2\":0.20478094066666663,\"rsi_avg_gain\":0.00036820983575377476,\"rsi_avg_loss\":0.0013777852411058738,\"rsi\":21},{\"period_id\":\"120m210083\",\"size\":\"120m\",\"time\":1512597600000,\"open\":0.19498,\"high\":0.196,\"low\":0.189,\"close\":0.18902,\"volume\":2480005.0900642066,\"close_time\":1512604794901,\"vwap\":0.2004114004959933,\"ema1\":0.2010347898262454,\"sma1\":0.21030066666666666,\"sma2\":0.2051734406666666,\"rsi_avg_gain\":0.00039653366927329593,\"rsi_avg_loss\":0.0012899225673447877,\"rsi\":24},{\"period_id\":\"120m210082\",\"size\":\"120m\",\"time\":1512590400000,\"open\":0.19679,\"high\":0.19775,\"low\":0.192,\"close\":0.195,\"volume\":1901877.715855151,\"close_time\":1512597582829,\"vwap\":0.20046251373525006,\"ema1\":0.20186339602115888,\"sma1\":0.21038816666666663,\"sma2\":0.20546277399999993,\"rsi_avg_gain\":0.00042703625921739564,\"rsi_avg_loss\":0.0009291473802174625,\"rsi\":31},{\"period_id\":\"120m210081\",\"size\":\"120m\",\"time\":1512583200000,\"open\":0.1985,\"high\":0.20003,\"low\":0.19615,\"close\":0.19765,\"volume\":1159402.1994188598,\"close_time\":1512590389470,\"vwap\":0.20048649503577667,\"ema1\":0.20233673367779054,\"sma1\":0.2104573333333333,\"sma2\":0.20566194066666663,\"rsi_avg_gain\":0.0004598852022341184,\"rsi_avg_loss\":0.000796774101772653,\"rsi\":37},{\"period_id\":\"120m210080\",\"size\":\"120m\",\"time\":1512576000000,\"open\":0.1999,\"high\":0.20198,\"low\":0.1978,\"close\":0.1985,\"volume\":1149012.43157479,\"close_time\":1512583187057,\"vwap\":0.20048966295582069,\"ema1\":0.20265995669005196,\"sma1\":0.2104941851851852,\"sma2\":0.20582710733333334,\"rsi_avg_gain\":0.0004952609870213583,\"rsi_avg_loss\":0.0007926798019090096,\"rsi\":38},{\"period_id\":\"120m210079\",\"size\":\"120m\",\"time\":1512568800000,\"open\":0.197,\"high\":0.19997,\"low\":0.196,\"close\":0.1999,\"volume\":1754763.5733593802,\"close_time\":1512575983189,\"vwap\":0.2004898404071285,\"ema1\":0.20294685025488313,\"sma1\":0.21054724074074074,\"sma2\":0.205974774,\"rsi_avg_gain\":0.0005333579860230012,\"rsi_avg_loss\":0.0007459628635943192,\"rsi\":42},{\"period_id\":\"120m210078\",\"size\":\"120m\",\"time\":1512561600000,\"open\":0.19867,\"high\":0.19869,\"low\":0.196,\"close\":0.19797,\"volume\":1356577.2933801496,\"close_time\":1512568782682,\"vwap\":0.2004929118175718,\"ema1\":0.20315697785866818,\"sma1\":0.21060566666666666,\"sma2\":0.2061669406666667,\"rsi_avg_gain\":0.00042592398494784847,\"rsi_avg_loss\":0.0008033446223323438,\"rsi\":35},{\"period_id\":\"120m210077\",\"size\":\"120m\",\"time\":1512554400000,\"open\":0.19707,\"high\":0.2,\"low\":0.196,\"close\":0.19869,\"volume\":2110134.6971577206,\"close_time\":1512561542485,\"vwap\":0.20049761887623777,\"ema1\":0.20351470046961082,\"sma1\":0.21065168518518515,\"sma2\":0.206231774,\"rsi_avg_gain\":0.00045868736840537527,\"rsi_avg_loss\":0.0008097557471271396,\"rsi\":36},{\"period_id\":\"120m210076\",\"size\":\"120m\",\"time\":1512547200000,\"open\":0.19606,\"high\":0.20158,\"low\":0.1953,\"close\":0.19705,\"volume\":2170755.0190411303,\"close_time\":1512554398487,\"vwap\":0.20050611303806778,\"ema1\":0.20384743843303224,\"sma1\":0.21068798148148143,\"sma2\":0.20631527400000002,\"rsi_avg_gain\":0.0003678171659750193,\"rsi_avg_loss\":0.0008720446507523041,\"rsi\":30},{\"period_id\":\"120m210075\",\"size\":\"120m\",\"time\":1512540000000,\"open\":0.19901,\"high\":0.20293,\"low\":0.195,\"close\":0.19778,\"volume\":2231629.5649462496,\"close_time\":1512547191564,\"vwap\":0.2005124970606556,\"ema1\":0.20431622729048274,\"sma1\":0.21071270370370368,\"sma2\":0.2063039406666667,\"rsi_avg_gain\":0.0003961107941269439,\"rsi_avg_loss\":0.0008829711623486346,\"rsi\":31},{\"period_id\":\"120m210074\",\"size\":\"120m\",\"time\":1512532800000,\"open\":0.201,\"high\":0.20466,\"low\":0.1981,\"close\":0.1982,\"volume\":1667986.7979470093,\"close_time\":1512539956524,\"vwap\":0.20052722142983206,\"ema1\":0.2047670015863781,\"sma1\":0.2107149259259259,\"sma2\":0.20629227400000003,\"rsi_avg_gain\":0.0004265808552136319,\"rsi_avg_loss\":0.0009185843286831468,\"rsi\":32},{\"period_id\":\"120m210073\",\"size\":\"120m\",\"time\":1512525600000,\"open\":0.20164,\"high\":0.204,\"low\":0.2,\"close\":0.2023,\"volume\":1055209.2105613104,\"close_time\":1512532718975,\"vwap\":0.20052745018426904,\"ema1\":0.2052198982475076,\"sma1\":0.21071520370370364,\"sma2\":0.2062139406666667,\"rsi_avg_gain\":0.0004593947671531421,\"rsi_avg_loss\":0.0006738600462741566,\"rsi\":41},{\"period_id\":\"120m210072\",\"size\":\"120m\",\"time\":1512518400000,\"open\":0.20532,\"high\":0.20635,\"low\":0.20011,\"close\":0.20168,\"volume\":1645813.257506141,\"close_time\":1512525583549,\"vwap\":0.20052767945654784,\"ema1\":0.20542127054043918,\"sma1\":0.210693074074074,\"sma2\":0.2061879406666667,\"rsi_avg_gain\":0.00044704051847261386,\"rsi_avg_loss\":0.0007256954344490918,\"rsi\":38},{\"period_id\":\"120m210071\",\"size\":\"120m\",\"time\":1512511200000,\"open\":0.20402,\"high\":0.2055,\"low\":0.203,\"close\":0.20364,\"volume\":2130364.2691354603,\"close_time\":1512518349788,\"vwap\":0.20052521085750197,\"ema1\":0.2056792891984005,\"sma1\":0.2106879814814814,\"sma2\":0.2061706073333334,\"rsi_avg_gain\":0.00048142825066281494,\"rsi_avg_loss\":0.0006307489294067151,\"rsi\":43},{\"period_id\":\"120m210070\",\"size\":\"120m\",\"time\":1512504000000,\"open\":0.20498,\"high\":0.20535,\"low\":0.203,\"close\":0.20485,\"volume\":1083083.8736538694,\"close_time\":1512511198657,\"vwap\":0.20051669718401985,\"ema1\":0.20581992983277295,\"sma1\":0.2106761296296296,\"sma2\":0.20612977400000004,\"rsi_avg_gain\":0.000518461193021493,\"rsi_avg_loss\":0.0005861911547456919,\"rsi\":47},{\"period_id\":\"120m210069\",\"size\":\"120m\",\"time\":1512496800000,\"open\":0.204,\"high\":0.20538,\"low\":0.203,\"close\":0.20402,\"volume\":860057.4203535096,\"close_time\":1512503859014,\"vwap\":0.20051259757533718,\"ema1\":0.205886821545378,\"sma1\":0.21067344444444439,\"sma2\":0.20612777400000007,\"rsi_avg_gain\":0.0004944966694077618,\"rsi_avg_loss\":0.000631282782033822,\"rsi\":44},{\"period_id\":\"120m210068\",\"size\":\"120m\",\"time\":1512489600000,\"open\":0.20488,\"high\":0.2055,\"low\":0.203,\"close\":0.20321,\"volume\":1296081.3617274298,\"close_time\":1512496789885,\"vwap\":0.20050957407823544,\"ema1\":0.20601556785885233,\"sma1\":0.21067437037037032,\"sma2\":0.20602427400000006,\"rsi_avg_gain\":0.0004702271824391278,\"rsi_avg_loss\":0.0006798429960364236,\"rsi\":41},{\"period_id\":\"120m210067\",\"size\":\"120m\",\"time\":1512482400000,\"open\":0.20556,\"high\":0.20556,\"low\":0.2035,\"close\":0.2049,\"volume\":1402909.4253659002,\"close_time\":1512489590218,\"vwap\":0.2005041621145477,\"ema1\":0.20620905529739386,\"sma1\":0.21067501851851847,\"sma2\":0.20583277400000005,\"rsi_avg_gain\":0.0005063985041652146,\"rsi_avg_loss\":0.0006021386111161488,\"rsi\":46},{\"period_id\":\"120m210066\",\"size\":\"120m\",\"time\":1512475200000,\"open\":0.2045,\"high\":0.20646,\"low\":0.204,\"close\":0.20557,\"volume\":905663.6345902705,\"close_time\":1512482395799,\"vwap\":0.20049913336774458,\"ema1\":0.2062993349730762,\"sma1\":0.21066798148148144,\"sma2\":0.20567327400000004,\"rsi_avg_gain\":0.0005453522352548466,\"rsi_avg_loss\":0.0005969185042789293,\"rsi\":48},{\"period_id\":\"120m210065\",\"size\":\"120m\",\"time\":1512468000000,\"open\":0.20576,\"high\":0.20643,\"low\":0.2043,\"close\":0.2045,\"volume\":1058386.8217710692,\"close_time\":1512475196068,\"vwap\":0.20049565984293719,\"ema1\":0.20634963393673664,\"sma1\":0.21066835185185184,\"sma2\":0.20562027400000008,\"rsi_avg_gain\":0.0005049947148898336,\"rsi_avg_loss\":0.0006428353123003853,\"rsi\":44},{\"period_id\":\"120m210064\",\"size\":\"120m\",\"time\":1512460800000,\"open\":0.2057,\"high\":0.2082,\"low\":0.205,\"close\":0.20504,\"volume\":1827906.7326850519,\"close_time\":1512467894122,\"vwap\":0.20049194284725597,\"ema1\":0.2064771948978909,\"sma1\":0.2106489074074074,\"sma2\":0.20565610733333337,\"rsi_avg_gain\":0.0005438404621890515,\"rsi_avg_loss\":0.0006507457209388755,\"rsi\":46},{\"period_id\":\"120m210063\",\"size\":\"120m\",\"time\":1512453600000,\"open\":0.20508,\"high\":0.2071,\"low\":0.20415,\"close\":0.2059,\"volume\":616188.42400966,\"close_time\":1512460761594,\"vwap\":0.20048156824643054,\"ema1\":0.20657631178740063,\"sma1\":0.2106420555555555,\"sma2\":0.20565777400000004,\"rsi_avg_gain\":0.0005856743438959017,\"rsi_avg_loss\":0.0006346492379341736,\"rsi\":48},{\"period_id\":\"120m210062\",\"size\":\"120m\",\"time\":1512446400000,\"open\":0.20531,\"high\":0.20798,\"low\":0.2045,\"close\":0.20485,\"volume\":407359.59938782,\"close_time\":1512453554144,\"vwap\":0.20048019118600646,\"ema1\":0.20662295397963515,\"sma1\":0.21062381481481476,\"sma2\":0.20570827400000002,\"rsi_avg_gain\":0.0005499569857340483,\"rsi_avg_loss\":0.0006834684100829562,\"rsi\":45},{\"period_id\":\"120m210061\",\"size\":\"120m\",\"time\":1512439200000,\"open\":0.20663,\"high\":0.20663,\"low\":0.205,\"close\":0.20515,\"volume\":595110.5549349199,\"close_time\":1512446369424,\"vwap\":0.20047975043552996,\"ema1\":0.20674522666788586,\"sma1\":0.21061353703703697,\"sma2\":0.20577927400000004,\"rsi_avg_gain\":0.000592261369252052,\"rsi_avg_loss\":0.0007129659800893379,\"rsi\":45},{\"period_id\":\"120m210060\",\"size\":\"120m\",\"time\":1512432000000,\"open\":0.20764,\"high\":0.208266,\"low\":0.2062,\"close\":0.20663,\"volume\":508934.48698234,\"close_time\":1512439024419,\"vwap\":0.20047883330379282,\"ema1\":0.20685524230015384,\"sma1\":0.21060366666666663,\"sma2\":0.20583510733333338,\"rsi_avg_gain\":0.0006378199361175944,\"rsi_avg_loss\":0.0006539633631731324,\"rsi\":49},{\"period_id\":\"120m210059\",\"size\":\"120m\",\"time\":1512424800000,\"open\":0.20697,\"high\":0.208266,\"low\":0.206,\"close\":0.208266,\"volume\":918199.0655971197,\"close_time\":1512431956920,\"vwap\":0.2004780992968159,\"ema1\":0.2068707762518886,\"sma1\":0.21060120370370367,\"sma2\":0.2057148406666667,\"rsi_avg_gain\":0.0006868830081266401,\"rsi_avg_loss\":0.0005784220834172196,\"rsi\":54},{\"period_id\":\"120m210058\",\"size\":\"120m\",\"time\":1512417600000,\"open\":0.2069,\"high\":0.2075,\"low\":0.2055,\"close\":0.20697,\"volume\":632957.20665359,\"close_time\":1512424783756,\"vwap\":0.2004745479028015,\"ema1\":0.20677455392443264,\"sma1\":0.2106058333333333,\"sma2\":0.2056783406666667,\"rsi_avg_gain\":0.000640027854905611,\"rsi_avg_loss\":0.0006229160898339288,\"rsi\":51},{\"period_id\":\"120m210057\",\"size\":\"120m\",\"time\":1512410400000,\"open\":0.20754,\"high\":0.20769,\"low\":0.20562,\"close\":0.207,\"volume\":703081.9222192308,\"close_time\":1512417597662,\"vwap\":0.2004718215394257,\"ema1\":0.20676107488473836,\"sma1\":0.21060870370370366,\"sma2\":0.2055448406666667,\"rsi_avg_gain\":0.0006892607668214271,\"rsi_avg_loss\":0.0006685250198211538,\"rsi\":51},{\"period_id\":\"120m210056\",\"size\":\"120m\",\"time\":1512403200000,\"open\":0.20617,\"high\":0.20754,\"low\":0.205,\"close\":0.20754,\"volume\":614650.2980817601,\"close_time\":1512410370625,\"vwap\":0.2004689672183648,\"ema1\":0.20674459729058237,\"sma1\":0.21061759259259252,\"sma2\":0.2056858406666667,\"rsi_avg_gain\":0.0007422808258076908,\"rsi_avg_loss\":0.0006784115598073954,\"rsi\":52},{\"period_id\":\"120m210055\",\"size\":\"120m\",\"time\":1512396000000,\"open\":0.206,\"high\":0.20778,\"low\":0.20474,\"close\":0.20616,\"volume\":555274.1970127601,\"close_time\":1512403151943,\"vwap\":0.20046646924673714,\"ema1\":0.20668974193131218,\"sma1\":0.21062888888888884,\"sma2\":0.20588317400000006,\"rsi_avg_gain\":0.0006932255047159753,\"rsi_avg_loss\":0.0007305970644079642,\"rsi\":49},{\"period_id\":\"120m210054\",\"size\":\"120m\",\"time\":1512388800000,\"open\":0.20601,\"high\":0.2078,\"low\":0.20311,\"close\":0.206,\"volume\":1058620.9446994702,\"close_time\":1512395944827,\"vwap\":0.20046438669534833,\"ema1\":0.20672627585760955,\"sma1\":0.21061685185185178,\"sma2\":0.20624967400000005,\"rsi_avg_gain\":0.0007342428512325871,\"rsi_avg_loss\":0.0007867968385931923,\"rsi\":48},{\"period_id\":\"120m210053\",\"size\":\"120m\",\"time\":1512381600000,\"open\":0.20655,\"high\":0.2079,\"low\":0.205,\"close\":0.20668,\"volume\":937889.2512387097,\"close_time\":1512388797198,\"vwap\":0.20046025637357376,\"ema1\":0.20677636384778952,\"sma1\":0.21058537037037028,\"sma2\":0.20651200733333339,\"rsi_avg_gain\":0.0007907230705581706,\"rsi_avg_loss\":0.0007950119800234367,\"rsi\":50},{\"period_id\":\"120m210052\",\"size\":\"120m\",\"time\":1512374400000,\"open\":0.2073,\"high\":0.20843,\"low\":0.20567,\"close\":0.207,\"volume\":846062.6015024798,\"close_time\":1512381483617,\"vwap\":0.20045504762746116,\"ema1\":0.2067830096303957,\"sma1\":0.21054712962962954,\"sma2\":0.20679367400000004,\"rsi_avg_gain\":0.0008515479221395684,\"rsi_avg_loss\":0.0008315513631021637,\"rsi\":51},{\"period_id\":\"120m210051\",\"size\":\"120m\",\"time\":1512367200000,\"open\":0.20506,\"high\":0.2088,\"low\":0.20506,\"close\":0.20772,\"volume\":369815.74117833993,\"close_time\":1512374346573,\"vwap\":0.2004516599054952,\"ema1\":0.20676804477731953,\"sma1\":0.21051166666666657,\"sma2\":0.20700667400000003,\"rsi_avg_gain\":0.0009170516084579968,\"rsi_avg_loss\":0.0008401322371869457,\"rsi\":52},{\"period_id\":\"120m210050\",\"size\":\"120m\",\"time\":1512360000000,\"open\":0.20511,\"high\":0.20694,\"low\":0.205,\"close\":0.20526,\"volume\":148488.14376757,\"close_time\":1512367074218,\"vwap\":0.20045093038417083,\"ema1\":0.20670239269299673,\"sma1\":0.21049361111111103,\"sma2\":0.207210674,\"rsi_avg_gain\":0.0007983632706470742,\"rsi_avg_loss\":0.0009047577938936338,\"rsi\":47},{\"period_id\":\"120m210049\",\"size\":\"120m\",\"time\":1512352800000,\"open\":0.20479,\"high\":0.20596,\"low\":0.20479,\"close\":0.20591,\"volume\":112455.98687227,\"close_time\":1512359645187,\"vwap\":0.200450751629984,\"ema1\":0.20680186805113443,\"sma1\":0.2104800925925925,\"sma2\":0.20744550733333336,\"rsi_avg_gain\":0.0008597758299276184,\"rsi_avg_loss\":0.0009243545472700663,\"rsi\":48},{\"period_id\":\"120m210048\",\"size\":\"120m\",\"time\":1512345600000,\"open\":0.2025,\"high\":0.205,\"low\":0.2022,\"close\":0.205,\"volume\":244383.31424754005,\"close_time\":1512352788800,\"vwap\":0.20045069407972754,\"ema1\":0.20686337619259199,\"sma1\":0.21046666666666655,\"sma2\":0.207812174,\"rsi_avg_gain\":0.0008559124322297413,\"rsi_avg_loss\":0.0009954587432139176,\"rsi\":46},{\"period_id\":\"120m210047\",\"size\":\"120m\",\"time\":1512338400000,\"open\":0.203,\"high\":0.20596,\"low\":0.201,\"close\":0.20321,\"volume\":1016917.7492541395,\"close_time\":1512345595739,\"vwap\":0.2004504681226418,\"ema1\":0.20699188489552936,\"sma1\":0.21043925925925913,\"sma2\":0.2083210073333333,\"rsi_avg_gain\":0.000784059542401261,\"rsi_avg_loss\":0.0010720324926919112,\"rsi\":42},{\"period_id\":\"120m210046\",\"size\":\"120m\",\"time\":1512331200000,\"open\":0.20927755,\"high\":0.21072,\"low\":0.2021,\"close\":0.2021,\"volume\":1914351.5573701388,\"close_time\":1512338396781,\"vwap\":0.20044836359391274,\"ema1\":0.2072527045434969,\"sma1\":0.21036685185185175,\"sma2\":0.20871917399999998,\"rsi_avg_gain\":0.0007589871995090503,\"rsi_avg_loss\":0.001154496530591289,\"rsi\":40},{\"period_id\":\"120m210045\",\"size\":\"120m\",\"time\":1512324000000,\"open\":0.20861,\"high\":0.21,\"low\":0.20824,\"close\":0.209,\"volume\":407974.7964288199,\"close_time\":1512331113146,\"vwap\":0.2004363659200659,\"ema1\":0.20760806347753116,\"sma1\":0.21029731481481473,\"sma2\":0.20892100733333333,\"rsi_avg_gain\":0.0008173708302405158,\"rsi_avg_loss\":0.0007125347252521584,\"rsi\":53},{\"period_id\":\"120m210044\",\"size\":\"120m\",\"time\":1512316800000,\"open\":0.20906,\"high\":0.21,\"low\":0.2084,\"close\":0.20978,\"volume\":615420.8094476499,\"close_time\":1512323994319,\"vwap\":0.2004347137785833,\"ema1\":0.20751206785529194,\"sma1\":0.21023064814814807,\"sma2\":0.20914134066666665,\"rsi_avg_gain\":0.0008802455094897862,\"rsi_avg_loss\":0.0007073450887330933,\"rsi\":55},{\"period_id\":\"120m210043\",\"size\":\"120m\",\"time\":1512309600000,\"open\":0.211,\"high\":0.2118,\"low\":0.208,\"close\":0.2095,\"volume\":1208601.3046583012,\"close_time\":1512316768941,\"vwap\":0.20043091702171612,\"ema1\":0.2073556587418638,\"sma1\":0.21014851851851843,\"sma2\":0.20935467399999996,\"rsi_avg_gain\":0.0009264182409890003,\"rsi_avg_loss\":0.0007617562494048696,\"rsi\":55},{\"period_id\":\"120m210042\",\"size\":\"120m\",\"time\":1512302400000,\"open\":0.2093,\"high\":0.213,\"low\":0.20887,\"close\":0.211,\"volume\":2451547.833988342,\"close_time\":1512309491987,\"vwap\":0.20041871338178177,\"ema1\":0.2072077731378544,\"sma1\":0.21005694444444434,\"sma2\":0.20939200733333332,\"rsi_avg_gain\":0.0009976811826035387,\"rsi_avg_loss\":0.0007049682685898595,\"rsi\":59},{\"period_id\":\"120m210041\",\"size\":\"120m\",\"time\":1512295200000,\"open\":0.207,\"high\":0.2094,\"low\":0.20601,\"close\":0.20887,\"volume\":657082.7732712004,\"close_time\":1512302385755,\"vwap\":0.20037689305656742,\"ema1\":0.20694624025080988,\"sma1\":0.2099976851851851,\"sma2\":0.20954367399999996,\"rsi_avg_gain\":0.0009105797351115036,\"rsi_avg_loss\":0.0007591965969429255,\"rsi\":55},{\"period_id\":\"120m210040\",\"size\":\"120m\",\"time\":1512288000000,\"open\":0.20712,\"high\":0.208,\"low\":0.20605,\"close\":0.2069,\"volume\":404712.48956450995,\"close_time\":1512295180202,\"vwap\":0.20037398220776262,\"ema1\":0.20681356716465885,\"sma1\":0.20997175925925918,\"sma2\":0.20967867399999998,\"rsi_avg_gain\":0.0008290858685816192,\"rsi_avg_loss\":0.0008175963351693044,\"rsi\":50},{\"period_id\":\"120m210039\",\"size\":\"120m\",\"time\":1512280800000,\"open\":0.2053,\"high\":0.208,\"low\":0.20519,\"close\":0.20711,\"volume\":91034.59465931001,\"close_time\":1512287925924,\"vwap\":0.20037263786247705,\"ema1\":0.2068076062794629,\"sma1\":0.2099518518518518,\"sma2\":0.209827174,\"rsi_avg_gain\":0.0008928617046263591,\"rsi_avg_loss\":0.0008643345147977134,\"rsi\":51},{\"period_id\":\"120m210038\",\"size\":\"120m\",\"time\":1512273600000,\"open\":0.20466,\"high\":0.20735,\"low\":0.20465,\"close\":0.20515,\"volume\":341844.85708863003,\"close_time\":1512280257377,\"vwap\":0.2003725458915495,\"ema1\":0.20678675154011553,\"sma1\":0.20992879629629627,\"sma2\":0.20995800733333334,\"rsi_avg_gain\":0.0008107741434437722,\"rsi_avg_loss\":0.0009308217851667682,\"rsi\":47},{\"period_id\":\"120m210037\",\"size\":\"120m\",\"time\":1512266400000,\"open\":0.20416,\"high\":0.20511,\"low\":0.204,\"close\":0.20483,\"volume\":44043.33960736001,\"close_time\":1512273462247,\"vwap\":0.20037210029735417,\"ema1\":0.2068996309566752,\"sma1\":0.20995537037037032,\"sma2\":0.21014017399999999,\"rsi_avg_gain\":0.0008485260006317557,\"rsi_avg_loss\":0.0010024234609488272,\"rsi\":46},{\"period_id\":\"120m210036\",\"size\":\"120m\",\"time\":1512259200000,\"open\":0.2061,\"high\":0.2065,\"low\":0.204,\"close\":0.20412,\"volume\":437910.88185003994,\"close_time\":1512266341154,\"vwap\":0.20037208091350367,\"ema1\":0.20704236412610108,\"sma1\":0.20996101851851845,\"sma2\":0.210238174,\"rsi_avg_gain\":0.0008591818468341972,\"rsi_avg_loss\":0.001079532957944891,\"rsi\":44},{\"period_id\":\"120m210035\",\"size\":\"120m\",\"time\":1512252000000,\"open\":0.2075,\"high\":0.20869,\"low\":0.205,\"close\":0.206,\"volume\":627978.90874285,\"close_time\":1512259172274,\"vwap\":0.20037147926732007,\"ema1\":0.2072439064796253,\"sma1\":0.20996851851851847,\"sma2\":0.21022150733333334,\"rsi_avg_gain\":0.0009252727581291354,\"rsi_avg_loss\":0.0010179585700944985,\"rsi\":48},{\"period_id\":\"120m210034\",\"size\":\"120m\",\"time\":1512244800000,\"open\":0.20626,\"high\":0.208,\"low\":0.20587,\"close\":0.20749,\"volume\":375143.7825295599,\"close_time\":1512251968347,\"vwap\":0.20037011063240576,\"ema1\":0.20732969313339256,\"sma1\":0.20998703703703697,\"sma2\":0.21019650733333337,\"rsi_avg_gain\":0.0009964475856775305,\"rsi_avg_loss\":0.000981647690870997,\"rsi\":50},{\"period_id\":\"120m210033\",\"size\":\"120m\",\"time\":1512237600000,\"open\":0.20752,\"high\":0.20752,\"low\":0.2055,\"close\":0.20671,\"volume\":269664.32342694,\"close_time\":1512244785524,\"vwap\":0.20036937018596707,\"ema1\":0.20731863748741963,\"sma1\":0.20999425925925921,\"sma2\":0.21019750733333334,\"rsi_avg_gain\":0.0010130973999604171,\"rsi_avg_loss\":0.0010571590517072275,\"rsi\":49},{\"period_id\":\"120m210032\",\"size\":\"120m\",\"time\":1512230400000,\"open\":0.20577,\"high\":0.208,\"low\":0.2043,\"close\":0.20702,\"volume\":548313.6903024999,\"close_time\":1512237578495,\"vwap\":0.20036898087881863,\"ema1\":0.20736061248655202,\"sma1\":0.20999425925925921,\"sma2\":0.2101738406666667,\"rsi_avg_gain\":0.0010910279691881415,\"rsi_avg_loss\":0.0011146328249154753,\"rsi\":49},{\"period_id\":\"120m210031\",\"size\":\"120m\",\"time\":1512223200000,\"open\":0.2088,\"high\":0.2088,\"low\":0.205,\"close\":0.20593044,\"volume\":507990.8551120195,\"close_time\":1512230394515,\"vwap\":0.2003672720716115,\"ema1\":0.20738410300286594,\"sma1\":0.20994981481481473,\"sma2\":0.21013533333333337,\"rsi_avg_gain\":0.0010911408898949203,\"rsi_avg_loss\":0.0012003738114474349,\"rsi\":48},{\"period_id\":\"120m210030\",\"size\":\"120m\",\"time\":1512216000000,\"open\":0.2081,\"high\":0.2094,\"low\":0.207,\"close\":0.2087,\"volume\":644599.4130293902,\"close_time\":1512223178420,\"vwap\":0.2003653523203987,\"ema1\":0.20748435562375325,\"sma1\":0.209906574074074,\"sma2\":0.21007350000000002,\"rsi_avg_gain\":0.001175074804502222,\"rsi_avg_loss\":0.0010796671815587757,\"rsi\":52},{\"period_id\":\"120m210029\",\"size\":\"120m\",\"time\":1512208800000,\"open\":0.21,\"high\":0.211,\"low\":0.2061,\"close\":0.2081,\"volume\":1036579.6382968901,\"close_time\":1512215967286,\"vwap\":0.20036266392736496,\"ema1\":0.2074005180805638,\"sma1\":0.20983249999999992,\"sma2\":0.21001350000000005,\"rsi_avg_gain\":0.0012193113279254707,\"rsi_avg_loss\":0.0011627185032171432,\"rsi\":51},{\"period_id\":\"120m210028\",\"size\":\"120m\",\"time\":1512201600000,\"open\":0.2091,\"high\":0.211,\"low\":0.2075,\"close\":0.21,\"volume\":843859.35179703,\"close_time\":1512208772992,\"vwap\":0.20035708953908488,\"ema1\":0.2073522779481889,\"sma1\":0.20976287037037025,\"sma2\":0.20992100000000005,\"rsi_avg_gain\":0.0013131045069966609,\"rsi_avg_loss\":0.0011060045419261553,\"rsi\":54},{\"period_id\":\"120m210027\",\"size\":\"120m\",\"time\":1512194400000,\"open\":0.20701,\"high\":0.20999,\"low\":0.20612,\"close\":0.20916,\"volume\":324696.8229079299,\"close_time\":1512201587493,\"vwap\":0.20035223841409544,\"ema1\":0.20716967642737433,\"sma1\":0.20971555555555546,\"sma2\":0.20984833333333336,\"rsi_avg_gain\":0.001349497161381021,\"rsi_avg_loss\":0.0011910818143820133,\"rsi\":53},{\"period_id\":\"120m210026\",\"size\":\"120m\",\"time\":1512187200000,\"open\":0.20948,\"high\":0.20958,\"low\":0.2065,\"close\":0.2066,\"volume\":423074.3872495901,\"close_time\":1512194238488,\"vwap\":0.20035145401135523,\"ema1\":0.20703241273271047,\"sma1\":0.20966759259259252,\"sma2\":0.20982000000000006,\"rsi_avg_gain\":0.0012563815584103297,\"rsi_avg_loss\":0.001282703492411399,\"rsi\":49},{\"period_id\":\"120m210025\",\"size\":\"120m\",\"time\":1512180000000,\"open\":0.20896,\"high\":0.20956,\"low\":0.207,\"close\":0.20911,\"volume\":97823.74024907005,\"close_time\":1512186828813,\"vwap\":0.20035067975483062,\"ema1\":0.20706223430048362,\"sma1\":0.20960861111111107,\"sma2\":0.2097263333333334,\"rsi_avg_gain\":0.0013530262936726628,\"rsi_avg_loss\":0.0011882960687507385,\"rsi\":53},{\"period_id\":\"120m210024\",\"size\":\"120m\",\"time\":1512172800000,\"open\":0.21257,\"high\":0.2126,\"low\":0.20706,\"close\":0.20896,\"volume\":1319666.9405931998,\"close_time\":1512179990311,\"vwap\":0.20035055977534377,\"ema1\":0.20692100907982733,\"sma1\":0.20952953703703697,\"sma2\":0.20963566666666678,\"rsi_avg_gain\":0.0014455667778013304,\"rsi_avg_loss\":0.0012797034586546415,\"rsi\":53},{\"period_id\":\"120m210023\",\"size\":\"120m\",\"time\":1512165600000,\"open\":0.21203,\"high\":0.215,\"low\":0.21065,\"close\":0.21257,\"volume\":2184093.836138379,\"close_time\":1512172768309,\"vwap\":0.20034087602990752,\"ema1\":0.20678038901636714,\"sma1\":0.20943694444444438,\"sma2\":0.20948033333333343,\"rsi_avg_gain\":0.0015567642222475864,\"rsi_avg_loss\":0.001100449878551152,\"rsi\":59},{\"period_id\":\"120m210022\",\"size\":\"120m\",\"time\":1512158400000,\"open\":0.2096,\"high\":0.21236,\"low\":0.20813,\"close\":0.21236,\"volume\":1072673.46061336,\"close_time\":1512165578647,\"vwap\":0.20031324233923464,\"ema1\":0.20638110550025454,\"sma1\":0.20936768518518514,\"sma2\":0.20931766666666674,\"rsi_avg_gain\":0.001660361470112784,\"rsi_avg_loss\":0.001185099869208933,\"rsi\":58},{\"period_id\":\"120m210021\",\"size\":\"120m\",\"time\":1512151200000,\"open\":0.20898,\"high\":0.21,\"low\":0.2071,\"close\":0.2096,\"volume\":906369.1453939505,\"close_time\":1512158399931,\"vwap\":0.20030492689567234,\"ema1\":0.20596876794854796,\"sma1\":0.20930212962962957,\"sma2\":0.20919100000000007,\"rsi_avg_gain\":0.0015757738908906914,\"rsi_avg_loss\":0.00127626139760962,\"rsi\":55},{\"period_id\":\"120m210020\",\"size\":\"120m\",\"time\":1512144000000,\"open\":0.20799,\"high\":0.212,\"low\":0.20799,\"close\":0.20841,\"volume\":1272584.15052845,\"close_time\":1512151168203,\"vwap\":0.2002996672509564,\"ema1\":0.20571833815189608,\"sma1\":0.2092280555555555,\"sma2\":0.20910916666666676,\"rsi_avg_gain\":0.001605448805574591,\"rsi_avg_loss\":0.0013744353512718985,\"rsi\":54},{\"period_id\":\"120m210019\",\"size\":\"120m\",\"time\":1512136800000,\"open\":0.20921,\"high\":0.20998,\"low\":0.207,\"close\":0.20876,\"volume\":1429491.255365281,\"close_time\":1512143985731,\"vwap\":0.20028698266208433,\"ema1\":0.2055327063003027,\"sma1\":0.2091541666666666,\"sma2\":0.20902983333333341,\"rsi_avg_gain\":0.0017289448675418674,\"rsi_avg_loss\":0.001453238070600507,\"rsi\":54},{\"period_id\":\"120m210018\",\"size\":\"120m\",\"time\":1512129600000,\"open\":0.20256,\"high\":0.2169,\"low\":0.20121,\"close\":0.2095,\"volume\":2799926.6295868102,\"close_time\":1512136798511,\"vwap\":0.200275199847019,\"ema1\":0.20531013432101325,\"sma1\":0.20901481481481474,\"sma2\":0.2089548333333334,\"rsi_avg_gain\":0.0018619406265835494,\"rsi_avg_loss\":0.0015081025375697774,\"rsi\":55},{\"period_id\":\"120m210017\",\"size\":\"120m\",\"time\":1512122400000,\"open\":0.202104,\"high\":0.207,\"low\":0.201,\"close\":0.20258,\"volume\":1291062.32261302,\"close_time\":1512129593960,\"vwap\":0.20023292067998433,\"ema1\":0.20502117806729003,\"sma1\":0.2089685185185185,\"sma2\":0.20900850000000007,\"rsi_avg_gain\":0.0014728591363207468,\"rsi_avg_loss\":0.0016241104250751448,\"rsi\":48},{\"period_id\":\"120m210016\",\"size\":\"120m\",\"time\":1512115200000,\"open\":0.19814,\"high\":0.20206,\"low\":0.196,\"close\":0.20206,\"volume\":713837.5213206597,\"close_time\":1512122388374,\"vwap\":0.20022860277091276,\"ema1\":0.205189535175379,\"sma1\":0.20896796296296294,\"sma2\":0.2090548333333334,\"rsi_avg_gain\":0.0015461559929608026,\"rsi_avg_loss\":0.0017490419962347713,\"rsi\":47},{\"period_id\":\"120m210015\",\"size\":\"120m\",\"time\":1512108000000,\"open\":0.19743,\"high\":0.19982,\"low\":0.1961,\"close\":0.1971,\"volume\":557649.4492912301,\"close_time\":1512115180599,\"vwap\":0.20022870706151472,\"ema1\":0.2054053651874741,\"sma1\":0.20899740740740735,\"sma2\":0.2091865000000001,\"rsi_avg_gain\":0.0012835526078039418,\"rsi_avg_loss\":0.0018835836882528307,\"rsi\":41},{\"period_id\":\"120m210014\",\"size\":\"120m\",\"time\":1512100800000,\"open\":0.199,\"high\":0.20197,\"low\":0.19702,\"close\":0.1975,\"volume\":635311.7339892703,\"close_time\":1512107990517,\"vwap\":0.2002295140620192,\"ema1\":0.2059781489935068,\"sma1\":0.20898657407407406,\"sma2\":0.20932833333333345,\"rsi_avg_gain\":0.0013822874237888606,\"rsi_avg_loss\":0.0019977055104261243,\"rsi\":41},{\"period_id\":\"120m210013\",\"size\":\"120m\",\"time\":1512093600000,\"open\":0.20012,\"high\":0.201,\"low\":0.19722,\"close\":0.1976,\"volume\":236566.50866583994,\"close_time\":1512100510000,\"vwap\":0.20022996091202422,\"ema1\":0.2065628489240935,\"sma1\":0.20897259259259257,\"sma2\":0.20943650000000008,\"rsi_avg_gain\":0.001488617225618773,\"rsi_avg_loss\":0.002143682857381981,\"rsi\":41},{\"period_id\":\"120m210012\",\"size\":\"120m\",\"time\":1512086400000,\"open\":0.20222,\"high\":0.2041,\"low\":0.198,\"close\":0.20012,\"volume\":698903.8259039099,\"close_time\":1512093589718,\"vwap\":0.2002300666955907,\"ema1\":0.20718097643609992,\"sma1\":0.20892999999999995,\"sma2\":0.20950633333333343,\"rsi_avg_gain\":0.0016031262429740633,\"rsi_avg_loss\":0.002114735384872903,\"rsi\":43},{\"period_id\":\"120m210011\",\"size\":\"120m\",\"time\":1512079200000,\"open\":0.20296,\"high\":0.20684,\"low\":0.20112,\"close\":0.2026,\"volume\":1227702.9432458305,\"close_time\":1512086391967,\"vwap\":0.20023005053221998,\"ema1\":0.20766794032824476,\"sma1\":0.20887870370370368,\"sma2\":0.20958883333333342,\"rsi_avg_gain\":0.0017264436462797604,\"rsi_avg_loss\":0.0020866381067862027,\"rsi\":45},{\"period_id\":\"120m210010\",\"size\":\"120m\",\"time\":1512072000000,\"open\":0.2039,\"high\":0.2045,\"low\":0.19901,\"close\":0.2024,\"volume\":1258077.1042229799,\"close_time\":1512079169720,\"vwap\":0.20022668742942154,\"ema1\":0.20801745345433062,\"sma1\":0.20884907407407405,\"sma2\":0.20968183333333337,\"rsi_avg_gain\":0.0018438623883012802,\"rsi_avg_loss\":0.0022471487303851417,\"rsi\":45},{\"period_id\":\"120m210009\",\"size\":\"120m\",\"time\":1512064800000,\"open\":0.19698,\"high\":0.2046,\"low\":0.19566,\"close\":0.2039,\"volume\":1647673.1437247903,\"close_time\":1512071867725,\"vwap\":0.20022545452973042,\"ema1\":0.2084048640373879,\"sma1\":0.2088435185185185,\"sma2\":0.20974683333333338,\"rsi_avg_gain\":0.001985697956632148,\"rsi_avg_loss\":0.0023046217096455374,\"rsi\":46},{\"period_id\":\"120m210008\",\"size\":\"120m\",\"time\":1512057600000,\"open\":0.19378,\"high\":0.19889,\"low\":0.19002,\"close\":0.197,\"volume\":1298684.4076519401,\"close_time\":1512064799932,\"vwap\":0.20022224904656963,\"ema1\":0.20871554431582845,\"sma1\":0.20887231481481483,\"sma2\":0.20992133333333338,\"rsi_avg_gain\":0.0016076747225269295,\"rsi_avg_loss\":0.0024819003026951944,\"rsi\":39},{\"period_id\":\"120m210007\",\"size\":\"120m\",\"time\":1512050400000,\"open\":0.1957,\"high\":0.196,\"low\":0.19,\"close\":0.19341,\"volume\":3496820.0965343695,\"close_time\":1512057579478,\"vwap\":0.2002307742881994,\"ema1\":0.20952351288933385,\"sma1\":0.20893879629629628,\"sma2\":0.21015883333333338,\"rsi_avg_gain\":0.001455188162721308,\"rsi_avg_loss\":0.002672815710594825,\"rsi\":35},{\"period_id\":\"120m210006\",\"size\":\"120m\",\"time\":1512043200000,\"open\":0.201,\"high\":0.205,\"low\":0.1957,\"close\":0.196,\"volume\":2207844.756551129,\"close_time\":1512050392604,\"vwap\":0.2002894844004671,\"ema1\":0.2106347896403224,\"sma1\":0.208925,\"sma2\":0.2103088333333334,\"rsi_avg_gain\":0.0015671257136998702,\"rsi_avg_loss\":0.0026791861498713493,\"rsi\":37},{\"period_id\":\"120m210005\",\"size\":\"120m\",\"time\":1512036000000,\"open\":0.20723,\"high\":0.20859,\"low\":0.2,\"close\":0.20132,\"volume\":1182444.4129667808,\"close_time\":1512043188497,\"vwap\":0.20029104527010094,\"ema1\":0.211644085477586,\"sma1\":0.20887981481481482,\"sma2\":0.21035600000000004,\"rsi_avg_gain\":0.001687673845522937,\"rsi_avg_loss\":0.002476046622938377,\"rsi\":41},{\"period_id\":\"120m210004\",\"size\":\"120m\",\"time\":1512028800000,\"open\":0.206,\"high\":0.2105,\"low\":0.206,\"close\":0.20719,\"volume\":1239318.2030057004,\"close_time\":1512035986958,\"vwap\":0.20028828370637747,\"ema1\":0.21235609137259193,\"sma1\":0.20882814814814818,\"sma2\":0.21028283333333336,\"rsi_avg_gain\":0.001817494910563163,\"rsi_avg_loss\":0.0022149732862413282,\"rsi\":45},{\"period_id\":\"120m210003\",\"size\":\"120m\",\"time\":1512021600000,\"open\":0.2058,\"high\":0.208,\"low\":0.20034,\"close\":0.206,\"volume\":1034005.3892385698,\"close_time\":1512028795858,\"vwap\":0.2002793496386797,\"ema1\":0.21271237353621897,\"sma1\":0.20880490740740745,\"sma2\":0.21024950000000003,\"rsi_avg_gain\":0.0018657637498372508,\"rsi_avg_loss\":0.0023853558467214304,\"rsi\":44},{\"period_id\":\"120m210002\",\"size\":\"120m\",\"time\":1512014400000,\"open\":0.20938,\"high\":0.21089,\"low\":0.205,\"close\":0.20788,\"volume\":707748.94552877,\"close_time\":1512021589204,\"vwap\":0.20027622984602422,\"ema1\":0.21317529584906167,\"sma1\":0.20873240740740742,\"sma2\":0.21019433333333337,\"rsi_avg_gain\":0.00200928403828627,\"rsi_avg_loss\":0.002424229373392308,\"rsi\":45},{\"period_id\":\"120m210001\",\"size\":\"120m\",\"time\":1512007200000,\"open\":0.20915,\"high\":0.21,\"low\":0.20531,\"close\":0.20941,\"volume\":290501.8359916002,\"close_time\":1512014340616,\"vwap\":0.20027273439837498,\"ema1\":0.21354048866623834,\"sma1\":0.2086953703703704,\"sma2\":0.2100956666666667,\"rsi_avg_gain\":0.0021638443489236754,\"rsi_avg_loss\":0.0024930162482686394,\"rsi\":46},{\"period_id\":\"120m210000\",\"size\":\"120m\",\"time\":1512000000000,\"open\":0.201,\"high\":0.20999,\"low\":0.2,\"close\":0.20998,\"volume\":1165564.5829144393,\"close_time\":1512007030383,\"vwap\":0.2002721148576742,\"ema1\":0.2138253499535651,\"sma1\":0.20865833333333336,\"sma2\":0.2099876666666667,\"rsi_avg_gain\":0.0023302939142254967,\"rsi_avg_loss\":0.002640940575058536,\"rsi\":47},{\"period_id\":\"120m209999\",\"size\":\"120m\",\"time\":1511992800000,\"open\":0.20395,\"high\":0.21,\"low\":0.2,\"close\":0.20105,\"volume\":1814667.9738222098,\"close_time\":1511999980364,\"vwap\":0.20026853299909575,\"ema1\":0.21409054650208684,\"sma1\":0.20863870370370372,\"sma2\":0.2100181666666667,\"rsi_avg_gain\":0.001822624215319766,\"rsi_avg_loss\":0.002844089850063039,\"rsi\":39},{\"period_id\":\"120m209998\",\"size\":\"120m\",\"time\":1511985600000,\"open\":0.1959,\"high\":0.21,\"low\":0.191,\"close\":0.20478,\"volume\":4757349.276058303,\"close_time\":1511992776919,\"vwap\":0.20025805700873595,\"ema1\":0.21498989453671352,\"sma1\":0.20861925925925925,\"sma2\":0.20996150000000005,\"rsi_avg_gain\":0.0019628260780366713,\"rsi_avg_loss\":0.0027759429154525046,\"rsi\":41},{\"period_id\":\"120m209997\",\"size\":\"120m\",\"time\":1511978400000,\"open\":0.21606,\"high\":0.21957,\"low\":0.192,\"close\":0.19899,\"volume\":4420248.183224255,\"close_time\":1511985598964,\"vwap\":0.2002427401510842,\"ema1\":0.2156940251944179,\"sma1\":0.2085112962962963,\"sma2\":0.21001166666666674,\"rsi_avg_gain\":0.0016684280840394933,\"rsi_avg_loss\":0.002989476985871928,\"rsi\":36},{\"period_id\":\"120m209996\",\"size\":\"120m\",\"time\":1511971200000,\"open\":0.21998,\"high\":0.223,\"low\":0.216,\"close\":0.216,\"volume\":2351105.5345271663,\"close_time\":1511978391883,\"vwap\":0.20021451746517507,\"ema1\":0.21684602693196398,\"sma1\":0.20834462962962963,\"sma2\":0.20977833333333334,\"rsi_avg_gain\":0.001796768705888685,\"rsi_avg_loss\":0.0019109752155543843,\"rsi\":48},{\"period_id\":\"120m209995\",\"size\":\"120m\",\"time\":1511964000000,\"open\":0.22841,\"high\":0.23,\"low\":0.218,\"close\":0.218,\"volume\":4281064.854303387,\"close_time\":1511971197605,\"vwap\":0.2001218260369626,\"ema1\":0.21690437361692702,\"sma1\":0.20811185185185188,\"sma2\":0.20949500000000004,\"rsi_avg_gain\":0.0019349816832647377,\"rsi_avg_loss\":0.001904127155212414,\"rsi\":50},{\"period_id\":\"120m209994\",\"size\":\"120m\",\"time\":1511956800000,\"open\":0.22286,\"high\":0.22878,\"low\":0.22169,\"close\":0.22799,\"volume\":3263738.472919323,\"close_time\":1511963974595,\"vwap\":0.19989321844484878,\"ema1\":0.2168288131767151,\"sma1\":0.20787731481481483,\"sma2\":0.20903600000000006,\"rsi_avg_gain\":0.002083826428131256,\"rsi_avg_loss\":0.0012821369363825996,\"rsi\":62},{\"period_id\":\"120m209993\",\"size\":\"120m\",\"time\":1511949600000,\"open\":0.22398,\"high\":0.22488,\"low\":0.22111,\"close\":0.22242,\"volume\":2361820.0209971713,\"close_time\":1511956799508,\"vwap\":0.19972675760430714,\"ema1\":0.21605907615441958,\"sma1\":0.20768370370370373,\"sma2\":0.20868383333333335,\"rsi_avg_gain\":0.0018156592302951999,\"rsi_avg_loss\":0.0013807628545658764,\"rsi\":57},{\"period_id\":\"120m209992\",\"size\":\"120m\",\"time\":1511942400000,\"open\":0.2195,\"high\":0.22488,\"low\":0.2177,\"close\":0.2239,\"volume\":2649396.6815256095,\"close_time\":1511949549969,\"vwap\":0.1995940423941611,\"ema1\":0.2156203917512761,\"sma1\":0.20746259259259267,\"sma2\":0.20830200000000007,\"rsi_avg_gain\":0.001955325324933292,\"rsi_avg_loss\":0.0013731292279940222,\"rsi\":59},{\"period_id\":\"120m209991\",\"size\":\"120m\",\"time\":1511935200000,\"open\":0.2175,\"high\":0.22077,\"low\":0.214,\"close\":0.2205,\"volume\":2973725.5863664374,\"close_time\":1511942396778,\"vwap\":0.19946167994452985,\"ema1\":0.21504938428584686,\"sma1\":0.20727925925925936,\"sma2\":0.2079796666666667,\"rsi_avg_gain\":0.0018441965037743157,\"rsi_avg_loss\":0.0014787545532243315,\"rsi\":55},{\"period_id\":\"120m209990\",\"size\":\"120m\",\"time\":1511928000000,\"open\":0.22001,\"high\":0.22217,\"low\":0.2151,\"close\":0.2175,\"volume\":1326236.08597484,\"close_time\":1511935186922,\"vwap\":0.19936834863021974,\"ema1\":0.2146734797538363,\"sma1\":0.20712027777777783,\"sma2\":0.2077513333333334,\"rsi_avg_gain\":0.001755288542526186,\"rsi_avg_loss\":0.001592504903472357,\"rsi\":52},{\"period_id\":\"120m209989\",\"size\":\"120m\",\"time\":1511920800000,\"open\":0.22788,\"high\":0.22788,\"low\":0.22,\"close\":0.22,\"volume\":579065.919381,\"close_time\":1511926770791,\"vwap\":0.19933679996120304,\"ema1\":0.2144785473230664,\"sma1\":0.2068621296296297,\"sma2\":0.20747766666666675,\"rsi_avg_gain\":0.0018903107381051233,\"rsi_avg_loss\":0.0015226975883548457,\"rsi\":55},{\"period_id\":\"120m209988\",\"size\":\"120m\",\"time\":1511913600000,\"open\":0.23498,\"high\":0.235,\"low\":0.22137,\"close\":0.227,\"volume\":1532362.66207104,\"close_time\":1511920523754,\"vwap\":0.19933111855529903,\"ema1\":0.21409775748327786,\"sma1\":0.20650898148148156,\"sma2\":0.20706983333333343,\"rsi_avg_gain\":0.002035719256420902,\"rsi_avg_loss\":0.0011013666336129103,\"rsi\":65},{\"period_id\":\"120m209987\",\"size\":\"120m\",\"time\":1511906400000,\"open\":0.22599,\"high\":0.235,\"low\":0.22402,\"close\":0.23374,\"volume\":5473626.6050023865,\"close_time\":1511913591464,\"vwap\":0.1992690437937178,\"ema1\":0.2132079476545384,\"sma1\":0.20614666666666673,\"sma2\":0.2065958333333334,\"rsi_avg_gain\":0.002192313045376356,\"rsi_avg_loss\":0.0006676256054292884,\"rsi\":77},{\"period_id\":\"120m209986\",\"size\":\"120m\",\"time\":1511899200000,\"open\":0.22344,\"high\":0.2275,\"low\":0.221,\"close\":0.22599,\"volume\":1912175.8815506604,\"close_time\":1511906390069,\"vwap\":0.1987605577609995,\"ema1\":0.21179194404450657,\"sma1\":0.2058545370370371,\"sma2\":0.20629600000000006,\"rsi_avg_gain\":0.0017647986642514598,\"rsi_avg_loss\":0.0007189814212315414,\"rsi\":71},{\"period_id\":\"120m209985\",\"size\":\"120m\",\"time\":1511892000000,\"open\":0.22245,\"high\":0.22395,\"low\":0.22021,\"close\":0.22111,\"volume\":1405796.5932471403,\"close_time\":1511899189317,\"vwap\":0.19868479450786483,\"ema1\":0.21081276777171393,\"sma1\":0.20559564814814818,\"sma2\":0.2060825,\"rsi_avg_gain\":0.0015251677922708032,\"rsi_avg_loss\":0.0007742876844031984,\"rsi\":66},{\"period_id\":\"120m209984\",\"size\":\"120m\",\"time\":1511884800000,\"open\":0.2223,\"high\":0.22769,\"low\":0.2201,\"close\":0.223,\"volume\":3903963.718945954,\"close_time\":1511891998498,\"vwap\":0.19863207088656465,\"ema1\":0.21010261382493559,\"sma1\":0.20531611111111112,\"sma2\":0.20581599999999997,\"rsi_avg_gain\":0.0016424883916762495,\"rsi_avg_loss\":0.0006884636601265212,\"rsi\":70},{\"period_id\":\"120m209983\",\"size\":\"120m\",\"time\":1511877600000,\"open\":0.21498,\"high\":0.2223,\"low\":0.21382,\"close\":0.2223,\"volume\":3476791.268732116,\"close_time\":1511884789277,\"vwap\":0.19836473112490302,\"ema1\":0.20921313891631046,\"sma1\":0.20508092592592592,\"sma2\":0.20551100000000003,\"rsi_avg_gain\":0.0017149874987282682,\"rsi_avg_loss\":0.0007414224032131767,\"rsi\":70},{\"period_id\":\"120m209982\",\"size\":\"120m\",\"time\":1511870400000,\"open\":0.21701,\"high\":0.21897,\"low\":0.21,\"close\":0.21324,\"volume\":1580030.8104449601,\"close_time\":1511877576662,\"vwap\":0.19820213036675813,\"ema1\":0.20831059677260774,\"sma1\":0.20487055555555556,\"sma2\":0.20535616666666667,\"rsi_avg_gain\":0.0011499865370919824,\"rsi_avg_loss\":0.0007984548957680363,\"rsi\":59},{\"period_id\":\"120m209981\",\"size\":\"120m\",\"time\":1511863200000,\"open\":0.2144,\"high\":0.21995,\"low\":0.21399,\"close\":0.21797,\"volume\":2105043.1876786407,\"close_time\":1511870399364,\"vwap\":0.19817093672668337,\"ema1\":0.2079706379293393,\"sma1\":0.20467657407407408,\"sma2\":0.2050981666666667,\"rsi_avg_gain\":0.0012384470399452118,\"rsi_avg_loss\":0.0004960283492886556,\"rsi\":71},{\"period_id\":\"120m209980\",\"size\":\"120m\",\"time\":1511856000000,\"open\":0.21703,\"high\":0.218,\"low\":0.20949,\"close\":0.215,\"volume\":1955352.6909786584,\"close_time\":1511863185135,\"vwap\":0.19809537143482073,\"ema1\":0.20728102675205237,\"sma1\":0.20445435185185185,\"sma2\":0.2048826666666667,\"rsi_avg_gain\":0.0011052506584025357,\"rsi_avg_loss\":0.0005341843761570138,\"rsi\":67},{\"period_id\":\"120m209979\",\"size\":\"120m\",\"time\":1511848800000,\"open\":0.2126,\"high\":0.21772,\"low\":0.2101,\"close\":0.21602,\"volume\":1171198.8276388498,\"close_time\":1511855966678,\"vwap\":0.19804235852728516,\"ema1\":0.20674868376943528,\"sma1\":0.20422814814814816,\"sma2\":0.2046606666666667,\"rsi_avg_gain\":0.0011902699398181154,\"rsi_avg_loss\":0.0004968139435537077,\"rsi\":71},{\"period_id\":\"120m209978\",\"size\":\"120m\",\"time\":1511841600000,\"open\":0.21568,\"high\":0.218,\"low\":0.2126,\"close\":0.213,\"volume\":1039125.3916204604,\"close_time\":1511848787131,\"vwap\":0.19802155023388995,\"ema1\":0.206109282650086,\"sma1\":0.20400620370370373,\"sma2\":0.20447433333333334,\"rsi_avg_gain\":0.0010495214736502786,\"rsi_avg_loss\":0.0005350304007501469,\"rsi\":66},{\"period_id\":\"120m209977\",\"size\":\"120m\",\"time\":1511834400000,\"open\":0.21,\"high\":0.21809,\"low\":0.20801,\"close\":0.21576,\"volume\":3468057.7474857005,\"close_time\":1511841578393,\"vwap\":0.19800899176783623,\"ema1\":0.20563406076388502,\"sma1\":0.2037875,\"sma2\":0.20425250000000003,\"rsi_avg_gain\":0.0011302538947003,\"rsi_avg_loss\":0.00036387889311554185,\"rsi\":76},{\"period_id\":\"120m209976\",\"size\":\"120m\",\"time\":1511827200000,\"open\":0.205,\"high\":0.21,\"low\":0.205,\"close\":0.21,\"volume\":1558481.138053661,\"close_time\":1511834380900,\"vwap\":0.1979021604215613,\"ema1\":0.20493572012691158,\"sma1\":0.2036434259259259,\"sma2\":0.20412683333333337,\"rsi_avg_gain\":0.0007741195789080145,\"rsi_avg_loss\":0.0003918695772013528,\"rsi\":66},{\"period_id\":\"120m209975\",\"size\":\"120m\",\"time\":1511820000000,\"open\":0.20599,\"high\":0.2065,\"low\":0.2048,\"close\":0.205,\"volume\":389789.4495868001,\"close_time\":1511827185105,\"vwap\":0.19788093877933624,\"ema1\":0.20458645944600892,\"sma1\":0.20358314814814815,\"sma2\":0.2040988333333334,\"rsi_avg_gain\":0.0004490518542086307,\"rsi_avg_loss\":0.00042201339083222607,\"rsi\":52},{\"period_id\":\"120m209974\",\"size\":\"120m\",\"time\":1511812800000,\"open\":0.20676,\"high\":0.2072,\"low\":0.205,\"close\":0.20599,\"volume\":1422752.5999248598,\"close_time\":1511819964513,\"vwap\":0.1978794802619501,\"ema1\":0.20455793940780265,\"sma1\":0.20345999999999995,\"sma2\":0.20407566666666666,\"rsi_avg_gain\":0.00048359430453237155,\"rsi_avg_loss\":0.00037832211320393435,\"rsi\":56},{\"period_id\":\"120m209973\",\"size\":\"120m\",\"time\":1511805600000,\"open\":0.2056,\"high\":0.2075,\"low\":0.20438,\"close\":0.20677,\"volume\":1196450.54110655,\"close_time\":1511812798973,\"vwap\":0.19786889658901005,\"ema1\":0.20445917660834076,\"sma1\":0.2033433333333333,\"sma2\":0.20399083333333332,\"rsi_avg_gain\":0.000520793866419477,\"rsi_avg_loss\":0.00034742381421962133,\"rsi\":60},{\"period_id\":\"120m209972\",\"size\":\"120m\",\"time\":1511798400000,\"open\":0.20379,\"high\":0.20596,\"low\":0.2036,\"close\":0.2056,\"volume\":1021665.5822057405,\"close_time\":1511805533503,\"vwap\":0.19785511492830443,\"ema1\":0.2042998094778815,\"sma1\":0.20321870370370365,\"sma2\":0.20394649999999998,\"rsi_avg_gain\":0.0004708549330671288,\"rsi_avg_loss\":0.000374148723005746,\"rsi\":56},{\"period_id\":\"120m209971\",\"size\":\"120m\",\"time\":1511791200000,\"open\":0.20492,\"high\":0.2057,\"low\":0.20361,\"close\":0.20362,\"volume\":1156598.33650544,\"close_time\":1511798339155,\"vwap\":0.19784840425161065,\"ema1\":0.20421014116601127,\"sma1\":0.2030909259259259,\"sma2\":0.20390683333333334,\"rsi_avg_gain\":0.00035476685099536875,\"rsi_avg_loss\":0.00040292939400618803,\"rsi\":47},{\"period_id\":\"120m209970\",\"size\":\"120m\",\"time\":1511784000000,\"open\":0.20488,\"high\":0.205,\"low\":0.203,\"close\":0.20499,\"volume\":1106405.0097936601,\"close_time\":1511791177277,\"vwap\":0.19784083242570796,\"ema1\":0.20425084055677067,\"sma1\":0.20297490740740737,\"sma2\":0.20384716666666666,\"rsi_avg_gain\":0.00038205660876424325,\"rsi_avg_loss\":0.00032853934739127865,\"rsi\":54},{\"period_id\":\"120m209969\",\"size\":\"120m\",\"time\":1511776800000,\"open\":0.2043,\"high\":0.20497,\"low\":0.20151,\"close\":0.2045,\"volume\":1162813.67094193,\"close_time\":1511783982966,\"vwap\":0.19783426363069304,\"ema1\":0.2041998640434445,\"sma1\":0.20285972222222218,\"sma2\":0.2037865,\"rsi_avg_gain\":0.0003737532709768759,\"rsi_avg_loss\":0.00035381160488291545,\"rsi\":51},{\"period_id\":\"120m209968\",\"size\":\"120m\",\"time\":1511769600000,\"open\":0.2048,\"high\":0.2055,\"low\":0.202,\"close\":0.20445,\"volume\":1043370.4015265596,\"close_time\":1511776708321,\"vwap\":0.19782561404382432,\"ema1\":0.20417916501195793,\"sma1\":0.20275324074074075,\"sma2\":0.20371350000000002,\"rsi_avg_gain\":0.0003986573687443283,\"rsi_avg_loss\":0.00038102788218160124,\"rsi\":51},{\"period_id\":\"120m209967\",\"size\":\"120m\",\"time\":1511762400000,\"open\":0.204,\"high\":0.2056,\"low\":0.2035,\"close\":0.2048,\"volume\":727163.5247073199,\"close_time\":1511769598414,\"vwap\":0.1978187231471431,\"ema1\":0.20416048673692055,\"sma1\":0.20261805555555554,\"sma2\":0.20366683333333338,\"rsi_avg_gain\":0.0004293233201861998,\"rsi_avg_loss\":0.00038341464234941546,\"rsi\":53},{\"period_id\":\"120m209966\",\"size\":\"120m\",\"time\":1511755200000,\"open\":0.20399,\"high\":0.2049,\"low\":0.2035,\"close\":0.2049,\"volume\":169624.14325531002,\"close_time\":1511762296420,\"vwap\":0.1978161042954942,\"ema1\":0.20411638237394955,\"sma1\":0.20250296296296297,\"sma2\":0.2035981666666667,\"rsi_avg_gain\":0.0004623481909697536,\"rsi_avg_loss\":0.00040521576868398674,\"rsi\":53},{\"period_id\":\"120m209965\",\"size\":\"120m\",\"time\":1511748000000,\"open\":0.20393,\"high\":0.20403,\"low\":0.20161,\"close\":0.20349,\"volume\":152512.01532671004,\"close_time\":1511754632407,\"vwap\":0.1978158874920758,\"ema1\":0.20406233977904953,\"sma1\":0.20239157407407407,\"sma2\":0.2035233333333334,\"rsi_avg_gain\":0.0003894518979674274,\"rsi_avg_loss\":0.0004363862124289088,\"rsi\":47},{\"period_id\":\"120m209964\",\"size\":\"120m\",\"time\":1511740800000,\"open\":0.20231,\"high\":0.20396,\"low\":0.2013,\"close\":0.20352,\"volume\":209917.99183870008,\"close_time\":1511747968177,\"vwap\":0.19781568558431264,\"ema1\":0.2041018114879495,\"sma1\":0.20228796296296295,\"sma2\":0.2034266666666667,\"rsi_avg_gain\":0.00041940973627261415,\"rsi_avg_loss\":0.0004676466903080555,\"rsi\":47},{\"period_id\":\"120m209963\",\"size\":\"120m\",\"time\":1511733600000,\"open\":0.2026,\"high\":0.20495,\"low\":0.201,\"close\":0.20325,\"volume\":635724.2675824101,\"close_time\":1511740746473,\"vwap\":0.1978154328500551,\"ema1\":0.20414193641815293,\"sma1\":0.20218731481481478,\"sma2\":0.20334450000000007,\"rsi_avg_gain\":0.00043090279290896753,\"rsi_avg_loss\":0.0005036195126394444,\"rsi\":46},{\"period_id\":\"120m209962\",\"size\":\"120m\",\"time\":1511726400000,\"open\":0.202,\"high\":0.20407,\"low\":0.201,\"close\":0.2026,\"volume\":465787.79993479024,\"close_time\":1511733598819,\"vwap\":0.19781371606046683,\"ema1\":0.20420344927457726,\"sma1\":0.20209481481481475,\"sma2\":0.20330283333333338,\"rsi_avg_gain\":0.000414049161594274,\"rsi_avg_loss\":0.0005423594751501709,\"rsi\":43},{\"period_id\":\"120m209961\",\"size\":\"120m\",\"time\":1511719200000,\"open\":0.2035,\"high\":0.20509,\"low\":0.2011,\"close\":0.202,\"volume\":861816.7927144095,\"close_time\":1511726348696,\"vwap\":0.197812152765198,\"ema1\":0.2043140319831688,\"sma1\":0.201999074074074,\"sma2\":0.20326950000000005,\"rsi_avg_gain\":0.00039974525094768046,\"rsi_avg_loss\":0.0005840794347771072,\"rsi\":41},{\"period_id\":\"120m209960\",\"size\":\"120m\",\"time\":1511712000000,\"open\":0.20403,\"high\":0.2056,\"low\":0.203,\"close\":0.2035,\"volume\":878007.2638635704,\"close_time\":1511719170255,\"vwap\":0.19780890387979747,\"ema1\":0.20447362039580114,\"sma1\":0.20191018518518516,\"sma2\":0.20324416666666673,\"rsi_avg_gain\":0.00043049488563596356,\"rsi_avg_loss\":0.0005136240066830405,\"rsi\":46},{\"period_id\":\"120m209959\",\"size\":\"120m\",\"time\":1511704800000,\"open\":0.20491,\"high\":0.20563,\"low\":0.204,\"close\":0.204,\"volume\":516405.63428572,\"close_time\":1511711912210,\"vwap\":0.19780603700524085,\"ema1\":0.20454076662999432,\"sma1\":0.2018391666666666,\"sma2\":0.2032106666666667,\"rsi_avg_gain\":0.00046360987683873,\"rsi_avg_loss\":0.0005146720071971205,\"rsi\":47},{\"period_id\":\"120m209958\",\"size\":\"120m\",\"time\":1511697600000,\"open\":0.20503,\"high\":0.2057,\"low\":0.2039,\"close\":0.205,\"volume\":523334.76196654997,\"close_time\":1511704792409,\"vwap\":0.1978046294718937,\"ema1\":0.20457806088033875,\"sma1\":0.20177712962962957,\"sma2\":0.20317433333333337,\"rsi_avg_gain\":0.0004992721750570939,\"rsi_avg_loss\":0.000477339084673822,\"rsi\":51},{\"period_id\":\"120m209957\",\"size\":\"120m\",\"time\":1511690400000,\"open\":0.2046,\"high\":0.20647,\"low\":0.2034,\"close\":0.2058,\"volume\":814346.0664185897,\"close_time\":1511697529865,\"vwap\":0.1978025417982415,\"ema1\":0.20454896163070693,\"sma1\":0.20171722222222216,\"sma2\":0.2031126666666667,\"rsi_avg_gain\":0.0005376777269845626,\"rsi_avg_loss\":0.00045251901426411427,\"rsi\":54},{\"period_id\":\"120m209956\",\"size\":\"120m\",\"time\":1511683200000,\"open\":0.20497,\"high\":0.2061,\"low\":0.203,\"close\":0.20484,\"volume\":532312.11396432,\"close_time\":1511690345924,\"vwap\":0.19779944828118273,\"ema1\":0.2044626831224798,\"sma1\":0.2016079629629629,\"sma2\":0.20306733333333335,\"rsi_avg_gain\":0.0005051913982910661,\"rsi_avg_loss\":0.00048732816920750763,\"rsi\":51},{\"period_id\":\"120m209955\",\"size\":\"120m\",\"time\":1511676000000,\"open\":0.20519,\"high\":0.20636,\"low\":0.20321,\"close\":0.205,\"volume\":265488.4841529699,\"close_time\":1511683195091,\"vwap\":0.19779738130541732,\"ema1\":0.20443666126885773,\"sma1\":0.2015114814814814,\"sma2\":0.20302150000000005,\"rsi_avg_gain\":0.0005440522750826866,\"rsi_avg_loss\":0.0005125072591465471,\"rsi\":51},{\"period_id\":\"120m209954\",\"size\":\"120m\",\"time\":1511668800000,\"open\":0.20465,\"high\":0.20601,\"low\":0.20355,\"close\":0.20601,\"volume\":185167.23776778998,\"close_time\":1511675783840,\"vwap\":0.19779679061645833,\"ema1\":0.2043978103218824,\"sma1\":0.201427037037037,\"sma2\":0.20296283333333337,\"rsi_avg_gain\":0.0005859024500890471,\"rsi_avg_loss\":0.0004742385867732038,\"rsi\":55},{\"period_id\":\"120m209953\",\"size\":\"120m\",\"time\":1511661600000,\"open\":0.204,\"high\":0.20552,\"low\":0.2036,\"close\":0.20409,\"volume\":169137.82431805995,\"close_time\":1511668637151,\"vwap\":0.19779664850528472,\"ema1\":0.2042866248268398,\"sma1\":0.20133425925925919,\"sma2\":0.2028946666666667,\"rsi_avg_gain\":0.000483279561634358,\"rsi_avg_loss\":0.0005107184780634502,\"rsi\":49},{\"period_id\":\"120m209952\",\"size\":\"120m\",\"time\":1511654400000,\"open\":0.2072,\"high\":0.2072,\"low\":0.2036,\"close\":0.20431,\"volume\":606910.1181575202,\"close_time\":1511661581796,\"vwap\":0.19779652908595793,\"ema1\":0.20430018515972528,\"sma1\":0.2012018518518518,\"sma2\":0.2029205,\"rsi_avg_gain\":0.0005204549125293086,\"rsi_avg_loss\":0.000533081437914485,\"rsi\":49},{\"period_id\":\"120m209951\",\"size\":\"120m\",\"time\":1511647200000,\"open\":0.20798,\"high\":0.208,\"low\":0.2062,\"close\":0.20755,\"volume\":640851.1185827403,\"close_time\":1511654269926,\"vwap\":0.1977944046873446,\"ema1\":0.2042995082741891,\"sma1\":0.20115555555555548,\"sma2\":0.20279466666666665,\"rsi_avg_gain\":0.0005604899058007939,\"rsi_avg_loss\":0.00032485693313867456,\"rsi\":63},{\"period_id\":\"120m209950\",\"size\":\"120m\",\"time\":1511640000000,\"open\":0.2078,\"high\":0.208,\"low\":0.207,\"close\":0.20798,\"volume\":583376.7692860903,\"close_time\":1511647194817,\"vwap\":0.1977913538435111,\"ema1\":0.20407533643102974,\"sma1\":0.2011648148148147,\"sma2\":0.20277833333333334,\"rsi_avg_gain\":0.0006036045139393165,\"rsi_avg_loss\":0.0003167690049185737,\"rsi\":66},{\"period_id\":\"120m209949\",\"size\":\"120m\",\"time\":1511632800000,\"open\":0.20704,\"high\":0.208,\"low\":0.20698,\"close\":0.2078,\"volume\":693878.2040950699,\"close_time\":1511639923044,\"vwap\":0.19778740165799297,\"ema1\":0.20380604928834212,\"sma1\":0.20109999999999992,\"sma2\":0.2027316666666667,\"rsi_avg_gain\":0.0006361894765500344,\"rsi_avg_loss\":0.00034113585145077166,\"rsi\":65},{\"period_id\":\"120m209948\",\"size\":\"120m\",\"time\":1511625600000,\"open\":0.20765,\"high\":0.2085,\"low\":0.20601,\"close\":0.20747,\"volume\":1253601.6867732797,\"close_time\":1511632705865,\"vwap\":0.19778308111250428,\"ema1\":0.20353060441167606,\"sma1\":0.20111203703703695,\"sma2\":0.20269050000000002,\"rsi_avg_gain\":0.0006597425132077275,\"rsi_avg_loss\":0.0003673770707931387,\"rsi\":64},{\"period_id\":\"120m209947\",\"size\":\"120m\",\"time\":1511618400000,\"open\":0.20502,\"high\":0.209,\"low\":0.20309,\"close\":0.20766,\"volume\":2273022.4174963282,\"close_time\":1511625590556,\"vwap\":0.19777273524487302,\"ema1\":0.20325892195730888,\"sma1\":0.2012138888888888,\"sma2\":0.20263783333333332,\"rsi_avg_gain\":0.0007104919373006295,\"rsi_avg_loss\":0.0003810214608541476,\"rsi\":65},{\"period_id\":\"120m209946\",\"size\":\"120m\",\"time\":1511611200000,\"open\":0.204,\"high\":0.2065,\"low\":0.20301,\"close\":0.205,\"volume\":1099203.7551069506,\"close_time\":1511618393805,\"vwap\":0.19774661666067078,\"ema1\":0.202955399333675,\"sma1\":0.20133888888888882,\"sma2\":0.20258283333333332,\"rsi_avg_gain\":0.0005605297786314454,\"rsi_avg_loss\":0.00041033080399677436,\"rsi\":58},{\"period_id\":\"120m209945\",\"size\":\"120m\",\"time\":1511604000000,\"open\":0.20388,\"high\":0.2045,\"low\":0.20223,\"close\":0.20415,\"volume\":416695.1976930502,\"close_time\":1511611180381,\"vwap\":0.19773806021394902,\"ema1\":0.20281439239116986,\"sma1\":0.2010916666666666,\"sma2\":0.20257166666666668,\"rsi_avg_gain\":0.0005382628385261727,\"rsi_avg_loss\":0.0004418947119965262,\"rsi\":55},{\"period_id\":\"120m209944\",\"size\":\"120m\",\"time\":1511596800000,\"open\":0.204,\"high\":0.2043,\"low\":0.2,\"close\":0.2028,\"volume\":499000.01411457005,\"close_time\":1511603793654,\"vwap\":0.19773672440843876,\"ema1\":0.20272228152159535,\"sma1\":0.20085351851851846,\"sma2\":0.202525,\"rsi_avg_gain\":0.00047582151841280213,\"rsi_avg_loss\":0.0004758866129193359,\"rsi\":50},{\"period_id\":\"120m209943\",\"size\":\"120m\",\"time\":1511589600000,\"open\":0.20457,\"high\":0.20497,\"low\":0.202,\"close\":0.204,\"volume\":533388.0454640301,\"close_time\":1511596780677,\"vwap\":0.19773530350089802,\"ema1\":0.20271692162653296,\"sma1\":0.2006183333333333,\"sma2\":0.20245,\"rsi_avg_gain\":0.0005124231736753253,\"rsi_avg_loss\":0.0004201855831439018,\"rsi\":55},{\"period_id\":\"120m209942\",\"size\":\"120m\",\"time\":1511582400000,\"open\":0.20222,\"high\":0.20499,\"low\":0.20222,\"close\":0.20457,\"volume\":236988.47305102003,\"close_time\":1511589387547,\"vwap\":0.19773374414655942,\"ema1\":0.20262843346284556,\"sma1\":0.2003841666666666,\"sma2\":0.2023905,\"rsi_avg_gain\":0.0005518403408811196,\"rsi_avg_loss\":0.00040866139723189315,\"rsi\":57},{\"period_id\":\"120m209941\",\"size\":\"120m\",\"time\":1511575200000,\"open\":0.20348,\"high\":0.2045,\"low\":0.2016,\"close\":0.20349,\"volume\":265972.30650534004,\"close_time\":1511581116624,\"vwap\":0.19773351744727682,\"ema1\":0.20249453232235215,\"sma1\":0.20015703703703697,\"sma2\":0.20233233333333328,\"rsi_avg_gain\":0.000511212674795052,\"rsi_avg_loss\":0.00044009688932665416,\"rsi\":54},{\"period_id\":\"120m209940\",\"size\":\"120m\",\"time\":1511568000000,\"open\":0.20287,\"high\":0.20355,\"low\":0.2,\"close\":0.2035,\"volume\":868469.9902756196,\"close_time\":1511575142890,\"vwap\":0.19773314834181158,\"ema1\":0.2024258793790661,\"sma1\":0.19994731481481476,\"sma2\":0.20222166666666663,\"rsi_avg_gain\":0.0005505367267023637,\"rsi_avg_loss\":0.00047318126542870585,\"rsi\":54},{\"period_id\":\"120m209939\",\"size\":\"120m\",\"time\":1511560800000,\"open\":0.20138,\"high\":0.203,\"low\":0.2001,\"close\":0.20288,\"volume\":814359.5293872693,\"close_time\":1511567995794,\"vwap\":0.19773057434164817,\"ema1\":0.20235180209486375,\"sma1\":0.19972231481481478,\"sma2\":0.20209016666666665,\"rsi_avg_gain\":0.0005451933979871622,\"rsi_avg_loss\":0.0005095798243078371,\"rsi\":52},{\"period_id\":\"120m209938\",\"size\":\"120m\",\"time\":1511553600000,\"open\":0.202,\"high\":0.2029,\"low\":0.20001,\"close\":0.20138,\"volume\":909864.2336225205,\"close_time\":1511560780503,\"vwap\":0.19772792068948944,\"ema1\":0.2023153746531302,\"sma1\":0.1995009259259259,\"sma2\":0.2019838333333333,\"rsi_avg_gain\":0.00047174673629386696,\"rsi_avg_loss\":0.0005487782723315168,\"rsi\":46},{\"period_id\":\"120m209937\",\"size\":\"120m\",\"time\":1511546400000,\"open\":0.202,\"high\":0.20249,\"low\":0.20015,\"close\":0.202,\"volume\":696364.2606540502,\"close_time\":1511553569847,\"vwap\":0.19772452006432648,\"ema1\":0.2023798832498978,\"sma1\":0.19928240740740738,\"sma2\":0.20186599999999996,\"rsi_avg_gain\":0.0005080349467780106,\"rsi_avg_loss\":0.0005432996778954789,\"rsi\":48},{\"period_id\":\"120m209936\",\"size\":\"120m\",\"time\":1511539200000,\"open\":0.20135,\"high\":0.2028,\"low\":0.1999,\"close\":0.202,\"volume\":838008.0614882995,\"close_time\":1511546341797,\"vwap\":0.19772250338904174,\"ema1\":0.20240608209471833,\"sma1\":0.19905398148148143,\"sma2\":0.2017648333333333,\"rsi_avg_gain\":0.0005471145580686268,\"rsi_avg_loss\":0.0005850919608105158,\"rsi\":48},{\"period_id\":\"120m209935\",\"size\":\"120m\",\"time\":1511532000000,\"open\":0.20116,\"high\":0.20293,\"low\":0.199,\"close\":0.201,\"volume\":1265678.3266009598,\"close_time\":1511539137387,\"vwap\":0.19771990208271456,\"ema1\":0.20243408775642305,\"sma1\":0.19883574074074073,\"sma2\":0.20167316666666663,\"rsi_avg_gain\":0.0005122772163815981,\"rsi_avg_loss\":0.0006300990347190171,\"rsi\":45},{\"period_id\":\"120m209934\",\"size\":\"120m\",\"time\":1511524800000,\"open\":0.20247,\"high\":0.20311,\"low\":0.20045,\"close\":0.20045,\"volume\":1051248.8631149305,\"close_time\":1511531987163,\"vwap\":0.1977162770749687,\"ema1\":0.2025329903603143,\"sma1\":0.1986217592592592,\"sma2\":0.20158066666666663,\"rsi_avg_gain\":0.0005093754637955655,\"rsi_avg_loss\":0.0006785681912358645,\"rsi\":43},{\"period_id\":\"120m209933\",\"size\":\"120m\",\"time\":1511517600000,\"open\":0.20097,\"high\":0.203,\"low\":0.2,\"close\":0.20129,\"volume\":847409.5129088698,\"close_time\":1511524791332,\"vwap\":0.19771257819759486,\"ema1\":0.2026766448679222,\"sma1\":0.1984087962962962,\"sma2\":0.20148833333333335,\"rsi_avg_gain\":0.0005485581917798397,\"rsi_avg_loss\":0.0006661503597924688,\"rsi\":45},{\"period_id\":\"120m209932\",\"size\":\"120m\",\"time\":1511510400000,\"open\":0.2011,\"high\":0.2052,\"low\":0.198,\"close\":0.20099,\"volume\":2117724.14763733,\"close_time\":1511517580684,\"vwap\":0.19770860690357978,\"ema1\":0.20277227554846855,\"sma1\":0.1981754629629629,\"sma2\":0.20136316666666668,\"rsi_avg_gain\":0.0005676780526859816,\"rsi_avg_loss\":0.0007173926951611203,\"rsi\":44},{\"period_id\":\"120m209931\",\"size\":\"120m\",\"time\":1511503200000,\"open\":0.2038,\"high\":0.20585,\"low\":0.20116,\"close\":0.20116,\"volume\":970807.4843226504,\"close_time\":1511510399395,\"vwap\":0.19769943716909058,\"ema1\":0.20289519110353535,\"sma1\":0.1979268518518518,\"sma2\":0.20119150000000005,\"rsi_avg_gain\":0.0006113455952002879,\"rsi_avg_loss\":0.0007594998255581292,\"rsi\":45},{\"period_id\":\"120m209930\",\"size\":\"120m\",\"time\":1511496000000,\"open\":0.20358,\"high\":0.20486,\"low\":0.20251,\"close\":0.2038,\"volume\":746805.5528653798,\"close_time\":1511503045501,\"vwap\":0.19769622280769397,\"ema1\":0.2030148594555033,\"sma1\":0.1976733333333333,\"sma2\":0.20100000000000004,\"rsi_avg_gain\":0.0006583721794464639,\"rsi_avg_loss\":0.0006148459659856773,\"rsi\":52},{\"period_id\":\"120m209929\",\"size\":\"120m\",\"time\":1511488800000,\"open\":0.20201,\"high\":0.20798,\"low\":0.20201,\"close\":0.20358,\"volume\":230578.55803913996,\"close_time\":1511495740182,\"vwap\":0.1976944572054309,\"ema1\":0.2029607118317449,\"sma1\":0.19739055555555549,\"sma2\":0.20084200000000008,\"rsi_avg_gain\":0.0006920931163269614,\"rsi_avg_loss\":0.0006621418095230372,\"rsi\":51},{\"period_id\":\"120m209928\",\"size\":\"120m\",\"time\":1511481600000,\"open\":0.2052,\"high\":0.20711,\"low\":0.20201,\"close\":0.20253,\"volume\":1199177.8151506893,\"close_time\":1511488793439,\"vwap\":0.19769400967963222,\"ema1\":0.20291800230289972,\"sma1\":0.19711601851851843,\"sma2\":0.2006783333333334,\"rsi_avg_gain\":0.0006645618175828797,\"rsi_avg_loss\":0.0007130757948709632,\"rsi\":48},{\"period_id\":\"120m209927\",\"size\":\"120m\",\"time\":1511474400000,\"open\":0.2079,\"high\":0.2095,\"low\":0.2053,\"close\":0.2053,\"volume\":1323081.9437753898,\"close_time\":1511481589039,\"vwap\":0.1976870826338612,\"ema1\":0.20294476108241005,\"sma1\":0.1968067592592592,\"sma2\":0.2004733333333334,\"rsi_avg_gain\":0.0007156819573969473,\"rsi_avg_loss\":0.0005548508560148817,\"rsi\":56},{\"period_id\":\"120m209926\",\"size\":\"120m\",\"time\":1511467200000,\"open\":0.2083,\"high\":0.21,\"low\":0.20729,\"close\":0.208,\"volume\":1275330.9965464398,\"close_time\":1511474376676,\"vwap\":0.19767810445239684,\"ema1\":0.20278233081223143,\"sma1\":0.19650212962962957,\"sma2\":0.20023533333333343,\"rsi_avg_gain\":0.000770734415658251,\"rsi_avg_loss\":0.00038983938340064327,\"rsi\":66},{\"period_id\":\"120m209925\",\"size\":\"120m\",\"time\":1511460000000,\"open\":0.20701,\"high\":0.2083,\"low\":0.20646,\"close\":0.2083,\"volume\":1232249.5481780006,\"close_time\":1511467164713,\"vwap\":0.19765608185969358,\"ema1\":0.20242249155790257,\"sma1\":0.1962262037037037,\"sma2\":0.19996883333333343,\"rsi_avg_gain\":0.0008300216784011934,\"rsi_avg_loss\":0.00039675010520069106,\"rsi\":68},{\"period_id\":\"120m209924\",\"size\":\"120m\",\"time\":1511452800000,\"open\":0.204,\"high\":0.208,\"low\":0.20257,\"close\":0.20701,\"volume\":3353333.3538510166,\"close_time\":1511459973168,\"vwap\":0.19764246553239204,\"ema1\":0.20201714614810273,\"sma1\":0.19595518518518512,\"sma2\":0.1997133333333334,\"rsi_avg_gain\":0.0007946387305858996,\"rsi_avg_loss\":0.0004272693440622827,\"rsi\":65},{\"period_id\":\"120m209923\",\"size\":\"120m\",\"time\":1511445600000,\"open\":0.2038,\"high\":0.204,\"low\":0.20277,\"close\":0.204,\"volume\":1068651.5517517899,\"close_time\":1511452787259,\"vwap\":0.19758520733915866,\"ema1\":0.20167281139969603,\"sma1\":0.1957237037037037,\"sma2\":0.1995003333333334,\"rsi_avg_gain\":0.0006242263252463525,\"rsi_avg_loss\":0.0004601362166824583,\"rsi\":58},{\"period_id\":\"120m209922\",\"size\":\"120m\",\"time\":1511438400000,\"open\":0.2015,\"high\":0.20473,\"low\":0.20108,\"close\":0.20395,\"volume\":1206952.5871110403,\"close_time\":1511445599875,\"vwap\":0.1975792641391315,\"ema1\":0.20151231563415783,\"sma1\":0.19546222222222218,\"sma2\":0.19929783333333342,\"rsi_avg_gain\":0.0006683975810345339,\"rsi_avg_loss\":0.0004955313102734167,\"rsi\":57},{\"period_id\":\"120m209921\",\"size\":\"120m\",\"time\":1511431200000,\"open\":0.20205,\"high\":0.203,\"low\":0.2004,\"close\":0.20249,\"volume\":1267427.7514401998,\"close_time\":1511438314499,\"vwap\":0.19757305655512356,\"ema1\":0.2013441994709963,\"sma1\":0.19522138888888882,\"sma2\":0.19912800000000005,\"rsi_avg_gain\":0.0006075050872679604,\"rsi_avg_loss\":0.0005336491033713719,\"rsi\":53},{\"period_id\":\"120m209920\",\"size\":\"120m\",\"time\":1511424000000,\"open\":0.20271,\"high\":0.20348,\"low\":0.201,\"close\":0.20207,\"volume\":1254282.6533809998,\"close_time\":1511431188336,\"vwap\":0.19756780318360942,\"ema1\":0.2012651787448581,\"sma1\":0.19496888888888883,\"sma2\":0.19896916666666672,\"rsi_avg_gain\":0.0006219285555193417,\"rsi_avg_loss\":0.000574699034399939,\"rsi\":52},{\"period_id\":\"120m209919\",\"size\":\"120m\",\"time\":1511416800000,\"open\":0.20352,\"high\":0.20488,\"low\":0.2016,\"close\":0.2027,\"volume\":783677.1050473005,\"close_time\":1511423997249,\"vwap\":0.19756196601175122,\"ema1\":0.2012096738307104,\"sma1\":0.19470703703703704,\"sma2\":0.1987408333333334,\"rsi_avg_gain\":0.0006697692136362142,\"rsi_avg_loss\":0.0005704451139691657,\"rsi\":54},{\"period_id\":\"120m209918\",\"size\":\"120m\",\"time\":1511409600000,\"open\":0.20235,\"high\":0.2044,\"low\":0.20158,\"close\":0.20182,\"volume\":332666.98047993996,\"close_time\":1511416739820,\"vwap\":0.1975593271681512,\"ema1\":0.20110689271558696,\"sma1\":0.19445148148148148,\"sma2\":0.19854850000000004,\"rsi_avg_gain\":0.0006535976146851543,\"rsi_avg_loss\":0.0006143255073514092,\"rsi\":52},{\"period_id\":\"120m209917\",\"size\":\"120m\",\"time\":1511402400000,\"open\":0.20245,\"high\":0.20319,\"low\":0.2015,\"close\":0.20245,\"volume\":94018.41895133,\"close_time\":1511409541858,\"vwap\":0.19755893211589237,\"ema1\":0.2010577129028688,\"sma1\":0.19421824074074076,\"sma2\":0.19830600000000007,\"rsi_avg_gain\":0.0007038743542763201,\"rsi_avg_loss\":0.0006131197771476722,\"rsi\":53},{\"period_id\":\"120m209916\",\"size\":\"120m\",\"time\":1511395200000,\"open\":0.20288,\"high\":0.20406,\"low\":0.2015,\"close\":0.20246,\"volume\":905025.8519175604,\"close_time\":1511402350399,\"vwap\":0.19755888869709018,\"ema1\":0.20096169310306666,\"sma1\":0.1939537962962963,\"sma2\":0.1980830000000001,\"rsi_avg_gain\":0.0007580185353744986,\"rsi_avg_loss\":0.0006595136061590309,\"rsi\":53},{\"period_id\":\"120m209915\",\"size\":\"120m\",\"time\":1511388000000,\"open\":0.20468,\"high\":0.205,\"low\":0.2016,\"close\":0.20332,\"volume\":1224339.8817371898,\"close_time\":1511395061474,\"vwap\":0.19755736118034728,\"ema1\":0.20085836159293333,\"sma1\":0.19366212962962964,\"sma2\":0.1979130000000001,\"rsi_avg_gain\":0.0008163276534802293,\"rsi_avg_loss\":0.0006440915758635717,\"rsi\":56},{\"period_id\":\"120m209914\",\"size\":\"120m\",\"time\":1511380800000,\"open\":0.20168,\"high\":0.20488,\"low\":0.20151,\"close\":0.2046,\"volume\":1173801.88607649,\"close_time\":1511387995458,\"vwap\":0.19755040142959834,\"ema1\":0.20068859342692874,\"sma1\":0.19336222222222224,\"sma2\":0.19770300000000005,\"rsi_avg_gain\":0.0008791220883633238,\"rsi_avg_loss\":0.0005951755432376923,\"rsi\":60},{\"period_id\":\"120m209913\",\"size\":\"120m\",\"time\":1511373600000,\"open\":0.2012,\"high\":0.20292,\"low\":0.2,\"close\":0.20168,\"volume\":813905.8158250905,\"close_time\":1511380776554,\"vwap\":0.1975439219862972,\"ema1\":0.20041884124947554,\"sma1\":0.1930805555555556,\"sma2\":0.19755000000000006,\"rsi_avg_gain\":0.0007221314797758867,\"rsi_avg_loss\":0.0006409582773328993,\"rsi\":53},{\"period_id\":\"120m209912\",\"size\":\"120m\",\"time\":1511366400000,\"open\":0.20163,\"high\":0.204,\"low\":0.20009,\"close\":0.20294,\"volume\":1788743.1193710098,\"close_time\":1511373588986,\"vwap\":0.19754059812827637,\"ema1\":0.20033186478392212,\"sma1\":0.192797962962963,\"sma2\":0.1973983333333334,\"rsi_avg_gain\":0.0007776800551432626,\"rsi_avg_loss\":0.000593339683281583,\"rsi\":57},{\"period_id\":\"120m209911\",\"size\":\"120m\",\"time\":1511359200000,\"open\":0.20138,\"high\":0.202,\"low\":0.2,\"close\":0.20124,\"volume\":1000537.6612222702,\"close_time\":1511366359171,\"vwap\":0.19752952058452716,\"ema1\":0.20015199338970985,\"sma1\":0.19253407407407414,\"sma2\":0.1972928333333334,\"rsi_avg_gain\":0.0007067323670773591,\"rsi_avg_loss\":0.0006389811973801663,\"rsi\":53},{\"period_id\":\"120m209910\",\"size\":\"120m\",\"time\":1511352000000,\"open\":0.20086,\"high\":0.20185,\"low\":0.2,\"close\":0.20141,\"volume\":970720.5860405697,\"close_time\":1511359173776,\"vwap\":0.19752579221799005,\"ema1\":0.20007695845106915,\"sma1\":0.19227620370370374,\"sma2\":0.19719100000000003,\"rsi_avg_gain\":0.0007610963953140791,\"rsi_avg_loss\":0.0006750566741017173,\"rsi\":53},{\"period_id\":\"120m209909\",\"size\":\"120m\",\"time\":1511344800000,\"open\":0.20004,\"high\":0.202,\"low\":0.2,\"close\":0.20086,\"volume\":752880.6238023305,\"close_time\":1511351996965,\"vwap\":0.1975232302537201,\"ema1\":0.1999850245511429,\"sma1\":0.19202620370370374,\"sma2\":0.1971566666666667,\"rsi_avg_gain\":0.0007773345795690085,\"rsi_avg_loss\":0.0007269841105710801,\"rsi\":52},{\"period_id\":\"120m209908\",\"size\":\"120m\",\"time\":1511337600000,\"open\":0.20198,\"high\":0.202,\"low\":0.19969,\"close\":0.20007,\"volume\":653744.4946405801,\"close_time\":1511344770041,\"vwap\":0.19752045710897914,\"ema1\":0.19992468141673894,\"sma1\":0.19176601851851857,\"sma2\":0.19703050000000003,\"rsi_avg_gain\":0.0007763603164589312,\"rsi_avg_loss\":0.000782905965230394,\"rsi\":50},{\"period_id\":\"120m209907\",\"size\":\"120m\",\"time\":1511330400000,\"open\":0.20033,\"high\":0.203,\"low\":0.2,\"close\":0.202,\"volume\":652858.3084820701,\"close_time\":1511337347406,\"vwap\":0.19751822573951813,\"ema1\":0.19991465944547956,\"sma1\":0.19146509259259265,\"sma2\":0.19679716666666672,\"rsi_avg_gain\":0.000836080340801926,\"rsi_avg_loss\":0.0006946679625558077,\"rsi\":55},{\"period_id\":\"120m209906\",\"size\":\"120m\",\"time\":1511323200000,\"open\":0.1992,\"high\":0.2008,\"low\":0.199,\"close\":0.20078,\"volume\":199170.53298643001,\"close_time\":1511330223591,\"vwap\":0.19751627854625356,\"ema1\":0.19977084285551264,\"sma1\":0.19120675925925928,\"sma2\":0.19668500000000003,\"rsi_avg_gain\":0.000806548059325149,\"rsi_avg_loss\":0.0007481039596754852,\"rsi\":52},{\"period_id\":\"120m209905\",\"size\":\"120m\",\"time\":1511316000000,\"open\":0.19768,\"high\":0.19949,\"low\":0.19766,\"close\":0.199,\"volume\":139487.97756473004,\"close_time\":1511323109528,\"vwap\":0.19751611448926637,\"ema1\":0.19970124581106524,\"sma1\":0.19096027777777783,\"sma2\":0.19655366666666668,\"rsi_avg_gain\":0.0007316671408117008,\"rsi_avg_loss\":0.000805650418112061,\"rsi\":48},{\"period_id\":\"120m209904\",\"size\":\"120m\",\"time\":1511308800000,\"open\":0.1983,\"high\":0.1995,\"low\":0.1976,\"close\":0.19772,\"volume\":297919.29636284005,\"close_time\":1511315945772,\"vwap\":0.1975160817112842,\"ema1\":0.19974960759113872,\"sma1\":0.1907093518518519,\"sma2\":0.19639733333333337,\"rsi_avg_gain\":0.0006894876901049082,\"rsi_avg_loss\":0.0008676235271976041,\"rsi\":44},{\"period_id\":\"120m209903\",\"size\":\"120m\",\"time\":1511301600000,\"open\":0.20021,\"high\":0.2013,\"low\":0.198,\"close\":0.19832,\"volume\":1570212.2911061011,\"close_time\":1511308760197,\"vwap\":0.1975159760815709,\"ema1\":0.19988958052845862,\"sma1\":0.19041935185185185,\"sma2\":0.19626366666666673,\"rsi_avg_gain\":0.0007425252047283627,\"rsi_avg_loss\":0.0008882099523666514,\"rsi\":46},{\"period_id\":\"120m209902\",\"size\":\"120m\",\"time\":1511294400000,\"open\":0.20067,\"high\":0.2013,\"low\":0.2,\"close\":0.2001,\"volume\":826936.2524366702,\"close_time\":1511301577901,\"vwap\":0.1975132804821849,\"ema1\":0.19999782746145578,\"sma1\":0.1901387962962963,\"sma2\":0.19630866666666674,\"rsi_avg_gain\":0.000799642528169006,\"rsi_avg_loss\":0.0008196107179333166,\"rsi\":49},{\"period_id\":\"120m209901\",\"size\":\"120m\",\"time\":1511287200000,\"open\":0.20198,\"high\":0.204,\"low\":0.2,\"close\":0.2,\"volume\":1658189.0110132692,\"close_time\":1511294393668,\"vwap\":0.19751087154909625,\"ema1\":0.1999907810794872,\"sma1\":0.18983324074074073,\"sma2\":0.19622533333333342,\"rsi_avg_gain\":0.0008534611841820073,\"rsi_avg_loss\":0.0008826576962358794,\"rsi\":49},{\"period_id\":\"120m209900\",\"size\":\"120m\",\"time\":1511280000000,\"open\":0.20109,\"high\":0.202,\"low\":0.2006,\"close\":0.20198,\"volume\":655194.4879848204,\"close_time\":1511287150410,\"vwap\":0.19750389309185953,\"ema1\":0.19999014529186562,\"sma1\":0.1895647222222222,\"sma2\":0.1961323333333334,\"rsi_avg_gain\":0.0009191120445037002,\"rsi_avg_loss\":0.000798246749792487,\"rsi\":54},{\"period_id\":\"120m209899\",\"size\":\"120m\",\"time\":1511272800000,\"open\":0.20318,\"high\":0.20318,\"low\":0.2004,\"close\":0.20199,\"volume\":1154399.37290013,\"close_time\":1511279988375,\"vwap\":0.19750145409392575,\"ema1\":0.19985291393268395,\"sma1\":0.18928194444444438,\"sma2\":0.1961825000000001,\"rsi_avg_gain\":0.000989812971003985,\"rsi_avg_loss\":0.0008588811151611391,\"rsi\":54},{\"period_id\":\"120m209898\",\"size\":\"120m\",\"time\":1511265600000,\"open\":0.203,\"high\":0.20351,\"low\":0.20104,\"close\":0.20282,\"volume\":722255.2621213497,\"close_time\":1511272705668,\"vwap\":0.19749569710377032,\"ema1\":0.19970552868666216,\"sma1\":0.18902351851851848,\"sma2\":0.19646883333333343,\"rsi_avg_gain\":0.0010659524303119837,\"rsi_avg_loss\":0.0008611027394043039,\"rsi\":55},{\"period_id\":\"120m209897\",\"size\":\"120m\",\"time\":1511258400000,\"open\":0.20344,\"high\":0.20371,\"low\":0.20164,\"close\":0.2021,\"volume\":1164843.6084483103,\"close_time\":1511265582357,\"vwap\":0.19749262288095953,\"ema1\":0.19949073756160438,\"sma1\":0.18876972222222219,\"sma2\":0.19605050000000007,\"rsi_avg_gain\":0.001092564155720598,\"rsi_avg_loss\":0.0009273414116661734,\"rsi\":54},{\"period_id\":\"120m209896\",\"size\":\"120m\",\"time\":1511251200000,\"open\":0.20227,\"high\":0.20492,\"low\":0.202,\"close\":0.20212,\"volume\":661131.9622503897,\"close_time\":1511258386621,\"vwap\":0.197485049770507,\"ema1\":0.1993107884279219,\"sma1\":0.1884599074074074,\"sma2\":0.1956318333333334,\"rsi_avg_gain\":0.00117660755231449,\"rsi_avg_loss\":0.0009971369048712643,\"rsi\":54},{\"period_id\":\"120m209895\",\"size\":\"120m\",\"time\":1511244000000,\"open\":0.20199,\"high\":0.20549,\"low\":0.20093,\"close\":0.20225,\"volume\":1112220.7707674399,\"close_time\":1511251168939,\"vwap\":0.1974820625458355,\"ema1\":0.19911704969881308,\"sma1\":0.18814046296296288,\"sma2\":0.19523766666666673,\"rsi_avg_gain\":0.0012671158255694506,\"rsi_avg_loss\":0.001063839743707514,\"rsi\":54},{\"period_id\":\"120m209894\",\"size\":\"120m\",\"time\":1511236800000,\"open\":0.2,\"high\":0.20306,\"low\":0.197,\"close\":0.20249,\"volume\":767532.2100792999,\"close_time\":1511243992356,\"vwap\":0.1974763549275961,\"ema1\":0.19890098416080018,\"sma1\":0.18786722222222213,\"sma2\":0.19485366666666673,\"rsi_avg_gain\":0.0013645862736901776,\"rsi_avg_loss\":0.0011272120316850158,\"rsi\":55},{\"period_id\":\"120m209893\",\"size\":\"120m\",\"time\":1511229600000,\"open\":0.20572,\"high\":0.206,\"low\":0.2,\"close\":0.2,\"volume\":808537.5062438501,\"close_time\":1511236760328,\"vwap\":0.19747575606194806,\"ema1\":0.19865346582706225,\"sma1\":0.1875750925925925,\"sma2\":0.19448700000000005,\"rsi_avg_gain\":0.0012780159870509611,\"rsi_avg_loss\":0.00121392064950694,\"rsi\":51},{\"period_id\":\"120m209892\",\"size\":\"120m\",\"time\":1511222400000,\"open\":0.2,\"high\":0.20599,\"low\":0.2,\"close\":0.20586,\"volume\":658444.3325874807,\"close_time\":1511228996424,\"vwap\":0.19747470515332952,\"ema1\":0.1985606014013424,\"sma1\":0.18731314814814812,\"sma2\":0.19405600000000003,\"rsi_avg_gain\":0.0013763249091318043,\"rsi_avg_loss\":0.0008565299302382449,\"rsi\":62},{\"period_id\":\"120m209891\",\"size\":\"120m\",\"time\":1511215200000,\"open\":0.2075,\"high\":0.20788,\"low\":0.1992,\"close\":0.2,\"volume\":2154059.49515276,\"close_time\":1511222392685,\"vwap\":0.1974728471506166,\"ema1\":0.19805719460143498,\"sma1\":0.18704111111111102,\"sma2\":0.19368600000000005,\"rsi_avg_gain\":0.001031426825218868,\"rsi_avg_loss\":0.0009224168479488791,\"rsi\":53},{\"period_id\":\"120m209890\",\"size\":\"120m\",\"time\":1511208000000,\"open\":0.205,\"high\":0.2079,\"low\":0.204,\"close\":0.207,\"volume\":1726159.0560208398,\"close_time\":1511215187487,\"vwap\":0.19745974835454239,\"ema1\":0.1979232080222236,\"sma1\":0.18678259259259256,\"sma2\":0.19319733333333336,\"rsi_avg_gain\":0.001110767350235704,\"rsi_avg_loss\":0.00045491045163725607,\"rsi\":71},{\"period_id\":\"120m209889\",\"size\":\"120m\",\"time\":1511200800000,\"open\":0.205,\"high\":0.20791,\"low\":0.20401,\"close\":0.205,\"volume\":1288062.0671158903,\"close_time\":1511207996129,\"vwap\":0.19743195997832122,\"ema1\":0.19729722236858385,\"sma1\":0.186524537037037,\"sma2\":0.19271800000000003,\"rsi_avg_gain\":0.0010423648387153735,\"rsi_avg_loss\":0.0004899035633016604,\"rsi\":68},{\"period_id\":\"120m209888\",\"size\":\"120m\",\"time\":1511193600000,\"open\":0.2045,\"high\":0.205,\"low\":0.2012,\"close\":0.205,\"volume\":1174516.4974492008,\"close_time\":1511200734154,\"vwap\":0.19741711697036204,\"ema1\":0.1967659963250379,\"sma1\":0.18628749999999994,\"sma2\":0.19226016666666668,\"rsi_avg_gain\":0.0011225467493857868,\"rsi_avg_loss\":0.0005275884527864035,\"rsi\":68},{\"period_id\":\"120m209887\",\"size\":\"120m\",\"time\":1511186400000,\"open\":0.2017,\"high\":0.20486,\"low\":0.20116,\"close\":0.2045,\"volume\":1245355.5586386702,\"close_time\":1511193599796,\"vwap\":0.19740502227596105,\"ema1\":0.19619813400262673,\"sma1\":0.18600129629629628,\"sma2\":0.19182966666666668,\"rsi_avg_gain\":0.0011704349608770012,\"rsi_avg_loss\":0.0005681721799238192,\"rsi\":67},{\"period_id\":\"120m209886\",\"size\":\"120m\",\"time\":1511179200000,\"open\":0.20345,\"high\":0.20345,\"low\":0.1993,\"close\":0.2017,\"volume\":920490.0952195205,\"close_time\":1511186377172,\"vwap\":0.19739542444577612,\"ema1\":0.19562559152004927,\"sma1\":0.18574498444444443,\"sma2\":0.1914503333333334,\"rsi_avg_gain\":0.0010450838040213862,\"rsi_avg_loss\":0.0006118777322256514,\"rsi\":63},{\"period_id\":\"120m209885\",\"size\":\"120m\",\"time\":1511172000000,\"open\":0.1999,\"high\":0.20397,\"low\":0.1993,\"close\":0.20348,\"volume\":1839783.4880044202,\"close_time\":1511179183122,\"vwap\":0.19739169299936365,\"ema1\":0.19520666679729404,\"sma1\":0.18553609555555556,\"sma2\":0.1910556666666667,\"rsi_avg_gain\":0.0011254748658691852,\"rsi_avg_loss\":0.0005220221731660858,\"rsi\":68},{\"period_id\":\"120m209884\",\"size\":\"120m\",\"time\":1511164800000,\"open\":0.19989,\"high\":0.201,\"low\":0.199,\"close\":0.2,\"volume\":915706.22185213,\"close_time\":1511171992849,\"vwap\":0.19738147705150816,\"ema1\":0.19463609209365915,\"sma1\":0.18535091037037038,\"sma2\":0.19070833333333337,\"rsi_avg_gain\":0.0009443575478591237,\"rsi_avg_loss\":0.0005621777249480923,\"rsi\":63},{\"period_id\":\"120m209883\",\"size\":\"120m\",\"time\":1511157600000,\"open\":0.20058,\"high\":0.20097,\"low\":0.19501,\"close\":0.1995,\"volume\":831625.2586599299,\"close_time\":1511164735130,\"vwap\":0.19737907320153453,\"ema1\":0.19426616741046324,\"sma1\":0.18514146592592595,\"sma2\":0.19035000000000002,\"rsi_avg_gain\":0.0009785388976944409,\"rsi_avg_loss\":0.0006054221653287148,\"rsi\":62},{\"period_id\":\"120m209882\",\"size\":\"120m\",\"time\":1511150400000,\"open\":0.19996,\"high\":0.205,\"low\":0.19909,\"close\":0.201,\"volume\":1616283.4260598102,\"close_time\":1511157581859,\"vwap\":0.19737777425356254,\"ema1\":0.19390521343877104,\"sma1\":0.18488220666666672,\"sma2\":0.18994083333333336,\"rsi_avg_gain\":0.0010538111205940133,\"rsi_avg_loss\":0.0005366084857386159,\"rsi\":66},{\"period_id\":\"120m209881\",\"size\":\"120m\",\"time\":1511143200000,\"open\":0.19688,\"high\":0.2,\"low\":0.19686,\"close\":0.2,\"volume\":1187892.34910101,\"close_time\":1511150148973,\"vwap\":0.19737144606130733,\"ema1\":0.1934159178138587,\"sma1\":0.18466924370370372,\"sma2\":0.18954200000000002,\"rsi_avg_gain\":0.0010579504375627833,\"rsi_avg_loss\":0.0005778860615646633,\"rsi\":65},{\"period_id\":\"120m209880\",\"size\":\"120m\",\"time\":1511136000000,\"open\":0.195,\"high\":0.19686,\"low\":0.19494,\"close\":0.19686,\"volume\":818428.4982289891,\"close_time\":1511143199207,\"vwap\":0.19736991169992346,\"ema1\":0.19296184318033172,\"sma1\":0.18448785481481483,\"sma2\":0.18920450000000003,\"rsi_avg_gain\":0.0008977927789137664,\"rsi_avg_loss\":0.0006223388355311759,\"rsi\":59},{\"period_id\":\"120m209879\",\"size\":\"120m\",\"time\":1511128800000,\"open\":0.19498,\"high\":0.19587,\"low\":0.19353,\"close\":0.19499,\"volume\":774808.4024525699,\"close_time\":1511135815175,\"vwap\":0.1973706064536758,\"ema1\":0.19269300477897527,\"sma1\":0.1843316511111111,\"sma2\":0.188885,\"rsi_avg_gain\":0.0008230076080609784,\"rsi_avg_loss\":0.0006702110536489587,\"rsi\":55},{\"period_id\":\"120m209878\",\"size\":\"120m\",\"time\":1511121600000,\"open\":0.19592,\"high\":0.19595,\"low\":0.1938,\"close\":0.195,\"volume\":735082.8656450599,\"close_time\":1511128784054,\"vwap\":0.19737129555237004,\"ema1\":0.19253459131545633,\"sma1\":0.18414220666666664,\"sma2\":0.18856866666666666,\"rsi_avg_gain\":0.0008863158856041305,\"rsi_avg_loss\":0.0007209965193142625,\"rsi\":55},{\"period_id\":\"120m209877\",\"size\":\"120m\",\"time\":1511114400000,\"open\":0.19593,\"high\":0.19599,\"low\":0.19311,\"close\":0.19493,\"volume\":542808.07858512,\"close_time\":1511121526078,\"vwap\":0.19737245329529454,\"ema1\":0.19236456313031539,\"sma1\":0.18396822518518513,\"sma2\":0.1882625,\"rsi_avg_gain\":0.0009491094152659857,\"rsi_avg_loss\":0.0007764577900307443,\"rsi\":55},{\"period_id\":\"120m209876\",\"size\":\"120m\",\"time\":1511107200000,\"open\":0.195,\"high\":0.1975,\"low\":0.19462,\"close\":0.19593,\"volume\":736890.6753688401,\"close_time\":1511114338732,\"vwap\":0.19737326950366066,\"ema1\":0.19218763644964748,\"sma1\":0.1837876696296296,\"sma2\":0.18795900000000001,\"rsi_avg_gain\":0.0010221178318249077,\"rsi_avg_loss\":0.0007592622354177246,\"rsi\":57},{\"period_id\":\"120m209875\",\"size\":\"120m\",\"time\":1511100000000,\"open\":0.1949,\"high\":0.1969,\"low\":0.19441,\"close\":0.1955,\"volume\":602072.8910201305,\"close_time\":1511107180197,\"vwap\":0.19737403241878648,\"ema1\":0.19192954241169213,\"sma1\":0.183620077037037,\"sma2\":0.18766566666666668,\"rsi_avg_gain\":0.0010676653573499016,\"rsi_avg_loss\":0.0008176670227575496,\"rsi\":57},{\"period_id\":\"120m209874\",\"size\":\"120m\",\"time\":1511092800000,\"open\":0.19514,\"high\":0.19625,\"low\":0.19305,\"close\":0.1949,\"volume\":664404.7235030198,\"close_time\":1511099955847,\"vwap\":0.19737476947158916,\"ema1\":0.19168330395732608,\"sma1\":0.18350841037037036,\"sma2\":0.18735733333333332,\"rsi_avg_gain\":0.001103639615607585,\"rsi_avg_loss\":0.0008805644860465919,\"rsi\":56},{\"period_id\":\"120m209873\",\"size\":\"120m\",\"time\":1511085600000,\"open\":0.19348,\"high\":0.199,\"low\":0.19165,\"close\":0.19575,\"volume\":1621898.0825811503,\"close_time\":1511092680789,\"vwap\":0.19737590560005086,\"ema1\":0.19146146285093477,\"sma1\":0.18338970666666668,\"sma2\":0.18702149999999998,\"rsi_avg_gain\":0.0011885349706543223,\"rsi_avg_loss\":0.0008829156003578668,\"rsi\":57},{\"period_id\":\"120m209872\",\"size\":\"120m\",\"time\":1511078400000,\"open\":0.19096,\"high\":0.194,\"low\":0.18996,\"close\":0.19348,\"volume\":852182.0922368199,\"close_time\":1511085595664,\"vwap\":0.19737713481581218,\"ema1\":0.19116570166824062,\"sma1\":0.1833113733333333,\"sma2\":0.1867268333333333,\"rsi_avg_gain\":0.0011053453530123476,\"rsi_avg_loss\":0.0009508321850007796,\"rsi\":54},{\"period_id\":\"120m209871\",\"size\":\"120m\",\"time\":1511071200000,\"open\":0.19277,\"high\":0.19329,\"low\":0.19,\"close\":0.19086,\"volume\":458432.8250426699,\"close_time\":1511078362857,\"vwap\":0.19738213454035425,\"ema1\":0.19100609488673997,\"sma1\":0.18325933629629632,\"sma2\":0.18645166666666663,\"rsi_avg_gain\":0.0009888334570902196,\"rsi_avg_loss\":0.0010239731223085319,\"rsi\":49},{\"period_id\":\"120m209870\",\"size\":\"120m\",\"time\":1511064000000,\"open\":0.194,\"high\":0.19403,\"low\":0.1923,\"close\":0.19231,\"volume\":53869.48320576,\"close_time\":1511071090724,\"vwap\":0.19738420089930825,\"ema1\":0.19101617039617033,\"sma1\":0.18321554,\"sma2\":0.18617949999999997,\"rsi_avg_gain\":0.0010648975691740826,\"rsi_avg_loss\":0.0009912018240245722,\"rsi\":52},{\"period_id\":\"120m209869\",\"size\":\"120m\",\"time\":1511056800000,\"open\":0.19382,\"high\":0.19447,\"low\":0.19291,\"close\":0.1941,\"volume\":69829.77653239999,\"close_time\":1511063790758,\"vwap\":0.1973842281224875,\"ema1\":0.19092694076832,\"sma1\":0.18316304,\"sma2\":0.18588683333333325,\"rsi_avg_gain\":0.001146812766802858,\"rsi_avg_loss\":0.000929755810488002,\"rsi\":55},{\"period_id\":\"120m209868\",\"size\":\"120m\",\"time\":1511049600000,\"open\":0.193,\"high\":0.19444,\"low\":0.1925,\"close\":0.19271,\"volume\":124356.55947407,\"close_time\":1511056574457,\"vwap\":0.1973842603949221,\"ema1\":0.19070810909716968,\"sma1\":0.18311359555555548,\"sma2\":0.18559999999999993,\"rsi_avg_gain\":0.0011281060565569239,\"rsi_avg_loss\":0.0010012754882178483,\"rsi\":53},{\"period_id\":\"120m209867\",\"size\":\"120m\",\"time\":1511042400000,\"open\":0.1935,\"high\":0.19999,\"low\":0.19211,\"close\":0.193,\"volume\":1359178.4623398397,\"close_time\":1511049586357,\"vwap\":0.19738437160315184,\"ema1\":0.19057004765559518,\"sma1\":0.18301600296296291,\"sma2\":0.18527499999999997,\"rsi_avg_gain\":0.001214883445522841,\"rsi_avg_loss\":0.001055988987311528,\"rsi\":53},{\"period_id\":\"120m209866\",\"size\":\"120m\",\"time\":1511035200000,\"open\":0.19234,\"high\":0.1939,\"low\":0.19201,\"close\":0.19372,\"volume\":268536.1830867801,\"close_time\":1511042361722,\"vwap\":0.19738809846651406,\"ema1\":0.1904024647352914,\"sma1\":0.18298720666666662,\"sma2\":0.18491283333333325,\"rsi_avg_gain\":0.0013083360182553673,\"rsi_avg_loss\":0.0010818342940277996,\"rsi\":55},{\"period_id\":\"120m209865\",\"size\":\"120m\",\"time\":1511028000000,\"open\":0.1917,\"high\":0.1949,\"low\":0.1917,\"close\":0.19231,\"volume\":728270.7040220896,\"close_time\":1511035186530,\"vwap\":0.19738837580850113,\"ema1\":0.19017366919979425,\"sma1\":0.18295637333333328,\"sma2\":0.18457433333333328,\"rsi_avg_gain\":0.0013005157119673188,\"rsi_avg_loss\":0.0011650523166453226,\"rsi\":53},{\"period_id\":\"120m209864\",\"size\":\"120m\",\"time\":1511020800000,\"open\":0.19089,\"high\":0.1925,\"low\":0.19016,\"close\":0.19168,\"volume\":464501.62250984996,\"close_time\":1511027934129,\"vwap\":0.1973903145881411,\"ema1\":0.19002633604115937,\"sma1\":0.18294803999999995,\"sma2\":0.1842546666666666,\"rsi_avg_gain\":0.0013520938436571111,\"rsi_avg_loss\":0.0012546717256180396,\"rsi\":52},{\"period_id\":\"120m209863\",\"size\":\"120m\",\"time\":1511013600000,\"open\":0.1919,\"high\":0.1919,\"low\":0.19,\"close\":0.19122,\"volume\":390100.3060764898,\"close_time\":1511020756298,\"vwap\":0.19739167501572236,\"ema1\":0.1899122902508945,\"sma1\":0.1829258177777777,\"sma2\":0.18395099999999995,\"rsi_avg_gain\":0.0014207164470153514,\"rsi_avg_loss\":0.0013511849352809656,\"rsi\":51},{\"period_id\":\"120m209862\",\"size\":\"120m\",\"time\":1511006400000,\"open\":0.1923,\"high\":0.19247,\"low\":0.191,\"close\":0.1918,\"volume\":337951.37589794997,\"close_time\":1511013473993,\"vwap\":0.19739267191666987,\"ema1\":0.18982210337164585,\"sma1\":0.1828822066666666,\"sma2\":0.1836383333333333,\"rsi_avg_gain\":0.001530002327554994,\"rsi_avg_loss\":0.0014105068533795016,\"rsi\":52},{\"period_id\":\"120m209861\",\"size\":\"120m\",\"time\":1510999200000,\"open\":0.19251,\"high\":0.19253,\"low\":0.19101,\"close\":0.1923,\"volume\":385301.98817009997,\"close_time\":1511006395926,\"vwap\":0.1973937239658175,\"ema1\":0.18968569670762142,\"sma1\":0.1828587807407407,\"sma2\":0.1833331666666666,\"rsi_avg_gain\":0.0016476948142899934,\"rsi_avg_loss\":0.0014805458421010018,\"rsi\":53},{\"period_id\":\"120m209860\",\"size\":\"120m\",\"time\":1510992000000,\"open\":0.18916,\"high\":0.194,\"low\":0.18914,\"close\":0.19254,\"volume\":803391.3881384006,\"close_time\":1510999159827,\"vwap\":0.1973945378857309,\"ema1\":0.1895053999288367,\"sma1\":0.1828586881481481,\"sma2\":0.1830156666666666,\"rsi_avg_gain\":0.0017744405692353775,\"rsi_avg_loss\":0.0015759724453395412,\"rsi\":53},{\"period_id\":\"120m209859\",\"size\":\"120m\",\"time\":1510984800000,\"open\":0.1897,\"high\":0.191,\"low\":0.188,\"close\":0.189,\"volume\":488820.45648977003,\"close_time\":1510991947134,\"vwap\":0.19739726661379026,\"ema1\":0.1892961171653082,\"sma1\":0.18288137333333326,\"sma2\":0.18267499999999998,\"rsi_avg_gain\":0.0016386283053304075,\"rsi_avg_loss\":0.0016972010949810443,\"rsi\":49},{\"period_id\":\"120m209858\",\"size\":\"120m\",\"time\":1510977600000,\"open\":0.1878,\"high\":0.19247,\"low\":0.18721,\"close\":0.19028,\"volume\":289907.14823640994,\"close_time\":1510984750372,\"vwap\":0.19739883397490593,\"ema1\":0.18931653903877774,\"sma1\":0.18287785481481475,\"sma2\":0.18232716666666662,\"rsi_avg_gain\":0.0017646766365096694,\"rsi_avg_loss\":0.0017292934869026627,\"rsi\":51},{\"period_id\":\"120m209857\",\"size\":\"120m\",\"time\":1510970400000,\"open\":0.1891,\"high\":0.192,\"low\":0.1879,\"close\":0.1879,\"volume\":234549.13786073995,\"close_time\":1510977539952,\"vwap\":0.19739946122604904,\"ema1\":0.18925009345524516,\"sma1\":0.18287776222222216,\"sma2\":0.18207549999999997,\"rsi_avg_gain\":0.0017173440700873367,\"rsi_avg_loss\":0.0018623160628182523,\"rsi\":48},{\"period_id\":\"120m209856\",\"size\":\"120m\",\"time\":1510963200000,\"open\":0.19112,\"high\":0.19277,\"low\":0.1889,\"close\":0.18908,\"volume\":926769.0720193102,\"close_time\":1510970297833,\"vwap\":0.19740005206118882,\"ema1\":0.18934320334871033,\"sma1\":0.18286554,\"sma2\":0.18172000833333335,\"rsi_avg_gain\":0.001849447460094055,\"rsi_avg_loss\":0.0019148019138042727,\"rsi\":49},{\"period_id\":\"120m209855\",\"size\":\"120m\",\"time\":1510956000000,\"open\":0.192,\"high\":0.19408,\"low\":0.191,\"close\":0.19312,\"volume\":428584.75338550995,\"close_time\":1510963099527,\"vwap\":0.1974077446739554,\"ema1\":0.1893613553037938,\"sma1\":0.18286479925925925,\"sma2\":0.18132634166666664,\"rsi_avg_gain\":0.001991712649332059,\"rsi_avg_loss\":0.001751325137943062,\"rsi\":53},{\"period_id\":\"120m209854\",\"size\":\"120m\",\"time\":1510948800000,\"open\":0.1925,\"high\":0.19408,\"low\":0.19061,\"close\":0.192,\"volume\":621065.0758878803,\"close_time\":1510955983115,\"vwap\":0.1974087706689937,\"ema1\":0.18910213842819337,\"sma1\":0.18281776222222218,\"sma2\":0.18091634166666665,\"rsi_avg_gain\":0.0020587674685114475,\"rsi_avg_loss\":0.0018860424562463743,\"rsi\":52},{\"period_id\":\"120m209853\",\"size\":\"120m\",\"time\":1510941600000,\"open\":0.19389,\"high\":0.19475,\"low\":0.19061,\"close\":0.1925,\"volume\":1033069.886988151,\"close_time\":1510948796268,\"vwap\":0.19741158090759195,\"ema1\":0.1889022859059998,\"sma1\":0.18272646592592587,\"sma2\":0.180541675,\"rsi_avg_gain\":0.002217134196858482,\"rsi_avg_loss\":0.0019926611067268645,\"rsi\":53},{\"period_id\":\"120m209852\",\"size\":\"120m\",\"time\":1510934400000,\"open\":0.19491,\"high\":0.196,\"low\":0.19103,\"close\":0.19384,\"volume\":1005591.6163256401,\"close_time\":1510941572001,\"vwap\":0.19741644844438505,\"ema1\":0.18865416769262047,\"sma1\":0.18259544740740735,\"sma2\":0.18014800833333336,\"rsi_avg_gain\":0.0023876829812322113,\"rsi_avg_loss\":0.002042865807244315,\"rsi\":54},{\"period_id\":\"120m209851\",\"size\":\"120m\",\"time\":1510927200000,\"open\":0.19521,\"high\":0.19796,\"low\":0.1946,\"close\":0.19491,\"volume\":960112.6958736299,\"close_time\":1510934385989,\"vwap\":0.19742027156728775,\"ema1\":0.188296524085215,\"sma1\":0.1824462807407407,\"sma2\":0.179732675,\"rsi_avg_gain\":0.002571350902865458,\"rsi_avg_loss\":0.0021177016385708013,\"rsi\":55},{\"period_id\":\"120m209850\",\"size\":\"120m\",\"time\":1510920000000,\"open\":0.1988,\"high\":0.199,\"low\":0.19422,\"close\":0.1953,\"volume\":1780399.7603614214,\"close_time\":1510927150967,\"vwap\":0.19742246593506818,\"ema1\":0.18784042229798845,\"sma1\":0.18227952148148144,\"sma2\":0.17931750833333332,\"rsi_avg_gain\":0.002769147126162801,\"rsi_avg_loss\":0.0022506017646147093,\"rsi\":55},{\"period_id\":\"120m209849\",\"size\":\"120m\",\"time\":1510912800000,\"open\":0.19248,\"high\":0.2,\"low\":0.1905,\"close\":0.1988,\"volume\":2745150.4320924804,\"close_time\":1510919995239,\"vwap\":0.19742467794203988,\"ema1\":0.18732596866336695,\"sma1\":0.18211100296296293,\"sma2\":0.1788875083333333,\"rsi_avg_gain\":0.0029821584435599396,\"rsi_avg_loss\":0.0021544942080466097,\"rsi\":58},{\"period_id\":\"120m209848\",\"size\":\"120m\",\"time\":1510905600000,\"open\":0.18905,\"high\":0.1943,\"low\":0.187,\"close\":0.1925,\"volume\":1784900.3421344298,\"close_time\":1510912797579,\"vwap\":0.19743016500219787,\"ema1\":0.18653465615739226,\"sma1\":0.18199248444444438,\"sma2\":0.17844600833333332,\"rsi_avg_gain\":0.0027269398622953196,\"rsi_avg_loss\":0.0023202245317425025,\"rsi\":54},{\"period_id\":\"120m209847\",\"size\":\"120m\",\"time\":1510898400000,\"open\":0.19545,\"high\":0.19594,\"low\":0.187,\"close\":0.188,\"volume\":1178642.750786331,\"close_time\":1510905535766,\"vwap\":0.19744695436245363,\"ema1\":0.18612325313376413,\"sma1\":0.18183091037037033,\"sma2\":0.177999675,\"rsi_avg_gain\":0.0025905506209334206,\"rsi_avg_loss\":0.002498703341876541,\"rsi\":51},{\"period_id\":\"120m209846\",\"size\":\"120m\",\"time\":1510891200000,\"open\":0.19199,\"high\":0.19689,\"low\":0.1894,\"close\":0.19405,\"volume\":956434.2075968998,\"close_time\":1510898331739,\"vwap\":0.19745552622891527,\"ema1\":0.18599382231540304,\"sma1\":0.18165322518518517,\"sma2\":0.17759884166666665,\"rsi_avg_gain\":0.0027898237456206072,\"rsi_avg_loss\":0.002225526675867044,\"rsi\":56},{\"period_id\":\"120m209845\",\"size\":\"120m\",\"time\":1510884000000,\"open\":0.187,\"high\":0.1955,\"low\":0.18683,\"close\":0.19112,\"volume\":924918.4014456196,\"close_time\":1510891162791,\"vwap\":0.19745759407422658,\"ema1\":0.18543822385439634,\"sma1\":0.18148841037037033,\"sma2\":0.17723384166666664,\"rsi_avg_gain\":0.0027790409568221935,\"rsi_avg_loss\":0.002396721035549124,\"rsi\":54},{\"period_id\":\"120m209844\",\"size\":\"120m\",\"time\":1510876800000,\"open\":0.19099,\"high\":0.1929,\"low\":0.185,\"close\":0.18834,\"volume\":1080509.2536917797,\"close_time\":1510883939814,\"vwap\":0.19746072473291149,\"ema1\":0.18504637722366507,\"sma1\":0.18135044740740738,\"sma2\":0.176999175,\"rsi_avg_gain\":0.002778967184270054,\"rsi_avg_loss\":0.002581084192129826,\"rsi\":52},{\"period_id\":\"120m209843\",\"size\":\"120m\",\"time\":1510869600000,\"open\":0.20252,\"high\":0.203,\"low\":0.19,\"close\":0.1903,\"volume\":3056503.1666262676,\"close_time\":1510876786878,\"vwap\":0.19747446900551785,\"ema1\":0.18481923082529714,\"sma1\":0.18111878074074073,\"sma2\":0.17677250833333333,\"rsi_avg_gain\":0.0029927338907523656,\"rsi_avg_loss\":0.002628859899216736,\"rsi\":53},{\"period_id\":\"120m209842\",\"size\":\"120m\",\"time\":1510862400000,\"open\":0.195,\"high\":0.209,\"low\":0.19241,\"close\":0.2028,\"volume\":5328767.228624752,\"close_time\":1510869597062,\"vwap\":0.19750501072504734,\"ema1\":0.18444124674428314,\"sma1\":0.18081313259259257,\"sma2\":0.17632550833333333,\"rsi_avg_gain\":0.003222944190041009,\"rsi_avg_loss\":0.001869541429925715,\"rsi\":63},{\"period_id\":\"120m209841\",\"size\":\"120m\",\"time\":1510855200000,\"open\":0.19512,\"high\":0.201,\"low\":0.1905,\"close\":0.195,\"volume\":3369777.689228698,\"close_time\":1510862391100,\"vwap\":0.19735499626630254,\"ema1\":0.18317512583009576,\"sma1\":0.18058378074074072,\"sma2\":0.1760255083333333,\"rsi_avg_gain\":0.0028708629738903174,\"rsi_avg_loss\":0.00201335230915077,\"rsi\":59},{\"period_id\":\"120m209840\",\"size\":\"120m\",\"time\":1510848000000,\"open\":0.2055,\"high\":0.2098,\"low\":0.195,\"close\":0.1964,\"volume\":6663655.530201383,\"close_time\":1510855198173,\"vwap\":0.19738486492403506,\"ema1\":0.1823596172666541,\"sma1\":0.18027998444444446,\"sma2\":0.17574217499999994,\"rsi_avg_gain\":0.0030916985872664958,\"rsi_avg_loss\":0.002060533256008523,\"rsi\":60},{\"period_id\":\"120m209839\",\"size\":\"120m\",\"time\":1510840800000,\"open\":0.22,\"high\":0.22,\"low\":0.194,\"close\":0.205,\"volume\":15617530.64268609,\"close_time\":1510847998500,\"vwap\":0.19730933091870523,\"ema1\":0.18139131500918196,\"sma1\":0.17989850296296292,\"sma2\":0.17520267499999995,\"rsi_avg_gain\":0.0033295215555177644,\"rsi_avg_loss\":0.0015574973526245634,\"rsi\":68},{\"period_id\":\"120m209838\",\"size\":\"120m\",\"time\":1510833600000,\"open\":0.17678,\"high\":0.22,\"low\":0.1757,\"close\":0.22,\"volume\":10349111.628457345,\"close_time\":1510840796412,\"vwap\":0.194729065677756,\"ema1\":0.1797631298374014,\"sma1\":0.17952257703703703,\"sma2\":0.1743610083333333,\"rsi_avg_gain\":0.0035856385982499,\"rsi_avg_loss\":0.0005234586874418366,\"rsi\":87},{\"period_id\":\"120m209837\",\"size\":\"120m\",\"time\":1510826400000,\"open\":0.177,\"high\":0.1778,\"low\":0.17555,\"close\":0.177,\"volume\":1105490.1614706505,\"close_time\":1510833568077,\"vwap\":0.19343633931247936,\"ema1\":0.17698817327446356,\"sma1\":0.17950692888888892,\"sma2\":0.17427934166666662,\"rsi_avg_gain\":0.0005537646442691225,\"rsi_avg_loss\":0.0005637247403219779,\"rsi\":50},{\"period_id\":\"120m209836\",\"size\":\"120m\",\"time\":1510819200000,\"open\":0.1785,\"high\":0.17858,\"low\":0.176,\"close\":0.177,\"volume\":397588.30518430006,\"close_time\":1510826392504,\"vwap\":0.19345790555665143,\"ema1\":0.17698735763821966,\"sma1\":0.1794858177777778,\"sma2\":0.1743330083333333,\"rsi_avg_gain\":0.0005963619245975165,\"rsi_avg_loss\":0.000607088181885207,\"rsi\":50},{\"period_id\":\"120m209835\",\"size\":\"120m\",\"time\":1510812000000,\"open\":0.179,\"high\":0.17957,\"low\":0.1775,\"close\":0.1786,\"volume\":236250.85952177003,\"close_time\":1510819171050,\"vwap\":0.19346445113962782,\"ema1\":0.17698648575120032,\"sma1\":0.17944692888888894,\"sma2\":0.1743230083333333,\"rsi_avg_gain\":0.0006422359187973254,\"rsi_avg_loss\":0.0005307103497225292,\"rsi\":55},{\"period_id\":\"120m209834\",\"size\":\"120m\",\"time\":1510804800000,\"open\":0.17893,\"high\":0.1797,\"low\":0.17753,\"close\":0.17945,\"volume\":206948.74571139002,\"close_time\":1510811990052,\"vwap\":0.19346608729728246,\"ema1\":0.17687520890645553,\"sma1\":0.1794049844444445,\"sma2\":0.174257175,\"rsi_avg_gain\":0.0006916386817817352,\"rsi_avg_loss\":0.0005061496073934939,\"rsi\":58},{\"period_id\":\"120m209833\",\"size\":\"120m\",\"time\":1510797600000,\"open\":0.17994,\"high\":0.17997,\"low\":0.17603,\"close\":0.178,\"volume\":353774.0085576001,\"close_time\":1510804386630,\"vwap\":0.19346694718817936,\"ema1\":0.17669763710690073,\"sma1\":0.17935433629629635,\"sma2\":0.17422967499999995,\"rsi_avg_gain\":0.0006333031957649452,\"rsi_avg_loss\":0.0005450841925776088,\"rsi\":54},{\"period_id\":\"120m209832\",\"size\":\"120m\",\"time\":1510790400000,\"open\":0.1778,\"high\":0.1809,\"low\":0.17779,\"close\":0.18,\"volume\":1361998.4149140103,\"close_time\":1510797487097,\"vwap\":0.19346919180025468,\"ema1\":0.17660781897634217,\"sma1\":0.17930896592592596,\"sma2\":0.17417967499999998,\"rsi_avg_gain\":0.0006820188262084025,\"rsi_avg_loss\":0.0004331675920066556,\"rsi\":61},{\"period_id\":\"120m209831\",\"size\":\"120m\",\"time\":1510783200000,\"open\":0.17768,\"high\":0.1787,\"low\":0.175,\"close\":0.1778,\"volume\":1566869.6451750586,\"close_time\":1510790392691,\"vwap\":0.1934931033238311,\"ema1\":0.17637387545746921,\"sma1\":0.17929655851851856,\"sma2\":0.1741280083333333,\"rsi_avg_gain\":0.0005652510436090504,\"rsi_avg_loss\":0.0004664881760071676,\"rsi\":55},{\"period_id\":\"120m209830\",\"size\":\"120m\",\"time\":1510776000000,\"open\":0.1769,\"high\":0.17899,\"low\":0.17601,\"close\":0.17768,\"volume\":491676.01611941017,\"close_time\":1510783162699,\"vwap\":0.19355838484898294,\"ema1\":0.17627552204074295,\"sma1\":0.17929822518518523,\"sma2\":0.17407984166666662,\"rsi_avg_gain\":0.000599501123886669,\"rsi_avg_loss\":0.0005023718818538727,\"rsi\":54},{\"period_id\":\"120m209829\",\"size\":\"120m\",\"time\":1510768800000,\"open\":0.17759,\"high\":0.17889,\"low\":0.17601,\"close\":0.17624,\"volume\":977653.8880108004,\"close_time\":1510775927078,\"vwap\":0.19356804899839808,\"ema1\":0.17617866149182868,\"sma1\":0.1792899844444445,\"sma2\":0.17404934166666666,\"rsi_avg_gain\":0.0005348473641856439,\"rsi_avg_loss\":0.0005410158727657091,\"rsi\":50},{\"period_id\":\"120m209828\",\"size\":\"120m\",\"time\":1510761600000,\"open\":0.17791,\"high\":0.17813,\"low\":0.176,\"close\":0.17753,\"volume\":790866.41378568,\"close_time\":1510768797924,\"vwap\":0.19358669228843847,\"ema1\":0.17617443124988583,\"sma1\":0.1792887807407408,\"sma2\":0.174027175,\"rsi_avg_gain\":0.000575989469123001,\"rsi_avg_loss\":0.00048340170913230334,\"rsi\":54},{\"period_id\":\"120m209827\",\"size\":\"120m\",\"time\":1510754400000,\"open\":0.17899,\"high\":0.17936,\"low\":0.17741,\"close\":0.17867,\"volume\":501227.49448165024,\"close_time\":1510761592558,\"vwap\":0.1936037668797101,\"ema1\":0.17608094374987796,\"sma1\":0.17928933629629634,\"sma2\":0.174012675,\"rsi_avg_gain\":0.0006202963513632319,\"rsi_avg_loss\":0.0004328941482963265,\"rsi\":59},{\"period_id\":\"120m209826\",\"size\":\"120m\",\"time\":1510747200000,\"open\":0.17861,\"high\":0.18,\"low\":0.1775,\"close\":0.17894,\"volume\":1020662.5634295301,\"close_time\":1510754363661,\"vwap\":0.19361210365748074,\"ema1\":0.17590238814642126,\"sma1\":0.17928470666666668,\"sma2\":0.17395700833333333,\"rsi_avg_gain\":0.0006680114553142497,\"rsi_avg_loss\":0.0004454244673960445,\"rsi\":60},{\"period_id\":\"120m209825\",\"size\":\"120m\",\"time\":1510740000000,\"open\":0.17916,\"high\":0.18,\"low\":0.17772,\"close\":0.1798,\"volume\":839624.29586238,\"close_time\":1510747159672,\"vwap\":0.1936367647144759,\"ema1\":0.17569289767376065,\"sma1\":0.17928461407407412,\"sma2\":0.17403017499999998,\"rsi_avg_gain\":0.0007193969518768842,\"rsi_avg_loss\":0.00041353404181112484,\"rsi\":63},{\"period_id\":\"120m209824\",\"size\":\"120m\",\"time\":1510732800000,\"open\":0.178,\"high\":0.18,\"low\":0.17774,\"close\":0.17916,\"volume\":1371706.4441208409,\"close_time\":1510739987906,\"vwap\":0.19365175265581228,\"ema1\":0.17540964923746827,\"sma1\":0.1792250770370371,\"sma2\":0.17409917499999994,\"rsi_avg_gain\":0.0007255044097135697,\"rsi_avg_loss\":0.0004453443527196729,\"rsi\":62},{\"period_id\":\"120m209823\",\"size\":\"120m\",\"time\":1510725600000,\"open\":0.17647,\"high\":0.179,\"low\":0.17647,\"close\":0.178,\"volume\":594290.64150528,\"close_time\":1510732786046,\"vwap\":0.19368608708510193,\"ema1\":0.17515100435729367,\"sma1\":0.17916766962962966,\"sma2\":0.17420850833333326,\"rsi_avg_gain\":0.0006920816719992272,\"rsi_avg_loss\":0.0004796016106211862,\"rsi\":59},{\"period_id\":\"120m209822\",\"size\":\"120m\",\"time\":1510718400000,\"open\":0.17676,\"high\":0.17748,\"low\":0.17561,\"close\":0.17645,\"volume\":194388.95898348003,\"close_time\":1510725406545,\"vwap\":0.19369353183638438,\"ema1\":0.17495452189917599,\"sma1\":0.17912507703703712,\"sma2\":0.1743610083333333,\"rsi_avg_gain\":0.0006260879544607065,\"rsi_avg_loss\":0.0005164940422074313,\"rsi\":55},{\"period_id\":\"120m209821\",\"size\":\"120m\",\"time\":1510711200000,\"open\":0.17672,\"high\":0.17744,\"low\":0.176,\"close\":0.17607,\"volume\":154013.12588774003,\"close_time\":1510717437169,\"vwap\":0.1936942659280304,\"ema1\":0.17485138547842952,\"sma1\":0.17908285481481487,\"sma2\":0.17454400833333328,\"rsi_avg_gain\":0.0006450177971115308,\"rsi_avg_loss\":0.0005562243531464645,\"rsi\":54},{\"period_id\":\"120m209820\",\"size\":\"120m\",\"time\":1510704000000,\"open\":0.17563,\"high\":0.17746,\"low\":0.1754,\"close\":0.17661,\"volume\":330525.27986849006,\"close_time\":1510711129545,\"vwap\":0.19369487320864437,\"ema1\":0.17476734309763156,\"sma1\":0.17904081777777783,\"sma2\":0.17473817499999988,\"rsi_avg_gain\":0.0006946345507354947,\"rsi_avg_loss\":0.0005574723803115783,\"rsi\":55},{\"period_id\":\"120m209819\",\"size\":\"120m\",\"time\":1510696800000,\"open\":0.17597,\"high\":0.1761,\"low\":0.175,\"close\":0.17582,\"volume\":577026.2364562798,\"close_time\":1510703941720,\"vwap\":0.19369744812885725,\"ema1\":0.1746402633112613,\"sma1\":0.17901674370370377,\"sma2\":0.17493950833333327,\"rsi_avg_gain\":0.0006872987469459185,\"rsi_avg_loss\":0.0006003548711047766,\"rsi\":53},{\"period_id\":\"120m209818\",\"size\":\"120m\",\"time\":1510689600000,\"open\":0.17656,\"high\":0.1771,\"low\":0.1746,\"close\":0.17602,\"volume\":754846.95783339,\"close_time\":1510696790603,\"vwap\":0.1937056402292015,\"ema1\":0.1745589021603138,\"sma1\":0.17898000851851853,\"sma2\":0.1751435083333333,\"rsi_avg_gain\":0.0007401678813263737,\"rsi_avg_loss\":0.0006311513996512975,\"rsi\":54},{\"period_id\":\"120m209817\",\"size\":\"120m\",\"time\":1510682400000,\"open\":0.17774,\"high\":0.1785,\"low\":0.17451,\"close\":0.17656,\"volume\":873858.6678473103,\"close_time\":1510689575374,\"vwap\":0.19371988022505854,\"ema1\":0.17445813679205957,\"sma1\":0.17891982333333337,\"sma2\":0.17536750833333326,\"rsi_avg_gain\":0.0007971038721976331,\"rsi_avg_loss\":0.0006381630457783215,\"rsi\":56},{\"period_id\":\"120m209816\",\"size\":\"120m\",\"time\":1510675200000,\"open\":0.17779,\"high\":0.17873,\"low\":0.177,\"close\":0.17772,\"volume\":601474.58078276,\"close_time\":1510682334312,\"vwap\":0.1937432344615332,\"ema1\":0.17431318070875335,\"sma1\":0.17886676777777777,\"sma2\":0.1755915083333333,\"rsi_avg_gain\":0.000858419554674374,\"rsi_avg_loss\":0.0005980217416074236,\"rsi\":59},{\"period_id\":\"120m209815\",\"size\":\"120m\",\"time\":1510668000000,\"open\":0.175,\"high\":0.179,\"low\":0.175,\"close\":0.1779,\"volume\":903691.211076629,\"close_time\":1510675183379,\"vwap\":0.1937540839878525,\"ema1\":0.1740782276541846,\"sma1\":0.17881121222222218,\"sma2\":0.17578050833333328,\"rsi_avg_gain\":0.0009244518281108643,\"rsi_avg_loss\":0.000630177260192609,\"rsi\":59},{\"period_id\":\"120m209814\",\"size\":\"120m\",\"time\":1510660800000,\"open\":0.17511,\"high\":0.17649,\"low\":0.1735,\"close\":0.1764,\"volume\":739101.4692513704,\"close_time\":1510667938280,\"vwap\":0.19378779496976709,\"ema1\":0.17381465714757663,\"sma1\":0.17879167518518516,\"sma2\":0.17596567499999993,\"rsi_avg_gain\":0.0008801788918116999,\"rsi_avg_loss\":0.000678652434053579,\"rsi\":56},{\"period_id\":\"120m209813\",\"size\":\"120m\",\"time\":1510653600000,\"open\":0.17595,\"high\":0.17699,\"low\":0.175,\"close\":0.1756,\"volume\":896831.7352713099,\"close_time\":1510660756249,\"vwap\":0.19381438107386614,\"ema1\":0.17363635764051294,\"sma1\":0.1787673233333333,\"sma2\":0.17616834166666662,\"rsi_avg_gain\":0.0008863464988741387,\"rsi_avg_loss\":0.0007308564674423159,\"rsi\":55},{\"period_id\":\"120m209812\",\"size\":\"120m\",\"time\":1510646400000,\"open\":0.17599,\"high\":0.17621,\"low\":0.17403,\"close\":0.1758,\"volume\":425112.28303541004,\"close_time\":1510653572451,\"vwap\":0.19383441404128374,\"ema1\":0.17350093402951383,\"sma1\":0.17875611962962965,\"sma2\":0.17634034166666665,\"rsi_avg_gain\":0.000954526998787534,\"rsi_avg_loss\":0.0007716915803224935,\"rsi\":55},{\"period_id\":\"120m209811\",\"size\":\"120m\",\"time\":1510639200000,\"open\":0.176,\"high\":0.1766,\"low\":0.17201,\"close\":0.17435,\"volume\":679307.6820065394,\"close_time\":1510646329094,\"vwap\":0.1938420440076862,\"ema1\":0.1733423777556872,\"sma1\":0.1787413048148148,\"sma2\":0.1766395083333333,\"rsi_avg_gain\":0.0009164136910019591,\"rsi_avg_loss\":0.0008310524711165315,\"rsi\":52},{\"period_id\":\"120m209810\",\"size\":\"120m\",\"time\":1510632000000,\"open\":0.1768,\"high\":0.1768,\"low\":0.175,\"close\":0.17598,\"volume\":429675.1602830501,\"close_time\":1510639183059,\"vwap\":0.19385852566320455,\"ema1\":0.17327288656642426,\"sma1\":0.17872556407407408,\"sma2\":0.17687317500000002,\"rsi_avg_gain\":0.0009869070518482637,\"rsi_avg_loss\":0.0007695949688947268,\"rsi\":56},{\"period_id\":\"120m209809\",\"size\":\"120m\",\"time\":1510624800000,\"open\":0.17539,\"high\":0.178,\"low\":0.17465,\"close\":0.17654,\"volume\":586797.5998933498,\"close_time\":1510631991411,\"vwap\":0.19386307749778736,\"ema1\":0.1730861890882466,\"sma1\":0.17869852703703706,\"sma2\":0.17712250833333332,\"rsi_avg_gain\":0.0010628229789135149,\"rsi_avg_loss\":0.0007857176588097054,\"rsi\":57},{\"period_id\":\"120m209808\",\"size\":\"120m\",\"time\":1510617600000,\"open\":0.17346,\"high\":0.1755,\"low\":0.17214,\"close\":0.1755,\"volume\":764624.7999068601,\"close_time\":1510624784246,\"vwap\":0.19387315989106746,\"ema1\":0.1728479952322636,\"sma1\":0.17869111962962966,\"sma2\":0.17737250833333335,\"rsi_avg_gain\":0.001064578592676092,\"rsi_avg_loss\":0.0008461574787181442,\"rsi\":56},{\"period_id\":\"120m209807\",\"size\":\"120m\",\"time\":1510610400000,\"open\":0.17199,\"high\":0.1735,\"low\":0.1712,\"close\":0.1735,\"volume\":538034.5097671399,\"close_time\":1510617597826,\"vwap\":0.19388723066621594,\"ema1\":0.17266509835173005,\"sma1\":0.17870399000000003,\"sma2\":0.177619175,\"rsi_avg_gain\":0.000992623099805022,\"rsi_avg_loss\":0.0009112465155426168,\"rsi\":52},{\"period_id\":\"120m209806\",\"size\":\"120m\",\"time\":1510603200000,\"open\":0.17054,\"high\":0.17249,\"low\":0.1704,\"close\":0.17199,\"volume\":631139.0908938397,\"close_time\":1510610382134,\"vwap\":0.19390023821085142,\"ema1\":0.17260751892771142,\"sma1\":0.17872639740740745,\"sma2\":0.17783317499999998,\"rsi_avg_gain\":0.0009528248767131019,\"rsi_avg_loss\":0.0009813424013535874,\"rsi\":49},{\"period_id\":\"120m209805\",\"size\":\"120m\",\"time\":1510596000000,\"open\":0.17247,\"high\":0.1725,\"low\":0.17,\"close\":0.172,\"volume\":870330.9006816499,\"close_time\":1510603178336,\"vwap\":0.1939153569327564,\"ema1\":0.1726501064399674,\"sma1\":0.17875658259259264,\"sma2\":0.178046175,\"rsi_avg_gain\":0.001026119097998725,\"rsi_avg_loss\":0.001056061047611557,\"rsi\":49},{\"period_id\":\"120m209804\",\"size\":\"120m\",\"time\":1510588800000,\"open\":0.173,\"high\":0.17348,\"low\":0.17106,\"close\":0.1725,\"volume\":309292.22678649,\"close_time\":1510595941115,\"vwap\":0.19394845332756183,\"ema1\":0.1726949413668617,\"sma1\":0.17877991592592596,\"sma2\":0.17819934166666665,\"rsi_avg_gain\":0.0011050513363063193,\"rsi_avg_loss\":0.0010988349743509074,\"rsi\":50},{\"period_id\":\"120m209803\",\"size\":\"120m\",\"time\":1510581600000,\"open\":0.17303,\"high\":0.1735,\"low\":0.17,\"close\":0.173,\"volume\":635923.3682115899,\"close_time\":1510588750094,\"vwap\":0.1939523230160087,\"ema1\":0.17270838559905907,\"sma1\":0.17881482333333334,\"sma2\":0.17834684166666664,\"rsi_avg_gain\":0.0011900552852529592,\"rsi_avg_loss\":0.0011448992031471308,\"rsi\":51},{\"period_id\":\"120m209802\",\"size\":\"120m\",\"time\":1510574400000,\"open\":0.17399,\"high\":0.174,\"low\":0.165,\"close\":0.17304,\"volume\":1779330.7190665496,\"close_time\":1510581596236,\"vwap\":0.19396407782054245,\"ema1\":0.17268827426106315,\"sma1\":0.17885149000000003,\"sma2\":0.178471175,\"rsi_avg_gain\":0.001281597999503187,\"rsi_avg_loss\":0.001229891449543063,\"rsi\":51},{\"period_id\":\"120m209801\",\"size\":\"120m\",\"time\":1510567200000,\"open\":0.1739,\"high\":0.175,\"low\":0.17095,\"close\":0.17399,\"volume\":1125405.2639887903,\"close_time\":1510574391964,\"vwap\":0.19405799430241655,\"ema1\":0.17266401731355027,\"sma1\":0.17886871222222223,\"sma2\":0.17855467500000002,\"rsi_avg_gain\":0.0013801824610034322,\"rsi_avg_loss\":0.0012514215610463751,\"rsi\":52},{\"period_id\":\"120m209800\",\"size\":\"120m\",\"time\":1510560000000,\"open\":0.1685,\"high\":0.1739,\"low\":0.168,\"close\":0.17349,\"volume\":1034292.9793085196,\"close_time\":1510567185235,\"vwap\":0.19409805247262185,\"ema1\":0.17257257023172615,\"sma1\":0.17889504685185187,\"sma2\":0.17868650833333335,\"rsi_avg_gain\":0.0014478888041575425,\"rsi_avg_loss\":0.0013476847580499425,\"rsi\":52},{\"period_id\":\"120m209799\",\"size\":\"120m\",\"time\":1510552800000,\"open\":0.16969,\"high\":0.1705,\"low\":0.16809,\"close\":0.16856,\"volume\":70489.34351741005,\"close_time\":1510559923918,\"vwap\":0.19412149049406993,\"ema1\":0.1725092992132245,\"sma1\":0.17894949129629634,\"sma2\":0.17884384166666667,\"rsi_avg_gain\":0.0011800340967850445,\"rsi_avg_loss\":0.0014513528163614766,\"rsi\":45},{\"period_id\":\"120m209798\",\"size\":\"120m\",\"time\":1510545600000,\"open\":0.17278,\"high\":0.1729,\"low\":0.16771,\"close\":0.16941,\"volume\":232672.51672249002,\"close_time\":1510552749298,\"vwap\":0.1941219985114175,\"ema1\":0.1727816646762055,\"sma1\":0.1789848616666667,\"sma2\":0.1789820083333333,\"rsi_avg_gain\":0.001270805950383894,\"rsi_avg_loss\":0.0014976107253123583,\"rsi\":46},{\"period_id\":\"120m209797\",\"size\":\"120m\",\"time\":1510538400000,\"open\":0.16775,\"high\":0.17287,\"low\":0.16714,\"close\":0.1728,\"volume\":317883.98797446996,\"close_time\":1510545349531,\"vwap\":0.19412402342355844,\"ema1\":0.17301419327456452,\"sma1\":0.1790229172222223,\"sma2\":0.17904850833333333,\"rsi_avg_gain\":0.001368560254259578,\"rsi_avg_loss\":0.0013520423195671546,\"rsi\":50},{\"period_id\":\"120m209796\",\"size\":\"120m\",\"time\":1510531200000,\"open\":0.16949,\"high\":0.1724,\"low\":0.16559,\"close\":0.1677505,\"volume\":521480.4175115699,\"close_time\":1510538326283,\"vwap\":0.1941270394142327,\"ema1\":0.17302896522453448,\"sma1\":0.17908402833333342,\"sma2\":0.17919049999999997,\"rsi_avg_gain\":0.0010854110430487754,\"rsi_avg_loss\":0.001456045574918474,\"rsi\":43},{\"period_id\":\"120m209795\",\"size\":\"120m\",\"time\":1510524000000,\"open\":0.1674,\"high\":0.16998,\"low\":0.165,\"close\":0.1695,\"volume\":1311093.4219952,\"close_time\":1510531050771,\"vwap\":0.19414055561495183,\"ema1\":0.17339299730898514,\"sma1\":0.17921384314814823,\"sma2\":0.17930783333333336,\"rsi_avg_gain\":0.0011689042002063735,\"rsi_avg_loss\":0.0014334721576045092,\"rsi\":45},{\"period_id\":\"120m209794\",\"size\":\"120m\",\"time\":1510516800000,\"open\":0.17,\"high\":0.171,\"low\":0.1655,\"close\":0.1674,\"volume\":930806.39173004,\"close_time\":1510523988470,\"vwap\":0.194204837701874,\"ema1\":0.1736614798820186,\"sma1\":0.17935819500000005,\"sma2\":0.1794478333333334,\"rsi_avg_gain\":0.001097281446376093,\"rsi_avg_loss\":0.0015437392466510099,\"rsi\":42},{\"period_id\":\"120m209793\",\"size\":\"120m\",\"time\":1510509600000,\"open\":0.17021,\"high\":0.171,\"low\":0.1684,\"close\":0.17002,\"volume\":1081793.2557907307,\"close_time\":1510516799098,\"vwap\":0.19423538709639374,\"ema1\":0.1740933060807785,\"sma1\":0.17947856537037044,\"sma2\":0.17952533333333337,\"rsi_avg_gain\":0.0011816877114819463,\"rsi_avg_loss\":0.001460949957931856,\"rsi\":45},{\"period_id\":\"120m209792\",\"size\":\"120m\",\"time\":1510502400000,\"open\":0.16953,\"high\":0.173,\"low\":0.16717,\"close\":0.17022,\"volume\":1220729.4702502298,\"close_time\":1510509590715,\"vwap\":0.19427065271322216,\"ema1\":0.17437422374152184,\"sma1\":0.17956625055555564,\"sma2\":0.17962566666666674,\"rsi_avg_gain\":0.0012725867662113268,\"rsi_avg_loss\":0.0015579461085419982,\"rsi\":45},{\"period_id\":\"120m209791\",\"size\":\"120m\",\"time\":1510495200000,\"open\":0.16884,\"high\":0.17264,\"low\":0.1675,\"close\":0.16999,\"volume\":1416319.5101583297,\"close_time\":1510502384838,\"vwap\":0.1943370457700514,\"ema1\":0.17466072193059232,\"sma1\":0.1796653246296297,\"sma2\":0.17974183333333338,\"rsi_avg_gain\":0.0013527857482275821,\"rsi_avg_loss\":0.0016777881168913828,\"rsi\":45},{\"period_id\":\"120m209790\",\"size\":\"120m\",\"time\":1510488000000,\"open\":0.173,\"high\":0.1756,\"low\":0.1675,\"close\":0.17039,\"volume\":3313398.677564392,\"close_time\":1510495190490,\"vwap\":0.1944310376316481,\"ema1\":0.17498284068442627,\"sma1\":0.17967819500000004,\"sma2\":0.17984366666666673,\"rsi_avg_gain\":0.0014568461903989346,\"rsi_avg_loss\":0.0017760795104984112,\"rsi\":45},{\"period_id\":\"120m209789\",\"size\":\"120m\",\"time\":1510480800000,\"open\":0.16601,\"high\":0.1763,\"low\":0.165,\"close\":0.173,\"volume\":2580742.5473769414,\"close_time\":1510487985447,\"vwap\":0.1946366461119982,\"ema1\":0.17529958831783496,\"sma1\":0.1796714357407408,\"sma2\":0.17989550000000007,\"rsi_avg_gain\":0.0015689112819680835,\"rsi_avg_loss\":0.0017119317805367525,\"rsi\":48},{\"period_id\":\"120m209788\",\"size\":\"120m\",\"time\":1510473600000,\"open\":0.16596,\"high\":0.17146,\"low\":0.1611,\"close\":0.16601,\"volume\":2380649.9986581267,\"close_time\":1510480792987,\"vwap\":0.19481121923678454,\"ema1\":0.1754581806156167,\"sma1\":0.17971810240740746,\"sma2\":0.18005700000000008,\"rsi_avg_gain\":0.0011519044575040904,\"rsi_avg_loss\":0.001843618840578041,\"rsi\":38},{\"period_id\":\"120m209787\",\"size\":\"120m\",\"time\":1510466400000,\"open\":0.17,\"high\":0.17099,\"low\":0.161,\"close\":0.16122,\"volume\":3229527.0687472746,\"close_time\":1510473566212,\"vwap\":0.19508919671645267,\"ema1\":0.17610977927876267,\"sma1\":0.17976449129629626,\"sma2\":0.1802836666666667,\"rsi_avg_gain\":0.000872050954235175,\"rsi_avg_loss\":0.0019854356744686595,\"rsi\":31},{\"period_id\":\"120m209786\",\"size\":\"120m\",\"time\":1510459200000,\"open\":0.17066,\"high\":0.17355,\"low\":0.16823,\"close\":0.17,\"volume\":994724.1163038004,\"close_time\":1510466383975,\"vwap\":0.19551242401221341,\"ema1\":0.17713666060833252,\"sma1\":0.1797705098148148,\"sma2\":0.1803581666666667,\"rsi_avg_gain\":0.00093913179686865,\"rsi_avg_loss\":0.0014627768801970173,\"rsi\":39},{\"period_id\":\"120m209785\",\"size\":\"120m\",\"time\":1510452000000,\"open\":0.17445,\"high\":0.17445,\"low\":0.16902,\"close\":0.16922,\"volume\":1261435.8449201102,\"close_time\":1510459100083,\"vwap\":0.19554025921825738,\"ema1\":0.17762884409856236,\"sma1\":0.17979226907407408,\"sma2\":0.18044616666666669,\"rsi_avg_gain\":0.0009513727043200844,\"rsi_avg_loss\":0.0015752981786737112,\"rsi\":38},{\"period_id\":\"120m209784\",\"size\":\"120m\",\"time\":1510444800000,\"open\":0.17767,\"high\":0.1777,\"low\":0.17407,\"close\":0.17426,\"volume\":328023.63525571,\"close_time\":1510451999100,\"vwap\":0.19559552260508165,\"ema1\":0.17820876438122182,\"sma1\":0.17985986166666668,\"sma2\":0.18042516666666672,\"rsi_avg_gain\":0.001024555220037014,\"rsi_avg_loss\":0.0013087826539563052,\"rsi\":44},{\"period_id\":\"120m209783\",\"size\":\"120m\",\"time\":1510437600000,\"open\":0.17563,\"high\":0.1785,\"low\":0.17377,\"close\":0.1767,\"volume\":316327.0275906,\"close_time\":1510444746655,\"vwap\":0.19560126181490917,\"ema1\":0.17848109295923711,\"sma1\":0.17981625055555556,\"sma2\":0.1804106666666667,\"rsi_avg_gain\":0.0011033671600398612,\"rsi_avg_loss\":0.0012217659350298672,\"rsi\":47},{\"period_id\":\"120m209782\",\"size\":\"120m\",\"time\":1510430400000,\"open\":0.17608,\"high\":0.17998,\"low\":0.17214,\"close\":0.17598,\"volume\":1570101.0684755915,\"close_time\":1510437571913,\"vwap\":0.19560920041945018,\"ema1\":0.17860392695642588,\"sma1\":0.17969606537037042,\"sma2\":0.1804196666666667,\"rsi_avg_gain\":0.001132856941581389,\"rsi_avg_loss\":0.0013157479300321647,\"rsi\":46},{\"period_id\":\"120m209781\",\"size\":\"120m\",\"time\":1510423200000,\"open\":0.179,\"high\":0.18004,\"low\":0.175,\"close\":0.177,\"volume\":1139440.0789324606,\"close_time\":1510430382442,\"vwap\":0.19566633685039633,\"ema1\":0.1787848874361794,\"sma1\":0.1795708801851852,\"sma2\":0.18036033333333334,\"rsi_avg_gain\":0.0012199997832414958,\"rsi_avg_loss\":0.0013384977708038703,\"rsi\":48},{\"period_id\":\"120m209780\",\"size\":\"120m\",\"time\":1510416000000,\"open\":0.1732,\"high\":0.1794,\"low\":0.17001,\"close\":0.1794,\"volume\":991466.1092300097,\"close_time\":1510423190096,\"vwap\":0.19571550350084255,\"ema1\":0.17890798312143316,\"sma1\":0.1794468061111111,\"sma2\":0.18033533333333335,\"rsi_avg_gain\":0.0013138459204139186,\"rsi_avg_loss\":0.0012568437531733979,\"rsi\":51},{\"period_id\":\"120m209779\",\"size\":\"120m\",\"time\":1510408800000,\"open\":0.16985,\"high\":0.17395,\"low\":0.167,\"close\":0.17263,\"volume\":974812.9391063203,\"close_time\":1510415941956,\"vwap\":0.1957500104988206,\"ema1\":0.1788740509229113,\"sma1\":0.17939625055555555,\"sma2\":0.1804,\"rsi_avg_gain\":0.0008941417604457588,\"rsi_avg_loss\":0.001353524041879044,\"rsi\":40},{\"period_id\":\"120m209778\",\"size\":\"120m\",\"time\":1510401600000,\"open\":0.175,\"high\":0.17576832,\"low\":0.16701,\"close\":0.1695,\"volume\":2442211.8787478986,\"close_time\":1510408777466,\"vwap\":0.19578723018478594,\"ema1\":0.1793046751244914,\"sma1\":0.17933904388888883,\"sma2\":0.1805331666666667,\"rsi_avg_gain\":0.0007221526650954329,\"rsi_avg_loss\":0.0014576412758697396,\"rsi\":33},{\"period_id\":\"120m209777\",\"size\":\"120m\",\"time\":1510394400000,\"open\":0.1805,\"high\":0.18141,\"low\":0.172,\"close\":0.1721,\"volume\":2079496.2112085498,\"close_time\":1510401587132,\"vwap\":0.19603486738201262,\"ema1\":0.17998085961583565,\"sma1\":0.17914080314814812,\"sma2\":0.18063316666666665,\"rsi_avg_gain\":0.0007777028701027739,\"rsi_avg_loss\":0.0013697675278597202,\"rsi\":36},{\"period_id\":\"120m209776\",\"size\":\"120m\",\"time\":1510387200000,\"open\":0.17744,\"high\":0.181,\"low\":0.17692,\"close\":0.18022,\"volume\":981048.3481494704,\"close_time\":1510394392419,\"vwap\":0.19615391520117348,\"ema1\":0.18052436717554846,\"sma1\":0.17894635870370368,\"sma2\":0.18052216666666665,\"rsi_avg_gain\":0.0008375261678029873,\"rsi_avg_loss\":0.0008505188761566227,\"rsi\":50},{\"period_id\":\"120m209775\",\"size\":\"120m\",\"time\":1510380000000,\"open\":0.17612,\"high\":0.17835,\"low\":0.17575,\"close\":0.178,\"volume\":270682.5348436299,\"close_time\":1510387170239,\"vwap\":0.1961760042833149,\"ema1\":0.18054535801524146,\"sma1\":0.1788060809259259,\"sma2\":0.18041383333333333,\"rsi_avg_gain\":0.0007311820268647556,\"rsi_avg_loss\":0.0009159434050917475,\"rsi\":44},{\"period_id\":\"120m209774\",\"size\":\"120m\",\"time\":1510372800000,\"open\":0.17598,\"high\":0.177,\"low\":0.175,\"close\":0.1755,\"volume\":131092.04912470002,\"close_time\":1510379912100,\"vwap\":0.1961796880719543,\"ema1\":0.18072089994732707,\"sma1\":0.17869237722222217,\"sma2\":0.18035716666666668,\"rsi_avg_gain\":0.000595119105854352,\"rsi_avg_loss\":0.000986400590098805,\"rsi\":38},{\"period_id\":\"120m209773\",\"size\":\"120m\",\"time\":1510365600000,\"open\":0.17698,\"high\":0.177,\"low\":0.1758,\"close\":0.17635,\"volume\":94690.41121102999,\"close_time\":1510372576835,\"vwap\":0.19618046848823698,\"ema1\":0.18108096201265997,\"sma1\":0.17860571055555552,\"sma2\":0.18028483333333334,\"rsi_avg_gain\":0.0006408974986123791,\"rsi_avg_loss\":0.000996892943183327,\"rsi\":39},{\"period_id\":\"120m209772\",\"size\":\"120m\",\"time\":1510358400000,\"open\":0.17466,\"high\":0.17727,\"low\":0.1735,\"close\":0.177,\"volume\":222966.58106674007,\"close_time\":1510365541592,\"vwap\":0.19618101397315713,\"ema1\":0.18140723525491237,\"sma1\":0.17850895129629624,\"sma2\":0.1801945,\"rsi_avg_gain\":0.0006901973061979467,\"rsi_avg_loss\":0.0010235770157358919,\"rsi\":40},{\"period_id\":\"120m209771\",\"size\":\"120m\",\"time\":1510351200000,\"open\":0.17467,\"high\":0.179,\"low\":0.17387,\"close\":0.1747,\"volume\":797093.3192915202,\"close_time\":1510358365250,\"vwap\":0.19618359794957418,\"ema1\":0.18171118251387183,\"sma1\":0.17839543277777775,\"sma2\":0.18016533333333332,\"rsi_avg_gain\":0.0005663663297516352,\"rsi_avg_loss\":0.0011023137092540374,\"rsi\":34},{\"period_id\":\"120m209770\",\"size\":\"120m\",\"time\":1510344000000,\"open\":0.17441,\"high\":0.17549,\"low\":0.171,\"close\":0.17479,\"volume\":1094468.96498331,\"close_time\":1510351192590,\"vwap\":0.196209979007178,\"ema1\":0.18219471234241472,\"sma1\":0.1783408957407407,\"sma2\":0.18013771,\"rsi_avg_gain\":0.000609932970501761,\"rsi_avg_loss\":0.0011801839945812704,\"rsi\":34},{\"period_id\":\"120m209769\",\"size\":\"120m\",\"time\":1510336800000,\"open\":0.1761,\"high\":0.1772,\"low\":0.1715,\"close\":0.17441,\"volume\":1735605.7652716597,\"close_time\":1510343991423,\"vwap\":0.19625980625608735,\"ema1\":0.18270538215913298,\"sma1\":0.1782705253703703,\"sma2\":0.1800888766666667,\"rsi_avg_gain\":0.0006276201220788201,\"rsi_avg_loss\":0.0012709673787798296,\"rsi\":33},{\"period_id\":\"120m209768\",\"size\":\"120m\",\"time\":1510329600000,\"open\":0.1778,\"high\":0.178,\"low\":0.1752,\"close\":0.1762,\"volume\":1264054.9084802696,\"close_time\":1510336785873,\"vwap\":0.19637577257559458,\"ema1\":0.1832774774804525,\"sma1\":0.17821959944444443,\"sma2\":0.18001887666666672,\"rsi_avg_gain\":0.0006758985930079602,\"rsi_avg_loss\":0.0012310417925321252,\"rsi\":35},{\"period_id\":\"120m209767\",\"size\":\"120m\",\"time\":1510322400000,\"open\":0.17786,\"high\":0.1788,\"low\":0.175,\"close\":0.1778,\"volume\":1705075.3105860895,\"close_time\":1510329594861,\"vwap\":0.19642601172162913,\"ema1\":0.18376557937565613,\"sma1\":0.17816441425925925,\"sma2\":0.1799383766666667,\"rsi_avg_gain\":0.000727890792470111,\"rsi_avg_loss\":0.001202660391957672,\"rsi\":38},{\"period_id\":\"120m209766\",\"size\":\"120m\",\"time\":1510315200000,\"open\":0.183,\"high\":0.18419,\"low\":0.175,\"close\":0.1756,\"volume\":3142127.279473542,\"close_time\":1510322389977,\"vwap\":0.19652076990573683,\"ema1\":0.18417699864294276,\"sma1\":0.17804691425925925,\"sma2\":0.17987671000000008,\"rsi_avg_gain\":0.000614651622660119,\"rsi_avg_loss\":0.0012951727298005698,\"rsi\":32},{\"period_id\":\"120m209765\",\"size\":\"120m\",\"time\":1510308000000,\"open\":0.18448,\"high\":0.18618,\"low\":0.1828,\"close\":0.18419,\"volume\":1506359.236394429,\"close_time\":1510315192886,\"vwap\":0.19682098790022803,\"ema1\":0.18476851579073192,\"sma1\":0.17791543277777783,\"sma2\":0.1797035433333334,\"rsi_avg_gain\":0.0006619325167108974,\"rsi_avg_loss\":0.000734032170554461,\"rsi\":47},{\"period_id\":\"120m209764\",\"size\":\"120m\",\"time\":1510300800000,\"open\":0.184,\"high\":0.18554,\"low\":0.183,\"close\":0.1833,\"volume\":1503755.2062659115,\"close_time\":1510307961116,\"vwap\":0.19686456650129328,\"ema1\":0.18480841343147206,\"sma1\":0.17779617351851856,\"sma2\":0.1795332100000001,\"rsi_avg_gain\":0.0006443888641501971,\"rsi_avg_loss\":0.0007904961836740349,\"rsi\":45},{\"period_id\":\"120m209763\",\"size\":\"120m\",\"time\":1510293600000,\"open\":0.1856,\"high\":0.18767,\"low\":0.182,\"close\":0.18456,\"volume\":1486303.6773744512,\"close_time\":1510300710540,\"vwap\":0.1969084165279041,\"ema1\":0.18491244194398737,\"sma1\":0.1776452475925926,\"sma2\":0.17936287666666675,\"rsi_avg_gain\":0.0006939572383155969,\"rsi_avg_loss\":0.0007543805054951136,\"rsi\":48},{\"period_id\":\"120m209762\",\"size\":\"120m\",\"time\":1510286400000,\"open\":0.18779,\"high\":0.1893,\"low\":0.185,\"close\":0.1856,\"volume\":939146.5902925809,\"close_time\":1510293560736,\"vwap\":0.1969589786228368,\"ema1\":0.18493674828495202,\"sma1\":0.17748154388888893,\"sma2\":0.1791872100000001,\"rsi_avg_gain\":0.0007473385643398736,\"rsi_avg_loss\":0.000732409775148585,\"rsi\":51},{\"period_id\":\"120m209761\",\"size\":\"120m\",\"time\":1510279200000,\"open\":0.18826,\"high\":0.1888,\"low\":0.18701,\"close\":0.18705,\"volume\":339837.14506474993,\"close_time\":1510285951714,\"vwap\":0.19697786570389847,\"ema1\":0.1848910067873625,\"sma1\":0.17732413648148154,\"sma2\":0.17897471000000006,\"rsi_avg_gain\":0.0008048261462121716,\"rsi_avg_loss\":0.0006772105270830911,\"rsi\":54},{\"period_id\":\"120m209760\",\"size\":\"120m\",\"time\":1510272000000,\"open\":0.18789,\"high\":0.1891,\"low\":0.18751,\"close\":0.18826,\"volume\":345118.0852415101,\"close_time\":1510279161966,\"vwap\":0.1969800748974636,\"ema1\":0.18474211070373234,\"sma1\":0.17716571055555563,\"sma2\":0.17874387666666677,\"rsi_avg_gain\":0.0008667358497669541,\"rsi_avg_loss\":0.0006362267214740969,\"rsi\":58},{\"period_id\":\"120m209759\",\"size\":\"120m\",\"time\":1510264800000,\"open\":0.18834,\"high\":0.18945,\"low\":0.187,\"close\":0.1879,\"volume\":796401.9897196796,\"close_time\":1510271939436,\"vwap\":0.19698185858800726,\"ema1\":0.18449949764881732,\"sma1\":0.17701191425925933,\"sma2\":0.1784985433333334,\"rsi_avg_gain\":0.0009057155305182582,\"rsi_avg_loss\":0.0006851672385105659,\"rsi\":57},{\"period_id\":\"120m209758\",\"size\":\"120m\",\"time\":1510257600000,\"open\":0.18978,\"high\":0.19079,\"low\":0.188,\"close\":0.18826,\"volume\":1298007.2077193111,\"close_time\":1510264623260,\"vwap\":0.1969933248725711,\"ema1\":0.18426498024528748,\"sma1\":0.17684580314814824,\"sma2\":0.17826021000000009,\"rsi_avg_gain\":0.0009753859559427396,\"rsi_avg_loss\":0.0007101801030113786,\"rsi\":58},{\"period_id\":\"120m209757\",\"size\":\"120m\",\"time\":1510250400000,\"open\":0.19128,\"high\":0.19157,\"low\":0.189,\"close\":0.19,\"volume\":1405700.9650095599,\"close_time\":1510257580160,\"vwap\":0.19701572006314663,\"ema1\":0.1839894616415142,\"sma1\":0.17667126611111125,\"sma2\":0.1780185433333334,\"rsi_avg_gain\":0.001050415644861412,\"rsi_avg_loss\":0.0006309631878584084,\"rsi\":62},{\"period_id\":\"120m209756\",\"size\":\"120m\",\"time\":1510243200000,\"open\":0.18917,\"high\":0.1916,\"low\":0.189,\"close\":0.19116,\"volume\":1132757.5451497396,\"close_time\":1510250373928,\"vwap\":0.19703421628922835,\"ema1\":0.18357494175472208,\"sma1\":0.1765036735185187,\"sma2\":0.17775237666666677,\"rsi_avg_gain\":0.0011312168483122898,\"rsi_avg_loss\":0.0005902680484629018,\"rsi\":66},{\"period_id\":\"120m209755\",\"size\":\"120m\",\"time\":1510236000000,\"open\":0.18691,\"high\":0.1895,\"low\":0.186,\"close\":0.18924,\"volume\":1015144.8545400195,\"close_time\":1510243165747,\"vwap\":0.19704668631240355,\"ema1\":0.1830518342895305,\"sma1\":0.17636571055555572,\"sma2\":0.17752904333333344,\"rsi_avg_gain\":0.0010705412212593888,\"rsi_avg_loss\":0.0006356732829600481,\"rsi\":63},{\"period_id\":\"120m209754\",\"size\":\"120m\",\"time\":1510228800000,\"open\":0.18752,\"high\":0.18776,\"low\":0.185,\"close\":0.18751,\"volume\":1343139.0552525606,\"close_time\":1510235959442,\"vwap\":0.1970618592850203,\"ema1\":0.1826250642405326,\"sma1\":0.1762457105555557,\"sma2\":0.17735404333333343,\"rsi_avg_gain\":0.0010198136228947278,\"rsi_avg_loss\":0.0006845712278031286,\"rsi\":60},{\"period_id\":\"120m209753\",\"size\":\"120m\",\"time\":1510221600000,\"open\":0.1869,\"high\":0.19,\"low\":0.1862,\"close\":0.18776,\"volume\":3008040.409756683,\"close_time\":1510228722468,\"vwap\":0.19709211444946084,\"ema1\":0.18228817211919002,\"sma1\":0.17610496981481497,\"sma2\":0.17714137666666677,\"rsi_avg_gain\":0.0010982608246558607,\"rsi_avg_loss\":0.0007179997837879846,\"rsi\":60},{\"period_id\":\"120m209752\",\"size\":\"120m\",\"time\":1510214400000,\"open\":0.1918,\"high\":0.19399,\"low\":0.18508,\"close\":0.18612,\"volume\":2349684.717258219,\"close_time\":1510221593570,\"vwap\":0.19717003243000264,\"ema1\":0.18191080467913415,\"sma1\":0.17592635870370388,\"sma2\":0.17697271000000006,\"rsi_avg_gain\":0.001056588580398619,\"rsi_avg_loss\":0.0007732305363870603,\"rsi\":58},{\"period_id\":\"120m209751\",\"size\":\"120m\",\"time\":1510207200000,\"open\":0.19,\"high\":0.19345,\"low\":0.18762,\"close\":0.1923,\"volume\":1760255.8831517405,\"close_time\":1510214387087,\"vwap\":0.1972441052274775,\"ema1\":0.18162051534666063,\"sma1\":0.17574978462962984,\"sma2\":0.17669971000000004,\"rsi_avg_gain\":0.0011378646250446666,\"rsi_avg_loss\":0.00035732519303221936,\"rsi\":76},{\"period_id\":\"120m209750\",\"size\":\"120m\",\"time\":1510200000000,\"open\":0.19149,\"high\":0.19209,\"low\":0.18817,\"close\":0.19,\"volume\":1028929.5947521498,\"close_time\":1510207189870,\"vwap\":0.19727529680433464,\"ema1\":0.1808839991636717,\"sma1\":0.17558172907407427,\"sma2\":0.1764783766666667,\"rsi_avg_gain\":0.0010484695962019491,\"rsi_avg_loss\":0.00038481174634239006,\"rsi\":73},{\"period_id\":\"120m209749\",\"size\":\"120m\",\"time\":1510192800000,\"open\":0.1904,\"high\":0.19199,\"low\":0.19,\"close\":0.1915,\"volume\":451503.23897744983,\"close_time\":1510199851179,\"vwap\":0.19728809253900126,\"ema1\":0.18025530945082147,\"sma1\":0.17541978462962982,\"sma2\":0.17619621,\"rsi_avg_gain\":0.0011291211036020992,\"rsi_avg_loss\":0.00029902803452257383,\"rsi\":79},{\"period_id\":\"120m209748\",\"size\":\"120m\",\"time\":1510185600000,\"open\":0.1883,\"high\":0.19145,\"low\":0.18762,\"close\":0.1905,\"volume\":1098934.3051002997,\"close_time\":1510192757308,\"vwap\":0.19729072205392453,\"ema1\":0.1794798135508781,\"sma1\":0.17525987722222236,\"sma2\":0.17593787666666666,\"rsi_avg_gain\":0.001139053496186876,\"rsi_avg_loss\":0.0003220301910243103,\"rsi\":78},{\"period_id\":\"120m209747\",\"size\":\"120m\",\"time\":1510178400000,\"open\":0.18594,\"high\":0.194,\"low\":0.18486,\"close\":0.1883,\"volume\":3605912.2368677803,\"close_time\":1510185592050,\"vwap\":0.19730286694838187,\"ema1\":0.17871980069231796,\"sma1\":0.17507932166666682,\"sma2\":0.17577454333333328,\"rsi_avg_gain\":0.001057442226662789,\"rsi_avg_loss\":0.0003468017441800265,\"rsi\":75},{\"period_id\":\"120m209746\",\"size\":\"120m\",\"time\":1510171200000,\"open\":0.18458,\"high\":0.189,\"low\":0.18392,\"close\":0.18483,\"volume\":2863643.826655647,\"close_time\":1510178396358,\"vwap\":0.19745692852590346,\"ema1\":0.17805909729178818,\"sma1\":0.17494774759259274,\"sma2\":0.17574237666666667,\"rsi_avg_gain\":0.0008718608594830033,\"rsi_avg_loss\":0.00037347880142464394,\"rsi\":70},{\"period_id\":\"120m209745\",\"size\":\"120m\",\"time\":1510164000000,\"open\":0.18168,\"high\":0.18489,\"low\":0.1812,\"close\":0.18478,\"volume\":1649316.9000354288,\"close_time\":1510171085680,\"vwap\":0.19759555539786977,\"ema1\":0.17759213848432528,\"sma1\":0.17485432166666684,\"sma2\":0.17572520999999994,\"rsi_avg_gain\":0.0009350809255970809,\"rsi_avg_loss\":0.00040220793999577037,\"rsi\":70},{\"period_id\":\"120m209744\",\"size\":\"120m\",\"time\":1510156800000,\"open\":0.18179,\"high\":0.18185,\"low\":0.18021,\"close\":0.18169,\"volume\":681920.6512323202,\"close_time\":1510163982490,\"vwap\":0.19766693814074643,\"ema1\":0.17709642389703736,\"sma1\":0.17479080314814832,\"sma2\":0.17573820999999995,\"rsi_avg_gain\":0.0007693179198737787,\"rsi_avg_loss\":0.00043314701230313734,\"rsi\":64},{\"period_id\":\"120m209743\",\"size\":\"120m\",\"time\":1510149600000,\"open\":0.1805,\"high\":0.18185,\"low\":0.17981,\"close\":0.18185,\"volume\":951725.1750221897,\"close_time\":1510156611388,\"vwap\":0.1976754114843289,\"ema1\":0.1767796255451089,\"sma1\":0.17472358092592605,\"sma2\":0.17568104333333331,\"rsi_avg_gain\":0.0008284962214025308,\"rsi_avg_loss\":0.0004541583209418386,\"rsi\":65},{\"period_id\":\"120m209742\",\"size\":\"120m\",\"time\":1510142400000,\"open\":0.17993,\"high\":0.18099,\"low\":0.17898,\"close\":0.1805,\"volume\":540792.8048310501,\"close_time\":1510149525975,\"vwap\":0.19769407525613802,\"ema1\":0.17642994454821986,\"sma1\":0.17467182166666678,\"sma2\":0.17562087666666662,\"rsi_avg_gain\":0.000788380546125801,\"rsi_avg_loss\":0.0004890935763989031,\"rsi\":62},{\"period_id\":\"120m209741\",\"size\":\"120m\",\"time\":1510135200000,\"open\":0.1814,\"high\":0.1818,\"low\":0.179,\"close\":0.179,\"volume\":783970.61652481,\"close_time\":1510142377261,\"vwap\":0.19770271684401247,\"ema1\":0.17614925106878676,\"sma1\":0.17461108092592603,\"sma2\":0.1755445433333333,\"rsi_avg_gain\":0.000733640588135478,\"rsi_avg_loss\":0.0005267161591988187,\"rsi\":58},{\"period_id\":\"120m209740\",\"size\":\"120m\",\"time\":1510128000000,\"open\":0.17791,\"high\":0.1815,\"low\":0.1779,\"close\":0.1814,\"volume\":1374943.94239282,\"close_time\":1510135187696,\"vwap\":0.19771947534468426,\"ema1\":0.17595264769422034,\"sma1\":0.17454858092592598,\"sma2\":0.17539120999999996,\"rsi_avg_gain\":0.0007900744795305148,\"rsi_avg_loss\":0.00038261740221411144,\"rsi\":67},{\"period_id\":\"120m209739\",\"size\":\"120m\",\"time\":1510120800000,\"open\":0.17764,\"high\":0.17849,\"low\":0.17652,\"close\":0.178,\"volume\":384621.52919080993,\"close_time\":1510127962156,\"vwap\":0.19779752746307452,\"ema1\":0.17557696822485622,\"sma1\":0.17450515500000008,\"sma2\":0.1753463766666666,\"rsi_avg_gain\":0.0005893109779559379,\"rsi_avg_loss\":0.0004120495100767354,\"rsi\":59},{\"period_id\":\"120m209738\",\"size\":\"120m\",\"time\":1510113600000,\"open\":0.1769,\"high\":0.1777,\"low\":0.17644,\"close\":0.1777,\"volume\":69522.52897796,\"close_time\":1510120779142,\"vwap\":0.19780401059439195,\"ema1\":0.17540986258519112,\"sma1\":0.17446256240740748,\"sma2\":0.1752628766666666,\"rsi_avg_gain\":0.0006115656685679335,\"rsi_avg_loss\":0.0004437456262364843,\"rsi\":58},{\"period_id\":\"120m209737\",\"size\":\"120m\",\"time\":1510106400000,\"open\":0.17604,\"high\":0.1777,\"low\":0.17601,\"close\":0.17679,\"volume\":48029.677979789994,\"close_time\":1510113047765,\"vwap\":0.19780440389158838,\"ema1\":0.17525192207382498,\"sma1\":0.17442145129629635,\"sma2\":0.1751333766666666,\"rsi_avg_gain\":0.0005886091815346981,\"rsi_avg_loss\":0.0004778799051777523,\"rsi\":55},{\"period_id\":\"120m209736\",\"size\":\"120m\",\"time\":1510099200000,\"open\":0.17749,\"high\":0.178,\"low\":0.17573,\"close\":0.17627,\"volume\":193680.65782711,\"close_time\":1510105724331,\"vwap\":0.19780448949493057,\"ema1\":0.17514584773408878,\"sma1\":0.17438404388888895,\"sma2\":0.1751413766666666,\"rsi_avg_gain\":0.0005938868108835216,\"rsi_avg_loss\":0.0005146398978837333,\"rsi\":54},{\"period_id\":\"120m209735\",\"size\":\"120m\",\"time\":1510092000000,\"open\":0.176,\"high\":0.17798,\"low\":0.17505,\"close\":0.17654,\"volume\":331983.7212767101,\"close_time\":1510099191438,\"vwap\":0.19780667482736553,\"ema1\":0.17506831999161215,\"sma1\":0.17434135870370374,\"sma2\":0.17506720999999995,\"rsi_avg_gain\":0.0006395704117207156,\"rsi_avg_loss\":0.000533458351567098,\"rsi\":55},{\"period_id\":\"120m209734\",\"size\":\"120m\",\"time\":1510084800000,\"open\":0.17462,\"high\":0.17599,\"low\":0.174,\"close\":0.1758,\"volume\":543890.8425675798,\"close_time\":1510091951730,\"vwap\":0.19781543910584815,\"ema1\":0.1749668248186199,\"sma1\":0.1743274698148148,\"sma2\":0.17486787666666662,\"rsi_avg_gain\":0.0006318450587761559,\"rsi_avg_loss\":0.0005744936093799517,\"rsi\":52},{\"period_id\":\"120m209733\",\"size\":\"120m\",\"time\":1510077600000,\"open\":0.176,\"high\":0.17623,\"low\":0.1742,\"close\":0.17467,\"volume\":298285.5914498901,\"close_time\":1510084781753,\"vwap\":0.19782930044920505,\"ema1\":0.17490936446128333,\"sma1\":0.17430265499999997,\"sma2\":0.17470687666666665,\"rsi_avg_gain\":0.0005935254479127818,\"rsi_avg_loss\":0.0006186854254861019,\"rsi\":49},{\"period_id\":\"120m209732\",\"size\":\"120m\",\"time\":1510070400000,\"open\":0.17696,\"high\":0.17699,\"low\":0.1741,\"close\":0.17624,\"volume\":616210.35768858,\"close_time\":1510077534651,\"vwap\":0.19783452232799625,\"ema1\":0.17492587235516494,\"sma1\":0.17427219203703703,\"sma2\":0.17451487666666665,\"rsi_avg_gain\":0.0006391812515983804,\"rsi_avg_loss\":0.0005455073812927238,\"rsi\":54},{\"period_id\":\"120m209731\",\"size\":\"120m\",\"time\":1510063200000,\"open\":0.1765,\"high\":0.1788,\"low\":0.175,\"close\":0.17696,\"volume\":484177.00953444996,\"close_time\":1510070388539,\"vwap\":0.1978498824340093,\"ema1\":0.1748352428624177,\"sma1\":0.1742154327777778,\"sma2\":0.17432304333333332,\"rsi_avg_gain\":0.0006883490401828712,\"rsi_avg_loss\":0.000532084872161395,\"rsi\":56},{\"period_id\":\"120m209730\",\"size\":\"120m\",\"time\":1510056000000,\"open\":0.17611,\"high\":0.1794,\"low\":0.17513,\"close\":0.1765,\"volume\":691270.1650262901,\"close_time\":1510063183951,\"vwap\":0.19786284102799695,\"ema1\":0.174688707887412,\"sma1\":0.17414691425925927,\"sma2\":0.17415170999999996,\"rsi_avg_gain\":0.0007059143509661678,\"rsi_avg_loss\":0.0005730144777122716,\"rsi\":55},{\"period_id\":\"120m209729\",\"size\":\"120m\",\"time\":1510048800000,\"open\":0.175,\"high\":0.17611,\"low\":0.1742,\"close\":0.17611,\"volume\":343346.65494068,\"close_time\":1510055978376,\"vwap\":0.19788690108644857,\"ema1\":0.17456379118999213,\"sma1\":0.17410311796296296,\"sma2\":0.17388320999999998,\"rsi_avg_gain\":0.0007302154548866421,\"rsi_avg_loss\":0.0006170925144593694,\"rsi\":54},{\"period_id\":\"120m209728\",\"size\":\"120m\",\"time\":1510041600000,\"open\":0.17482,\"high\":0.1763,\"low\":0.1744,\"close\":0.1757,\"volume\":580407.61852609,\"close_time\":1510048791024,\"vwap\":0.1978943507071201,\"ema1\":0.17445715609964677,\"sma1\":0.17407061796296294,\"sma2\":0.17356670999999996,\"rsi_avg_gain\":0.0007548474129548458,\"rsi_avg_loss\":0.0006645611694177824,\"rsi\":53},{\"period_id\":\"120m209727\",\"size\":\"120m\",\"time\":1510034400000,\"open\":0.1744,\"high\":0.17537,\"low\":0.17321,\"close\":0.17482,\"volume\":284289.22077732993,\"close_time\":1510041591397,\"vwap\":0.1979105812356405,\"ema1\":0.17437144272720861,\"sma1\":0.17405580314814817,\"sma2\":0.17330504333333335,\"rsi_avg_gain\":0.0007452202908744498,\"rsi_avg_loss\":0.0007156812593729964,\"rsi\":51},{\"period_id\":\"120m209726\",\"size\":\"120m\",\"time\":1510027200000,\"open\":0.17457,\"high\":0.17517,\"low\":0.17371,\"close\":0.17447,\"volume\":11673.709015010001,\"close_time\":1510034307242,\"vwap\":0.19791557283243222,\"ema1\":0.17434050774287818,\"sma1\":0.1740440438888889,\"sma2\":0.1730855433333333,\"rsi_avg_gain\":0.0007756218517109447,\"rsi_avg_loss\":0.00077073366394015,\"rsi\":50},{\"period_id\":\"120m209725\",\"size\":\"120m\",\"time\":1510020000000,\"open\":0.17377,\"high\":0.1745,\"low\":0.17302,\"close\":0.1745,\"volume\":20485.34577588,\"close_time\":1510026811994,\"vwap\":0.19791562512309613,\"ema1\":0.17433157724238701,\"sma1\":0.17401395129629627,\"sma2\":0.17288554333333334,\"rsi_avg_gain\":0.000835285071073325,\"rsi_avg_loss\":0.0008277131765509306,\"rsi\":50},{\"period_id\":\"120m209724\",\"size\":\"120m\",\"time\":1510012800000,\"open\":0.1752,\"high\":0.176,\"low\":0.173,\"close\":0.173,\"volume\":507745.65906769,\"close_time\":1510019694184,\"vwap\":0.19791568346567356,\"ema1\":0.174319961879793,\"sma1\":0.17397811796296297,\"sma2\":0.17275754333333332,\"rsi_avg_gain\":0.0007841531534635807,\"rsi_avg_loss\":0.0008913834209010021,\"rsi\":47},{\"period_id\":\"120m209723\",\"size\":\"120m\",\"time\":1510005600000,\"open\":0.176,\"high\":0.17736,\"low\":0.17508,\"close\":0.17583,\"volume\":321363.90848562,\"close_time\":1510012612990,\"vwap\":0.1979271004431492,\"ema1\":0.17441099373357183,\"sma1\":0.17393339574074074,\"sma2\":0.17256604333333334,\"rsi_avg_gain\":0.000844472626806933,\"rsi_avg_loss\":0.0007422590686626177,\"rsi\":53},{\"period_id\":\"120m209722\",\"size\":\"120m\",\"time\":1509998400000,\"open\":0.17397,\"high\":0.17917,\"low\":0.173,\"close\":0.17652,\"volume\":837215.3540747804,\"close_time\":1510005596259,\"vwap\":0.1979337241212617,\"ema1\":0.17431313123243886,\"sma1\":0.17388821055555553,\"sma2\":0.17239937666666666,\"rsi_avg_gain\":0.0009094320596382355,\"rsi_avg_loss\":0.0007462789970212788,\"rsi\":55},{\"period_id\":\"120m209721\",\"size\":\"120m\",\"time\":1509991200000,\"open\":0.1779,\"high\":0.178,\"low\":0.1725,\"close\":0.17344,\"volume\":831803.0782492501,\"close_time\":1509998371399,\"vwap\":0.19796902981341968,\"ema1\":0.17416093338640015,\"sma1\":0.17383654388888883,\"sma2\":0.17231671,\"rsi_avg_gain\":0.0007424652949950229,\"rsi_avg_loss\":0.0008036850737152233,\"rsi\":48},{\"period_id\":\"120m209720\",\"size\":\"120m\",\"time\":1509984000000,\"open\":0.17718,\"high\":0.178,\"low\":0.176,\"close\":0.1779,\"volume\":519464.5367089202,\"close_time\":1509991165784,\"vwap\":0.19800154193447858,\"ema1\":0.1742106529302898,\"sma1\":0.1737830253703703,\"sma2\":0.17218487666666665,\"rsi_avg_gain\":0.00079957800999464,\"rsi_avg_loss\":0.0005224300793856257,\"rsi\":60},{\"period_id\":\"120m209719\",\"size\":\"120m\",\"time\":1509976800000,\"open\":0.17746,\"high\":0.17942,\"low\":0.176,\"close\":0.17651,\"volume\":713613.6589118104,\"close_time\":1509983927143,\"vwap\":0.19801495336964464,\"ema1\":0.17395621520134427,\"sma1\":0.17373274759259252,\"sma2\":0.17211521,\"rsi_avg_gain\":0.0007541609338403814,\"rsi_avg_loss\":0.0005626170085691354,\"rsi\":57},{\"period_id\":\"120m209718\",\"size\":\"120m\",\"time\":1509969600000,\"open\":0.17809,\"high\":0.1795,\"low\":0.17611,\"close\":0.17749,\"volume\":1374767.8448534303,\"close_time\":1509976794806,\"vwap\":0.1980382383168807,\"ema1\":0.1737800921117818,\"sma1\":0.17368885870370365,\"sma2\":0.17200871,\"rsi_avg_gain\":0.0008121733133665646,\"rsi_avg_loss\":0.0005305106246129143,\"rsi\":60},{\"period_id\":\"120m209717\",\"size\":\"120m\",\"time\":1509962400000,\"open\":0.1735,\"high\":0.17999,\"low\":0.1725,\"close\":0.1781,\"volume\":2200216.881624569,\"close_time\":1509969590499,\"vwap\":0.19811893563998387,\"ema1\":0.17352423639535297,\"sma1\":0.17363922907407403,\"sma2\":0.17187354333333332,\"rsi_avg_gain\":0.0008746481836255311,\"rsi_avg_loss\":0.0005243960572754462,\"rsi\":63},{\"period_id\":\"120m209716\",\"size\":\"120m\",\"time\":1509955200000,\"open\":0.17255,\"high\":0.17357,\"low\":0.17148,\"close\":0.17356,\"volume\":335989.29328549025,\"close_time\":1509962384294,\"vwap\":0.19825758073005897,\"ema1\":0.1732086664915842,\"sma1\":0.17365006240740738,\"sma2\":0.17183271,\"rsi_avg_gain\":0.0005926980439044169,\"rsi_avg_loss\":0.0005647342155274037,\"rsi\":51},{\"period_id\":\"120m209715\",\"size\":\"120m\",\"time\":1509948000000,\"open\":0.1721,\"high\":0.1728,\"low\":0.1715,\"close\":0.1715,\"volume\":202010.55558656997,\"close_time\":1509955028898,\"vwap\":0.19826975678179087,\"ema1\":0.17318443659445207,\"sma1\":0.1736625624074074,\"sma2\":0.17182771000000002,\"rsi_avg_gain\":0.0004798286626662968,\"rsi_avg_loss\":0.0006081753090295116,\"rsi\":44},{\"period_id\":\"120m209714\",\"size\":\"120m\",\"time\":1509940800000,\"open\":0.17246,\"high\":0.17288,\"low\":0.17201,\"close\":0.1721,\"volume\":23604.53356389,\"close_time\":1509947976027,\"vwap\":0.19827278254776765,\"ema1\":0.17330060463544877,\"sma1\":0.173670155,\"sma2\":0.17180604333333335,\"rsi_avg_gain\":0.0005167385597944735,\"rsi_avg_loss\":0.0006088041789548594,\"rsi\":46},{\"period_id\":\"120m209713\",\"size\":\"120m\",\"time\":1509933600000,\"open\":0.17205,\"high\":0.17288,\"low\":0.17157,\"close\":0.17201,\"volume\":19736.135164620002,\"close_time\":1509939281965,\"vwap\":0.1982728823495695,\"ema1\":0.1733834049551349,\"sma1\":0.17367598833333334,\"sma2\":0.17177304333333335,\"rsi_avg_gain\":0.0005495646028555863,\"rsi_avg_loss\":0.0006556352696436946,\"rsi\":46},{\"period_id\":\"120m209712\",\"size\":\"120m\",\"time\":1509926400000,\"open\":0.17216,\"high\":0.17292,\"low\":0.1715,\"close\":0.17158,\"volume\":121462.81296058,\"close_time\":1509933007327,\"vwap\":0.19827293466005477,\"ema1\":0.17347812253824765,\"sma1\":0.17368969203703702,\"sma2\":0.17177604333333335,\"rsi_avg_gain\":0.0005587618799983248,\"rsi_avg_loss\":0.0007060687519239788,\"rsi\":44},{\"period_id\":\"120m209711\",\"size\":\"120m\",\"time\":1509919200000,\"open\":0.1731326,\"high\":0.1735,\"low\":0.17202,\"close\":0.17295,\"volume\":141936.93398588,\"close_time\":1509926340359,\"vwap\":0.19827400379626134,\"ema1\":0.17360902754088542,\"sma1\":0.1737000624074074,\"sma2\":0.17174754333333336,\"rsi_avg_gain\":0.000601743563075119,\"rsi_avg_loss\":0.000654997117456594,\"rsi\":48},{\"period_id\":\"120m209710\",\"size\":\"120m\",\"time\":1509912000000,\"open\":0.1715,\"high\":0.1731326,\"low\":0.17102,\"close\":0.1731326,\"volume\":453581.5936299202,\"close_time\":1509919033486,\"vwap\":0.19827608322854226,\"ema1\":0.1736544777161189,\"sma1\":0.17371383462962958,\"sma2\":0.17172933333333337,\"rsi_avg_gain\":0.0006480315294655129,\"rsi_avg_loss\":0.000691335357260947,\"rsi\":48},{\"period_id\":\"120m209709\",\"size\":\"120m\",\"time\":1509904800000,\"open\":0.17196,\"high\":0.172,\"low\":0.171,\"close\":0.17148,\"volume\":278209.07779125,\"close_time\":1509911957273,\"vwap\":0.19829223268116142,\"ema1\":0.17369046928274778,\"sma1\":0.17373939018518517,\"sma2\":0.17174900000000007,\"rsi_avg_gain\":0.0005707570317320904,\"rsi_avg_loss\":0.0007445150001271737,\"rsi\":43},{\"period_id\":\"120m209708\",\"size\":\"120m\",\"time\":1509897600000,\"open\":0.17288,\"high\":0.173,\"low\":0.17115,\"close\":0.172,\"volume\":375641.9879333099,\"close_time\":1509904684190,\"vwap\":0.1982988639681825,\"ema1\":0.17384291544017866,\"sma1\":0.1737573531481481,\"sma2\":0.1717490000000001,\"rsi_avg_gain\":0.0006146614187884051,\"rsi_avg_loss\":0.0007617853847523415,\"rsi\":45},{\"period_id\":\"120m209707\",\"size\":\"120m\",\"time\":1509890400000,\"open\":0.17179,\"high\":0.173,\"low\":0.171,\"close\":0.17297,\"volume\":292718.31836345984,\"close_time\":1509897404974,\"vwap\":0.19831043998277978,\"ema1\":0.1739700130567427,\"sma1\":0.17377401981481477,\"sma2\":0.1717578333333334,\"rsi_avg_gain\":0.0006619430663875132,\"rsi_avg_loss\":0.000745768875887135,\"rsi\":47},{\"period_id\":\"120m209706\",\"size\":\"120m\",\"time\":1509883200000,\"open\":0.17341,\"high\":0.17438,\"low\":0.1713,\"close\":0.1719,\"volume\":480094.5933641599,\"close_time\":1509890180175,\"vwap\":0.19831981109129576,\"ema1\":0.1740389794744491,\"sma1\":0.1737765198148148,\"sma2\":0.1718028333333334,\"rsi_avg_gain\":0.0006305540714942438,\"rsi_avg_loss\":0.0008031357124938377,\"rsi\":44},{\"period_id\":\"120m209705\",\"size\":\"120m\",\"time\":1509876000000,\"open\":0.1735,\"high\":0.17436,\"low\":0.172,\"close\":0.1738,\"volume\":282879.70329523,\"close_time\":1509882934323,\"vwap\":0.19834085315670452,\"ema1\":0.17418649530027316,\"sma1\":0.1737778161111111,\"sma2\":0.17181316666666674,\"rsi_avg_gain\":0.0006790582308399549,\"rsi_avg_loss\":0.0007187615365318242,\"rsi\":49},{\"period_id\":\"120m209704\",\"size\":\"120m\",\"time\":1509868800000,\"open\":0.175,\"high\":0.175,\"low\":0.17224,\"close\":0.17308,\"volume\":192083.89489337002,\"close_time\":1509875951637,\"vwap\":0.19834666684179486,\"ema1\":0.17421315014856786,\"sma1\":0.17377744574074072,\"sma2\":0.17184000000000005,\"rsi_avg_gain\":0.00067590886398149,\"rsi_avg_loss\":0.0007740508854958108,\"rsi\":47},{\"period_id\":\"120m209703\",\"size\":\"120m\",\"time\":1509861600000,\"open\":0.17477,\"high\":0.175,\"low\":0.17412,\"close\":0.17434,\"volume\":22891.058959859998,\"close_time\":1509868062594,\"vwap\":0.1983493291924293,\"ema1\":0.174291298434676,\"sma1\":0.17377559388888886,\"sma2\":0.17183783333333338,\"rsi_avg_gain\":0.0007279018535185276,\"rsi_avg_loss\":0.0007366701843801053,\"rsi\":50},{\"period_id\":\"120m209702\",\"size\":\"120m\",\"time\":1509854400000,\"open\":0.1743,\"high\":0.1751,\"low\":0.17386,\"close\":0.17506,\"volume\":45456.856648160014,\"close_time\":1509861577221,\"vwap\":0.19834941499972383,\"ema1\":0.17428793970603296,\"sma1\":0.17376874203703696,\"sma2\":0.17181833333333338,\"rsi_avg_gain\":0.0007838943037891836,\"rsi_avg_loss\":0.0007379525062554982,\"rsi\":52},{\"period_id\":\"120m209701\",\"size\":\"120m\",\"time\":1509847200000,\"open\":0.17441,\"high\":0.17508,\"low\":0.17233,\"close\":0.1743,\"volume\":87526.60253024001,\"close_time\":1509854298552,\"vwap\":0.19834964054963206,\"ema1\":0.174234694168518,\"sma1\":0.17375633462962958,\"sma2\":0.17181566666666673,\"rsi_avg_gain\":0.0007857323271575837,\"rsi_avg_loss\":0.0007947180836597673,\"rsi\":50},{\"period_id\":\"120m209700\",\"size\":\"120m\",\"time\":1509840000000,\"open\":0.1732,\"high\":0.1747,\"low\":0.17234,\"close\":0.17441,\"volume\":220942.73585190997,\"close_time\":1509847131823,\"vwap\":0.19835030724779198,\"ema1\":0.17423019031807097,\"sma1\":0.1737498531481481,\"sma2\":0.1718096666666667,\"rsi_avg_gain\":0.0008461732754004748,\"rsi_avg_loss\":0.0008473887054797495,\"rsi\":50},{\"period_id\":\"120m209699\",\"size\":\"120m\",\"time\":1509832800000,\"open\":0.17397,\"high\":0.17489,\"low\":0.17309,\"close\":0.17318,\"volume\":70737.93909811002,\"close_time\":1509839832787,\"vwap\":0.1983538929235025,\"ema1\":0.17421778965035173,\"sma1\":0.17374290870370365,\"sma2\":0.17182766666666668,\"rsi_avg_gain\":0.0008166481427389721,\"rsi_avg_loss\":0.0009125724520551149,\"rsi\":47},{\"period_id\":\"120m209698\",\"size\":\"120m\",\"time\":1509825600000,\"open\":0.1747,\"high\":0.17491,\"low\":0.173,\"close\":0.17396,\"volume\":312704.62396786007,\"close_time\":1509832781004,\"vwap\":0.1983543759136355,\"ema1\":0.17428936135037598,\"sma1\":0.17373327907407404,\"sma2\":0.17182000000000003,\"rsi_avg_gain\":0.0008794672306419699,\"rsi_avg_loss\":0.0009227703329824312,\"rsi\":49},{\"period_id\":\"120m209697\",\"size\":\"120m\",\"time\":1509818400000,\"open\":0.17519,\"high\":0.17576,\"low\":0.1746,\"close\":0.1755,\"volume\":115412.53669688001,\"close_time\":1509825521375,\"vwap\":0.19836205962429368,\"ema1\":0.174312075926264,\"sma1\":0.17372003833333327,\"sma2\":0.17180766666666666,\"rsi_avg_gain\":0.0009471185560759677,\"rsi_avg_loss\":0.0008752911278272346,\"rsi\":52},{\"period_id\":\"120m209696\",\"size\":\"120m\",\"time\":1509811200000,\"open\":0.17544,\"high\":0.176,\"low\":0.17461,\"close\":0.17519,\"volume\":265530.03636954,\"close_time\":1509818399443,\"vwap\":0.1983635311295441,\"ema1\":0.1742301501280753,\"sma1\":0.17369772351851848,\"sma2\":0.17177116666666667,\"rsi_avg_gain\":0.0009961276757741208,\"rsi_avg_loss\":0.0009426212145831758,\"rsi\":51},{\"period_id\":\"120m209695\",\"size\":\"120m\",\"time\":1509804000000,\"open\":0.17701,\"high\":0.17727,\"low\":0.1754,\"close\":0.17584,\"volume\":400965.41010697023,\"close_time\":1509811145225,\"vwap\":0.19836917405202928,\"ema1\":0.17416395358518394,\"sma1\":0.17367207537037033,\"sma2\":0.17174766666666663,\"rsi_avg_gain\":0.0010727528816028994,\"rsi_avg_loss\":0.0009651305387818828,\"rsi\":53},{\"period_id\":\"120m209694\",\"size\":\"120m\",\"time\":1509796800000,\"open\":0.17545,\"high\":0.17796,\"low\":0.175,\"close\":0.17701,\"volume\":519384.7214879097,\"close_time\":1509803994909,\"vwap\":0.1983746058738425,\"ema1\":0.1740483641772656,\"sma1\":0.17365281611111102,\"sma2\":0.17170333333333332,\"rsi_avg_gain\":0.0011552723340338916,\"rsi_avg_loss\":0.000949371349457412,\"rsi\":55},{\"period_id\":\"120m209693\",\"size\":\"120m\",\"time\":1509789600000,\"open\":0.17463,\"high\":0.17686,\"low\":0.1742,\"close\":0.175,\"volume\":276182.54125248006,\"close_time\":1509796634780,\"vwap\":0.1983890224775191,\"ema1\":0.1738441134308701,\"sma1\":0.17364151981481477,\"sma2\":0.1717033333333333,\"rsi_avg_gain\":0.0010895240520364976,\"rsi_avg_loss\":0.0010223999148002898,\"rsi\":52},{\"period_id\":\"120m209692\",\"size\":\"120m\",\"time\":1509782400000,\"open\":0.17584,\"high\":0.17674414,\"low\":0.17422,\"close\":0.176,\"volume\":457462.7664928798,\"close_time\":1509789508359,\"vwap\":0.198393838121167,\"ema1\":0.1737643971157577,\"sma1\":0.17362379629629623,\"sma2\":0.1716633333333333,\"rsi_avg_gain\":0.0011733335945008437,\"rsi_avg_loss\":0.0010241229851695427,\"rsi\":53},{\"period_id\":\"120m209691\",\"size\":\"120m\",\"time\":1509775200000,\"open\":0.17575,\"high\":0.17638,\"low\":0.17486,\"close\":0.17592,\"volume\":205233.37796132002,\"close_time\":1509782377457,\"vwap\":0.19840510796402572,\"ema1\":0.1736102176064996,\"sma1\":0.17359712962962956,\"sma2\":0.17161466666666664,\"rsi_avg_gain\":0.0012574361786932165,\"rsi_avg_loss\":0.0011029016763364305,\"rsi\":53},{\"period_id\":\"120m209690\",\"size\":\"120m\",\"time\":1509768000000,\"open\":0.17459,\"high\":0.17672,\"low\":0.17359,\"close\":0.17672,\"volume\":408079.27570876,\"close_time\":1509775092431,\"vwap\":0.19840799116617386,\"ema1\":0.17345092226901682,\"sma1\":0.17356851851851848,\"sma2\":0.17155416666666665,\"rsi_avg_gain\":0.0013541620385926947,\"rsi_avg_loss\":0.001126201805285387,\"rsi\":55},{\"period_id\":\"120m209689\",\"size\":\"120m\",\"time\":1509760800000,\"open\":0.17535,\"high\":0.17698,\"low\":0.17202,\"close\":0.17457,\"volume\":1521247.5292743105,\"close_time\":1509767699486,\"vwap\":0.19841162377215088,\"ema1\":0.1732254686323973,\"sma1\":0.17353731481481477,\"sma2\":0.17152916666666662,\"rsi_avg_gain\":0.001292943733869057,\"rsi_avg_loss\":0.001212832713384263,\"rsi\":52},{\"period_id\":\"120m209688\",\"size\":\"120m\",\"time\":1509753600000,\"open\":0.1785,\"high\":0.179,\"low\":0.175,\"close\":0.175,\"volume\":451997.22231772024,\"close_time\":1509760617905,\"vwap\":0.19844385663549088,\"ema1\":0.1731327423311833,\"sma1\":0.17348388888888883,\"sma2\":0.17149466666666663,\"rsi_avg_gain\":0.0013924009441666767,\"rsi_avg_loss\":0.0012730506144138227,\"rsi\":52},{\"period_id\":\"120m209687\",\"size\":\"120m\",\"time\":1509746400000,\"open\":0.1829,\"high\":0.184,\"low\":0.1785,\"close\":0.1785,\"volume\":575165.06890172,\"close_time\":1509753593833,\"vwap\":0.19845298702221914,\"ema1\":0.17300396594023043,\"sma1\":0.1733971296296296,\"sma2\":0.17139216666666662,\"rsi_avg_gain\":0.001499508709102575,\"rsi_avg_loss\":0.001101746815522578,\"rsi\":58},{\"period_id\":\"120m209686\",\"size\":\"120m\",\"time\":1509739200000,\"open\":0.1832,\"high\":0.18659,\"low\":0.182,\"close\":0.1829,\"volume\":2008075.9797360403,\"close_time\":1509746386140,\"vwap\":0.19847396872336975,\"ema1\":0.17262492910852217,\"sma1\":0.17327666666666663,\"sma2\":0.17122716666666665,\"rsi_avg_gain\":0.001614855532879696,\"rsi_avg_loss\":0.0008480350321012367,\"rsi\":66},{\"period_id\":\"120m209685\",\"size\":\"120m\",\"time\":1509732000000,\"open\":0.18246,\"high\":0.184,\"low\":0.17948,\"close\":0.18375,\"volume\":1677742.2580434396,\"close_time\":1509739152792,\"vwap\":0.1986015245943603,\"ema1\":0.17191630352979956,\"sma1\":0.17316833333333334,\"sma2\":0.17103883333333328,\"rsi_avg_gain\":0.0017390751892550572,\"rsi_avg_loss\":0.0008478838807244095,\"rsi\":67},{\"period_id\":\"120m209684\",\"size\":\"120m\",\"time\":1509724800000,\"open\":0.17841,\"high\":0.18247,\"low\":0.17841,\"close\":0.18247,\"volume\":1072665.8394164399,\"close_time\":1509731987799,\"vwap\":0.19868872112083788,\"ema1\":0.17110018653185471,\"sma1\":0.17307925925925924,\"sma2\":0.17086349999999997,\"rsi_avg_gain\":0.0017743886653515998,\"rsi_avg_loss\":0.0009131057177032102,\"rsi\":66},{\"period_id\":\"120m209683\",\"size\":\"120m\",\"time\":1509717600000,\"open\":0.1768,\"high\":0.18334,\"low\":0.17621,\"close\":0.17842,\"volume\":2248575.3095276006,\"close_time\":1509724727590,\"vwap\":0.1987280655490797,\"ema1\":0.17031606146508607,\"sma1\":0.17300240740740738,\"sma2\":0.17076766666666668,\"rsi_avg_gain\":0.0015993416396094151,\"rsi_avg_loss\":0.0009833446190649956,\"rsi\":62},{\"period_id\":\"120m209682\",\"size\":\"120m\",\"time\":1509710400000,\"open\":0.17437,\"high\":0.17699,\"low\":0.173,\"close\":0.17689,\"volume\":661699.4675666498,\"close_time\":1509717577659,\"vwap\":0.19891546559111428,\"ema1\":0.16975716915233338,\"sma1\":0.17297009259259258,\"sma2\":0.17068616666666667,\"rsi_avg_gain\":0.0016046756118870621,\"rsi_avg_loss\":0.001058986512839226,\"rsi\":60},{\"period_id\":\"120m209681\",\"size\":\"120m\",\"time\":1509703200000,\"open\":0.1745,\"high\":0.17557,\"low\":0.17226,\"close\":0.17442,\"volume\":781881.1833836805,\"close_time\":1509710384632,\"vwap\":0.19894044908891984,\"ema1\":0.16926524978352878,\"sma1\":0.17297185185185182,\"sma2\":0.17061966666666664,\"rsi_avg_gain\":0.0015381121974168362,\"rsi_avg_loss\":0.0011404470138268587,\"rsi\":57},{\"period_id\":\"120m209680\",\"size\":\"120m\",\"time\":1509696000000,\"open\":0.1749,\"high\":0.1765,\"low\":0.1721,\"close\":0.1722,\"volume\":1284360.5497725192,\"close_time\":1509703193194,\"vwap\":0.1989900615904847,\"ema1\":0.16890974976859974,\"sma1\":0.17297555555555555,\"sma2\":0.17060466666666665,\"rsi_avg_gain\":0.0014856592895258237,\"rsi_avg_loss\":0.0012281737071981554,\"rsi\":55},{\"period_id\":\"120m209679\",\"size\":\"120m\",\"time\":1509688800000,\"open\":0.1717,\"high\":0.176,\"low\":0.17,\"close\":0.17531,\"volume\":935123.9349501398,\"close_time\":1509695910104,\"vwap\":0.1990697250827071,\"ema1\":0.16868283595953765,\"sma1\":0.17298472222222222,\"sma2\":0.1705553333333333,\"rsi_avg_gain\":0.0015999407733355024,\"rsi_avg_loss\":0.0010834178385210904,\"rsi\":60},{\"period_id\":\"120m209678\",\"size\":\"120m\",\"time\":1509681600000,\"open\":0.16914,\"high\":0.1742,\"low\":0.1675,\"close\":0.17269,\"volume\":434158.1058708002,\"close_time\":1509688744339,\"vwap\":0.1991116240297544,\"ema1\":0.1682257901636437,\"sma1\":0.17300138888888889,\"sma2\":0.17056599999999997,\"rsi_avg_gain\":0.0015214746789766961,\"rsi_avg_loss\":0.0011667576722534819,\"rsi\":57},{\"period_id\":\"120m209677\",\"size\":\"120m\",\"time\":1509674400000,\"open\":0.17603,\"high\":0.1768,\"low\":0.16835,\"close\":0.16902,\"volume\":791394.3819360004,\"close_time\":1509681430051,\"vwap\":0.19912557005643144,\"ema1\":0.16791791362320532,\"sma1\":0.17298111111111109,\"sma2\":0.170591,\"rsi_avg_gain\":0.0013562035004364415,\"rsi_avg_loss\":0.0012565082624268267,\"rsi\":52},{\"period_id\":\"120m209676\",\"size\":\"120m\",\"time\":1509667200000,\"open\":0.17103,\"high\":0.185,\"low\":0.17103,\"close\":0.17675,\"volume\":2884382.1256436,\"close_time\":1509674369734,\"vwap\":0.1991545008305305,\"ema1\":0.167841907666185,\"sma1\":0.17289240740740736,\"sma2\":0.17049533333333333,\"rsi_avg_gain\":0.0014605268466238602,\"rsi_avg_loss\":0.0007585473595365838,\"rsi\":66},{\"period_id\":\"120m209675\",\"size\":\"120m\",\"time\":1509660000000,\"open\":0.1639,\"high\":0.17379,\"low\":0.16262,\"close\":0.17209,\"volume\":1265909.4986710113,\"close_time\":1509667170394,\"vwap\":0.1995114818030758,\"ema1\":0.1672275564707495,\"sma1\":0.17293324074074073,\"sma2\":0.17048883333333337,\"rsi_avg_gain\":0.001214413527133388,\"rsi_avg_loss\":0.0008168971564240133,\"rsi\":60},{\"period_id\":\"120m209674\",\"size\":\"120m\",\"time\":1509652800000,\"open\":0.16502,\"high\":0.167,\"low\":0.16261,\"close\":0.16384,\"volume\":418199.62917654985,\"close_time\":1509659976821,\"vwap\":0.19962069025622559,\"ema1\":0.16689221553769773,\"sma1\":0.1730593518518518,\"sma2\":0.17062050000000004,\"rsi_avg_gain\":0.0006732145676821118,\"rsi_avg_loss\":0.0008797353992258605,\"rsi\":43},{\"period_id\":\"120m209673\",\"size\":\"120m\",\"time\":1509645600000,\"open\":0.16471,\"high\":0.16652,\"low\":0.1632,\"close\":0.16501,\"volume\":525454.1958027601,\"close_time\":1509652741055,\"vwap\":0.19964680535150037,\"ema1\":0.16710271316098724,\"sma1\":0.1732121296296296,\"sma2\":0.17072883333333333,\"rsi_avg_gain\":0.000725000303657659,\"rsi_avg_loss\":0.0008574073530124669,\"rsi\":46},{\"period_id\":\"120m209672\",\"size\":\"120m\",\"time\":1509638400000,\"open\":0.165,\"high\":0.166,\"low\":0.1635,\"close\":0.16472,\"volume\":405931.72862551996,\"close_time\":1509645579170,\"vwap\":0.19967723189319547,\"ema1\":0.16724703820657258,\"sma1\":0.1733718518518518,\"sma2\":0.1708496666666667,\"rsi_avg_gain\":0.00075846186547748,\"rsi_avg_loss\":0.0009233617647826567,\"rsi\":45},{\"period_id\":\"120m209671\",\"size\":\"120m\",\"time\":1509631200000,\"open\":0.164,\"high\":0.16849,\"low\":0.161,\"close\":0.16545,\"volume\":756164.8164522602,\"close_time\":1509638384550,\"vwap\":0.1996978384286659,\"ema1\":0.16742131670357757,\"sma1\":0.17352925925925924,\"sma2\":0.17095050000000003,\"rsi_avg_gain\":0.0008168050858988247,\"rsi_avg_loss\":0.0009382357466890143,\"rsi\":47},{\"period_id\":\"120m209670\",\"size\":\"120m\",\"time\":1509624000000,\"open\":0.16,\"high\":0.16959,\"low\":0.16,\"close\":0.16622,\"volume\":1455371.3556724899,\"close_time\":1509631193720,\"vwap\":0.19975343698457274,\"ema1\":0.16755726957968636,\"sma1\":0.17366268518518518,\"sma2\":0.1710575,\"rsi_avg_gain\":0.0008796362463525804,\"rsi_avg_loss\":0.0009511769579727851,\"rsi\":48},{\"period_id\":\"120m209669\",\"size\":\"120m\",\"time\":1509616800000,\"open\":0.15797,\"high\":0.16,\"low\":0.15464,\"close\":0.16,\"volume\":1654988.6244434293,\"close_time\":1509623991381,\"vwap\":0.19987854696239493,\"ema1\":0.1676494950679406,\"sma1\":0.17384509259259254,\"sma2\":0.17127416666666667,\"rsi_avg_gain\":0.0004688390345335479,\"rsi_avg_loss\":0.0010243444162783839,\"rsi\":31},{\"period_id\":\"120m209668\",\"size\":\"120m\",\"time\":1509609600000,\"open\":0.1595,\"high\":0.16,\"low\":0.15671,\"close\":0.15671,\"volume\":1721066.7197427999,\"close_time\":1509616786625,\"vwap\":0.20004391526824036,\"ema1\":0.1681770464519365,\"sma1\":0.17403027777777774,\"sma2\":0.171569,\"rsi_avg_gain\":0.00025182665257458895,\"rsi_avg_loss\":0.0011031401406074903,\"rsi\":19},{\"period_id\":\"120m209667\",\"size\":\"120m\",\"time\":1509602400000,\"open\":0.16123,\"high\":0.1632,\"low\":0.159,\"close\":0.15912,\"volume\":2334769.7164794793,\"close_time\":1509609597998,\"vwap\":0.2002808115613314,\"ema1\":0.16896787724172524,\"sma1\":0.17413944444444443,\"sma2\":0.17181533333333335,\"rsi_avg_gain\":0.000271197933541865,\"rsi_avg_loss\":0.001002612459115757,\"rsi\":21},{\"period_id\":\"120m209666\",\"size\":\"120m\",\"time\":1509595200000,\"open\":0.16241,\"high\":0.16472,\"low\":0.1613,\"close\":0.1613,\"volume\":345673.34816585,\"close_time\":1509602353291,\"vwap\":0.2007708573948689,\"ema1\":0.16964704118943041,\"sma1\":0.17423435185185185,\"sma2\":0.172018,\"rsi_avg_gain\":0.0002920593130450854,\"rsi_avg_loss\":0.0009120441867400469,\"rsi\":24},{\"period_id\":\"120m209665\",\"size\":\"120m\",\"time\":1509588000000,\"open\":0.16263,\"high\":0.16764,\"low\":0.1625,\"close\":0.1625,\"volume\":320289.0119792702,\"close_time\":1509595172195,\"vwap\":0.20078478332669203,\"ema1\":0.17022269920249458,\"sma1\":0.1743186111111111,\"sma2\":0.17220133333333335,\"rsi_avg_gain\":0.00031452541404855354,\"rsi_avg_loss\":0.0008898937395662038,\"rsi\":26},{\"period_id\":\"120m209664\",\"size\":\"120m\",\"time\":1509580800000,\"open\":0.16522,\"high\":0.16682,\"low\":0.1616,\"close\":0.16532,\"volume\":505396.63836847997,\"close_time\":1509587956753,\"vwap\":0.20079892098274493,\"ema1\":0.1707552991474942,\"sma1\":0.17435518518518517,\"sma2\":0.172343,\"rsi_avg_gain\":0.00033871967666767303,\"rsi_avg_loss\":0.0007414240272251434,\"rsi\":31},{\"period_id\":\"120m209663\",\"size\":\"120m\",\"time\":1509573600000,\"open\":0.1661,\"high\":0.16674,\"low\":0.16434,\"close\":0.16434,\"volume\":906775.1022949998,\"close_time\":1509580719608,\"vwap\":0.2008333272575762,\"ema1\":0.17113014736456278,\"sma1\":0.1743622222222222,\"sma2\":0.172498,\"rsi_avg_gain\":0.0002893904210267262,\"rsi_avg_loss\":0.0007984566447040006,\"rsi\":27},{\"period_id\":\"120m209662\",\"size\":\"120m\",\"time\":1509566400000,\"open\":0.16845,\"high\":0.1696,\"low\":0.16561,\"close\":0.16652,\"volume\":670029.5995432002,\"close_time\":1509573596127,\"vwap\":0.20092193970293917,\"ema1\":0.17159843338970504,\"sma1\":0.17431277777777776,\"sma2\":0.17262266666666667,\"rsi_avg_gain\":0.0003116512226441667,\"rsi_avg_loss\":0.0006921840789120016,\"rsi\":31},{\"period_id\":\"120m209661\",\"size\":\"120m\",\"time\":1509559200000,\"open\":0.16934,\"high\":0.1696,\"low\":0.16704,\"close\":0.16848,\"volume\":1189879.2806359415,\"close_time\":1509566397604,\"vwap\":0.20097298062366598,\"ema1\":0.17194867017520193,\"sma1\":0.17425148148148148,\"sma2\":0.17270366666666664,\"rsi_avg_gain\":0.0003356243936167949,\"rsi_avg_loss\":0.0005946597772898487,\"rsi\":36},{\"period_id\":\"120m209660\",\"size\":\"120m\",\"time\":1509552000000,\"open\":0.1725,\"high\":0.1725,\"low\":0.1694,\"close\":0.16999,\"volume\":917226.6054635601,\"close_time\":1509559199863,\"vwap\":0.201097047609125,\"ema1\":0.17218788880797448,\"sma1\":0.17415425925925923,\"sma2\":0.17278266666666664,\"rsi_avg_gain\":0.0003614416546642406,\"rsi_avg_loss\":0.0005242489909275285,\"rsi\":41},{\"period_id\":\"120m209659\",\"size\":\"120m\",\"time\":1509544800000,\"open\":0.17109,\"high\":0.17284,\"low\":0.17,\"close\":0.17233,\"volume\":898158.8843483297,\"close_time\":1509551988199,\"vwap\":0.20115377778153942,\"ema1\":0.17233946734645547,\"sma1\":0.1740608333333333,\"sma2\":0.17281766666666665,\"rsi_avg_gain\":0.0003892448588691822,\"rsi_avg_loss\":0.00038457583638349155,\"rsi\":50},{\"period_id\":\"120m209658\",\"size\":\"120m\",\"time\":1509537600000,\"open\":0.1695,\"high\":0.1715,\"low\":0.169,\"close\":0.1711,\"volume\":1039009.0422977093,\"close_time\":1509544792007,\"vwap\":0.20122234010220852,\"ema1\":0.17234012026690068,\"sma1\":0.17401046296296294,\"sma2\":0.17285966666666663,\"rsi_avg_gain\":0.00032457138647450323,\"rsi_avg_loss\":0.0004141585930283755,\"rsi\":44},{\"period_id\":\"120m209657\",\"size\":\"120m\",\"time\":1509530400000,\"open\":0.1701,\"high\":0.17198,\"low\":0.1693,\"close\":0.16999,\"volume\":1167024.7693240494,\"close_time\":1509537595423,\"vwap\":0.20130937544198685,\"ema1\":0.17242564580254902,\"sma1\":0.1739659259259259,\"sma2\":0.1729228333333333,\"rsi_avg_gain\":0.0002641538008186958,\"rsi_avg_loss\":0.0004460169463382506,\"rsi\":37},{\"period_id\":\"120m209656\",\"size\":\"120m\",\"time\":1509523200000,\"open\":0.1712,\"high\":0.17266,\"low\":0.17,\"close\":0.17111,\"volume\":802673.6112538003,\"close_time\":1509530399245,\"vwap\":0.2014233132591679,\"ema1\":0.1725936213751386,\"sma1\":0.17391759259259257,\"sma2\":0.17297166666666663,\"rsi_avg_gain\":0.0002844733239585955,\"rsi_avg_loss\":0.0003941720960565768,\"rsi\":42},{\"period_id\":\"120m209655\",\"size\":\"120m\",\"time\":1509516000000,\"open\":0.1705,\"high\":0.17137,\"low\":0.17,\"close\":0.1712,\"volume\":486476.40899357,\"close_time\":1509523129373,\"vwap\":0.20146773348543556,\"ema1\":0.17269594009066538,\"sma1\":0.1738958333333333,\"sma2\":0.17301683333333331,\"rsi_avg_gain\":0.0003063558873400259,\"rsi_avg_loss\":0.000417569949599392,\"rsi\":42},{\"period_id\":\"120m209654\",\"size\":\"120m\",\"time\":1509508800000,\"open\":0.17086,\"high\":0.17162,\"low\":0.17,\"close\":0.1708,\"volume\":148063.88553533,\"close_time\":1509515159721,\"vwap\":0.20148538938243285,\"ema1\":0.17279910837278023,\"sma1\":0.17388787037037032,\"sma2\":0.17305449999999997,\"rsi_avg_gain\":0.0002991524940584907,\"rsi_avg_loss\":0.00044969071495319136,\"rsi\":40},{\"period_id\":\"120m209653\",\"size\":\"120m\",\"time\":1509501600000,\"open\":0.17165,\"high\":0.1718,\"low\":0.17,\"close\":0.17003,\"volume\":275252.1988088,\"close_time\":1509507850388,\"vwap\":0.20148692107248775,\"ema1\":0.1729369779157306,\"sma1\":0.1738791666666666,\"sma2\":0.17310949999999994,\"rsi_avg_gain\":0.00026293345513991146,\"rsi_avg_loss\":0.00048428230841112915,\"rsi\":35},{\"period_id\":\"120m209652\",\"size\":\"120m\",\"time\":1509494400000,\"open\":0.17124,\"high\":0.17199,\"low\":0.17101,\"close\":0.17176,\"volume\":125338.60549834,\"close_time\":1509501336761,\"vwap\":0.2014950830638403,\"ema1\":0.17313745915129822,\"sma1\":0.17387574074074072,\"sma2\":0.1731351666666666,\"rsi_avg_gain\":0.0002831591055352893,\"rsi_avg_loss\":0.00038845787059659995,\"rsi\":42},{\"period_id\":\"120m209651\",\"size\":\"120m\",\"time\":1509487200000,\"open\":0.17205,\"high\":0.17284,\"low\":0.17123,\"close\":0.17124,\"volume\":778377.35267301,\"close_time\":1509494388372,\"vwap\":0.2014972812741026,\"ema1\":0.17323245633414638,\"sma1\":0.17386796296296295,\"sma2\":0.17318166666666662,\"rsi_avg_gain\":0.00026494057519185055,\"rsi_avg_loss\":0.0004183392452578769,\"rsi\":39},{\"period_id\":\"120m209650\",\"size\":\"120m\",\"time\":1509480000000,\"open\":0.17263,\"high\":0.17285,\"low\":0.17204,\"close\":0.17204,\"volume\":368952.1699852,\"close_time\":1509487161380,\"vwap\":0.20155038433016415,\"ema1\":0.17336986711581165,\"sma1\":0.17385775509259258,\"sma2\":0.17320599999999994,\"rsi_avg_gain\":0.0002853206194373775,\"rsi_avg_loss\":0.00038898072566232936,\"rsi\":42},{\"period_id\":\"120m209649\",\"size\":\"120m\",\"time\":1509472800000,\"open\":0.172,\"high\":0.17272,\"low\":0.172,\"close\":0.17266,\"volume\":380343.36523268017,\"close_time\":1509479891306,\"vwap\":0.20155871635085476,\"ema1\":0.1734615820893159,\"sma1\":0.17385108842592592,\"sma2\":0.1732198333333333,\"rsi_avg_gain\":0.00030726835939409887,\"rsi_avg_loss\":0.0003712100122517386,\"rsi\":45},{\"period_id\":\"120m209648\",\"size\":\"120m\",\"time\":1509465600000,\"open\":0.17243,\"high\":0.1735,\"low\":0.172,\"close\":0.172,\"volume\":559983.7519757701,\"close_time\":1509472774896,\"vwap\":0.20157275598696334,\"ema1\":0.17351686361271698,\"sma1\":0.17384090324074072,\"sma2\":0.17323649999999996,\"rsi_avg_gain\":0.00028013515627056635,\"rsi_avg_loss\":0.0003997646285787954,\"rsi\":41},{\"period_id\":\"120m209647\",\"size\":\"120m\",\"time\":1509458400000,\"open\":0.17458,\"high\":0.1746,\"low\":0.172,\"close\":0.1735,\"volume\":938086.8382250599,\"close_time\":1509465517913,\"vwap\":0.20159018941064266,\"ema1\":0.17362147489635263,\"sma1\":0.17384284768518515,\"sma2\":0.1732311666666666,\"rsi_avg_gain\":0.0003016840144452253,\"rsi_avg_loss\":0.0003151311384694719,\"rsi\":49},{\"period_id\":\"120m209646\",\"size\":\"120m\",\"time\":1509451200000,\"open\":0.174,\"high\":0.1748,\"low\":0.1734,\"close\":0.1746,\"volume\":533246.7497322498,\"close_time\":1509458354825,\"vwap\":0.20164718820913924,\"ema1\":0.17362985247541143,\"sma1\":0.17382377361111112,\"sma2\":0.17322466666666664,\"rsi_avg_gain\":0.000324890477094858,\"rsi_avg_loss\":0.00025475661065942995,\"rsi\":56},{\"period_id\":\"120m209645\",\"size\":\"120m\",\"time\":1509444000000,\"open\":0.17467,\"high\":0.1748,\"low\":0.1735,\"close\":0.17442,\"volume\":691011.48796204,\"close_time\":1509451147678,\"vwap\":0.20167040877947806,\"ema1\":0.17356294574957773,\"sma1\":0.17379312546296297,\"sma2\":0.17324049999999996,\"rsi_avg_gain\":0.0003360358984098461,\"rsi_avg_loss\":0.00027435327301784766,\"rsi\":55},{\"period_id\":\"120m209644\",\"size\":\"120m\",\"time\":1509436800000,\"open\":0.1737,\"high\":0.1747,\"low\":0.1735,\"close\":0.17469,\"volume\":471611.4616469602,\"close_time\":1509443995806,\"vwap\":0.20170649615382735,\"ema1\":0.17350383855989343,\"sma1\":0.17379136620370372,\"sma2\":0.1732378333333333,\"rsi_avg_gain\":0.0003618848136721419,\"rsi_avg_loss\":0.00027468814017306514,\"rsi\":57},{\"period_id\":\"120m209643\",\"size\":\"120m\",\"time\":1509429600000,\"open\":0.17395,\"high\":0.17438,\"low\":0.1734,\"close\":0.17421,\"volume\":201060.23830178005,\"close_time\":1509436795149,\"vwap\":0.20172507703653694,\"ema1\":0.1734220343226447,\"sma1\":0.17380164398148154,\"sma2\":0.1732258333333333,\"rsi_avg_gain\":0.0003527990301084599,\"rsi_avg_loss\":0.00029581799710945477,\"rsi\":54},{\"period_id\":\"120m209642\",\"size\":\"120m\",\"time\":1509422400000,\"open\":0.17384,\"high\":0.17394,\"low\":0.17325,\"close\":0.17389,\"volume\":70472.03757481,\"close_time\":1509429450403,\"vwap\":0.2017275830374644,\"ema1\":0.17336769186213744,\"sma1\":0.17380118101851855,\"sma2\":0.17321099999999995,\"rsi_avg_gain\":0.0003553220324244941,\"rsi_avg_loss\":0.0003185732276563359,\"rsi\":53},{\"period_id\":\"120m209641\",\"size\":\"120m\",\"time\":1509415200000,\"open\":0.17395,\"high\":0.1745,\"low\":0.173,\"close\":0.17414,\"volume\":542700.20779527,\"close_time\":1509422089182,\"vwap\":0.2017278898735162,\"ema1\":0.17333167061125035,\"sma1\":0.17383423657407415,\"sma2\":0.1732,\"rsi_avg_gain\":0.00038265449645714754,\"rsi_avg_loss\":0.00032384809132220783,\"rsi\":54},{\"period_id\":\"120m209640\",\"size\":\"120m\",\"time\":1509408000000,\"open\":0.17418,\"high\":0.17418,\"low\":0.1735,\"close\":0.17405,\"volume\":45452.97159424001,\"close_time\":1509414427483,\"vwap\":0.2017427431012418,\"ema1\":0.17327592375685383,\"sma1\":0.1738871995370371,\"sma2\":0.1731608333333333,\"rsi_avg_gain\":0.00040516638080000664,\"rsi_avg_loss\":0.0003487594829623777,\"rsi\":54},{\"period_id\":\"120m209639\",\"size\":\"120m\",\"time\":1509400800000,\"open\":0.1735,\"high\":0.1745,\"low\":0.173,\"close\":0.17426,\"volume\":272719.8336484401,\"close_time\":1509407506948,\"vwap\":0.20174302123585025,\"ema1\":0.173222539188361,\"sma1\":0.17391960694444453,\"sma2\":0.17312666666666662,\"rsi_avg_gain\":0.0004363330254769302,\"rsi_avg_loss\":0.0003594332893441,\"rsi\":55},{\"period_id\":\"120m209638\",\"size\":\"120m\",\"time\":1509393600000,\"open\":0.17476,\"high\":0.17479,\"low\":0.1735,\"close\":0.1735,\"volume\":359921.3454896399,\"close_time\":1509400749257,\"vwap\":0.20174929208665168,\"ema1\":0.17315099016686866,\"sma1\":0.17390303287037043,\"sma2\":0.1730918333333333,\"rsi_avg_gain\":0.0004114355658982317,\"rsi_avg_loss\":0.0003870820039090308,\"rsi\":52},{\"period_id\":\"120m209637\",\"size\":\"120m\",\"time\":1509386400000,\"open\":0.1732,\"high\":0.1748,\"low\":0.173,\"close\":0.17476,\"volume\":427867.7588550901,\"close_time\":1509393559979,\"vwap\":0.2017636021788998,\"ema1\":0.17312692052320444,\"sma1\":0.17388349583333337,\"sma2\":0.17302416666666662,\"rsi_avg_gain\":0.000443084455582711,\"rsi_avg_loss\":0.0003199344657481862,\"rsi\":58},{\"period_id\":\"120m209636\",\"size\":\"120m\",\"time\":1509379200000,\"open\":0.17459,\"high\":0.17499,\"low\":0.173,\"close\":0.173,\"volume\":390086.82031326013,\"close_time\":1509386390303,\"vwap\":0.20177380497140981,\"ema1\":0.17301429435239096,\"sma1\":0.17385618101851855,\"sma2\":0.172985,\"rsi_avg_gain\":0.00034178325985830324,\"rsi_avg_loss\":0.00034454480926727744,\"rsi\":50},{\"period_id\":\"120m209635\",\"size\":\"120m\",\"time\":1509372000000,\"open\":0.17434,\"high\":0.17459,\"low\":0.17318,\"close\":0.17443,\"volume\":639290.63311668,\"close_time\":1509379077038,\"vwap\":0.2017879499184034,\"ema1\":0.17301528016979723,\"sma1\":0.17385618101851855,\"sma2\":0.17294400000000001,\"rsi_avg_gain\":0.00036807427984740347,\"rsi_avg_loss\":0.00026104825613399,\"rsi\":59},{\"period_id\":\"120m209634\",\"size\":\"120m\",\"time\":1509364800000,\"open\":0.17501,\"high\":0.1754,\"low\":0.17389,\"close\":0.17435,\"volume\":761219.5413139507,\"close_time\":1509371994662,\"vwap\":0.2018179835542055,\"ema1\":0.17291771328495564,\"sma1\":0.17383655138888887,\"sma2\":0.17291183333333332,\"rsi_avg_gain\":0.00039023383983566556,\"rsi_avg_loss\":0.00028112889122122,\"rsi\":58},{\"period_id\":\"120m209633\",\"size\":\"120m\",\"time\":1509357600000,\"open\":0.1736,\"high\":0.17524,\"low\":0.17295,\"close\":0.175,\"volume\":685731.3475932502,\"close_time\":1509364785467,\"vwap\":0.20185623957412702,\"ema1\":0.17281893489081465,\"sma1\":0.17381581064814813,\"sma2\":0.1728491666666666,\"rsi_avg_gain\":0.00042025182751533215,\"rsi_avg_loss\":0.00025275419054593043,\"rsi\":62},{\"period_id\":\"120m209632\",\"size\":\"120m\",\"time\":1509350400000,\"open\":0.17301,\"high\":0.17475,\"low\":0.17201,\"close\":0.1736,\"volume\":982754.7806384695,\"close_time\":1509357384770,\"vwap\":0.20189440093658576,\"ema1\":0.17266851660742255,\"sma1\":0.17380886620370367,\"sma2\":0.17284249999999998,\"rsi_avg_gain\":0.00034488658347805117,\"rsi_avg_loss\":0.0002721968205879251,\"rsi\":56},{\"period_id\":\"120m209631\",\"size\":\"120m\",\"time\":1509343200000,\"open\":0.17307,\"high\":0.1738,\"low\":0.17202,\"close\":0.173,\"volume\":284271.7854024,\"close_time\":1509350362054,\"vwap\":0.2019665743161948,\"ema1\":0.1726042763734517,\"sma1\":0.17381895879629627,\"sma2\":0.1728925,\"rsi_avg_gain\":0.00032526247451482304,\"rsi_avg_loss\":0.000293135037556227,\"rsi\":53},{\"period_id\":\"120m209630\",\"size\":\"120m\",\"time\":1509336000000,\"open\":0.17272,\"high\":0.1731,\"low\":0.17253,\"close\":0.17309,\"volume\":89463.18058985996,\"close_time\":1509343190680,\"vwap\":0.20197337220850778,\"ema1\":0.17257698508886216,\"sma1\":0.1738348847222222,\"sma2\":0.17291766666666666,\"rsi_avg_gain\":0.0003502826648621171,\"rsi_avg_loss\":0.0003087608096759362,\"rsi\":53},{\"period_id\":\"120m209629\",\"size\":\"120m\",\"time\":1509328800000,\"open\":0.17251,\"high\":0.17326,\"low\":0.1722,\"close\":0.17307,\"volume\":43252.373609710005,\"close_time\":1509335998032,\"vwap\":0.20197431268259658,\"ema1\":0.172541604750163,\"sma1\":0.17385914398148147,\"sma2\":0.1729425,\"rsi_avg_gain\":0.00037568902369766516,\"rsi_avg_loss\":0.0003325116411894698,\"rsi\":53},{\"period_id\":\"120m209628\",\"size\":\"120m\",\"time\":1509321600000,\"open\":0.17312,\"high\":0.17396,\"low\":0.172,\"close\":0.17293,\"volume\":83955.8920413,\"close_time\":1509328440473,\"vwap\":0.20197463665637372,\"ema1\":0.17250516369845012,\"sma1\":0.17389673657407403,\"sma2\":0.17291566666666663,\"rsi_avg_gain\":0.00039381894859748544,\"rsi_avg_loss\":0.00035808945974250597,\"rsi\":52},{\"period_id\":\"120m209627\",\"size\":\"120m\",\"time\":1509314400000,\"open\":0.173,\"high\":0.17337,\"low\":0.17201,\"close\":0.17235,\"volume\":684796.3868457904,\"close_time\":1509321591148,\"vwap\":0.20197564225981712,\"ema1\":0.17247586464317083,\"sma1\":0.17393673657407402,\"sma2\":0.1729558333333333,\"rsi_avg_gain\":0.00037949732925883067,\"rsi_avg_loss\":0.0003856348027996218,\"rsi\":50},{\"period_id\":\"120m209626\",\"size\":\"120m\",\"time\":1509307200000,\"open\":0.173,\"high\":0.17449,\"low\":0.1725,\"close\":0.173,\"volume\":476348.78848239995,\"close_time\":1509314385786,\"vwap\":0.20200359800340248,\"ema1\":0.1724845449633895,\"sma1\":0.17397201435185178,\"sma2\":0.1729875,\"rsi_avg_gain\":0.00040868943150950993,\"rsi_avg_loss\":0.00036529901839959394,\"rsi\":53},{\"period_id\":\"120m209625\",\"size\":\"120m\",\"time\":1509300000000,\"open\":0.1723,\"high\":0.17355,\"low\":0.17175,\"close\":0.17245,\"volume\":496058.7864573899,\"close_time\":1509307039172,\"vwap\":0.20202314242694974,\"ema1\":0.172448996340175,\"sma1\":0.1740316439814814,\"sma2\":0.17309499999999997,\"rsi_avg_gain\":0.00039781938777947264,\"rsi_avg_loss\":0.0003933989428918704,\"rsi\":50},{\"period_id\":\"120m209624\",\"size\":\"120m\",\"time\":1509292800000,\"open\":0.172688,\"high\":0.1737,\"low\":0.1715,\"close\":0.17195,\"volume\":516118.92092936015,\"close_time\":1509299984287,\"vwap\":0.20204198387249772,\"ema1\":0.172448927122256,\"sma1\":0.17409460694444437,\"sma2\":0.17324583333333327,\"rsi_avg_gain\":0.00038995934068558586,\"rsi_avg_loss\":0.0004236604000373989,\"rsi\":48},{\"period_id\":\"120m209623\",\"size\":\"120m\",\"time\":1509285600000,\"open\":0.172,\"high\":0.17267,\"low\":0.1715,\"close\":0.17267,\"volume\":282293.62723150995,\"close_time\":1509292684374,\"vwap\":0.20206387458843672,\"ema1\":0.17248333588930814,\"sma1\":0.17419849583333327,\"sma2\":0.17338099999999995,\"rsi_avg_gain\":0.0004199562130460156,\"rsi_avg_loss\":0.000400865046194122,\"rsi\":51},{\"period_id\":\"120m209622\",\"size\":\"120m\",\"time\":1509278400000,\"open\":0.1704,\"high\":0.172,\"low\":0.17,\"close\":0.172,\"volume\":507396.67994656984,\"close_time\":1509285544604,\"vwap\":0.20207083950650037,\"ema1\":0.17247046250236386,\"sma1\":0.17431423657407402,\"sma2\":0.17353799999999994,\"rsi_avg_gain\":0.0004007220755880165,\"rsi_avg_loss\":0.00043170081897828523,\"rsi\":48},{\"period_id\":\"120m209621\",\"size\":\"120m\",\"time\":1509271200000,\"open\":0.1713,\"high\":0.17138,\"low\":0.1692,\"close\":0.17043,\"volume\":708191.5313493701,\"close_time\":1509278199257,\"vwap\":0.20208509492182392,\"ema1\":0.17250290819218206,\"sma1\":0.1744398847222222,\"sma2\":0.1736661666666666,\"rsi_avg_gain\":0.0003107776198640187,\"rsi_avg_loss\":0.00046490857428430716,\"rsi\":40},{\"period_id\":\"120m209620\",\"size\":\"120m\",\"time\":1509264000000,\"open\":0.172,\"high\":0.17279,\"low\":0.17051,\"close\":0.1713,\"volume\":463339.66160280985,\"close_time\":1509271123701,\"vwap\":0.20213504824543627,\"ema1\":0.1726458673778498,\"sma1\":0.1745539587962963,\"sma2\":0.1737781666666666,\"rsi_avg_gain\":0.0003346835906227894,\"rsi_avg_loss\":0.0004337476953830993,\"rsi\":44},{\"period_id\":\"120m209619\",\"size\":\"120m\",\"time\":1509256800000,\"open\":0.17201,\"high\":0.17377,\"low\":0.17132,\"close\":0.17235,\"volume\":285626.02688529,\"close_time\":1509263966493,\"vwap\":0.2021554834885793,\"ema1\":0.1727386858177015,\"sma1\":0.174675625462963,\"sma2\":0.1738056666666666,\"rsi_avg_gain\":0.0003604284822091578,\"rsi_avg_loss\":0.0003863436719510304,\"rsi\":48},{\"period_id\":\"120m209618\",\"size\":\"120m\",\"time\":1509249600000,\"open\":0.17113,\"high\":0.1739,\"low\":0.17112,\"close\":0.17333,\"volume\":186683.95922460998,\"close_time\":1509256796594,\"vwap\":0.2021600030282616,\"ema1\":0.17276549173616368,\"sma1\":0.17482081064814817,\"sma2\":0.17382133333333324,\"rsi_avg_gain\":0.0003881537500714007,\"rsi_avg_loss\":0.0003406778005626475,\"rsi\":53},{\"period_id\":\"120m209617\",\"size\":\"120m\",\"time\":1509242400000,\"open\":0.17101,\"high\":0.17125,\"low\":0.1701,\"close\":0.17052,\"volume\":109812.33446858004,\"close_time\":1509249464890,\"vwap\":0.20216192756643886,\"ema1\":0.1727265601317612,\"sma1\":0.17494460694444444,\"sma2\":0.17380366666666663,\"rsi_avg_gain\":0.0002018578846922771,\"rsi_avg_loss\":0.00036688378522131264,\"rsi\":35},{\"period_id\":\"120m209616\",\"size\":\"120m\",\"time\":1509235200000,\"open\":0.17161,\"high\":0.17213,\"low\":0.171,\"close\":0.17101,\"volume\":250380.80532811998,\"close_time\":1509242351608,\"vwap\":0.20216364067733894,\"ema1\":0.1728787366925723,\"sma1\":0.17504710694444447,\"sma2\":0.17378683333333328,\"rsi_avg_gain\":0.00021738541428399072,\"rsi_avg_loss\":0.00035741330716141436,\"rsi\":38},{\"period_id\":\"120m209615\",\"size\":\"120m\",\"time\":1509228000000,\"open\":0.17176,\"high\":0.17253,\"low\":0.171,\"close\":0.1717,\"volume\":726369.6006439498,\"close_time\":1509235161837,\"vwap\":0.20217007741055343,\"ema1\":0.1730076150851635,\"sma1\":0.17514858842592596,\"sma2\":0.17365849999999997,\"rsi_avg_gain\":0.0002341073692289131,\"rsi_avg_loss\":0.00033182971540460037,\"rsi\":41},{\"period_id\":\"120m209614\",\"size\":\"120m\",\"time\":1509220800000,\"open\":0.17152,\"high\":0.17429,\"low\":0.1715,\"close\":0.17174,\"volume\":507071.4701850402,\"close_time\":1509227774235,\"vwap\":0.20218406799946742,\"ema1\":0.17309779543586443,\"sma1\":0.1752459032407407,\"sma2\":0.1735018333333333,\"rsi_avg_gain\":0.00025211562840036795,\"rsi_avg_loss\":0.0003542781550511072,\"rsi\":42},{\"period_id\":\"120m209613\",\"size\":\"120m\",\"time\":1509213600000,\"open\":0.17186,\"high\":0.17242,\"low\":0.1715,\"close\":0.17151,\"volume\":296945.9798627102,\"close_time\":1509220576896,\"vwap\":0.20219636919043324,\"ema1\":0.1731914365004068,\"sma1\":0.17536701435185187,\"sma2\":0.17335166666666663,\"rsi_avg_gain\":0.000253816830585011,\"rsi_avg_loss\":0.00038153032082426927,\"rsi\":40},{\"period_id\":\"120m209612\",\"size\":\"120m\",\"time\":1509206400000,\"open\":0.17174,\"high\":0.17222,\"low\":0.17121,\"close\":0.17197,\"volume\":204456.1067420499,\"close_time\":1509213416725,\"vwap\":0.20220110148463408,\"ema1\":0.1733073976383659,\"sma1\":0.17557238472222222,\"sma2\":0.1731738333333333,\"rsi_avg_gain\":0.0002733412021684734,\"rsi_avg_loss\":0.00037549419165690414,\"rsi\":42},{\"period_id\":\"120m209611\",\"size\":\"120m\",\"time\":1509199200000,\"open\":0.17264,\"high\":0.17399,\"low\":0.1715,\"close\":0.1715,\"volume\":632198.5747353298,\"close_time\":1509206384934,\"vwap\":0.20220636016811477,\"ema1\":0.1733996319582532,\"sma1\":0.1757669217592593,\"sma2\":0.1729988333333333,\"rsi_avg_gain\":0.0002582136023352792,\"rsi_avg_loss\":0.0004043783602458968,\"rsi\":39},{\"period_id\":\"120m209610\",\"size\":\"120m\",\"time\":1509192000000,\"open\":0.17303,\"high\":0.17476,\"low\":0.1726,\"close\":0.17264,\"volume\":355098.94472750014,\"close_time\":1509199187198,\"vwap\":0.2022322189216195,\"ema1\":0.17353064105882238,\"sma1\":0.17581071805555556,\"sma2\":0.17282083333333328,\"rsi_avg_gain\":0.00027807618713030066,\"rsi_avg_loss\":0.0003477920802648139,\"rsi\":44},{\"period_id\":\"120m209609\",\"size\":\"120m\",\"time\":1509184800000,\"open\":0.1743,\"high\":0.17463,\"low\":0.173,\"close\":0.173,\"volume\":394166.51534412993,\"close_time\":1509191863970,\"vwap\":0.20223903649318523,\"ema1\":0.17359206458012047,\"sma1\":0.17585719953703707,\"sma2\":0.17268799999999998,\"rsi_avg_gain\":0.0002994666630634007,\"rsi_avg_loss\":0.00034685300951595356,\"rsi\":46},{\"period_id\":\"120m209608\",\"size\":\"120m\",\"time\":1509177600000,\"open\":0.17404,\"high\":0.17474,\"low\":0.17315,\"close\":0.1744,\"volume\":351321.72328474006,\"close_time\":1509184281479,\"vwap\":0.20224979064443951,\"ema1\":0.1736328966201288,\"sma1\":0.17591710694444448,\"sma2\":0.17254716666666664,\"rsi_avg_gain\":0.00032250256022212386,\"rsi_avg_loss\":0.0002658417025556414,\"rsi\":55},{\"period_id\":\"120m209607\",\"size\":\"120m\",\"time\":1509170400000,\"open\":0.17389,\"high\":0.17415,\"low\":0.17305,\"close\":0.1739,\"volume\":208398.77150217,\"close_time\":1509177443699,\"vwap\":0.20225612101864154,\"ema1\":0.17357999293875837,\"sma1\":0.17601460694444448,\"sma2\":0.17241599999999999,\"rsi_avg_gain\":0.000308848911008441,\"rsi_avg_loss\":0.0002862910642906907,\"rsi\":52},{\"period_id\":\"120m209606\",\"size\":\"120m\",\"time\":1509163200000,\"open\":0.17309,\"high\":0.1737,\"low\":0.1728,\"close\":0.17346,\"volume\":26886.12837723,\"close_time\":1509170236953,\"vwap\":0.20225756716179344,\"ema1\":0.17355792348625895,\"sma1\":0.1761046995370371,\"sma2\":0.17234349999999996,\"rsi_avg_gain\":0.00029876036570139833,\"rsi_avg_loss\":0.00030831345385151307,\"rsi\":49},{\"period_id\":\"120m209605\",\"size\":\"120m\",\"time\":1509156000000,\"open\":0.17327,\"high\":0.17351,\"low\":0.17257,\"close\":0.1735,\"volume\":22004.55199932,\"close_time\":1509162219469,\"vwap\":0.20225769850150105,\"ema1\":0.17356467683013888,\"sma1\":0.17621414398148155,\"sma2\":0.17229233333333333,\"rsi_avg_gain\":0.00032174193229381356,\"rsi_avg_loss\":0.00032895295030163066,\"rsi\":49},{\"period_id\":\"120m209604\",\"size\":\"120m\",\"time\":1509148800000,\"open\":0.17395,\"high\":0.1744,\"low\":0.17346,\"close\":0.17382,\"volume\":127167.2383359,\"close_time\":1509154797074,\"vwap\":0.20225780843109298,\"ema1\":0.17356913730118292,\"sma1\":0.1763208106481482,\"sma2\":0.17224233333333333,\"rsi_avg_gain\":0.00034649131170102994,\"rsi_avg_loss\":0.0003296416387863703,\"rsi\":51},{\"period_id\":\"120m209603\",\"size\":\"120m\",\"time\":1509141600000,\"open\":0.17364,\"high\":0.17462,\"low\":0.17364,\"close\":0.17364,\"volume\":245967.77557432003,\"close_time\":1509148469738,\"vwap\":0.20225949220734823,\"ema1\":0.17355183642540245,\"sma1\":0.1764455328703704,\"sma2\":0.1721943333333333,\"rsi_avg_gain\":0.0003592983356780312,\"rsi_avg_loss\":0.00035499868792378335,\"rsi\":50},{\"period_id\":\"120m209602\",\"size\":\"120m\",\"time\":1509134400000,\"open\":0.17335,\"high\":0.17462,\"low\":0.17293,\"close\":0.174,\"volume\":265180.97041563,\"close_time\":1509141551587,\"vwap\":0.2022613034133287,\"ema1\":0.1735457561788785,\"sma1\":0.17654368101851856,\"sma2\":0.17214866666666667,\"rsi_avg_gain\":0.0003869366691917259,\"rsi_avg_loss\":0.00035461397161022824,\"rsi\":52},{\"period_id\":\"120m209601\",\"size\":\"120m\",\"time\":1509127200000,\"open\":0.17475,\"high\":0.17476,\"low\":0.1728,\"close\":0.17334,\"volume\":507189.33349982,\"close_time\":1509134343110,\"vwap\":0.20226547503636308,\"ema1\":0.17351442901880115,\"sma1\":0.17661025509259265,\"sma2\":0.17209299999999997,\"rsi_avg_gain\":0.00036593179759108986,\"rsi_avg_loss\":0.00038189196942639965,\"rsi\":49},{\"period_id\":\"120m209600\",\"size\":\"120m\",\"time\":1509120000000,\"open\":0.17441,\"high\":0.17494,\"low\":0.17372,\"close\":0.17473,\"volume\":413137.98772199015,\"close_time\":1509127174200,\"vwap\":0.20228157602445748,\"ema1\":0.1735264586063047,\"sma1\":0.17674858842592597,\"sma2\":0.17203516666666668,\"rsi_avg_gain\":0.0003940803974057891,\"rsi_avg_loss\":0.00030434519784381487,\"rsi\":56},{\"period_id\":\"120m209599\",\"size\":\"120m\",\"time\":1509112800000,\"open\":0.17453,\"high\":0.1748,\"low\":0.1735,\"close\":0.17443,\"volume\":270804.7546261601,\"close_time\":1509119994189,\"vwap\":0.2022908074898175,\"ema1\":0.17344345575156708,\"sma1\":0.17688821805555557,\"sma2\":0.1720013333333333,\"rsi_avg_gain\":0.00040131735105238865,\"rsi_avg_loss\":0.00032775636690872374,\"rsi\":55},{\"period_id\":\"120m209598\",\"size\":\"120m\",\"time\":1509105600000,\"open\":0.17335,\"high\":0.17465,\"low\":0.173,\"close\":0.17362,\"volume\":509927.8083225598,\"close_time\":1509112788348,\"vwap\":0.2022986425041628,\"ema1\":0.1733754182171924,\"sma1\":0.17708229212962967,\"sma2\":0.17197866666666664,\"rsi_avg_gain\":0.00036988022421026434,\"rsi_avg_loss\":0.0003529683951324717,\"rsi\":51},{\"period_id\":\"120m209597\",\"size\":\"120m\",\"time\":1509098400000,\"open\":0.17369,\"high\":0.1745,\"low\":0.173,\"close\":0.17378,\"volume\":532383.4747534199,\"close_time\":1509105581778,\"vwap\":0.2023271241713649,\"ema1\":0.17335855050803325,\"sma1\":0.17729877361111115,\"sma2\":0.17190849999999994,\"rsi_avg_gain\":0.00039833254914951546,\"rsi_avg_loss\":0.00036781211783497005,\"rsi\":52},{\"period_id\":\"120m209596\",\"size\":\"120m\",\"time\":1509091200000,\"open\":0.17391,\"high\":0.17496,\"low\":0.173,\"close\":0.17404,\"volume\":482855.3375114401,\"close_time\":1509098375789,\"vwap\":0.20234759116937814,\"ema1\":0.17332948502582865,\"sma1\":0.17747247731481483,\"sma2\":0.17186549999999998,\"rsi_avg_gain\":0.000428973514468709,\"rsi_avg_loss\":0.0003761053576684285,\"rsi\":53},{\"period_id\":\"120m209595\",\"size\":\"120m\",\"time\":1509084000000,\"open\":0.17261,\"high\":0.1748,\"low\":0.17222,\"close\":0.17391,\"volume\":393510.9533228197,\"close_time\":1509091196781,\"vwap\":0.2023652780489673,\"ema1\":0.17328048399312718,\"sma1\":0.17769627361111107,\"sma2\":0.17186816666666663,\"rsi_avg_gain\":0.0004519714771201488,\"rsi_avg_loss\":0.0004050365390275384,\"rsi\":53},{\"period_id\":\"120m209594\",\"size\":\"120m\",\"time\":1509076800000,\"open\":0.1732,\"high\":0.17436,\"low\":0.17225,\"close\":0.17306,\"volume\":279280.6725509501,\"close_time\":1509083949504,\"vwap\":0.20237808529250945,\"ema1\":0.17323706909610145,\"sma1\":0.17794090324074072,\"sma2\":0.17187666666666662,\"rsi_avg_gain\":0.000421353898437082,\"rsi_avg_loss\":0.00043619319587581056,\"rsi\":49},{\"period_id\":\"120m209593\",\"size\":\"120m\",\"time\":1509069600000,\"open\":0.1733,\"high\":0.17374,\"low\":0.173,\"close\":0.17333,\"volume\":26224.47779756,\"close_time\":1509076527404,\"vwap\":0.20238249024952218,\"ema1\":0.17324928075790155,\"sma1\":0.1781771069444444,\"sma2\":0.17185266666666663,\"rsi_avg_gain\":0.00045376573677839607,\"rsi_avg_loss\":0.000448977287866256,\"rsi\":50},{\"period_id\":\"120m209592\",\"size\":\"120m\",\"time\":1509062400000,\"open\":0.174,\"high\":0.174,\"low\":0.17302,\"close\":0.1733,\"volume\":65117.73086698,\"close_time\":1509069539140,\"vwap\":0.20238260435451366,\"ema1\":0.1732437139136189,\"sma1\":0.17841581064814813,\"sma2\":0.17193016666666663,\"rsi_avg_gain\":0.00048636310114596483,\"rsi_avg_loss\":0.0004835140023175064,\"rsi\":50},{\"period_id\":\"120m209591\",\"size\":\"120m\",\"time\":1509055200000,\"open\":0.1735,\"high\":0.17414,\"low\":0.17286,\"close\":0.17403,\"volume\":277183.36005777994,\"close_time\":1509062233010,\"vwap\":0.20238285659695252,\"ema1\":0.17323983211455812,\"sma1\":0.1786058106481481,\"sma2\":0.1719963333333333,\"rsi_avg_gain\":0.0005237756473879621,\"rsi_avg_loss\":0.0004645535409573161,\"rsi\":53},{\"period_id\":\"120m209590\",\"size\":\"120m\",\"time\":1509048000000,\"open\":0.17345,\"high\":0.17387,\"low\":0.1725,\"close\":0.1735,\"volume\":387891.0964343199,\"close_time\":1509055115817,\"vwap\":0.2023868307803964,\"ema1\":0.1731853377776311,\"sma1\":0.1788905328703703,\"sma2\":0.1719713333333333,\"rsi_avg_gain\":0.0005232968510331898,\"rsi_avg_loss\":0.0005002884287232635,\"rsi\":51},{\"period_id\":\"120m209589\",\"size\":\"120m\",\"time\":1509040800000,\"open\":0.17298,\"high\":0.17433,\"low\":0.17214,\"close\":0.17349,\"volume\":391377.44248398015,\"close_time\":1509047942645,\"vwap\":0.20239809897386493,\"ema1\":0.1731636369347091,\"sma1\":0.17921599583333325,\"sma2\":0.17192066666666664,\"rsi_avg_gain\":0.0005627812241895903,\"rsi_avg_loss\":0.0005387721540096684,\"rsi\":51},{\"period_id\":\"120m209588\",\"size\":\"120m\",\"time\":1509033600000,\"open\":0.17315,\"high\":0.17359,\"low\":0.172,\"close\":0.173,\"volume\":462815.97802780016,\"close_time\":1509040586507,\"vwap\":0.20241155372690461,\"ema1\":0.17314112913710283,\"sma1\":0.17958090324074066,\"sma2\":0.17188566666666666,\"rsi_avg_gain\":0.0005683797798964804,\"rsi_avg_loss\":0.0005802161658565659,\"rsi\":49},{\"period_id\":\"120m209587\",\"size\":\"120m\",\"time\":1509026400000,\"open\":0.17423,\"high\":0.1745,\"low\":0.17318,\"close\":0.17318,\"volume\":536308.6854404302,\"close_time\":1509033597034,\"vwap\":0.20242830605293177,\"ema1\":0.17315086218104095,\"sma1\":0.17998831064814808,\"sma2\":0.17186566666666664,\"rsi_avg_gain\":0.000612101301426979,\"rsi_avg_loss\":0.0006110020247686084,\"rsi\":50},{\"period_id\":\"120m209586\",\"size\":\"120m\",\"time\":1509019200000,\"open\":0.17535,\"high\":0.17588,\"low\":0.17377,\"close\":0.17421,\"volume\":552158.98963798,\"close_time\":1509026340279,\"vwap\":0.20245005621103418,\"ema1\":0.17314885267628516,\"sma1\":0.18040331064814807,\"sma2\":0.17184549999999996,\"rsi_avg_gain\":0.000659186016921362,\"rsi_avg_loss\":0.0005787714112892703,\"rsi\":53},{\"period_id\":\"120m209585\",\"size\":\"120m\",\"time\":1509012000000,\"open\":0.17453,\"high\":0.17564,\"low\":0.17332,\"close\":0.17537,\"volume\":638825.14961212,\"close_time\":1509019193338,\"vwap\":0.2024701265385357,\"ema1\":0.17307567010223585,\"sma1\":0.18082701435185178,\"sma2\":0.17178933333333332,\"rsi_avg_gain\":0.0007098926336076206,\"rsi_avg_loss\":0.0005340615198499839,\"rsi\":57},{\"period_id\":\"120m209584\",\"size\":\"120m\",\"time\":1509004800000,\"open\":0.1735,\"high\":0.17483,\"low\":0.17231,\"close\":0.17453,\"volume\":545484.1022664,\"close_time\":1509011988439,\"vwap\":0.2024975904950424,\"ema1\":0.17291744045411417,\"sma1\":0.18128219953703695,\"sma2\":0.17174766666666663,\"rsi_avg_gain\":0.0006998843746543602,\"rsi_avg_loss\":0.0005751431752230596,\"rsi\":55},{\"period_id\":\"120m209583\",\"size\":\"120m\",\"time\":1508997600000,\"open\":0.1728,\"high\":0.1735,\"low\":0.17155,\"close\":0.17349,\"volume\":247787.35630792996,\"close_time\":1509004772097,\"vwap\":0.20252250953186998,\"ema1\":0.17280622945094962,\"sma1\":0.18172192175925922,\"sma2\":0.17175416666666662,\"rsi_avg_gain\":0.0006737216342431583,\"rsi_avg_loss\":0.0006193849579325257,\"rsi\":52},{\"period_id\":\"120m209582\",\"size\":\"120m\",\"time\":1508990400000,\"open\":0.17349,\"high\":0.17363,\"low\":0.17232,\"close\":0.173,\"volume\":203349.75248238,\"close_time\":1508997556850,\"vwap\":0.2025316725311641,\"ema1\":0.17275907286135994,\"sma1\":0.18218812546296292,\"sma2\":0.17177049999999996,\"rsi_avg_gain\":0.0006878540676464767,\"rsi_avg_loss\":0.0006670299546965661,\"rsi\":51},{\"period_id\":\"120m209581\",\"size\":\"120m\",\"time\":1508983200000,\"open\":0.17188,\"high\":0.17361,\"low\":0.1718,\"close\":0.17348,\"volume\":65074.96547798002,\"close_time\":1508990308256,\"vwap\":0.2025342155050161,\"ema1\":0.17274245719662615,\"sma1\":0.18263016249999997,\"sma2\":0.17176249999999996,\"rsi_avg_gain\":0.000740765919003898,\"rsi_avg_loss\":0.0006814168742886091,\"rsi\":52},{\"period_id\":\"120m209580\",\"size\":\"120m\",\"time\":1508976000000,\"open\":0.17214,\"high\":0.17323,\"low\":0.17072,\"close\":0.1717,\"volume\":152100.50329952006,\"close_time\":1508983070436,\"vwap\":0.2025346150419671,\"ema1\":0.17269159217570382,\"sma1\":0.18310599583333337,\"sma2\":0.1718233333333333,\"rsi_avg_gain\":0.0006608248358503515,\"rsi_avg_loss\":0.0007338335569261944,\"rsi\":47},{\"period_id\":\"120m209579\",\"size\":\"120m\",\"time\":1508968800000,\"open\":0.17132,\"high\":0.17463,\"low\":0.1709,\"close\":0.17221,\"volume\":327021.46813437995,\"close_time\":1508975990039,\"vwap\":0.2025369464068024,\"ema1\":0.17275997784299374,\"sma1\":0.18351960694444447,\"sma2\":0.171895,\"rsi_avg_gain\":0.0007116575155311477,\"rsi_avg_loss\":0.0007510515228435933,\"rsi\":49},{\"period_id\":\"120m209578\",\"size\":\"120m\",\"time\":1508961600000,\"open\":0.1707,\"high\":0.17358,\"low\":0.17062,\"close\":0.17141,\"volume\":541845.9698597101,\"close_time\":1508968736961,\"vwap\":0.20254504293768708,\"ema1\":0.17279790734940711,\"sma1\":0.1840079402777778,\"sma2\":0.1719715,\"rsi_avg_gain\":0.0007048619398027749,\"rsi_avg_loss\":0.000808824716908485,\"rsi\":47},{\"period_id\":\"120m209577\",\"size\":\"120m\",\"time\":1508954400000,\"open\":0.17124,\"high\":0.1723,\"low\":0.17,\"close\":0.1707,\"volume\":849917.9403358107,\"close_time\":1508961587149,\"vwap\":0.202570558587145,\"ema1\":0.17289362509764208,\"sma1\":0.1845916439814815,\"sma2\":0.17208616666666668,\"rsi_avg_gain\":0.0007044667044029871,\"rsi_avg_loss\":0.0008710420028245223,\"rsi\":45},{\"period_id\":\"120m209576\",\"size\":\"120m\",\"time\":1508947200000,\"open\":0.17211,\"high\":0.17285,\"low\":0.17065,\"close\":0.17065,\"volume\":397940.7244818399,\"close_time\":1508954194635,\"vwap\":0.20263292056209598,\"ema1\":0.17304490958713464,\"sma1\":0.18521340324074076,\"sma2\":0.17222016666666665,\"rsi_avg_gain\":0.0007548102970493711,\"rsi_avg_loss\":0.000938045233811024,\"rsi\":45},{\"period_id\":\"120m209575\",\"size\":\"120m\",\"time\":1508940000000,\"open\":0.17242,\"high\":0.17504,\"low\":0.1705,\"close\":0.17197,\"volume\":1294814.2538945102,\"close_time\":1508947190837,\"vwap\":0.2026518629244635,\"ema1\":0.17321007576555772,\"sma1\":0.18589358842592596,\"sma2\":0.17236233333333334,\"rsi_avg_gain\":0.0008128726275916303,\"rsi_avg_loss\":0.0009086640979503324,\"rsi\":47},{\"period_id\":\"120m209574\",\"size\":\"120m\",\"time\":1508932800000,\"open\":0.17124,\"high\":0.1735,\"low\":0.17004,\"close\":0.17242,\"volume\":698543.0479591705,\"close_time\":1508939995535,\"vwap\":0.20270148261315998,\"ema1\":0.1732955982321479,\"sma1\":0.1866009958333333,\"sma2\":0.17255349999999997,\"rsi_avg_gain\":0.0008754012912525249,\"rsi_avg_loss\":0.0009439459516388212,\"rsi\":48},{\"period_id\":\"120m209573\",\"size\":\"120m\",\"time\":1508925600000,\"open\":0.1735,\"high\":0.17576,\"low\":0.17002,\"close\":0.17124,\"volume\":776842.12237437,\"close_time\":1508932775447,\"vwap\":0.20274604662829845,\"ema1\":0.17335598431712362,\"sma1\":0.18716803287037037,\"sma2\":0.17277449999999997,\"rsi_avg_gain\":0.0008519706213488739,\"rsi_avg_loss\":0.0010165571786879613,\"rsi\":46},{\"period_id\":\"120m209572\",\"size\":\"120m\",\"time\":1508918400000,\"open\":0.176,\"high\":0.1769,\"low\":0.173,\"close\":0.1732,\"volume\":853693.2410544899,\"close_time\":1508925593807,\"vwap\":0.20280512009411134,\"ema1\":0.1735019142700287,\"sma1\":0.18770599583333333,\"sma2\":0.17294899999999996,\"rsi_avg_gain\":0.000917506822991095,\"rsi_avg_loss\":0.0009439846539716516,\"rsi\":49},{\"period_id\":\"120m209571\",\"size\":\"120m\",\"time\":1508911200000,\"open\":0.1746,\"high\":0.17699,\"low\":0.1745,\"close\":0.176,\"volume\":812787.1982533699,\"close_time\":1508918396597,\"vwap\":0.20290865317088172,\"ema1\":0.17352273594382378,\"sma1\":0.18826164398148149,\"sma2\":0.17308216666666662,\"rsi_avg_gain\":0.000988084270913487,\"rsi_avg_loss\":0.000801214242738702,\"rsi\":55},{\"period_id\":\"120m209570\",\"size\":\"120m\",\"time\":1508904000000,\"open\":0.17459,\"high\":0.176,\"low\":0.17217,\"close\":0.1746,\"volume\":332293.24866345007,\"close_time\":1508911125306,\"vwap\":0.20295491637771956,\"ema1\":0.1733518901468461,\"sma1\":0.18871534768518522,\"sma2\":0.1732638333333333,\"rsi_avg_gain\":0.0009563984455991409,\"rsi_avg_loss\":0.000862846107564756,\"rsi\":53},{\"period_id\":\"120m209569\",\"size\":\"120m\",\"time\":1508896800000,\"open\":0.17102,\"high\":0.17461,\"low\":0.1705,\"close\":0.17456,\"volume\":238526.89042274005,\"close_time\":1508903964165,\"vwap\":0.20296928656504185,\"ema1\":0.17326581360524929,\"sma1\":0.18915219953703705,\"sma2\":0.17343149999999996,\"rsi_avg_gain\":0.0010268906337221508,\"rsi_avg_loss\":0.0009292188850697373,\"rsi\":52},{\"period_id\":\"120m209568\",\"size\":\"120m\",\"time\":1508889600000,\"open\":0.1751,\"high\":0.17542,\"low\":0.17101,\"close\":0.17132,\"volume\":315972.07897068013,\"close_time\":1508896758337,\"vwap\":0.20297336583945225,\"ema1\":0.17317655937112855,\"sma1\":0.18959488472222222,\"sma2\":0.17362883333333332,\"rsi_avg_gain\":0.0008566514517007785,\"rsi_avg_loss\":0.0010006972608443325,\"rsi\":46},{\"period_id\":\"120m209567\",\"size\":\"120m\",\"time\":1508882400000,\"open\":0.17488,\"high\":0.1782,\"low\":0.17324,\"close\":0.17476,\"volume\":779646.11099317,\"close_time\":1508889386052,\"vwap\":0.20298358388490537,\"ema1\":0.17330459794844777,\"sma1\":0.19001988472222225,\"sma2\":0.17375549999999998,\"rsi_avg_gain\":0.0009225477172162231,\"rsi_avg_loss\":0.0008130585886015889,\"rsi\":53},{\"period_id\":\"120m209566\",\"size\":\"120m\",\"time\":1508875200000,\"open\":0.17901,\"high\":0.18062,\"low\":0.1724,\"close\":0.1749,\"volume\":980719.45796823,\"close_time\":1508882374988,\"vwap\":0.20301725056992934,\"ema1\":0.1732042253931683,\"sma1\":0.19042247731481485,\"sma2\":0.17387549999999996,\"rsi_avg_gain\":0.0009935129262328556,\"rsi_avg_loss\":0.0008648323261863264,\"rsi\":53},{\"period_id\":\"120m209565\",\"size\":\"120m\",\"time\":1508868000000,\"open\":0.18111,\"high\":0.18302,\"low\":0.17853,\"close\":0.1789,\"volume\":870281.0234227607,\"close_time\":1508875170112,\"vwap\":0.20309443602725277,\"ema1\":0.17308727542028335,\"sma1\":0.19084358842592597,\"sma2\":0.17396999999999993,\"rsi_avg_gain\":0.0010699369974815367,\"rsi_avg_loss\":0.0006236655820468127,\"rsi\":63},{\"period_id\":\"120m209564\",\"size\":\"120m\",\"time\":1508860800000,\"open\":0.18079,\"high\":0.18325,\"low\":0.176,\"close\":0.181,\"volume\":2010800.5246071485,\"close_time\":1508867957444,\"vwap\":0.2031524957549749,\"ema1\":0.1726863978630615,\"sma1\":0.19124775509259262,\"sma2\":0.17399416666666664,\"rsi_avg_gain\":0.0011522398434416548,\"rsi_avg_loss\":0.0005101013960504145,\"rsi\":69},{\"period_id\":\"120m209563\",\"size\":\"120m\",\"time\":1508853600000,\"open\":0.18248,\"high\":0.18549,\"low\":0.1806,\"close\":0.18078,\"volume\":2048497.8937628616,\"close_time\":1508860796305,\"vwap\":0.20338750086005303,\"ema1\":0.1721130459915485,\"sma1\":0.19157655138888893,\"sma2\":0.1741811666666666,\"rsi_avg_gain\":0.0012239506006294747,\"rsi_avg_loss\":0.0005493399649773694,\"rsi\":69},{\"period_id\":\"120m209562\",\"size\":\"120m\",\"time\":1508846400000,\"open\":0.17812,\"high\":0.184,\"low\":0.178,\"close\":0.18142,\"volume\":2121593.591426679,\"close_time\":1508853596365,\"vwap\":0.20364846090530442,\"ema1\":0.1715153250254484,\"sma1\":0.19187951435185188,\"sma2\":0.17409866666666662,\"rsi_avg_gain\":0.001318100646831742,\"rsi_avg_loss\":0.0005423661161294747,\"rsi\":71},{\"period_id\":\"120m209561\",\"size\":\"120m\",\"time\":1508839200000,\"open\":0.17708,\"high\":0.1797,\"low\":0.1755,\"close\":0.17812,\"volume\":1405572.9367635408,\"close_time\":1508846399653,\"vwap\":0.2039421797520627,\"ema1\":0.1708322439927207,\"sma1\":0.19219895879629634,\"sma2\":0.1740983333333333,\"rsi_avg_gain\":0.0011656468504341838,\"rsi_avg_loss\":0.0005840865866009728,\"rsi\":67},{\"period_id\":\"120m209560\",\"size\":\"120m\",\"time\":1508832000000,\"open\":0.1749,\"high\":0.18,\"low\":0.174,\"close\":0.17802,\"volume\":2817885.18563076,\"close_time\":1508839193802,\"vwap\":0.20411977956637237,\"ema1\":0.17032964013014973,\"sma1\":0.1925582180555556,\"sma2\":0.1740965,\"rsi_avg_gain\":0.001247619685082968,\"rsi_avg_loss\":0.0006290163240318168,\"rsi\":66},{\"period_id\":\"120m209559\",\"size\":\"120m\",\"time\":1508824800000,\"open\":0.17427,\"high\":0.17499,\"low\":0.17004,\"close\":0.174,\"volume\":2599126.4352685795,\"close_time\":1508831953470,\"vwap\":0.20459242325341506,\"ema1\":0.16979927048395316,\"sma1\":0.19295618101851855,\"sma2\":0.17417716666666663,\"rsi_avg_gain\":0.001034359660858579,\"rsi_avg_loss\":0.0006774021951111873,\"rsi\":60},{\"period_id\":\"120m209558\",\"size\":\"120m\",\"time\":1508817600000,\"open\":0.16942,\"high\":0.17497,\"low\":0.16851,\"close\":0.17427,\"volume\":940349.9307694802,\"close_time\":1508824766056,\"vwap\":0.20492861982290625,\"ema1\":0.16950956500008785,\"sma1\":0.19336229212962963,\"sma2\":0.17429766666666663,\"rsi_avg_gain\":0.001113925788616931,\"rsi_avg_loss\":0.000708740825504354,\"rsi\":61},{\"period_id\":\"120m209557\",\"size\":\"120m\",\"time\":1508810400000,\"open\":0.17017,\"high\":0.17674,\"low\":0.16831,\"close\":0.16946,\"volume\":1315534.0875811498,\"close_time\":1508817487442,\"vwap\":0.20497169347400215,\"ema1\":0.16918125913802495,\"sma1\":0.19376164398148155,\"sma2\":0.1744541666666667,\"rsi_avg_gain\":0.0008296123877413098,\"rsi_avg_loss\":0.0007632593505431505,\"rsi\":52},{\"period_id\":\"120m209556\",\"size\":\"120m\",\"time\":1508803200000,\"open\":0.164,\"high\":0.17077,\"low\":0.1571,\"close\":0.17,\"volume\":1711814.2027050385,\"close_time\":1508810383599,\"vwap\":0.20512301166908056,\"ema1\":0.16916203563030255,\"sma1\":0.19423127361111112,\"sma2\":0.17466399999999999,\"rsi_avg_gain\":0.0008934287252598722,\"rsi_avg_loss\":0.0007804331467387764,\"rsi\":53},{\"period_id\":\"120m209555\",\"size\":\"120m\",\"time\":1508796000000,\"open\":0.16292,\"high\":0.1675,\"low\":0.16182,\"close\":0.164,\"volume\":807403.1018157998,\"close_time\":1508803132515,\"vwap\":0.2054612139085862,\"ema1\":0.16910424498411653,\"sma1\":0.19472201435185188,\"sma2\":0.17501649999999996,\"rsi_avg_gain\":0.000500615550279862,\"rsi_avg_loss\":0.0008404664657186823,\"rsi\":37},{\"period_id\":\"120m209554\",\"size\":\"120m\",\"time\":1508788800000,\"open\":0.1625,\"high\":0.16426,\"low\":0.16121,\"close\":0.16234,\"volume\":1314971.7257595595,\"close_time\":1508795898047,\"vwap\":0.20551195886394408,\"ema1\":0.16945626187957283,\"sma1\":0.19523812546296299,\"sma2\":0.17539533333333332,\"rsi_avg_gain\":0.000411432131070621,\"rsi_avg_loss\":0.000905117732312427,\"rsi\":31},{\"period_id\":\"120m209553\",\"size\":\"120m\",\"time\":1508781600000,\"open\":0.16131,\"high\":0.16298,\"low\":0.16,\"close\":0.1625,\"volume\":1229418.5161516913,\"close_time\":1508788795861,\"vwap\":0.20570598059217834,\"ema1\":0.16994703856092266,\"sma1\":0.19576608842592597,\"sma2\":0.1756808333333333,\"rsi_avg_gain\":0.0004430807565375918,\"rsi_avg_loss\":0.0009624344809518449,\"rsi\":32},{\"period_id\":\"120m209552\",\"size\":\"120m\",\"time\":1508774400000,\"open\":0.16147,\"high\":0.162,\"low\":0.16,\"close\":0.1613,\"volume\":1277560.5058609694,\"close_time\":1508781568333,\"vwap\":0.2058927990180846,\"ema1\":0.1704606274271932,\"sma1\":0.1962793291666667,\"sma2\":0.1760008333333333,\"rsi_avg_gain\":0.0003848561993481752,\"rsi_avg_loss\":0.0010364679025635253,\"rsi\":27},{\"period_id\":\"120m209551\",\"size\":\"120m\",\"time\":1508767200000,\"open\":0.16191,\"high\":0.16275,\"low\":0.16,\"close\":0.161,\"volume\":1546121.7464910003,\"close_time\":1508774327749,\"vwap\":0.20609870814649245,\"ema1\":0.17109239483596514,\"sma1\":0.196790625462963,\"sma2\":0.17646749999999997,\"rsi_avg_gain\":0.0003913835992980352,\"rsi_avg_loss\":0.0011161962027607195,\"rsi\":26},{\"period_id\":\"120m209550\",\"size\":\"120m\",\"time\":1508760000000,\"open\":0.16606,\"high\":0.16606,\"low\":0.16034,\"close\":0.16196,\"volume\":1831406.5661778909,\"close_time\":1508767191577,\"vwap\":0.2064265148159834,\"ema1\":0.1717884220660317,\"sma1\":0.1972896069444445,\"sma2\":0.17690150000000002,\"rsi_avg_gain\":0.0004214900300132687,\"rsi_avg_loss\":0.0011282112952807758,\"rsi\":27},{\"period_id\":\"120m209549\",\"size\":\"120m\",\"time\":1508752800000,\"open\":0.16547,\"high\":0.16717,\"low\":0.165,\"close\":0.16503,\"volume\":1181269.23281257,\"close_time\":1508759985903,\"vwap\":0.2067569329307468,\"ema1\":0.17246624427748217,\"sma1\":0.19780469953703705,\"sma2\":0.17738233333333334,\"rsi_avg_gain\":0.00045391234001428935,\"rsi_avg_loss\":0.0009788429333792957,\"rsi\":32},{\"period_id\":\"120m209548\",\"size\":\"120m\",\"time\":1508745600000,\"open\":0.16604,\"high\":0.16744,\"low\":0.165,\"close\":0.16595,\"volume\":2203820.4107049895,\"close_time\":1508752793340,\"vwap\":0.2069336963155603,\"ema1\":0.17297908871041198,\"sma1\":0.19832636620370378,\"sma2\":0.1778451666666667,\"rsi_avg_gain\":0.0004888286738615424,\"rsi_avg_loss\":0.0009833693128700124,\"rsi\":33},{\"period_id\":\"120m209547\",\"size\":\"120m\",\"time\":1508738400000,\"open\":0.169,\"high\":0.16902,\"low\":0.165,\"close\":0.16603,\"volume\":1644274.9669853388,\"close_time\":1508745581675,\"vwap\":0.20741177040060654,\"ema1\":0.1734638534490611,\"sma1\":0.1987886810185186,\"sma2\":0.17827800000000002,\"rsi_avg_gain\":0.0005264308795431995,\"rsi_avg_loss\":0.0010528592600138576,\"rsi\":33},{\"period_id\":\"120m209546\",\"size\":\"120m\",\"time\":1508731200000,\"open\":0.17068,\"high\":0.17076,\"low\":0.169,\"close\":0.16911,\"volume\":319551.91773119004,\"close_time\":1508738356463,\"vwap\":0.20770257525877175,\"ema1\":0.1739765329972722,\"sma1\":0.19927849583333337,\"sma2\":0.17875950000000002,\"rsi_avg_gain\":0.000566925562584984,\"rsi_avg_loss\":0.0008969253569380006,\"rsi\":39},{\"period_id\":\"120m209545\",\"size\":\"120m\",\"time\":1508724000000,\"open\":0.1708,\"high\":0.17086,\"low\":0.17003,\"close\":0.17043,\"volume\":87114,\"close_time\":1508730294918,\"vwap\":0.20771057747524266,\"ema1\":0.1743121559626013,\"sma1\":0.19976868101851858,\"sma2\":0.17916900000000002,\"rsi_avg_gain\":0.0006105352212453675,\"rsi_avg_loss\":0.00086438115362554,\"rsi\":41},{\"period_id\":\"120m209544\",\"size\":\"120m\",\"time\":1508716800000,\"open\":0.17162,\"high\":0.17162,\"low\":0.1707,\"close\":0.17082,\"volume\":115057.60277177,\"close_time\":1508723544199,\"vwap\":0.20771112886853296,\"ema1\":0.1745798908565738,\"sma1\":0.20022951435185188,\"sma2\":0.1796456666666667,\"rsi_avg_gain\":0.0006574994690334726,\"rsi_avg_loss\":0.0009008720115967352,\"rsi\":42},{\"period_id\":\"120m209543\",\"size\":\"120m\",\"time\":1508709600000,\"open\":0.1705,\"high\":0.172,\"low\":0.17017,\"close\":0.17076,\"volume\":97633.11608365999,\"close_time\":1508716762892,\"vwap\":0.20771189743265728,\"ema1\":0.17483919367426853,\"sma1\":0.2006646995370371,\"sma2\":0.18004133333333336,\"rsi_avg_gain\":0.0007034609666514317,\"rsi_avg_loss\":0.0009701698586426379,\"rsi\":42},{\"period_id\":\"120m209542\",\"size\":\"120m\",\"time\":1508702400000,\"open\":0.17,\"high\":0.17174755,\"low\":0.16966,\"close\":0.17126,\"volume\":279349.66166889,\"close_time\":1508709197711,\"vwap\":0.20771349503229694,\"ema1\":0.17512051737594223,\"sma1\":0.2010894444444445,\"sma2\":0.18033200000000002,\"rsi_avg_gain\":0.0007575733487015418,\"rsi_avg_loss\":0.0010063367708459177,\"rsi\":43},{\"period_id\":\"120m209541\",\"size\":\"120m\",\"time\":1508695200000,\"open\":0.171,\"high\":0.172,\"low\":0.1698,\"close\":0.17,\"volume\":534286.93589556,\"close_time\":1508702389820,\"vwap\":0.2077182830505467,\"ema1\":0.1753867599535934,\"sma1\":0.20157314814814822,\"sma2\":0.18085700000000002,\"rsi_avg_gain\":0.0007189251447555079,\"rsi_avg_loss\":0.0010837472916802192,\"rsi\":40},{\"period_id\":\"120m209540\",\"size\":\"120m\",\"time\":1508688000000,\"open\":0.1724,\"high\":0.1724,\"low\":0.171,\"close\":0.17126,\"volume\":149310.91431348005,\"close_time\":1508694856926,\"vwap\":0.20774756094569785,\"ema1\":0.17575826064004813,\"sma2\":0.1814685,\"rsi_avg_gain\":0.0007742270789674701,\"rsi_avg_loss\":0.0010701893910402373,\"rsi\":42},{\"period_id\":\"120m209539\",\"size\":\"120m\",\"time\":1508680800000,\"open\":0.1723,\"high\":0.17481,\"low\":0.17121,\"close\":0.1724,\"volume\":597489.0677834799,\"close_time\":1508687927557,\"vwap\":0.20775205057384893,\"ema1\":0.1760684855117756,\"sma2\":0.18213633333333334,\"rsi_avg_gain\":0.0008337830081188139,\"rsi_avg_loss\":0.0010648193441971786,\"rsi\":44},{\"period_id\":\"120m209538\",\"size\":\"120m\",\"time\":1508673600000,\"open\":0.17057,\"high\":0.17274,\"low\":0.16958,\"close\":0.17226,\"volume\":357371.2148454699,\"close_time\":1508680784545,\"vwap\":0.2077843569669789,\"ema1\":0.1763214845125877,\"sma2\":0.1828766666666667,\"rsi_avg_gain\":0.0008871509318202611,\"rsi_avg_loss\":0.0011467285245200384,\"rsi\":44},{\"period_id\":\"120m209537\",\"size\":\"120m\",\"time\":1508666400000,\"open\":0.17146,\"high\":0.17149,\"low\":0.168,\"close\":0.16957,\"volume\":718263.7104258008,\"close_time\":1508673584125,\"vwap\":0.20779917265203093,\"ema1\":0.17660158689276617,\"sma2\":0.18363383333333336,\"rsi_avg_gain\":0.0007484702342679736,\"rsi_avg_loss\":0.0012349384110215797,\"rsi\":38},{\"period_id\":\"120m209536\",\"size\":\"120m\",\"time\":1508659200000,\"open\":0.17333,\"high\":0.17451,\"low\":0.16901,\"close\":0.17146,\"volume\":777359.1669491098,\"close_time\":1508666395877,\"vwap\":0.20785834741136597,\"ema1\":0.1770865239198535,\"sma2\":0.18446883333333336,\"rsi_avg_gain\":0.0008060448676732024,\"rsi_avg_loss\":0.0011845490580232394,\"rsi\":40},{\"period_id\":\"120m209535\",\"size\":\"120m\",\"time\":1508652000000,\"open\":0.173,\"high\":0.17549,\"low\":0.17237,\"close\":0.17407,\"volume\":368189.59224220994,\"close_time\":1508659091496,\"vwap\":0.20790633375226825,\"ema1\":0.17747456005225717,\"sma2\":0.185208,\"rsi_avg_gain\":0.0008680483190326796,\"rsi_avg_loss\":0.0010748989855634886,\"rsi\":45},{\"period_id\":\"120m209534\",\"size\":\"120m\",\"time\":1508644800000,\"open\":0.17198,\"high\":0.17389,\"low\":0.17066,\"close\":0.17357,\"volume\":259884.95235785996,\"close_time\":1508651645538,\"vwap\":0.2079210989935689,\"ema1\":0.17770935729724044,\"sma2\":0.185956,\"rsi_avg_gain\":0.0008963597281890396,\"rsi_avg_loss\":0.0011575835229145261,\"rsi\":44},{\"period_id\":\"120m209533\",\"size\":\"120m\",\"time\":1508637600000,\"open\":0.17799,\"high\":0.17807,\"low\":0.1715,\"close\":0.17189,\"volume\":233140.33999584996,\"close_time\":1508644438052,\"vwap\":0.20792631472312403,\"ema1\":0.1779948302142915,\"sma2\":0.18673033333333333,\"rsi_avg_gain\":0.000836079707280503,\"rsi_avg_loss\":0.0012466284092925667,\"rsi\":40},{\"period_id\":\"120m209532\",\"size\":\"120m\",\"time\":1508630400000,\"open\":0.17794,\"high\":0.1799,\"low\":0.17573,\"close\":0.17795,\"volume\":324073.30858867,\"close_time\":1508637572755,\"vwap\":0.20793921877436125,\"ema1\":0.17841585298769091,\"sma2\":0.18743116666666668,\"rsi_avg_gain\":0.0009003935309174648,\"rsi_avg_loss\":0.0008763690561612251,\"rsi\":51},{\"period_id\":\"120m209531\",\"size\":\"120m\",\"time\":1508623200000,\"open\":0.17182,\"high\":0.178,\"low\":0.17131,\"close\":0.178,\"volume\":579369.1544701199,\"close_time\":1508630360880,\"vwap\":0.20795044253314418,\"ema1\":0.17844798077994548,\"sma2\":0.188096,\"rsi_avg_gain\":0.0009696545717572698,\"rsi_avg_loss\":0.0009399359066351658,\"rsi\":51},{\"period_id\":\"120m209530\",\"size\":\"120m\",\"time\":1508616000000,\"open\":0.17,\"high\":0.173,\"low\":0.16948,\"close\":0.172,\"volume\":437613.7920166499,\"close_time\":1508623105179,\"vwap\":0.2079980490061735,\"ema1\":0.17847887600614862,\"sma2\":0.18881266666666668,\"rsi_avg_gain\":0.0005827049234309055,\"rsi_avg_loss\":0.0010122386686840248,\"rsi\":37},{\"period_id\":\"120m209529\",\"size\":\"120m\",\"time\":1508608800000,\"open\":0.171,\"high\":0.17269,\"low\":0.17,\"close\":0.17045,\"volume\":521011.0137024398,\"close_time\":1508615996024,\"vwap\":0.208021623861809,\"ema1\":0.17892569504105543,\"sma2\":0.18962850000000003,\"rsi_avg_gain\":0.0005082976098486679,\"rsi_avg_loss\":0.001090103181659719,\"rsi\":32},{\"period_id\":\"120m209528\",\"size\":\"120m\",\"time\":1508601600000,\"open\":0.17174,\"high\":0.17204,\"low\":0.168,\"close\":0.1709,\"volume\":676697.5788278899,\"close_time\":1508608747958,\"vwap\":0.20805482921141447,\"ema1\":0.17951022573354203,\"sma2\":0.19065016666666673,\"rsi_avg_gain\":0.0005473974259908731,\"rsi_avg_loss\":0.0011393418879412354,\"rsi\":32},{\"period_id\":\"120m209527\",\"size\":\"120m\",\"time\":1508594400000,\"open\":0.17297,\"high\":0.17459,\"low\":0.1709,\"close\":0.17198,\"volume\":648114.2900651698,\"close_time\":1508601565921,\"vwap\":0.20811672757633803,\"ema1\":0.18010403440482078,\"sma2\":0.19176050000000003,\"rsi_avg_gain\":0.0005895049202978633,\"rsi_avg_loss\":0.0011439066485521,\"rsi\":34},{\"period_id\":\"120m209526\",\"size\":\"120m\",\"time\":1508587200000,\"open\":0.172,\"high\":0.17328,\"low\":0.16928,\"close\":0.173,\"volume\":2639942.211716732,\"close_time\":1508594339385,\"vwap\":0.20816416003055815,\"ema1\":0.180664312639636,\"sma2\":0.19300483333333335,\"rsi_avg_gain\":0.0006348514526284682,\"rsi_avg_loss\":0.0011534379292099544,\"rsi\":36},{\"period_id\":\"120m209525\",\"size\":\"120m\",\"time\":1508580000000,\"open\":0.17203,\"high\":0.173,\"low\":0.171,\"close\":0.172,\"volume\":729710.4042586304,\"close_time\":1508587194952,\"vwap\":0.20879672136311514,\"ema1\":0.18119288592512814,\"sma2\":0.19406316666666668,\"rsi_avg_gain\":0.000606763102830658,\"rsi_avg_loss\":0.0012421639237645663,\"rsi\":33},{\"period_id\":\"120m209524\",\"size\":\"120m\",\"time\":1508572800000,\"open\":0.17382,\"high\":0.174,\"low\":0.172,\"close\":0.17203,\"volume\":599489.1881081001,\"close_time\":1508579993090,\"vwap\":0.20885150126024185,\"ema1\":0.1818268780578956,\"sma2\":0.195087,\"rsi_avg_gain\":0.0006534371876637856,\"rsi_avg_loss\":0.0013354073025156866,\"rsi\":33},{\"period_id\":\"120m209523\",\"size\":\"120m\",\"time\":1508565600000,\"open\":0.174,\"high\":0.17489,\"low\":0.17141,\"close\":0.17388,\"volume\":803000.1573551196,\"close_time\":1508572738039,\"vwap\":0.20889325232116912,\"ema1\":0.1825025248205091,\"sma2\":0.1961053333333334,\"rsi_avg_gain\":0.0007037015867148461,\"rsi_avg_loss\":0.0012958232488630456,\"rsi\":35},{\"period_id\":\"120m209522\",\"size\":\"120m\",\"time\":1508558400000,\"open\":0.17331,\"high\":0.17482,\"low\":0.17153,\"close\":0.17398,\"volume\":328946.48005890014,\"close_time\":1508565586485,\"vwap\":0.2089504898704653,\"ema1\":0.18309718170468214,\"sma2\":0.19690200000000008,\"rsi_avg_gain\":0.0007578324780006036,\"rsi_avg_loss\":0.001387809652621742,\"rsi\":35},{\"period_id\":\"120m209521\",\"size\":\"120m\",\"time\":1508551200000,\"open\":0.175,\"high\":0.17588,\"low\":0.173,\"close\":0.173,\"volume\":369652.91754784994,\"close_time\":1508558005497,\"vwap\":0.20896640526325452,\"ema1\":0.18372595285672919,\"sma2\":0.19768533333333338,\"rsi_avg_gain\":0.000740742668616034,\"rsi_avg_loss\":0.001494564241284953,\"rsi\":33},{\"period_id\":\"120m209520\",\"size\":\"120m\",\"time\":1508544000000,\"open\":0.17635,\"high\":0.17802,\"low\":0.17464,\"close\":0.17535,\"volume\":470922.95569517004,\"close_time\":1508551167572,\"vwap\":0.2089815633692523,\"ema1\":0.18446567374340017,\"sma2\":0.1984418333333334,\"rsi_avg_gain\":0.0007977228738941905,\"rsi_avg_loss\":0.0014287614906145635,\"rsi\":36},{\"period_id\":\"120m209519\",\"size\":\"120m\",\"time\":1508536800000,\"open\":0.176,\"high\":0.17769,\"low\":0.1746,\"close\":0.17651,\"volume\":1082256.3462099694,\"close_time\":1508543841892,\"vwap\":0.20899869483288816,\"ema1\":0.18509434089811744,\"sma2\":0.19921666666666674,\"rsi_avg_gain\":0.0008590861718860513,\"rsi_avg_loss\":0.0014494354514310687,\"rsi\":37},{\"period_id\":\"120m209518\",\"size\":\"120m\",\"time\":1508529600000,\"open\":0.177,\"high\":0.1783,\"low\":0.175,\"close\":0.176,\"volume\":2969300.322570631,\"close_time\":1508536792880,\"vwap\":0.20910323949964277,\"ema1\":0.18568636440833244,\"sma2\":0.20000683333333338,\"rsi_avg_gain\":0.0008859389543388236,\"rsi_avg_loss\":0.0015609304861565357,\"rsi\":36},{\"period_id\":\"120m209517\",\"size\":\"120m\",\"time\":1508522400000,\"open\":0.1785,\"high\":0.17999,\"low\":0.1771,\"close\":0.17758,\"volume\":913124.6028473194,\"close_time\":1508529579456,\"vwap\":0.20950671691839057,\"ema1\":0.18635438953994157,\"sma2\":0.20077866666666674,\"rsi_avg_gain\":0.0009540881046725794,\"rsi_avg_loss\":0.0015594636004762695,\"rsi\":38},{\"period_id\":\"120m209516\",\"size\":\"120m\",\"time\":1508515200000,\"open\":0.1805,\"high\":0.1805,\"low\":0.1765,\"close\":0.17869,\"volume\":854731.4552997001,\"close_time\":1508522351206,\"vwap\":0.2096003809263363,\"ema1\":0.186959519853041,\"sma2\":0.20156716666666677,\"rsi_avg_gain\":0.0010274794973397009,\"rsi_avg_loss\":0.0015940377235898287,\"rsi\":39},{\"period_id\":\"120m209515\",\"size\":\"120m\",\"time\":1508508000000,\"open\":0.18251,\"high\":0.18389,\"low\":0.1754,\"close\":0.1805,\"volume\":2255473.1624895213,\"close_time\":1508515181054,\"vwap\":0.2096669958042432,\"ema1\":0.1875298315670438,\"sma2\":0.2022330000000001,\"rsi_avg_gain\":0.001106516381750447,\"rsi_avg_loss\":0.0015774252407890457,\"rsi\":41},{\"period_id\":\"120m209514\",\"size\":\"120m\",\"time\":1508500800000,\"open\":0.1827,\"high\":0.1845,\"low\":0.182,\"close\":0.18389,\"volume\":741604.6409471899,\"close_time\":1508507951218,\"vwap\":0.2099741218663476,\"ema1\":0.18801464753718475,\"sma2\":0.20273350000000007,\"rsi_avg_gain\":0.0011916330265004816,\"rsi_avg_loss\":0.0014379964131574336,\"rsi\":45},{\"period_id\":\"120m209513\",\"size\":\"120m\",\"time\":1508493600000,\"open\":0.18325,\"high\":0.18495,\"low\":0.18194,\"close\":0.1845,\"volume\":672749.5059062601,\"close_time\":1508500751369,\"vwap\":0.2100175010697603,\"ema1\":0.18829910598802507,\"sma2\":0.2032285,\"rsi_avg_gain\":0.0012832971054620571,\"rsi_avg_loss\":0.0015016884449387746,\"rsi\":46},{\"period_id\":\"120m209512\",\"size\":\"120m\",\"time\":1508486400000,\"open\":0.18398,\"high\":0.18511,\"low\":0.1825,\"close\":0.18367,\"volume\":750380.9981659299,\"close_time\":1508493594948,\"vwap\":0.21005826379656695,\"ema1\":0.18856111329754405,\"sma2\":0.20373400000000003,\"rsi_avg_gain\":0.0013181661135745234,\"rsi_avg_loss\":0.0016172029407032957,\"rsi\":45},{\"period_id\":\"120m209511\",\"size\":\"120m\",\"time\":1508479200000,\"open\":0.18556,\"high\":0.18691,\"low\":0.1833,\"close\":0.18399,\"volume\":934216.4546398703,\"close_time\":1508486356945,\"vwap\":0.21010745802100086,\"ema1\":0.18889843145599536,\"sma2\":0.2042835000000001,\"rsi_avg_gain\":0.0014195635069264097,\"rsi_avg_loss\":0.0017169877822958578,\"rsi\":45},{\"period_id\":\"120m209510\",\"size\":\"120m\",\"time\":1508472000000,\"open\":0.18476,\"high\":0.18958,\"low\":0.18476,\"close\":0.1855,\"volume\":854452.3424677192,\"close_time\":1508479192400,\"vwap\":0.21017417759358034,\"ema1\":0.18923694397020194,\"sma2\":0.20478850000000007,\"rsi_avg_gain\":0.0015287606997669027,\"rsi_avg_loss\":0.0017329099193955381,\"rsi\":47},{\"period_id\":\"120m209509\",\"size\":\"120m\",\"time\":1508464800000,\"open\":0.18316,\"high\":0.18462,\"low\":0.18193,\"close\":0.18462,\"volume\":229724.49574185,\"close_time\":1508471909974,\"vwap\":0.21021987350249022,\"ema1\":0.18949466424400896,\"sma2\":0.2053445,\"rsi_avg_gain\":0.0015786653689797419,\"rsi_avg_loss\":0.0018662106824259641,\"rsi\":46},{\"period_id\":\"120m209508\",\"size\":\"120m\",\"time\":1508457600000,\"open\":0.18186,\"high\":0.1832,\"low\":0.17975,\"close\":0.18316,\"volume\":430995.58608996,\"close_time\":1508464770516,\"vwap\":0.21022426656583795,\"ema1\":0.1898308479849751,\"sma2\":0.2058828333333334,\"rsi_avg_gain\":0.0015877934742858744,\"rsi_avg_loss\":0.0020097653503048842,\"rsi\":44},{\"period_id\":\"120m209507\",\"size\":\"120m\",\"time\":1508450400000,\"open\":0.18245,\"high\":0.18349,\"low\":0.18,\"close\":0.18236,\"volume\":266705.26839337003,\"close_time\":1508457396244,\"vwap\":0.21023722266938602,\"ema1\":0.19029090646669752,\"sma2\":0.20643350000000005,\"rsi_avg_gain\":0.001648392972307865,\"rsi_avg_loss\":0.0021643626849437215,\"rsi\":43},{\"period_id\":\"120m209506\",\"size\":\"120m\",\"time\":1508443200000,\"open\":0.18448,\"high\":0.1848,\"low\":0.18011,\"close\":0.1821,\"volume\":694507.9420249896,\"close_time\":1508450386343,\"vwap\":0.21024780809264842,\"ema1\":0.19083786553336632,\"sma2\":0.2070623333333334,\"rsi_avg_gain\":0.0017551924317161635,\"rsi_avg_loss\":0.002330852122247085,\"rsi\":43},{\"period_id\":\"120m209505\",\"size\":\"120m\",\"time\":1508436000000,\"open\":0.1825,\"high\":0.1855,\"low\":0.181,\"close\":0.18457,\"volume\":949255.9928773206,\"close_time\":1508443191375,\"vwap\":0.21029199930764017,\"ema1\":0.19144047694946054,\"sma2\":0.20762316666666672,\"rsi_avg_gain\":0.0018902072341558684,\"rsi_avg_loss\":0.0023201484393430144,\"rsi\":45},{\"period_id\":\"120m209504\",\"size\":\"120m\",\"time\":1508428800000,\"open\":0.191,\"high\":0.1944,\"low\":0.1821,\"close\":0.18245,\"volume\":2695444.7140950765,\"close_time\":1508435969412,\"vwap\":0.21038296350834307,\"ema1\":0.19191430294597506,\"sma2\":0.20817400000000008,\"rsi_avg_gain\":0.0018725308675524729,\"rsi_avg_loss\":0.0024986213962155538,\"rsi\":43},{\"period_id\":\"120m209503\",\"size\":\"120m\",\"time\":1508421600000,\"open\":0.17647,\"high\":0.195,\"low\":0.175,\"close\":0.192,\"volume\":3989608.8784541055,\"close_time\":1508428794391,\"vwap\":0.21081720334306853,\"ema1\":0.19256701349397334,\"sma2\":0.20857266666666677,\"rsi_avg_gain\":0.0020165717035180476,\"rsi_avg_loss\":0.0019562076574629037,\"rsi\":51},{\"period_id\":\"120m209502\",\"size\":\"120m\",\"time\":1508414400000,\"open\":0.1781,\"high\":0.17949,\"low\":0.1764,\"close\":0.17647,\"volume\":1041090.1481537899,\"close_time\":1508421587204,\"vwap\":0.21173114904422452,\"ema1\":0.19260611787286805,\"sma2\":0.20924816666666676,\"rsi_avg_gain\":0.0009770772191732807,\"rsi_avg_loss\":0.0021066851695754345,\"rsi\":32},{\"period_id\":\"120m209501\",\"size\":\"120m\",\"time\":1508407200000,\"open\":0.17791,\"high\":0.17965,\"low\":0.1752,\"close\":0.1781,\"volume\":1684302.6253727605,\"close_time\":1508414397667,\"vwap\":0.2118735636316991,\"ema1\":0.19371895358823826,\"sma2\":0.20992083333333342,\"rsi_avg_gain\":0.001052237005263533,\"rsi_avg_loss\":0.002143353259542774,\"rsi\":33},{\"period_id\":\"120m209500\",\"size\":\"120m\",\"time\":1508400000000,\"open\":0.17884,\"high\":0.18121,\"low\":0.17727,\"close\":0.17791,\"volume\":1148991.7105682401,\"close_time\":1508407195358,\"vwap\":0.21216550873563084,\"ema1\":0.19479612280122022,\"sma2\":0.21065433333333342,\"rsi_avg_gain\":0.0011185629287453435,\"rsi_avg_loss\":0.0023082265871999107,\"rsi\":33},{\"period_id\":\"120m209499\",\"size\":\"120m\",\"time\":1508392800000,\"open\":0.1826,\"high\":0.18468,\"low\":0.17801,\"close\":0.17884,\"volume\":1068540.03475697,\"close_time\":1508399998814,\"vwap\":0.212323699943191,\"ema1\":0.1959606829944078,\"sma2\":0.21129866666666672,\"rsi_avg_gain\":0.0012046062309565239,\"rsi_avg_loss\":0.0024142440169845204,\"rsi\":33},{\"period_id\":\"120m209498\",\"size\":\"120m\",\"time\":1508385600000,\"open\":0.17834,\"high\":0.18343,\"low\":0.1763,\"close\":0.1815,\"volume\":1083815.3835733393,\"close_time\":1508392791657,\"vwap\":0.21244180873039173,\"ema1\":0.19714141975264282,\"sma2\":0.21190716666666673,\"rsi_avg_gain\":0.0012972682487224104,\"rsi_avg_loss\":0.0023953397105987147,\"rsi\":35},{\"period_id\":\"120m209497\",\"size\":\"120m\",\"time\":1508378400000,\"open\":0.1835,\"high\":0.18533,\"low\":0.17843,\"close\":0.17885,\"volume\":555617.9518499903,\"close_time\":1508385595765,\"vwap\":0.21253101498492213,\"ema1\":0.19822013835627336,\"sma2\":0.2126013333333334,\"rsi_avg_gain\":0.0011932119601625968,\"rsi_avg_loss\":0.0025795966114140006,\"rsi\":32},{\"period_id\":\"120m209496\",\"size\":\"120m\",\"time\":1508371200000,\"open\":0.18414,\"high\":0.18592,\"low\":0.18112,\"close\":0.18259,\"volume\":481808.72188413964,\"close_time\":1508378329705,\"vwap\":0.2125615045003797,\"ema1\":0.19955600996705083,\"sma2\":0.2132453333333334,\"rsi_avg_gain\":0.0012849974955597195,\"rsi_avg_loss\":0.0024903348122920013,\"rsi\":34},{\"period_id\":\"120m209495\",\"size\":\"120m\",\"time\":1508364000000,\"open\":0.185,\"high\":0.18809,\"low\":0.1836,\"close\":0.18515,\"volume\":1333017.9636087907,\"close_time\":1508371192259,\"vwap\":0.21257644919422236,\"ema1\":0.2007260796199509,\"sma2\":0.21378633333333338,\"rsi_avg_gain\":0.001383843456756621,\"rsi_avg_loss\":0.0024849759516990776,\"rsi\":36},{\"period_id\":\"120m209494\",\"size\":\"120m\",\"time\":1508356800000,\"open\":0.17963,\"high\":0.18522,\"low\":0.17531,\"close\":0.18507,\"volume\":2839118.2283753585,\"close_time\":1508363988420,\"vwap\":0.21270157792306438,\"ema1\":0.20180029200753372,\"sma2\":0.21429333333333342,\"rsi_avg_gain\":0.0014841391072763614,\"rsi_avg_loss\":0.002676127947983622,\"rsi\":36},{\"period_id\":\"120m209493\",\"size\":\"120m\",\"time\":1508349600000,\"open\":0.1817,\"high\":0.18195,\"low\":0.17057,\"close\":0.17963,\"volume\":4148635.5413661683,\"close_time\":1508356790881,\"vwap\":0.21329958399227164,\"ema1\":0.20295410524943258,\"sma2\":0.21491200000000005,\"rsi_avg_gain\":0.0011798421155283891,\"rsi_avg_loss\":0.002881983943982362,\"rsi\":29},{\"period_id\":\"120m209492\",\"size\":\"120m\",\"time\":1508342400000,\"open\":0.189,\"high\":0.18988,\"low\":0.18,\"close\":0.1805,\"volume\":2751641.340932761,\"close_time\":1508349586855,\"vwap\":0.2153139776232189,\"ema1\":0.20456266423215208,\"rsi_avg_gain\":0.0012705992013382651,\"rsi_avg_loss\":0.0030367519396733147,\"rsi\":29},{\"period_id\":\"120m209491\",\"size\":\"120m\",\"time\":1508335200000,\"open\":0.1888,\"high\":0.18988,\"low\":0.1853,\"close\":0.189,\"volume\":1497489.5640848696,\"close_time\":1508342398064,\"vwap\":0.2162928061401462,\"ema1\":0.2062221583171281,\"rsi_avg_gain\":0.0013683376014412088,\"rsi_avg_loss\":0.0026165020888789534,\"rsi\":34},{\"period_id\":\"120m209490\",\"size\":\"120m\",\"time\":1508328000000,\"open\":0.193,\"high\":0.19561,\"low\":0.188,\"close\":0.188,\"volume\":1372659.4788467903,\"close_time\":1508335190916,\"vwap\":0.21654922450637698,\"ema1\":0.20740989337348176,\"rsi_avg_gain\":0.0013966712630905326,\"rsi_avg_loss\":0.002817771480331181,\"rsi\":33},{\"period_id\":\"120m209489\",\"size\":\"120m\",\"time\":1508320800000,\"open\":0.19372,\"high\":0.19788,\"low\":0.19,\"close\":0.19388,\"volume\":1368834.8061775295,\"close_time\":1508327989073,\"vwap\":0.2167016895545658,\"ema1\":0.20874850670958395,\"rsi_avg_gain\":0.0015041075140974967,\"rsi_avg_loss\":0.0025822154403566566,\"rsi\":37},{\"period_id\":\"120m209488\",\"size\":\"120m\",\"time\":1508313600000,\"open\":0.1895,\"high\":0.19372,\"low\":0.18551,\"close\":0.19372,\"volume\":1762878.7035395007,\"close_time\":1508320794514,\"vwap\":0.21687779963355971,\"ema1\":0.20977392096541733,\"rsi_avg_gain\":0.0016075003997973048,\"rsi_avg_loss\":0.002780847397307169,\"rsi\":37},{\"period_id\":\"120m209487\",\"size\":\"120m\",\"time\":1508306400000,\"open\":0.19807,\"high\":0.19897,\"low\":0.18551,\"close\":0.192,\"volume\":1783411.5423043596,\"close_time\":1508313540957,\"vwap\":0.21715219560518592,\"ema1\":0.21088108792854957,\"rsi_avg_gain\":0.0015988465843970977,\"rsi_avg_loss\":0.0029947587355615662,\"rsi\":35},{\"period_id\":\"120m209486\",\"size\":\"120m\",\"time\":1508299200000,\"open\":0.19455,\"high\":0.20078,\"low\":0.19428,\"close\":0.198,\"volume\":1296323.113122249,\"close_time\":1508306398847,\"vwap\":0.2174810428122215,\"ema1\":0.21218323192362196,\"rsi_avg_gain\":0.0017218347831968743,\"rsi_avg_loss\":0.0027635863306047634,\"rsi\":38},{\"period_id\":\"120m209485\",\"size\":\"120m\",\"time\":1508292000000,\"open\":0.19707,\"high\":0.19925,\"low\":0.193,\"close\":0.195,\"volume\":376664.22766547016,\"close_time\":1508299009432,\"vwap\":0.21759135203835414,\"ema1\":0.21316138584938898,\"rsi_avg_gain\":0.001623514381904326,\"rsi_avg_loss\":0.0029761698944974374,\"rsi\":35},{\"period_id\":\"120m209484\",\"size\":\"120m\",\"time\":1508284800000,\"open\":0.19449,\"high\":0.19978,\"low\":0.19075,\"close\":0.19942,\"volume\":743392.9868329304,\"close_time\":1508291986653,\"vwap\":0.21760440402529752,\"ema1\":0.21441389521831236,\"rsi_avg_gain\":0.0017484001035892743,\"rsi_avg_loss\":0.002865106040228011,\"rsi\":38},{\"period_id\":\"120m209483\",\"size\":\"120m\",\"time\":1508277600000,\"open\":0.191,\"high\":0.19466,\"low\":0.1888,\"close\":0.1945,\"volume\":2467112.42037417,\"close_time\":1508284788370,\"vwap\":0.21763612569480645,\"ema1\":0.21544795695750632,\"rsi_avg_gain\":0.0015044308807884506,\"rsi_avg_loss\":0.003085498812553243,\"rsi\":33},{\"period_id\":\"120m209482\",\"size\":\"120m\",\"time\":1508270400000,\"open\":0.2015,\"high\":0.20462,\"low\":0.18501,\"close\":0.1887,\"volume\":8168424.322204548,\"close_time\":1508277590165,\"vwap\":0.21812069138297258,\"ema1\":0.2168926436442309,\"rsi_avg_gain\":0.0011740024870029468,\"rsi_avg_loss\":0.003322844875057339,\"rsi\":26},{\"period_id\":\"120m209481\",\"size\":\"120m\",\"time\":1508263200000,\"open\":0.20795,\"high\":0.20948,\"low\":0.198,\"close\":0.2015,\"volume\":4465280.972445613,\"close_time\":1508270392738,\"vwap\":0.2243191899736164,\"ema1\":0.21883696389555715,\"rsi_avg_gain\":0.001264310370618558,\"rsi_avg_loss\":0.0025938329423694415,\"rsi\":33},{\"period_id\":\"120m209480\",\"size\":\"120m\",\"time\":1508256000000,\"open\":0.21216,\"high\":0.213,\"low\":0.2,\"close\":0.20795,\"volume\":4123265.899420519,\"close_time\":1508263196262,\"vwap\":0.22617638289470327,\"ema1\":0.22003261657800938,\"rsi_avg_gain\":0.0013615650145122934,\"rsi_avg_loss\":0.002297204707167092,\"rsi\":37},{\"period_id\":\"120m209479\",\"size\":\"120m\",\"time\":1508248800000,\"open\":0.21667,\"high\":0.2185,\"low\":0.21126,\"close\":0.21247,\"volume\":1350323.3272897,\"close_time\":1508255977182,\"vwap\":0.22836984789904616,\"ema1\":0.22086590047994106,\"rsi_avg_gain\":0.001466300784859393,\"rsi_avg_loss\":0.002126220453872253,\"rsi\":41},{\"period_id\":\"120m209478\",\"size\":\"120m\",\"time\":1508241600000,\"open\":0.21483,\"high\":0.2207,\"low\":0.2145,\"close\":0.21668,\"volume\":1476930.5860650714,\"close_time\":1508248766827,\"vwap\":0.2285997596543402,\"ema1\":0.22144492809924735,\"rsi_avg_gain\":0.0015790931529255001,\"rsi_avg_loss\":0.0019659297195547326,\"rsi\":45},{\"period_id\":\"120m209477\",\"size\":\"120m\",\"time\":1508234400000,\"open\":0.2214,\"high\":0.2214,\"low\":0.21483,\"close\":0.215,\"volume\":1546725.3390792508,\"close_time\":1508241589452,\"vwap\":0.22884419931606237,\"ema1\":0.22177354383022993,\"rsi_avg_gain\":0.001571331087765922,\"rsi_avg_loss\":0.002117155082597404,\"rsi\":43},{\"period_id\":\"120m209476\",\"size\":\"120m\",\"time\":1508227200000,\"open\":0.21815,\"high\":0.22399,\"low\":0.2162,\"close\":0.22156,\"volume\":1788883.6854261511,\"close_time\":1508234398358,\"vwap\":0.22903652114210413,\"ema1\":0.22224068478403888,\"rsi_avg_gain\":0.0016922027099017622,\"rsi_avg_loss\":0.001775397781258742,\"rsi\":49},{\"period_id\":\"120m209475\",\"size\":\"120m\",\"time\":1508220000000,\"open\":0.21901,\"high\":0.22099,\"low\":0.215,\"close\":0.21842,\"volume\":1724554.0755199182,\"close_time\":1508227139321,\"vwap\":0.22922165390803506,\"ema1\":0.22228762856224846,\"rsi_avg_gain\":0.0015808336875865127,\"rsi_avg_loss\":0.0019119668413555683,\"rsi\":45},{\"period_id\":\"120m209474\",\"size\":\"120m\",\"time\":1508212800000,\"open\":0.218,\"high\":0.22398,\"low\":0.218,\"close\":0.21845,\"volume\":604386.24432186,\"close_time\":1508219872202,\"vwap\":0.2294036900879039,\"ema1\":0.22255436156654146,\"rsi_avg_gain\":0.0017024362789393214,\"rsi_avg_loss\":0.0020567335214598426,\"rsi\":45},{\"period_id\":\"120m209473\",\"size\":\"120m\",\"time\":1508205600000,\"open\":0.22012,\"high\":0.22135,\"low\":0.218,\"close\":0.21835,\"volume\":278872.58491949004,\"close_time\":1508212763910,\"vwap\":0.2294284497656808,\"ema1\":0.22283742098492362,\"rsi_avg_gain\":0.0018257006080884986,\"rsi_avg_loss\":0.0022149437923413688,\"rsi\":45},{\"period_id\":\"120m209472\",\"size\":\"120m\",\"time\":1508198400000,\"open\":0.2172,\"high\":0.22462,\"low\":0.2165,\"close\":0.22,\"volume\":526781.0521477099,\"close_time\":1508204356283,\"vwap\":0.2294365823674656,\"ema1\":0.2231468982942287,\"rsi_avg_gain\":0.0019661391164029983,\"rsi_avg_loss\":0.0022584010071368577,\"rsi\":47},{\"period_id\":\"120m209471\",\"size\":\"120m\",\"time\":1508191200000,\"open\":0.215,\"high\":0.2193,\"low\":0.21384,\"close\":0.21789,\"volume\":1527821.7633719281,\"close_time\":1508198371974,\"vwap\":0.22945316557214487,\"ema1\":0.2233639257627962,\"rsi_avg_gain\":0.0019550728945878443,\"rsi_avg_loss\":0.0024321241615320004,\"rsi\":45},{\"period_id\":\"120m209470\",\"size\":\"120m\",\"time\":1508184000000,\"open\":0.21977,\"high\":0.22632,\"low\":0.215,\"close\":0.215,\"volume\":3312468.6553416625,\"close_time\":1508191198043,\"vwap\":0.2296372445890184,\"ema1\":0.22374143788436834,\"rsi_avg_gain\":0.0018831554249407554,\"rsi_avg_loss\":0.0026192106354960003,\"rsi\":42},{\"period_id\":\"120m209469\",\"size\":\"120m\",\"time\":1508176800000,\"open\":0.2322,\"high\":0.23534,\"low\":0.215,\"close\":0.2194,\"volume\":7587043.2554451395,\"close_time\":1508183998207,\"vwap\":0.2303619331163362,\"ema1\":0.2243442956694972,\"rsi_avg_gain\":0.0020280135345515826,\"rsi_avg_loss\":0.0024822268382264606,\"rsi\":45},{\"period_id\":\"120m209468\",\"size\":\"120m\",\"time\":1508169600000,\"open\":0.23909,\"high\":0.24,\"low\":0.22711,\"close\":0.2322,\"volume\":5271921.541000183,\"close_time\":1508176794364,\"vwap\":0.23460081074966171,\"ema1\":0.2246852815777384,\"rsi_avg_gain\":0.002184014575670935,\"rsi_avg_loss\":0.0016885519796284974,\"rsi\":56},{\"period_id\":\"120m209467\",\"size\":\"120m\",\"time\":1508162400000,\"open\":0.2485,\"high\":0.2485,\"low\":0.2386,\"close\":0.2386,\"volume\":4005236.0432454455,\"close_time\":1508169595100,\"vwap\":0.23466414011320635,\"ema1\":0.2241670251348238,\"rsi_avg_gain\":0.0023520156968763915,\"rsi_avg_loss\":0.0013261329011383803,\"rsi\":64},{\"period_id\":\"120m209466\",\"size\":\"120m\",\"time\":1508155200000,\"open\":0.2355,\"high\":0.2499,\"low\":0.235,\"close\":0.24766,\"volume\":5009323.550827344,\"close_time\":1508162398862,\"vwap\":0.23263491622974544,\"ema1\":0.2231716475579151,\"rsi_avg_gain\":0.0025329399812514986,\"rsi_avg_loss\":0.0007312200473797956,\"rsi\":78},{\"period_id\":\"120m209465\",\"size\":\"120m\",\"time\":1508148000000,\"open\":0.2334,\"high\":0.237,\"low\":0.23101,\"close\":0.2355,\"volume\":1623158.6642044901,\"close_time\":1508155184120,\"vwap\":0.2270669880771553,\"ema1\":0.22148279566535753,\"rsi_avg_gain\":0.0017923969028862292,\"rsi_avg_loss\":0.0007874677433320875,\"rsi\":69},{\"period_id\":\"120m209464\",\"size\":\"120m\",\"time\":1508140800000,\"open\":0.23496,\"high\":0.235,\"low\":0.224,\"close\":0.23346,\"volume\":2284854.99099831,\"close_time\":1508147985967,\"vwap\":0.226515037006516,\"ema1\":0.2205160919181408,\"rsi_avg_gain\":0.0017733505108005556,\"rsi_avg_loss\":0.0008480421851268634,\"rsi\":68},{\"period_id\":\"120m209463\",\"size\":\"120m\",\"time\":1508133600000,\"open\":0.22176,\"high\":0.237,\"low\":0.22174,\"close\":0.23498,\"volume\":3742457.9514594693,\"close_time\":1508140777463,\"vwap\":0.22559778364303731,\"ema1\":0.21962340860215052,\"rsi_avg_gain\":0.0019097620885544443,\"rsi_avg_loss\":0.0007963531224443149,\"rsi\":71},{\"period_id\":\"120m209462\",\"size\":\"120m\",\"time\":1508126400000,\"open\":0.22,\"high\":0.225,\"low\":0.21921,\"close\":0.22178,\"volume\":491233.2354765498,\"close_time\":1508133596710,\"vwap\":0.22176359825105568,\"rsi_avg_gain\":0.0010412822492124796,\"rsi_avg_loss\":0.0008576110549400315,\"rsi\":55},{\"period_id\":\"120m209461\",\"size\":\"120m\",\"time\":1508119200000,\"open\":0.22154,\"high\":0.22179,\"low\":0.21931,\"close\":0.22,\"volume\":231878.15689234002,\"close_time\":1508126390334,\"vwap\":0.22175316010546167,\"rsi_avg_gain\":0.0009844578068442084,\"rsi_avg_loss\":0.0009235811360892647,\"rsi\":52},{\"period_id\":\"120m209460\",\"size\":\"120m\",\"time\":1508112000000,\"open\":0.22323,\"high\":0.22323,\"low\":0.2203,\"close\":0.22074,\"volume\":253917.69177766997,\"close_time\":1508119056912,\"vwap\":0.2217603046785566,\"rsi_avg_gain\":0.0010601853304476091,\"rsi_avg_loss\":0.0009377027619422857,\"rsi\":53},{\"period_id\":\"120m209459\",\"size\":\"120m\",\"time\":1508104800000,\"open\":0.2238,\"high\":0.2241,\"low\":0.22,\"close\":0.223,\"volume\":679377.8068433397,\"close_time\":1508111891597,\"vwap\":0.22176118564645014,\"rsi_avg_gain\":0.0011417380481743484,\"rsi_avg_loss\":0.0008359875897839991,\"rsi\":58},{\"period_id\":\"120m209458\",\"size\":\"120m\",\"time\":1508097600000,\"open\":0.2235,\"high\":0.2241,\"low\":0.222,\"close\":0.22341,\"volume\":879567.2457431995,\"close_time\":1508104786549,\"vwap\":0.22176445331587818,\"rsi_avg_gain\":0.0012295640518800676,\"rsi_avg_loss\":0.0008687558659212304,\"rsi\":59},{\"period_id\":\"120m209457\",\"size\":\"120m\",\"time\":1508090400000,\"open\":0.22601,\"high\":0.2285,\"low\":0.2235,\"close\":0.22389,\"volume\":2245693.797248608,\"close_time\":1508097595388,\"vwap\":0.2216932681743624,\"rsi_avg_gain\":0.0013241459020246881,\"rsi_avg_loss\":0.0008986601632997859,\"rsi\":60},{\"period_id\":\"120m209456\",\"size\":\"120m\",\"time\":1508083200000,\"open\":0.22045,\"high\":0.2269,\"low\":0.22011,\"close\":0.226,\"volume\":2726038.296152591,\"close_time\":1508090396748,\"vwap\":0.22042487468594213,\"rsi_avg_gain\":0.0014260032791035102,\"rsi_avg_loss\":0.0008054801758613078,\"rsi\":64},{\"period_id\":\"120m209455\",\"size\":\"120m\",\"time\":1508076000000,\"open\":0.21396,\"high\":0.221,\"low\":0.21354,\"close\":0.22045,\"volume\":1708637.0210549808,\"close_time\":1508083195777,\"vwap\":0.21691781748599892,\"rsi_avg_gain\":0.0011087727621114727,\"rsi_avg_loss\":0.0008674401893891007,\"rsi\":56},{\"period_id\":\"120m209454\",\"size\":\"120m\",\"time\":1508068800000,\"open\":0.21396,\"high\":0.21672,\"low\":0.21275,\"close\":0.21392,\"volume\":435710.61404684,\"close_time\":1508075872850,\"vwap\":0.21564518282418196,\"rsi_avg_gain\":0.000691755282273893,\"rsi_avg_loss\":0.0009341663578036469,\"rsi\":43},{\"period_id\":\"120m209453\",\"size\":\"120m\",\"time\":1508061600000,\"open\":0.214,\"high\":0.2142,\"low\":0.21012,\"close\":0.2142,\"volume\":850332.3362540897,\"close_time\":1508068743727,\"vwap\":0.21569695450698292,\"rsi_avg_gain\":0.0007449672270641925,\"rsi_avg_loss\":0.0009844868468654657,\"rsi\":43},{\"period_id\":\"120m209452\",\"size\":\"120m\",\"time\":1508054400000,\"open\":0.21693,\"high\":0.2188,\"low\":0.214,\"close\":0.214,\"volume\":607334.2370174906,\"close_time\":1508061599703,\"vwap\":0.21641235921183133,\"rsi_avg_gain\":0.0007868877829922069,\"rsi_avg_loss\":0.0010602166043166554,\"rsi\":43},{\"period_id\":\"120m209451\",\"size\":\"120m\",\"time\":1508047200000,\"open\":0.21579,\"high\":0.21797,\"low\":0.21503,\"close\":0.21696,\"volume\":394691.07658418996,\"close_time\":1508054359089,\"vwap\":0.21651449029006495,\"rsi_avg_gain\":0.0008474176124531459,\"rsi_avg_loss\":0.0009140794200333221,\"rsi\":48},{\"period_id\":\"120m209450\",\"size\":\"120m\",\"time\":1508040000000,\"open\":0.21822,\"high\":0.21883,\"low\":0.21504,\"close\":0.2158,\"volume\":171068.74766762997,\"close_time\":1508047123237,\"vwap\":0.21651061994146562,\"rsi_avg_gain\":0.0008233728134110806,\"rsi_avg_loss\":0.0009843932215743468,\"rsi\":46},{\"period_id\":\"120m209449\",\"size\":\"120m\",\"time\":1508032800000,\"open\":0.21515,\"high\":0.21987,\"low\":0.215,\"close\":0.21798,\"volume\":220571.05850644,\"close_time\":1508039650535,\"vwap\":0.21651320304654115,\"rsi_avg_gain\":0.0008867091836734714,\"rsi_avg_loss\":0.000892423469387757,\"rsi\":50},{\"period_id\":\"120m209448\",\"size\":\"120m\",\"time\":1508025600000,\"open\":0.21536,\"high\":0.22149,\"low\":0.21386,\"close\":0.21546,\"volume\":707964.3870707101,\"close_time\":1508032798119,\"vwap\":0.21650390032466355,\"rsi_avg_gain\":0.000761071428571431,\"rsi_avg_loss\":0.0009610714285714307,\"rsi\":44},{\"period_id\":\"120m209447\",\"size\":\"120m\",\"time\":1508018400000,\"open\":0.21973,\"high\":0.2205,\"low\":0.2154,\"close\":0.2154,\"volume\":838005.9117413496,\"close_time\":1508025538461,\"vwap\":0.2164420876813041,\"rsi_avg_gain\":0.0008150000000000022,\"rsi_avg_loss\":0.0010350000000000023,\"rsi\":44},{\"period_id\":\"120m209446\",\"size\":\"120m\",\"time\":1508011200000,\"open\":0.21822,\"high\":0.22,\"low\":0.21704,\"close\":0.21983,\"volume\":575111.9319556504,\"close_time\":1508018298035,\"vwap\":0.21639362339406273},{\"period_id\":\"120m209445\",\"size\":\"120m\",\"time\":1508004000000,\"open\":0.2155,\"high\":0.22,\"low\":0.21526,\"close\":0.21822,\"volume\":489996.45826562005,\"close_time\":1508010985727,\"vwap\":0.2157026313726763},{\"period_id\":\"120m209444\",\"size\":\"120m\",\"time\":1507996800000,\"open\":0.216,\"high\":0.21743,\"low\":0.212,\"close\":0.2155,\"volume\":1021218.8540847708,\"close_time\":1508003893718,\"vwap\":0.21517927310467588},{\"period_id\":\"120m209443\",\"size\":\"120m\",\"time\":1507989600000,\"open\":0.21681,\"high\":0.21797,\"low\":0.215,\"close\":0.21592,\"volume\":713933.1875201706,\"close_time\":1507996716287,\"vwap\":0.21576159824119892},{\"period_id\":\"120m209442\",\"size\":\"120m\",\"time\":1507982400000,\"open\":0.21846,\"high\":0.21995,\"low\":0.2161,\"close\":0.217,\"volume\":510351.39443468006,\"close_time\":1507989592659},{\"period_id\":\"120m209441\",\"size\":\"120m\",\"time\":1507975200000,\"open\":0.2218,\"high\":0.2228,\"low\":0.2158,\"close\":0.21846,\"volume\":713020.0319770401,\"close_time\":1507982378829},{\"period_id\":\"120m209440\",\"size\":\"120m\",\"time\":1507968000000,\"open\":0.2176,\"high\":0.22378,\"low\":0.21651,\"close\":0.22192,\"volume\":1198865.3822558406,\"close_time\":1507975185432},{\"period_id\":\"120m209439\",\"size\":\"120m\",\"time\":1507960800000,\"open\":0.218,\"high\":0.21895,\"low\":0.215,\"close\":0.2175,\"volume\":647635.7473931103,\"close_time\":1507967986898},{\"period_id\":\"120m209438\",\"size\":\"120m\",\"time\":1507953600000,\"open\":0.21942,\"high\":0.22366,\"low\":0.21801,\"close\":0.21801,\"volume\":153208.56479699002,\"close_time\":1507960794466},{\"period_id\":\"120m209437\",\"size\":\"120m\",\"time\":1507946400000,\"open\":0.22138,\"high\":0.2238,\"low\":0.21948,\"close\":0.2205,\"volume\":371646.62039033975,\"close_time\":1507953503013},{\"period_id\":\"120m209436\",\"size\":\"120m\",\"time\":1507939200000,\"open\":0.2183,\"high\":0.22139,\"low\":0.21761,\"close\":0.22123,\"volume\":335889.88883946976,\"close_time\":1507946329960},{\"period_id\":\"120m209435\",\"size\":\"120m\",\"time\":1507932000000,\"open\":0.21462,\"high\":0.219,\"low\":0.2146,\"close\":0.21761,\"volume\":342086.37947635003,\"close_time\":1507939166270},{\"period_id\":\"120m209434\",\"size\":\"120m\",\"time\":1507924800000,\"open\":0.217,\"high\":0.21762,\"low\":0.211,\"close\":0.21549,\"volume\":806460.19144003,\"close_time\":1507931994857}];\nvar trades = [{\"time\":1508744057470,\"execution_time\":41667650,\"slippage\":0.0004500000000000549,\"type\":\"buy\",\"size\":\"4100.59171598\",\"fee\":6.679518072288,\"price\":\"0.16907605\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511222635325,\"execution_time\":7447838,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4126.33908434\",\"fee\":1.3792268582978846,\"price\":\"0.20890595\",\"order_type\":\"maker\"},{\"time\":1512614122521,\"execution_time\":2179857,\"slippage\":0.00044999999999995944,\"type\":\"buy\",\"size\":\"4574.31360852\",\"fee\":7.358678413712001,\"price\":\"0.18508325\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1513076399165,\"execution_time\":3617581,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4587.16056770\",\"fee\":1.57727314283292,\"price\":\"0.21490325\",\"order_type\":\"maker\"},{\"price\":0.3935,\"size\":46.33495523000061,\"type\":\"sell\",\"time\":1513173600000}];\n\nwithData(data, trades)\n  </script>\n  <pre><code>{\n  \"asset_capital\": 0,\n  \"avg_slippage_pct\": 0.045,\n  \"buy_pct\": 99,\n  \"buy_stop_pct\": 0,\n  \"currency_capital\": 700,\n  \"days\": 60,\n  \"emalen1\": 30,\n  \"filename\": \"simulations/vwapmax0.html\",\n  \"markdown_buy_pct\": 0.5,\n  \"markup_sell_pct\": 0.5,\n  \"max_sell_loss_pct\": 25,\n  \"max_slippage_pct\": \"100\",\n  \"min_periods\": 1,\n  \"mode\": \"sim\",\n  \"order_adjust_time\": 5000,\n  \"order_type\": \"maker\",\n  \"period\": \"120m\",\n  \"profit_stop_enable_pct\": 0,\n  \"profit_stop_pct\": 1,\n  \"rsi_periods\": 14,\n  \"selector\": \"kraken.XXRP-ZEUR\",\n  \"sell_pct\": 99,\n  \"sell_stop_pct\": 0,\n  \"show_options\": true,\n  \"smalen1\": 108,\n  \"smalen2\": 60,\n  \"start\": 1507939200000,\n  \"stats\": false,\n  \"strategy\": \"crossover_vwap\",\n  \"verbose\": false,\n  \"vwap_length\": 10,\n  \"vwap_max\": 0\n}\nend balance: 1006.01715054 (43.72%)\nbuy hold: 1261.79569400 (80.26%)\nvs. buy hold: -20.27%\n5 trades over 62 days (avg 0.08 trades/day)\nwin/loss: 3/0\nerror rate: 0.00%</pre></code>\n</body>\n</html>"
  },
  {
    "path": "extensions/strategies/crossover_vwap/example_sims/vwapmax10.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>kraken.XXRP-ZEUR - zenbot 4.0.5 sim result</title>\n  <link href=\"main.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n  <div class=\"ticker-graph\"></div>\n  <script src=\"https://code.jquery.com/jquery-3.0.0.slim.min.js\"></script>\n  <script src=\"https://d3js.org/d3.v4.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/techan.js/0.8.0/techan.min.js\"></script>\n  <script>\n    var withData = function (data, trades) {\n      var dim = {\n          width: 1280, height: 520,\n          margin: { top: 20, right: 50, bottom: 20, left: 50 },\n          ohlc: { height: 450 }\n      };\n      dim.plot = {\n          width: dim.width - dim.margin.left - dim.margin.right,\n          height: dim.height - dim.margin.top - dim.margin.bottom\n      };\n\n      var yInit, yPercentInit, zoomableInit;\n\n      var x = techan.scale.financetime()\n              .range([0, dim.plot.width]);\n\n      var y = d3.scaleLinear()\n              .range([dim.ohlc.height, 0]);\n\n      var zoom = d3.zoom()\n              .on(\"zoom\", zoomed);\n\n      var yPercent = y.copy();   // Same as y at this stage, will get a different domain later\n\n      var yVolume = d3.scaleLinear()\n              .range([y(0), y(1)]);\n\n      var candlestick = techan.plot.candlestick()\n              .xScale(x)\n              .yScale(y);\n\n      var tradearrow = techan.plot.tradearrow()\n              .xScale(x)\n              .yScale(y)\n              .y(function(d) {\n                  // Display the buy and sell arrows a bit above and below the price, so the price is still visible\n                  if(d.type === 'buy') return y(d.price);\n                  if(d.type === 'sell') return y(d.price);\n                  else \n                    return y(d.price);\n              });\n\n      var ema2 = techan.plot.ema()\n        .xScale(x)\n        .yScale(y);\n\n      var sma0 = techan.plot.sma()\n              .xScale(x)\n              .yScale(y);\n    \n      var sma1 = techan.plot.sma()\n              .xScale(x)\n              .yScale(y);\n    \n      var adx1 = techan.plot.adx()\n              .xScale(x)\n              .yScale(y);\n  \n      var volume = techan.plot.volume()\n              .accessor(candlestick.accessor())   // Set the accessor to a ohlc accessor so we get highlighted bars\n              .xScale(x)\n              .yScale(yVolume);\n\n      var xAxis = d3.axisBottom(x);\n\n      var timeAnnotation = techan.plot.axisannotation()\n              .axis(xAxis)\n              .orient('bottom')\n              .format(d3.timeFormat('%c'))\n              .width(140)\n              .translate([0, dim.plot.height]);\n\n      var yAxis = d3.axisRight(y);\n\n      var ohlcAnnotation = techan.plot.axisannotation()\n              .axis(yAxis)\n              .orient('right')\n              .format(d3.format(',.8f'))\n              .translate([x(1), 0]);\n\n      var percentAxis = d3.axisLeft(yPercent)\n              .tickFormat(d3.format('+.1%'));\n\n      var percentAnnotation = techan.plot.axisannotation()\n              .axis(percentAxis)\n              .orient('left');\n\n      var volumeAxis = d3.axisRight(yVolume)\n              .ticks(3)\n              .tickFormat(d3.format(\",.3s\"));\n\n      var volumeAnnotation = techan.plot.axisannotation()\n              .axis(volumeAxis)\n              .orient(\"right\")\n              .width(35);\n\n      var ohlcCrosshair = techan.plot.crosshair()\n              .xScale(timeAnnotation.axis().scale())\n              .yScale(ohlcAnnotation.axis().scale())\n              .xAnnotation(timeAnnotation)\n              .yAnnotation([ohlcAnnotation, percentAnnotation, volumeAnnotation])\n              .verticalWireRange([0, dim.plot.height]);\n\n      var svg = d3.select(\"body\").append(\"svg\")\n              .attr(\"viewBox\", \"0 0 \" + dim.width + \" \" + dim.height)\n              .attr(\"width\", dim.width)\n              .attr(\"height\", dim.height);\n\n      var defs = svg.append(\"defs\");\n\n      defs.append(\"clipPath\")\n              .attr(\"id\", \"ohlcClip\")\n          .append(\"rect\")\n              .attr(\"x\", 0)\n              .attr(\"y\", 0)\n              .attr(\"width\", dim.plot.width)\n              .attr(\"height\", dim.ohlc.height);\n\n      svg = svg.append(\"g\")\n              .attr(\"transform\", \"translate(\" + dim.margin.left + \",\" + dim.margin.top + \")\");\n\n      svg.append('text')\n              .attr(\"class\", \"symbol\")\n              .attr(\"x\", 50)\n              .text(\"kraken.XXRP-ZEUR - zenbot 4.0.5\");\n\n      svg.append(\"g\")\n              .attr(\"class\", \"x axis\")\n              .attr(\"transform\", \"translate(0,\" + (dim.plot.height - 30) + \")\");\n\n      var ohlcSelection = svg.append(\"g\")\n              .attr(\"class\", \"ohlc\")\n              .attr(\"transform\", \"translate(0,0)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"axis\")\n              .attr(\"transform\", \"translate(\" + x(1) + \",0)\")\n          .append(\"text\")\n              .attr(\"transform\", \"rotate(-90)\")\n              .attr(\"y\", -12)\n              .attr(\"dy\", \".71em\")\n              .style(\"text-anchor\", \"end\")\n              .text(\"Price\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"close annotation up\")\n              .attr(\"font-weight\", \"900\")\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"volume\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"candlestick\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator ema ma-2\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator sma sma-0\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator sma sma-1\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator adx adx-1\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line1\")\n                .attr(\"class\", \"indicator ema ma-2\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line2\")\n                .attr(\"class\", \"indicator sma sma-0\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line3\")\n                .attr(\"class\", \"indicator sma sma-1\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n            \n      svg.append(\"g\")\n                .attr(\"id\", \"data_line4\")\n                .attr(\"class\", \"indicator indicator4\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"percent axis\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"volume axis\");\n\n      // Add trendlines and other interactions last to be above zoom pane\n      svg.append('g')\n              .attr(\"class\", \"crosshair ohlc\");\n\n      svg.append(\"g\")\n              .attr(\"class\", \"tradearrow\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      var accessor = candlestick.accessor();\n\n      data = data.map(function (d) {\n        d.date = new Date(d.time)\n        return d\n      })\n      data.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n      trades = trades.map(function (t) {\n        t.date = new Date(t.time)\n        return t\n      })\n      trades.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n\n      //$('body').css('backgroundColor', '#1f2d35')\n      x.domain(techan.scale.plot.time(data).domain());\n      y.domain(techan.scale.plot.ohlc(data).domain());\n      yPercent.domain(techan.scale.plot.percent(y, accessor(data[0])).domain());\n      yVolume.domain(techan.scale.plot.volume(data).domain());\n\n      svg.select(\"g.candlestick\").datum(data)\n      var last = data[data.length-1]\n      if (!last) {\n        return\n      }\n  \n      var parseQueryString = function(url) {\n        var urlParams = {};\n        url.replace(\n          new RegExp(\"([^?=&]+)(=([^&]*))?\", \"g\"),\n          function($0, $1, $2, $3) {\n            urlParams[$1] = $3;\n          }\n        );\n\n        return urlParams;\n      }\n  \n      var urlToParse = location.search;  \n      var qParams = parseQueryString(urlToParse ); \n  \n      var tperiod = qParams.period;\n  \n      svg.select(\"g.volume\").datum(data)\n  \n      // svg.select(\"g.ema.ma-2\").datum(techan.indicator.ema().period(tperiod*2)(data)).call(ema2);\n      // svg.select(\"g.sma.sma-0\").datum(techan.indicator.sma().period(tperiod*2)(data)).call(sma0);\n      // svg.select(\"g.sma.sma-1\").datum(techan.indicator.sma().period(tperiod)(data)).call(sma1);\n  \n      // svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1);\n      // svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2);\n      // svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3);\n      //\n  \n        \n      var plotLine1 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.ema1); });\n\n      var plotLine2 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.sma1); });\n\n      var plotLine3 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.sma2); });\n          \n      var plotLine4 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2) && !isNaN(d.vwap); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.vwap); });\n        \n        \n      svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1);\n      svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2);\n      svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3);\n      svg.select(\"g#data_line4 path\").datum(data).attr(\"d\", plotLine4);\n      //svg.select(\"g.adx.adx-1\").datum(techan.indicator.adx().period(tperiod)(data)).call(adx1);\n  \n      svg.select(\"g.tradearrow\").datum(trades).call(tradearrow);\n  \n      // Stash for zooming\n      zoomableInit = x.zoomable().domain([0, data.length]).copy(); // Zoom in a little to hide indicator preroll\n      yInit = y.copy();\n      yPercentInit = yPercent.copy();\n\n      draw();\n\n      function draw() {\n        svg.select(\"g.x.axis\").call(xAxis);\n        svg.select(\"g.ohlc .axis\").call(yAxis);\n        svg.select(\"g.volume.axis\").call(volumeAxis);\n        svg.select(\"g.percent.axis\").call(percentAxis);\n        svg.select(\"g.candlestick\").call(candlestick);\n        svg.select(\"g.volume\").call(volume);\n        svg.select(\"g.crosshair.ohlc\").call(ohlcCrosshair).call(zoom);\n        svg.select(\"g.tradearrow\").call(tradearrow);\n        // svg.select(\"g .ema.ma-2\").call(ema2.refresh).call(zoom);\n        // svg.select(\"g .sma.sma-0\").call(sma0.refresh).call(zoom);\n        // svg.select(\"g .sma.sma-1\").call(sma1.refresh).call(zoom);\n        // svg.select(\"g .adx.adx-1\").call(adx1.refresh).call(zoom);\n    \n        svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1).call(zoom);\n        svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2).call(zoom);\n        svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3).call(zoom);\n        svg.select(\"g#data_line4 path\").datum(data).attr(\"d\", plotLine4).call(zoom);\n      }\n\n\n      function zoomed() {\n        x.zoomable().domain(d3.event.transform.rescaleX(zoomableInit).domain());\n        y.domain(d3.event.transform.rescaleY(yInit).domain());\n        yPercent.domain(d3.event.transform.rescaleY(yPercentInit).domain());\n\n        draw();\n      }\n  \n      if(!qParams.static)\n        setTimeout(function(){ window.location.reload(1); }, 10000);\n    }\n  </script>\n  <script>\nvar data = [{\"period_id\":\"120m210163\",\"size\":\"120m\",\"time\":1513173600000,\"open\":0.3875,\"high\":0.399,\"low\":0.3812,\"close\":0.3935,\"volume\":1394606.5288537226,\"close_time\":1513174686001,\"vwap\":0.3935,\"ema1\":0.27287274681999496,\"sma1\":0.2141562685185185,\"sma2\":0.22013291666666668},{\"period_id\":\"120m210162\",\"size\":\"120m\",\"time\":1513166400000,\"open\":0.38999,\"high\":0.395,\"low\":0.371,\"close\":0.3875,\"volume\":2764537.296713162,\"close_time\":1513173592543,\"vwap\":0.3875,\"ema1\":0.2645536259110291,\"sma1\":0.21242386111111108,\"sma2\":0.21690791666666667,\"rsi_avg_gain\":0.009856092175262298,\"rsi_avg_loss\":0.000811144798512558,\"rsi\":92},{\"period_id\":\"120m210161\",\"size\":\"120m\",\"time\":1513159200000,\"open\":0.37499,\"high\":0.39,\"low\":0.35,\"close\":0.38331,\"volume\":4774045.706226606,\"close_time\":1513166399125,\"vwap\":0.383290009650984,\"ema1\":0.2560745656290311,\"sma1\":0.21074265740740744,\"sma2\":0.21373625000000002,\"rsi_avg_gain\":0.010291945419513242,\"rsi_avg_loss\":0.0008735405522442933,\"rsi\":92},{\"period_id\":\"120m210160\",\"size\":\"120m\",\"time\":1513152000000,\"open\":0.365,\"high\":0.43,\"low\":0.362,\"close\":0.37037,\"volume\":10615001.811561493,\"close_time\":1513159196158,\"vwap\":0.37038000006179933,\"ema1\":0.24729970808620566,\"sma1\":0.20869450925925928,\"sma2\":0.21075141666666672,\"rsi_avg_gain\":0.010088248913321952,\"rsi_avg_loss\":0.0009407359793400081,\"rsi\":91},{\"period_id\":\"120m210159\",\"size\":\"120m\",\"time\":1513144800000,\"open\":0.31155,\"high\":0.3799,\"low\":0.30039,\"close\":0.36201,\"volume\":7383654.496617741,\"close_time\":1513151997966,\"vwap\":0.3637970367226077,\"ema1\":0.23881210174732329,\"sma1\":0.20709302777777777,\"sma2\":0.2079064166666667,\"rsi_avg_gain\":0.010221191137423641,\"rsi_avg_loss\":0.0010131002854430857,\"rsi\":91},{\"period_id\":\"120m210158\",\"size\":\"120m\",\"time\":1513137600000,\"open\":0.28467,\"high\":0.319,\"low\":0.28201,\"close\":0.3084,\"volume\":1939410.0138247905,\"close_time\":1513144797985,\"vwap\":0.3086285302104842,\"ema1\":0.2303156949712766,\"sma1\":0.2060463611111111,\"sma2\":0.2061830833333334,\"rsi_avg_gain\":0.006883590455686998,\"rsi_avg_loss\":0.0010910310766310155,\"rsi\":86},{\"period_id\":\"120m210157\",\"size\":\"120m\",\"time\":1513130400000,\"open\":0.2981,\"high\":0.3,\"low\":0.27671,\"close\":0.28923,\"volume\":1470804.7478552302,\"close_time\":1513137551841,\"vwap\":0.2858696565255415,\"ema1\":0.22493057048653706,\"sma1\":0.20516673148148146,\"sma2\":0.20477208333333338,\"rsi_avg_gain\":0.005938482029201381,\"rsi_avg_loss\":0.0011749565440641705,\"rsi\":83},{\"period_id\":\"120m210156\",\"size\":\"120m\",\"time\":1513123200000,\"open\":0.27601,\"high\":0.29897,\"low\":0.27,\"close\":0.298,\"volume\":3115674.8552143956,\"close_time\":1513130393652,\"vwap\":0.2986377114983554,\"ema1\":0.22049612707181548,\"sma1\":0.20430552777777777,\"sma2\":0.20283875000000007,\"rsi_avg_gain\":0.006395288339139949,\"rsi_avg_loss\":0.0005907224320691066,\"rsi\":92},{\"period_id\":\"120m210155\",\"size\":\"120m\",\"time\":1513116000000,\"open\":0.272,\"high\":0.32956,\"low\":0.272,\"close\":0.27601,\"volume\":15006128.73051956,\"close_time\":1513123194998,\"vwap\":0.27501421138981746,\"ema1\":0.2151510323871131,\"sma1\":0.2032051574074074,\"sma2\":0.20133858333333338,\"rsi_avg_gain\":0.005195695134458405,\"rsi_avg_loss\":0.0006361626191513457,\"rsi\":89},{\"period_id\":\"120m210154\",\"size\":\"120m\",\"time\":1513108800000,\"open\":0.22885,\"high\":0.271965,\"low\":0.2287,\"close\":0.271965,\"volume\":13060193.335544836,\"close_time\":1513115999358,\"vwap\":0.2710947208765273,\"ema1\":0.210953862206914,\"sma1\":0.20263140740740743,\"sma2\":0.19982250000000004,\"rsi_avg_gain\":0.005284210144801362,\"rsi_avg_loss\":0.0006850982052399108,\"rsi\":89},{\"period_id\":\"120m210153\",\"size\":\"120m\",\"time\":1513101600000,\"open\":0.226,\"high\":0.22885,\"low\":0.222,\"close\":0.22885,\"volume\":2796097.9907069877,\"close_time\":1513108799425,\"vwap\":0.22883832118793523,\"ema1\":0.20674619753152876,\"sma1\":0.20245687037037038,\"sma2\":0.19904166666666667,\"rsi_avg_gain\":0.0023741493867091576,\"rsi_avg_loss\":0.0007377980671814424,\"rsi\":76},{\"period_id\":\"120m210152\",\"size\":\"120m\",\"time\":1513094400000,\"open\":0.21948,\"high\":0.228,\"low\":0.2161,\"close\":0.22503,\"volume\":6439607.943355674,\"close_time\":1513101587721,\"vwap\":0.22551496233950385,\"ema1\":0.20522179736128937,\"sma1\":0.2023068703703704,\"sma2\":0.19840783333333334,\"rsi_avg_gain\":0.002262930108763709,\"rsi_avg_loss\":0.0007945517646569379,\"rsi\":74},{\"period_id\":\"120m210151\",\"size\":\"120m\",\"time\":1513087200000,\"open\":0.2171,\"high\":0.2199,\"low\":0.21,\"close\":0.21989,\"volume\":2382252.81933436,\"close_time\":1513094394487,\"vwap\":0.21989,\"ema1\":0.20385571442068864,\"sma1\":0.20224298148148154,\"sma2\":0.19788466666666665,\"rsi_avg_gain\":0.002041617040207071,\"rsi_avg_loss\":0.0008556711311690101,\"rsi\":70},{\"period_id\":\"120m210150\",\"size\":\"120m\",\"time\":1513080000000,\"open\":0.2199,\"high\":0.22,\"low\":0.21203,\"close\":0.2171,\"volume\":2916612.944391042,\"close_time\":1513087188989,\"vwap\":0.21708999991432282,\"ema1\":0.20274990162211545,\"sma1\":0.20214483333333336,\"sma2\":0.19739133333333334,\"rsi_avg_gain\":0.0019840491202229985,\"rsi_avg_loss\":0.0009214919874127801,\"rsi\":68},{\"period_id\":\"120m210149\",\"size\":\"120m\",\"time\":1513072800000,\"open\":0.21318,\"high\":0.2199,\"low\":0.21048,\"close\":0.2199,\"volume\":2803692.7908667373,\"close_time\":1513079996977,\"vwap\":0.2197850400714847,\"ema1\":0.20176023966501996,\"sma1\":0.20203464814814817,\"sma2\":0.19681183333333332,\"rsi_avg_gain\":0.0021366682833170755,\"rsi_avg_loss\":0.0007769913710599151,\"rsi\":73},{\"period_id\":\"120m210148\",\"size\":\"120m\",\"time\":1513065600000,\"open\":0.20682,\"high\":0.2147,\"low\":0.20681,\"close\":0.2139,\"volume\":2409213.2365118363,\"close_time\":1513072781584,\"vwap\":0.21380013559673033,\"ema1\":0.2005092217108834,\"sma1\":0.20197261111111112,\"sma2\":0.19634699999999997,\"rsi_avg_gain\":0.0018394889204953115,\"rsi_avg_loss\":0.000836759938064524,\"rsi\":69},{\"period_id\":\"120m210147\",\"size\":\"120m\",\"time\":1513058400000,\"open\":0.209,\"high\":0.2099,\"low\":0.205,\"close\":0.20682,\"volume\":761639.33327307,\"close_time\":1513065594627,\"vwap\":0.20914505829019334,\"ema1\":0.19958571975990982,\"sma1\":0.201949,\"sma2\":0.1961045,\"rsi_avg_gain\":0.0014363726836103352,\"rsi_avg_loss\":0.0009011260871464106,\"rsi\":61},{\"period_id\":\"120m210146\",\"size\":\"120m\",\"time\":1513051200000,\"open\":0.2013,\"high\":0.21124,\"low\":0.19611,\"close\":0.20898,\"volume\":2402623.3937815027,\"close_time\":1513058363795,\"vwap\":0.2090649236949118,\"ema1\":0.19908680388128291,\"sma1\":0.20189224074074075,\"sma2\":0.19572866666666663,\"rsi_avg_gain\":0.0015468628900418995,\"rsi_avg_loss\":0.0008042896323115195,\"rsi\":66},{\"period_id\":\"120m210145\",\"size\":\"120m\",\"time\":1513044000000,\"open\":0.20056,\"high\":0.2015,\"low\":0.19804,\"close\":0.20129,\"volume\":182878.24229903996,\"close_time\":1513051003700,\"vwap\":0.19938608419702655,\"ema1\":0.19840451449378518,\"sma1\":0.20193853703703699,\"sma2\":0.19548216666666668,\"rsi_avg_gain\":0.001074313881583584,\"rsi_avg_loss\":0.0008661580655662517,\"rsi\":55},{\"period_id\":\"120m210144\",\"size\":\"120m\",\"time\":1513036800000,\"open\":0.2018,\"high\":0.203,\"low\":0.1961,\"close\":0.19999,\"volume\":1030371.8747069496,\"close_time\":1513043937932,\"vwap\":0.19961499576872546,\"ema1\":0.19820551549335658,\"sma1\":0.2019912222222222,\"sma2\":0.19529933333333332,\"rsi_avg_gain\":0.0010569534109361677,\"rsi_avg_loss\":0.0009327856090713479,\"rsi\":53},{\"period_id\":\"120m210143\",\"size\":\"120m\",\"time\":1513029600000,\"open\":0.20101,\"high\":0.202,\"low\":0.2,\"close\":0.2018,\"volume\":1521322.558584841,\"close_time\":1513036796088,\"vwap\":0.2009842721110001,\"ema1\":0.1980824475963467,\"sma1\":0.20204677777777771,\"sma2\":0.19518599999999997,\"rsi_avg_gain\":0.0011382575194697191,\"rsi_avg_loss\":0.0008653075789999126,\"rsi\":57},{\"period_id\":\"120m210142\",\"size\":\"120m\",\"time\":1513022400000,\"open\":0.202,\"high\":0.202,\"low\":0.2,\"close\":0.20119,\"volume\":978930.4729250503,\"close_time\":1513029582354,\"vwap\":0.2013103766289139,\"ema1\":0.1978260646719568,\"sma1\":0.20209788888888885,\"sma2\":0.19512699999999997,\"rsi_avg_gain\":0.0011788927132750822,\"rsi_avg_loss\":0.0009318697004614445,\"rsi\":56},{\"period_id\":\"120m210141\",\"size\":\"120m\",\"time\":1513015200000,\"open\":0.203,\"high\":0.20773,\"low\":0.20001,\"close\":0.202,\"volume\":1492537.8041972315,\"close_time\":1513022380076,\"vwap\":0.202,\"ema1\":0.19759406913209174,\"sma1\":0.20210038888888884,\"sma2\":0.1950686666666666,\"rsi_avg_gain\":0.0012695767681423962,\"rsi_avg_loss\":0.0009412442928046321,\"rsi\":57},{\"period_id\":\"120m210140\",\"size\":\"120m\",\"time\":1513008000000,\"open\":0.20474,\"high\":0.206,\"low\":0.2021,\"close\":0.204,\"volume\":1342877.567555539,\"close_time\":1513015199565,\"vwap\":0.2038118324577728,\"ema1\":0.19729021183085668,\"sma1\":0.20212631481481477,\"sma2\":0.19500033333333328,\"rsi_avg_gain\":0.001367236519537965,\"rsi_avg_loss\":0.0008598015460972981,\"rsi\":61},{\"period_id\":\"120m210139\",\"size\":\"120m\",\"time\":1513000800000,\"open\":0.20238,\"high\":0.2049,\"low\":0.20083,\"close\":0.20486,\"volume\":1091793.7951348608,\"close_time\":1513007991071,\"vwap\":0.20482000300049727,\"ema1\":0.19682746781919164,\"sma1\":0.20216798148148143,\"sma2\":0.1948854999999999,\"rsi_avg_gain\":0.0014724085595024237,\"rsi_avg_loss\":0.0008597862804124749,\"rsi\":63},{\"period_id\":\"120m210138\",\"size\":\"120m\",\"time\":1512993600000,\"open\":0.20099,\"high\":0.205,\"low\":0.2003984,\"close\":0.20214,\"volume\":2245705.2988893474,\"close_time\":1513000786065,\"vwap\":0.20214,\"ema1\":0.19627350008258415,\"sma1\":0.20222353703703697,\"sma2\":0.1948279999999999,\"rsi_avg_gain\":0.0013764399871564563,\"rsi_avg_loss\":0.0009259236865980498,\"rsi\":60},{\"period_id\":\"120m210137\",\"size\":\"120m\",\"time\":1512986400000,\"open\":0.20054,\"high\":0.2025,\"low\":0.1996,\"close\":0.201,\"volume\":1180345.4121488596,\"close_time\":1512993538146,\"vwap\":0.20086819609048562,\"ema1\":0.19586891388138306,\"sma1\":0.20230224074074066,\"sma2\":0.1947621666666666,\"rsi_avg_gain\":0.0013946276784761857,\"rsi_avg_loss\":0.0009971485855671306,\"rsi\":58},{\"period_id\":\"120m210136\",\"size\":\"120m\",\"time\":1512979200000,\"open\":0.19841,\"high\":0.202,\"low\":0.19696,\"close\":0.2012,\"volume\":1455140.9476323111,\"close_time\":1512986398978,\"vwap\":0.20060954866751401,\"ema1\":0.19551504587320256,\"sma1\":0.20237622222222212,\"sma2\":0.1947051666666666,\"rsi_avg_gain\":0.0015019067306666614,\"rsi_avg_loss\":0.0010584677075338347,\"rsi\":59},{\"period_id\":\"120m210135\",\"size\":\"120m\",\"time\":1512972000000,\"open\":0.1955,\"high\":0.199,\"low\":0.19447,\"close\":0.19841,\"volume\":600052.8410154001,\"close_time\":1512978995397,\"vwap\":0.19870733230189644,\"ema1\":0.19512298007135448,\"sma1\":0.20247418518518506,\"sma2\":0.1947016666666666,\"rsi_avg_gain\":0.0014028226330256362,\"rsi_avg_loss\":0.0011398883004210528,\"rsi\":55},{\"period_id\":\"120m210134\",\"size\":\"120m\",\"time\":1512964800000,\"open\":0.19194,\"high\":0.19676,\"low\":0.19102,\"close\":0.19601,\"volume\":539611.00519656,\"close_time\":1512971904794,\"vwap\":0.19605270921879617,\"ema1\":0.1948962890417927,\"sma1\":0.2025927037037036,\"sma2\":0.1948064999999999,\"rsi_avg_gain\":0.001326116681719915,\"rsi_avg_loss\":0.0012275720158380567,\"rsi\":52},{\"period_id\":\"120m210133\",\"size\":\"120m\",\"time\":1512957600000,\"open\":0.1897,\"high\":0.19214,\"low\":0.1895,\"close\":0.19205,\"volume\":441306.56720423984,\"close_time\":1512964362686,\"vwap\":0.19183394539285967,\"ema1\":0.19481948138950256,\"sma1\":0.20278214814814804,\"sma2\":0.19496699999999995,\"rsi_avg_gain\":0.0011235102726214474,\"rsi_avg_loss\":0.0013220006324409842,\"rsi\":46},{\"period_id\":\"120m210132\",\"size\":\"120m\",\"time\":1512950400000,\"open\":0.18952,\"high\":0.19378,\"low\":0.18952,\"close\":0.18971,\"volume\":431192.4742363398,\"close_time\":1512957565944,\"vwap\":0.19024824188571496,\"ema1\":0.19501048010601998,\"sma1\":0.2029786296296295,\"sma2\":0.19519916666666662,\"rsi_avg_gain\":0.0010299341397461733,\"rsi_avg_loss\":0.0014236929887825984,\"rsi\":42},{\"period_id\":\"120m210131\",\"size\":\"120m\",\"time\":1512943200000,\"open\":0.19185,\"high\":0.19429,\"low\":0.18951,\"close\":0.18952,\"volume\":784356.8331573796,\"close_time\":1512950356364,\"vwap\":0.18952498327685507,\"ema1\":0.1953760304581593,\"sma1\":0.20314594444444437,\"sma2\":0.1954546666666666,\"rsi_avg_gain\":0.001094544458188187,\"rsi_avg_loss\":0.0015332078340735676,\"rsi\":42},{\"period_id\":\"120m210130\",\"size\":\"120m\",\"time\":1512936000000,\"open\":0.1948,\"high\":0.1949,\"low\":0.19,\"close\":0.19004,\"volume\":1233056.1801976203,\"close_time\":1512943196487,\"vwap\":0.19030502379864492,\"ema1\":0.19577989462768752,\"sma1\":0.20328575925925915,\"sma2\":0.19568766666666662,\"rsi_avg_gain\":0.0011787401857411247,\"rsi_avg_loss\":0.0016111468982330734,\"rsi\":42},{\"period_id\":\"120m210129\",\"size\":\"120m\",\"time\":1512928800000,\"open\":0.1935,\"high\":0.19676,\"low\":0.19301,\"close\":0.19439,\"volume\":387426.0634739798,\"close_time\":1512935995196,\"vwap\":0.19438664703820985,\"ema1\":0.196175749429597,\"sma1\":0.20342687037037027,\"sma2\":0.19583466666666666,\"rsi_avg_gain\":0.0012694125077212111,\"rsi_avg_loss\":0.0014004658904048465,\"rsi\":48},{\"period_id\":\"120m210128\",\"size\":\"120m\",\"time\":1512921600000,\"open\":0.1925,\"high\":0.19867,\"low\":0.192,\"close\":0.1935,\"volume\":746355.7882153098,\"close_time\":1512928784644,\"vwap\":0.194020834849035,\"ema1\":0.19629890456267265,\"sma1\":0.2035315925925925,\"sma2\":0.19602466666666665,\"rsi_avg_gain\":0.001298598085238227,\"rsi_avg_loss\":0.0015081940358206037,\"rsi\":46},{\"period_id\":\"120m210127\",\"size\":\"120m\",\"time\":1512914400000,\"open\":0.19889,\"high\":0.2,\"low\":0.192,\"close\":0.1925,\"volume\":1304227.7168578205,\"close_time\":1512921590443,\"vwap\":0.19289292662500715,\"ema1\":0.19649193246354663,\"sma1\":0.20368807407407397,\"sma2\":0.19624249999999996,\"rsi_avg_gain\":0.0013215671687180906,\"rsi_avg_loss\":0.0016242089616529576,\"rsi\":45},{\"period_id\":\"120m210126\",\"size\":\"120m\",\"time\":1512907200000,\"open\":0.19353,\"high\":0.19949,\"low\":0.1917,\"close\":0.19868,\"volume\":650525.0708087999,\"close_time\":1512914393147,\"vwap\":0.19885655648062991,\"ema1\":0.19676723815068778,\"sma1\":0.203757611111111,\"sma2\":0.19633949999999994,\"rsi_avg_gain\":0.0014232261816964052,\"rsi_avg_loss\":0.0012737634971647243,\"rsi\":53},{\"period_id\":\"120m210125\",\"size\":\"120m\",\"time\":1512900000000,\"open\":0.19333,\"high\":0.19902,\"low\":0.19,\"close\":0.19385,\"volume\":978565.5069178501,\"close_time\":1512907196740,\"vwap\":0.19368696804460397,\"ema1\":0.19663532354039037,\"sma1\":0.20378575925925915,\"sma2\":0.19652599999999995,\"rsi_avg_gain\":0.0011611666572115132,\"rsi_avg_loss\":0.0013717453046389338,\"rsi\":46},{\"period_id\":\"120m210124\",\"size\":\"120m\",\"time\":1512892800000,\"open\":0.19131,\"high\":0.194,\"low\":0.19,\"close\":0.19341,\"volume\":531661.3797847299,\"close_time\":1512899982936,\"vwap\":0.19304868319073076,\"ema1\":0.19682741481903798,\"sma1\":0.20383964814814806,\"sma2\":0.19673416666666668,\"rsi_avg_gain\":0.0012166410154585531,\"rsi_avg_loss\":0.001477264174226544,\"rsi\":45},{\"period_id\":\"120m210122\",\"size\":\"120m\",\"time\":1512878400000,\"open\":0.191,\"high\":0.19313,\"low\":0.1895,\"close\":0.19301,\"volume\":391477.15581255,\"close_time\":1512882237255,\"vwap\":0.18998341951940023,\"ema1\":0.19706309859966128,\"sma1\":0.2039214999999999,\"sma2\":0.19693149999999998,\"rsi_avg_gain\":0.00127945955510921,\"rsi_avg_loss\":0.0015908998799362784,\"rsi\":45},{\"period_id\":\"120m210121\",\"size\":\"120m\",\"time\":1512871200000,\"open\":0.195,\"high\":0.19843,\"low\":0.191,\"close\":0.191,\"volume\":822354.6339335999,\"close_time\":1512878389037,\"vwap\":0.1911867397623027,\"ema1\":0.19734262264101723,\"sma1\":0.20394529629629618,\"sma2\":0.19716733333333333,\"rsi_avg_gain\":0.0012232641362714583,\"rsi_avg_loss\":0.0017132767937775306,\"rsi\":42},{\"period_id\":\"120m210120\",\"size\":\"120m\",\"time\":1512864000000,\"open\":0.19926,\"high\":0.19928,\"low\":0.195,\"close\":0.195,\"volume\":575411.43770943,\"close_time\":1512871187661,\"vwap\":0.195,\"ema1\":0.19778004489212186,\"sma1\":0.20398992592592582,\"sma2\":0.1973611666666667,\"rsi_avg_gain\":0.001317361377523109,\"rsi_avg_loss\":0.0015373750086834941,\"rsi\":46},{\"period_id\":\"120m210119\",\"size\":\"120m\",\"time\":1512856800000,\"open\":0.2,\"high\":0.20254,\"low\":0.19733,\"close\":0.19929,\"volume\":680314.7565415404,\"close_time\":1512863991018,\"vwap\":0.19826983185385233,\"ema1\":0.1979717721260613,\"sma1\":0.20402974074074068,\"sma2\":0.1975107666666667,\"rsi_avg_gain\":0.0014186968681018097,\"rsi_avg_loss\":0.0013256346247360717,\"rsi\":52},{\"period_id\":\"120m210118\",\"size\":\"120m\",\"time\":1512849600000,\"open\":0.19851,\"high\":0.2,\"low\":0.1953,\"close\":0.2,\"volume\":352961.11425362,\"close_time\":1512856793108,\"vwap\":0.19994443348370255,\"ema1\":0.19788085985889312,\"sma1\":0.2040714074074073,\"sma2\":0.19762693333333337,\"rsi_avg_gain\":0.0015278273964173337,\"rsi_avg_loss\":0.001372991134331153,\"rsi\":53},{\"period_id\":\"120m210117\",\"size\":\"120m\",\"time\":1512842400000,\"open\":0.19541,\"high\":0.19867,\"low\":0.19486,\"close\":0.19799,\"volume\":926232.5305575604,\"close_time\":1512849579268,\"vwap\":0.19810121660336275,\"ema1\":0.19773471226295472,\"sma1\":0.20412631481481475,\"sma2\":0.19777710000000004,\"rsi_avg_gain\":0.001490737196141743,\"rsi_avg_loss\":0.001478605836972011,\"rsi\":50},{\"period_id\":\"120m210116\",\"size\":\"120m\",\"time\":1512835200000,\"open\":0.2025,\"high\":0.2027,\"low\":0.19541,\"close\":0.19541,\"volume\":641413.0257922799,\"close_time\":1512842398360,\"vwap\":0.19556745653870505,\"ema1\":0.19771710621212402,\"sma1\":0.20409103703703693,\"sma2\":0.1979792666666667,\"rsi_avg_gain\":0.001406947749691108,\"rsi_avg_loss\":0.0015923447475083194,\"rsi\":47},{\"period_id\":\"120m210115\",\"size\":\"120m\",\"time\":1512828000000,\"open\":0.2029,\"high\":0.203,\"low\":0.19926,\"close\":0.2025,\"volume\":759955.0663505401,\"close_time\":1512835181045,\"vwap\":0.2024515849649,\"ema1\":0.19787621698537394,\"sma1\":0.20402622222222214,\"sma2\":0.19804026666666671,\"rsi_avg_gain\":0.001515174499667347,\"rsi_avg_loss\":0.001169448189624343,\"rsi\":56},{\"period_id\":\"120m210114\",\"size\":\"120m\",\"time\":1512820800000,\"open\":0.19915,\"high\":0.203,\"low\":0.1964,\"close\":0.20288,\"volume\":1060196.08788046,\"close_time\":1512827997733,\"vwap\":0.20217263952904443,\"ema1\":0.19755733539815834,\"sma1\":0.2040447407407406,\"sma2\":0.19809226666666674,\"rsi_avg_gain\":0.0016317263842571428,\"rsi_avg_loss\":0.0012301749734416009,\"rsi\":57},{\"period_id\":\"120m210113\",\"size\":\"120m\",\"time\":1512813600000,\"open\":0.19899,\"high\":0.2,\"low\":0.196,\"close\":0.199,\"volume\":1697599.1494401302,\"close_time\":1512820796071,\"vwap\":0.199,\"ema1\":0.19719025508078994,\"sma1\":0.20412427777777767,\"sma2\":0.1982202666666667,\"rsi_avg_gain\":0.001458782259969231,\"rsi_avg_loss\":0.0013248038175524934,\"rsi\":52},{\"period_id\":\"120m210112\",\"size\":\"120m\",\"time\":1512806400000,\"open\":0.2015,\"high\":0.20181,\"low\":0.196,\"close\":0.198,\"volume\":1049080.849649,\"close_time\":1512813598514,\"vwap\":0.19771764137835404,\"ema1\":0.19706544508636165,\"sma1\":0.20420474074074063,\"sma2\":0.1983702666666667,\"rsi_avg_gain\":0.0014940732030437874,\"rsi_avg_loss\":0.0014267118035180698,\"rsi\":51},{\"period_id\":\"120m210111\",\"size\":\"120m\",\"time\":1512799200000,\"open\":0.201,\"high\":0.203,\"low\":0.19911,\"close\":0.19931,\"volume\":611834.19321072,\"close_time\":1512806227310,\"vwap\":0.19983600144176059,\"ema1\":0.1970009930233521,\"sma1\":0.20425103703703693,\"sma2\":0.1985104333333334,\"rsi_avg_gain\":0.0016090019109702325,\"rsi_avg_loss\":0.001435689634557923,\"rsi\":53},{\"period_id\":\"120m210110\",\"size\":\"120m\",\"time\":1512792000000,\"open\":0.20095,\"high\":0.20189,\"low\":0.19933,\"close\":0.2018,\"volume\":327272.42923343997,\"close_time\":1512799199401,\"vwap\":0.2018,\"ema1\":0.19684175116289362,\"sma1\":0.20433437037037028,\"sma2\":0.19856810000000003,\"rsi_avg_gain\":0.0017327712887371734,\"rsi_avg_loss\":0.001354588837216223,\"rsi\":56},{\"period_id\":\"120m210109\",\"size\":\"120m\",\"time\":1512784800000,\"open\":0.199,\"high\":0.20181,\"low\":0.199,\"close\":0.20148,\"volume\":97245.56367083998,\"close_time\":1512791938779,\"vwap\":0.20148,\"ema1\":0.1964998029672311,\"sma1\":0.20441020370370364,\"sma2\":0.19864193333333333,\"rsi_avg_gain\":0.0018414460032554164,\"rsi_avg_loss\":0.0014587879785405479,\"rsi\":56},{\"period_id\":\"120m210108\",\"size\":\"120m\",\"time\":1512777600000,\"open\":0.2,\"high\":0.20181,\"low\":0.19801,\"close\":0.19981,\"volume\":403268.47447363014,\"close_time\":1512784528415,\"vwap\":0.19949943555012262,\"ema1\":0.1961563411029022,\"sma1\":0.2044859444444444,\"sma2\":0.19872843333333334,\"rsi_avg_gain\":0.0018546341573519864,\"rsi_avg_loss\":0.0015710024384282821,\"rsi\":54},{\"period_id\":\"120m210107\",\"size\":\"120m\",\"time\":1512770400000,\"open\":0.19995,\"high\":0.20194,\"low\":0.19811,\"close\":0.2,\"volume\":1030570.62235018,\"close_time\":1512777589000,\"vwap\":0.20012138104052637,\"ema1\":0.19590436462724028,\"sma1\":0.20456057407407402,\"sma2\":0.19878193333333335,\"rsi_avg_gain\":0.001997298323302139,\"rsi_avg_loss\":0.001677233395230456,\"rsi\":54},{\"period_id\":\"120m210106\",\"size\":\"120m\",\"time\":1512763200000,\"open\":0.20056,\"high\":0.2029,\"low\":0.19882,\"close\":0.20195,\"volume\":687992.28091057,\"close_time\":1512770355398,\"vwap\":0.20020584771426303,\"ema1\":0.1956219070153258,\"sma1\":0.2046263148148148,\"sma2\":0.19878443333333337,\"rsi_avg_gain\":0.002150936655863842,\"rsi_avg_loss\":0.0016562513487097233,\"rsi\":56},{\"period_id\":\"120m210105\",\"size\":\"120m\",\"time\":1512756000000,\"open\":0.2,\"high\":0.204,\"low\":0.199,\"close\":0.20292,\"volume\":1842953.0237013297,\"close_time\":1512763170809,\"vwap\":0.20154437813390225,\"ema1\":0.19518548680948622,\"sma1\":0.20477048148148147,\"sma2\":0.1988857666666667,\"rsi_avg_gain\":0.002316393321699522,\"rsi_avg_loss\":0.0017090399139950867,\"rsi\":58},{\"period_id\":\"120m210104\",\"size\":\"120m\",\"time\":1512748800000,\"open\":0.196,\"high\":0.20086,\"low\":0.196,\"close\":0.2,\"volume\":1102251.6171724405,\"close_time\":1512755976994,\"vwap\":0.20000000000000004,\"ema1\":0.19465207210669216,\"sma1\":0.20497548148148148,\"sma2\":0.19904876666666674,\"rsi_avg_gain\":0.0022699620387533334,\"rsi_avg_loss\":0.0018405045227639395,\"rsi\":55},{\"period_id\":\"120m210103\",\"size\":\"120m\",\"time\":1512741600000,\"open\":0.20001,\"high\":0.20182,\"low\":0.19001,\"close\":0.196,\"volume\":1809689.6471748506,\"close_time\":1512748783413,\"vwap\":0.19675117681562646,\"ema1\":0.1942832494933606,\"sma1\":0.2052364074074074,\"sma2\":0.1992737666666667,\"rsi_avg_gain\":0.0021368821955805124,\"rsi_avg_loss\":0.001982081793745781,\"rsi\":52},{\"period_id\":\"120m210102\",\"size\":\"120m\",\"time\":1512734400000,\"open\":0.19362,\"high\":0.20199,\"low\":0.193,\"close\":0.20182,\"volume\":1979923.9914177093,\"close_time\":1512741577584,\"vwap\":0.20078505107561562,\"ema1\":0.1941648529066958,\"sma1\":0.20548446296296297,\"sma2\":0.19942676666666675,\"rsi_avg_gain\":0.0023012577490867056,\"rsi_avg_loss\":0.0016868573163416108,\"rsi\":58},{\"period_id\":\"120m210101\",\"size\":\"120m\",\"time\":1512727200000,\"open\":0.1931,\"high\":0.19999,\"low\":0.19,\"close\":0.194,\"volume\":1792191.8218561397,\"close_time\":1512734388888,\"vwap\":0.19499670371895514,\"ema1\":0.19363691172784725,\"sma1\":0.2057149259259259,\"sma2\":0.1996746,\"rsi_avg_gain\":0.0018767391144010677,\"rsi_avg_loss\":0.0018166155714448118,\"rsi\":51},{\"period_id\":\"120m210100\",\"size\":\"120m\",\"time\":1512720000000,\"open\":0.19009,\"high\":0.2,\"low\":0.18955,\"close\":0.19301,\"volume\":1800915.4518014311,\"close_time\":1512727186604,\"vwap\":0.19322480854509252,\"ema1\":0.19361187115735395,\"sma1\":0.20594529629629627,\"sma2\":0.1999061,\"rsi_avg_gain\":0.0019449498155088409,\"rsi_avg_loss\":0.0019563552307867204,\"rsi\":50},{\"period_id\":\"120m210099\",\"size\":\"120m\",\"time\":1512712800000,\"open\":0.191,\"high\":0.19649,\"low\":0.18501,\"close\":0.19128,\"volume\":1533508.5199854106,\"close_time\":1512719994835,\"vwap\":0.19302391212578301,\"ema1\":0.19365337951303355,\"sma1\":0.2061701111111111,\"sma2\":0.20016993333333336,\"rsi_avg_gain\":0.00196148441670183,\"rsi_avg_loss\":0.0021068440946933912,\"rsi\":48},{\"period_id\":\"120m210098\",\"size\":\"120m\",\"time\":1512705600000,\"open\":0.203,\"high\":0.20687,\"low\":0.19021,\"close\":0.19131,\"volume\":824094.35925791,\"close_time\":1512712790789,\"vwap\":0.1908404872779546,\"ema1\":0.19381706085876,\"sma1\":0.20631177777777776,\"sma2\":0.20040060000000004,\"rsi_avg_gain\":0.002112367833371202,\"rsi_avg_loss\":0.002266601332746729,\"rsi\":48},{\"period_id\":\"120m210097\",\"size\":\"120m\",\"time\":1512698400000,\"open\":0.20457,\"high\":0.208,\"low\":0.19155,\"close\":0.205,\"volume\":1802558.6234344696,\"close_time\":1512705589882,\"vwap\":0.2038647909655973,\"ema1\":0.19398996160763998,\"sma1\":0.20649585185185182,\"sma2\":0.20039776666666667,\"rsi_avg_gain\":0.0022748576667074483,\"rsi_avg_loss\":0.0013878783583426326,\"rsi\":62},{\"period_id\":\"120m210096\",\"size\":\"120m\",\"time\":1512691200000,\"open\":0.18264,\"high\":0.21,\"low\":0.18,\"close\":0.20457,\"volume\":5069064.234255623,\"close_time\":1512698364848,\"vwap\":0.20596059918462412,\"ema1\":0.19323064861506342,\"sma1\":0.2067273333333333,\"sma2\":0.20039026666666665,\"rsi_avg_gain\":0.0024167697949157145,\"rsi_avg_loss\":0.0014946382320612968,\"rsi\":62},{\"period_id\":\"120m210095\",\"size\":\"120m\",\"time\":1512684000000,\"open\":0.18631,\"high\":0.18699,\"low\":0.18,\"close\":0.182,\"volume\":2887392.7136900085,\"close_time\":1512691099048,\"vwap\":0.1824532828952354,\"ema1\":0.19244862438161953,\"sma1\":0.20717187037037035,\"sma2\":0.20079026666666666,\"rsi_avg_gain\":0.0008665213176015379,\"rsi_avg_loss\":0.0016096104037583196,\"rsi\":35},{\"period_id\":\"120m210094\",\"size\":\"120m\",\"time\":1512676800000,\"open\":0.18049,\"high\":0.186,\"low\":0.18007,\"close\":0.186,\"volume\":1397581.4726467493,\"close_time\":1512683999964,\"vwap\":0.1853767864101388,\"ema1\":0.1931692191665588,\"sma1\":0.2075561296296296,\"sma2\":0.20114843333333327,\"rsi_avg_gain\":0.000933176803570887,\"rsi_avg_loss\":0.0014257342809704976,\"rsi\":40},{\"period_id\":\"120m210093\",\"size\":\"120m\",\"time\":1512669600000,\"open\":0.182,\"high\":0.18889,\"low\":0.18004,\"close\":0.181,\"volume\":1519254.1145062689,\"close_time\":1512676772537,\"vwap\":0.18100833631099203,\"ema1\":0.19366364807459735,\"sma1\":0.2078807592592592,\"sma2\":0.20157693333333332,\"rsi_avg_gain\":0.0006203442499994165,\"rsi_avg_loss\":0.001535406148737459,\"rsi\":29},{\"period_id\":\"120m210092\",\"size\":\"120m\",\"time\":1512662400000,\"open\":0.18434,\"high\":0.18959,\"low\":0.18,\"close\":0.182,\"volume\":1880239.514088659,\"close_time\":1512669591339,\"vwap\":0.18199999999999997,\"ema1\":0.19453700311422475,\"sma1\":0.208233537037037,\"sma2\":0.20199393333333326,\"rsi_avg_gain\":0.0006680630384609101,\"rsi_avg_loss\":0.0015765912371018787,\"rsi\":30},{\"period_id\":\"120m210091\",\"size\":\"120m\",\"time\":1512655200000,\"open\":0.1885,\"high\":0.18995,\"low\":0.18301,\"close\":0.187,\"volume\":1319921.42306792,\"close_time\":1512662369202,\"vwap\":0.18699999999999997,\"ema1\":0.19540162401865405,\"sma1\":0.20853307407407404,\"sma2\":0.20230944066666665,\"rsi_avg_gain\":0.0007194525029579033,\"rsi_avg_loss\":0.0013132521014943305,\"rsi\":35},{\"period_id\":\"120m210090\",\"size\":\"120m\",\"time\":1512648000000,\"open\":0.1875,\"high\":0.19,\"low\":0.1875,\"close\":0.1885,\"volume\":1411372.0180265396,\"close_time\":1512655194555,\"vwap\":0.18759177338401992,\"ema1\":0.19598104636476812,\"sma1\":0.2088013148148148,\"sma2\":0.2026461073333333,\"rsi_avg_gain\":0.0007747950031854342,\"rsi_avg_loss\":0.0012988868785323558,\"rsi\":37},{\"period_id\":\"120m210089\",\"size\":\"120m\",\"time\":1512640800000,\"open\":0.18521,\"high\":0.18979,\"low\":0.181,\"close\":0.1875,\"volume\":2092077.3675429292,\"close_time\":1512647973104,\"vwap\":0.18722017733209442,\"ema1\":0.1964969805968211,\"sma1\":0.20908057407407407,\"sma2\":0.20298944066666663,\"rsi_avg_gain\":0.000757471541892006,\"rsi_avg_loss\":0.0013988012538040755,\"rsi\":35},{\"period_id\":\"120m210088\",\"size\":\"120m\",\"time\":1512633600000,\"open\":0.1872,\"high\":0.18979,\"low\":0.18513,\"close\":0.18513,\"volume\":1129966.4392239994,\"close_time\":1512640768505,\"vwap\":0.1852797343419554,\"ema1\":0.19711746201729152,\"sma1\":0.20934177777777777,\"sma2\":0.20340394066666662,\"rsi_avg_gain\":0.0006334308912683133,\"rsi_avg_loss\":0.0015064013502505429,\"rsi\":30},{\"period_id\":\"120m210087\",\"size\":\"120m\",\"time\":1512626400000,\"open\":0.19225,\"high\":0.19231,\"low\":0.1852,\"close\":0.18601,\"volume\":1170682.04228123,\"close_time\":1512633583210,\"vwap\":0.18601,\"ema1\":0.19794418353572543,\"sma1\":0.20957705555555553,\"sma2\":0.20378977399999998,\"rsi_avg_gain\":0.0006821563444427989,\"rsi_avg_loss\":0.001554586069500583,\"rsi\":30},{\"period_id\":\"120m210086\",\"size\":\"120m\",\"time\":1512619200000,\"open\":0.1855,\"high\":0.19288,\"low\":0.18373,\"close\":0.19227,\"volume\":312959.47167122003,\"close_time\":1512626260601,\"vwap\":0.1907792238751638,\"ema1\":0.1987672306761203,\"sma1\":0.20980964814814815,\"sma2\":0.2040286073333333,\"rsi_avg_gain\":0.0007346299093999373,\"rsi_avg_loss\":0.0011926311517698597,\"rsi\":38},{\"period_id\":\"120m210085\",\"size\":\"120m\",\"time\":1512612000000,\"open\":0.18694,\"high\":0.19286,\"low\":0.18393,\"close\":0.18643,\"volume\":1313166.93189536,\"close_time\":1512619169443,\"vwap\":0.18636667582102892,\"ema1\":0.19921531555033548,\"sma1\":0.21004325925925926,\"sma2\":0.20440660733333332,\"rsi_avg_gain\":0.0003419091331999337,\"rsi_avg_loss\":0.0012843720095983104,\"rsi\":21},{\"period_id\":\"120m210084\",\"size\":\"120m\",\"time\":1512604800000,\"open\":0.18902,\"high\":0.1927,\"low\":0.1865,\"close\":0.1865,\"volume\":1847827.2706492287,\"close_time\":1512611942664,\"vwap\":0.18688331201335373,\"ema1\":0.2000970614503586,\"sma1\":0.21020344444444447,\"sma2\":0.20478094066666663,\"rsi_avg_gain\":0.00036820983575377476,\"rsi_avg_loss\":0.0013777852411058738,\"rsi\":21},{\"period_id\":\"120m210083\",\"size\":\"120m\",\"time\":1512597600000,\"open\":0.19498,\"high\":0.196,\"low\":0.189,\"close\":0.18902,\"volume\":2480005.0900642066,\"close_time\":1512604794901,\"vwap\":0.18923329501085923,\"ema1\":0.2010347898262454,\"sma1\":0.21030066666666666,\"sma2\":0.2051734406666666,\"rsi_avg_gain\":0.00039653366927329593,\"rsi_avg_loss\":0.0012899225673447877,\"rsi\":24},{\"period_id\":\"120m210082\",\"size\":\"120m\",\"time\":1512590400000,\"open\":0.19679,\"high\":0.19775,\"low\":0.192,\"close\":0.195,\"volume\":1901877.715855151,\"close_time\":1512597582829,\"vwap\":0.1949920038805133,\"ema1\":0.20186339602115888,\"sma1\":0.21038816666666663,\"sma2\":0.20546277399999993,\"rsi_avg_gain\":0.00042703625921739564,\"rsi_avg_loss\":0.0009291473802174625,\"rsi\":31},{\"period_id\":\"120m210081\",\"size\":\"120m\",\"time\":1512583200000,\"open\":0.1985,\"high\":0.20003,\"low\":0.19615,\"close\":0.19765,\"volume\":1159402.1994188598,\"close_time\":1512590389470,\"vwap\":0.1971739025784659,\"ema1\":0.20233673367779054,\"sma1\":0.2104573333333333,\"sma2\":0.20566194066666663,\"rsi_avg_gain\":0.0004598852022341184,\"rsi_avg_loss\":0.000796774101772653,\"rsi\":37},{\"period_id\":\"120m210080\",\"size\":\"120m\",\"time\":1512576000000,\"open\":0.1999,\"high\":0.20198,\"low\":0.1978,\"close\":0.1985,\"volume\":1149012.43157479,\"close_time\":1512583187057,\"vwap\":0.1989417008319554,\"ema1\":0.20265995669005196,\"sma1\":0.2104941851851852,\"sma2\":0.20582710733333334,\"rsi_avg_gain\":0.0004952609870213583,\"rsi_avg_loss\":0.0007926798019090096,\"rsi\":38},{\"period_id\":\"120m210079\",\"size\":\"120m\",\"time\":1512568800000,\"open\":0.197,\"high\":0.19997,\"low\":0.196,\"close\":0.1999,\"volume\":1754763.5733593802,\"close_time\":1512575983189,\"vwap\":0.1999154287077512,\"ema1\":0.20294685025488313,\"sma1\":0.21054724074074074,\"sma2\":0.205974774,\"rsi_avg_gain\":0.0005333579860230012,\"rsi_avg_loss\":0.0007459628635943192,\"rsi\":42},{\"period_id\":\"120m210078\",\"size\":\"120m\",\"time\":1512561600000,\"open\":0.19867,\"high\":0.19869,\"low\":0.196,\"close\":0.19797,\"volume\":1356577.2933801496,\"close_time\":1512568782682,\"vwap\":0.19691418355580953,\"ema1\":0.20315697785866818,\"sma1\":0.21060566666666666,\"sma2\":0.2061669406666667,\"rsi_avg_gain\":0.00042592398494784847,\"rsi_avg_loss\":0.0008033446223323438,\"rsi\":35},{\"period_id\":\"120m210077\",\"size\":\"120m\",\"time\":1512554400000,\"open\":0.19707,\"high\":0.2,\"low\":0.196,\"close\":0.19869,\"volume\":2110134.6971577206,\"close_time\":1512561542485,\"vwap\":0.19868333606478983,\"ema1\":0.20351470046961082,\"sma1\":0.21065168518518515,\"sma2\":0.206231774,\"rsi_avg_gain\":0.00045868736840537527,\"rsi_avg_loss\":0.0008097557471271396,\"rsi\":36},{\"period_id\":\"120m210076\",\"size\":\"120m\",\"time\":1512547200000,\"open\":0.19606,\"high\":0.20158,\"low\":0.1953,\"close\":0.19705,\"volume\":2170755.0190411303,\"close_time\":1512554398487,\"vwap\":0.19911143840450202,\"ema1\":0.20384743843303224,\"sma1\":0.21068798148148143,\"sma2\":0.20631527400000002,\"rsi_avg_gain\":0.0003678171659750193,\"rsi_avg_loss\":0.0008720446507523041,\"rsi\":30},{\"period_id\":\"120m210075\",\"size\":\"120m\",\"time\":1512540000000,\"open\":0.19901,\"high\":0.20293,\"low\":0.195,\"close\":0.19778,\"volume\":2231629.5649462496,\"close_time\":1512547191564,\"vwap\":0.1968900997140977,\"ema1\":0.20431622729048274,\"sma1\":0.21071270370370368,\"sma2\":0.2063039406666667,\"rsi_avg_gain\":0.0003961107941269439,\"rsi_avg_loss\":0.0008829711623486346,\"rsi\":31},{\"period_id\":\"120m210074\",\"size\":\"120m\",\"time\":1512532800000,\"open\":0.201,\"high\":0.20466,\"low\":0.1981,\"close\":0.1982,\"volume\":1667986.7979470093,\"close_time\":1512539956524,\"vwap\":0.19856764955287706,\"ema1\":0.2047670015863781,\"sma1\":0.2107149259259259,\"sma2\":0.20629227400000003,\"rsi_avg_gain\":0.0004265808552136319,\"rsi_avg_loss\":0.0009185843286831468,\"rsi\":32},{\"period_id\":\"120m210073\",\"size\":\"120m\",\"time\":1512525600000,\"open\":0.20164,\"high\":0.204,\"low\":0.2,\"close\":0.2023,\"volume\":1055209.2105613104,\"close_time\":1512532718975,\"vwap\":0.20175501664617412,\"ema1\":0.2052198982475076,\"sma1\":0.21071520370370364,\"sma2\":0.2062139406666667,\"rsi_avg_gain\":0.0004593947671531421,\"rsi_avg_loss\":0.0006738600462741566,\"rsi\":41},{\"period_id\":\"120m210072\",\"size\":\"120m\",\"time\":1512518400000,\"open\":0.20532,\"high\":0.20635,\"low\":0.20011,\"close\":0.20168,\"volume\":1645813.257506141,\"close_time\":1512525583549,\"vwap\":0.20082316650612225,\"ema1\":0.20542127054043918,\"sma1\":0.210693074074074,\"sma2\":0.2061879406666667,\"rsi_avg_gain\":0.00044704051847261386,\"rsi_avg_loss\":0.0007256954344490918,\"rsi\":38},{\"period_id\":\"120m210071\",\"size\":\"120m\",\"time\":1512511200000,\"open\":0.20402,\"high\":0.2055,\"low\":0.203,\"close\":0.20364,\"volume\":2130364.2691354603,\"close_time\":1512518349788,\"vwap\":0.20472663028413327,\"ema1\":0.2056792891984005,\"sma1\":0.2106879814814814,\"sma2\":0.2061706073333334,\"rsi_avg_gain\":0.00048142825066281494,\"rsi_avg_loss\":0.0006307489294067151,\"rsi\":43},{\"period_id\":\"120m210070\",\"size\":\"120m\",\"time\":1512504000000,\"open\":0.20498,\"high\":0.20535,\"low\":0.203,\"close\":0.20485,\"volume\":1083083.8736538694,\"close_time\":1512511198657,\"vwap\":0.20425795966616564,\"ema1\":0.20581992983277295,\"sma1\":0.2106761296296296,\"sma2\":0.20612977400000004,\"rsi_avg_gain\":0.000518461193021493,\"rsi_avg_loss\":0.0005861911547456919,\"rsi\":47},{\"period_id\":\"120m210069\",\"size\":\"120m\",\"time\":1512496800000,\"open\":0.204,\"high\":0.20538,\"low\":0.203,\"close\":0.20402,\"volume\":860057.4203535096,\"close_time\":1512503859014,\"vwap\":0.2040533244287874,\"ema1\":0.205886821545378,\"sma1\":0.21067344444444439,\"sma2\":0.20612777400000007,\"rsi_avg_gain\":0.0004944966694077618,\"rsi_avg_loss\":0.000631282782033822,\"rsi\":44},{\"period_id\":\"120m210068\",\"size\":\"120m\",\"time\":1512489600000,\"open\":0.20488,\"high\":0.2055,\"low\":0.203,\"close\":0.20321,\"volume\":1296081.3617274298,\"close_time\":1512496789885,\"vwap\":0.20353534427355027,\"ema1\":0.20601556785885233,\"sma1\":0.21067437037037032,\"sma2\":0.20602427400000006,\"rsi_avg_gain\":0.0004702271824391278,\"rsi_avg_loss\":0.0006798429960364236,\"rsi\":41},{\"period_id\":\"120m210067\",\"size\":\"120m\",\"time\":1512482400000,\"open\":0.20556,\"high\":0.20556,\"low\":0.2035,\"close\":0.2049,\"volume\":1402909.4253659002,\"close_time\":1512489590218,\"vwap\":0.20455284931761197,\"ema1\":0.20620905529739386,\"sma1\":0.21067501851851847,\"sma2\":0.20583277400000005,\"rsi_avg_gain\":0.0005063985041652146,\"rsi_avg_loss\":0.0006021386111161488,\"rsi\":46},{\"period_id\":\"120m210066\",\"size\":\"120m\",\"time\":1512475200000,\"open\":0.2045,\"high\":0.20646,\"low\":0.204,\"close\":0.20557,\"volume\":905663.6345902705,\"close_time\":1512482395799,\"vwap\":0.20537428150389755,\"ema1\":0.2062993349730762,\"sma1\":0.21066798148148144,\"sma2\":0.20567327400000004,\"rsi_avg_gain\":0.0005453522352548466,\"rsi_avg_loss\":0.0005969185042789293,\"rsi\":48},{\"period_id\":\"120m210065\",\"size\":\"120m\",\"time\":1512468000000,\"open\":0.20576,\"high\":0.20643,\"low\":0.2043,\"close\":0.2045,\"volume\":1058386.8217710692,\"close_time\":1512475196068,\"vwap\":0.20450179294279808,\"ema1\":0.20634963393673664,\"sma1\":0.21066835185185184,\"sma2\":0.20562027400000008,\"rsi_avg_gain\":0.0005049947148898336,\"rsi_avg_loss\":0.0006428353123003853,\"rsi\":44},{\"period_id\":\"120m210064\",\"size\":\"120m\",\"time\":1512460800000,\"open\":0.2057,\"high\":0.2082,\"low\":0.205,\"close\":0.20504,\"volume\":1827906.7326850519,\"close_time\":1512467894122,\"vwap\":0.20622469915071107,\"ema1\":0.2064771948978909,\"sma1\":0.2106489074074074,\"sma2\":0.20565610733333337,\"rsi_avg_gain\":0.0005438404621890515,\"rsi_avg_loss\":0.0006507457209388755,\"rsi\":46},{\"period_id\":\"120m210063\",\"size\":\"120m\",\"time\":1512453600000,\"open\":0.20508,\"high\":0.2071,\"low\":0.20415,\"close\":0.2059,\"volume\":616188.42400966,\"close_time\":1512460761594,\"vwap\":0.2059,\"ema1\":0.20657631178740063,\"sma1\":0.2106420555555555,\"sma2\":0.20565777400000004,\"rsi_avg_gain\":0.0005856743438959017,\"rsi_avg_loss\":0.0006346492379341736,\"rsi\":48},{\"period_id\":\"120m210062\",\"size\":\"120m\",\"time\":1512446400000,\"open\":0.20531,\"high\":0.20798,\"low\":0.2045,\"close\":0.20485,\"volume\":407359.59938782,\"close_time\":1512453554144,\"vwap\":0.20495639075412722,\"ema1\":0.20662295397963515,\"sma1\":0.21062381481481476,\"sma2\":0.20570827400000002,\"rsi_avg_gain\":0.0005499569857340483,\"rsi_avg_loss\":0.0006834684100829562,\"rsi\":45},{\"period_id\":\"120m210061\",\"size\":\"120m\",\"time\":1512439200000,\"open\":0.20663,\"high\":0.20663,\"low\":0.205,\"close\":0.20515,\"volume\":595110.5549349199,\"close_time\":1512446369424,\"vwap\":0.2051439927521063,\"ema1\":0.20674522666788586,\"sma1\":0.21061353703703697,\"sma2\":0.20577927400000004,\"rsi_avg_gain\":0.000592261369252052,\"rsi_avg_loss\":0.0007129659800893379,\"rsi\":45},{\"period_id\":\"120m210060\",\"size\":\"120m\",\"time\":1512432000000,\"open\":0.20764,\"high\":0.208266,\"low\":0.2062,\"close\":0.20663,\"volume\":508934.48698234,\"close_time\":1512439024419,\"vwap\":0.2063773195011559,\"ema1\":0.20685524230015384,\"sma1\":0.21060366666666663,\"sma2\":0.20583510733333338,\"rsi_avg_gain\":0.0006378199361175944,\"rsi_avg_loss\":0.0006539633631731324,\"rsi\":49},{\"period_id\":\"120m210059\",\"size\":\"120m\",\"time\":1512424800000,\"open\":0.20697,\"high\":0.208266,\"low\":0.206,\"close\":0.208266,\"volume\":918199.0655971197,\"close_time\":1512431956920,\"vwap\":0.208266,\"ema1\":0.2068707762518886,\"sma1\":0.21060120370370367,\"sma2\":0.2057148406666667,\"rsi_avg_gain\":0.0006868830081266401,\"rsi_avg_loss\":0.0005784220834172196,\"rsi\":54},{\"period_id\":\"120m210058\",\"size\":\"120m\",\"time\":1512417600000,\"open\":0.2069,\"high\":0.2075,\"low\":0.2055,\"close\":0.20697,\"volume\":632957.20665359,\"close_time\":1512424783756,\"vwap\":0.20698198972636356,\"ema1\":0.20677455392443264,\"sma1\":0.2106058333333333,\"sma2\":0.2056783406666667,\"rsi_avg_gain\":0.000640027854905611,\"rsi_avg_loss\":0.0006229160898339288,\"rsi\":51},{\"period_id\":\"120m210057\",\"size\":\"120m\",\"time\":1512410400000,\"open\":0.20754,\"high\":0.20769,\"low\":0.20562,\"close\":0.207,\"volume\":703081.9222192308,\"close_time\":1512417597662,\"vwap\":0.2068401078096876,\"ema1\":0.20676107488473836,\"sma1\":0.21060870370370366,\"sma2\":0.2055448406666667,\"rsi_avg_gain\":0.0006892607668214271,\"rsi_avg_loss\":0.0006685250198211538,\"rsi\":51},{\"period_id\":\"120m210056\",\"size\":\"120m\",\"time\":1512403200000,\"open\":0.20617,\"high\":0.20754,\"low\":0.205,\"close\":0.20754,\"volume\":614650.2980817601,\"close_time\":1512410370625,\"vwap\":0.20743020328886658,\"ema1\":0.20674459729058237,\"sma1\":0.21061759259259252,\"sma2\":0.2056858406666667,\"rsi_avg_gain\":0.0007422808258076908,\"rsi_avg_loss\":0.0006784115598073954,\"rsi\":52},{\"period_id\":\"120m210055\",\"size\":\"120m\",\"time\":1512396000000,\"open\":0.206,\"high\":0.20778,\"low\":0.20474,\"close\":0.20616,\"volume\":555274.1970127601,\"close_time\":1512403151943,\"vwap\":0.20624330856130846,\"ema1\":0.20668974193131218,\"sma1\":0.21062888888888884,\"sma2\":0.20588317400000006,\"rsi_avg_gain\":0.0006932255047159753,\"rsi_avg_loss\":0.0007305970644079642,\"rsi\":49},{\"period_id\":\"120m210054\",\"size\":\"120m\",\"time\":1512388800000,\"open\":0.20601,\"high\":0.2078,\"low\":0.20311,\"close\":0.206,\"volume\":1058620.9446994702,\"close_time\":1512395944827,\"vwap\":0.20534885196478528,\"ema1\":0.20672627585760955,\"sma1\":0.21061685185185178,\"sma2\":0.20624967400000005,\"rsi_avg_gain\":0.0007342428512325871,\"rsi_avg_loss\":0.0007867968385931923,\"rsi\":48},{\"period_id\":\"120m210053\",\"size\":\"120m\",\"time\":1512381600000,\"open\":0.20655,\"high\":0.2079,\"low\":0.205,\"close\":0.20668,\"volume\":937889.2512387097,\"close_time\":1512388797198,\"vwap\":0.20569012159655362,\"ema1\":0.20677636384778952,\"sma1\":0.21058537037037028,\"sma2\":0.20651200733333339,\"rsi_avg_gain\":0.0007907230705581706,\"rsi_avg_loss\":0.0007950119800234367,\"rsi\":50},{\"period_id\":\"120m210052\",\"size\":\"120m\",\"time\":1512374400000,\"open\":0.2073,\"high\":0.20843,\"low\":0.20567,\"close\":0.207,\"volume\":846062.6015024798,\"close_time\":1512381483617,\"vwap\":0.207,\"ema1\":0.2067830096303957,\"sma1\":0.21054712962962954,\"sma2\":0.20679367400000004,\"rsi_avg_gain\":0.0008515479221395684,\"rsi_avg_loss\":0.0008315513631021637,\"rsi\":51},{\"period_id\":\"120m210051\",\"size\":\"120m\",\"time\":1512367200000,\"open\":0.20506,\"high\":0.2088,\"low\":0.20506,\"close\":0.20772,\"volume\":369815.74117833993,\"close_time\":1512374346573,\"vwap\":0.20700908731237275,\"ema1\":0.20676804477731953,\"sma1\":0.21051166666666657,\"sma2\":0.20700667400000003,\"rsi_avg_gain\":0.0009170516084579968,\"rsi_avg_loss\":0.0008401322371869457,\"rsi\":52},{\"period_id\":\"120m210050\",\"size\":\"120m\",\"time\":1512360000000,\"open\":0.20511,\"high\":0.20694,\"low\":0.205,\"close\":0.20526,\"volume\":148488.14376757,\"close_time\":1512367074218,\"vwap\":0.2058305795777259,\"ema1\":0.20670239269299673,\"sma1\":0.21049361111111103,\"sma2\":0.207210674,\"rsi_avg_gain\":0.0007983632706470742,\"rsi_avg_loss\":0.0009047577938936338,\"rsi\":47},{\"period_id\":\"120m210049\",\"size\":\"120m\",\"time\":1512352800000,\"open\":0.20479,\"high\":0.20596,\"low\":0.20479,\"close\":0.20591,\"volume\":112455.98687227,\"close_time\":1512359645187,\"vwap\":0.20564530315899923,\"ema1\":0.20680186805113443,\"sma1\":0.2104800925925925,\"sma2\":0.20744550733333336,\"rsi_avg_gain\":0.0008597758299276184,\"rsi_avg_loss\":0.0009243545472700663,\"rsi\":48},{\"period_id\":\"120m210048\",\"size\":\"120m\",\"time\":1512345600000,\"open\":0.2025,\"high\":0.205,\"low\":0.2022,\"close\":0.205,\"volume\":244383.31424754005,\"close_time\":1512352788800,\"vwap\":0.2048839203173313,\"ema1\":0.20686337619259199,\"sma1\":0.21046666666666655,\"sma2\":0.207812174,\"rsi_avg_gain\":0.0008559124322297413,\"rsi_avg_loss\":0.0009954587432139176,\"rsi\":46},{\"period_id\":\"120m210047\",\"size\":\"120m\",\"time\":1512338400000,\"open\":0.203,\"high\":0.20596,\"low\":0.201,\"close\":0.20321,\"volume\":1016917.7492541395,\"close_time\":1512345595739,\"vwap\":0.20316500100133553,\"ema1\":0.20699188489552936,\"sma1\":0.21043925925925913,\"sma2\":0.2083210073333333,\"rsi_avg_gain\":0.000784059542401261,\"rsi_avg_loss\":0.0010720324926919112,\"rsi\":42},{\"period_id\":\"120m210046\",\"size\":\"120m\",\"time\":1512331200000,\"open\":0.20927755,\"high\":0.21072,\"low\":0.2021,\"close\":0.2021,\"volume\":1914351.5573701388,\"close_time\":1512338396781,\"vwap\":0.20266199718428535,\"ema1\":0.2072527045434969,\"sma1\":0.21036685185185175,\"sma2\":0.20871917399999998,\"rsi_avg_gain\":0.0007589871995090503,\"rsi_avg_loss\":0.001154496530591289,\"rsi\":40},{\"period_id\":\"120m210045\",\"size\":\"120m\",\"time\":1512324000000,\"open\":0.20861,\"high\":0.21,\"low\":0.20824,\"close\":0.209,\"volume\":407974.7964288199,\"close_time\":1512331113146,\"vwap\":0.2090400243950392,\"ema1\":0.20760806347753116,\"sma1\":0.21029731481481473,\"sma2\":0.20892100733333333,\"rsi_avg_gain\":0.0008173708302405158,\"rsi_avg_loss\":0.0007125347252521584,\"rsi\":53},{\"period_id\":\"120m210044\",\"size\":\"120m\",\"time\":1512316800000,\"open\":0.20906,\"high\":0.21,\"low\":0.2084,\"close\":0.20978,\"volume\":615420.8094476499,\"close_time\":1512323994319,\"vwap\":0.20946955895179228,\"ema1\":0.20751206785529194,\"sma1\":0.21023064814814807,\"sma2\":0.20914134066666665,\"rsi_avg_gain\":0.0008802455094897862,\"rsi_avg_loss\":0.0007073450887330933,\"rsi\":55},{\"period_id\":\"120m210043\",\"size\":\"120m\",\"time\":1512309600000,\"open\":0.211,\"high\":0.2118,\"low\":0.208,\"close\":0.2095,\"volume\":1208601.3046583012,\"close_time\":1512316768941,\"vwap\":0.20957399406042168,\"ema1\":0.2073556587418638,\"sma1\":0.21014851851851843,\"sma2\":0.20935467399999996,\"rsi_avg_gain\":0.0009264182409890003,\"rsi_avg_loss\":0.0007617562494048696,\"rsi\":55},{\"period_id\":\"120m210042\",\"size\":\"120m\",\"time\":1512302400000,\"open\":0.2093,\"high\":0.213,\"low\":0.20887,\"close\":0.211,\"volume\":2451547.833988342,\"close_time\":1512309491987,\"vwap\":0.211,\"ema1\":0.2072077731378544,\"sma1\":0.21005694444444434,\"sma2\":0.20939200733333332,\"rsi_avg_gain\":0.0009976811826035387,\"rsi_avg_loss\":0.0007049682685898595,\"rsi\":59},{\"period_id\":\"120m210041\",\"size\":\"120m\",\"time\":1512295200000,\"open\":0.207,\"high\":0.2094,\"low\":0.20601,\"close\":0.20887,\"volume\":657082.7732712004,\"close_time\":1512302385755,\"vwap\":0.20929242383103538,\"ema1\":0.20694624025080988,\"sma1\":0.2099976851851851,\"sma2\":0.20954367399999996,\"rsi_avg_gain\":0.0009105797351115036,\"rsi_avg_loss\":0.0007591965969429255,\"rsi\":55},{\"period_id\":\"120m210040\",\"size\":\"120m\",\"time\":1512288000000,\"open\":0.20712,\"high\":0.208,\"low\":0.20605,\"close\":0.2069,\"volume\":404712.48956450995,\"close_time\":1512295180202,\"vwap\":0.20698747908707174,\"ema1\":0.20681356716465885,\"sma1\":0.20997175925925918,\"sma2\":0.20967867399999998,\"rsi_avg_gain\":0.0008290858685816192,\"rsi_avg_loss\":0.0008175963351693044,\"rsi\":50},{\"period_id\":\"120m210039\",\"size\":\"120m\",\"time\":1512280800000,\"open\":0.2053,\"high\":0.208,\"low\":0.20519,\"close\":0.20711,\"volume\":91034.59465931001,\"close_time\":1512287925924,\"vwap\":0.20711,\"ema1\":0.2068076062794629,\"sma1\":0.2099518518518518,\"sma2\":0.209827174,\"rsi_avg_gain\":0.0008928617046263591,\"rsi_avg_loss\":0.0008643345147977134,\"rsi\":51},{\"period_id\":\"120m210038\",\"size\":\"120m\",\"time\":1512273600000,\"open\":0.20466,\"high\":0.20735,\"low\":0.20465,\"close\":0.20515,\"volume\":341844.85708863003,\"close_time\":1512280257377,\"vwap\":0.20514999999999997,\"ema1\":0.20678675154011553,\"sma1\":0.20992879629629627,\"sma2\":0.20995800733333334,\"rsi_avg_gain\":0.0008107741434437722,\"rsi_avg_loss\":0.0009308217851667682,\"rsi\":47},{\"period_id\":\"120m210037\",\"size\":\"120m\",\"time\":1512266400000,\"open\":0.20416,\"high\":0.20511,\"low\":0.204,\"close\":0.20483,\"volume\":44043.33960736001,\"close_time\":1512273462247,\"vwap\":0.20461611106221528,\"ema1\":0.2068996309566752,\"sma1\":0.20995537037037032,\"sma2\":0.21014017399999999,\"rsi_avg_gain\":0.0008485260006317557,\"rsi_avg_loss\":0.0010024234609488272,\"rsi\":46},{\"period_id\":\"120m210036\",\"size\":\"120m\",\"time\":1512259200000,\"open\":0.2061,\"high\":0.2065,\"low\":0.204,\"close\":0.20412,\"volume\":437910.88185003994,\"close_time\":1512266341154,\"vwap\":0.20418877969885318,\"ema1\":0.20704236412610108,\"sma1\":0.20996101851851845,\"sma2\":0.210238174,\"rsi_avg_gain\":0.0008591818468341972,\"rsi_avg_loss\":0.001079532957944891,\"rsi\":44},{\"period_id\":\"120m210035\",\"size\":\"120m\",\"time\":1512252000000,\"open\":0.2075,\"high\":0.20869,\"low\":0.205,\"close\":0.206,\"volume\":627978.90874285,\"close_time\":1512259172274,\"vwap\":0.20609971462864043,\"ema1\":0.2072439064796253,\"sma1\":0.20996851851851847,\"sma2\":0.21022150733333334,\"rsi_avg_gain\":0.0009252727581291354,\"rsi_avg_loss\":0.0010179585700944985,\"rsi\":48},{\"period_id\":\"120m210034\",\"size\":\"120m\",\"time\":1512244800000,\"open\":0.20626,\"high\":0.208,\"low\":0.20587,\"close\":0.20749,\"volume\":375143.7825295599,\"close_time\":1512251968347,\"vwap\":0.20727502160567776,\"ema1\":0.20732969313339256,\"sma1\":0.20998703703703697,\"sma2\":0.21019650733333337,\"rsi_avg_gain\":0.0009964475856775305,\"rsi_avg_loss\":0.000981647690870997,\"rsi\":50},{\"period_id\":\"120m210033\",\"size\":\"120m\",\"time\":1512237600000,\"open\":0.20752,\"high\":0.20752,\"low\":0.2055,\"close\":0.20671,\"volume\":269664.32342694,\"close_time\":1512244785524,\"vwap\":0.20660449021182556,\"ema1\":0.20731863748741963,\"sma1\":0.20999425925925921,\"sma2\":0.21019750733333334,\"rsi_avg_gain\":0.0010130973999604171,\"rsi_avg_loss\":0.0010571590517072275,\"rsi\":49},{\"period_id\":\"120m210032\",\"size\":\"120m\",\"time\":1512230400000,\"open\":0.20577,\"high\":0.208,\"low\":0.2043,\"close\":0.20702,\"volume\":548313.6903024999,\"close_time\":1512237578495,\"vwap\":0.20683989670059535,\"ema1\":0.20736061248655202,\"sma1\":0.20999425925925921,\"sma2\":0.2101738406666667,\"rsi_avg_gain\":0.0010910279691881415,\"rsi_avg_loss\":0.0011146328249154753,\"rsi\":49},{\"period_id\":\"120m210031\",\"size\":\"120m\",\"time\":1512223200000,\"open\":0.2088,\"high\":0.2088,\"low\":0.205,\"close\":0.20593044,\"volume\":507990.8551120195,\"close_time\":1512230394515,\"vwap\":0.20567760460848195,\"ema1\":0.20738410300286594,\"sma1\":0.20994981481481473,\"sma2\":0.21013533333333337,\"rsi_avg_gain\":0.0010911408898949203,\"rsi_avg_loss\":0.0012003738114474349,\"rsi\":48},{\"period_id\":\"120m210030\",\"size\":\"120m\",\"time\":1512216000000,\"open\":0.2081,\"high\":0.2094,\"low\":0.207,\"close\":0.2087,\"volume\":644599.4130293902,\"close_time\":1512223178420,\"vwap\":0.2088365747516346,\"ema1\":0.20748435562375325,\"sma1\":0.209906574074074,\"sma2\":0.21007350000000002,\"rsi_avg_gain\":0.001175074804502222,\"rsi_avg_loss\":0.0010796671815587757,\"rsi\":52},{\"period_id\":\"120m210029\",\"size\":\"120m\",\"time\":1512208800000,\"open\":0.21,\"high\":0.211,\"low\":0.2061,\"close\":0.2081,\"volume\":1036579.6382968901,\"close_time\":1512215967286,\"vwap\":0.20821191787566873,\"ema1\":0.2074005180805638,\"sma1\":0.20983249999999992,\"sma2\":0.21001350000000005,\"rsi_avg_gain\":0.0012193113279254707,\"rsi_avg_loss\":0.0011627185032171432,\"rsi\":51},{\"period_id\":\"120m210028\",\"size\":\"120m\",\"time\":1512201600000,\"open\":0.2091,\"high\":0.211,\"low\":0.2075,\"close\":0.21,\"volume\":843859.35179703,\"close_time\":1512208772992,\"vwap\":0.20990591985259022,\"ema1\":0.2073522779481889,\"sma1\":0.20976287037037025,\"sma2\":0.20992100000000005,\"rsi_avg_gain\":0.0013131045069966609,\"rsi_avg_loss\":0.0011060045419261553,\"rsi\":54},{\"period_id\":\"120m210027\",\"size\":\"120m\",\"time\":1512194400000,\"open\":0.20701,\"high\":0.20999,\"low\":0.20612,\"close\":0.20916,\"volume\":324696.8229079299,\"close_time\":1512201587493,\"vwap\":0.20896205051289787,\"ema1\":0.20716967642737433,\"sma1\":0.20971555555555546,\"sma2\":0.20984833333333336,\"rsi_avg_gain\":0.001349497161381021,\"rsi_avg_loss\":0.0011910818143820133,\"rsi\":53},{\"period_id\":\"120m210026\",\"size\":\"120m\",\"time\":1512187200000,\"open\":0.20948,\"high\":0.20958,\"low\":0.2065,\"close\":0.2066,\"volume\":423074.3872495901,\"close_time\":1512194238488,\"vwap\":0.20688505047852002,\"ema1\":0.20703241273271047,\"sma1\":0.20966759259259252,\"sma2\":0.20982000000000006,\"rsi_avg_gain\":0.0012563815584103297,\"rsi_avg_loss\":0.001282703492411399,\"rsi\":49},{\"period_id\":\"120m210025\",\"size\":\"120m\",\"time\":1512180000000,\"open\":0.20896,\"high\":0.20956,\"low\":0.207,\"close\":0.20911,\"volume\":97823.74024907005,\"close_time\":1512186828813,\"vwap\":0.20866521525191153,\"ema1\":0.20706223430048362,\"sma1\":0.20960861111111107,\"sma2\":0.2097263333333334,\"rsi_avg_gain\":0.0013530262936726628,\"rsi_avg_loss\":0.0011882960687507385,\"rsi\":53},{\"period_id\":\"120m210024\",\"size\":\"120m\",\"time\":1512172800000,\"open\":0.21257,\"high\":0.2126,\"low\":0.20706,\"close\":0.20896,\"volume\":1319666.9405931998,\"close_time\":1512179990311,\"vwap\":0.20895798651537476,\"ema1\":0.20692100907982733,\"sma1\":0.20952953703703697,\"sma2\":0.20963566666666678,\"rsi_avg_gain\":0.0014455667778013304,\"rsi_avg_loss\":0.0012797034586546415,\"rsi\":53},{\"period_id\":\"120m210023\",\"size\":\"120m\",\"time\":1512165600000,\"open\":0.21203,\"high\":0.215,\"low\":0.21065,\"close\":0.21257,\"volume\":2184093.836138379,\"close_time\":1512172768309,\"vwap\":0.21226334638720443,\"ema1\":0.20678038901636714,\"sma1\":0.20943694444444438,\"sma2\":0.20948033333333343,\"rsi_avg_gain\":0.0015567642222475864,\"rsi_avg_loss\":0.001100449878551152,\"rsi\":59},{\"period_id\":\"120m210022\",\"size\":\"120m\",\"time\":1512158400000,\"open\":0.2096,\"high\":0.21236,\"low\":0.20813,\"close\":0.21236,\"volume\":1072673.46061336,\"close_time\":1512165578647,\"vwap\":0.21208494556172183,\"ema1\":0.20638110550025454,\"sma1\":0.20936768518518514,\"sma2\":0.20931766666666674,\"rsi_avg_gain\":0.001660361470112784,\"rsi_avg_loss\":0.001185099869208933,\"rsi\":58},{\"period_id\":\"120m210021\",\"size\":\"120m\",\"time\":1512151200000,\"open\":0.20898,\"high\":0.21,\"low\":0.2071,\"close\":0.2096,\"volume\":906369.1453939505,\"close_time\":1512158399931,\"vwap\":0.20938325308649772,\"ema1\":0.20596876794854796,\"sma1\":0.20930212962962957,\"sma2\":0.20919100000000007,\"rsi_avg_gain\":0.0015757738908906914,\"rsi_avg_loss\":0.00127626139760962,\"rsi\":55},{\"period_id\":\"120m210020\",\"size\":\"120m\",\"time\":1512144000000,\"open\":0.20799,\"high\":0.212,\"low\":0.20799,\"close\":0.20841,\"volume\":1272584.15052845,\"close_time\":1512151168203,\"vwap\":0.20872941888498106,\"ema1\":0.20571833815189608,\"sma1\":0.2092280555555555,\"sma2\":0.20910916666666676,\"rsi_avg_gain\":0.001605448805574591,\"rsi_avg_loss\":0.0013744353512718985,\"rsi\":54},{\"period_id\":\"120m210019\",\"size\":\"120m\",\"time\":1512136800000,\"open\":0.20921,\"high\":0.20998,\"low\":0.207,\"close\":0.20876,\"volume\":1429491.255365281,\"close_time\":1512143985731,\"vwap\":0.20945304248563068,\"ema1\":0.2055327063003027,\"sma1\":0.2091541666666666,\"sma2\":0.20902983333333341,\"rsi_avg_gain\":0.0017289448675418674,\"rsi_avg_loss\":0.001453238070600507,\"rsi\":54},{\"period_id\":\"120m210018\",\"size\":\"120m\",\"time\":1512129600000,\"open\":0.20256,\"high\":0.2169,\"low\":0.20121,\"close\":0.2095,\"volume\":2799926.6295868102,\"close_time\":1512136798511,\"vwap\":0.20936266735671566,\"ema1\":0.20531013432101325,\"sma1\":0.20901481481481474,\"sma2\":0.2089548333333334,\"rsi_avg_gain\":0.0018619406265835494,\"rsi_avg_loss\":0.0015081025375697774,\"rsi\":55},{\"period_id\":\"120m210017\",\"size\":\"120m\",\"time\":1512122400000,\"open\":0.202104,\"high\":0.207,\"low\":0.201,\"close\":0.20258,\"volume\":1291062.32261302,\"close_time\":1512129593960,\"vwap\":0.20217465092655812,\"ema1\":0.20502117806729003,\"sma1\":0.2089685185185185,\"sma2\":0.20900850000000007,\"rsi_avg_gain\":0.0014728591363207468,\"rsi_avg_loss\":0.0016241104250751448,\"rsi\":48},{\"period_id\":\"120m210016\",\"size\":\"120m\",\"time\":1512115200000,\"open\":0.19814,\"high\":0.20206,\"low\":0.196,\"close\":0.20206,\"volume\":713837.5213206597,\"close_time\":1512122388374,\"vwap\":0.20203000188235623,\"ema1\":0.205189535175379,\"sma1\":0.20896796296296294,\"sma2\":0.2090548333333334,\"rsi_avg_gain\":0.0015461559929608026,\"rsi_avg_loss\":0.0017490419962347713,\"rsi\":47},{\"period_id\":\"120m210015\",\"size\":\"120m\",\"time\":1512108000000,\"open\":0.19743,\"high\":0.19982,\"low\":0.1961,\"close\":0.1971,\"volume\":557649.4492912301,\"close_time\":1512115180599,\"vwap\":0.1979054242550131,\"ema1\":0.2054053651874741,\"sma1\":0.20899740740740735,\"sma2\":0.2091865000000001,\"rsi_avg_gain\":0.0012835526078039418,\"rsi_avg_loss\":0.0018835836882528307,\"rsi\":41},{\"period_id\":\"120m210014\",\"size\":\"120m\",\"time\":1512100800000,\"open\":0.199,\"high\":0.20197,\"low\":0.19702,\"close\":0.1975,\"volume\":635311.7339892703,\"close_time\":1512107990517,\"vwap\":0.1975695288392931,\"ema1\":0.2059781489935068,\"sma1\":0.20898657407407406,\"sma2\":0.20932833333333345,\"rsi_avg_gain\":0.0013822874237888606,\"rsi_avg_loss\":0.0019977055104261243,\"rsi\":41},{\"period_id\":\"120m210013\",\"size\":\"120m\",\"time\":1512093600000,\"open\":0.20012,\"high\":0.201,\"low\":0.19722,\"close\":0.1976,\"volume\":236566.50866583994,\"close_time\":1512100510000,\"vwap\":0.19759889375618944,\"ema1\":0.2065628489240935,\"sma1\":0.20897259259259257,\"sma2\":0.20943650000000008,\"rsi_avg_gain\":0.001488617225618773,\"rsi_avg_loss\":0.002143682857381981,\"rsi\":41},{\"period_id\":\"120m210012\",\"size\":\"120m\",\"time\":1512086400000,\"open\":0.20222,\"high\":0.2041,\"low\":0.198,\"close\":0.20012,\"volume\":698903.8259039099,\"close_time\":1512093589718,\"vwap\":0.1998582498413231,\"ema1\":0.20718097643609992,\"sma1\":0.20892999999999995,\"sma2\":0.20950633333333343,\"rsi_avg_gain\":0.0016031262429740633,\"rsi_avg_loss\":0.002114735384872903,\"rsi\":43},{\"period_id\":\"120m210011\",\"size\":\"120m\",\"time\":1512079200000,\"open\":0.20296,\"high\":0.20684,\"low\":0.20112,\"close\":0.2026,\"volume\":1227702.9432458305,\"close_time\":1512086391967,\"vwap\":0.202757730378751,\"ema1\":0.20766794032824476,\"sma1\":0.20887870370370368,\"sma2\":0.20958883333333342,\"rsi_avg_gain\":0.0017264436462797604,\"rsi_avg_loss\":0.0020866381067862027,\"rsi\":45},{\"period_id\":\"120m210010\",\"size\":\"120m\",\"time\":1512072000000,\"open\":0.2039,\"high\":0.2045,\"low\":0.19901,\"close\":0.2024,\"volume\":1258077.1042229799,\"close_time\":1512079169720,\"vwap\":0.20269810444317915,\"ema1\":0.20801745345433062,\"sma1\":0.20884907407407405,\"sma2\":0.20968183333333337,\"rsi_avg_gain\":0.0018438623883012802,\"rsi_avg_loss\":0.0022471487303851417,\"rsi\":45},{\"period_id\":\"120m210009\",\"size\":\"120m\",\"time\":1512064800000,\"open\":0.19698,\"high\":0.2046,\"low\":0.19566,\"close\":0.2039,\"volume\":1647673.1437247903,\"close_time\":1512071867725,\"vwap\":0.2039412102064541,\"ema1\":0.2084048640373879,\"sma1\":0.2088435185185185,\"sma2\":0.20974683333333338,\"rsi_avg_gain\":0.001985697956632148,\"rsi_avg_loss\":0.0023046217096455374,\"rsi\":46},{\"period_id\":\"120m210008\",\"size\":\"120m\",\"time\":1512057600000,\"open\":0.19378,\"high\":0.19889,\"low\":0.19002,\"close\":0.197,\"volume\":1298684.4076519401,\"close_time\":1512064799932,\"vwap\":0.19746936334336665,\"ema1\":0.20871554431582845,\"sma1\":0.20887231481481483,\"sma2\":0.20992133333333338,\"rsi_avg_gain\":0.0016076747225269295,\"rsi_avg_loss\":0.0024819003026951944,\"rsi\":39},{\"period_id\":\"120m210007\",\"size\":\"120m\",\"time\":1512050400000,\"open\":0.1957,\"high\":0.196,\"low\":0.19,\"close\":0.19341,\"volume\":3496820.0965343695,\"close_time\":1512057579478,\"vwap\":0.19341,\"ema1\":0.20952351288933385,\"sma1\":0.20893879629629628,\"sma2\":0.21015883333333338,\"rsi_avg_gain\":0.001455188162721308,\"rsi_avg_loss\":0.002672815710594825,\"rsi\":35},{\"period_id\":\"120m210006\",\"size\":\"120m\",\"time\":1512043200000,\"open\":0.201,\"high\":0.205,\"low\":0.1957,\"close\":0.196,\"volume\":2207844.756551129,\"close_time\":1512050392604,\"vwap\":0.19580001192858984,\"ema1\":0.2106347896403224,\"sma1\":0.208925,\"sma2\":0.2103088333333334,\"rsi_avg_gain\":0.0015671257136998702,\"rsi_avg_loss\":0.0026791861498713493,\"rsi\":37},{\"period_id\":\"120m210005\",\"size\":\"120m\",\"time\":1512036000000,\"open\":0.20723,\"high\":0.20859,\"low\":0.2,\"close\":0.20132,\"volume\":1182444.4129667808,\"close_time\":1512043188497,\"vwap\":0.2011728120110748,\"ema1\":0.211644085477586,\"sma1\":0.20887981481481482,\"sma2\":0.21035600000000004,\"rsi_avg_gain\":0.001687673845522937,\"rsi_avg_loss\":0.002476046622938377,\"rsi\":41},{\"period_id\":\"120m210004\",\"size\":\"120m\",\"time\":1512028800000,\"open\":0.206,\"high\":0.2105,\"low\":0.206,\"close\":0.20719,\"volume\":1239318.2030057004,\"close_time\":1512035986958,\"vwap\":0.20719000000000004,\"ema1\":0.21235609137259193,\"sma1\":0.20882814814814818,\"sma2\":0.21028283333333336,\"rsi_avg_gain\":0.001817494910563163,\"rsi_avg_loss\":0.0022149732862413282,\"rsi\":45},{\"period_id\":\"120m210003\",\"size\":\"120m\",\"time\":1512021600000,\"open\":0.2058,\"high\":0.208,\"low\":0.20034,\"close\":0.206,\"volume\":1034005.3892385698,\"close_time\":1512028795858,\"vwap\":0.206,\"ema1\":0.21271237353621897,\"sma1\":0.20880490740740745,\"sma2\":0.21024950000000003,\"rsi_avg_gain\":0.0018657637498372508,\"rsi_avg_loss\":0.0023853558467214304,\"rsi\":44},{\"period_id\":\"120m210002\",\"size\":\"120m\",\"time\":1512014400000,\"open\":0.20938,\"high\":0.21089,\"low\":0.205,\"close\":0.20788,\"volume\":707748.94552877,\"close_time\":1512021589204,\"vwap\":0.2063601664190634,\"ema1\":0.21317529584906167,\"sma1\":0.20873240740740742,\"sma2\":0.21019433333333337,\"rsi_avg_gain\":0.00200928403828627,\"rsi_avg_loss\":0.002424229373392308,\"rsi\":45},{\"period_id\":\"120m210001\",\"size\":\"120m\",\"time\":1512007200000,\"open\":0.20915,\"high\":0.21,\"low\":0.20531,\"close\":0.20941,\"volume\":290501.8359916002,\"close_time\":1512014340616,\"vwap\":0.20916280225368247,\"ema1\":0.21354048866623834,\"sma1\":0.2086953703703704,\"sma2\":0.2100956666666667,\"rsi_avg_gain\":0.0021638443489236754,\"rsi_avg_loss\":0.0024930162482686394,\"rsi\":46},{\"period_id\":\"120m210000\",\"size\":\"120m\",\"time\":1512000000000,\"open\":0.201,\"high\":0.20999,\"low\":0.2,\"close\":0.20998,\"volume\":1165564.5829144393,\"close_time\":1512007030383,\"vwap\":0.20933168336186853,\"ema1\":0.2138253499535651,\"sma1\":0.20865833333333336,\"sma2\":0.2099876666666667,\"rsi_avg_gain\":0.0023302939142254967,\"rsi_avg_loss\":0.002640940575058536,\"rsi\":47},{\"period_id\":\"120m209999\",\"size\":\"120m\",\"time\":1511992800000,\"open\":0.20395,\"high\":0.21,\"low\":0.2,\"close\":0.20105,\"volume\":1814667.9738222098,\"close_time\":1511999980364,\"vwap\":0.20102669557861905,\"ema1\":0.21409054650208684,\"sma1\":0.20863870370370372,\"sma2\":0.2100181666666667,\"rsi_avg_gain\":0.001822624215319766,\"rsi_avg_loss\":0.002844089850063039,\"rsi\":39},{\"period_id\":\"120m209998\",\"size\":\"120m\",\"time\":1511985600000,\"open\":0.1959,\"high\":0.21,\"low\":0.191,\"close\":0.20478,\"volume\":4757349.276058303,\"close_time\":1511992776919,\"vwap\":0.20478,\"ema1\":0.21498989453671352,\"sma1\":0.20861925925925925,\"sma2\":0.20996150000000005,\"rsi_avg_gain\":0.0019628260780366713,\"rsi_avg_loss\":0.0027759429154525046,\"rsi\":41},{\"period_id\":\"120m209997\",\"size\":\"120m\",\"time\":1511978400000,\"open\":0.21606,\"high\":0.21957,\"low\":0.192,\"close\":0.19899,\"volume\":4420248.183224255,\"close_time\":1511985598964,\"vwap\":0.1953739328309487,\"ema1\":0.2156940251944179,\"sma1\":0.2085112962962963,\"sma2\":0.21001166666666674,\"rsi_avg_gain\":0.0016684280840394933,\"rsi_avg_loss\":0.002989476985871928,\"rsi\":36},{\"period_id\":\"120m209996\",\"size\":\"120m\",\"time\":1511971200000,\"open\":0.21998,\"high\":0.223,\"low\":0.216,\"close\":0.216,\"volume\":2351105.5345271663,\"close_time\":1511978391883,\"vwap\":0.21601332261025372,\"ema1\":0.21684602693196398,\"sma1\":0.20834462962962963,\"sma2\":0.20977833333333334,\"rsi_avg_gain\":0.001796768705888685,\"rsi_avg_loss\":0.0019109752155543843,\"rsi\":48},{\"period_id\":\"120m209995\",\"size\":\"120m\",\"time\":1511964000000,\"open\":0.22841,\"high\":0.23,\"low\":0.218,\"close\":0.218,\"volume\":4281064.854303387,\"close_time\":1511971197605,\"vwap\":0.21828119211030692,\"ema1\":0.21690437361692702,\"sma1\":0.20811185185185188,\"sma2\":0.20949500000000004,\"rsi_avg_gain\":0.0019349816832647377,\"rsi_avg_loss\":0.001904127155212414,\"rsi\":50},{\"period_id\":\"120m209994\",\"size\":\"120m\",\"time\":1511956800000,\"open\":0.22286,\"high\":0.22878,\"low\":0.22169,\"close\":0.22799,\"volume\":3263738.472919323,\"close_time\":1511963974595,\"vwap\":0.22775874422527723,\"ema1\":0.2168288131767151,\"sma1\":0.20787731481481483,\"sma2\":0.20903600000000006,\"rsi_avg_gain\":0.002083826428131256,\"rsi_avg_loss\":0.0012821369363825996,\"rsi\":62},{\"period_id\":\"120m209993\",\"size\":\"120m\",\"time\":1511949600000,\"open\":0.22398,\"high\":0.22488,\"low\":0.22111,\"close\":0.22242,\"volume\":2361820.0209971713,\"close_time\":1511956799508,\"vwap\":0.22261394350063574,\"ema1\":0.21605907615441958,\"sma1\":0.20768370370370373,\"sma2\":0.20868383333333335,\"rsi_avg_gain\":0.0018156592302951999,\"rsi_avg_loss\":0.0013807628545658764,\"rsi\":57},{\"period_id\":\"120m209992\",\"size\":\"120m\",\"time\":1511942400000,\"open\":0.2195,\"high\":0.22488,\"low\":0.2177,\"close\":0.2239,\"volume\":2649396.6815256095,\"close_time\":1511949549969,\"vwap\":0.22415154795342407,\"ema1\":0.2156203917512761,\"sma1\":0.20746259259259267,\"sma2\":0.20830200000000007,\"rsi_avg_gain\":0.001955325324933292,\"rsi_avg_loss\":0.0013731292279940222,\"rsi\":59},{\"period_id\":\"120m209991\",\"size\":\"120m\",\"time\":1511935200000,\"open\":0.2175,\"high\":0.22077,\"low\":0.214,\"close\":0.2205,\"volume\":2973725.5863664374,\"close_time\":1511942396778,\"vwap\":0.2205,\"ema1\":0.21504938428584686,\"sma1\":0.20727925925925936,\"sma2\":0.2079796666666667,\"rsi_avg_gain\":0.0018441965037743157,\"rsi_avg_loss\":0.0014787545532243315,\"rsi\":55},{\"period_id\":\"120m209990\",\"size\":\"120m\",\"time\":1511928000000,\"open\":0.22001,\"high\":0.22217,\"low\":0.2151,\"close\":0.2175,\"volume\":1326236.08597484,\"close_time\":1511935186922,\"vwap\":0.21749999999999997,\"ema1\":0.2146734797538363,\"sma1\":0.20712027777777783,\"sma2\":0.2077513333333334,\"rsi_avg_gain\":0.001755288542526186,\"rsi_avg_loss\":0.001592504903472357,\"rsi\":52},{\"period_id\":\"120m209989\",\"size\":\"120m\",\"time\":1511920800000,\"open\":0.22788,\"high\":0.22788,\"low\":0.22,\"close\":0.22,\"volume\":579065.919381,\"close_time\":1511926770791,\"vwap\":0.22004601671977295,\"ema1\":0.2144785473230664,\"sma1\":0.2068621296296297,\"sma2\":0.20747766666666675,\"rsi_avg_gain\":0.0018903107381051233,\"rsi_avg_loss\":0.0015226975883548457,\"rsi\":55},{\"period_id\":\"120m209988\",\"size\":\"120m\",\"time\":1511913600000,\"open\":0.23498,\"high\":0.235,\"low\":0.22137,\"close\":0.227,\"volume\":1532362.66207104,\"close_time\":1511920523754,\"vwap\":0.22640382104580462,\"ema1\":0.21409775748327786,\"sma1\":0.20650898148148156,\"sma2\":0.20706983333333343,\"rsi_avg_gain\":0.002035719256420902,\"rsi_avg_loss\":0.0011013666336129103,\"rsi\":65},{\"period_id\":\"120m209987\",\"size\":\"120m\",\"time\":1511906400000,\"open\":0.22599,\"high\":0.235,\"low\":0.22402,\"close\":0.23374,\"volume\":5473626.6050023865,\"close_time\":1511913591464,\"vwap\":0.23466396253929483,\"ema1\":0.2132079476545384,\"sma1\":0.20614666666666673,\"sma2\":0.2065958333333334,\"rsi_avg_gain\":0.002192313045376356,\"rsi_avg_loss\":0.0006676256054292884,\"rsi\":77},{\"period_id\":\"120m209986\",\"size\":\"120m\",\"time\":1511899200000,\"open\":0.22344,\"high\":0.2275,\"low\":0.221,\"close\":0.22599,\"volume\":1912175.8815506604,\"close_time\":1511906390069,\"vwap\":0.22565822762717966,\"ema1\":0.21179194404450657,\"sma1\":0.2058545370370371,\"sma2\":0.20629600000000006,\"rsi_avg_gain\":0.0017647986642514598,\"rsi_avg_loss\":0.0007189814212315414,\"rsi\":71},{\"period_id\":\"120m209985\",\"size\":\"120m\",\"time\":1511892000000,\"open\":0.22245,\"high\":0.22395,\"low\":0.22021,\"close\":0.22111,\"volume\":1405796.5932471403,\"close_time\":1511899189317,\"vwap\":0.22210182539192713,\"ema1\":0.21081276777171393,\"sma1\":0.20559564814814818,\"sma2\":0.2060825,\"rsi_avg_gain\":0.0015251677922708032,\"rsi_avg_loss\":0.0007742876844031984,\"rsi\":66},{\"period_id\":\"120m209984\",\"size\":\"120m\",\"time\":1511884800000,\"open\":0.2223,\"high\":0.22769,\"low\":0.2201,\"close\":0.223,\"volume\":3903963.718945954,\"close_time\":1511891998498,\"vwap\":0.223,\"ema1\":0.21010261382493559,\"sma1\":0.20531611111111112,\"sma2\":0.20581599999999997,\"rsi_avg_gain\":0.0016424883916762495,\"rsi_avg_loss\":0.0006884636601265212,\"rsi\":70},{\"period_id\":\"120m209983\",\"size\":\"120m\",\"time\":1511877600000,\"open\":0.21498,\"high\":0.2223,\"low\":0.21382,\"close\":0.2223,\"volume\":3476791.268732116,\"close_time\":1511884789277,\"vwap\":0.22227000688439566,\"ema1\":0.20921313891631046,\"sma1\":0.20508092592592592,\"sma2\":0.20551100000000003,\"rsi_avg_gain\":0.0017149874987282682,\"rsi_avg_loss\":0.0007414224032131767,\"rsi\":70},{\"period_id\":\"120m209982\",\"size\":\"120m\",\"time\":1511870400000,\"open\":0.21701,\"high\":0.21897,\"low\":0.21,\"close\":0.21324,\"volume\":1580030.8104449601,\"close_time\":1511877576662,\"vwap\":0.2142299227269179,\"ema1\":0.20831059677260774,\"sma1\":0.20487055555555556,\"sma2\":0.20535616666666667,\"rsi_avg_gain\":0.0011499865370919824,\"rsi_avg_loss\":0.0007984548957680363,\"rsi\":59},{\"period_id\":\"120m209981\",\"size\":\"120m\",\"time\":1511863200000,\"open\":0.2144,\"high\":0.21995,\"low\":0.21399,\"close\":0.21797,\"volume\":2105043.1876786407,\"close_time\":1511870399364,\"vwap\":0.21758387769736715,\"ema1\":0.2079706379293393,\"sma1\":0.20467657407407408,\"sma2\":0.2050981666666667,\"rsi_avg_gain\":0.0012384470399452118,\"rsi_avg_loss\":0.0004960283492886556,\"rsi\":71},{\"period_id\":\"120m209980\",\"size\":\"120m\",\"time\":1511856000000,\"open\":0.21703,\"high\":0.218,\"low\":0.20949,\"close\":0.215,\"volume\":1955352.6909786584,\"close_time\":1511863185135,\"vwap\":0.21460040246353015,\"ema1\":0.20728102675205237,\"sma1\":0.20445435185185185,\"sma2\":0.2048826666666667,\"rsi_avg_gain\":0.0011052506584025357,\"rsi_avg_loss\":0.0005341843761570138,\"rsi\":67},{\"period_id\":\"120m209979\",\"size\":\"120m\",\"time\":1511848800000,\"open\":0.2126,\"high\":0.21772,\"low\":0.2101,\"close\":0.21602,\"volume\":1171198.8276388498,\"close_time\":1511855966678,\"vwap\":0.21693467697592567,\"ema1\":0.20674868376943528,\"sma1\":0.20422814814814816,\"sma2\":0.2046606666666667,\"rsi_avg_gain\":0.0011902699398181154,\"rsi_avg_loss\":0.0004968139435537077,\"rsi\":71},{\"period_id\":\"120m209978\",\"size\":\"120m\",\"time\":1511841600000,\"open\":0.21568,\"high\":0.218,\"low\":0.2126,\"close\":0.213,\"volume\":1039125.3916204604,\"close_time\":1511848787131,\"vwap\":0.212912600508364,\"ema1\":0.206109282650086,\"sma1\":0.20400620370370373,\"sma2\":0.20447433333333334,\"rsi_avg_gain\":0.0010495214736502786,\"rsi_avg_loss\":0.0005350304007501469,\"rsi\":66},{\"period_id\":\"120m209977\",\"size\":\"120m\",\"time\":1511834400000,\"open\":0.21,\"high\":0.21809,\"low\":0.20801,\"close\":0.21576,\"volume\":3468057.7474857005,\"close_time\":1511841578393,\"vwap\":0.21568250186753132,\"ema1\":0.20563406076388502,\"sma1\":0.2037875,\"sma2\":0.20425250000000003,\"rsi_avg_gain\":0.0011302538947003,\"rsi_avg_loss\":0.00036387889311554185,\"rsi\":76},{\"period_id\":\"120m209976\",\"size\":\"120m\",\"time\":1511827200000,\"open\":0.205,\"high\":0.21,\"low\":0.205,\"close\":0.21,\"volume\":1558481.138053661,\"close_time\":1511834380900,\"vwap\":0.21,\"ema1\":0.20493572012691158,\"sma1\":0.2036434259259259,\"sma2\":0.20412683333333337,\"rsi_avg_gain\":0.0007741195789080145,\"rsi_avg_loss\":0.0003918695772013528,\"rsi\":66},{\"period_id\":\"120m209975\",\"size\":\"120m\",\"time\":1511820000000,\"open\":0.20599,\"high\":0.2065,\"low\":0.2048,\"close\":0.205,\"volume\":389789.4495868001,\"close_time\":1511827185105,\"vwap\":0.20536612914664273,\"ema1\":0.20458645944600892,\"sma1\":0.20358314814814815,\"sma2\":0.2040988333333334,\"rsi_avg_gain\":0.0004490518542086307,\"rsi_avg_loss\":0.00042201339083222607,\"rsi\":52},{\"period_id\":\"120m209974\",\"size\":\"120m\",\"time\":1511812800000,\"open\":0.20676,\"high\":0.2072,\"low\":0.205,\"close\":0.20599,\"volume\":1422752.5999248598,\"close_time\":1511819964513,\"vwap\":0.20599000000000006,\"ema1\":0.20455793940780265,\"sma1\":0.20345999999999995,\"sma2\":0.20407566666666666,\"rsi_avg_gain\":0.00048359430453237155,\"rsi_avg_loss\":0.00037832211320393435,\"rsi\":56},{\"period_id\":\"120m209973\",\"size\":\"120m\",\"time\":1511805600000,\"open\":0.2056,\"high\":0.2075,\"low\":0.20438,\"close\":0.20677,\"volume\":1196450.54110655,\"close_time\":1511812798973,\"vwap\":0.20677,\"ema1\":0.20445917660834076,\"sma1\":0.2033433333333333,\"sma2\":0.20399083333333332,\"rsi_avg_gain\":0.000520793866419477,\"rsi_avg_loss\":0.00034742381421962133,\"rsi\":60},{\"period_id\":\"120m209972\",\"size\":\"120m\",\"time\":1511798400000,\"open\":0.20379,\"high\":0.20596,\"low\":0.2036,\"close\":0.2056,\"volume\":1021665.5822057405,\"close_time\":1511805533503,\"vwap\":0.20522818645283472,\"ema1\":0.2042998094778815,\"sma1\":0.20321870370370365,\"sma2\":0.20394649999999998,\"rsi_avg_gain\":0.0004708549330671288,\"rsi_avg_loss\":0.000374148723005746,\"rsi\":56},{\"period_id\":\"120m209971\",\"size\":\"120m\",\"time\":1511791200000,\"open\":0.20492,\"high\":0.2057,\"low\":0.20361,\"close\":0.20362,\"volume\":1156598.33650544,\"close_time\":1511798339155,\"vwap\":0.20429312751392767,\"ema1\":0.20421014116601127,\"sma1\":0.2030909259259259,\"sma2\":0.20390683333333334,\"rsi_avg_gain\":0.00035476685099536875,\"rsi_avg_loss\":0.00040292939400618803,\"rsi\":47},{\"period_id\":\"120m209970\",\"size\":\"120m\",\"time\":1511784000000,\"open\":0.20488,\"high\":0.205,\"low\":0.203,\"close\":0.20499,\"volume\":1106405.0097936601,\"close_time\":1511791177277,\"vwap\":0.20497375394441722,\"ema1\":0.20425084055677067,\"sma1\":0.20297490740740737,\"sma2\":0.20384716666666666,\"rsi_avg_gain\":0.00038205660876424325,\"rsi_avg_loss\":0.00032853934739127865,\"rsi\":54},{\"period_id\":\"120m209969\",\"size\":\"120m\",\"time\":1511776800000,\"open\":0.2043,\"high\":0.20497,\"low\":0.20151,\"close\":0.2045,\"volume\":1162813.67094193,\"close_time\":1511783982966,\"vwap\":0.2046698231780652,\"ema1\":0.2041998640434445,\"sma1\":0.20285972222222218,\"sma2\":0.2037865,\"rsi_avg_gain\":0.0003737532709768759,\"rsi_avg_loss\":0.00035381160488291545,\"rsi\":51},{\"period_id\":\"120m209968\",\"size\":\"120m\",\"time\":1511769600000,\"open\":0.2048,\"high\":0.2055,\"low\":0.202,\"close\":0.20445,\"volume\":1043370.4015265596,\"close_time\":1511776708321,\"vwap\":0.20483739817944585,\"ema1\":0.20417916501195793,\"sma1\":0.20275324074074075,\"sma2\":0.20371350000000002,\"rsi_avg_gain\":0.0003986573687443283,\"rsi_avg_loss\":0.00038102788218160124,\"rsi\":51},{\"period_id\":\"120m209967\",\"size\":\"120m\",\"time\":1511762400000,\"open\":0.204,\"high\":0.2056,\"low\":0.2035,\"close\":0.2048,\"volume\":727163.5247073199,\"close_time\":1511769598414,\"vwap\":0.2050439509101378,\"ema1\":0.20416048673692055,\"sma1\":0.20261805555555554,\"sma2\":0.20366683333333338,\"rsi_avg_gain\":0.0004293233201861998,\"rsi_avg_loss\":0.00038341464234941546,\"rsi\":53},{\"period_id\":\"120m209966\",\"size\":\"120m\",\"time\":1511755200000,\"open\":0.20399,\"high\":0.2049,\"low\":0.2035,\"close\":0.2049,\"volume\":169624.14325531002,\"close_time\":1511762296420,\"vwap\":0.20451097683914723,\"ema1\":0.20411638237394955,\"sma1\":0.20250296296296297,\"sma2\":0.2035981666666667,\"rsi_avg_gain\":0.0004623481909697536,\"rsi_avg_loss\":0.00040521576868398674,\"rsi\":53},{\"period_id\":\"120m209965\",\"size\":\"120m\",\"time\":1511748000000,\"open\":0.20393,\"high\":0.20403,\"low\":0.20161,\"close\":0.20349,\"volume\":152512.01532671004,\"close_time\":1511754632407,\"vwap\":0.2025593116694379,\"ema1\":0.20406233977904953,\"sma1\":0.20239157407407407,\"sma2\":0.2035233333333334,\"rsi_avg_gain\":0.0003894518979674274,\"rsi_avg_loss\":0.0004363862124289088,\"rsi\":47},{\"period_id\":\"120m209964\",\"size\":\"120m\",\"time\":1511740800000,\"open\":0.20231,\"high\":0.20396,\"low\":0.2013,\"close\":0.20352,\"volume\":209917.99183870008,\"close_time\":1511747968177,\"vwap\":0.20342800396553476,\"ema1\":0.2041018114879495,\"sma1\":0.20228796296296295,\"sma2\":0.2034266666666667,\"rsi_avg_gain\":0.00041940973627261415,\"rsi_avg_loss\":0.0004676466903080555,\"rsi\":47},{\"period_id\":\"120m209963\",\"size\":\"120m\",\"time\":1511733600000,\"open\":0.2026,\"high\":0.20495,\"low\":0.201,\"close\":0.20325,\"volume\":635724.2675824101,\"close_time\":1511740746473,\"vwap\":0.20273682867850912,\"ema1\":0.20414193641815293,\"sma1\":0.20218731481481478,\"sma2\":0.20334450000000007,\"rsi_avg_gain\":0.00043090279290896753,\"rsi_avg_loss\":0.0005036195126394444,\"rsi\":46},{\"period_id\":\"120m209962\",\"size\":\"120m\",\"time\":1511726400000,\"open\":0.202,\"high\":0.20407,\"low\":0.201,\"close\":0.2026,\"volume\":465787.79993479024,\"close_time\":1511733598819,\"vwap\":0.2029573500238283,\"ema1\":0.20420344927457726,\"sma1\":0.20209481481481475,\"sma2\":0.20330283333333338,\"rsi_avg_gain\":0.000414049161594274,\"rsi_avg_loss\":0.0005423594751501709,\"rsi\":43},{\"period_id\":\"120m209961\",\"size\":\"120m\",\"time\":1511719200000,\"open\":0.2035,\"high\":0.20509,\"low\":0.2011,\"close\":0.202,\"volume\":861816.7927144095,\"close_time\":1511726348696,\"vwap\":0.20216498130972846,\"ema1\":0.2043140319831688,\"sma1\":0.201999074074074,\"sma2\":0.20326950000000005,\"rsi_avg_gain\":0.00039974525094768046,\"rsi_avg_loss\":0.0005840794347771072,\"rsi\":41},{\"period_id\":\"120m209960\",\"size\":\"120m\",\"time\":1511712000000,\"open\":0.20403,\"high\":0.2056,\"low\":0.203,\"close\":0.2035,\"volume\":878007.2638635704,\"close_time\":1511719170255,\"vwap\":0.2035,\"ema1\":0.20447362039580114,\"sma1\":0.20191018518518516,\"sma2\":0.20324416666666673,\"rsi_avg_gain\":0.00043049488563596356,\"rsi_avg_loss\":0.0005136240066830405,\"rsi\":46},{\"period_id\":\"120m209959\",\"size\":\"120m\",\"time\":1511704800000,\"open\":0.20491,\"high\":0.20563,\"low\":0.204,\"close\":0.204,\"volume\":516405.63428572,\"close_time\":1511711912210,\"vwap\":0.2040010751634359,\"ema1\":0.20454076662999432,\"sma1\":0.2018391666666666,\"sma2\":0.2032106666666667,\"rsi_avg_gain\":0.00046360987683873,\"rsi_avg_loss\":0.0005146720071971205,\"rsi\":47},{\"period_id\":\"120m209958\",\"size\":\"120m\",\"time\":1511697600000,\"open\":0.20503,\"high\":0.2057,\"low\":0.2039,\"close\":0.205,\"volume\":523334.76196654997,\"close_time\":1511704792409,\"vwap\":0.20466653070573157,\"ema1\":0.20457806088033875,\"sma1\":0.20177712962962957,\"sma2\":0.20317433333333337,\"rsi_avg_gain\":0.0004992721750570939,\"rsi_avg_loss\":0.000477339084673822,\"rsi\":51},{\"period_id\":\"120m209957\",\"size\":\"120m\",\"time\":1511690400000,\"open\":0.2046,\"high\":0.20647,\"low\":0.2034,\"close\":0.2058,\"volume\":814346.0664185897,\"close_time\":1511697529865,\"vwap\":0.20580000000000004,\"ema1\":0.20454896163070693,\"sma1\":0.20171722222222216,\"sma2\":0.2031126666666667,\"rsi_avg_gain\":0.0005376777269845626,\"rsi_avg_loss\":0.00045251901426411427,\"rsi\":54},{\"period_id\":\"120m209956\",\"size\":\"120m\",\"time\":1511683200000,\"open\":0.20497,\"high\":0.2061,\"low\":0.203,\"close\":0.20484,\"volume\":532312.11396432,\"close_time\":1511690345924,\"vwap\":0.20410543913610835,\"ema1\":0.2044626831224798,\"sma1\":0.2016079629629629,\"sma2\":0.20306733333333335,\"rsi_avg_gain\":0.0005051913982910661,\"rsi_avg_loss\":0.00048732816920750763,\"rsi\":51},{\"period_id\":\"120m209955\",\"size\":\"120m\",\"time\":1511676000000,\"open\":0.20519,\"high\":0.20636,\"low\":0.20321,\"close\":0.205,\"volume\":265488.4841529699,\"close_time\":1511683195091,\"vwap\":0.2046750183634159,\"ema1\":0.20443666126885773,\"sma1\":0.2015114814814814,\"sma2\":0.20302150000000005,\"rsi_avg_gain\":0.0005440522750826866,\"rsi_avg_loss\":0.0005125072591465471,\"rsi\":51},{\"period_id\":\"120m209954\",\"size\":\"120m\",\"time\":1511668800000,\"open\":0.20465,\"high\":0.20601,\"low\":0.20355,\"close\":0.20601,\"volume\":185167.23776778998,\"close_time\":1511675783840,\"vwap\":0.20601,\"ema1\":0.2043978103218824,\"sma1\":0.201427037037037,\"sma2\":0.20296283333333337,\"rsi_avg_gain\":0.0005859024500890471,\"rsi_avg_loss\":0.0004742385867732038,\"rsi\":55},{\"period_id\":\"120m209953\",\"size\":\"120m\",\"time\":1511661600000,\"open\":0.204,\"high\":0.20552,\"low\":0.2036,\"close\":0.20409,\"volume\":169137.82431805995,\"close_time\":1511668637151,\"vwap\":0.20491958798398527,\"ema1\":0.2042866248268398,\"sma1\":0.20133425925925919,\"sma2\":0.2028946666666667,\"rsi_avg_gain\":0.000483279561634358,\"rsi_avg_loss\":0.0005107184780634502,\"rsi\":49},{\"period_id\":\"120m209952\",\"size\":\"120m\",\"time\":1511654400000,\"open\":0.2072,\"high\":0.2072,\"low\":0.2036,\"close\":0.20431,\"volume\":606910.1181575202,\"close_time\":1511661581796,\"vwap\":0.20431466590446698,\"ema1\":0.20430018515972528,\"sma1\":0.2012018518518518,\"sma2\":0.2029205,\"rsi_avg_gain\":0.0005204549125293086,\"rsi_avg_loss\":0.000533081437914485,\"rsi\":49},{\"period_id\":\"120m209951\",\"size\":\"120m\",\"time\":1511647200000,\"open\":0.20798,\"high\":0.208,\"low\":0.2062,\"close\":0.20755,\"volume\":640851.1185827403,\"close_time\":1511654269926,\"vwap\":0.20755000000000004,\"ema1\":0.2042995082741891,\"sma1\":0.20115555555555548,\"sma2\":0.20279466666666665,\"rsi_avg_gain\":0.0005604899058007939,\"rsi_avg_loss\":0.00032485693313867456,\"rsi\":63},{\"period_id\":\"120m209950\",\"size\":\"120m\",\"time\":1511640000000,\"open\":0.2078,\"high\":0.208,\"low\":0.207,\"close\":0.20798,\"volume\":583376.7692860903,\"close_time\":1511647194817,\"vwap\":0.20788751049673115,\"ema1\":0.20407533643102974,\"sma1\":0.2011648148148147,\"sma2\":0.20277833333333334,\"rsi_avg_gain\":0.0006036045139393165,\"rsi_avg_loss\":0.0003167690049185737,\"rsi\":66},{\"period_id\":\"120m209949\",\"size\":\"120m\",\"time\":1511632800000,\"open\":0.20704,\"high\":0.208,\"low\":0.20698,\"close\":0.2078,\"volume\":693878.2040950699,\"close_time\":1511639923044,\"vwap\":0.2079597745526024,\"ema1\":0.20380604928834212,\"sma1\":0.20109999999999992,\"sma2\":0.2027316666666667,\"rsi_avg_gain\":0.0006361894765500344,\"rsi_avg_loss\":0.00034113585145077166,\"rsi\":65},{\"period_id\":\"120m209948\",\"size\":\"120m\",\"time\":1511625600000,\"open\":0.20765,\"high\":0.2085,\"low\":0.20601,\"close\":0.20747,\"volume\":1253601.6867732797,\"close_time\":1511632705865,\"vwap\":0.20753596852516826,\"ema1\":0.20353060441167606,\"sma1\":0.20111203703703695,\"sma2\":0.20269050000000002,\"rsi_avg_gain\":0.0006597425132077275,\"rsi_avg_loss\":0.0003673770707931387,\"rsi\":64},{\"period_id\":\"120m209947\",\"size\":\"120m\",\"time\":1511618400000,\"open\":0.20502,\"high\":0.209,\"low\":0.20309,\"close\":0.20766,\"volume\":2273022.4174963282,\"close_time\":1511625590556,\"vwap\":0.20777664099341317,\"ema1\":0.20325892195730888,\"sma1\":0.2012138888888888,\"sma2\":0.20263783333333332,\"rsi_avg_gain\":0.0007104919373006295,\"rsi_avg_loss\":0.0003810214608541476,\"rsi\":65},{\"period_id\":\"120m209946\",\"size\":\"120m\",\"time\":1511611200000,\"open\":0.204,\"high\":0.2065,\"low\":0.20301,\"close\":0.205,\"volume\":1099203.7551069506,\"close_time\":1511618393805,\"vwap\":0.2061362337071015,\"ema1\":0.202955399333675,\"sma1\":0.20133888888888882,\"sma2\":0.20258283333333332,\"rsi_avg_gain\":0.0005605297786314454,\"rsi_avg_loss\":0.00041033080399677436,\"rsi\":58},{\"period_id\":\"120m209945\",\"size\":\"120m\",\"time\":1511604000000,\"open\":0.20388,\"high\":0.2045,\"low\":0.20223,\"close\":0.20415,\"volume\":416695.1976930502,\"close_time\":1511611180381,\"vwap\":0.20410001578174608,\"ema1\":0.20281439239116986,\"sma1\":0.2010916666666666,\"sma2\":0.20257166666666668,\"rsi_avg_gain\":0.0005382628385261727,\"rsi_avg_loss\":0.0004418947119965262,\"rsi\":55},{\"period_id\":\"120m209944\",\"size\":\"120m\",\"time\":1511596800000,\"open\":0.204,\"high\":0.2043,\"low\":0.2,\"close\":0.2028,\"volume\":499000.01411457005,\"close_time\":1511603793654,\"vwap\":0.20240133379893538,\"ema1\":0.20272228152159535,\"sma1\":0.20085351851851846,\"sma2\":0.202525,\"rsi_avg_gain\":0.00047582151841280213,\"rsi_avg_loss\":0.0004758866129193359,\"rsi\":50},{\"period_id\":\"120m209943\",\"size\":\"120m\",\"time\":1511589600000,\"open\":0.20457,\"high\":0.20497,\"low\":0.202,\"close\":0.204,\"volume\":533388.0454640301,\"close_time\":1511596780677,\"vwap\":0.20399858036927654,\"ema1\":0.20271692162653296,\"sma1\":0.2006183333333333,\"sma2\":0.20245,\"rsi_avg_gain\":0.0005124231736753253,\"rsi_avg_loss\":0.0004201855831439018,\"rsi\":55},{\"period_id\":\"120m209942\",\"size\":\"120m\",\"time\":1511582400000,\"open\":0.20222,\"high\":0.20499,\"low\":0.20222,\"close\":0.20457,\"volume\":236988.47305102003,\"close_time\":1511589387547,\"vwap\":0.2044776225041989,\"ema1\":0.20262843346284556,\"sma1\":0.2003841666666666,\"sma2\":0.2023905,\"rsi_avg_gain\":0.0005518403408811196,\"rsi_avg_loss\":0.00040866139723189315,\"rsi\":57},{\"period_id\":\"120m209941\",\"size\":\"120m\",\"time\":1511575200000,\"open\":0.20348,\"high\":0.2045,\"low\":0.2016,\"close\":0.20349,\"volume\":265972.30650534004,\"close_time\":1511581116624,\"vwap\":0.20318232788161178,\"ema1\":0.20249453232235215,\"sma1\":0.20015703703703697,\"sma2\":0.20233233333333328,\"rsi_avg_gain\":0.000511212674795052,\"rsi_avg_loss\":0.00044009688932665416,\"rsi\":54},{\"period_id\":\"120m209940\",\"size\":\"120m\",\"time\":1511568000000,\"open\":0.20287,\"high\":0.20355,\"low\":0.2,\"close\":0.2035,\"volume\":868469.9902756196,\"close_time\":1511575142890,\"vwap\":0.20353000963199536,\"ema1\":0.2024258793790661,\"sma1\":0.19994731481481476,\"sma2\":0.20222166666666663,\"rsi_avg_gain\":0.0005505367267023637,\"rsi_avg_loss\":0.00047318126542870585,\"rsi\":54},{\"period_id\":\"120m209939\",\"size\":\"120m\",\"time\":1511560800000,\"open\":0.20138,\"high\":0.203,\"low\":0.2001,\"close\":0.20288,\"volume\":814359.5293872693,\"close_time\":1511567995794,\"vwap\":0.20288000000000003,\"ema1\":0.20235180209486375,\"sma1\":0.19972231481481478,\"sma2\":0.20209016666666665,\"rsi_avg_gain\":0.0005451933979871622,\"rsi_avg_loss\":0.0005095798243078371,\"rsi\":52},{\"period_id\":\"120m209938\",\"size\":\"120m\",\"time\":1511553600000,\"open\":0.202,\"high\":0.2029,\"low\":0.20001,\"close\":0.20138,\"volume\":909864.2336225205,\"close_time\":1511560780503,\"vwap\":0.20140003888829053,\"ema1\":0.2023153746531302,\"sma1\":0.1995009259259259,\"sma2\":0.2019838333333333,\"rsi_avg_gain\":0.00047174673629386696,\"rsi_avg_loss\":0.0005487782723315168,\"rsi\":46},{\"period_id\":\"120m209937\",\"size\":\"120m\",\"time\":1511546400000,\"open\":0.202,\"high\":0.20249,\"low\":0.20015,\"close\":0.202,\"volume\":696364.2606540502,\"close_time\":1511553569847,\"vwap\":0.20200314370731623,\"ema1\":0.2023798832498978,\"sma1\":0.19928240740740738,\"sma2\":0.20186599999999996,\"rsi_avg_gain\":0.0005080349467780106,\"rsi_avg_loss\":0.0005432996778954789,\"rsi\":48},{\"period_id\":\"120m209936\",\"size\":\"120m\",\"time\":1511539200000,\"open\":0.20135,\"high\":0.2028,\"low\":0.1999,\"close\":0.202,\"volume\":838008.0614882995,\"close_time\":1511546341797,\"vwap\":0.202,\"ema1\":0.20240608209471833,\"sma1\":0.19905398148148143,\"sma2\":0.2017648333333333,\"rsi_avg_gain\":0.0005471145580686268,\"rsi_avg_loss\":0.0005850919608105158,\"rsi\":48},{\"period_id\":\"120m209935\",\"size\":\"120m\",\"time\":1511532000000,\"open\":0.20116,\"high\":0.20293,\"low\":0.199,\"close\":0.201,\"volume\":1265678.3266009598,\"close_time\":1511539137387,\"vwap\":0.20087683996574454,\"ema1\":0.20243408775642305,\"sma1\":0.19883574074074073,\"sma2\":0.20167316666666663,\"rsi_avg_gain\":0.0005122772163815981,\"rsi_avg_loss\":0.0006300990347190171,\"rsi\":45},{\"period_id\":\"120m209934\",\"size\":\"120m\",\"time\":1511524800000,\"open\":0.20247,\"high\":0.20311,\"low\":0.20045,\"close\":0.20045,\"volume\":1051248.8631149305,\"close_time\":1511531987163,\"vwap\":0.2004832427020398,\"ema1\":0.2025329903603143,\"sma1\":0.1986217592592592,\"sma2\":0.20158066666666663,\"rsi_avg_gain\":0.0005093754637955655,\"rsi_avg_loss\":0.0006785681912358645,\"rsi\":43},{\"period_id\":\"120m209933\",\"size\":\"120m\",\"time\":1511517600000,\"open\":0.20097,\"high\":0.203,\"low\":0.2,\"close\":0.20129,\"volume\":847409.5129088698,\"close_time\":1511524791332,\"vwap\":0.20146149176505607,\"ema1\":0.2026766448679222,\"sma1\":0.1984087962962962,\"sma2\":0.20148833333333335,\"rsi_avg_gain\":0.0005485581917798397,\"rsi_avg_loss\":0.0006661503597924688,\"rsi\":45},{\"period_id\":\"120m209932\",\"size\":\"120m\",\"time\":1511510400000,\"open\":0.2011,\"high\":0.2052,\"low\":0.198,\"close\":0.20099,\"volume\":2117724.14763733,\"close_time\":1511517580684,\"vwap\":0.20081002882875953,\"ema1\":0.20277227554846855,\"sma1\":0.1981754629629629,\"sma2\":0.20136316666666668,\"rsi_avg_gain\":0.0005676780526859816,\"rsi_avg_loss\":0.0007173926951611203,\"rsi\":44},{\"period_id\":\"120m209931\",\"size\":\"120m\",\"time\":1511503200000,\"open\":0.2038,\"high\":0.20585,\"low\":0.20116,\"close\":0.20116,\"volume\":970807.4843226504,\"close_time\":1511510399395,\"vwap\":0.2012259387582613,\"ema1\":0.20289519110353535,\"sma1\":0.1979268518518518,\"sma2\":0.20119150000000005,\"rsi_avg_gain\":0.0006113455952002879,\"rsi_avg_loss\":0.0007594998255581292,\"rsi\":45},{\"period_id\":\"120m209930\",\"size\":\"120m\",\"time\":1511496000000,\"open\":0.20358,\"high\":0.20486,\"low\":0.20251,\"close\":0.2038,\"volume\":746805.5528653798,\"close_time\":1511503045501,\"vwap\":0.20309121421561802,\"ema1\":0.2030148594555033,\"sma1\":0.1976733333333333,\"sma2\":0.20100000000000004,\"rsi_avg_gain\":0.0006583721794464639,\"rsi_avg_loss\":0.0006148459659856773,\"rsi\":52},{\"period_id\":\"120m209929\",\"size\":\"120m\",\"time\":1511488800000,\"open\":0.20201,\"high\":0.20798,\"low\":0.20201,\"close\":0.20358,\"volume\":230578.55803913996,\"close_time\":1511495740182,\"vwap\":0.20353543577251854,\"ema1\":0.2029607118317449,\"sma1\":0.19739055555555549,\"sma2\":0.20084200000000008,\"rsi_avg_gain\":0.0006920931163269614,\"rsi_avg_loss\":0.0006621418095230372,\"rsi\":51},{\"period_id\":\"120m209928\",\"size\":\"120m\",\"time\":1511481600000,\"open\":0.2052,\"high\":0.20711,\"low\":0.20201,\"close\":0.20253,\"volume\":1199177.8151506893,\"close_time\":1511488793439,\"vwap\":0.20237073588332807,\"ema1\":0.20291800230289972,\"sma1\":0.19711601851851843,\"sma2\":0.2006783333333334,\"rsi_avg_gain\":0.0006645618175828797,\"rsi_avg_loss\":0.0007130757948709632,\"rsi\":48},{\"period_id\":\"120m209927\",\"size\":\"120m\",\"time\":1511474400000,\"open\":0.2079,\"high\":0.2095,\"low\":0.2053,\"close\":0.2053,\"volume\":1323081.9437753898,\"close_time\":1511481589039,\"vwap\":0.20544651282132842,\"ema1\":0.20294476108241005,\"sma1\":0.1968067592592592,\"sma2\":0.2004733333333334,\"rsi_avg_gain\":0.0007156819573969473,\"rsi_avg_loss\":0.0005548508560148817,\"rsi\":56},{\"period_id\":\"120m209926\",\"size\":\"120m\",\"time\":1511467200000,\"open\":0.2083,\"high\":0.21,\"low\":0.20729,\"close\":0.208,\"volume\":1275330.9965464398,\"close_time\":1511474376676,\"vwap\":0.208,\"ema1\":0.20278233081223143,\"sma1\":0.19650212962962957,\"sma2\":0.20023533333333343,\"rsi_avg_gain\":0.000770734415658251,\"rsi_avg_loss\":0.00038983938340064327,\"rsi\":66},{\"period_id\":\"120m209925\",\"size\":\"120m\",\"time\":1511460000000,\"open\":0.20701,\"high\":0.2083,\"low\":0.20646,\"close\":0.2083,\"volume\":1232249.5481780006,\"close_time\":1511467164713,\"vwap\":0.20808675555285744,\"ema1\":0.20242249155790257,\"sma1\":0.1962262037037037,\"sma2\":0.19996883333333343,\"rsi_avg_gain\":0.0008300216784011934,\"rsi_avg_loss\":0.00039675010520069106,\"rsi\":68},{\"period_id\":\"120m209924\",\"size\":\"120m\",\"time\":1511452800000,\"open\":0.204,\"high\":0.208,\"low\":0.20257,\"close\":0.20701,\"volume\":3353333.3538510166,\"close_time\":1511459973168,\"vwap\":0.2071113591971211,\"ema1\":0.20201714614810273,\"sma1\":0.19595518518518512,\"sma2\":0.1997133333333334,\"rsi_avg_gain\":0.0007946387305858996,\"rsi_avg_loss\":0.0004272693440622827,\"rsi\":65},{\"period_id\":\"120m209923\",\"size\":\"120m\",\"time\":1511445600000,\"open\":0.2038,\"high\":0.204,\"low\":0.20277,\"close\":0.204,\"volume\":1068651.5517517899,\"close_time\":1511452787259,\"vwap\":0.2036166367567196,\"ema1\":0.20167281139969603,\"sma1\":0.1957237037037037,\"sma2\":0.1995003333333334,\"rsi_avg_gain\":0.0006242263252463525,\"rsi_avg_loss\":0.0004601362166824583,\"rsi\":58},{\"period_id\":\"120m209922\",\"size\":\"120m\",\"time\":1511438400000,\"open\":0.2015,\"high\":0.20473,\"low\":0.20108,\"close\":0.20395,\"volume\":1206952.5871110403,\"close_time\":1511445599875,\"vwap\":0.20395,\"ema1\":0.20151231563415783,\"sma1\":0.19546222222222218,\"sma2\":0.19929783333333342,\"rsi_avg_gain\":0.0006683975810345339,\"rsi_avg_loss\":0.0004955313102734167,\"rsi\":57},{\"period_id\":\"120m209921\",\"size\":\"120m\",\"time\":1511431200000,\"open\":0.20205,\"high\":0.203,\"low\":0.2004,\"close\":0.20249,\"volume\":1267427.7514401998,\"close_time\":1511438314499,\"vwap\":0.20232428465221916,\"ema1\":0.2013441994709963,\"sma1\":0.19522138888888882,\"sma2\":0.19912800000000005,\"rsi_avg_gain\":0.0006075050872679604,\"rsi_avg_loss\":0.0005336491033713719,\"rsi\":53},{\"period_id\":\"120m209920\",\"size\":\"120m\",\"time\":1511424000000,\"open\":0.20271,\"high\":0.20348,\"low\":0.201,\"close\":0.20207,\"volume\":1254282.6533809998,\"close_time\":1511431188336,\"vwap\":0.20240362738978152,\"ema1\":0.2012651787448581,\"sma1\":0.19496888888888883,\"sma2\":0.19896916666666672,\"rsi_avg_gain\":0.0006219285555193417,\"rsi_avg_loss\":0.000574699034399939,\"rsi\":52},{\"period_id\":\"120m209919\",\"size\":\"120m\",\"time\":1511416800000,\"open\":0.20352,\"high\":0.20488,\"low\":0.2016,\"close\":0.2027,\"volume\":783677.1050473005,\"close_time\":1511423997249,\"vwap\":0.20280361053037946,\"ema1\":0.2012096738307104,\"sma1\":0.19470703703703704,\"sma2\":0.1987408333333334,\"rsi_avg_gain\":0.0006697692136362142,\"rsi_avg_loss\":0.0005704451139691657,\"rsi\":54},{\"period_id\":\"120m209918\",\"size\":\"120m\",\"time\":1511409600000,\"open\":0.20235,\"high\":0.2044,\"low\":0.20158,\"close\":0.20182,\"volume\":332666.98047993996,\"close_time\":1511416739820,\"vwap\":0.20214655390052855,\"ema1\":0.20110689271558696,\"sma1\":0.19445148148148148,\"sma2\":0.19854850000000004,\"rsi_avg_gain\":0.0006535976146851543,\"rsi_avg_loss\":0.0006143255073514092,\"rsi\":52},{\"period_id\":\"120m209917\",\"size\":\"120m\",\"time\":1511402400000,\"open\":0.20245,\"high\":0.20319,\"low\":0.2015,\"close\":0.20245,\"volume\":94018.41895133,\"close_time\":1511409541858,\"vwap\":0.20241015712311577,\"ema1\":0.2010577129028688,\"sma1\":0.19421824074074076,\"sma2\":0.19830600000000007,\"rsi_avg_gain\":0.0007038743542763201,\"rsi_avg_loss\":0.0006131197771476722,\"rsi\":53},{\"period_id\":\"120m209916\",\"size\":\"120m\",\"time\":1511395200000,\"open\":0.20288,\"high\":0.20406,\"low\":0.2015,\"close\":0.20246,\"volume\":905025.8519175604,\"close_time\":1511402350399,\"vwap\":0.20246,\"ema1\":0.20096169310306666,\"sma1\":0.1939537962962963,\"sma2\":0.1980830000000001,\"rsi_avg_gain\":0.0007580185353744986,\"rsi_avg_loss\":0.0006595136061590309,\"rsi\":53},{\"period_id\":\"120m209915\",\"size\":\"120m\",\"time\":1511388000000,\"open\":0.20468,\"high\":0.205,\"low\":0.2016,\"close\":0.20332,\"volume\":1224339.8817371898,\"close_time\":1511395061474,\"vwap\":0.2032767052601033,\"ema1\":0.20085836159293333,\"sma1\":0.19366212962962964,\"sma2\":0.1979130000000001,\"rsi_avg_gain\":0.0008163276534802293,\"rsi_avg_loss\":0.0006440915758635717,\"rsi\":56},{\"period_id\":\"120m209914\",\"size\":\"120m\",\"time\":1511380800000,\"open\":0.20168,\"high\":0.20488,\"low\":0.20151,\"close\":0.2046,\"volume\":1173801.88607649,\"close_time\":1511387995458,\"vwap\":0.20455906713963393,\"ema1\":0.20068859342692874,\"sma1\":0.19336222222222224,\"sma2\":0.19770300000000005,\"rsi_avg_gain\":0.0008791220883633238,\"rsi_avg_loss\":0.0005951755432376923,\"rsi\":60},{\"period_id\":\"120m209913\",\"size\":\"120m\",\"time\":1511373600000,\"open\":0.2012,\"high\":0.20292,\"low\":0.2,\"close\":0.20168,\"volume\":813905.8158250905,\"close_time\":1511380776554,\"vwap\":0.20229817494175753,\"ema1\":0.20041884124947554,\"sma1\":0.1930805555555556,\"sma2\":0.19755000000000006,\"rsi_avg_gain\":0.0007221314797758867,\"rsi_avg_loss\":0.0006409582773328993,\"rsi\":53},{\"period_id\":\"120m209912\",\"size\":\"120m\",\"time\":1511366400000,\"open\":0.20163,\"high\":0.204,\"low\":0.20009,\"close\":0.20294,\"volume\":1788743.1193710098,\"close_time\":1511373588986,\"vwap\":0.20270844650004363,\"ema1\":0.20033186478392212,\"sma1\":0.192797962962963,\"sma2\":0.1973983333333334,\"rsi_avg_gain\":0.0007776800551432626,\"rsi_avg_loss\":0.000593339683281583,\"rsi\":57},{\"period_id\":\"120m209911\",\"size\":\"120m\",\"time\":1511359200000,\"open\":0.20138,\"high\":0.202,\"low\":0.2,\"close\":0.20124,\"volume\":1000537.6612222702,\"close_time\":1511366359171,\"vwap\":0.20142562441752798,\"ema1\":0.20015199338970985,\"sma1\":0.19253407407407414,\"sma2\":0.1972928333333334,\"rsi_avg_gain\":0.0007067323670773591,\"rsi_avg_loss\":0.0006389811973801663,\"rsi\":53},{\"period_id\":\"120m209910\",\"size\":\"120m\",\"time\":1511352000000,\"open\":0.20086,\"high\":0.20185,\"low\":0.2,\"close\":0.20141,\"volume\":970720.5860405697,\"close_time\":1511359173776,\"vwap\":0.20088328728710408,\"ema1\":0.20007695845106915,\"sma1\":0.19227620370370374,\"sma2\":0.19719100000000003,\"rsi_avg_gain\":0.0007610963953140791,\"rsi_avg_loss\":0.0006750566741017173,\"rsi\":53},{\"period_id\":\"120m209909\",\"size\":\"120m\",\"time\":1511344800000,\"open\":0.20004,\"high\":0.202,\"low\":0.2,\"close\":0.20086,\"volume\":752880.6238023305,\"close_time\":1511351996965,\"vwap\":0.20086,\"ema1\":0.1999850245511429,\"sma1\":0.19202620370370374,\"sma2\":0.1971566666666667,\"rsi_avg_gain\":0.0007773345795690085,\"rsi_avg_loss\":0.0007269841105710801,\"rsi\":52},{\"period_id\":\"120m209908\",\"size\":\"120m\",\"time\":1511337600000,\"open\":0.20198,\"high\":0.202,\"low\":0.19969,\"close\":0.20007,\"volume\":653744.4946405801,\"close_time\":1511344770041,\"vwap\":0.20037289323436763,\"ema1\":0.19992468141673894,\"sma1\":0.19176601851851857,\"sma2\":0.19703050000000003,\"rsi_avg_gain\":0.0007763603164589312,\"rsi_avg_loss\":0.000782905965230394,\"rsi\":50},{\"period_id\":\"120m209907\",\"size\":\"120m\",\"time\":1511330400000,\"open\":0.20033,\"high\":0.203,\"low\":0.2,\"close\":0.202,\"volume\":652858.3084820701,\"close_time\":1511337347406,\"vwap\":0.20148505077186138,\"ema1\":0.19991465944547956,\"sma1\":0.19146509259259265,\"sma2\":0.19679716666666672,\"rsi_avg_gain\":0.000836080340801926,\"rsi_avg_loss\":0.0006946679625558077,\"rsi\":55},{\"period_id\":\"120m209906\",\"size\":\"120m\",\"time\":1511323200000,\"open\":0.1992,\"high\":0.2008,\"low\":0.199,\"close\":0.20078,\"volume\":199170.53298643001,\"close_time\":1511330223591,\"vwap\":0.20063821423028044,\"ema1\":0.19977084285551264,\"sma1\":0.19120675925925928,\"sma2\":0.19668500000000003,\"rsi_avg_gain\":0.000806548059325149,\"rsi_avg_loss\":0.0007481039596754852,\"rsi\":52},{\"period_id\":\"120m209905\",\"size\":\"120m\",\"time\":1511316000000,\"open\":0.19768,\"high\":0.19949,\"low\":0.19766,\"close\":0.199,\"volume\":139487.97756473004,\"close_time\":1511323109528,\"vwap\":0.19931532563864668,\"ema1\":0.19970124581106524,\"sma1\":0.19096027777777783,\"sma2\":0.19655366666666668,\"rsi_avg_gain\":0.0007316671408117008,\"rsi_avg_loss\":0.000805650418112061,\"rsi\":48},{\"period_id\":\"120m209904\",\"size\":\"120m\",\"time\":1511308800000,\"open\":0.1983,\"high\":0.1995,\"low\":0.1976,\"close\":0.19772,\"volume\":297919.29636284005,\"close_time\":1511315945772,\"vwap\":0.19792357888401327,\"ema1\":0.19974960759113872,\"sma1\":0.1907093518518519,\"sma2\":0.19639733333333337,\"rsi_avg_gain\":0.0006894876901049082,\"rsi_avg_loss\":0.0008676235271976041,\"rsi\":44},{\"period_id\":\"120m209903\",\"size\":\"120m\",\"time\":1511301600000,\"open\":0.20021,\"high\":0.2013,\"low\":0.198,\"close\":0.19832,\"volume\":1570212.2911061011,\"close_time\":1511308760197,\"vwap\":0.19832,\"ema1\":0.19988958052845862,\"sma1\":0.19041935185185185,\"sma2\":0.19626366666666673,\"rsi_avg_gain\":0.0007425252047283627,\"rsi_avg_loss\":0.0008882099523666514,\"rsi\":46},{\"period_id\":\"120m209902\",\"size\":\"120m\",\"time\":1511294400000,\"open\":0.20067,\"high\":0.2013,\"low\":0.2,\"close\":0.2001,\"volume\":826936.2524366702,\"close_time\":1511301577901,\"vwap\":0.20034502913762067,\"ema1\":0.19999782746145578,\"sma1\":0.1901387962962963,\"sma2\":0.19630866666666674,\"rsi_avg_gain\":0.000799642528169006,\"rsi_avg_loss\":0.0008196107179333166,\"rsi\":49},{\"period_id\":\"120m209901\",\"size\":\"120m\",\"time\":1511287200000,\"open\":0.20198,\"high\":0.204,\"low\":0.2,\"close\":0.2,\"volume\":1658189.0110132692,\"close_time\":1511294393668,\"vwap\":0.2,\"ema1\":0.1999907810794872,\"sma1\":0.18983324074074073,\"sma2\":0.19622533333333342,\"rsi_avg_gain\":0.0008534611841820073,\"rsi_avg_loss\":0.0008826576962358794,\"rsi\":49},{\"period_id\":\"120m209900\",\"size\":\"120m\",\"time\":1511280000000,\"open\":0.20109,\"high\":0.202,\"low\":0.2006,\"close\":0.20198,\"volume\":655194.4879848204,\"close_time\":1511287150410,\"vwap\":0.20196445540439667,\"ema1\":0.19999014529186562,\"sma1\":0.1895647222222222,\"sma2\":0.1961323333333334,\"rsi_avg_gain\":0.0009191120445037002,\"rsi_avg_loss\":0.000798246749792487,\"rsi\":54},{\"period_id\":\"120m209899\",\"size\":\"120m\",\"time\":1511272800000,\"open\":0.20318,\"high\":0.20318,\"low\":0.2004,\"close\":0.20199,\"volume\":1154399.37290013,\"close_time\":1511279988375,\"vwap\":0.20138444990128285,\"ema1\":0.19985291393268395,\"sma1\":0.18928194444444438,\"sma2\":0.1961825000000001,\"rsi_avg_gain\":0.000989812971003985,\"rsi_avg_loss\":0.0008588811151611391,\"rsi\":54},{\"period_id\":\"120m209898\",\"size\":\"120m\",\"time\":1511265600000,\"open\":0.203,\"high\":0.20351,\"low\":0.20104,\"close\":0.20282,\"volume\":722255.2621213497,\"close_time\":1511272705668,\"vwap\":0.2013581555287735,\"ema1\":0.19970552868666216,\"sma1\":0.18902351851851848,\"sma2\":0.19646883333333343,\"rsi_avg_gain\":0.0010659524303119837,\"rsi_avg_loss\":0.0008611027394043039,\"rsi\":55},{\"period_id\":\"120m209897\",\"size\":\"120m\",\"time\":1511258400000,\"open\":0.20344,\"high\":0.20371,\"low\":0.20164,\"close\":0.2021,\"volume\":1164843.6084483103,\"close_time\":1511265582357,\"vwap\":0.20234755751453237,\"ema1\":0.19949073756160438,\"sma1\":0.18876972222222219,\"sma2\":0.19605050000000007,\"rsi_avg_gain\":0.001092564155720598,\"rsi_avg_loss\":0.0009273414116661734,\"rsi\":54},{\"period_id\":\"120m209896\",\"size\":\"120m\",\"time\":1511251200000,\"open\":0.20227,\"high\":0.20492,\"low\":0.202,\"close\":0.20212,\"volume\":661131.9622503897,\"close_time\":1511258386621,\"vwap\":0.20299159335655428,\"ema1\":0.1993107884279219,\"sma1\":0.1884599074074074,\"sma2\":0.1956318333333334,\"rsi_avg_gain\":0.00117660755231449,\"rsi_avg_loss\":0.0009971369048712643,\"rsi\":54},{\"period_id\":\"120m209895\",\"size\":\"120m\",\"time\":1511244000000,\"open\":0.20199,\"high\":0.20549,\"low\":0.20093,\"close\":0.20225,\"volume\":1112220.7707674399,\"close_time\":1511251168939,\"vwap\":0.203728497618399,\"ema1\":0.19911704969881308,\"sma1\":0.18814046296296288,\"sma2\":0.19523766666666673,\"rsi_avg_gain\":0.0012671158255694506,\"rsi_avg_loss\":0.001063839743707514,\"rsi\":54},{\"period_id\":\"120m209894\",\"size\":\"120m\",\"time\":1511236800000,\"open\":0.2,\"high\":0.20306,\"low\":0.197,\"close\":0.20249,\"volume\":767532.2100792999,\"close_time\":1511243992356,\"vwap\":0.20094961028356187,\"ema1\":0.19890098416080018,\"sma1\":0.18786722222222213,\"sma2\":0.19485366666666673,\"rsi_avg_gain\":0.0013645862736901776,\"rsi_avg_loss\":0.0011272120316850158,\"rsi\":55},{\"period_id\":\"120m209893\",\"size\":\"120m\",\"time\":1511229600000,\"open\":0.20572,\"high\":0.206,\"low\":0.2,\"close\":0.2,\"volume\":808537.5062438501,\"close_time\":1511236760328,\"vwap\":0.2,\"ema1\":0.19865346582706225,\"sma1\":0.1875750925925925,\"sma2\":0.19448700000000005,\"rsi_avg_gain\":0.0012780159870509611,\"rsi_avg_loss\":0.00121392064950694,\"rsi\":51},{\"period_id\":\"120m209892\",\"size\":\"120m\",\"time\":1511222400000,\"open\":0.2,\"high\":0.20599,\"low\":0.2,\"close\":0.20586,\"volume\":658444.3325874807,\"close_time\":1511228996424,\"vwap\":0.20586000197753915,\"ema1\":0.1985606014013424,\"sma1\":0.18731314814814812,\"sma2\":0.19405600000000003,\"rsi_avg_gain\":0.0013763249091318043,\"rsi_avg_loss\":0.0008565299302382449,\"rsi\":62},{\"period_id\":\"120m209891\",\"size\":\"120m\",\"time\":1511215200000,\"open\":0.2075,\"high\":0.20788,\"low\":0.1992,\"close\":0.2,\"volume\":2154059.49515276,\"close_time\":1511222392685,\"vwap\":0.2,\"ema1\":0.19805719460143498,\"sma1\":0.18704111111111102,\"sma2\":0.19368600000000005,\"rsi_avg_gain\":0.001031426825218868,\"rsi_avg_loss\":0.0009224168479488791,\"rsi\":53},{\"period_id\":\"120m209890\",\"size\":\"120m\",\"time\":1511208000000,\"open\":0.205,\"high\":0.2079,\"low\":0.204,\"close\":0.207,\"volume\":1726159.0560208398,\"close_time\":1511215187487,\"vwap\":0.207430978110602,\"ema1\":0.1979232080222236,\"sma1\":0.18678259259259256,\"sma2\":0.19319733333333336,\"rsi_avg_gain\":0.001110767350235704,\"rsi_avg_loss\":0.00045491045163725607,\"rsi\":71},{\"period_id\":\"120m209889\",\"size\":\"120m\",\"time\":1511200800000,\"open\":0.205,\"high\":0.20791,\"low\":0.20401,\"close\":0.205,\"volume\":1288062.0671158903,\"close_time\":1511207996129,\"vwap\":0.20474288926502937,\"ema1\":0.19729722236858385,\"sma1\":0.186524537037037,\"sma2\":0.19271800000000003,\"rsi_avg_gain\":0.0010423648387153735,\"rsi_avg_loss\":0.0004899035633016604,\"rsi\":68},{\"period_id\":\"120m209888\",\"size\":\"120m\",\"time\":1511193600000,\"open\":0.2045,\"high\":0.205,\"low\":0.2012,\"close\":0.205,\"volume\":1174516.4974492008,\"close_time\":1511200734154,\"vwap\":0.20492704539759785,\"ema1\":0.1967659963250379,\"sma1\":0.18628749999999994,\"sma2\":0.19226016666666668,\"rsi_avg_gain\":0.0011225467493857868,\"rsi_avg_loss\":0.0005275884527864035,\"rsi\":68},{\"period_id\":\"120m209887\",\"size\":\"120m\",\"time\":1511186400000,\"open\":0.2017,\"high\":0.20486,\"low\":0.20116,\"close\":0.2045,\"volume\":1245355.5586386702,\"close_time\":1511193599796,\"vwap\":0.2046974512862676,\"ema1\":0.19619813400262673,\"sma1\":0.18600129629629628,\"sma2\":0.19182966666666668,\"rsi_avg_gain\":0.0011704349608770012,\"rsi_avg_loss\":0.0005681721799238192,\"rsi\":67},{\"period_id\":\"120m209886\",\"size\":\"120m\",\"time\":1511179200000,\"open\":0.20345,\"high\":0.20345,\"low\":0.1993,\"close\":0.2017,\"volume\":920490.0952195205,\"close_time\":1511186377172,\"vwap\":0.2017174769198777,\"ema1\":0.19562559152004927,\"sma1\":0.18574498444444443,\"sma2\":0.1914503333333334,\"rsi_avg_gain\":0.0010450838040213862,\"rsi_avg_loss\":0.0006118777322256514,\"rsi\":63},{\"period_id\":\"120m209885\",\"size\":\"120m\",\"time\":1511172000000,\"open\":0.1999,\"high\":0.20397,\"low\":0.1993,\"close\":0.20348,\"volume\":1839783.4880044202,\"close_time\":1511179183122,\"vwap\":0.20143006320472698,\"ema1\":0.19520666679729404,\"sma1\":0.18553609555555556,\"sma2\":0.1910556666666667,\"rsi_avg_gain\":0.0011254748658691852,\"rsi_avg_loss\":0.0005220221731660858,\"rsi\":68},{\"period_id\":\"120m209884\",\"size\":\"120m\",\"time\":1511164800000,\"open\":0.19989,\"high\":0.201,\"low\":0.199,\"close\":0.2,\"volume\":915706.22185213,\"close_time\":1511171992849,\"vwap\":0.19998659639202504,\"ema1\":0.19463609209365915,\"sma1\":0.18535091037037038,\"sma2\":0.19070833333333337,\"rsi_avg_gain\":0.0009443575478591237,\"rsi_avg_loss\":0.0005621777249480923,\"rsi\":63},{\"period_id\":\"120m209883\",\"size\":\"120m\",\"time\":1511157600000,\"open\":0.20058,\"high\":0.20097,\"low\":0.19501,\"close\":0.1995,\"volume\":831625.2586599299,\"close_time\":1511164735130,\"vwap\":0.1995,\"ema1\":0.19426616741046324,\"sma1\":0.18514146592592595,\"sma2\":0.19035000000000002,\"rsi_avg_gain\":0.0009785388976944409,\"rsi_avg_loss\":0.0006054221653287148,\"rsi\":62},{\"period_id\":\"120m209882\",\"size\":\"120m\",\"time\":1511150400000,\"open\":0.19996,\"high\":0.205,\"low\":0.19909,\"close\":0.201,\"volume\":1616283.4260598102,\"close_time\":1511157581859,\"vwap\":0.20100222153459285,\"ema1\":0.19390521343877104,\"sma1\":0.18488220666666672,\"sma2\":0.18994083333333336,\"rsi_avg_gain\":0.0010538111205940133,\"rsi_avg_loss\":0.0005366084857386159,\"rsi\":66},{\"period_id\":\"120m209881\",\"size\":\"120m\",\"time\":1511143200000,\"open\":0.19688,\"high\":0.2,\"low\":0.19686,\"close\":0.2,\"volume\":1187892.34910101,\"close_time\":1511150148973,\"vwap\":0.1999962671036175,\"ema1\":0.1934159178138587,\"sma1\":0.18466924370370372,\"sma2\":0.18954200000000002,\"rsi_avg_gain\":0.0010579504375627833,\"rsi_avg_loss\":0.0005778860615646633,\"rsi\":65},{\"period_id\":\"120m209880\",\"size\":\"120m\",\"time\":1511136000000,\"open\":0.195,\"high\":0.19686,\"low\":0.19494,\"close\":0.19686,\"volume\":818428.4982289891,\"close_time\":1511143199207,\"vwap\":0.19680805682201302,\"ema1\":0.19296184318033172,\"sma1\":0.18448785481481483,\"sma2\":0.18920450000000003,\"rsi_avg_gain\":0.0008977927789137664,\"rsi_avg_loss\":0.0006223388355311759,\"rsi\":59},{\"period_id\":\"120m209879\",\"size\":\"120m\",\"time\":1511128800000,\"open\":0.19498,\"high\":0.19587,\"low\":0.19353,\"close\":0.19499,\"volume\":774808.4024525699,\"close_time\":1511135815175,\"vwap\":0.19477861886241807,\"ema1\":0.19269300477897527,\"sma1\":0.1843316511111111,\"sma2\":0.188885,\"rsi_avg_gain\":0.0008230076080609784,\"rsi_avg_loss\":0.0006702110536489587,\"rsi\":55},{\"period_id\":\"120m209878\",\"size\":\"120m\",\"time\":1511121600000,\"open\":0.19592,\"high\":0.19595,\"low\":0.1938,\"close\":0.195,\"volume\":735082.8656450599,\"close_time\":1511128784054,\"vwap\":0.19434378815823872,\"ema1\":0.19253459131545633,\"sma1\":0.18414220666666664,\"sma2\":0.18856866666666666,\"rsi_avg_gain\":0.0008863158856041305,\"rsi_avg_loss\":0.0007209965193142625,\"rsi\":55},{\"period_id\":\"120m209877\",\"size\":\"120m\",\"time\":1511114400000,\"open\":0.19593,\"high\":0.19599,\"low\":0.19311,\"close\":0.19493,\"volume\":542808.07858512,\"close_time\":1511121526078,\"vwap\":0.1953395586343516,\"ema1\":0.19236456313031539,\"sma1\":0.18396822518518513,\"sma2\":0.1882625,\"rsi_avg_gain\":0.0009491094152659857,\"rsi_avg_loss\":0.0007764577900307443,\"rsi\":55},{\"period_id\":\"120m209876\",\"size\":\"120m\",\"time\":1511107200000,\"open\":0.195,\"high\":0.1975,\"low\":0.19462,\"close\":0.19593,\"volume\":736890.6753688401,\"close_time\":1511114338732,\"vwap\":0.1950575035966542,\"ema1\":0.19218763644964748,\"sma1\":0.1837876696296296,\"sma2\":0.18795900000000001,\"rsi_avg_gain\":0.0010221178318249077,\"rsi_avg_loss\":0.0007592622354177246,\"rsi\":57},{\"period_id\":\"120m209875\",\"size\":\"120m\",\"time\":1511100000000,\"open\":0.1949,\"high\":0.1969,\"low\":0.19441,\"close\":0.1955,\"volume\":602072.8910201305,\"close_time\":1511107180197,\"vwap\":0.1955,\"ema1\":0.19192954241169213,\"sma1\":0.183620077037037,\"sma2\":0.18766566666666668,\"rsi_avg_gain\":0.0010676653573499016,\"rsi_avg_loss\":0.0008176670227575496,\"rsi\":57},{\"period_id\":\"120m209874\",\"size\":\"120m\",\"time\":1511092800000,\"open\":0.19514,\"high\":0.19625,\"low\":0.19305,\"close\":0.1949,\"volume\":664404.7235030198,\"close_time\":1511099955847,\"vwap\":0.19480496025938632,\"ema1\":0.19168330395732608,\"sma1\":0.18350841037037036,\"sma2\":0.18735733333333332,\"rsi_avg_gain\":0.001103639615607585,\"rsi_avg_loss\":0.0008805644860465919,\"rsi\":56},{\"period_id\":\"120m209873\",\"size\":\"120m\",\"time\":1511085600000,\"open\":0.19348,\"high\":0.199,\"low\":0.19165,\"close\":0.19575,\"volume\":1621898.0825811503,\"close_time\":1511092680789,\"vwap\":0.19575,\"ema1\":0.19146146285093477,\"sma1\":0.18338970666666668,\"sma2\":0.18702149999999998,\"rsi_avg_gain\":0.0011885349706543223,\"rsi_avg_loss\":0.0008829156003578668,\"rsi\":57},{\"period_id\":\"120m209872\",\"size\":\"120m\",\"time\":1511078400000,\"open\":0.19096,\"high\":0.194,\"low\":0.18996,\"close\":0.19348,\"volume\":852182.0922368199,\"close_time\":1511085595664,\"vwap\":0.19310665375408156,\"ema1\":0.19116570166824062,\"sma1\":0.1833113733333333,\"sma2\":0.1867268333333333,\"rsi_avg_gain\":0.0011053453530123476,\"rsi_avg_loss\":0.0009508321850007796,\"rsi\":54},{\"period_id\":\"120m209871\",\"size\":\"120m\",\"time\":1511071200000,\"open\":0.19277,\"high\":0.19329,\"low\":0.19,\"close\":0.19086,\"volume\":458432.8250426699,\"close_time\":1511078362857,\"vwap\":0.1904441756797695,\"ema1\":0.19100609488673997,\"sma1\":0.18325933629629632,\"sma2\":0.18645166666666663,\"rsi_avg_gain\":0.0009888334570902196,\"rsi_avg_loss\":0.0010239731223085319,\"rsi\":49},{\"period_id\":\"120m209870\",\"size\":\"120m\",\"time\":1511064000000,\"open\":0.194,\"high\":0.19403,\"low\":0.1923,\"close\":0.19231,\"volume\":53869.48320576,\"close_time\":1511071090724,\"vwap\":0.19270829050795202,\"ema1\":0.19101617039617033,\"sma1\":0.18321554,\"sma2\":0.18617949999999997,\"rsi_avg_gain\":0.0010648975691740826,\"rsi_avg_loss\":0.0009912018240245722,\"rsi\":52},{\"period_id\":\"120m209869\",\"size\":\"120m\",\"time\":1511056800000,\"open\":0.19382,\"high\":0.19447,\"low\":0.19291,\"close\":0.1941,\"volume\":69829.77653239999,\"close_time\":1511063790758,\"vwap\":0.1941,\"ema1\":0.19092694076832,\"sma1\":0.18316304,\"sma2\":0.18588683333333325,\"rsi_avg_gain\":0.001146812766802858,\"rsi_avg_loss\":0.000929755810488002,\"rsi\":55},{\"period_id\":\"120m209868\",\"size\":\"120m\",\"time\":1511049600000,\"open\":0.193,\"high\":0.19444,\"low\":0.1925,\"close\":0.19271,\"volume\":124356.55947407,\"close_time\":1511056574457,\"vwap\":0.19271,\"ema1\":0.19070810909716968,\"sma1\":0.18311359555555548,\"sma2\":0.18559999999999993,\"rsi_avg_gain\":0.0011281060565569239,\"rsi_avg_loss\":0.0010012754882178483,\"rsi\":53},{\"period_id\":\"120m209867\",\"size\":\"120m\",\"time\":1511042400000,\"open\":0.1935,\"high\":0.19999,\"low\":0.19211,\"close\":0.193,\"volume\":1359178.4623398397,\"close_time\":1511049586357,\"vwap\":0.193,\"ema1\":0.19057004765559518,\"sma1\":0.18301600296296291,\"sma2\":0.18527499999999997,\"rsi_avg_gain\":0.001214883445522841,\"rsi_avg_loss\":0.001055988987311528,\"rsi\":53},{\"period_id\":\"120m209866\",\"size\":\"120m\",\"time\":1511035200000,\"open\":0.19234,\"high\":0.1939,\"low\":0.19201,\"close\":0.19372,\"volume\":268536.1830867801,\"close_time\":1511042361722,\"vwap\":0.19372,\"ema1\":0.1904024647352914,\"sma1\":0.18298720666666662,\"sma2\":0.18491283333333325,\"rsi_avg_gain\":0.0013083360182553673,\"rsi_avg_loss\":0.0010818342940277996,\"rsi\":55},{\"period_id\":\"120m209865\",\"size\":\"120m\",\"time\":1511028000000,\"open\":0.1917,\"high\":0.1949,\"low\":0.1917,\"close\":0.19231,\"volume\":728270.7040220896,\"close_time\":1511035186530,\"vwap\":0.19272637048224248,\"ema1\":0.19017366919979425,\"sma1\":0.18295637333333328,\"sma2\":0.18457433333333328,\"rsi_avg_gain\":0.0013005157119673188,\"rsi_avg_loss\":0.0011650523166453226,\"rsi\":53},{\"period_id\":\"120m209864\",\"size\":\"120m\",\"time\":1511020800000,\"open\":0.19089,\"high\":0.1925,\"low\":0.19016,\"close\":0.19168,\"volume\":464501.62250984996,\"close_time\":1511027934129,\"vwap\":0.19191909915400418,\"ema1\":0.19002633604115937,\"sma1\":0.18294803999999995,\"sma2\":0.1842546666666666,\"rsi_avg_gain\":0.0013520938436571111,\"rsi_avg_loss\":0.0012546717256180396,\"rsi\":52},{\"period_id\":\"120m209863\",\"size\":\"120m\",\"time\":1511013600000,\"open\":0.1919,\"high\":0.1919,\"low\":0.19,\"close\":0.19122,\"volume\":390100.3060764898,\"close_time\":1511020756298,\"vwap\":0.19121000314036982,\"ema1\":0.1899122902508945,\"sma1\":0.1829258177777777,\"sma2\":0.18395099999999995,\"rsi_avg_gain\":0.0014207164470153514,\"rsi_avg_loss\":0.0013511849352809656,\"rsi\":51},{\"period_id\":\"120m209862\",\"size\":\"120m\",\"time\":1511006400000,\"open\":0.1923,\"high\":0.19247,\"low\":0.191,\"close\":0.1918,\"volume\":337951.37589794997,\"close_time\":1511013473993,\"vwap\":0.19156484911508748,\"ema1\":0.18982210337164585,\"sma1\":0.1828822066666666,\"sma2\":0.1836383333333333,\"rsi_avg_gain\":0.001530002327554994,\"rsi_avg_loss\":0.0014105068533795016,\"rsi\":52},{\"period_id\":\"120m209861\",\"size\":\"120m\",\"time\":1510999200000,\"open\":0.19251,\"high\":0.19253,\"low\":0.19101,\"close\":0.1923,\"volume\":385301.98817009997,\"close_time\":1511006395926,\"vwap\":0.19232747804688377,\"ema1\":0.18968569670762142,\"sma1\":0.1828587807407407,\"sma2\":0.1833331666666666,\"rsi_avg_gain\":0.0016476948142899934,\"rsi_avg_loss\":0.0014805458421010018,\"rsi\":53},{\"period_id\":\"120m209860\",\"size\":\"120m\",\"time\":1510992000000,\"open\":0.18916,\"high\":0.194,\"low\":0.18914,\"close\":0.19254,\"volume\":803391.3881384006,\"close_time\":1510999159827,\"vwap\":0.19253000005445692,\"ema1\":0.1895053999288367,\"sma1\":0.1828586881481481,\"sma2\":0.1830156666666666,\"rsi_avg_gain\":0.0017744405692353775,\"rsi_avg_loss\":0.0015759724453395412,\"rsi\":53},{\"period_id\":\"120m209859\",\"size\":\"120m\",\"time\":1510984800000,\"open\":0.1897,\"high\":0.191,\"low\":0.188,\"close\":0.189,\"volume\":488820.45648977003,\"close_time\":1510991947134,\"vwap\":0.18899999999999997,\"ema1\":0.1892961171653082,\"sma1\":0.18288137333333326,\"sma2\":0.18267499999999998,\"rsi_avg_gain\":0.0016386283053304075,\"rsi_avg_loss\":0.0016972010949810443,\"rsi\":49},{\"period_id\":\"120m209858\",\"size\":\"120m\",\"time\":1510977600000,\"open\":0.1878,\"high\":0.19247,\"low\":0.18721,\"close\":0.19028,\"volume\":289907.14823640994,\"close_time\":1510984750372,\"vwap\":0.1899801166246999,\"ema1\":0.18931653903877774,\"sma1\":0.18287785481481475,\"sma2\":0.18232716666666662,\"rsi_avg_gain\":0.0017646766365096694,\"rsi_avg_loss\":0.0017292934869026627,\"rsi\":51},{\"period_id\":\"120m209857\",\"size\":\"120m\",\"time\":1510970400000,\"open\":0.1891,\"high\":0.192,\"low\":0.1879,\"close\":0.1879,\"volume\":234549.13786073995,\"close_time\":1510977539952,\"vwap\":0.18796664063901586,\"ema1\":0.18925009345524516,\"sma1\":0.18287776222222216,\"sma2\":0.18207549999999997,\"rsi_avg_gain\":0.0017173440700873367,\"rsi_avg_loss\":0.0018623160628182523,\"rsi\":48},{\"period_id\":\"120m209856\",\"size\":\"120m\",\"time\":1510963200000,\"open\":0.19112,\"high\":0.19277,\"low\":0.1889,\"close\":0.18908,\"volume\":926769.0720193102,\"close_time\":1510970297833,\"vwap\":0.18899598637795864,\"ema1\":0.18934320334871033,\"sma1\":0.18286554,\"sma2\":0.18172000833333335,\"rsi_avg_gain\":0.001849447460094055,\"rsi_avg_loss\":0.0019148019138042727,\"rsi\":49},{\"period_id\":\"120m209855\",\"size\":\"120m\",\"time\":1510956000000,\"open\":0.192,\"high\":0.19408,\"low\":0.191,\"close\":0.19312,\"volume\":428584.75338550995,\"close_time\":1510963099527,\"vwap\":0.1931166829312536,\"ema1\":0.1893613553037938,\"sma1\":0.18286479925925925,\"sma2\":0.18132634166666664,\"rsi_avg_gain\":0.001991712649332059,\"rsi_avg_loss\":0.001751325137943062,\"rsi\":53},{\"period_id\":\"120m209854\",\"size\":\"120m\",\"time\":1510948800000,\"open\":0.1925,\"high\":0.19408,\"low\":0.19061,\"close\":0.192,\"volume\":621065.0758878803,\"close_time\":1510955983115,\"vwap\":0.1912041916390178,\"ema1\":0.18910213842819337,\"sma1\":0.18281776222222218,\"sma2\":0.18091634166666665,\"rsi_avg_gain\":0.0020587674685114475,\"rsi_avg_loss\":0.0018860424562463743,\"rsi\":52},{\"period_id\":\"120m209853\",\"size\":\"120m\",\"time\":1510941600000,\"open\":0.19389,\"high\":0.19475,\"low\":0.19061,\"close\":0.1925,\"volume\":1033069.886988151,\"close_time\":1510948796268,\"vwap\":0.19289396144277335,\"ema1\":0.1889022859059998,\"sma1\":0.18272646592592587,\"sma2\":0.180541675,\"rsi_avg_gain\":0.002217134196858482,\"rsi_avg_loss\":0.0019926611067268645,\"rsi\":53},{\"period_id\":\"120m209852\",\"size\":\"120m\",\"time\":1510934400000,\"open\":0.19491,\"high\":0.196,\"low\":0.19103,\"close\":0.19384,\"volume\":1005591.6163256401,\"close_time\":1510941572001,\"vwap\":0.19367010621464012,\"ema1\":0.18865416769262047,\"sma1\":0.18259544740740735,\"sma2\":0.18014800833333336,\"rsi_avg_gain\":0.0023876829812322113,\"rsi_avg_loss\":0.002042865807244315,\"rsi\":54},{\"period_id\":\"120m209851\",\"size\":\"120m\",\"time\":1510927200000,\"open\":0.19521,\"high\":0.19796,\"low\":0.1946,\"close\":0.19491,\"volume\":960112.6958736299,\"close_time\":1510934385989,\"vwap\":0.19492892636130427,\"ema1\":0.188296524085215,\"sma1\":0.1824462807407407,\"sma2\":0.179732675,\"rsi_avg_gain\":0.002571350902865458,\"rsi_avg_loss\":0.0021177016385708013,\"rsi\":55},{\"period_id\":\"120m209850\",\"size\":\"120m\",\"time\":1510920000000,\"open\":0.1988,\"high\":0.199,\"low\":0.19422,\"close\":0.1953,\"volume\":1780399.7603614214,\"close_time\":1510927150967,\"vwap\":0.19579999578742743,\"ema1\":0.18784042229798845,\"sma1\":0.18227952148148144,\"sma2\":0.17931750833333332,\"rsi_avg_gain\":0.002769147126162801,\"rsi_avg_loss\":0.0022506017646147093,\"rsi\":55},{\"period_id\":\"120m209849\",\"size\":\"120m\",\"time\":1510912800000,\"open\":0.19248,\"high\":0.2,\"low\":0.1905,\"close\":0.1988,\"volume\":2745150.4320924804,\"close_time\":1510919995239,\"vwap\":0.1988,\"ema1\":0.18732596866336695,\"sma1\":0.18211100296296293,\"sma2\":0.1788875083333333,\"rsi_avg_gain\":0.0029821584435599396,\"rsi_avg_loss\":0.0021544942080466097,\"rsi\":58},{\"period_id\":\"120m209848\",\"size\":\"120m\",\"time\":1510905600000,\"open\":0.18905,\"high\":0.1943,\"low\":0.187,\"close\":0.1925,\"volume\":1784900.3421344298,\"close_time\":1510912797579,\"vwap\":0.1923258653499783,\"ema1\":0.18653465615739226,\"sma1\":0.18199248444444438,\"sma2\":0.17844600833333332,\"rsi_avg_gain\":0.0027269398622953196,\"rsi_avg_loss\":0.0023202245317425025,\"rsi\":54},{\"period_id\":\"120m209847\",\"size\":\"120m\",\"time\":1510898400000,\"open\":0.19545,\"high\":0.19594,\"low\":0.187,\"close\":0.188,\"volume\":1178642.750786331,\"close_time\":1510905535766,\"vwap\":0.1884125911745444,\"ema1\":0.18612325313376413,\"sma1\":0.18183091037037033,\"sma2\":0.177999675,\"rsi_avg_gain\":0.0025905506209334206,\"rsi_avg_loss\":0.002498703341876541,\"rsi\":51},{\"period_id\":\"120m209846\",\"size\":\"120m\",\"time\":1510891200000,\"open\":0.19199,\"high\":0.19689,\"low\":0.1894,\"close\":0.19405,\"volume\":956434.2075968998,\"close_time\":1510898331739,\"vwap\":0.19405,\"ema1\":0.18599382231540304,\"sma1\":0.18165322518518517,\"sma2\":0.17759884166666665,\"rsi_avg_gain\":0.0027898237456206072,\"rsi_avg_loss\":0.002225526675867044,\"rsi\":56},{\"period_id\":\"120m209845\",\"size\":\"120m\",\"time\":1510884000000,\"open\":0.187,\"high\":0.1955,\"low\":0.18683,\"close\":0.19112,\"volume\":924918.4014456196,\"close_time\":1510891162791,\"vwap\":0.19138688106408305,\"ema1\":0.18543822385439634,\"sma1\":0.18148841037037033,\"sma2\":0.17723384166666664,\"rsi_avg_gain\":0.0027790409568221935,\"rsi_avg_loss\":0.002396721035549124,\"rsi\":54},{\"period_id\":\"120m209844\",\"size\":\"120m\",\"time\":1510876800000,\"open\":0.19099,\"high\":0.1929,\"low\":0.185,\"close\":0.18834,\"volume\":1080509.2536917797,\"close_time\":1510883939814,\"vwap\":0.18789413845906897,\"ema1\":0.18504637722366507,\"sma1\":0.18135044740740738,\"sma2\":0.176999175,\"rsi_avg_gain\":0.002778967184270054,\"rsi_avg_loss\":0.002581084192129826,\"rsi\":52},{\"period_id\":\"120m209843\",\"size\":\"120m\",\"time\":1510869600000,\"open\":0.20252,\"high\":0.203,\"low\":0.19,\"close\":0.1903,\"volume\":3056503.1666262676,\"close_time\":1510876786878,\"vwap\":0.1906249762891556,\"ema1\":0.18481923082529714,\"sma1\":0.18111878074074073,\"sma2\":0.17677250833333333,\"rsi_avg_gain\":0.0029927338907523656,\"rsi_avg_loss\":0.002628859899216736,\"rsi\":53},{\"period_id\":\"120m209842\",\"size\":\"120m\",\"time\":1510862400000,\"open\":0.195,\"high\":0.209,\"low\":0.19241,\"close\":0.2028,\"volume\":5328767.228624752,\"close_time\":1510869597062,\"vwap\":0.20270000606915486,\"ema1\":0.18444124674428314,\"sma1\":0.18081313259259257,\"sma2\":0.17632550833333333,\"rsi_avg_gain\":0.003222944190041009,\"rsi_avg_loss\":0.001869541429925715,\"rsi\":63},{\"period_id\":\"120m209841\",\"size\":\"120m\",\"time\":1510855200000,\"open\":0.19512,\"high\":0.201,\"low\":0.1905,\"close\":0.195,\"volume\":3369777.689228698,\"close_time\":1510862391100,\"vwap\":0.19636821132670076,\"ema1\":0.18317512583009576,\"sma1\":0.18058378074074072,\"sma2\":0.1760255083333333,\"rsi_avg_gain\":0.0028708629738903174,\"rsi_avg_loss\":0.00201335230915077,\"rsi\":59},{\"period_id\":\"120m209840\",\"size\":\"120m\",\"time\":1510848000000,\"open\":0.2055,\"high\":0.2098,\"low\":0.195,\"close\":0.1964,\"volume\":6663655.530201383,\"close_time\":1510855198173,\"vwap\":0.19640000000000002,\"ema1\":0.1823596172666541,\"sma1\":0.18027998444444446,\"sma2\":0.17574217499999994,\"rsi_avg_gain\":0.0030916985872664958,\"rsi_avg_loss\":0.002060533256008523,\"rsi\":60},{\"period_id\":\"120m209839\",\"size\":\"120m\",\"time\":1510840800000,\"open\":0.22,\"high\":0.22,\"low\":0.194,\"close\":0.205,\"volume\":15617530.64268609,\"close_time\":1510847998500,\"vwap\":0.20498752694640207,\"ema1\":0.18139131500918196,\"sma1\":0.17989850296296292,\"sma2\":0.17520267499999995,\"rsi_avg_gain\":0.0033295215555177644,\"rsi_avg_loss\":0.0015574973526245634,\"rsi\":68},{\"period_id\":\"120m209838\",\"size\":\"120m\",\"time\":1510833600000,\"open\":0.17678,\"high\":0.22,\"low\":0.1757,\"close\":0.22,\"volume\":10349111.628457345,\"close_time\":1510840796412,\"vwap\":0.22000000000000003,\"ema1\":0.1797631298374014,\"sma1\":0.17952257703703703,\"sma2\":0.1743610083333333,\"rsi_avg_gain\":0.0035856385982499,\"rsi_avg_loss\":0.0005234586874418366,\"rsi\":87},{\"period_id\":\"120m209837\",\"size\":\"120m\",\"time\":1510826400000,\"open\":0.177,\"high\":0.1778,\"low\":0.17555,\"close\":0.177,\"volume\":1105490.1614706505,\"close_time\":1510833568077,\"vwap\":0.17697254266101323,\"ema1\":0.17698817327446356,\"sma1\":0.17950692888888892,\"sma2\":0.17427934166666662,\"rsi_avg_gain\":0.0005537646442691225,\"rsi_avg_loss\":0.0005637247403219779,\"rsi\":50},{\"period_id\":\"120m209836\",\"size\":\"120m\",\"time\":1510819200000,\"open\":0.1785,\"high\":0.17858,\"low\":0.176,\"close\":0.177,\"volume\":397588.30518430006,\"close_time\":1510826392504,\"vwap\":0.177,\"ema1\":0.17698735763821966,\"sma1\":0.1794858177777778,\"sma2\":0.1743330083333333,\"rsi_avg_gain\":0.0005963619245975165,\"rsi_avg_loss\":0.000607088181885207,\"rsi\":50},{\"period_id\":\"120m209835\",\"size\":\"120m\",\"time\":1510812000000,\"open\":0.179,\"high\":0.17957,\"low\":0.1775,\"close\":0.1786,\"volume\":236250.85952177003,\"close_time\":1510819171050,\"vwap\":0.17860656827891536,\"ema1\":0.17698648575120032,\"sma1\":0.17944692888888894,\"sma2\":0.1743230083333333,\"rsi_avg_gain\":0.0006422359187973254,\"rsi_avg_loss\":0.0005307103497225292,\"rsi\":55},{\"period_id\":\"120m209834\",\"size\":\"120m\",\"time\":1510804800000,\"open\":0.17893,\"high\":0.1797,\"low\":0.17753,\"close\":0.17945,\"volume\":206948.74571139002,\"close_time\":1510811990052,\"vwap\":0.17861907244890896,\"ema1\":0.17687520890645553,\"sma1\":0.1794049844444445,\"sma2\":0.174257175,\"rsi_avg_gain\":0.0006916386817817352,\"rsi_avg_loss\":0.0005061496073934939,\"rsi\":58},{\"period_id\":\"120m209833\",\"size\":\"120m\",\"time\":1510797600000,\"open\":0.17994,\"high\":0.17997,\"low\":0.17603,\"close\":0.178,\"volume\":353774.0085576001,\"close_time\":1510804386630,\"vwap\":0.1781814964195951,\"ema1\":0.17669763710690073,\"sma1\":0.17935433629629635,\"sma2\":0.17422967499999995,\"rsi_avg_gain\":0.0006333031957649452,\"rsi_avg_loss\":0.0005450841925776088,\"rsi\":54},{\"period_id\":\"120m209832\",\"size\":\"120m\",\"time\":1510790400000,\"open\":0.1778,\"high\":0.1809,\"low\":0.17779,\"close\":0.18,\"volume\":1361998.4149140103,\"close_time\":1510797487097,\"vwap\":0.17976564364518127,\"ema1\":0.17660781897634217,\"sma1\":0.17930896592592596,\"sma2\":0.17417967499999998,\"rsi_avg_gain\":0.0006820188262084025,\"rsi_avg_loss\":0.0004331675920066556,\"rsi\":61},{\"period_id\":\"120m209831\",\"size\":\"120m\",\"time\":1510783200000,\"open\":0.17768,\"high\":0.1787,\"low\":0.175,\"close\":0.1778,\"volume\":1566869.6451750586,\"close_time\":1510790392691,\"vwap\":0.1778,\"ema1\":0.17637387545746921,\"sma1\":0.17929655851851856,\"sma2\":0.1741280083333333,\"rsi_avg_gain\":0.0005652510436090504,\"rsi_avg_loss\":0.0004664881760071676,\"rsi\":55},{\"period_id\":\"120m209830\",\"size\":\"120m\",\"time\":1510776000000,\"open\":0.1769,\"high\":0.17899,\"low\":0.17601,\"close\":0.17768,\"volume\":491676.01611941017,\"close_time\":1510783162699,\"vwap\":0.1775080120807376,\"ema1\":0.17627552204074295,\"sma1\":0.17929822518518523,\"sma2\":0.17407984166666662,\"rsi_avg_gain\":0.000599501123886669,\"rsi_avg_loss\":0.0005023718818538727,\"rsi\":54},{\"period_id\":\"120m209829\",\"size\":\"120m\",\"time\":1510768800000,\"open\":0.17759,\"high\":0.17889,\"low\":0.17601,\"close\":0.17624,\"volume\":977653.8880108004,\"close_time\":1510775927078,\"vwap\":0.17642327720343967,\"ema1\":0.17617866149182868,\"sma1\":0.1792899844444445,\"sma2\":0.17404934166666666,\"rsi_avg_gain\":0.0005348473641856439,\"rsi_avg_loss\":0.0005410158727657091,\"rsi\":50},{\"period_id\":\"120m209828\",\"size\":\"120m\",\"time\":1510761600000,\"open\":0.17791,\"high\":0.17813,\"low\":0.176,\"close\":0.17753,\"volume\":790866.41378568,\"close_time\":1510768797924,\"vwap\":0.17748414316394234,\"ema1\":0.17617443124988583,\"sma1\":0.1792887807407408,\"sma2\":0.174027175,\"rsi_avg_gain\":0.000575989469123001,\"rsi_avg_loss\":0.00048340170913230334,\"rsi\":54},{\"period_id\":\"120m209827\",\"size\":\"120m\",\"time\":1510754400000,\"open\":0.17899,\"high\":0.17936,\"low\":0.17741,\"close\":0.17867,\"volume\":501227.49448165024,\"close_time\":1510761592558,\"vwap\":0.17867,\"ema1\":0.17608094374987796,\"sma1\":0.17928933629629634,\"sma2\":0.174012675,\"rsi_avg_gain\":0.0006202963513632319,\"rsi_avg_loss\":0.0004328941482963265,\"rsi\":59},{\"period_id\":\"120m209826\",\"size\":\"120m\",\"time\":1510747200000,\"open\":0.17861,\"high\":0.18,\"low\":0.1775,\"close\":0.17894,\"volume\":1020662.5634295301,\"close_time\":1510754363661,\"vwap\":0.17891327220992706,\"ema1\":0.17590238814642126,\"sma1\":0.17928470666666668,\"sma2\":0.17395700833333333,\"rsi_avg_gain\":0.0006680114553142497,\"rsi_avg_loss\":0.0004454244673960445,\"rsi\":60},{\"period_id\":\"120m209825\",\"size\":\"120m\",\"time\":1510740000000,\"open\":0.17916,\"high\":0.18,\"low\":0.17772,\"close\":0.1798,\"volume\":839624.29586238,\"close_time\":1510747159672,\"vwap\":0.17928398895468906,\"ema1\":0.17569289767376065,\"sma1\":0.17928461407407412,\"sma2\":0.17403017499999998,\"rsi_avg_gain\":0.0007193969518768842,\"rsi_avg_loss\":0.00041353404181112484,\"rsi\":63},{\"period_id\":\"120m209824\",\"size\":\"120m\",\"time\":1510732800000,\"open\":0.178,\"high\":0.18,\"low\":0.17774,\"close\":0.17916,\"volume\":1371706.4441208409,\"close_time\":1510739987906,\"vwap\":0.1791154715304663,\"ema1\":0.17540964923746827,\"sma1\":0.1792250770370371,\"sma2\":0.17409917499999994,\"rsi_avg_gain\":0.0007255044097135697,\"rsi_avg_loss\":0.0004453443527196729,\"rsi\":62},{\"period_id\":\"120m209823\",\"size\":\"120m\",\"time\":1510725600000,\"open\":0.17647,\"high\":0.179,\"low\":0.17647,\"close\":0.178,\"volume\":594290.64150528,\"close_time\":1510732786046,\"vwap\":0.17799999999999996,\"ema1\":0.17515100435729367,\"sma1\":0.17916766962962966,\"sma2\":0.17420850833333326,\"rsi_avg_gain\":0.0006920816719992272,\"rsi_avg_loss\":0.0004796016106211862,\"rsi\":59},{\"period_id\":\"120m209822\",\"size\":\"120m\",\"time\":1510718400000,\"open\":0.17676,\"high\":0.17748,\"low\":0.17561,\"close\":0.17645,\"volume\":194388.95898348003,\"close_time\":1510725406545,\"vwap\":0.17668622278855267,\"ema1\":0.17495452189917599,\"sma1\":0.17912507703703712,\"sma2\":0.1743610083333333,\"rsi_avg_gain\":0.0006260879544607065,\"rsi_avg_loss\":0.0005164940422074313,\"rsi\":55},{\"period_id\":\"120m209821\",\"size\":\"120m\",\"time\":1510711200000,\"open\":0.17672,\"high\":0.17744,\"low\":0.176,\"close\":0.17607,\"volume\":154013.12588774003,\"close_time\":1510717437169,\"vwap\":0.17650300652788573,\"ema1\":0.17485138547842952,\"sma1\":0.17908285481481487,\"sma2\":0.17454400833333328,\"rsi_avg_gain\":0.0006450177971115308,\"rsi_avg_loss\":0.0005562243531464645,\"rsi\":54},{\"period_id\":\"120m209820\",\"size\":\"120m\",\"time\":1510704000000,\"open\":0.17563,\"high\":0.17746,\"low\":0.1754,\"close\":0.17661,\"volume\":330525.27986849006,\"close_time\":1510711129545,\"vwap\":0.17673345515569855,\"ema1\":0.17476734309763156,\"sma1\":0.17904081777777783,\"sma2\":0.17473817499999988,\"rsi_avg_gain\":0.0006946345507354947,\"rsi_avg_loss\":0.0005574723803115783,\"rsi\":55},{\"period_id\":\"120m209819\",\"size\":\"120m\",\"time\":1510696800000,\"open\":0.17597,\"high\":0.1761,\"low\":0.175,\"close\":0.17582,\"volume\":577026.2364562798,\"close_time\":1510703941720,\"vwap\":0.1757106779953591,\"ema1\":0.1746402633112613,\"sma1\":0.17901674370370377,\"sma2\":0.17493950833333327,\"rsi_avg_gain\":0.0006872987469459185,\"rsi_avg_loss\":0.0006003548711047766,\"rsi\":53},{\"period_id\":\"120m209818\",\"size\":\"120m\",\"time\":1510689600000,\"open\":0.17656,\"high\":0.1771,\"low\":0.1746,\"close\":0.17602,\"volume\":754846.95783339,\"close_time\":1510696790603,\"vwap\":0.1760379859920973,\"ema1\":0.1745589021603138,\"sma1\":0.17898000851851853,\"sma2\":0.1751435083333333,\"rsi_avg_gain\":0.0007401678813263737,\"rsi_avg_loss\":0.0006311513996512975,\"rsi\":54},{\"period_id\":\"120m209817\",\"size\":\"120m\",\"time\":1510682400000,\"open\":0.17774,\"high\":0.1785,\"low\":0.17451,\"close\":0.17656,\"volume\":873858.6678473103,\"close_time\":1510689575374,\"vwap\":0.17619351849125228,\"ema1\":0.17445813679205957,\"sma1\":0.17891982333333337,\"sma2\":0.17536750833333326,\"rsi_avg_gain\":0.0007971038721976331,\"rsi_avg_loss\":0.0006381630457783215,\"rsi\":56},{\"period_id\":\"120m209816\",\"size\":\"120m\",\"time\":1510675200000,\"open\":0.17779,\"high\":0.17873,\"low\":0.177,\"close\":0.17772,\"volume\":601474.58078276,\"close_time\":1510682334312,\"vwap\":0.17791202407900808,\"ema1\":0.17431318070875335,\"sma1\":0.17886676777777777,\"sma2\":0.1755915083333333,\"rsi_avg_gain\":0.000858419554674374,\"rsi_avg_loss\":0.0005980217416074236,\"rsi\":59},{\"period_id\":\"120m209815\",\"size\":\"120m\",\"time\":1510668000000,\"open\":0.175,\"high\":0.179,\"low\":0.175,\"close\":0.1779,\"volume\":903691.211076629,\"close_time\":1510675183379,\"vwap\":0.1778500582740296,\"ema1\":0.1740782276541846,\"sma1\":0.17881121222222218,\"sma2\":0.17578050833333328,\"rsi_avg_gain\":0.0009244518281108643,\"rsi_avg_loss\":0.000630177260192609,\"rsi\":59},{\"period_id\":\"120m209814\",\"size\":\"120m\",\"time\":1510660800000,\"open\":0.17511,\"high\":0.17649,\"low\":0.1735,\"close\":0.1764,\"volume\":739101.4692513704,\"close_time\":1510667938280,\"vwap\":0.1755673351610113,\"ema1\":0.17381465714757663,\"sma1\":0.17879167518518516,\"sma2\":0.17596567499999993,\"rsi_avg_gain\":0.0008801788918116999,\"rsi_avg_loss\":0.000678652434053579,\"rsi\":56},{\"period_id\":\"120m209813\",\"size\":\"120m\",\"time\":1510653600000,\"open\":0.17595,\"high\":0.17699,\"low\":0.175,\"close\":0.1756,\"volume\":896831.7352713099,\"close_time\":1510660756249,\"vwap\":0.1756,\"ema1\":0.17363635764051294,\"sma1\":0.1787673233333333,\"sma2\":0.17616834166666662,\"rsi_avg_gain\":0.0008863464988741387,\"rsi_avg_loss\":0.0007308564674423159,\"rsi\":55},{\"period_id\":\"120m209812\",\"size\":\"120m\",\"time\":1510646400000,\"open\":0.17599,\"high\":0.17621,\"low\":0.17403,\"close\":0.1758,\"volume\":425112.28303541004,\"close_time\":1510653572451,\"vwap\":0.17587658152564234,\"ema1\":0.17350093402951383,\"sma1\":0.17875611962962965,\"sma2\":0.17634034166666665,\"rsi_avg_gain\":0.000954526998787534,\"rsi_avg_loss\":0.0007716915803224935,\"rsi\":55},{\"period_id\":\"120m209811\",\"size\":\"120m\",\"time\":1510639200000,\"open\":0.176,\"high\":0.1766,\"low\":0.17201,\"close\":0.17435,\"volume\":679307.6820065394,\"close_time\":1510646329094,\"vwap\":0.17432666789349613,\"ema1\":0.1733423777556872,\"sma1\":0.1787413048148148,\"sma2\":0.1766395083333333,\"rsi_avg_gain\":0.0009164136910019591,\"rsi_avg_loss\":0.0008310524711165315,\"rsi\":52},{\"period_id\":\"120m209810\",\"size\":\"120m\",\"time\":1510632000000,\"open\":0.1768,\"high\":0.1768,\"low\":0.175,\"close\":0.17598,\"volume\":429675.1602830501,\"close_time\":1510639183059,\"vwap\":0.17597333707595184,\"ema1\":0.17327288656642426,\"sma1\":0.17872556407407408,\"sma2\":0.17687317500000002,\"rsi_avg_gain\":0.0009869070518482637,\"rsi_avg_loss\":0.0007695949688947268,\"rsi\":56},{\"period_id\":\"120m209809\",\"size\":\"120m\",\"time\":1510624800000,\"open\":0.17539,\"high\":0.178,\"low\":0.17465,\"close\":0.17654,\"volume\":586797.5998933498,\"close_time\":1510631991411,\"vwap\":0.17654,\"ema1\":0.1730861890882466,\"sma1\":0.17869852703703706,\"sma2\":0.17712250833333332,\"rsi_avg_gain\":0.0010628229789135149,\"rsi_avg_loss\":0.0007857176588097054,\"rsi\":57},{\"period_id\":\"120m209808\",\"size\":\"120m\",\"time\":1510617600000,\"open\":0.17346,\"high\":0.1755,\"low\":0.17214,\"close\":0.1755,\"volume\":764624.7999068601,\"close_time\":1510624784246,\"vwap\":0.1752847080745306,\"ema1\":0.1728479952322636,\"sma1\":0.17869111962962966,\"sma2\":0.17737250833333335,\"rsi_avg_gain\":0.001064578592676092,\"rsi_avg_loss\":0.0008461574787181442,\"rsi\":56},{\"period_id\":\"120m209807\",\"size\":\"120m\",\"time\":1510610400000,\"open\":0.17199,\"high\":0.1735,\"low\":0.1712,\"close\":0.1735,\"volume\":538034.5097671399,\"close_time\":1510617597826,\"vwap\":0.17336039288176508,\"ema1\":0.17266509835173005,\"sma1\":0.17870399000000003,\"sma2\":0.177619175,\"rsi_avg_gain\":0.000992623099805022,\"rsi_avg_loss\":0.0009112465155426168,\"rsi\":52},{\"period_id\":\"120m209806\",\"size\":\"120m\",\"time\":1510603200000,\"open\":0.17054,\"high\":0.17249,\"low\":0.1704,\"close\":0.17199,\"volume\":631139.0908938397,\"close_time\":1510610382134,\"vwap\":0.17199,\"ema1\":0.17260751892771142,\"sma1\":0.17872639740740745,\"sma2\":0.17783317499999998,\"rsi_avg_gain\":0.0009528248767131019,\"rsi_avg_loss\":0.0009813424013535874,\"rsi\":49},{\"period_id\":\"120m209805\",\"size\":\"120m\",\"time\":1510596000000,\"open\":0.17247,\"high\":0.1725,\"low\":0.17,\"close\":0.172,\"volume\":870330.9006816499,\"close_time\":1510603178336,\"vwap\":0.17168307566034222,\"ema1\":0.1726501064399674,\"sma1\":0.17875658259259264,\"sma2\":0.178046175,\"rsi_avg_gain\":0.001026119097998725,\"rsi_avg_loss\":0.001056061047611557,\"rsi\":49},{\"period_id\":\"120m209804\",\"size\":\"120m\",\"time\":1510588800000,\"open\":0.173,\"high\":0.17348,\"low\":0.17106,\"close\":0.1725,\"volume\":309292.22678649,\"close_time\":1510595941115,\"vwap\":0.1725,\"ema1\":0.1726949413668617,\"sma1\":0.17877991592592596,\"sma2\":0.17819934166666665,\"rsi_avg_gain\":0.0011050513363063193,\"rsi_avg_loss\":0.0010988349743509074,\"rsi\":50},{\"period_id\":\"120m209803\",\"size\":\"120m\",\"time\":1510581600000,\"open\":0.17303,\"high\":0.1735,\"low\":0.17,\"close\":0.173,\"volume\":635923.3682115899,\"close_time\":1510588750094,\"vwap\":0.17279668448336782,\"ema1\":0.17270838559905907,\"sma1\":0.17881482333333334,\"sma2\":0.17834684166666664,\"rsi_avg_gain\":0.0011900552852529592,\"rsi_avg_loss\":0.0011448992031471308,\"rsi\":51},{\"period_id\":\"120m209802\",\"size\":\"120m\",\"time\":1510574400000,\"open\":0.17399,\"high\":0.174,\"low\":0.165,\"close\":0.17304,\"volume\":1779330.7190665496,\"close_time\":1510581596236,\"vwap\":0.17354683033784543,\"ema1\":0.17268827426106315,\"sma1\":0.17885149000000003,\"sma2\":0.178471175,\"rsi_avg_gain\":0.001281597999503187,\"rsi_avg_loss\":0.001229891449543063,\"rsi\":51},{\"period_id\":\"120m209801\",\"size\":\"120m\",\"time\":1510567200000,\"open\":0.1739,\"high\":0.175,\"low\":0.17095,\"close\":0.17399,\"volume\":1125405.2639887903,\"close_time\":1510574391964,\"vwap\":0.17363366139448277,\"ema1\":0.17266401731355027,\"sma1\":0.17886871222222223,\"sma2\":0.17855467500000002,\"rsi_avg_gain\":0.0013801824610034322,\"rsi_avg_loss\":0.0012514215610463751,\"rsi\":52},{\"period_id\":\"120m209800\",\"size\":\"120m\",\"time\":1510560000000,\"open\":0.1685,\"high\":0.1739,\"low\":0.168,\"close\":0.17349,\"volume\":1034292.9793085196,\"close_time\":1510567185235,\"vwap\":0.17362663141580392,\"ema1\":0.17257257023172615,\"sma1\":0.17889504685185187,\"sma2\":0.17868650833333335,\"rsi_avg_gain\":0.0014478888041575425,\"rsi_avg_loss\":0.0013476847580499425,\"rsi\":52},{\"period_id\":\"120m209799\",\"size\":\"120m\",\"time\":1510552800000,\"open\":0.16969,\"high\":0.1705,\"low\":0.16809,\"close\":0.16856,\"volume\":70489.34351741005,\"close_time\":1510559923918,\"vwap\":0.16860084898795036,\"ema1\":0.1725092992132245,\"sma1\":0.17894949129629634,\"sma2\":0.17884384166666667,\"rsi_avg_gain\":0.0011800340967850445,\"rsi_avg_loss\":0.0014513528163614766,\"rsi\":45},{\"period_id\":\"120m209798\",\"size\":\"120m\",\"time\":1510545600000,\"open\":0.17278,\"high\":0.1729,\"low\":0.16771,\"close\":0.16941,\"volume\":232672.51672249002,\"close_time\":1510552749298,\"vwap\":0.16857005776756306,\"ema1\":0.1727816646762055,\"sma1\":0.1789848616666667,\"sma2\":0.1789820083333333,\"rsi_avg_gain\":0.001270805950383894,\"rsi_avg_loss\":0.0014976107253123583,\"rsi\":46},{\"period_id\":\"120m209797\",\"size\":\"120m\",\"time\":1510538400000,\"open\":0.16775,\"high\":0.17287,\"low\":0.16714,\"close\":0.1728,\"volume\":317883.98797446996,\"close_time\":1510545349531,\"vwap\":0.1711482458512468,\"ema1\":0.17301419327456452,\"sma1\":0.1790229172222223,\"sma2\":0.17904850833333333,\"rsi_avg_gain\":0.001368560254259578,\"rsi_avg_loss\":0.0013520423195671546,\"rsi\":50},{\"period_id\":\"120m209796\",\"size\":\"120m\",\"time\":1510531200000,\"open\":0.16949,\"high\":0.1724,\"low\":0.16559,\"close\":0.1677505,\"volume\":521480.4175115699,\"close_time\":1510538326283,\"vwap\":0.1669752737868579,\"ema1\":0.17302896522453448,\"sma1\":0.17908402833333342,\"sma2\":0.17919049999999997,\"rsi_avg_gain\":0.0010854110430487754,\"rsi_avg_loss\":0.001456045574918474,\"rsi\":43},{\"period_id\":\"120m209795\",\"size\":\"120m\",\"time\":1510524000000,\"open\":0.1674,\"high\":0.16998,\"low\":0.165,\"close\":0.1695,\"volume\":1311093.4219952,\"close_time\":1510531050771,\"vwap\":0.16835337112427776,\"ema1\":0.17339299730898514,\"sma1\":0.17921384314814823,\"sma2\":0.17930783333333336,\"rsi_avg_gain\":0.0011689042002063735,\"rsi_avg_loss\":0.0014334721576045092,\"rsi\":45},{\"period_id\":\"120m209794\",\"size\":\"120m\",\"time\":1510516800000,\"open\":0.17,\"high\":0.171,\"low\":0.1655,\"close\":0.1674,\"volume\":930806.39173004,\"close_time\":1510523988470,\"vwap\":0.16785315633656397,\"ema1\":0.1736614798820186,\"sma1\":0.17935819500000005,\"sma2\":0.1794478333333334,\"rsi_avg_gain\":0.001097281446376093,\"rsi_avg_loss\":0.0015437392466510099,\"rsi\":42},{\"period_id\":\"120m209793\",\"size\":\"120m\",\"time\":1510509600000,\"open\":0.17021,\"high\":0.171,\"low\":0.1684,\"close\":0.17002,\"volume\":1081793.2557907307,\"close_time\":1510516799098,\"vwap\":0.17000670916188027,\"ema1\":0.1740933060807785,\"sma1\":0.17947856537037044,\"sma2\":0.17952533333333337,\"rsi_avg_gain\":0.0011816877114819463,\"rsi_avg_loss\":0.001460949957931856,\"rsi\":45},{\"period_id\":\"120m209792\",\"size\":\"120m\",\"time\":1510502400000,\"open\":0.16953,\"high\":0.173,\"low\":0.16717,\"close\":0.17022,\"volume\":1220729.4702502298,\"close_time\":1510509590715,\"vwap\":0.17002560914715514,\"ema1\":0.17437422374152184,\"sma1\":0.17956625055555564,\"sma2\":0.17962566666666674,\"rsi_avg_gain\":0.0012725867662113268,\"rsi_avg_loss\":0.0015579461085419982,\"rsi\":45},{\"period_id\":\"120m209791\",\"size\":\"120m\",\"time\":1510495200000,\"open\":0.16884,\"high\":0.17264,\"low\":0.1675,\"close\":0.16999,\"volume\":1416319.5101583297,\"close_time\":1510502384838,\"vwap\":0.1695700636038847,\"ema1\":0.17466072193059232,\"sma1\":0.1796653246296297,\"sma2\":0.17974183333333338,\"rsi_avg_gain\":0.0013527857482275821,\"rsi_avg_loss\":0.0016777881168913828,\"rsi\":45},{\"period_id\":\"120m209790\",\"size\":\"120m\",\"time\":1510488000000,\"open\":0.173,\"high\":0.1756,\"low\":0.1675,\"close\":0.17039,\"volume\":3313398.677564392,\"close_time\":1510495190490,\"vwap\":0.17038999999999999,\"ema1\":0.17498284068442627,\"sma1\":0.17967819500000004,\"sma2\":0.17984366666666673,\"rsi_avg_gain\":0.0014568461903989346,\"rsi_avg_loss\":0.0017760795104984112,\"rsi\":45},{\"period_id\":\"120m209789\",\"size\":\"120m\",\"time\":1510480800000,\"open\":0.16601,\"high\":0.1763,\"low\":0.165,\"close\":0.173,\"volume\":2580742.5473769414,\"close_time\":1510487985447,\"vwap\":0.173019988746136,\"ema1\":0.17529958831783496,\"sma1\":0.1796714357407408,\"sma2\":0.17989550000000007,\"rsi_avg_gain\":0.0015689112819680835,\"rsi_avg_loss\":0.0017119317805367525,\"rsi\":48},{\"period_id\":\"120m209788\",\"size\":\"120m\",\"time\":1510473600000,\"open\":0.16596,\"high\":0.17146,\"low\":0.1611,\"close\":0.16601,\"volume\":2380649.9986581267,\"close_time\":1510480792987,\"vwap\":0.16530224635933213,\"ema1\":0.1754581806156167,\"sma1\":0.17971810240740746,\"sma2\":0.18005700000000008,\"rsi_avg_gain\":0.0011519044575040904,\"rsi_avg_loss\":0.001843618840578041,\"rsi\":38},{\"period_id\":\"120m209787\",\"size\":\"120m\",\"time\":1510466400000,\"open\":0.17,\"high\":0.17099,\"low\":0.161,\"close\":0.16122,\"volume\":3229527.0687472746,\"close_time\":1510473566212,\"vwap\":0.16500667268471284,\"ema1\":0.17610977927876267,\"sma1\":0.17976449129629626,\"sma2\":0.1802836666666667,\"rsi_avg_gain\":0.000872050954235175,\"rsi_avg_loss\":0.0019854356744686595,\"rsi\":31},{\"period_id\":\"120m209786\",\"size\":\"120m\",\"time\":1510459200000,\"open\":0.17066,\"high\":0.17355,\"low\":0.16823,\"close\":0.17,\"volume\":994724.1163038004,\"close_time\":1510466383975,\"vwap\":0.1697365659329104,\"ema1\":0.17713666060833252,\"sma1\":0.1797705098148148,\"sma2\":0.1803581666666667,\"rsi_avg_gain\":0.00093913179686865,\"rsi_avg_loss\":0.0014627768801970173,\"rsi\":39},{\"period_id\":\"120m209785\",\"size\":\"120m\",\"time\":1510452000000,\"open\":0.17445,\"high\":0.17445,\"low\":0.16902,\"close\":0.16922,\"volume\":1261435.8449201102,\"close_time\":1510459100083,\"vwap\":0.16907075947484865,\"ema1\":0.17762884409856236,\"sma1\":0.17979226907407408,\"sma2\":0.18044616666666669,\"rsi_avg_gain\":0.0009513727043200844,\"rsi_avg_loss\":0.0015752981786737112,\"rsi\":38},{\"period_id\":\"120m209784\",\"size\":\"120m\",\"time\":1510444800000,\"open\":0.17767,\"high\":0.1777,\"low\":0.17407,\"close\":0.17426,\"volume\":328023.63525571,\"close_time\":1510451999100,\"vwap\":0.17420353387709847,\"ema1\":0.17820876438122182,\"sma1\":0.17985986166666668,\"sma2\":0.18042516666666672,\"rsi_avg_gain\":0.001024555220037014,\"rsi_avg_loss\":0.0013087826539563052,\"rsi\":44},{\"period_id\":\"120m209783\",\"size\":\"120m\",\"time\":1510437600000,\"open\":0.17563,\"high\":0.1785,\"low\":0.17377,\"close\":0.1767,\"volume\":316327.0275906,\"close_time\":1510444746655,\"vwap\":0.17762421855434082,\"ema1\":0.17848109295923711,\"sma1\":0.17981625055555556,\"sma2\":0.1804106666666667,\"rsi_avg_gain\":0.0011033671600398612,\"rsi_avg_loss\":0.0012217659350298672,\"rsi\":47},{\"period_id\":\"120m209782\",\"size\":\"120m\",\"time\":1510430400000,\"open\":0.17608,\"high\":0.17998,\"low\":0.17214,\"close\":0.17598,\"volume\":1570101.0684755915,\"close_time\":1510437571913,\"vwap\":0.17655325304128544,\"ema1\":0.17860392695642588,\"sma1\":0.17969606537037042,\"sma2\":0.1804196666666667,\"rsi_avg_gain\":0.001132856941581389,\"rsi_avg_loss\":0.0013157479300321647,\"rsi\":46},{\"period_id\":\"120m209781\",\"size\":\"120m\",\"time\":1510423200000,\"open\":0.179,\"high\":0.18004,\"low\":0.175,\"close\":0.177,\"volume\":1139440.0789324606,\"close_time\":1510430382442,\"vwap\":0.17697666965802844,\"ema1\":0.1787848874361794,\"sma1\":0.1795708801851852,\"sma2\":0.18036033333333334,\"rsi_avg_gain\":0.0012199997832414958,\"rsi_avg_loss\":0.0013384977708038703,\"rsi\":48},{\"period_id\":\"120m209780\",\"size\":\"120m\",\"time\":1510416000000,\"open\":0.1732,\"high\":0.1794,\"low\":0.17001,\"close\":0.1794,\"volume\":991466.1092300097,\"close_time\":1510423190096,\"vwap\":0.17930229192615743,\"ema1\":0.17890798312143316,\"sma1\":0.1794468061111111,\"sma2\":0.18033533333333335,\"rsi_avg_gain\":0.0013138459204139186,\"rsi_avg_loss\":0.0012568437531733979,\"rsi\":51},{\"period_id\":\"120m209779\",\"size\":\"120m\",\"time\":1510408800000,\"open\":0.16985,\"high\":0.17395,\"low\":0.167,\"close\":0.17263,\"volume\":974812.9391063203,\"close_time\":1510415941956,\"vwap\":0.17349691829945046,\"ema1\":0.1788740509229113,\"sma1\":0.17939625055555555,\"sma2\":0.1804,\"rsi_avg_gain\":0.0008941417604457588,\"rsi_avg_loss\":0.001353524041879044,\"rsi\":40},{\"period_id\":\"120m209778\",\"size\":\"120m\",\"time\":1510401600000,\"open\":0.175,\"high\":0.17576832,\"low\":0.16701,\"close\":0.1695,\"volume\":2442211.8787478986,\"close_time\":1510408777466,\"vwap\":0.1698975712929508,\"ema1\":0.1793046751244914,\"sma1\":0.17933904388888883,\"sma2\":0.1805331666666667,\"rsi_avg_gain\":0.0007221526650954329,\"rsi_avg_loss\":0.0014576412758697396,\"rsi\":33},{\"period_id\":\"120m209777\",\"size\":\"120m\",\"time\":1510394400000,\"open\":0.1805,\"high\":0.18141,\"low\":0.172,\"close\":0.1721,\"volume\":2079496.2112085498,\"close_time\":1510401587132,\"vwap\":0.17305652118279413,\"ema1\":0.17998085961583565,\"sma1\":0.17914080314814812,\"sma2\":0.18063316666666665,\"rsi_avg_gain\":0.0007777028701027739,\"rsi_avg_loss\":0.0013697675278597202,\"rsi\":36},{\"period_id\":\"120m209776\",\"size\":\"120m\",\"time\":1510387200000,\"open\":0.17744,\"high\":0.181,\"low\":0.17692,\"close\":0.18022,\"volume\":981048.3481494704,\"close_time\":1510394392419,\"vwap\":0.18046681685892219,\"ema1\":0.18052436717554846,\"sma1\":0.17894635870370368,\"sma2\":0.18052216666666665,\"rsi_avg_gain\":0.0008375261678029873,\"rsi_avg_loss\":0.0008505188761566227,\"rsi\":50},{\"period_id\":\"120m209775\",\"size\":\"120m\",\"time\":1510380000000,\"open\":0.17612,\"high\":0.17835,\"low\":0.17575,\"close\":0.178,\"volume\":270682.5348436299,\"close_time\":1510387170239,\"vwap\":0.177476879515842,\"ema1\":0.18054535801524146,\"sma1\":0.1788060809259259,\"sma2\":0.18041383333333333,\"rsi_avg_gain\":0.0007311820268647556,\"rsi_avg_loss\":0.0009159434050917475,\"rsi\":44},{\"period_id\":\"120m209774\",\"size\":\"120m\",\"time\":1510372800000,\"open\":0.17598,\"high\":0.177,\"low\":0.175,\"close\":0.1755,\"volume\":131092.04912470002,\"close_time\":1510379912100,\"vwap\":0.17535011557436736,\"ema1\":0.18072089994732707,\"sma1\":0.17869237722222217,\"sma2\":0.18035716666666668,\"rsi_avg_gain\":0.000595119105854352,\"rsi_avg_loss\":0.000986400590098805,\"rsi\":38},{\"period_id\":\"120m209773\",\"size\":\"120m\",\"time\":1510365600000,\"open\":0.17698,\"high\":0.177,\"low\":0.1758,\"close\":0.17635,\"volume\":94690.41121102999,\"close_time\":1510372576835,\"vwap\":0.17643527412845775,\"ema1\":0.18108096201265997,\"sma1\":0.17860571055555552,\"sma2\":0.18028483333333334,\"rsi_avg_gain\":0.0006408974986123791,\"rsi_avg_loss\":0.000996892943183327,\"rsi\":39},{\"period_id\":\"120m209772\",\"size\":\"120m\",\"time\":1510358400000,\"open\":0.17466,\"high\":0.17727,\"low\":0.1735,\"close\":0.177,\"volume\":222966.58106674007,\"close_time\":1510365541592,\"vwap\":0.17699999999999996,\"ema1\":0.18140723525491237,\"sma1\":0.17850895129629624,\"sma2\":0.1801945,\"rsi_avg_gain\":0.0006901973061979467,\"rsi_avg_loss\":0.0010235770157358919,\"rsi\":40},{\"period_id\":\"120m209771\",\"size\":\"120m\",\"time\":1510351200000,\"open\":0.17467,\"high\":0.179,\"low\":0.17387,\"close\":0.1747,\"volume\":797093.3192915202,\"close_time\":1510358365250,\"vwap\":0.17449664183554126,\"ema1\":0.18171118251387183,\"sma1\":0.17839543277777775,\"sma2\":0.18016533333333332,\"rsi_avg_gain\":0.0005663663297516352,\"rsi_avg_loss\":0.0011023137092540374,\"rsi\":34},{\"period_id\":\"120m209770\",\"size\":\"120m\",\"time\":1510344000000,\"open\":0.17441,\"high\":0.17549,\"low\":0.171,\"close\":0.17479,\"volume\":1094468.96498331,\"close_time\":1510351192590,\"vwap\":0.1747800165176847,\"ema1\":0.18219471234241472,\"sma1\":0.1783408957407407,\"sma2\":0.18013771,\"rsi_avg_gain\":0.000609932970501761,\"rsi_avg_loss\":0.0011801839945812704,\"rsi\":34},{\"period_id\":\"120m209769\",\"size\":\"120m\",\"time\":1510336800000,\"open\":0.1761,\"high\":0.1772,\"low\":0.1715,\"close\":0.17441,\"volume\":1735605.7652716597,\"close_time\":1510343991423,\"vwap\":0.17417361523319191,\"ema1\":0.18270538215913298,\"sma1\":0.1782705253703703,\"sma2\":0.1800888766666667,\"rsi_avg_gain\":0.0006276201220788201,\"rsi_avg_loss\":0.0012709673787798296,\"rsi\":33},{\"period_id\":\"120m209768\",\"size\":\"120m\",\"time\":1510329600000,\"open\":0.1778,\"high\":0.178,\"low\":0.1752,\"close\":0.1762,\"volume\":1264054.9084802696,\"close_time\":1510336785873,\"vwap\":0.1765025020281966,\"ema1\":0.1832774774804525,\"sma1\":0.17821959944444443,\"sma2\":0.18001887666666672,\"rsi_avg_gain\":0.0006758985930079602,\"rsi_avg_loss\":0.0012310417925321252,\"rsi\":35},{\"period_id\":\"120m209767\",\"size\":\"120m\",\"time\":1510322400000,\"open\":0.17786,\"high\":0.1788,\"low\":0.175,\"close\":0.1778,\"volume\":1705075.3105860895,\"close_time\":1510329594861,\"vwap\":0.17780996646741157,\"ema1\":0.18376557937565613,\"sma1\":0.17816441425925925,\"sma2\":0.1799383766666667,\"rsi_avg_gain\":0.000727890792470111,\"rsi_avg_loss\":0.001202660391957672,\"rsi\":38},{\"period_id\":\"120m209766\",\"size\":\"120m\",\"time\":1510315200000,\"open\":0.183,\"high\":0.18419,\"low\":0.175,\"close\":0.1756,\"volume\":3142127.279473542,\"close_time\":1510322389977,\"vwap\":0.17530002337897824,\"ema1\":0.18417699864294276,\"sma1\":0.17804691425925925,\"sma2\":0.17987671000000008,\"rsi_avg_gain\":0.000614651622660119,\"rsi_avg_loss\":0.0012951727298005698,\"rsi\":32},{\"period_id\":\"120m209765\",\"size\":\"120m\",\"time\":1510308000000,\"open\":0.18448,\"high\":0.18618,\"low\":0.1828,\"close\":0.18419,\"volume\":1506359.236394429,\"close_time\":1510315192886,\"vwap\":0.18367781751355292,\"ema1\":0.18476851579073192,\"sma1\":0.17791543277777783,\"sma2\":0.1797035433333334,\"rsi_avg_gain\":0.0006619325167108974,\"rsi_avg_loss\":0.000734032170554461,\"rsi\":47},{\"period_id\":\"120m209764\",\"size\":\"120m\",\"time\":1510300800000,\"open\":0.184,\"high\":0.18554,\"low\":0.183,\"close\":0.1833,\"volume\":1503755.2062659115,\"close_time\":1510307961116,\"vwap\":0.1833,\"ema1\":0.18480841343147206,\"sma1\":0.17779617351851856,\"sma2\":0.1795332100000001,\"rsi_avg_gain\":0.0006443888641501971,\"rsi_avg_loss\":0.0007904961836740349,\"rsi\":45},{\"period_id\":\"120m209763\",\"size\":\"120m\",\"time\":1510293600000,\"open\":0.1856,\"high\":0.18767,\"low\":0.182,\"close\":0.18456,\"volume\":1486303.6773744512,\"close_time\":1510300710540,\"vwap\":0.18447679589952456,\"ema1\":0.18491244194398737,\"sma1\":0.1776452475925926,\"sma2\":0.17936287666666675,\"rsi_avg_gain\":0.0006939572383155969,\"rsi_avg_loss\":0.0007543805054951136,\"rsi\":48},{\"period_id\":\"120m209762\",\"size\":\"120m\",\"time\":1510286400000,\"open\":0.18779,\"high\":0.1893,\"low\":0.185,\"close\":0.1856,\"volume\":939146.5902925809,\"close_time\":1510293560736,\"vwap\":0.1856,\"ema1\":0.18493674828495202,\"sma1\":0.17748154388888893,\"sma2\":0.1791872100000001,\"rsi_avg_gain\":0.0007473385643398736,\"rsi_avg_loss\":0.000732409775148585,\"rsi\":51},{\"period_id\":\"120m209761\",\"size\":\"120m\",\"time\":1510279200000,\"open\":0.18826,\"high\":0.1888,\"low\":0.18701,\"close\":0.18705,\"volume\":339837.14506474993,\"close_time\":1510285951714,\"vwap\":0.18715998327991407,\"ema1\":0.1848910067873625,\"sma1\":0.17732413648148154,\"sma2\":0.17897471000000006,\"rsi_avg_gain\":0.0008048261462121716,\"rsi_avg_loss\":0.0006772105270830911,\"rsi\":54},{\"period_id\":\"120m209760\",\"size\":\"120m\",\"time\":1510272000000,\"open\":0.18789,\"high\":0.1891,\"low\":0.18751,\"close\":0.18826,\"volume\":345118.0852415101,\"close_time\":1510279161966,\"vwap\":0.18826,\"ema1\":0.18474211070373234,\"sma1\":0.17716571055555563,\"sma2\":0.17874387666666677,\"rsi_avg_gain\":0.0008667358497669541,\"rsi_avg_loss\":0.0006362267214740969,\"rsi\":58},{\"period_id\":\"120m209759\",\"size\":\"120m\",\"time\":1510264800000,\"open\":0.18834,\"high\":0.18945,\"low\":0.187,\"close\":0.1879,\"volume\":796401.9897196796,\"close_time\":1510271939436,\"vwap\":0.18783335287462138,\"ema1\":0.18449949764881732,\"sma1\":0.17701191425925933,\"sma2\":0.1784985433333334,\"rsi_avg_gain\":0.0009057155305182582,\"rsi_avg_loss\":0.0006851672385105659,\"rsi\":57},{\"period_id\":\"120m209758\",\"size\":\"120m\",\"time\":1510257600000,\"open\":0.18978,\"high\":0.19079,\"low\":0.188,\"close\":0.18826,\"volume\":1298007.2077193111,\"close_time\":1510264623260,\"vwap\":0.18856229018914938,\"ema1\":0.18426498024528748,\"sma1\":0.17684580314814824,\"sma2\":0.17826021000000009,\"rsi_avg_gain\":0.0009753859559427396,\"rsi_avg_loss\":0.0007101801030113786,\"rsi\":58},{\"period_id\":\"120m209757\",\"size\":\"120m\",\"time\":1510250400000,\"open\":0.19128,\"high\":0.19157,\"low\":0.189,\"close\":0.19,\"volume\":1405700.9650095599,\"close_time\":1510257580160,\"vwap\":0.18995194795838682,\"ema1\":0.1839894616415142,\"sma1\":0.17667126611111125,\"sma2\":0.1780185433333334,\"rsi_avg_gain\":0.001050415644861412,\"rsi_avg_loss\":0.0006309631878584084,\"rsi\":62},{\"period_id\":\"120m209756\",\"size\":\"120m\",\"time\":1510243200000,\"open\":0.18917,\"high\":0.1916,\"low\":0.189,\"close\":0.19116,\"volume\":1132757.5451497396,\"close_time\":1510250373928,\"vwap\":0.1912399010468384,\"ema1\":0.18357494175472208,\"sma1\":0.1765036735185187,\"sma2\":0.17775237666666677,\"rsi_avg_gain\":0.0011312168483122898,\"rsi_avg_loss\":0.0005902680484629018,\"rsi\":66},{\"period_id\":\"120m209755\",\"size\":\"120m\",\"time\":1510236000000,\"open\":0.18691,\"high\":0.1895,\"low\":0.186,\"close\":0.18924,\"volume\":1015144.8545400195,\"close_time\":1510243165747,\"vwap\":0.1892250116241581,\"ema1\":0.1830518342895305,\"sma1\":0.17636571055555572,\"sma2\":0.17752904333333344,\"rsi_avg_gain\":0.0010705412212593888,\"rsi_avg_loss\":0.0006356732829600481,\"rsi\":63},{\"period_id\":\"120m209754\",\"size\":\"120m\",\"time\":1510228800000,\"open\":0.18752,\"high\":0.18776,\"low\":0.185,\"close\":0.18751,\"volume\":1343139.0552525606,\"close_time\":1510235959442,\"vwap\":0.18749749319188277,\"ema1\":0.1826250642405326,\"sma1\":0.1762457105555557,\"sma2\":0.17735404333333343,\"rsi_avg_gain\":0.0010198136228947278,\"rsi_avg_loss\":0.0006845712278031286,\"rsi\":60},{\"period_id\":\"120m209753\",\"size\":\"120m\",\"time\":1510221600000,\"open\":0.1869,\"high\":0.19,\"low\":0.1862,\"close\":0.18776,\"volume\":3008040.409756683,\"close_time\":1510228722468,\"vwap\":0.18749005093243634,\"ema1\":0.18228817211919002,\"sma1\":0.17610496981481497,\"sma2\":0.17714137666666677,\"rsi_avg_gain\":0.0010982608246558607,\"rsi_avg_loss\":0.0007179997837879846,\"rsi\":60},{\"period_id\":\"120m209752\",\"size\":\"120m\",\"time\":1510214400000,\"open\":0.1918,\"high\":0.19399,\"low\":0.18508,\"close\":0.18612,\"volume\":2349684.717258219,\"close_time\":1510221593570,\"vwap\":0.1861249895568438,\"ema1\":0.18191080467913415,\"sma1\":0.17592635870370388,\"sma2\":0.17697271000000006,\"rsi_avg_gain\":0.001056588580398619,\"rsi_avg_loss\":0.0007732305363870603,\"rsi\":58},{\"period_id\":\"120m209751\",\"size\":\"120m\",\"time\":1510207200000,\"open\":0.19,\"high\":0.19345,\"low\":0.18762,\"close\":0.1923,\"volume\":1760255.8831517405,\"close_time\":1510214387087,\"vwap\":0.1917029264406474,\"ema1\":0.18162051534666063,\"sma1\":0.17574978462962984,\"sma2\":0.17669971000000004,\"rsi_avg_gain\":0.0011378646250446666,\"rsi_avg_loss\":0.00035732519303221936,\"rsi\":76},{\"period_id\":\"120m209750\",\"size\":\"120m\",\"time\":1510200000000,\"open\":0.19149,\"high\":0.19209,\"low\":0.18817,\"close\":0.19,\"volume\":1028929.5947521498,\"close_time\":1510207189870,\"vwap\":0.19,\"ema1\":0.1808839991636717,\"sma1\":0.17558172907407427,\"sma2\":0.1764783766666667,\"rsi_avg_gain\":0.0010484695962019491,\"rsi_avg_loss\":0.00038481174634239006,\"rsi\":73},{\"period_id\":\"120m209749\",\"size\":\"120m\",\"time\":1510192800000,\"open\":0.1904,\"high\":0.19199,\"low\":0.19,\"close\":0.1915,\"volume\":451503.23897744983,\"close_time\":1510199851179,\"vwap\":0.19148507284610278,\"ema1\":0.18025530945082147,\"sma1\":0.17541978462962982,\"sma2\":0.17619621,\"rsi_avg_gain\":0.0011291211036020992,\"rsi_avg_loss\":0.00029902803452257383,\"rsi\":79},{\"period_id\":\"120m209748\",\"size\":\"120m\",\"time\":1510185600000,\"open\":0.1883,\"high\":0.19145,\"low\":0.18762,\"close\":0.1905,\"volume\":1098934.3051002997,\"close_time\":1510192757308,\"vwap\":0.19056835753430942,\"ema1\":0.1794798135508781,\"sma1\":0.17525987722222236,\"sma2\":0.17593787666666666,\"rsi_avg_gain\":0.001139053496186876,\"rsi_avg_loss\":0.0003220301910243103,\"rsi\":78},{\"period_id\":\"120m209747\",\"size\":\"120m\",\"time\":1510178400000,\"open\":0.18594,\"high\":0.194,\"low\":0.18486,\"close\":0.1883,\"volume\":3605912.2368677803,\"close_time\":1510185592050,\"vwap\":0.1882950082068612,\"ema1\":0.17871980069231796,\"sma1\":0.17507932166666682,\"sma2\":0.17577454333333328,\"rsi_avg_gain\":0.001057442226662789,\"rsi_avg_loss\":0.0003468017441800265,\"rsi\":75},{\"period_id\":\"120m209746\",\"size\":\"120m\",\"time\":1510171200000,\"open\":0.18458,\"high\":0.189,\"low\":0.18392,\"close\":0.18483,\"volume\":2863643.826655647,\"close_time\":1510178396358,\"vwap\":0.18532802463002435,\"ema1\":0.17805909729178818,\"sma1\":0.17494774759259274,\"sma2\":0.17574237666666667,\"rsi_avg_gain\":0.0008718608594830033,\"rsi_avg_loss\":0.00037347880142464394,\"rsi\":70},{\"period_id\":\"120m209745\",\"size\":\"120m\",\"time\":1510164000000,\"open\":0.18168,\"high\":0.18489,\"low\":0.1812,\"close\":0.18478,\"volume\":1649316.9000354288,\"close_time\":1510171085680,\"vwap\":0.18467474474880152,\"ema1\":0.17759213848432528,\"sma1\":0.17485432166666684,\"sma2\":0.17572520999999994,\"rsi_avg_gain\":0.0009350809255970809,\"rsi_avg_loss\":0.00040220793999577037,\"rsi\":70},{\"period_id\":\"120m209744\",\"size\":\"120m\",\"time\":1510156800000,\"open\":0.18179,\"high\":0.18185,\"low\":0.18021,\"close\":0.18169,\"volume\":681920.6512323202,\"close_time\":1510163982490,\"vwap\":0.18160532011968522,\"ema1\":0.17709642389703736,\"sma1\":0.17479080314814832,\"sma2\":0.17573820999999995,\"rsi_avg_gain\":0.0007693179198737787,\"rsi_avg_loss\":0.00043314701230313734,\"rsi\":64},{\"period_id\":\"120m209743\",\"size\":\"120m\",\"time\":1510149600000,\"open\":0.1805,\"high\":0.18185,\"low\":0.17981,\"close\":0.18185,\"volume\":951725.1750221897,\"close_time\":1510156611388,\"vwap\":0.18183333800436072,\"ema1\":0.1767796255451089,\"sma1\":0.17472358092592605,\"sma2\":0.17568104333333331,\"rsi_avg_gain\":0.0008284962214025308,\"rsi_avg_loss\":0.0004541583209418386,\"rsi\":65},{\"period_id\":\"120m209742\",\"size\":\"120m\",\"time\":1510142400000,\"open\":0.17993,\"high\":0.18099,\"low\":0.17898,\"close\":0.1805,\"volume\":540792.8048310501,\"close_time\":1510149525975,\"vwap\":0.18037968414164884,\"ema1\":0.17642994454821986,\"sma1\":0.17467182166666678,\"sma2\":0.17562087666666662,\"rsi_avg_gain\":0.000788380546125801,\"rsi_avg_loss\":0.0004890935763989031,\"rsi\":62},{\"period_id\":\"120m209741\",\"size\":\"120m\",\"time\":1510135200000,\"open\":0.1814,\"high\":0.1818,\"low\":0.179,\"close\":0.179,\"volume\":783970.61652481,\"close_time\":1510142377261,\"vwap\":0.17950926977742399,\"ema1\":0.17614925106878676,\"sma1\":0.17461108092592603,\"sma2\":0.1755445433333333,\"rsi_avg_gain\":0.000733640588135478,\"rsi_avg_loss\":0.0005267161591988187,\"rsi\":58},{\"period_id\":\"120m209740\",\"size\":\"120m\",\"time\":1510128000000,\"open\":0.17791,\"high\":0.1815,\"low\":0.1779,\"close\":0.1814,\"volume\":1374943.94239282,\"close_time\":1510135187696,\"vwap\":0.18145897981815348,\"ema1\":0.17595264769422034,\"sma1\":0.17454858092592598,\"sma2\":0.17539120999999996,\"rsi_avg_gain\":0.0007900744795305148,\"rsi_avg_loss\":0.00038261740221411144,\"rsi\":67},{\"period_id\":\"120m209739\",\"size\":\"120m\",\"time\":1510120800000,\"open\":0.17764,\"high\":0.17849,\"low\":0.17652,\"close\":0.178,\"volume\":384621.52919080993,\"close_time\":1510127962156,\"vwap\":0.17816613569083845,\"ema1\":0.17557696822485622,\"sma1\":0.17450515500000008,\"sma2\":0.1753463766666666,\"rsi_avg_gain\":0.0005893109779559379,\"rsi_avg_loss\":0.0004120495100767354,\"rsi\":59},{\"period_id\":\"120m209738\",\"size\":\"120m\",\"time\":1510113600000,\"open\":0.1769,\"high\":0.1777,\"low\":0.17644,\"close\":0.1777,\"volume\":69522.52897796,\"close_time\":1510120779142,\"vwap\":0.1773473122861353,\"ema1\":0.17540986258519112,\"sma1\":0.17446256240740748,\"sma2\":0.1752628766666666,\"rsi_avg_gain\":0.0006115656685679335,\"rsi_avg_loss\":0.0004437456262364843,\"rsi\":58},{\"period_id\":\"120m209737\",\"size\":\"120m\",\"time\":1510106400000,\"open\":0.17604,\"high\":0.1777,\"low\":0.17601,\"close\":0.17679,\"volume\":48029.677979789994,\"close_time\":1510113047765,\"vwap\":0.17727334537756118,\"ema1\":0.17525192207382498,\"sma1\":0.17442145129629635,\"sma2\":0.1751333766666666,\"rsi_avg_gain\":0.0005886091815346981,\"rsi_avg_loss\":0.0004778799051777523,\"rsi\":55},{\"period_id\":\"120m209736\",\"size\":\"120m\",\"time\":1510099200000,\"open\":0.17749,\"high\":0.178,\"low\":0.17573,\"close\":0.17627,\"volume\":193680.65782711,\"close_time\":1510105724331,\"vwap\":0.17689385264520727,\"ema1\":0.17514584773408878,\"sma1\":0.17438404388888895,\"sma2\":0.1751413766666666,\"rsi_avg_gain\":0.0005938868108835216,\"rsi_avg_loss\":0.0005146398978837333,\"rsi\":54},{\"period_id\":\"120m209735\",\"size\":\"120m\",\"time\":1510092000000,\"open\":0.176,\"high\":0.17798,\"low\":0.17505,\"close\":0.17654,\"volume\":331983.7212767101,\"close_time\":1510099191438,\"vwap\":0.17656985907358028,\"ema1\":0.17506831999161215,\"sma1\":0.17434135870370374,\"sma2\":0.17506720999999995,\"rsi_avg_gain\":0.0006395704117207156,\"rsi_avg_loss\":0.000533458351567098,\"rsi\":55},{\"period_id\":\"120m209734\",\"size\":\"120m\",\"time\":1510084800000,\"open\":0.17462,\"high\":0.17599,\"low\":0.174,\"close\":0.1758,\"volume\":543890.8425675798,\"close_time\":1510091951730,\"vwap\":0.17583192104161588,\"ema1\":0.1749668248186199,\"sma1\":0.1743274698148148,\"sma2\":0.17486787666666662,\"rsi_avg_gain\":0.0006318450587761559,\"rsi_avg_loss\":0.0005744936093799517,\"rsi\":52},{\"period_id\":\"120m209733\",\"size\":\"120m\",\"time\":1510077600000,\"open\":0.176,\"high\":0.17623,\"low\":0.1742,\"close\":0.17467,\"volume\":298285.5914498901,\"close_time\":1510084781753,\"vwap\":0.17457888105948674,\"ema1\":0.17490936446128333,\"sma1\":0.17430265499999997,\"sma2\":0.17470687666666665,\"rsi_avg_gain\":0.0005935254479127818,\"rsi_avg_loss\":0.0006186854254861019,\"rsi\":49},{\"period_id\":\"120m209732\",\"size\":\"120m\",\"time\":1510070400000,\"open\":0.17696,\"high\":0.17699,\"low\":0.1741,\"close\":0.17624,\"volume\":616210.35768858,\"close_time\":1510077534651,\"vwap\":0.17510405776004712,\"ema1\":0.17492587235516494,\"sma1\":0.17427219203703703,\"sma2\":0.17451487666666665,\"rsi_avg_gain\":0.0006391812515983804,\"rsi_avg_loss\":0.0005455073812927238,\"rsi\":54},{\"period_id\":\"120m209731\",\"size\":\"120m\",\"time\":1510063200000,\"open\":0.1765,\"high\":0.1788,\"low\":0.175,\"close\":0.17696,\"volume\":484177.00953444996,\"close_time\":1510070388539,\"vwap\":0.17667835735275902,\"ema1\":0.1748352428624177,\"sma1\":0.1742154327777778,\"sma2\":0.17432304333333332,\"rsi_avg_gain\":0.0006883490401828712,\"rsi_avg_loss\":0.000532084872161395,\"rsi\":56},{\"period_id\":\"120m209730\",\"size\":\"120m\",\"time\":1510056000000,\"open\":0.17611,\"high\":0.1794,\"low\":0.17513,\"close\":0.1765,\"volume\":691270.1650262901,\"close_time\":1510063183951,\"vwap\":0.17649999999999996,\"ema1\":0.174688707887412,\"sma1\":0.17414691425925927,\"sma2\":0.17415170999999996,\"rsi_avg_gain\":0.0007059143509661678,\"rsi_avg_loss\":0.0005730144777122716,\"rsi\":55},{\"period_id\":\"120m209729\",\"size\":\"120m\",\"time\":1510048800000,\"open\":0.175,\"high\":0.17611,\"low\":0.1742,\"close\":0.17611,\"volume\":343346.65494068,\"close_time\":1510055978376,\"vwap\":0.17576790910599108,\"ema1\":0.17456379118999213,\"sma1\":0.17410311796296296,\"sma2\":0.17388320999999998,\"rsi_avg_gain\":0.0007302154548866421,\"rsi_avg_loss\":0.0006170925144593694,\"rsi\":54},{\"period_id\":\"120m209728\",\"size\":\"120m\",\"time\":1510041600000,\"open\":0.17482,\"high\":0.1763,\"low\":0.1744,\"close\":0.1757,\"volume\":580407.61852609,\"close_time\":1510048791024,\"vwap\":0.175210149489677,\"ema1\":0.17445715609964677,\"sma1\":0.17407061796296294,\"sma2\":0.17356670999999996,\"rsi_avg_gain\":0.0007548474129548458,\"rsi_avg_loss\":0.0006645611694177824,\"rsi\":53},{\"period_id\":\"120m209727\",\"size\":\"120m\",\"time\":1510034400000,\"open\":0.1744,\"high\":0.17537,\"low\":0.17321,\"close\":0.17482,\"volume\":284289.22077732993,\"close_time\":1510041591397,\"vwap\":0.17482,\"ema1\":0.17437144272720861,\"sma1\":0.17405580314814817,\"sma2\":0.17330504333333335,\"rsi_avg_gain\":0.0007452202908744498,\"rsi_avg_loss\":0.0007156812593729964,\"rsi\":51},{\"period_id\":\"120m209726\",\"size\":\"120m\",\"time\":1510027200000,\"open\":0.17457,\"high\":0.17517,\"low\":0.17371,\"close\":0.17447,\"volume\":11673.709015010001,\"close_time\":1510034307242,\"vwap\":0.17469113283713597,\"ema1\":0.17434050774287818,\"sma1\":0.1740440438888889,\"sma2\":0.1730855433333333,\"rsi_avg_gain\":0.0007756218517109447,\"rsi_avg_loss\":0.00077073366394015,\"rsi\":50},{\"period_id\":\"120m209725\",\"size\":\"120m\",\"time\":1510020000000,\"open\":0.17377,\"high\":0.1745,\"low\":0.17302,\"close\":0.1745,\"volume\":20485.34577588,\"close_time\":1510026811994,\"vwap\":0.17448741625837225,\"ema1\":0.17433157724238701,\"sma1\":0.17401395129629627,\"sma2\":0.17288554333333334,\"rsi_avg_gain\":0.000835285071073325,\"rsi_avg_loss\":0.0008277131765509306,\"rsi\":50},{\"period_id\":\"120m209724\",\"size\":\"120m\",\"time\":1510012800000,\"open\":0.1752,\"high\":0.176,\"low\":0.173,\"close\":0.173,\"volume\":507745.65906769,\"close_time\":1510019694184,\"vwap\":0.173,\"ema1\":0.174319961879793,\"sma1\":0.17397811796296297,\"sma2\":0.17275754333333332,\"rsi_avg_gain\":0.0007841531534635807,\"rsi_avg_loss\":0.0008913834209010021,\"rsi\":47},{\"period_id\":\"120m209723\",\"size\":\"120m\",\"time\":1510005600000,\"open\":0.176,\"high\":0.17736,\"low\":0.17508,\"close\":0.17583,\"volume\":321363.90848562,\"close_time\":1510012612990,\"vwap\":0.17577986447637298,\"ema1\":0.17441099373357183,\"sma1\":0.17393339574074074,\"sma2\":0.17256604333333334,\"rsi_avg_gain\":0.000844472626806933,\"rsi_avg_loss\":0.0007422590686626177,\"rsi\":53},{\"period_id\":\"120m209722\",\"size\":\"120m\",\"time\":1509998400000,\"open\":0.17397,\"high\":0.17917,\"low\":0.173,\"close\":0.17652,\"volume\":837215.3540747804,\"close_time\":1510005596259,\"vwap\":0.1763644140656392,\"ema1\":0.17431313123243886,\"sma1\":0.17388821055555553,\"sma2\":0.17239937666666666,\"rsi_avg_gain\":0.0009094320596382355,\"rsi_avg_loss\":0.0007462789970212788,\"rsi\":55},{\"period_id\":\"120m209721\",\"size\":\"120m\",\"time\":1509991200000,\"open\":0.1779,\"high\":0.178,\"low\":0.1725,\"close\":0.17344,\"volume\":831803.0782492501,\"close_time\":1509998371399,\"vwap\":0.17333795948974035,\"ema1\":0.17416093338640015,\"sma1\":0.17383654388888883,\"sma2\":0.17231671,\"rsi_avg_gain\":0.0007424652949950229,\"rsi_avg_loss\":0.0008036850737152233,\"rsi\":48},{\"period_id\":\"120m209720\",\"size\":\"120m\",\"time\":1509984000000,\"open\":0.17718,\"high\":0.178,\"low\":0.176,\"close\":0.1779,\"volume\":519464.5367089202,\"close_time\":1509991165784,\"vwap\":0.17792500786518065,\"ema1\":0.1742106529302898,\"sma1\":0.1737830253703703,\"sma2\":0.17218487666666665,\"rsi_avg_gain\":0.00079957800999464,\"rsi_avg_loss\":0.0005224300793856257,\"rsi\":60},{\"period_id\":\"120m209719\",\"size\":\"120m\",\"time\":1509976800000,\"open\":0.17746,\"high\":0.17942,\"low\":0.176,\"close\":0.17651,\"volume\":713613.6589118104,\"close_time\":1509983927143,\"vwap\":0.17702178717130018,\"ema1\":0.17395621520134427,\"sma1\":0.17373274759259252,\"sma2\":0.17211521,\"rsi_avg_gain\":0.0007541609338403814,\"rsi_avg_loss\":0.0005626170085691354,\"rsi\":57},{\"period_id\":\"120m209718\",\"size\":\"120m\",\"time\":1509969600000,\"open\":0.17809,\"high\":0.1795,\"low\":0.17611,\"close\":0.17749,\"volume\":1374767.8448534303,\"close_time\":1509976794806,\"vwap\":0.176880095264986,\"ema1\":0.1737800921117818,\"sma1\":0.17368885870370365,\"sma2\":0.17200871,\"rsi_avg_gain\":0.0008121733133665646,\"rsi_avg_loss\":0.0005305106246129143,\"rsi\":60},{\"period_id\":\"120m209717\",\"size\":\"120m\",\"time\":1509962400000,\"open\":0.1735,\"high\":0.17999,\"low\":0.1725,\"close\":0.1781,\"volume\":2200216.881624569,\"close_time\":1509969590499,\"vwap\":0.1779200403566742,\"ema1\":0.17352423639535297,\"sma1\":0.17363922907407403,\"sma2\":0.17187354333333332,\"rsi_avg_gain\":0.0008746481836255311,\"rsi_avg_loss\":0.0005243960572754462,\"rsi\":63},{\"period_id\":\"120m209716\",\"size\":\"120m\",\"time\":1509955200000,\"open\":0.17255,\"high\":0.17357,\"low\":0.17148,\"close\":0.17356,\"volume\":335989.29328549025,\"close_time\":1509962384294,\"vwap\":0.17354502370042532,\"ema1\":0.1732086664915842,\"sma1\":0.17365006240740738,\"sma2\":0.17183271,\"rsi_avg_gain\":0.0005926980439044169,\"rsi_avg_loss\":0.0005647342155274037,\"rsi\":51},{\"period_id\":\"120m209715\",\"size\":\"120m\",\"time\":1509948000000,\"open\":0.1721,\"high\":0.1728,\"low\":0.1715,\"close\":0.1715,\"volume\":202010.55558656997,\"close_time\":1509955028898,\"vwap\":0.1719206683455686,\"ema1\":0.17318443659445207,\"sma1\":0.1736625624074074,\"sma2\":0.17182771000000002,\"rsi_avg_gain\":0.0004798286626662968,\"rsi_avg_loss\":0.0006081753090295116,\"rsi\":44},{\"period_id\":\"120m209714\",\"size\":\"120m\",\"time\":1509940800000,\"open\":0.17246,\"high\":0.17288,\"low\":0.17201,\"close\":0.1721,\"volume\":23604.53356389,\"close_time\":1509947976027,\"vwap\":0.17206524404735626,\"ema1\":0.17330060463544877,\"sma1\":0.173670155,\"sma2\":0.17180604333333335,\"rsi_avg_gain\":0.0005167385597944735,\"rsi_avg_loss\":0.0006088041789548594,\"rsi\":46},{\"period_id\":\"120m209713\",\"size\":\"120m\",\"time\":1509933600000,\"open\":0.17205,\"high\":0.17288,\"low\":0.17157,\"close\":0.17201,\"volume\":19736.135164620002,\"close_time\":1509939281965,\"vwap\":0.17253564227660323,\"ema1\":0.1733834049551349,\"sma1\":0.17367598833333334,\"sma2\":0.17177304333333335,\"rsi_avg_gain\":0.0005495646028555863,\"rsi_avg_loss\":0.0006556352696436946,\"rsi\":46},{\"period_id\":\"120m209712\",\"size\":\"120m\",\"time\":1509926400000,\"open\":0.17216,\"high\":0.17292,\"low\":0.1715,\"close\":0.17158,\"volume\":121462.81296058,\"close_time\":1509933007327,\"vwap\":0.17208343027022685,\"ema1\":0.17347812253824765,\"sma1\":0.17368969203703702,\"sma2\":0.17177604333333335,\"rsi_avg_gain\":0.0005587618799983248,\"rsi_avg_loss\":0.0007060687519239788,\"rsi\":44},{\"period_id\":\"120m209711\",\"size\":\"120m\",\"time\":1509919200000,\"open\":0.1731326,\"high\":0.1735,\"low\":0.17202,\"close\":0.17295,\"volume\":141936.93398588,\"close_time\":1509926340359,\"vwap\":0.17261795431034882,\"ema1\":0.17360902754088542,\"sma1\":0.1737000624074074,\"sma2\":0.17174754333333336,\"rsi_avg_gain\":0.000601743563075119,\"rsi_avg_loss\":0.000654997117456594,\"rsi\":48},{\"period_id\":\"120m209710\",\"size\":\"120m\",\"time\":1509912000000,\"open\":0.1715,\"high\":0.1731326,\"low\":0.17102,\"close\":0.1731326,\"volume\":453581.5936299202,\"close_time\":1509919033486,\"vwap\":0.17309681348908326,\"ema1\":0.1736544777161189,\"sma1\":0.17371383462962958,\"sma2\":0.17172933333333337,\"rsi_avg_gain\":0.0006480315294655129,\"rsi_avg_loss\":0.000691335357260947,\"rsi\":48},{\"period_id\":\"120m209709\",\"size\":\"120m\",\"time\":1509904800000,\"open\":0.17196,\"high\":0.172,\"low\":0.171,\"close\":0.17148,\"volume\":278209.07779125,\"close_time\":1509911957273,\"vwap\":0.17141450194449342,\"ema1\":0.17369046928274778,\"sma1\":0.17373939018518517,\"sma2\":0.17174900000000007,\"rsi_avg_gain\":0.0005707570317320904,\"rsi_avg_loss\":0.0007445150001271737,\"rsi\":43},{\"period_id\":\"120m209708\",\"size\":\"120m\",\"time\":1509897600000,\"open\":0.17288,\"high\":0.173,\"low\":0.17115,\"close\":0.172,\"volume\":375641.9879333099,\"close_time\":1509904684190,\"vwap\":0.17203481939568205,\"ema1\":0.17384291544017866,\"sma1\":0.1737573531481481,\"sma2\":0.1717490000000001,\"rsi_avg_gain\":0.0006146614187884051,\"rsi_avg_loss\":0.0007617853847523415,\"rsi\":45},{\"period_id\":\"120m209707\",\"size\":\"120m\",\"time\":1509890400000,\"open\":0.17179,\"high\":0.173,\"low\":0.171,\"close\":0.17297,\"volume\":292718.31836345984,\"close_time\":1509897404974,\"vwap\":0.1728981635708729,\"ema1\":0.1739700130567427,\"sma1\":0.17377401981481477,\"sma2\":0.1717578333333334,\"rsi_avg_gain\":0.0006619430663875132,\"rsi_avg_loss\":0.000745768875887135,\"rsi\":47},{\"period_id\":\"120m209706\",\"size\":\"120m\",\"time\":1509883200000,\"open\":0.17341,\"high\":0.17438,\"low\":0.1713,\"close\":0.1719,\"volume\":480094.5933641599,\"close_time\":1509890180175,\"vwap\":0.1717139344410007,\"ema1\":0.1740389794744491,\"sma1\":0.1737765198148148,\"sma2\":0.1718028333333334,\"rsi_avg_gain\":0.0006305540714942438,\"rsi_avg_loss\":0.0008031357124938377,\"rsi\":44},{\"period_id\":\"120m209705\",\"size\":\"120m\",\"time\":1509876000000,\"open\":0.1735,\"high\":0.17436,\"low\":0.172,\"close\":0.1738,\"volume\":282879.70329523,\"close_time\":1509882934323,\"vwap\":0.17379333948089776,\"ema1\":0.17418649530027316,\"sma1\":0.1737778161111111,\"sma2\":0.17181316666666674,\"rsi_avg_gain\":0.0006790582308399549,\"rsi_avg_loss\":0.0007187615365318242,\"rsi\":49},{\"period_id\":\"120m209704\",\"size\":\"120m\",\"time\":1509868800000,\"open\":0.175,\"high\":0.175,\"low\":0.17224,\"close\":0.17308,\"volume\":192083.89489337002,\"close_time\":1509875951637,\"vwap\":0.17268010414828075,\"ema1\":0.17421315014856786,\"sma1\":0.17377744574074072,\"sma2\":0.17184000000000005,\"rsi_avg_gain\":0.00067590886398149,\"rsi_avg_loss\":0.0007740508854958108,\"rsi\":47},{\"period_id\":\"120m209703\",\"size\":\"120m\",\"time\":1509861600000,\"open\":0.17477,\"high\":0.175,\"low\":0.17412,\"close\":0.17434,\"volume\":22891.058959859998,\"close_time\":1509868062594,\"vwap\":0.1748305640639713,\"ema1\":0.174291298434676,\"sma1\":0.17377559388888886,\"sma2\":0.17183783333333338,\"rsi_avg_gain\":0.0007279018535185276,\"rsi_avg_loss\":0.0007366701843801053,\"rsi\":50},{\"period_id\":\"120m209702\",\"size\":\"120m\",\"time\":1509854400000,\"open\":0.1743,\"high\":0.1751,\"low\":0.17386,\"close\":0.17506,\"volume\":45456.856648160014,\"close_time\":1509861577221,\"vwap\":0.17497987815767316,\"ema1\":0.17428793970603296,\"sma1\":0.17376874203703696,\"sma2\":0.17181833333333338,\"rsi_avg_gain\":0.0007838943037891836,\"rsi_avg_loss\":0.0007379525062554982,\"rsi\":52},{\"period_id\":\"120m209701\",\"size\":\"120m\",\"time\":1509847200000,\"open\":0.17441,\"high\":0.17508,\"low\":0.17233,\"close\":0.1743,\"volume\":87526.60253024001,\"close_time\":1509854298552,\"vwap\":0.1743776522204254,\"ema1\":0.174234694168518,\"sma1\":0.17375633462962958,\"sma2\":0.17181566666666673,\"rsi_avg_gain\":0.0007857323271575837,\"rsi_avg_loss\":0.0007947180836597673,\"rsi\":50},{\"period_id\":\"120m209700\",\"size\":\"120m\",\"time\":1509840000000,\"open\":0.1732,\"high\":0.1747,\"low\":0.17234,\"close\":0.17441,\"volume\":220942.73585190997,\"close_time\":1509847131823,\"vwap\":0.17460319660733947,\"ema1\":0.17423019031807097,\"sma1\":0.1737498531481481,\"sma2\":0.1718096666666667,\"rsi_avg_gain\":0.0008461732754004748,\"rsi_avg_loss\":0.0008473887054797495,\"rsi\":50},{\"period_id\":\"120m209699\",\"size\":\"120m\",\"time\":1509832800000,\"open\":0.17397,\"high\":0.17489,\"low\":0.17309,\"close\":0.17318,\"volume\":70737.93909811002,\"close_time\":1509839832787,\"vwap\":0.17348861776555802,\"ema1\":0.17421778965035173,\"sma1\":0.17374290870370365,\"sma2\":0.17182766666666668,\"rsi_avg_gain\":0.0008166481427389721,\"rsi_avg_loss\":0.0009125724520551149,\"rsi\":47},{\"period_id\":\"120m209698\",\"size\":\"120m\",\"time\":1509825600000,\"open\":0.1747,\"high\":0.17491,\"low\":0.173,\"close\":0.17396,\"volume\":312704.62396786007,\"close_time\":1509832781004,\"vwap\":0.17369271216595275,\"ema1\":0.17428936135037598,\"sma1\":0.17373327907407404,\"sma2\":0.17182000000000003,\"rsi_avg_gain\":0.0008794672306419699,\"rsi_avg_loss\":0.0009227703329824312,\"rsi\":49},{\"period_id\":\"120m209697\",\"size\":\"120m\",\"time\":1509818400000,\"open\":0.17519,\"high\":0.17576,\"low\":0.1746,\"close\":0.1755,\"volume\":115412.53669688001,\"close_time\":1509825521375,\"vwap\":0.17521433543922563,\"ema1\":0.174312075926264,\"sma1\":0.17372003833333327,\"sma2\":0.17180766666666666,\"rsi_avg_gain\":0.0009471185560759677,\"rsi_avg_loss\":0.0008752911278272346,\"rsi\":52},{\"period_id\":\"120m209696\",\"size\":\"120m\",\"time\":1509811200000,\"open\":0.17544,\"high\":0.176,\"low\":0.17461,\"close\":0.17519,\"volume\":265530.03636954,\"close_time\":1509818399443,\"vwap\":0.17519,\"ema1\":0.1742301501280753,\"sma1\":0.17369772351851848,\"sma2\":0.17177116666666667,\"rsi_avg_gain\":0.0009961276757741208,\"rsi_avg_loss\":0.0009426212145831758,\"rsi\":51},{\"period_id\":\"120m209695\",\"size\":\"120m\",\"time\":1509804000000,\"open\":0.17701,\"high\":0.17727,\"low\":0.1754,\"close\":0.17584,\"volume\":400965.41010697023,\"close_time\":1509811145225,\"vwap\":0.17585498755531384,\"ema1\":0.17416395358518394,\"sma1\":0.17367207537037033,\"sma2\":0.17174766666666663,\"rsi_avg_gain\":0.0010727528816028994,\"rsi_avg_loss\":0.0009651305387818828,\"rsi\":53},{\"period_id\":\"120m209694\",\"size\":\"120m\",\"time\":1509796800000,\"open\":0.17545,\"high\":0.17796,\"low\":0.175,\"close\":0.17701,\"volume\":519384.7214879097,\"close_time\":1509803994909,\"vwap\":0.1770298732921256,\"ema1\":0.1740483641772656,\"sma1\":0.17365281611111102,\"sma2\":0.17170333333333332,\"rsi_avg_gain\":0.0011552723340338916,\"rsi_avg_loss\":0.000949371349457412,\"rsi\":55},{\"period_id\":\"120m209693\",\"size\":\"120m\",\"time\":1509789600000,\"open\":0.17463,\"high\":0.17686,\"low\":0.1742,\"close\":0.175,\"volume\":276182.54125248006,\"close_time\":1509796634780,\"vwap\":0.17522941816688298,\"ema1\":0.1738441134308701,\"sma1\":0.17364151981481477,\"sma2\":0.1717033333333333,\"rsi_avg_gain\":0.0010895240520364976,\"rsi_avg_loss\":0.0010223999148002898,\"rsi\":52},{\"period_id\":\"120m209692\",\"size\":\"120m\",\"time\":1509782400000,\"open\":0.17584,\"high\":0.17674414,\"low\":0.17422,\"close\":0.176,\"volume\":457462.7664928798,\"close_time\":1509789508359,\"vwap\":0.17488863513762615,\"ema1\":0.1737643971157577,\"sma1\":0.17362379629629623,\"sma2\":0.1716633333333333,\"rsi_avg_gain\":0.0011733335945008437,\"rsi_avg_loss\":0.0010241229851695427,\"rsi\":53},{\"period_id\":\"120m209691\",\"size\":\"120m\",\"time\":1509775200000,\"open\":0.17575,\"high\":0.17638,\"low\":0.17486,\"close\":0.17592,\"volume\":205233.37796132002,\"close_time\":1509782377457,\"vwap\":0.17584446775678308,\"ema1\":0.1736102176064996,\"sma1\":0.17359712962962956,\"sma2\":0.17161466666666664,\"rsi_avg_gain\":0.0012574361786932165,\"rsi_avg_loss\":0.0011029016763364305,\"rsi\":53},{\"period_id\":\"120m209690\",\"size\":\"120m\",\"time\":1509768000000,\"open\":0.17459,\"high\":0.17672,\"low\":0.17359,\"close\":0.17672,\"volume\":408079.27570876,\"close_time\":1509775092431,\"vwap\":0.1765443086642813,\"ema1\":0.17345092226901682,\"sma1\":0.17356851851851848,\"sma2\":0.17155416666666665,\"rsi_avg_gain\":0.0013541620385926947,\"rsi_avg_loss\":0.001126201805285387,\"rsi\":55},{\"period_id\":\"120m209689\",\"size\":\"120m\",\"time\":1509760800000,\"open\":0.17535,\"high\":0.17698,\"low\":0.17202,\"close\":0.17457,\"volume\":1521247.5292743105,\"close_time\":1509767699486,\"vwap\":0.17344278446926548,\"ema1\":0.1732254686323973,\"sma1\":0.17353731481481477,\"sma2\":0.17152916666666662,\"rsi_avg_gain\":0.001292943733869057,\"rsi_avg_loss\":0.001212832713384263,\"rsi\":52},{\"period_id\":\"120m209688\",\"size\":\"120m\",\"time\":1509753600000,\"open\":0.1785,\"high\":0.179,\"low\":0.175,\"close\":0.175,\"volume\":451997.22231772024,\"close_time\":1509760617905,\"vwap\":0.17502831152009474,\"ema1\":0.1731327423311833,\"sma1\":0.17348388888888883,\"sma2\":0.17149466666666663,\"rsi_avg_gain\":0.0013924009441666767,\"rsi_avg_loss\":0.0012730506144138227,\"rsi\":52},{\"period_id\":\"120m209687\",\"size\":\"120m\",\"time\":1509746400000,\"open\":0.1829,\"high\":0.184,\"low\":0.1785,\"close\":0.1785,\"volume\":575165.06890172,\"close_time\":1509753593833,\"vwap\":0.17870316438868747,\"ema1\":0.17300396594023043,\"sma1\":0.1733971296296296,\"sma2\":0.17139216666666662,\"rsi_avg_gain\":0.001499508709102575,\"rsi_avg_loss\":0.001101746815522578,\"rsi\":58},{\"period_id\":\"120m209686\",\"size\":\"120m\",\"time\":1509739200000,\"open\":0.1832,\"high\":0.18659,\"low\":0.182,\"close\":0.1829,\"volume\":2008075.9797360403,\"close_time\":1509746386140,\"vwap\":0.18286667640572274,\"ema1\":0.17262492910852217,\"sma1\":0.17327666666666663,\"sma2\":0.17122716666666665,\"rsi_avg_gain\":0.001614855532879696,\"rsi_avg_loss\":0.0008480350321012367,\"rsi\":66},{\"period_id\":\"120m209685\",\"size\":\"120m\",\"time\":1509732000000,\"open\":0.18246,\"high\":0.184,\"low\":0.17948,\"close\":0.18375,\"volume\":1677742.2580434396,\"close_time\":1509739152792,\"vwap\":0.18358534623858483,\"ema1\":0.17191630352979956,\"sma1\":0.17316833333333334,\"sma2\":0.17103883333333328,\"rsi_avg_gain\":0.0017390751892550572,\"rsi_avg_loss\":0.0008478838807244095,\"rsi\":67},{\"period_id\":\"120m209684\",\"size\":\"120m\",\"time\":1509724800000,\"open\":0.17841,\"high\":0.18247,\"low\":0.17841,\"close\":0.18247,\"volume\":1072665.8394164399,\"close_time\":1509731987799,\"vwap\":0.18209649219413684,\"ema1\":0.17110018653185471,\"sma1\":0.17307925925925924,\"sma2\":0.17086349999999997,\"rsi_avg_gain\":0.0017743886653515998,\"rsi_avg_loss\":0.0009131057177032102,\"rsi\":66},{\"period_id\":\"120m209683\",\"size\":\"120m\",\"time\":1509717600000,\"open\":0.1768,\"high\":0.18334,\"low\":0.17621,\"close\":0.17842,\"volume\":2248575.3095276006,\"close_time\":1509724727590,\"vwap\":0.1788799858785665,\"ema1\":0.17031606146508607,\"sma1\":0.17300240740740738,\"sma2\":0.17076766666666668,\"rsi_avg_gain\":0.0015993416396094151,\"rsi_avg_loss\":0.0009833446190649956,\"rsi\":62},{\"period_id\":\"120m209682\",\"size\":\"120m\",\"time\":1509710400000,\"open\":0.17437,\"high\":0.17699,\"low\":0.173,\"close\":0.17689,\"volume\":661699.4675666498,\"close_time\":1509717577659,\"vwap\":0.17689,\"ema1\":0.16975716915233338,\"sma1\":0.17297009259259258,\"sma2\":0.17068616666666667,\"rsi_avg_gain\":0.0016046756118870621,\"rsi_avg_loss\":0.001058986512839226,\"rsi\":60},{\"period_id\":\"120m209681\",\"size\":\"120m\",\"time\":1509703200000,\"open\":0.1745,\"high\":0.17557,\"low\":0.17226,\"close\":0.17442,\"volume\":781881.1833836805,\"close_time\":1509710384632,\"vwap\":0.1743172731133013,\"ema1\":0.16926524978352878,\"sma1\":0.17297185185185182,\"sma2\":0.17061966666666664,\"rsi_avg_gain\":0.0015381121974168362,\"rsi_avg_loss\":0.0011404470138268587,\"rsi\":57},{\"period_id\":\"120m209680\",\"size\":\"120m\",\"time\":1509696000000,\"open\":0.1749,\"high\":0.1765,\"low\":0.1721,\"close\":0.1722,\"volume\":1284360.5497725192,\"close_time\":1509703193194,\"vwap\":0.17396976817184281,\"ema1\":0.16890974976859974,\"sma1\":0.17297555555555555,\"sma2\":0.17060466666666665,\"rsi_avg_gain\":0.0014856592895258237,\"rsi_avg_loss\":0.0012281737071981554,\"rsi\":55},{\"period_id\":\"120m209679\",\"size\":\"120m\",\"time\":1509688800000,\"open\":0.1717,\"high\":0.176,\"low\":0.17,\"close\":0.17531,\"volume\":935123.9349501398,\"close_time\":1509695910104,\"vwap\":0.1748136453892153,\"ema1\":0.16868283595953765,\"sma1\":0.17298472222222222,\"sma2\":0.1705553333333333,\"rsi_avg_gain\":0.0015999407733355024,\"rsi_avg_loss\":0.0010834178385210904,\"rsi\":60},{\"period_id\":\"120m209678\",\"size\":\"120m\",\"time\":1509681600000,\"open\":0.16914,\"high\":0.1742,\"low\":0.1675,\"close\":0.17269,\"volume\":434158.1058708002,\"close_time\":1509688744339,\"vwap\":0.17214281712145033,\"ema1\":0.1682257901636437,\"sma1\":0.17300138888888889,\"sma2\":0.17056599999999997,\"rsi_avg_gain\":0.0015214746789766961,\"rsi_avg_loss\":0.0011667576722534819,\"rsi\":57},{\"period_id\":\"120m209677\",\"size\":\"120m\",\"time\":1509674400000,\"open\":0.17603,\"high\":0.1768,\"low\":0.16835,\"close\":0.16902,\"volume\":791394.3819360004,\"close_time\":1509681430051,\"vwap\":0.16901999999999998,\"ema1\":0.16791791362320532,\"sma1\":0.17298111111111109,\"sma2\":0.170591,\"rsi_avg_gain\":0.0013562035004364415,\"rsi_avg_loss\":0.0012565082624268267,\"rsi\":52},{\"period_id\":\"120m209676\",\"size\":\"120m\",\"time\":1509667200000,\"open\":0.17103,\"high\":0.185,\"low\":0.17103,\"close\":0.17675,\"volume\":2884382.1256436,\"close_time\":1509674369734,\"vwap\":0.17522577981792234,\"ema1\":0.167841907666185,\"sma1\":0.17289240740740736,\"sma2\":0.17049533333333333,\"rsi_avg_gain\":0.0014605268466238602,\"rsi_avg_loss\":0.0007585473595365838,\"rsi\":66},{\"period_id\":\"120m209675\",\"size\":\"120m\",\"time\":1509660000000,\"open\":0.1639,\"high\":0.17379,\"low\":0.16262,\"close\":0.17209,\"volume\":1265909.4986710113,\"close_time\":1509667170394,\"vwap\":0.17249635101162408,\"ema1\":0.1672275564707495,\"sma1\":0.17293324074074073,\"sma2\":0.17048883333333337,\"rsi_avg_gain\":0.001214413527133388,\"rsi_avg_loss\":0.0008168971564240133,\"rsi\":60},{\"period_id\":\"120m209674\",\"size\":\"120m\",\"time\":1509652800000,\"open\":0.16502,\"high\":0.167,\"low\":0.16261,\"close\":0.16384,\"volume\":418199.62917654985,\"close_time\":1509659976821,\"vwap\":0.16384,\"ema1\":0.16689221553769773,\"sma1\":0.1730593518518518,\"sma2\":0.17062050000000004,\"rsi_avg_gain\":0.0006732145676821118,\"rsi_avg_loss\":0.0008797353992258605,\"rsi\":43},{\"period_id\":\"120m209673\",\"size\":\"120m\",\"time\":1509645600000,\"open\":0.16471,\"high\":0.16652,\"low\":0.1632,\"close\":0.16501,\"volume\":525454.1958027601,\"close_time\":1509652741055,\"vwap\":0.1656490797882315,\"ema1\":0.16710271316098724,\"sma1\":0.1732121296296296,\"sma2\":0.17072883333333333,\"rsi_avg_gain\":0.000725000303657659,\"rsi_avg_loss\":0.0008574073530124669,\"rsi\":46},{\"period_id\":\"120m209672\",\"size\":\"120m\",\"time\":1509638400000,\"open\":0.165,\"high\":0.166,\"low\":0.1635,\"close\":0.16472,\"volume\":405931.72862551996,\"close_time\":1509645579170,\"vwap\":0.1643565670292933,\"ema1\":0.16724703820657258,\"sma1\":0.1733718518518518,\"sma2\":0.1708496666666667,\"rsi_avg_gain\":0.00075846186547748,\"rsi_avg_loss\":0.0009233617647826567,\"rsi\":45},{\"period_id\":\"120m209671\",\"size\":\"120m\",\"time\":1509631200000,\"open\":0.164,\"high\":0.16849,\"low\":0.161,\"close\":0.16545,\"volume\":756164.8164522602,\"close_time\":1509638384550,\"vwap\":0.16509812391354758,\"ema1\":0.16742131670357757,\"sma1\":0.17352925925925924,\"sma2\":0.17095050000000003,\"rsi_avg_gain\":0.0008168050858988247,\"rsi_avg_loss\":0.0009382357466890143,\"rsi\":47},{\"period_id\":\"120m209670\",\"size\":\"120m\",\"time\":1509624000000,\"open\":0.16,\"high\":0.16959,\"low\":0.16,\"close\":0.16622,\"volume\":1455371.3556724899,\"close_time\":1509631193720,\"vwap\":0.16467594962246238,\"ema1\":0.16755726957968636,\"sma1\":0.17366268518518518,\"sma2\":0.1710575,\"rsi_avg_gain\":0.0008796362463525804,\"rsi_avg_loss\":0.0009511769579727851,\"rsi\":48},{\"period_id\":\"120m209669\",\"size\":\"120m\",\"time\":1509616800000,\"open\":0.15797,\"high\":0.16,\"low\":0.15464,\"close\":0.16,\"volume\":1654988.6244434293,\"close_time\":1509623991381,\"vwap\":0.16,\"ema1\":0.1676494950679406,\"sma1\":0.17384509259259254,\"sma2\":0.17127416666666667,\"rsi_avg_gain\":0.0004688390345335479,\"rsi_avg_loss\":0.0010243444162783839,\"rsi\":31},{\"period_id\":\"120m209668\",\"size\":\"120m\",\"time\":1509609600000,\"open\":0.1595,\"high\":0.16,\"low\":0.15671,\"close\":0.15671,\"volume\":1721066.7197427999,\"close_time\":1509616786625,\"vwap\":0.15696193475538253,\"ema1\":0.1681770464519365,\"sma1\":0.17403027777777774,\"sma2\":0.171569,\"rsi_avg_gain\":0.00025182665257458895,\"rsi_avg_loss\":0.0011031401406074903,\"rsi\":19},{\"period_id\":\"120m209667\",\"size\":\"120m\",\"time\":1509602400000,\"open\":0.16123,\"high\":0.1632,\"low\":0.159,\"close\":0.15912,\"volume\":2334769.7164794793,\"close_time\":1509609597998,\"vwap\":0.15903006226191424,\"ema1\":0.16896787724172524,\"sma1\":0.17413944444444443,\"sma2\":0.17181533333333335,\"rsi_avg_gain\":0.000271197933541865,\"rsi_avg_loss\":0.001002612459115757,\"rsi\":21},{\"period_id\":\"120m209666\",\"size\":\"120m\",\"time\":1509595200000,\"open\":0.16241,\"high\":0.16472,\"low\":0.1613,\"close\":0.1613,\"volume\":345673.34816585,\"close_time\":1509602353291,\"vwap\":0.1613,\"ema1\":0.16964704118943041,\"sma1\":0.17423435185185185,\"sma2\":0.172018,\"rsi_avg_gain\":0.0002920593130450854,\"rsi_avg_loss\":0.0009120441867400469,\"rsi\":24},{\"period_id\":\"120m209665\",\"size\":\"120m\",\"time\":1509588000000,\"open\":0.16263,\"high\":0.16764,\"low\":0.1625,\"close\":0.1625,\"volume\":320289.0119792702,\"close_time\":1509595172195,\"vwap\":0.1625,\"ema1\":0.17022269920249458,\"sma1\":0.1743186111111111,\"sma2\":0.17220133333333335,\"rsi_avg_gain\":0.00031452541404855354,\"rsi_avg_loss\":0.0008898937395662038,\"rsi\":26},{\"period_id\":\"120m209664\",\"size\":\"120m\",\"time\":1509580800000,\"open\":0.16522,\"high\":0.16682,\"low\":0.1616,\"close\":0.16532,\"volume\":505396.63836847997,\"close_time\":1509587956753,\"vwap\":0.16374785547783588,\"ema1\":0.1707552991474942,\"sma1\":0.17435518518518517,\"sma2\":0.172343,\"rsi_avg_gain\":0.00033871967666767303,\"rsi_avg_loss\":0.0007414240272251434,\"rsi\":31},{\"period_id\":\"120m209663\",\"size\":\"120m\",\"time\":1509573600000,\"open\":0.1661,\"high\":0.16674,\"low\":0.16434,\"close\":0.16434,\"volume\":906775.1022949998,\"close_time\":1509580719608,\"vwap\":0.16463526388498329,\"ema1\":0.17113014736456278,\"sma1\":0.1743622222222222,\"sma2\":0.172498,\"rsi_avg_gain\":0.0002893904210267262,\"rsi_avg_loss\":0.0007984566447040006,\"rsi\":27},{\"period_id\":\"120m209662\",\"size\":\"120m\",\"time\":1509566400000,\"open\":0.16845,\"high\":0.1696,\"low\":0.16561,\"close\":0.16652,\"volume\":670029.5995432002,\"close_time\":1509573596127,\"vwap\":0.1664500072788846,\"ema1\":0.17159843338970504,\"sma1\":0.17431277777777776,\"sma2\":0.17262266666666667,\"rsi_avg_gain\":0.0003116512226441667,\"rsi_avg_loss\":0.0006921840789120016,\"rsi\":31},{\"period_id\":\"120m209661\",\"size\":\"120m\",\"time\":1509559200000,\"open\":0.16934,\"high\":0.1696,\"low\":0.16704,\"close\":0.16848,\"volume\":1189879.2806359415,\"close_time\":1509566397604,\"vwap\":0.16888989585109412,\"ema1\":0.17194867017520193,\"sma1\":0.17425148148148148,\"sma2\":0.17270366666666664,\"rsi_avg_gain\":0.0003356243936167949,\"rsi_avg_loss\":0.0005946597772898487,\"rsi\":36},{\"period_id\":\"120m209660\",\"size\":\"120m\",\"time\":1509552000000,\"open\":0.1725,\"high\":0.1725,\"low\":0.1694,\"close\":0.16999,\"volume\":917226.6054635601,\"close_time\":1509559199863,\"vwap\":0.16962696136422517,\"ema1\":0.17218788880797448,\"sma1\":0.17415425925925923,\"sma2\":0.17278266666666664,\"rsi_avg_gain\":0.0003614416546642406,\"rsi_avg_loss\":0.0005242489909275285,\"rsi\":41},{\"period_id\":\"120m209659\",\"size\":\"120m\",\"time\":1509544800000,\"open\":0.17109,\"high\":0.17284,\"low\":0.17,\"close\":0.17233,\"volume\":898158.8843483297,\"close_time\":1509551988199,\"vwap\":0.1721091954791718,\"ema1\":0.17233946734645547,\"sma1\":0.1740608333333333,\"sma2\":0.17281766666666665,\"rsi_avg_gain\":0.0003892448588691822,\"rsi_avg_loss\":0.00038457583638349155,\"rsi\":50},{\"period_id\":\"120m209658\",\"size\":\"120m\",\"time\":1509537600000,\"open\":0.1695,\"high\":0.1715,\"low\":0.169,\"close\":0.1711,\"volume\":1039009.0422977093,\"close_time\":1509544792007,\"vwap\":0.17070396903423576,\"ema1\":0.17234012026690068,\"sma1\":0.17401046296296294,\"sma2\":0.17285966666666663,\"rsi_avg_gain\":0.00032457138647450323,\"rsi_avg_loss\":0.0004141585930283755,\"rsi\":44},{\"period_id\":\"120m209657\",\"size\":\"120m\",\"time\":1509530400000,\"open\":0.1701,\"high\":0.17198,\"low\":0.1693,\"close\":0.16999,\"volume\":1167024.7693240494,\"close_time\":1509537595423,\"vwap\":0.16974088470922927,\"ema1\":0.17242564580254902,\"sma1\":0.1739659259259259,\"sma2\":0.1729228333333333,\"rsi_avg_gain\":0.0002641538008186958,\"rsi_avg_loss\":0.0004460169463382506,\"rsi\":37},{\"period_id\":\"120m209656\",\"size\":\"120m\",\"time\":1509523200000,\"open\":0.1712,\"high\":0.17266,\"low\":0.17,\"close\":0.17111,\"volume\":802673.6112538003,\"close_time\":1509530399245,\"vwap\":0.17027758041449984,\"ema1\":0.1725936213751386,\"sma1\":0.17391759259259257,\"sma2\":0.17297166666666663,\"rsi_avg_gain\":0.0002844733239585955,\"rsi_avg_loss\":0.0003941720960565768,\"rsi\":42},{\"period_id\":\"120m209655\",\"size\":\"120m\",\"time\":1509516000000,\"open\":0.1705,\"high\":0.17137,\"low\":0.17,\"close\":0.1712,\"volume\":486476.40899357,\"close_time\":1509523129373,\"vwap\":0.1712,\"ema1\":0.17269594009066538,\"sma1\":0.1738958333333333,\"sma2\":0.17301683333333331,\"rsi_avg_gain\":0.0003063558873400259,\"rsi_avg_loss\":0.000417569949599392,\"rsi\":42},{\"period_id\":\"120m209654\",\"size\":\"120m\",\"time\":1509508800000,\"open\":0.17086,\"high\":0.17162,\"low\":0.17,\"close\":0.1708,\"volume\":148063.88553533,\"close_time\":1509515159721,\"vwap\":0.17042678094773134,\"ema1\":0.17279910837278023,\"sma1\":0.17388787037037032,\"sma2\":0.17305449999999997,\"rsi_avg_gain\":0.0002991524940584907,\"rsi_avg_loss\":0.00044969071495319136,\"rsi\":40},{\"period_id\":\"120m209653\",\"size\":\"120m\",\"time\":1509501600000,\"open\":0.17165,\"high\":0.1718,\"low\":0.17,\"close\":0.17003,\"volume\":275252.1988088,\"close_time\":1509507850388,\"vwap\":0.17040413553140002,\"ema1\":0.1729369779157306,\"sma1\":0.1738791666666666,\"sma2\":0.17310949999999994,\"rsi_avg_gain\":0.00026293345513991146,\"rsi_avg_loss\":0.00048428230841112915,\"rsi\":35},{\"period_id\":\"120m209652\",\"size\":\"120m\",\"time\":1509494400000,\"open\":0.17124,\"high\":0.17199,\"low\":0.17101,\"close\":0.17176,\"volume\":125338.60549834,\"close_time\":1509501336761,\"vwap\":0.17176983405413457,\"ema1\":0.17313745915129822,\"sma1\":0.17387574074074072,\"sma2\":0.1731351666666666,\"rsi_avg_gain\":0.0002831591055352893,\"rsi_avg_loss\":0.00038845787059659995,\"rsi\":42},{\"period_id\":\"120m209651\",\"size\":\"120m\",\"time\":1509487200000,\"open\":0.17205,\"high\":0.17284,\"low\":0.17123,\"close\":0.17124,\"volume\":778377.35267301,\"close_time\":1509494388372,\"vwap\":0.1712899807409708,\"ema1\":0.17323245633414638,\"sma1\":0.17386796296296295,\"sma2\":0.17318166666666662,\"rsi_avg_gain\":0.00026494057519185055,\"rsi_avg_loss\":0.0004183392452578769,\"rsi\":39},{\"period_id\":\"120m209650\",\"size\":\"120m\",\"time\":1509480000000,\"open\":0.17263,\"high\":0.17285,\"low\":0.17204,\"close\":0.17204,\"volume\":368952.1699852,\"close_time\":1509487161380,\"vwap\":0.1720449470363194,\"ema1\":0.17336986711581165,\"sma1\":0.17385775509259258,\"sma2\":0.17320599999999994,\"rsi_avg_gain\":0.0002853206194373775,\"rsi_avg_loss\":0.00038898072566232936,\"rsi\":42},{\"period_id\":\"120m209649\",\"size\":\"120m\",\"time\":1509472800000,\"open\":0.172,\"high\":0.17272,\"low\":0.172,\"close\":0.17266,\"volume\":380343.36523268017,\"close_time\":1509479891306,\"vwap\":0.17266000000000004,\"ema1\":0.1734615820893159,\"sma1\":0.17385108842592592,\"sma2\":0.1732198333333333,\"rsi_avg_gain\":0.00030726835939409887,\"rsi_avg_loss\":0.0003712100122517386,\"rsi\":45},{\"period_id\":\"120m209648\",\"size\":\"120m\",\"time\":1509465600000,\"open\":0.17243,\"high\":0.1735,\"low\":0.172,\"close\":0.172,\"volume\":559983.7519757701,\"close_time\":1509472774896,\"vwap\":0.17201327559198681,\"ema1\":0.17351686361271698,\"sma1\":0.17384090324074072,\"sma2\":0.17323649999999996,\"rsi_avg_gain\":0.00028013515627056635,\"rsi_avg_loss\":0.0003997646285787954,\"rsi\":41},{\"period_id\":\"120m209647\",\"size\":\"120m\",\"time\":1509458400000,\"open\":0.17458,\"high\":0.1746,\"low\":0.172,\"close\":0.1735,\"volume\":938086.8382250599,\"close_time\":1509465517913,\"vwap\":0.1728408639304295,\"ema1\":0.17362147489635263,\"sma1\":0.17384284768518515,\"sma2\":0.1732311666666666,\"rsi_avg_gain\":0.0003016840144452253,\"rsi_avg_loss\":0.0003151311384694719,\"rsi\":49},{\"period_id\":\"120m209646\",\"size\":\"120m\",\"time\":1509451200000,\"open\":0.174,\"high\":0.1748,\"low\":0.1734,\"close\":0.1746,\"volume\":533246.7497322498,\"close_time\":1509458354825,\"vwap\":0.17420133017093484,\"ema1\":0.17362985247541143,\"sma1\":0.17382377361111112,\"sma2\":0.17322466666666664,\"rsi_avg_gain\":0.000324890477094858,\"rsi_avg_loss\":0.00025475661065942995,\"rsi\":56},{\"period_id\":\"120m209645\",\"size\":\"120m\",\"time\":1509444000000,\"open\":0.17467,\"high\":0.1748,\"low\":0.1735,\"close\":0.17442,\"volume\":691011.48796204,\"close_time\":1509451147678,\"vwap\":0.17442,\"ema1\":0.17356294574957773,\"sma1\":0.17379312546296297,\"sma2\":0.17324049999999996,\"rsi_avg_gain\":0.0003360358984098461,\"rsi_avg_loss\":0.00027435327301784766,\"rsi\":55},{\"period_id\":\"120m209644\",\"size\":\"120m\",\"time\":1509436800000,\"open\":0.1737,\"high\":0.1747,\"low\":0.1735,\"close\":0.17469,\"volume\":471611.4616469602,\"close_time\":1509443995806,\"vwap\":0.17456912700262794,\"ema1\":0.17350383855989343,\"sma1\":0.17379136620370372,\"sma2\":0.1732378333333333,\"rsi_avg_gain\":0.0003618848136721419,\"rsi_avg_loss\":0.00027468814017306514,\"rsi\":57},{\"period_id\":\"120m209643\",\"size\":\"120m\",\"time\":1509429600000,\"open\":0.17395,\"high\":0.17438,\"low\":0.1734,\"close\":0.17421,\"volume\":201060.23830178005,\"close_time\":1509436795149,\"vwap\":0.1742201841808676,\"ema1\":0.1734220343226447,\"sma1\":0.17380164398148154,\"sma2\":0.1732258333333333,\"rsi_avg_gain\":0.0003527990301084599,\"rsi_avg_loss\":0.00029581799710945477,\"rsi\":54},{\"period_id\":\"120m209642\",\"size\":\"120m\",\"time\":1509422400000,\"open\":0.17384,\"high\":0.17394,\"low\":0.17325,\"close\":0.17389,\"volume\":70472.03757481,\"close_time\":1509429450403,\"vwap\":0.17380805558948081,\"ema1\":0.17336769186213744,\"sma1\":0.17380118101851855,\"sma2\":0.17321099999999995,\"rsi_avg_gain\":0.0003553220324244941,\"rsi_avg_loss\":0.0003185732276563359,\"rsi\":53},{\"period_id\":\"120m209641\",\"size\":\"120m\",\"time\":1509415200000,\"open\":0.17395,\"high\":0.1745,\"low\":0.173,\"close\":0.17414,\"volume\":542700.20779527,\"close_time\":1509422089182,\"vwap\":0.1741899951165325,\"ema1\":0.17333167061125035,\"sma1\":0.17383423657407415,\"sma2\":0.1732,\"rsi_avg_gain\":0.00038265449645714754,\"rsi_avg_loss\":0.00032384809132220783,\"rsi\":54},{\"period_id\":\"120m209640\",\"size\":\"120m\",\"time\":1509408000000,\"open\":0.17418,\"high\":0.17418,\"low\":0.1735,\"close\":0.17405,\"volume\":45452.97159424001,\"close_time\":1509414427483,\"vwap\":0.17368806431982875,\"ema1\":0.17327592375685383,\"sma1\":0.1738871995370371,\"sma2\":0.1731608333333333,\"rsi_avg_gain\":0.00040516638080000664,\"rsi_avg_loss\":0.0003487594829623777,\"rsi\":54},{\"period_id\":\"120m209639\",\"size\":\"120m\",\"time\":1509400800000,\"open\":0.1735,\"high\":0.1745,\"low\":0.173,\"close\":0.17426,\"volume\":272719.8336484401,\"close_time\":1509407506948,\"vwap\":0.17416282888548273,\"ema1\":0.173222539188361,\"sma1\":0.17391960694444453,\"sma2\":0.17312666666666662,\"rsi_avg_gain\":0.0004363330254769302,\"rsi_avg_loss\":0.0003594332893441,\"rsi\":55},{\"period_id\":\"120m209638\",\"size\":\"120m\",\"time\":1509393600000,\"open\":0.17476,\"high\":0.17479,\"low\":0.1735,\"close\":0.1735,\"volume\":359921.3454896399,\"close_time\":1509400749257,\"vwap\":0.1736828871136197,\"ema1\":0.17315099016686866,\"sma1\":0.17390303287037043,\"sma2\":0.1730918333333333,\"rsi_avg_gain\":0.0004114355658982317,\"rsi_avg_loss\":0.0003870820039090308,\"rsi\":52},{\"period_id\":\"120m209637\",\"size\":\"120m\",\"time\":1509386400000,\"open\":0.1732,\"high\":0.1748,\"low\":0.173,\"close\":0.17476,\"volume\":427867.7588550901,\"close_time\":1509393559979,\"vwap\":0.17475999999999997,\"ema1\":0.17312692052320444,\"sma1\":0.17388349583333337,\"sma2\":0.17302416666666662,\"rsi_avg_gain\":0.000443084455582711,\"rsi_avg_loss\":0.0003199344657481862,\"rsi\":58},{\"period_id\":\"120m209636\",\"size\":\"120m\",\"time\":1509379200000,\"open\":0.17459,\"high\":0.17499,\"low\":0.173,\"close\":0.173,\"volume\":390086.82031326013,\"close_time\":1509386390303,\"vwap\":0.1731023647877364,\"ema1\":0.17301429435239096,\"sma1\":0.17385618101851855,\"sma2\":0.172985,\"rsi_avg_gain\":0.00034178325985830324,\"rsi_avg_loss\":0.00034454480926727744,\"rsi\":50},{\"period_id\":\"120m209635\",\"size\":\"120m\",\"time\":1509372000000,\"open\":0.17434,\"high\":0.17459,\"low\":0.17318,\"close\":0.17443,\"volume\":639290.63311668,\"close_time\":1509379077038,\"vwap\":0.1744506660157524,\"ema1\":0.17301528016979723,\"sma1\":0.17385618101851855,\"sma2\":0.17294400000000001,\"rsi_avg_gain\":0.00036807427984740347,\"rsi_avg_loss\":0.00026104825613399,\"rsi\":59},{\"period_id\":\"120m209634\",\"size\":\"120m\",\"time\":1509364800000,\"open\":0.17501,\"high\":0.1754,\"low\":0.17389,\"close\":0.17435,\"volume\":761219.5413139507,\"close_time\":1509371994662,\"vwap\":0.1743367800686794,\"ema1\":0.17291771328495564,\"sma1\":0.17383655138888887,\"sma2\":0.17291183333333332,\"rsi_avg_gain\":0.00039023383983566556,\"rsi_avg_loss\":0.00028112889122122,\"rsi\":58},{\"period_id\":\"120m209633\",\"size\":\"120m\",\"time\":1509357600000,\"open\":0.1736,\"high\":0.17524,\"low\":0.17295,\"close\":0.175,\"volume\":685731.3475932502,\"close_time\":1509364785467,\"vwap\":0.1750024889155014,\"ema1\":0.17281893489081465,\"sma1\":0.17381581064814813,\"sma2\":0.1728491666666666,\"rsi_avg_gain\":0.00042025182751533215,\"rsi_avg_loss\":0.00025275419054593043,\"rsi\":62},{\"period_id\":\"120m209632\",\"size\":\"120m\",\"time\":1509350400000,\"open\":0.17301,\"high\":0.17475,\"low\":0.17201,\"close\":0.1736,\"volume\":982754.7806384695,\"close_time\":1509357384770,\"vwap\":0.17340146808553564,\"ema1\":0.17266851660742255,\"sma1\":0.17380886620370367,\"sma2\":0.17284249999999998,\"rsi_avg_gain\":0.00034488658347805117,\"rsi_avg_loss\":0.0002721968205879251,\"rsi\":56},{\"period_id\":\"120m209631\",\"size\":\"120m\",\"time\":1509343200000,\"open\":0.17307,\"high\":0.1738,\"low\":0.17202,\"close\":0.173,\"volume\":284271.7854024,\"close_time\":1509350362054,\"vwap\":0.17315509837076323,\"ema1\":0.1726042763734517,\"sma1\":0.17381895879629627,\"sma2\":0.1728925,\"rsi_avg_gain\":0.00032526247451482304,\"rsi_avg_loss\":0.000293135037556227,\"rsi\":53},{\"period_id\":\"120m209630\",\"size\":\"120m\",\"time\":1509336000000,\"open\":0.17272,\"high\":0.1731,\"low\":0.17253,\"close\":0.17309,\"volume\":89463.18058985996,\"close_time\":1509343190680,\"vwap\":0.17307254577498143,\"ema1\":0.17257698508886216,\"sma1\":0.1738348847222222,\"sma2\":0.17291766666666666,\"rsi_avg_gain\":0.0003502826648621171,\"rsi_avg_loss\":0.0003087608096759362,\"rsi\":53},{\"period_id\":\"120m209629\",\"size\":\"120m\",\"time\":1509328800000,\"open\":0.17251,\"high\":0.17326,\"low\":0.1722,\"close\":0.17307,\"volume\":43252.373609710005,\"close_time\":1509335998032,\"vwap\":0.17301517418810106,\"ema1\":0.172541604750163,\"sma1\":0.17385914398148147,\"sma2\":0.1729425,\"rsi_avg_gain\":0.00037568902369766516,\"rsi_avg_loss\":0.0003325116411894698,\"rsi\":53},{\"period_id\":\"120m209628\",\"size\":\"120m\",\"time\":1509321600000,\"open\":0.17312,\"high\":0.17396,\"low\":0.172,\"close\":0.17293,\"volume\":83955.8920413,\"close_time\":1509328440473,\"vwap\":0.17239358427767845,\"ema1\":0.17250516369845012,\"sma1\":0.17389673657407403,\"sma2\":0.17291566666666663,\"rsi_avg_gain\":0.00039381894859748544,\"rsi_avg_loss\":0.00035808945974250597,\"rsi\":52},{\"period_id\":\"120m209627\",\"size\":\"120m\",\"time\":1509314400000,\"open\":0.173,\"high\":0.17337,\"low\":0.17201,\"close\":0.17235,\"volume\":684796.3868457904,\"close_time\":1509321591148,\"vwap\":0.1726136017598869,\"ema1\":0.17247586464317083,\"sma1\":0.17393673657407402,\"sma2\":0.1729558333333333,\"rsi_avg_gain\":0.00037949732925883067,\"rsi_avg_loss\":0.0003856348027996218,\"rsi\":50},{\"period_id\":\"120m209626\",\"size\":\"120m\",\"time\":1509307200000,\"open\":0.173,\"high\":0.17449,\"low\":0.1725,\"close\":0.173,\"volume\":476348.78848239995,\"close_time\":1509314385786,\"vwap\":0.17297395016600378,\"ema1\":0.1724845449633895,\"sma1\":0.17397201435185178,\"sma2\":0.1729875,\"rsi_avg_gain\":0.00040868943150950993,\"rsi_avg_loss\":0.00036529901839959394,\"rsi\":53},{\"period_id\":\"120m209625\",\"size\":\"120m\",\"time\":1509300000000,\"open\":0.1723,\"high\":0.17355,\"low\":0.17175,\"close\":0.17245,\"volume\":496058.7864573899,\"close_time\":1509307039172,\"vwap\":0.17324341736388926,\"ema1\":0.172448996340175,\"sma1\":0.1740316439814814,\"sma2\":0.17309499999999997,\"rsi_avg_gain\":0.00039781938777947264,\"rsi_avg_loss\":0.0003933989428918704,\"rsi\":50},{\"period_id\":\"120m209624\",\"size\":\"120m\",\"time\":1509292800000,\"open\":0.172688,\"high\":0.1737,\"low\":0.1715,\"close\":0.17195,\"volume\":516118.92092936015,\"close_time\":1509299984287,\"vwap\":0.17250127148210379,\"ema1\":0.172448927122256,\"sma1\":0.17409460694444437,\"sma2\":0.17324583333333327,\"rsi_avg_gain\":0.00038995934068558586,\"rsi_avg_loss\":0.0004236604000373989,\"rsi\":48},{\"period_id\":\"120m209623\",\"size\":\"120m\",\"time\":1509285600000,\"open\":0.172,\"high\":0.17267,\"low\":0.1715,\"close\":0.17267,\"volume\":282293.62723150995,\"close_time\":1509292684374,\"vwap\":0.17267,\"ema1\":0.17248333588930814,\"sma1\":0.17419849583333327,\"sma2\":0.17338099999999995,\"rsi_avg_gain\":0.0004199562130460156,\"rsi_avg_loss\":0.000400865046194122,\"rsi\":51},{\"period_id\":\"120m209622\",\"size\":\"120m\",\"time\":1509278400000,\"open\":0.1704,\"high\":0.172,\"low\":0.17,\"close\":0.172,\"volume\":507396.67994656984,\"close_time\":1509285544604,\"vwap\":0.172,\"ema1\":0.17247046250236386,\"sma1\":0.17431423657407402,\"sma2\":0.17353799999999994,\"rsi_avg_gain\":0.0004007220755880165,\"rsi_avg_loss\":0.00043170081897828523,\"rsi\":48},{\"period_id\":\"120m209621\",\"size\":\"120m\",\"time\":1509271200000,\"open\":0.1713,\"high\":0.17138,\"low\":0.1692,\"close\":0.17043,\"volume\":708191.5313493701,\"close_time\":1509278199257,\"vwap\":0.1704355340174826,\"ema1\":0.17250290819218206,\"sma1\":0.1744398847222222,\"sma2\":0.1736661666666666,\"rsi_avg_gain\":0.0003107776198640187,\"rsi_avg_loss\":0.00046490857428430716,\"rsi\":40},{\"period_id\":\"120m209620\",\"size\":\"120m\",\"time\":1509264000000,\"open\":0.172,\"high\":0.17279,\"low\":0.17051,\"close\":0.1713,\"volume\":463339.66160280985,\"close_time\":1509271123701,\"vwap\":0.17118666150717562,\"ema1\":0.1726458673778498,\"sma1\":0.1745539587962963,\"sma2\":0.1737781666666666,\"rsi_avg_gain\":0.0003346835906227894,\"rsi_avg_loss\":0.0004337476953830993,\"rsi\":44},{\"period_id\":\"120m209619\",\"size\":\"120m\",\"time\":1509256800000,\"open\":0.17201,\"high\":0.17377,\"low\":0.17132,\"close\":0.17235,\"volume\":285626.02688529,\"close_time\":1509263966493,\"vwap\":0.17235,\"ema1\":0.1727386858177015,\"sma1\":0.174675625462963,\"sma2\":0.1738056666666666,\"rsi_avg_gain\":0.0003604284822091578,\"rsi_avg_loss\":0.0003863436719510304,\"rsi\":48},{\"period_id\":\"120m209618\",\"size\":\"120m\",\"time\":1509249600000,\"open\":0.17113,\"high\":0.1739,\"low\":0.17112,\"close\":0.17333,\"volume\":186683.95922460998,\"close_time\":1509256796594,\"vwap\":0.17321996403824141,\"ema1\":0.17276549173616368,\"sma1\":0.17482081064814817,\"sma2\":0.17382133333333324,\"rsi_avg_gain\":0.0003881537500714007,\"rsi_avg_loss\":0.0003406778005626475,\"rsi\":53},{\"period_id\":\"120m209617\",\"size\":\"120m\",\"time\":1509242400000,\"open\":0.17101,\"high\":0.17125,\"low\":0.1701,\"close\":0.17052,\"volume\":109812.33446858004,\"close_time\":1509249464890,\"vwap\":0.17023329763340325,\"ema1\":0.1727265601317612,\"sma1\":0.17494460694444444,\"sma2\":0.17380366666666663,\"rsi_avg_gain\":0.0002018578846922771,\"rsi_avg_loss\":0.00036688378522131264,\"rsi\":35},{\"period_id\":\"120m209616\",\"size\":\"120m\",\"time\":1509235200000,\"open\":0.17161,\"high\":0.17213,\"low\":0.171,\"close\":0.17101,\"volume\":250380.80532811998,\"close_time\":1509242351608,\"vwap\":0.17105395762131548,\"ema1\":0.1728787366925723,\"sma1\":0.17504710694444447,\"sma2\":0.17378683333333328,\"rsi_avg_gain\":0.00021738541428399072,\"rsi_avg_loss\":0.00035741330716141436,\"rsi\":38},{\"period_id\":\"120m209615\",\"size\":\"120m\",\"time\":1509228000000,\"open\":0.17176,\"high\":0.17253,\"low\":0.171,\"close\":0.1717,\"volume\":726369.6006439498,\"close_time\":1509235161837,\"vwap\":0.17174863375717164,\"ema1\":0.1730076150851635,\"sma1\":0.17514858842592596,\"sma2\":0.17365849999999997,\"rsi_avg_gain\":0.0002341073692289131,\"rsi_avg_loss\":0.00033182971540460037,\"rsi\":41},{\"period_id\":\"120m209614\",\"size\":\"120m\",\"time\":1509220800000,\"open\":0.17152,\"high\":0.17429,\"low\":0.1715,\"close\":0.17174,\"volume\":507071.4701850402,\"close_time\":1509227774235,\"vwap\":0.17214572188676824,\"ema1\":0.17309779543586443,\"sma1\":0.1752459032407407,\"sma2\":0.1735018333333333,\"rsi_avg_gain\":0.00025211562840036795,\"rsi_avg_loss\":0.0003542781550511072,\"rsi\":42},{\"period_id\":\"120m209613\",\"size\":\"120m\",\"time\":1509213600000,\"open\":0.17186,\"high\":0.17242,\"low\":0.1715,\"close\":0.17151,\"volume\":296945.9798627102,\"close_time\":1509220576896,\"vwap\":0.17175215351008694,\"ema1\":0.1731914365004068,\"sma1\":0.17536701435185187,\"sma2\":0.17335166666666663,\"rsi_avg_gain\":0.000253816830585011,\"rsi_avg_loss\":0.00038153032082426927,\"rsi\":40},{\"period_id\":\"120m209612\",\"size\":\"120m\",\"time\":1509206400000,\"open\":0.17174,\"high\":0.17222,\"low\":0.17121,\"close\":0.17197,\"volume\":204456.1067420499,\"close_time\":1509213416725,\"vwap\":0.17160098220239428,\"ema1\":0.1733073976383659,\"sma1\":0.17557238472222222,\"sma2\":0.1731738333333333,\"rsi_avg_gain\":0.0002733412021684734,\"rsi_avg_loss\":0.00037549419165690414,\"rsi\":42},{\"period_id\":\"120m209611\",\"size\":\"120m\",\"time\":1509199200000,\"open\":0.17264,\"high\":0.17399,\"low\":0.1715,\"close\":0.1715,\"volume\":632198.5747353298,\"close_time\":1509206384934,\"vwap\":0.1716449713245408,\"ema1\":0.1733996319582532,\"sma1\":0.1757669217592593,\"sma2\":0.1729988333333333,\"rsi_avg_gain\":0.0002582136023352792,\"rsi_avg_loss\":0.0004043783602458968,\"rsi\":39},{\"period_id\":\"120m209610\",\"size\":\"120m\",\"time\":1509192000000,\"open\":0.17303,\"high\":0.17476,\"low\":0.1726,\"close\":0.17264,\"volume\":355098.94472750014,\"close_time\":1509199187198,\"vwap\":0.17392885099371405,\"ema1\":0.17353064105882238,\"sma1\":0.17581071805555556,\"sma2\":0.17282083333333328,\"rsi_avg_gain\":0.00027807618713030066,\"rsi_avg_loss\":0.0003477920802648139,\"rsi\":44},{\"period_id\":\"120m209609\",\"size\":\"120m\",\"time\":1509184800000,\"open\":0.1743,\"high\":0.17463,\"low\":0.173,\"close\":0.173,\"volume\":394166.51534412993,\"close_time\":1509191863970,\"vwap\":0.17300000000000001,\"ema1\":0.17359206458012047,\"sma1\":0.17585719953703707,\"sma2\":0.17268799999999998,\"rsi_avg_gain\":0.0002994666630634007,\"rsi_avg_loss\":0.00034685300951595356,\"rsi\":46},{\"period_id\":\"120m209608\",\"size\":\"120m\",\"time\":1509177600000,\"open\":0.17404,\"high\":0.17474,\"low\":0.17315,\"close\":0.1744,\"volume\":351321.72328474006,\"close_time\":1509184281479,\"vwap\":0.17447828538949411,\"ema1\":0.1736328966201288,\"sma1\":0.17591710694444448,\"sma2\":0.17254716666666664,\"rsi_avg_gain\":0.00032250256022212386,\"rsi_avg_loss\":0.0002658417025556414,\"rsi\":55},{\"period_id\":\"120m209607\",\"size\":\"120m\",\"time\":1509170400000,\"open\":0.17389,\"high\":0.17415,\"low\":0.17305,\"close\":0.1739,\"volume\":208398.77150217,\"close_time\":1509177443699,\"vwap\":0.1739067828797498,\"ema1\":0.17357999293875837,\"sma1\":0.17601460694444448,\"sma2\":0.17241599999999999,\"rsi_avg_gain\":0.000308848911008441,\"rsi_avg_loss\":0.0002862910642906907,\"rsi\":52},{\"period_id\":\"120m209606\",\"size\":\"120m\",\"time\":1509163200000,\"open\":0.17309,\"high\":0.1737,\"low\":0.1728,\"close\":0.17346,\"volume\":26886.12837723,\"close_time\":1509170236953,\"vwap\":0.17344015645076488,\"ema1\":0.17355792348625895,\"sma1\":0.1761046995370371,\"sma2\":0.17234349999999996,\"rsi_avg_gain\":0.00029876036570139833,\"rsi_avg_loss\":0.00030831345385151307,\"rsi\":49},{\"period_id\":\"120m209605\",\"size\":\"120m\",\"time\":1509156000000,\"open\":0.17327,\"high\":0.17351,\"low\":0.17257,\"close\":0.1735,\"volume\":22004.55199932,\"close_time\":1509162219469,\"vwap\":0.17282042819326499,\"ema1\":0.17356467683013888,\"sma1\":0.17621414398148155,\"sma2\":0.17229233333333333,\"rsi_avg_gain\":0.00032174193229381356,\"rsi_avg_loss\":0.00032895295030163066,\"rsi\":49},{\"period_id\":\"120m209604\",\"size\":\"120m\",\"time\":1509148800000,\"open\":0.17395,\"high\":0.1744,\"low\":0.17346,\"close\":0.17382,\"volume\":127167.2383359,\"close_time\":1509154797074,\"vwap\":0.17353470337659616,\"ema1\":0.17356913730118292,\"sma1\":0.1763208106481482,\"sma2\":0.17224233333333333,\"rsi_avg_gain\":0.00034649131170102994,\"rsi_avg_loss\":0.0003296416387863703,\"rsi\":51},{\"period_id\":\"120m209603\",\"size\":\"120m\",\"time\":1509141600000,\"open\":0.17364,\"high\":0.17462,\"low\":0.17364,\"close\":0.17364,\"volume\":245967.77557432003,\"close_time\":1509148469738,\"vwap\":0.17386482931682354,\"ema1\":0.17355183642540245,\"sma1\":0.1764455328703704,\"sma2\":0.1721943333333333,\"rsi_avg_gain\":0.0003592983356780312,\"rsi_avg_loss\":0.00035499868792378335,\"rsi\":50},{\"period_id\":\"120m209602\",\"size\":\"120m\",\"time\":1509134400000,\"open\":0.17335,\"high\":0.17462,\"low\":0.17293,\"close\":0.174,\"volume\":265180.97041563,\"close_time\":1509141551587,\"vwap\":0.1741259503539937,\"ema1\":0.1735457561788785,\"sma1\":0.17654368101851856,\"sma2\":0.17214866666666667,\"rsi_avg_gain\":0.0003869366691917259,\"rsi_avg_loss\":0.00035461397161022824,\"rsi\":52},{\"period_id\":\"120m209601\",\"size\":\"120m\",\"time\":1509127200000,\"open\":0.17475,\"high\":0.17476,\"low\":0.1728,\"close\":0.17334,\"volume\":507189.33349982,\"close_time\":1509134343110,\"vwap\":0.17334333245675626,\"ema1\":0.17351442901880115,\"sma1\":0.17661025509259265,\"sma2\":0.17209299999999997,\"rsi_avg_gain\":0.00036593179759108986,\"rsi_avg_loss\":0.00038189196942639965,\"rsi\":49},{\"period_id\":\"120m209600\",\"size\":\"120m\",\"time\":1509120000000,\"open\":0.17441,\"high\":0.17494,\"low\":0.17372,\"close\":0.17473,\"volume\":413137.98772199015,\"close_time\":1509127174200,\"vwap\":0.17464399566396652,\"ema1\":0.1735264586063047,\"sma1\":0.17674858842592597,\"sma2\":0.17203516666666668,\"rsi_avg_gain\":0.0003940803974057891,\"rsi_avg_loss\":0.00030434519784381487,\"rsi\":56},{\"period_id\":\"120m209599\",\"size\":\"120m\",\"time\":1509112800000,\"open\":0.17453,\"high\":0.1748,\"low\":0.1735,\"close\":0.17443,\"volume\":270804.7546261601,\"close_time\":1509119994189,\"vwap\":0.1740158276545674,\"ema1\":0.17344345575156708,\"sma1\":0.17688821805555557,\"sma2\":0.1720013333333333,\"rsi_avg_gain\":0.00040131735105238865,\"rsi_avg_loss\":0.00032775636690872374,\"rsi\":55},{\"period_id\":\"120m209598\",\"size\":\"120m\",\"time\":1509105600000,\"open\":0.17335,\"high\":0.17465,\"low\":0.173,\"close\":0.17362,\"volume\":509927.8083225598,\"close_time\":1509112788348,\"vwap\":0.1743650194400942,\"ema1\":0.1733754182171924,\"sma1\":0.17708229212962967,\"sma2\":0.17197866666666664,\"rsi_avg_gain\":0.00036988022421026434,\"rsi_avg_loss\":0.0003529683951324717,\"rsi\":51},{\"period_id\":\"120m209597\",\"size\":\"120m\",\"time\":1509098400000,\"open\":0.17369,\"high\":0.1745,\"low\":0.173,\"close\":0.17378,\"volume\":532383.4747534199,\"close_time\":1509105581778,\"vwap\":0.17351093852033514,\"ema1\":0.17335855050803325,\"sma1\":0.17729877361111115,\"sma2\":0.17190849999999994,\"rsi_avg_gain\":0.00039833254914951546,\"rsi_avg_loss\":0.00036781211783497005,\"rsi\":52},{\"period_id\":\"120m209596\",\"size\":\"120m\",\"time\":1509091200000,\"open\":0.17391,\"high\":0.17496,\"low\":0.173,\"close\":0.17404,\"volume\":482855.3375114401,\"close_time\":1509098375789,\"vwap\":0.1739768029895581,\"ema1\":0.17332948502582865,\"sma1\":0.17747247731481483,\"sma2\":0.17186549999999998,\"rsi_avg_gain\":0.000428973514468709,\"rsi_avg_loss\":0.0003761053576684285,\"rsi\":53},{\"period_id\":\"120m209595\",\"size\":\"120m\",\"time\":1509084000000,\"open\":0.17261,\"high\":0.1748,\"low\":0.17222,\"close\":0.17391,\"volume\":393510.9533228197,\"close_time\":1509091196781,\"vwap\":0.17371078048009359,\"ema1\":0.17328048399312718,\"sma1\":0.17769627361111107,\"sma2\":0.17186816666666663,\"rsi_avg_gain\":0.0004519714771201488,\"rsi_avg_loss\":0.0004050365390275384,\"rsi\":53},{\"period_id\":\"120m209594\",\"size\":\"120m\",\"time\":1509076800000,\"open\":0.1732,\"high\":0.17436,\"low\":0.17225,\"close\":0.17306,\"volume\":279280.6725509501,\"close_time\":1509083949504,\"vwap\":0.17306,\"ema1\":0.17323706909610145,\"sma1\":0.17794090324074072,\"sma2\":0.17187666666666662,\"rsi_avg_gain\":0.000421353898437082,\"rsi_avg_loss\":0.00043619319587581056,\"rsi\":49},{\"period_id\":\"120m209593\",\"size\":\"120m\",\"time\":1509069600000,\"open\":0.1733,\"high\":0.17374,\"low\":0.173,\"close\":0.17333,\"volume\":26224.47779756,\"close_time\":1509076527404,\"vwap\":0.17319031139922847,\"ema1\":0.17324928075790155,\"sma1\":0.1781771069444444,\"sma2\":0.17185266666666663,\"rsi_avg_gain\":0.00045376573677839607,\"rsi_avg_loss\":0.000448977287866256,\"rsi\":50},{\"period_id\":\"120m209592\",\"size\":\"120m\",\"time\":1509062400000,\"open\":0.174,\"high\":0.174,\"low\":0.17302,\"close\":0.1733,\"volume\":65117.73086698,\"close_time\":1509069539140,\"vwap\":0.1733,\"ema1\":0.1732437139136189,\"sma1\":0.17841581064814813,\"sma2\":0.17193016666666663,\"rsi_avg_gain\":0.00048636310114596483,\"rsi_avg_loss\":0.0004835140023175064,\"rsi\":50},{\"period_id\":\"120m209591\",\"size\":\"120m\",\"time\":1509055200000,\"open\":0.1735,\"high\":0.17414,\"low\":0.17286,\"close\":0.17403,\"volume\":277183.36005777994,\"close_time\":1509062233010,\"vwap\":0.17378069688074657,\"ema1\":0.17323983211455812,\"sma1\":0.1786058106481481,\"sma2\":0.1719963333333333,\"rsi_avg_gain\":0.0005237756473879621,\"rsi_avg_loss\":0.0004645535409573161,\"rsi\":53},{\"period_id\":\"120m209590\",\"size\":\"120m\",\"time\":1509048000000,\"open\":0.17345,\"high\":0.17387,\"low\":0.1725,\"close\":0.1735,\"volume\":387891.0964343199,\"close_time\":1509055115817,\"vwap\":0.17345918146351322,\"ema1\":0.1731853377776311,\"sma1\":0.1788905328703703,\"sma2\":0.1719713333333333,\"rsi_avg_gain\":0.0005232968510331898,\"rsi_avg_loss\":0.0005002884287232635,\"rsi\":51},{\"period_id\":\"120m209589\",\"size\":\"120m\",\"time\":1509040800000,\"open\":0.17298,\"high\":0.17433,\"low\":0.17214,\"close\":0.17349,\"volume\":391377.44248398015,\"close_time\":1509047942645,\"vwap\":0.17349,\"ema1\":0.1731636369347091,\"sma1\":0.17921599583333325,\"sma2\":0.17192066666666664,\"rsi_avg_gain\":0.0005627812241895903,\"rsi_avg_loss\":0.0005387721540096684,\"rsi\":51},{\"period_id\":\"120m209588\",\"size\":\"120m\",\"time\":1509033600000,\"open\":0.17315,\"high\":0.17359,\"low\":0.172,\"close\":0.173,\"volume\":462815.97802780016,\"close_time\":1509040586507,\"vwap\":0.17299200030071069,\"ema1\":0.17314112913710283,\"sma1\":0.17958090324074066,\"sma2\":0.17188566666666666,\"rsi_avg_gain\":0.0005683797798964804,\"rsi_avg_loss\":0.0005802161658565659,\"rsi\":49},{\"period_id\":\"120m209587\",\"size\":\"120m\",\"time\":1509026400000,\"open\":0.17423,\"high\":0.1745,\"low\":0.17318,\"close\":0.17318,\"volume\":536308.6854404302,\"close_time\":1509033597034,\"vwap\":0.17323852093894265,\"ema1\":0.17315086218104095,\"sma1\":0.17998831064814808,\"sma2\":0.17186566666666664,\"rsi_avg_gain\":0.000612101301426979,\"rsi_avg_loss\":0.0006110020247686084,\"rsi\":50},{\"period_id\":\"120m209586\",\"size\":\"120m\",\"time\":1509019200000,\"open\":0.17535,\"high\":0.17588,\"low\":0.17377,\"close\":0.17421,\"volume\":552158.98963798,\"close_time\":1509026340279,\"vwap\":0.17418666226611568,\"ema1\":0.17314885267628516,\"sma1\":0.18040331064814807,\"sma2\":0.17184549999999996,\"rsi_avg_gain\":0.000659186016921362,\"rsi_avg_loss\":0.0005787714112892703,\"rsi\":53},{\"period_id\":\"120m209585\",\"size\":\"120m\",\"time\":1509012000000,\"open\":0.17453,\"high\":0.17564,\"low\":0.17332,\"close\":0.17537,\"volume\":638825.14961212,\"close_time\":1509019193338,\"vwap\":0.17504523099776956,\"ema1\":0.17307567010223585,\"sma1\":0.18082701435185178,\"sma2\":0.17178933333333332,\"rsi_avg_gain\":0.0007098926336076206,\"rsi_avg_loss\":0.0005340615198499839,\"rsi\":57},{\"period_id\":\"120m209584\",\"size\":\"120m\",\"time\":1509004800000,\"open\":0.1735,\"high\":0.17483,\"low\":0.17231,\"close\":0.17453,\"volume\":545484.1022664,\"close_time\":1509011988439,\"vwap\":0.1745100177280093,\"ema1\":0.17291744045411417,\"sma1\":0.18128219953703695,\"sma2\":0.17174766666666663,\"rsi_avg_gain\":0.0006998843746543602,\"rsi_avg_loss\":0.0005751431752230596,\"rsi\":55},{\"period_id\":\"120m209583\",\"size\":\"120m\",\"time\":1508997600000,\"open\":0.1728,\"high\":0.1735,\"low\":0.17155,\"close\":0.17349,\"volume\":247787.35630792996,\"close_time\":1509004772097,\"vwap\":0.17349749480803833,\"ema1\":0.17280622945094962,\"sma1\":0.18172192175925922,\"sma2\":0.17175416666666662,\"rsi_avg_gain\":0.0006737216342431583,\"rsi_avg_loss\":0.0006193849579325257,\"rsi\":52},{\"period_id\":\"120m209582\",\"size\":\"120m\",\"time\":1508990400000,\"open\":0.17349,\"high\":0.17363,\"low\":0.17232,\"close\":0.173,\"volume\":203349.75248238,\"close_time\":1508997556850,\"vwap\":0.1729549231632718,\"ema1\":0.17275907286135994,\"sma1\":0.18218812546296292,\"sma2\":0.17177049999999996,\"rsi_avg_gain\":0.0006878540676464767,\"rsi_avg_loss\":0.0006670299546965661,\"rsi\":51},{\"period_id\":\"120m209581\",\"size\":\"120m\",\"time\":1508983200000,\"open\":0.17188,\"high\":0.17361,\"low\":0.1718,\"close\":0.17348,\"volume\":65074.96547798002,\"close_time\":1508990308256,\"vwap\":0.17353018527048747,\"ema1\":0.17274245719662615,\"sma1\":0.18263016249999997,\"sma2\":0.17176249999999996,\"rsi_avg_gain\":0.000740765919003898,\"rsi_avg_loss\":0.0006814168742886091,\"rsi\":52},{\"period_id\":\"120m209580\",\"size\":\"120m\",\"time\":1508976000000,\"open\":0.17214,\"high\":0.17323,\"low\":0.17072,\"close\":0.1717,\"volume\":152100.50329952006,\"close_time\":1508983070436,\"vwap\":0.1709415563738488,\"ema1\":0.17269159217570382,\"sma1\":0.18310599583333337,\"sma2\":0.1718233333333333,\"rsi_avg_gain\":0.0006608248358503515,\"rsi_avg_loss\":0.0007338335569261944,\"rsi\":47},{\"period_id\":\"120m209579\",\"size\":\"120m\",\"time\":1508968800000,\"open\":0.17132,\"high\":0.17463,\"low\":0.1709,\"close\":0.17221,\"volume\":327021.46813437995,\"close_time\":1508975990039,\"vwap\":0.1725548868007363,\"ema1\":0.17275997784299374,\"sma1\":0.18351960694444447,\"sma2\":0.171895,\"rsi_avg_gain\":0.0007116575155311477,\"rsi_avg_loss\":0.0007510515228435933,\"rsi\":49},{\"period_id\":\"120m209578\",\"size\":\"120m\",\"time\":1508961600000,\"open\":0.1707,\"high\":0.17358,\"low\":0.17062,\"close\":0.17141,\"volume\":541845.9698597101,\"close_time\":1508968736961,\"vwap\":0.17142142390562293,\"ema1\":0.17279790734940711,\"sma1\":0.1840079402777778,\"sma2\":0.1719715,\"rsi_avg_gain\":0.0007048619398027749,\"rsi_avg_loss\":0.000808824716908485,\"rsi\":47},{\"period_id\":\"120m209577\",\"size\":\"120m\",\"time\":1508954400000,\"open\":0.17124,\"high\":0.1723,\"low\":0.17,\"close\":0.1707,\"volume\":849917.9403358107,\"close_time\":1508961587149,\"vwap\":0.17074993343855022,\"ema1\":0.17289362509764208,\"sma1\":0.1845916439814815,\"sma2\":0.17208616666666668,\"rsi_avg_gain\":0.0007044667044029871,\"rsi_avg_loss\":0.0008710420028245223,\"rsi\":45},{\"period_id\":\"120m209576\",\"size\":\"120m\",\"time\":1508947200000,\"open\":0.17211,\"high\":0.17285,\"low\":0.17065,\"close\":0.17065,\"volume\":397940.7244818399,\"close_time\":1508954194635,\"vwap\":0.1710025226933971,\"ema1\":0.17304490958713464,\"sma1\":0.18521340324074076,\"sma2\":0.17222016666666665,\"rsi_avg_gain\":0.0007548102970493711,\"rsi_avg_loss\":0.000938045233811024,\"rsi\":45},{\"period_id\":\"120m209575\",\"size\":\"120m\",\"time\":1508940000000,\"open\":0.17242,\"high\":0.17504,\"low\":0.1705,\"close\":0.17197,\"volume\":1294814.2538945102,\"close_time\":1508947190837,\"vwap\":0.17191652973603508,\"ema1\":0.17321007576555772,\"sma1\":0.18589358842592596,\"sma2\":0.17236233333333334,\"rsi_avg_gain\":0.0008128726275916303,\"rsi_avg_loss\":0.0009086640979503324,\"rsi\":47},{\"period_id\":\"120m209574\",\"size\":\"120m\",\"time\":1508932800000,\"open\":0.17124,\"high\":0.1735,\"low\":0.17004,\"close\":0.17242,\"volume\":698543.0479591705,\"close_time\":1508939995535,\"vwap\":0.17164449226578402,\"ema1\":0.1732955982321479,\"sma1\":0.1866009958333333,\"sma2\":0.17255349999999997,\"rsi_avg_gain\":0.0008754012912525249,\"rsi_avg_loss\":0.0009439459516388212,\"rsi\":48},{\"period_id\":\"120m209573\",\"size\":\"120m\",\"time\":1508925600000,\"open\":0.1735,\"high\":0.17576,\"low\":0.17002,\"close\":0.17124,\"volume\":776842.12237437,\"close_time\":1508932775447,\"vwap\":0.17114190483948147,\"ema1\":0.17335598431712362,\"sma1\":0.18716803287037037,\"sma2\":0.17277449999999997,\"rsi_avg_gain\":0.0008519706213488739,\"rsi_avg_loss\":0.0010165571786879613,\"rsi\":46},{\"period_id\":\"120m209572\",\"size\":\"120m\",\"time\":1508918400000,\"open\":0.176,\"high\":0.1769,\"low\":0.173,\"close\":0.1732,\"volume\":853693.2410544899,\"close_time\":1508925593807,\"vwap\":0.17336725435389558,\"ema1\":0.1735019142700287,\"sma1\":0.18770599583333333,\"sma2\":0.17294899999999996,\"rsi_avg_gain\":0.000917506822991095,\"rsi_avg_loss\":0.0009439846539716516,\"rsi\":49},{\"period_id\":\"120m209571\",\"size\":\"120m\",\"time\":1508911200000,\"open\":0.1746,\"high\":0.17699,\"low\":0.1745,\"close\":0.176,\"volume\":812787.1982533699,\"close_time\":1508918396597,\"vwap\":0.17588026544634236,\"ema1\":0.17352273594382378,\"sma1\":0.18826164398148149,\"sma2\":0.17308216666666662,\"rsi_avg_gain\":0.000988084270913487,\"rsi_avg_loss\":0.000801214242738702,\"rsi\":55},{\"period_id\":\"120m209570\",\"size\":\"120m\",\"time\":1508904000000,\"open\":0.17459,\"high\":0.176,\"low\":0.17217,\"close\":0.1746,\"volume\":332293.24866345007,\"close_time\":1508911125306,\"vwap\":0.17379725920168723,\"ema1\":0.1733518901468461,\"sma1\":0.18871534768518522,\"sma2\":0.1732638333333333,\"rsi_avg_gain\":0.0009563984455991409,\"rsi_avg_loss\":0.000862846107564756,\"rsi\":53},{\"period_id\":\"120m209569\",\"size\":\"120m\",\"time\":1508896800000,\"open\":0.17102,\"high\":0.17461,\"low\":0.1705,\"close\":0.17456,\"volume\":238526.89042274005,\"close_time\":1508903964165,\"vwap\":0.1739341196084988,\"ema1\":0.17326581360524929,\"sma1\":0.18915219953703705,\"sma2\":0.17343149999999996,\"rsi_avg_gain\":0.0010268906337221508,\"rsi_avg_loss\":0.0009292188850697373,\"rsi\":52},{\"period_id\":\"120m209568\",\"size\":\"120m\",\"time\":1508889600000,\"open\":0.1751,\"high\":0.17542,\"low\":0.17101,\"close\":0.17132,\"volume\":315972.07897068013,\"close_time\":1508896758337,\"vwap\":0.17129400165441297,\"ema1\":0.17317655937112855,\"sma1\":0.18959488472222222,\"sma2\":0.17362883333333332,\"rsi_avg_gain\":0.0008566514517007785,\"rsi_avg_loss\":0.0010006972608443325,\"rsi\":46},{\"period_id\":\"120m209567\",\"size\":\"120m\",\"time\":1508882400000,\"open\":0.17488,\"high\":0.1782,\"low\":0.17324,\"close\":0.17476,\"volume\":779646.11099317,\"close_time\":1508889386052,\"vwap\":0.17483164550031646,\"ema1\":0.17330459794844777,\"sma1\":0.19001988472222225,\"sma2\":0.17375549999999998,\"rsi_avg_gain\":0.0009225477172162231,\"rsi_avg_loss\":0.0008130585886015889,\"rsi\":53},{\"period_id\":\"120m209566\",\"size\":\"120m\",\"time\":1508875200000,\"open\":0.17901,\"high\":0.18062,\"low\":0.1724,\"close\":0.1749,\"volume\":980719.45796823,\"close_time\":1508882374988,\"vwap\":0.17479068930308736,\"ema1\":0.1732042253931683,\"sma1\":0.19042247731481485,\"sma2\":0.17387549999999996,\"rsi_avg_gain\":0.0009935129262328556,\"rsi_avg_loss\":0.0008648323261863264,\"rsi\":53},{\"period_id\":\"120m209565\",\"size\":\"120m\",\"time\":1508868000000,\"open\":0.18111,\"high\":0.18302,\"low\":0.17853,\"close\":0.1789,\"volume\":870281.0234227607,\"close_time\":1508875170112,\"vwap\":0.1795668884501369,\"ema1\":0.17308727542028335,\"sma1\":0.19084358842592597,\"sma2\":0.17396999999999993,\"rsi_avg_gain\":0.0010699369974815367,\"rsi_avg_loss\":0.0006236655820468127,\"rsi\":63},{\"period_id\":\"120m209564\",\"size\":\"120m\",\"time\":1508860800000,\"open\":0.18079,\"high\":0.18325,\"low\":0.176,\"close\":0.181,\"volume\":2010800.5246071485,\"close_time\":1508867957444,\"vwap\":0.18109655046261042,\"ema1\":0.1726863978630615,\"sma1\":0.19124775509259262,\"sma2\":0.17399416666666664,\"rsi_avg_gain\":0.0011522398434416548,\"rsi_avg_loss\":0.0005101013960504145,\"rsi\":69},{\"period_id\":\"120m209563\",\"size\":\"120m\",\"time\":1508853600000,\"open\":0.18248,\"high\":0.18549,\"low\":0.1806,\"close\":0.18078,\"volume\":2048497.8937628616,\"close_time\":1508860796305,\"vwap\":0.18078498141972593,\"ema1\":0.1721130459915485,\"sma1\":0.19157655138888893,\"sma2\":0.1741811666666666,\"rsi_avg_gain\":0.0012239506006294747,\"rsi_avg_loss\":0.0005493399649773694,\"rsi\":69},{\"period_id\":\"120m209562\",\"size\":\"120m\",\"time\":1508846400000,\"open\":0.17812,\"high\":0.184,\"low\":0.178,\"close\":0.18142,\"volume\":2121593.591426679,\"close_time\":1508853596365,\"vwap\":0.1814616669160066,\"ema1\":0.1715153250254484,\"sma1\":0.19187951435185188,\"sma2\":0.17409866666666662,\"rsi_avg_gain\":0.001318100646831742,\"rsi_avg_loss\":0.0005423661161294747,\"rsi\":71},{\"period_id\":\"120m209561\",\"size\":\"120m\",\"time\":1508839200000,\"open\":0.17708,\"high\":0.1797,\"low\":0.1755,\"close\":0.17812,\"volume\":1405572.9367635408,\"close_time\":1508846399653,\"vwap\":0.17807001165369335,\"ema1\":0.1708322439927207,\"sma1\":0.19219895879629634,\"sma2\":0.1740983333333333,\"rsi_avg_gain\":0.0011656468504341838,\"rsi_avg_loss\":0.0005840865866009728,\"rsi\":67},{\"period_id\":\"120m209560\",\"size\":\"120m\",\"time\":1508832000000,\"open\":0.1749,\"high\":0.18,\"low\":0.174,\"close\":0.17802,\"volume\":2817885.18563076,\"close_time\":1508839193802,\"vwap\":0.17808122177499228,\"ema1\":0.17032964013014973,\"sma1\":0.1925582180555556,\"sma2\":0.1740965,\"rsi_avg_gain\":0.001247619685082968,\"rsi_avg_loss\":0.0006290163240318168,\"rsi\":66},{\"period_id\":\"120m209559\",\"size\":\"120m\",\"time\":1508824800000,\"open\":0.17427,\"high\":0.17499,\"low\":0.17004,\"close\":0.174,\"volume\":2599126.4352685795,\"close_time\":1508831953470,\"vwap\":0.17474809302610428,\"ema1\":0.16979927048395316,\"sma1\":0.19295618101851855,\"sma2\":0.17417716666666663,\"rsi_avg_gain\":0.001034359660858579,\"rsi_avg_loss\":0.0006774021951111873,\"rsi\":60},{\"period_id\":\"120m209558\",\"size\":\"120m\",\"time\":1508817600000,\"open\":0.16942,\"high\":0.17497,\"low\":0.16851,\"close\":0.17427,\"volume\":940349.9307694802,\"close_time\":1508824766056,\"vwap\":0.17444685260631396,\"ema1\":0.16950956500008785,\"sma1\":0.19336229212962963,\"sma2\":0.17429766666666663,\"rsi_avg_gain\":0.001113925788616931,\"rsi_avg_loss\":0.000708740825504354,\"rsi\":61},{\"period_id\":\"120m209557\",\"size\":\"120m\",\"time\":1508810400000,\"open\":0.17017,\"high\":0.17674,\"low\":0.16831,\"close\":0.16946,\"volume\":1315534.0875811498,\"close_time\":1508817487442,\"vwap\":0.16910560571411265,\"ema1\":0.16918125913802495,\"sma1\":0.19376164398148155,\"sma2\":0.1744541666666667,\"rsi_avg_gain\":0.0008296123877413098,\"rsi_avg_loss\":0.0007632593505431505,\"rsi\":52},{\"period_id\":\"120m209556\",\"size\":\"120m\",\"time\":1508803200000,\"open\":0.164,\"high\":0.17077,\"low\":0.1571,\"close\":0.17,\"volume\":1711814.2027050385,\"close_time\":1508810383599,\"vwap\":0.17020016047844275,\"ema1\":0.16916203563030255,\"sma1\":0.19423127361111112,\"sma2\":0.17466399999999999,\"rsi_avg_gain\":0.0008934287252598722,\"rsi_avg_loss\":0.0007804331467387764,\"rsi\":53},{\"period_id\":\"120m209555\",\"size\":\"120m\",\"time\":1508796000000,\"open\":0.16292,\"high\":0.1675,\"low\":0.16182,\"close\":0.164,\"volume\":807403.1018157998,\"close_time\":1508803132515,\"vwap\":0.16453248984647717,\"ema1\":0.16910424498411653,\"sma1\":0.19472201435185188,\"sma2\":0.17501649999999996,\"rsi_avg_gain\":0.000500615550279862,\"rsi_avg_loss\":0.0008404664657186823,\"rsi\":37},{\"period_id\":\"120m209554\",\"size\":\"120m\",\"time\":1508788800000,\"open\":0.1625,\"high\":0.16426,\"low\":0.16121,\"close\":0.16234,\"volume\":1314971.7257595595,\"close_time\":1508795898047,\"vwap\":0.16234997522340347,\"ema1\":0.16945626187957283,\"sma1\":0.19523812546296299,\"sma2\":0.17539533333333332,\"rsi_avg_gain\":0.000411432131070621,\"rsi_avg_loss\":0.000905117732312427,\"rsi\":31},{\"period_id\":\"120m209553\",\"size\":\"120m\",\"time\":1508781600000,\"open\":0.16131,\"high\":0.16298,\"low\":0.16,\"close\":0.1625,\"volume\":1229418.5161516913,\"close_time\":1508788795861,\"vwap\":0.1625,\"ema1\":0.16994703856092266,\"sma1\":0.19576608842592597,\"sma2\":0.1756808333333333,\"rsi_avg_gain\":0.0004430807565375918,\"rsi_avg_loss\":0.0009624344809518449,\"rsi\":32},{\"period_id\":\"120m209552\",\"size\":\"120m\",\"time\":1508774400000,\"open\":0.16147,\"high\":0.162,\"low\":0.16,\"close\":0.1613,\"volume\":1277560.5058609694,\"close_time\":1508781568333,\"vwap\":0.1613,\"ema1\":0.1704606274271932,\"sma1\":0.1962793291666667,\"sma2\":0.1760008333333333,\"rsi_avg_gain\":0.0003848561993481752,\"rsi_avg_loss\":0.0010364679025635253,\"rsi\":27},{\"period_id\":\"120m209551\",\"size\":\"120m\",\"time\":1508767200000,\"open\":0.16191,\"high\":0.16275,\"low\":0.16,\"close\":0.161,\"volume\":1546121.7464910003,\"close_time\":1508774327749,\"vwap\":0.16148276743730017,\"ema1\":0.17109239483596514,\"sma1\":0.196790625462963,\"sma2\":0.17646749999999997,\"rsi_avg_gain\":0.0003913835992980352,\"rsi_avg_loss\":0.0011161962027607195,\"rsi\":26},{\"period_id\":\"120m209550\",\"size\":\"120m\",\"time\":1508760000000,\"open\":0.16606,\"high\":0.16606,\"low\":0.16034,\"close\":0.16196,\"volume\":1831406.5661778909,\"close_time\":1508767191577,\"vwap\":0.1619533505072548,\"ema1\":0.1717884220660317,\"sma1\":0.1972896069444445,\"sma2\":0.17690150000000002,\"rsi_avg_gain\":0.0004214900300132687,\"rsi_avg_loss\":0.0011282112952807758,\"rsi\":27},{\"period_id\":\"120m209549\",\"size\":\"120m\",\"time\":1508752800000,\"open\":0.16547,\"high\":0.16717,\"low\":0.165,\"close\":0.16503,\"volume\":1181269.23281257,\"close_time\":1508759985903,\"vwap\":0.16534741983225892,\"ema1\":0.17246624427748217,\"sma1\":0.19780469953703705,\"sma2\":0.17738233333333334,\"rsi_avg_gain\":0.00045391234001428935,\"rsi_avg_loss\":0.0009788429333792957,\"rsi\":32},{\"period_id\":\"120m209548\",\"size\":\"120m\",\"time\":1508745600000,\"open\":0.16604,\"high\":0.16744,\"low\":0.165,\"close\":0.16595,\"volume\":2203820.4107049895,\"close_time\":1508752793340,\"vwap\":0.16602405338613604,\"ema1\":0.17297908871041198,\"sma1\":0.19832636620370378,\"sma2\":0.1778451666666667,\"rsi_avg_gain\":0.0004888286738615424,\"rsi_avg_loss\":0.0009833693128700124,\"rsi\":33},{\"period_id\":\"120m209547\",\"size\":\"120m\",\"time\":1508738400000,\"open\":0.169,\"high\":0.16902,\"low\":0.165,\"close\":0.16603,\"volume\":1644274.9669853388,\"close_time\":1508745581675,\"vwap\":0.1660379885146766,\"ema1\":0.1734638534490611,\"sma1\":0.1987886810185186,\"sma2\":0.17827800000000002,\"rsi_avg_gain\":0.0005264308795431995,\"rsi_avg_loss\":0.0010528592600138576,\"rsi\":33},{\"period_id\":\"120m209546\",\"size\":\"120m\",\"time\":1508731200000,\"open\":0.17068,\"high\":0.17076,\"low\":0.169,\"close\":0.16911,\"volume\":319551.91773119004,\"close_time\":1508738356463,\"vwap\":0.16902208312709227,\"ema1\":0.1739765329972722,\"sma1\":0.19927849583333337,\"sma2\":0.17875950000000002,\"rsi_avg_gain\":0.000566925562584984,\"rsi_avg_loss\":0.0008969253569380006,\"rsi\":39},{\"period_id\":\"120m209545\",\"size\":\"120m\",\"time\":1508724000000,\"open\":0.1708,\"high\":0.17086,\"low\":0.17003,\"close\":0.17043,\"volume\":87114,\"close_time\":1508730294918,\"vwap\":0.17038851970770594,\"ema1\":0.1743121559626013,\"sma1\":0.19976868101851858,\"sma2\":0.17916900000000002,\"rsi_avg_gain\":0.0006105352212453675,\"rsi_avg_loss\":0.00086438115362554,\"rsi\":41},{\"period_id\":\"120m209544\",\"size\":\"120m\",\"time\":1508716800000,\"open\":0.17162,\"high\":0.17162,\"low\":0.1707,\"close\":0.17082,\"volume\":115057.60277177,\"close_time\":1508723544199,\"vwap\":0.17084505113571835,\"ema1\":0.1745798908565738,\"sma1\":0.20022951435185188,\"sma2\":0.1796456666666667,\"rsi_avg_gain\":0.0006574994690334726,\"rsi_avg_loss\":0.0009008720115967352,\"rsi\":42},{\"period_id\":\"120m209543\",\"size\":\"120m\",\"time\":1508709600000,\"open\":0.1705,\"high\":0.172,\"low\":0.17017,\"close\":0.17076,\"volume\":97633.11608365999,\"close_time\":1508716762892,\"vwap\":0.1709097452955955,\"ema1\":0.17483919367426853,\"sma1\":0.2006646995370371,\"sma2\":0.18004133333333336,\"rsi_avg_gain\":0.0007034609666514317,\"rsi_avg_loss\":0.0009701698586426379,\"rsi\":42},{\"period_id\":\"120m209542\",\"size\":\"120m\",\"time\":1508702400000,\"open\":0.17,\"high\":0.17174755,\"low\":0.16966,\"close\":0.17126,\"volume\":279349.66166889,\"close_time\":1508709197711,\"vwap\":0.17085331710578366,\"ema1\":0.17512051737594223,\"sma1\":0.2010894444444445,\"sma2\":0.18033200000000002,\"rsi_avg_gain\":0.0007575733487015418,\"rsi_avg_loss\":0.0010063367708459177,\"rsi\":43},{\"period_id\":\"120m209541\",\"size\":\"120m\",\"time\":1508695200000,\"open\":0.171,\"high\":0.172,\"low\":0.1698,\"close\":0.17,\"volume\":534286.93589556,\"close_time\":1508702389820,\"vwap\":0.17002939245012416,\"ema1\":0.1753867599535934,\"sma1\":0.20157314814814822,\"sma2\":0.18085700000000002,\"rsi_avg_gain\":0.0007189251447555079,\"rsi_avg_loss\":0.0010837472916802192,\"rsi\":40},{\"period_id\":\"120m209540\",\"size\":\"120m\",\"time\":1508688000000,\"open\":0.1724,\"high\":0.1724,\"low\":0.171,\"close\":0.17126,\"volume\":149310.91431348005,\"close_time\":1508694856926,\"vwap\":0.17126,\"ema1\":0.17575826064004813,\"sma2\":0.1814685,\"rsi_avg_gain\":0.0007742270789674701,\"rsi_avg_loss\":0.0010701893910402373,\"rsi\":42},{\"period_id\":\"120m209539\",\"size\":\"120m\",\"time\":1508680800000,\"open\":0.1723,\"high\":0.17481,\"low\":0.17121,\"close\":0.1724,\"volume\":597489.0677834799,\"close_time\":1508687927557,\"vwap\":0.1724,\"ema1\":0.1760684855117756,\"sma2\":0.18213633333333334,\"rsi_avg_gain\":0.0008337830081188139,\"rsi_avg_loss\":0.0010648193441971786,\"rsi\":44},{\"period_id\":\"120m209538\",\"size\":\"120m\",\"time\":1508673600000,\"open\":0.17057,\"high\":0.17274,\"low\":0.16958,\"close\":0.17226,\"volume\":357371.2148454699,\"close_time\":1508680784545,\"vwap\":0.17213571501019942,\"ema1\":0.1763214845125877,\"sma2\":0.1828766666666667,\"rsi_avg_gain\":0.0008871509318202611,\"rsi_avg_loss\":0.0011467285245200384,\"rsi\":44},{\"period_id\":\"120m209537\",\"size\":\"120m\",\"time\":1508666400000,\"open\":0.17146,\"high\":0.17149,\"low\":0.168,\"close\":0.16957,\"volume\":718263.7104258008,\"close_time\":1508673584125,\"vwap\":0.16956999999999997,\"ema1\":0.17660158689276617,\"sma2\":0.18363383333333336,\"rsi_avg_gain\":0.0007484702342679736,\"rsi_avg_loss\":0.0012349384110215797,\"rsi\":38},{\"period_id\":\"120m209536\",\"size\":\"120m\",\"time\":1508659200000,\"open\":0.17333,\"high\":0.17451,\"low\":0.16901,\"close\":0.17146,\"volume\":777359.1669491098,\"close_time\":1508666395877,\"vwap\":0.17094328734934697,\"ema1\":0.1770865239198535,\"sma2\":0.18446883333333336,\"rsi_avg_gain\":0.0008060448676732024,\"rsi_avg_loss\":0.0011845490580232394,\"rsi\":40},{\"period_id\":\"120m209535\",\"size\":\"120m\",\"time\":1508652000000,\"open\":0.173,\"high\":0.17549,\"low\":0.17237,\"close\":0.17407,\"volume\":368189.59224220994,\"close_time\":1508659091496,\"vwap\":0.17385985151168037,\"ema1\":0.17747456005225717,\"sma2\":0.185208,\"rsi_avg_gain\":0.0008680483190326796,\"rsi_avg_loss\":0.0010748989855634886,\"rsi\":45},{\"period_id\":\"120m209534\",\"size\":\"120m\",\"time\":1508644800000,\"open\":0.17198,\"high\":0.17389,\"low\":0.17066,\"close\":0.17357,\"volume\":259884.95235785996,\"close_time\":1508651645538,\"vwap\":0.17309040667790954,\"ema1\":0.17770935729724044,\"sma2\":0.185956,\"rsi_avg_gain\":0.0008963597281890396,\"rsi_avg_loss\":0.0011575835229145261,\"rsi\":44},{\"period_id\":\"120m209533\",\"size\":\"120m\",\"time\":1508637600000,\"open\":0.17799,\"high\":0.17807,\"low\":0.1715,\"close\":0.17189,\"volume\":233140.33999584996,\"close_time\":1508644438052,\"vwap\":0.17181744324049894,\"ema1\":0.1779948302142915,\"sma2\":0.18673033333333333,\"rsi_avg_gain\":0.000836079707280503,\"rsi_avg_loss\":0.0012466284092925667,\"rsi\":40},{\"period_id\":\"120m209532\",\"size\":\"120m\",\"time\":1508630400000,\"open\":0.17794,\"high\":0.1799,\"low\":0.17573,\"close\":0.17795,\"volume\":324073.30858867,\"close_time\":1508637572755,\"vwap\":0.17842956007049177,\"ema1\":0.17841585298769091,\"sma2\":0.18743116666666668,\"rsi_avg_gain\":0.0009003935309174648,\"rsi_avg_loss\":0.0008763690561612251,\"rsi\":51},{\"period_id\":\"120m209531\",\"size\":\"120m\",\"time\":1508623200000,\"open\":0.17182,\"high\":0.178,\"low\":0.17131,\"close\":0.178,\"volume\":579369.1544701199,\"close_time\":1508630360880,\"vwap\":0.1779857124149548,\"ema1\":0.17844798077994548,\"sma2\":0.188096,\"rsi_avg_gain\":0.0009696545717572698,\"rsi_avg_loss\":0.0009399359066351658,\"rsi\":51},{\"period_id\":\"120m209530\",\"size\":\"120m\",\"time\":1508616000000,\"open\":0.17,\"high\":0.173,\"low\":0.16948,\"close\":0.172,\"volume\":437613.7920166499,\"close_time\":1508623105179,\"vwap\":0.172,\"ema1\":0.17847887600614862,\"sma2\":0.18881266666666668,\"rsi_avg_gain\":0.0005827049234309055,\"rsi_avg_loss\":0.0010122386686840248,\"rsi\":37},{\"period_id\":\"120m209529\",\"size\":\"120m\",\"time\":1508608800000,\"open\":0.171,\"high\":0.17269,\"low\":0.17,\"close\":0.17045,\"volume\":521011.0137024398,\"close_time\":1508615996024,\"vwap\":0.17044500011229258,\"ema1\":0.17892569504105543,\"sma2\":0.18962850000000003,\"rsi_avg_gain\":0.0005082976098486679,\"rsi_avg_loss\":0.001090103181659719,\"rsi\":32},{\"period_id\":\"120m209528\",\"size\":\"120m\",\"time\":1508601600000,\"open\":0.17174,\"high\":0.17204,\"low\":0.168,\"close\":0.1709,\"volume\":676697.5788278899,\"close_time\":1508608747958,\"vwap\":0.17134312180462338,\"ema1\":0.17951022573354203,\"sma2\":0.19065016666666673,\"rsi_avg_gain\":0.0005473974259908731,\"rsi_avg_loss\":0.0011393418879412354,\"rsi\":32},{\"period_id\":\"120m209527\",\"size\":\"120m\",\"time\":1508594400000,\"open\":0.17297,\"high\":0.17459,\"low\":0.1709,\"close\":0.17198,\"volume\":648114.2900651698,\"close_time\":1508601565921,\"vwap\":0.17152448444427737,\"ema1\":0.18010403440482078,\"sma2\":0.19176050000000003,\"rsi_avg_gain\":0.0005895049202978633,\"rsi_avg_loss\":0.0011439066485521,\"rsi\":34},{\"period_id\":\"120m209526\",\"size\":\"120m\",\"time\":1508587200000,\"open\":0.172,\"high\":0.17328,\"low\":0.16928,\"close\":0.173,\"volume\":2639942.211716732,\"close_time\":1508594339385,\"vwap\":0.1730781483575264,\"ema1\":0.180664312639636,\"sma2\":0.19300483333333335,\"rsi_avg_gain\":0.0006348514526284682,\"rsi_avg_loss\":0.0011534379292099544,\"rsi\":36},{\"period_id\":\"120m209525\",\"size\":\"120m\",\"time\":1508580000000,\"open\":0.17203,\"high\":0.173,\"low\":0.171,\"close\":0.172,\"volume\":729710.4042586304,\"close_time\":1508587194952,\"vwap\":0.17191202607022593,\"ema1\":0.18119288592512814,\"sma2\":0.19406316666666668,\"rsi_avg_gain\":0.000606763102830658,\"rsi_avg_loss\":0.0012421639237645663,\"rsi\":33},{\"period_id\":\"120m209524\",\"size\":\"120m\",\"time\":1508572800000,\"open\":0.17382,\"high\":0.174,\"low\":0.172,\"close\":0.17203,\"volume\":599489.1881081001,\"close_time\":1508579993090,\"vwap\":0.17216988430114294,\"ema1\":0.1818268780578956,\"sma2\":0.195087,\"rsi_avg_gain\":0.0006534371876637856,\"rsi_avg_loss\":0.0013354073025156866,\"rsi\":33},{\"period_id\":\"120m209523\",\"size\":\"120m\",\"time\":1508565600000,\"open\":0.174,\"high\":0.17489,\"low\":0.17141,\"close\":0.17388,\"volume\":803000.1573551196,\"close_time\":1508572738039,\"vwap\":0.17366827180332245,\"ema1\":0.1825025248205091,\"sma2\":0.1961053333333334,\"rsi_avg_gain\":0.0007037015867148461,\"rsi_avg_loss\":0.0012958232488630456,\"rsi\":35},{\"period_id\":\"120m209522\",\"size\":\"120m\",\"time\":1508558400000,\"open\":0.17331,\"high\":0.17482,\"low\":0.17153,\"close\":0.17398,\"volume\":328946.48005890014,\"close_time\":1508565586485,\"vwap\":0.17384451521597763,\"ema1\":0.18309718170468214,\"sma2\":0.19690200000000008,\"rsi_avg_gain\":0.0007578324780006036,\"rsi_avg_loss\":0.001387809652621742,\"rsi\":35},{\"period_id\":\"120m209521\",\"size\":\"120m\",\"time\":1508551200000,\"open\":0.175,\"high\":0.17588,\"low\":0.173,\"close\":0.173,\"volume\":369652.91754784994,\"close_time\":1508558005497,\"vwap\":0.1730049879618584,\"ema1\":0.18372595285672919,\"sma2\":0.19768533333333338,\"rsi_avg_gain\":0.000740742668616034,\"rsi_avg_loss\":0.001494564241284953,\"rsi\":33},{\"period_id\":\"120m209520\",\"size\":\"120m\",\"time\":1508544000000,\"open\":0.17635,\"high\":0.17802,\"low\":0.17464,\"close\":0.17535,\"volume\":470922.95569517004,\"close_time\":1508551167572,\"vwap\":0.17502645967974406,\"ema1\":0.18446567374340017,\"sma2\":0.1984418333333334,\"rsi_avg_gain\":0.0007977228738941905,\"rsi_avg_loss\":0.0014287614906145635,\"rsi\":36},{\"period_id\":\"120m209519\",\"size\":\"120m\",\"time\":1508536800000,\"open\":0.176,\"high\":0.17769,\"low\":0.1746,\"close\":0.17651,\"volume\":1082256.3462099694,\"close_time\":1508543841892,\"vwap\":0.17654622412463955,\"ema1\":0.18509434089811744,\"sma2\":0.19921666666666674,\"rsi_avg_gain\":0.0008590861718860513,\"rsi_avg_loss\":0.0014494354514310687,\"rsi\":37},{\"period_id\":\"120m209518\",\"size\":\"120m\",\"time\":1508529600000,\"open\":0.177,\"high\":0.1783,\"low\":0.175,\"close\":0.176,\"volume\":2969300.322570631,\"close_time\":1508536792880,\"vwap\":0.17605307472967036,\"ema1\":0.18568636440833244,\"sma2\":0.20000683333333338,\"rsi_avg_gain\":0.0008859389543388236,\"rsi_avg_loss\":0.0015609304861565357,\"rsi\":36},{\"period_id\":\"120m209517\",\"size\":\"120m\",\"time\":1508522400000,\"open\":0.1785,\"high\":0.17999,\"low\":0.1771,\"close\":0.17758,\"volume\":913124.6028473194,\"close_time\":1508529579456,\"vwap\":0.1774349231069618,\"ema1\":0.18635438953994157,\"sma2\":0.20077866666666674,\"rsi_avg_gain\":0.0009540881046725794,\"rsi_avg_loss\":0.0015594636004762695,\"rsi\":38},{\"period_id\":\"120m209516\",\"size\":\"120m\",\"time\":1508515200000,\"open\":0.1805,\"high\":0.1805,\"low\":0.1765,\"close\":0.17869,\"volume\":854731.4552997001,\"close_time\":1508522351206,\"vwap\":0.17907771424970248,\"ema1\":0.186959519853041,\"sma2\":0.20156716666666677,\"rsi_avg_gain\":0.0010274794973397009,\"rsi_avg_loss\":0.0015940377235898287,\"rsi\":39},{\"period_id\":\"120m209515\",\"size\":\"120m\",\"time\":1508508000000,\"open\":0.18251,\"high\":0.18389,\"low\":0.1754,\"close\":0.1805,\"volume\":2255473.1624895213,\"close_time\":1508515181054,\"vwap\":0.18097305518111978,\"ema1\":0.1875298315670438,\"sma2\":0.2022330000000001,\"rsi_avg_gain\":0.001106516381750447,\"rsi_avg_loss\":0.0015774252407890457,\"rsi\":41},{\"period_id\":\"120m209514\",\"size\":\"120m\",\"time\":1508500800000,\"open\":0.1827,\"high\":0.1845,\"low\":0.182,\"close\":0.18389,\"volume\":741604.6409471899,\"close_time\":1508507951218,\"vwap\":0.18388713911993615,\"ema1\":0.18801464753718475,\"sma2\":0.20273350000000007,\"rsi_avg_gain\":0.0011916330265004816,\"rsi_avg_loss\":0.0014379964131574336,\"rsi\":45},{\"period_id\":\"120m209513\",\"size\":\"120m\",\"time\":1508493600000,\"open\":0.18325,\"high\":0.18495,\"low\":0.18194,\"close\":0.1845,\"volume\":672749.5059062601,\"close_time\":1508500751369,\"vwap\":0.18449570767058351,\"ema1\":0.18829910598802507,\"sma2\":0.2032285,\"rsi_avg_gain\":0.0012832971054620571,\"rsi_avg_loss\":0.0015016884449387746,\"rsi\":46},{\"period_id\":\"120m209512\",\"size\":\"120m\",\"time\":1508486400000,\"open\":0.18398,\"high\":0.18511,\"low\":0.1825,\"close\":0.18367,\"volume\":750380.9981659299,\"close_time\":1508493594948,\"vwap\":0.18346183251486217,\"ema1\":0.18856111329754405,\"sma2\":0.20373400000000003,\"rsi_avg_gain\":0.0013181661135745234,\"rsi_avg_loss\":0.0016172029407032957,\"rsi\":45},{\"period_id\":\"120m209511\",\"size\":\"120m\",\"time\":1508479200000,\"open\":0.18556,\"high\":0.18691,\"low\":0.1833,\"close\":0.18399,\"volume\":934216.4546398703,\"close_time\":1508486356945,\"vwap\":0.18397428322176254,\"ema1\":0.18889843145599536,\"sma2\":0.2042835000000001,\"rsi_avg_gain\":0.0014195635069264097,\"rsi_avg_loss\":0.0017169877822958578,\"rsi\":45},{\"period_id\":\"120m209510\",\"size\":\"120m\",\"time\":1508472000000,\"open\":0.18476,\"high\":0.18958,\"low\":0.18476,\"close\":0.1855,\"volume\":854452.3424677192,\"close_time\":1508479192400,\"vwap\":0.18561332803515013,\"ema1\":0.18923694397020194,\"sma2\":0.20478850000000007,\"rsi_avg_gain\":0.0015287606997669027,\"rsi_avg_loss\":0.0017329099193955381,\"rsi\":47},{\"period_id\":\"120m209509\",\"size\":\"120m\",\"time\":1508464800000,\"open\":0.18316,\"high\":0.18462,\"low\":0.18193,\"close\":0.18462,\"volume\":229724.49574185,\"close_time\":1508471909974,\"vwap\":0.1845625263220214,\"ema1\":0.18949466424400896,\"sma2\":0.2053445,\"rsi_avg_gain\":0.0015786653689797419,\"rsi_avg_loss\":0.0018662106824259641,\"rsi\":46},{\"period_id\":\"120m209508\",\"size\":\"120m\",\"time\":1508457600000,\"open\":0.18186,\"high\":0.1832,\"low\":0.17975,\"close\":0.18316,\"volume\":430995.58608996,\"close_time\":1508464770516,\"vwap\":0.18318738345307675,\"ema1\":0.1898308479849751,\"sma2\":0.2058828333333334,\"rsi_avg_gain\":0.0015877934742858744,\"rsi_avg_loss\":0.0020097653503048842,\"rsi\":44},{\"period_id\":\"120m209507\",\"size\":\"120m\",\"time\":1508450400000,\"open\":0.18245,\"high\":0.18349,\"low\":0.18,\"close\":0.18236,\"volume\":266705.26839337003,\"close_time\":1508457396244,\"vwap\":0.1812555181366229,\"ema1\":0.19029090646669752,\"sma2\":0.20643350000000005,\"rsi_avg_gain\":0.001648392972307865,\"rsi_avg_loss\":0.0021643626849437215,\"rsi\":43},{\"period_id\":\"120m209506\",\"size\":\"120m\",\"time\":1508443200000,\"open\":0.18448,\"high\":0.1848,\"low\":0.18011,\"close\":0.1821,\"volume\":694507.9420249896,\"close_time\":1508450386343,\"vwap\":0.18231755479123993,\"ema1\":0.19083786553336632,\"sma2\":0.2070623333333334,\"rsi_avg_gain\":0.0017551924317161635,\"rsi_avg_loss\":0.002330852122247085,\"rsi\":43},{\"period_id\":\"120m209505\",\"size\":\"120m\",\"time\":1508436000000,\"open\":0.1825,\"high\":0.1855,\"low\":0.181,\"close\":0.18457,\"volume\":949255.9928773206,\"close_time\":1508443191375,\"vwap\":0.18430294925901358,\"ema1\":0.19144047694946054,\"sma2\":0.20762316666666672,\"rsi_avg_gain\":0.0018902072341558684,\"rsi_avg_loss\":0.0023201484393430144,\"rsi\":45},{\"period_id\":\"120m209504\",\"size\":\"120m\",\"time\":1508428800000,\"open\":0.191,\"high\":0.1944,\"low\":0.1821,\"close\":0.18245,\"volume\":2695444.7140950765,\"close_time\":1508435969412,\"vwap\":0.18374875608273938,\"ema1\":0.19191430294597506,\"sma2\":0.20817400000000008,\"rsi_avg_gain\":0.0018725308675524729,\"rsi_avg_loss\":0.0024986213962155538,\"rsi\":43},{\"period_id\":\"120m209503\",\"size\":\"120m\",\"time\":1508421600000,\"open\":0.17647,\"high\":0.195,\"low\":0.175,\"close\":0.192,\"volume\":3989608.8784541055,\"close_time\":1508428794391,\"vwap\":0.19307112239815943,\"ema1\":0.19256701349397334,\"sma2\":0.20857266666666677,\"rsi_avg_gain\":0.0020165717035180476,\"rsi_avg_loss\":0.0019562076574629037,\"rsi\":51},{\"period_id\":\"120m209502\",\"size\":\"120m\",\"time\":1508414400000,\"open\":0.1781,\"high\":0.17949,\"low\":0.1764,\"close\":0.17647,\"volume\":1041090.1481537899,\"close_time\":1508421587204,\"vwap\":0.17649399267621327,\"ema1\":0.19260611787286805,\"sma2\":0.20924816666666676,\"rsi_avg_gain\":0.0009770772191732807,\"rsi_avg_loss\":0.0021066851695754345,\"rsi\":32},{\"period_id\":\"120m209501\",\"size\":\"120m\",\"time\":1508407200000,\"open\":0.17791,\"high\":0.17965,\"low\":0.1752,\"close\":0.1781,\"volume\":1684302.6253727605,\"close_time\":1508414397667,\"vwap\":0.17809333821118215,\"ema1\":0.19371895358823826,\"sma2\":0.20992083333333342,\"rsi_avg_gain\":0.001052237005263533,\"rsi_avg_loss\":0.002143353259542774,\"rsi\":33},{\"period_id\":\"120m209500\",\"size\":\"120m\",\"time\":1508400000000,\"open\":0.17884,\"high\":0.18121,\"low\":0.17727,\"close\":0.17791,\"volume\":1148991.7105682401,\"close_time\":1508407195358,\"vwap\":0.1779399977802137,\"ema1\":0.19479612280122022,\"sma2\":0.21065433333333342,\"rsi_avg_gain\":0.0011185629287453435,\"rsi_avg_loss\":0.0023082265871999107,\"rsi\":33},{\"period_id\":\"120m209499\",\"size\":\"120m\",\"time\":1508392800000,\"open\":0.1826,\"high\":0.18468,\"low\":0.17801,\"close\":0.17884,\"volume\":1068540.03475697,\"close_time\":1508399998814,\"vwap\":0.18036939891061834,\"ema1\":0.1959606829944078,\"sma2\":0.21129866666666672,\"rsi_avg_gain\":0.0012046062309565239,\"rsi_avg_loss\":0.0024142440169845204,\"rsi\":33},{\"period_id\":\"120m209498\",\"size\":\"120m\",\"time\":1508385600000,\"open\":0.17834,\"high\":0.18343,\"low\":0.1763,\"close\":0.1815,\"volume\":1083815.3835733393,\"close_time\":1508392791657,\"vwap\":0.18248386639391562,\"ema1\":0.19714141975264282,\"sma2\":0.21190716666666673,\"rsi_avg_gain\":0.0012972682487224104,\"rsi_avg_loss\":0.0023953397105987147,\"rsi\":35},{\"period_id\":\"120m209497\",\"size\":\"120m\",\"time\":1508378400000,\"open\":0.1835,\"high\":0.18533,\"low\":0.17843,\"close\":0.17885,\"volume\":555617.9518499903,\"close_time\":1508385595765,\"vwap\":0.17872555758989173,\"ema1\":0.19822013835627336,\"sma2\":0.2126013333333334,\"rsi_avg_gain\":0.0011932119601625968,\"rsi_avg_loss\":0.0025795966114140006,\"rsi\":32},{\"period_id\":\"120m209496\",\"size\":\"120m\",\"time\":1508371200000,\"open\":0.18414,\"high\":0.18592,\"low\":0.18112,\"close\":0.18259,\"volume\":481808.72188413964,\"close_time\":1508378329705,\"vwap\":0.18371776260984268,\"ema1\":0.19955600996705083,\"sma2\":0.2132453333333334,\"rsi_avg_gain\":0.0012849974955597195,\"rsi_avg_loss\":0.0024903348122920013,\"rsi\":34},{\"period_id\":\"120m209495\",\"size\":\"120m\",\"time\":1508364000000,\"open\":0.185,\"high\":0.18809,\"low\":0.1836,\"close\":0.18515,\"volume\":1333017.9636087907,\"close_time\":1508371192259,\"vwap\":0.1850900756086397,\"ema1\":0.2007260796199509,\"sma2\":0.21378633333333338,\"rsi_avg_gain\":0.001383843456756621,\"rsi_avg_loss\":0.0024849759516990776,\"rsi\":36},{\"period_id\":\"120m209494\",\"size\":\"120m\",\"time\":1508356800000,\"open\":0.17963,\"high\":0.18522,\"low\":0.17531,\"close\":0.18507,\"volume\":2839118.2283753585,\"close_time\":1508363988420,\"vwap\":0.18504148011597654,\"ema1\":0.20180029200753372,\"sma2\":0.21429333333333342,\"rsi_avg_gain\":0.0014841391072763614,\"rsi_avg_loss\":0.002676127947983622,\"rsi\":36},{\"period_id\":\"120m209493\",\"size\":\"120m\",\"time\":1508349600000,\"open\":0.1817,\"high\":0.18195,\"low\":0.17057,\"close\":0.17963,\"volume\":4148635.5413661683,\"close_time\":1508356790881,\"vwap\":0.17985355279424073,\"ema1\":0.20295410524943258,\"sma2\":0.21491200000000005,\"rsi_avg_gain\":0.0011798421155283891,\"rsi_avg_loss\":0.002881983943982362,\"rsi\":29},{\"period_id\":\"120m209492\",\"size\":\"120m\",\"time\":1508342400000,\"open\":0.189,\"high\":0.18988,\"low\":0.18,\"close\":0.1805,\"volume\":2751641.340932761,\"close_time\":1508349586855,\"vwap\":0.18088551549089904,\"ema1\":0.20456266423215208,\"rsi_avg_gain\":0.0012705992013382651,\"rsi_avg_loss\":0.0030367519396733147,\"rsi\":29},{\"period_id\":\"120m209491\",\"size\":\"120m\",\"time\":1508335200000,\"open\":0.1888,\"high\":0.18988,\"low\":0.1853,\"close\":0.189,\"volume\":1497489.5640848696,\"close_time\":1508342398064,\"vwap\":0.1891396550088016,\"ema1\":0.2062221583171281,\"rsi_avg_gain\":0.0013683376014412088,\"rsi_avg_loss\":0.0026165020888789534,\"rsi\":34},{\"period_id\":\"120m209490\",\"size\":\"120m\",\"time\":1508328000000,\"open\":0.193,\"high\":0.19561,\"low\":0.188,\"close\":0.188,\"volume\":1372659.4788467903,\"close_time\":1508335190916,\"vwap\":0.1883625804055704,\"ema1\":0.20740989337348176,\"rsi_avg_gain\":0.0013966712630905326,\"rsi_avg_loss\":0.002817771480331181,\"rsi\":33},{\"period_id\":\"120m209489\",\"size\":\"120m\",\"time\":1508320800000,\"open\":0.19372,\"high\":0.19788,\"low\":0.19,\"close\":0.19388,\"volume\":1368834.8061775295,\"close_time\":1508327989073,\"vwap\":0.19388,\"ema1\":0.20874850670958395,\"rsi_avg_gain\":0.0015041075140974967,\"rsi_avg_loss\":0.0025822154403566566,\"rsi\":37},{\"period_id\":\"120m209488\",\"size\":\"120m\",\"time\":1508313600000,\"open\":0.1895,\"high\":0.19372,\"low\":0.18551,\"close\":0.19372,\"volume\":1762878.7035395007,\"close_time\":1508320794514,\"vwap\":0.19338894764981648,\"ema1\":0.20977392096541733,\"rsi_avg_gain\":0.0016075003997973048,\"rsi_avg_loss\":0.002780847397307169,\"rsi\":37},{\"period_id\":\"120m209487\",\"size\":\"120m\",\"time\":1508306400000,\"open\":0.19807,\"high\":0.19897,\"low\":0.18551,\"close\":0.192,\"volume\":1783411.5423043596,\"close_time\":1508313540957,\"vwap\":0.18892278397588336,\"ema1\":0.21088108792854957,\"rsi_avg_gain\":0.0015988465843970977,\"rsi_avg_loss\":0.0029947587355615662,\"rsi\":35},{\"period_id\":\"120m209486\",\"size\":\"120m\",\"time\":1508299200000,\"open\":0.19455,\"high\":0.20078,\"low\":0.19428,\"close\":0.198,\"volume\":1296323.113122249,\"close_time\":1508306398847,\"vwap\":0.19810499594992756,\"ema1\":0.21218323192362196,\"rsi_avg_gain\":0.0017218347831968743,\"rsi_avg_loss\":0.0027635863306047634,\"rsi\":38},{\"period_id\":\"120m209485\",\"size\":\"120m\",\"time\":1508292000000,\"open\":0.19707,\"high\":0.19925,\"low\":0.193,\"close\":0.195,\"volume\":376664.22766547016,\"close_time\":1508299009432,\"vwap\":0.1950420766205644,\"ema1\":0.21316138584938898,\"rsi_avg_gain\":0.001623514381904326,\"rsi_avg_loss\":0.0029761698944974374,\"rsi\":35},{\"period_id\":\"120m209484\",\"size\":\"120m\",\"time\":1508284800000,\"open\":0.19449,\"high\":0.19978,\"low\":0.19075,\"close\":0.19942,\"volume\":743392.9868329304,\"close_time\":1508291986653,\"vwap\":0.19961488876523473,\"ema1\":0.21441389521831236,\"rsi_avg_gain\":0.0017484001035892743,\"rsi_avg_loss\":0.002865106040228011,\"rsi\":38},{\"period_id\":\"120m209483\",\"size\":\"120m\",\"time\":1508277600000,\"open\":0.191,\"high\":0.19466,\"low\":0.1888,\"close\":0.1945,\"volume\":2467112.42037417,\"close_time\":1508284788370,\"vwap\":0.19382704063450315,\"ema1\":0.21544795695750632,\"rsi_avg_gain\":0.0015044308807884506,\"rsi_avg_loss\":0.003085498812553243,\"rsi\":33},{\"period_id\":\"120m209482\",\"size\":\"120m\",\"time\":1508270400000,\"open\":0.2015,\"high\":0.20462,\"low\":0.18501,\"close\":0.1887,\"volume\":8168424.322204548,\"close_time\":1508277590165,\"vwap\":0.18959739101208264,\"ema1\":0.2168926436442309,\"rsi_avg_gain\":0.0011740024870029468,\"rsi_avg_loss\":0.003322844875057339,\"rsi\":26},{\"period_id\":\"120m209481\",\"size\":\"120m\",\"time\":1508263200000,\"open\":0.20795,\"high\":0.20948,\"low\":0.198,\"close\":0.2015,\"volume\":4465280.972445613,\"close_time\":1508270392738,\"vwap\":0.20195048478061586,\"ema1\":0.21883696389555715,\"rsi_avg_gain\":0.001264310370618558,\"rsi_avg_loss\":0.0025938329423694415,\"rsi\":33},{\"period_id\":\"120m209480\",\"size\":\"120m\",\"time\":1508256000000,\"open\":0.21216,\"high\":0.213,\"low\":0.2,\"close\":0.20795,\"volume\":4123265.899420519,\"close_time\":1508263196262,\"vwap\":0.2079739919551282,\"ema1\":0.22003261657800938,\"rsi_avg_gain\":0.0013615650145122934,\"rsi_avg_loss\":0.002297204707167092,\"rsi\":37},{\"period_id\":\"120m209479\",\"size\":\"120m\",\"time\":1508248800000,\"open\":0.21667,\"high\":0.2185,\"low\":0.21126,\"close\":0.21247,\"volume\":1350323.3272897,\"close_time\":1508255977182,\"vwap\":0.2124650033260228,\"ema1\":0.22086590047994106,\"rsi_avg_gain\":0.001466300784859393,\"rsi_avg_loss\":0.002126220453872253,\"rsi\":41},{\"period_id\":\"120m209478\",\"size\":\"120m\",\"time\":1508241600000,\"open\":0.21483,\"high\":0.2207,\"low\":0.2145,\"close\":0.21668,\"volume\":1476930.5860650714,\"close_time\":1508248766827,\"vwap\":0.21573608646966394,\"ema1\":0.22144492809924735,\"rsi_avg_gain\":0.0015790931529255001,\"rsi_avg_loss\":0.0019659297195547326,\"rsi\":45},{\"period_id\":\"120m209477\",\"size\":\"120m\",\"time\":1508234400000,\"open\":0.2214,\"high\":0.2214,\"low\":0.21483,\"close\":0.215,\"volume\":1546725.3390792508,\"close_time\":1508241589452,\"vwap\":0.2149600623688401,\"ema1\":0.22177354383022993,\"rsi_avg_gain\":0.001571331087765922,\"rsi_avg_loss\":0.002117155082597404,\"rsi\":43},{\"period_id\":\"120m209476\",\"size\":\"120m\",\"time\":1508227200000,\"open\":0.21815,\"high\":0.22399,\"low\":0.2162,\"close\":0.22156,\"volume\":1788883.6854261511,\"close_time\":1508234398358,\"vwap\":0.22141500303966882,\"ema1\":0.22224068478403888,\"rsi_avg_gain\":0.0016922027099017622,\"rsi_avg_loss\":0.001775397781258742,\"rsi\":49},{\"period_id\":\"120m209475\",\"size\":\"120m\",\"time\":1508220000000,\"open\":0.21901,\"high\":0.22099,\"low\":0.215,\"close\":0.21842,\"volume\":1724554.0755199182,\"close_time\":1508227139321,\"vwap\":0.21825897773937253,\"ema1\":0.22228762856224846,\"rsi_avg_gain\":0.0015808336875865127,\"rsi_avg_loss\":0.0019119668413555683,\"rsi\":45},{\"period_id\":\"120m209474\",\"size\":\"120m\",\"time\":1508212800000,\"open\":0.218,\"high\":0.22398,\"low\":0.218,\"close\":0.21845,\"volume\":604386.24432186,\"close_time\":1508219872202,\"vwap\":0.21844999999999998,\"ema1\":0.22255436156654146,\"rsi_avg_gain\":0.0017024362789393214,\"rsi_avg_loss\":0.0020567335214598426,\"rsi\":45},{\"period_id\":\"120m209473\",\"size\":\"120m\",\"time\":1508205600000,\"open\":0.22012,\"high\":0.22135,\"low\":0.218,\"close\":0.21835,\"volume\":278872.58491949004,\"close_time\":1508212763910,\"vwap\":0.21811250664830087,\"ema1\":0.22283742098492362,\"rsi_avg_gain\":0.0018257006080884986,\"rsi_avg_loss\":0.0022149437923413688,\"rsi\":45},{\"period_id\":\"120m209472\",\"size\":\"120m\",\"time\":1508198400000,\"open\":0.2172,\"high\":0.22462,\"low\":0.2165,\"close\":0.22,\"volume\":526781.0521477099,\"close_time\":1508204356283,\"vwap\":0.22098821529072463,\"ema1\":0.2231468982942287,\"rsi_avg_gain\":0.0019661391164029983,\"rsi_avg_loss\":0.0022584010071368577,\"rsi\":47},{\"period_id\":\"120m209471\",\"size\":\"120m\",\"time\":1508191200000,\"open\":0.215,\"high\":0.2193,\"low\":0.21384,\"close\":0.21789,\"volume\":1527821.7633719281,\"close_time\":1508198371974,\"vwap\":0.21789000000000003,\"ema1\":0.2233639257627962,\"rsi_avg_gain\":0.0019550728945878443,\"rsi_avg_loss\":0.0024321241615320004,\"rsi\":45},{\"period_id\":\"120m209470\",\"size\":\"120m\",\"time\":1508184000000,\"open\":0.21977,\"high\":0.22632,\"low\":0.215,\"close\":0.215,\"volume\":3312468.6553416625,\"close_time\":1508191198043,\"vwap\":0.215,\"ema1\":0.22374143788436834,\"rsi_avg_gain\":0.0018831554249407554,\"rsi_avg_loss\":0.0026192106354960003,\"rsi\":42},{\"period_id\":\"120m209469\",\"size\":\"120m\",\"time\":1508176800000,\"open\":0.2322,\"high\":0.23534,\"low\":0.215,\"close\":0.2194,\"volume\":7587043.2554451395,\"close_time\":1508183998207,\"vwap\":0.2194,\"ema1\":0.2243442956694972,\"rsi_avg_gain\":0.0020280135345515826,\"rsi_avg_loss\":0.0024822268382264606,\"rsi\":45},{\"period_id\":\"120m209468\",\"size\":\"120m\",\"time\":1508169600000,\"open\":0.23909,\"high\":0.24,\"low\":0.22711,\"close\":0.2322,\"volume\":5271921.541000183,\"close_time\":1508176794364,\"vwap\":0.23264412490866232,\"ema1\":0.2246852815777384,\"rsi_avg_gain\":0.002184014575670935,\"rsi_avg_loss\":0.0016885519796284974,\"rsi\":56},{\"period_id\":\"120m209467\",\"size\":\"120m\",\"time\":1508162400000,\"open\":0.2485,\"high\":0.2485,\"low\":0.2386,\"close\":0.2386,\"volume\":4005236.0432454455,\"close_time\":1508169595100,\"vwap\":0.23874997076392976,\"ema1\":0.2241670251348238,\"rsi_avg_gain\":0.0023520156968763915,\"rsi_avg_loss\":0.0013261329011383803,\"rsi\":64},{\"period_id\":\"120m209466\",\"size\":\"120m\",\"time\":1508155200000,\"open\":0.2355,\"high\":0.2499,\"low\":0.235,\"close\":0.24766,\"volume\":5009323.550827344,\"close_time\":1508162398862,\"vwap\":0.24800302729933874,\"ema1\":0.2231716475579151,\"rsi_avg_gain\":0.0025329399812514986,\"rsi_avg_loss\":0.0007312200473797956,\"rsi\":78},{\"period_id\":\"120m209465\",\"size\":\"120m\",\"time\":1508148000000,\"open\":0.2334,\"high\":0.237,\"low\":0.23101,\"close\":0.2355,\"volume\":1623158.6642044901,\"close_time\":1508155184120,\"vwap\":0.23550000000000001,\"ema1\":0.22148279566535753,\"rsi_avg_gain\":0.0017923969028862292,\"rsi_avg_loss\":0.0007874677433320875,\"rsi\":69},{\"period_id\":\"120m209464\",\"size\":\"120m\",\"time\":1508140800000,\"open\":0.23496,\"high\":0.235,\"low\":0.224,\"close\":0.23346,\"volume\":2284854.99099831,\"close_time\":1508147985967,\"vwap\":0.23346499839807866,\"ema1\":0.2205160919181408,\"rsi_avg_gain\":0.0017733505108005556,\"rsi_avg_loss\":0.0008480421851268634,\"rsi\":68},{\"period_id\":\"120m209463\",\"size\":\"120m\",\"time\":1508133600000,\"open\":0.22176,\"high\":0.237,\"low\":0.22174,\"close\":0.23498,\"volume\":3742457.9514594693,\"close_time\":1508140777463,\"vwap\":0.23460751624338522,\"ema1\":0.21962340860215052,\"rsi_avg_gain\":0.0019097620885544443,\"rsi_avg_loss\":0.0007963531224443149,\"rsi\":71},{\"period_id\":\"120m209462\",\"size\":\"120m\",\"time\":1508126400000,\"open\":0.22,\"high\":0.225,\"low\":0.21921,\"close\":0.22178,\"volume\":491233.2354765498,\"close_time\":1508133596710,\"vwap\":0.22191949863622443,\"rsi_avg_gain\":0.0010412822492124796,\"rsi_avg_loss\":0.0008576110549400315,\"rsi\":55},{\"period_id\":\"120m209461\",\"size\":\"120m\",\"time\":1508119200000,\"open\":0.22154,\"high\":0.22179,\"low\":0.21931,\"close\":0.22,\"volume\":231878.15689234002,\"close_time\":1508126390334,\"vwap\":0.22019319844898816,\"rsi_avg_gain\":0.0009844578068442084,\"rsi_avg_loss\":0.0009235811360892647,\"rsi\":52},{\"period_id\":\"120m209460\",\"size\":\"120m\",\"time\":1508112000000,\"open\":0.22323,\"high\":0.22323,\"low\":0.2203,\"close\":0.22074,\"volume\":253917.69177766997,\"close_time\":1508119056912,\"vwap\":0.2205212977708588,\"rsi_avg_gain\":0.0010601853304476091,\"rsi_avg_loss\":0.0009377027619422857,\"rsi\":53},{\"period_id\":\"120m209459\",\"size\":\"120m\",\"time\":1508104800000,\"open\":0.2238,\"high\":0.2241,\"low\":0.22,\"close\":0.223,\"volume\":679377.8068433397,\"close_time\":1508111891597,\"vwap\":0.223,\"rsi_avg_gain\":0.0011417380481743484,\"rsi_avg_loss\":0.0008359875897839991,\"rsi\":58},{\"period_id\":\"120m209458\",\"size\":\"120m\",\"time\":1508097600000,\"open\":0.2235,\"high\":0.2241,\"low\":0.222,\"close\":0.22341,\"volume\":879567.2457431995,\"close_time\":1508104786549,\"vwap\":0.22368608816128877,\"rsi_avg_gain\":0.0012295640518800676,\"rsi_avg_loss\":0.0008687558659212304,\"rsi\":59},{\"period_id\":\"120m209457\",\"size\":\"120m\",\"time\":1508090400000,\"open\":0.22601,\"high\":0.2285,\"low\":0.2235,\"close\":0.22389,\"volume\":2245693.797248608,\"close_time\":1508097595388,\"vwap\":0.22389,\"rsi_avg_gain\":0.0013241459020246881,\"rsi_avg_loss\":0.0008986601632997859,\"rsi\":60},{\"period_id\":\"120m209456\",\"size\":\"120m\",\"time\":1508083200000,\"open\":0.22045,\"high\":0.2269,\"low\":0.22011,\"close\":0.226,\"volume\":2726038.296152591,\"close_time\":1508090396748,\"vwap\":0.22659889328963065,\"rsi_avg_gain\":0.0014260032791035102,\"rsi_avg_loss\":0.0008054801758613078,\"rsi\":64},{\"period_id\":\"120m209455\",\"size\":\"120m\",\"time\":1508076000000,\"open\":0.21396,\"high\":0.221,\"low\":0.21354,\"close\":0.22045,\"volume\":1708637.0210549808,\"close_time\":1508083195777,\"vwap\":0.22038120617357965,\"rsi_avg_gain\":0.0011087727621114727,\"rsi_avg_loss\":0.0008674401893891007,\"rsi\":56},{\"period_id\":\"120m209454\",\"size\":\"120m\",\"time\":1508068800000,\"open\":0.21396,\"high\":0.21672,\"low\":0.21275,\"close\":0.21392,\"volume\":435710.61404684,\"close_time\":1508075872850,\"vwap\":0.21375262480918433,\"rsi_avg_gain\":0.000691755282273893,\"rsi_avg_loss\":0.0009341663578036469,\"rsi\":43},{\"period_id\":\"120m209453\",\"size\":\"120m\",\"time\":1508061600000,\"open\":0.214,\"high\":0.2142,\"low\":0.21012,\"close\":0.2142,\"volume\":850332.3362540897,\"close_time\":1508068743727,\"vwap\":0.21357757769392413,\"rsi_avg_gain\":0.0007449672270641925,\"rsi_avg_loss\":0.0009844868468654657,\"rsi\":43},{\"period_id\":\"120m209452\",\"size\":\"120m\",\"time\":1508054400000,\"open\":0.21693,\"high\":0.2188,\"low\":0.214,\"close\":0.214,\"volume\":607334.2370174906,\"close_time\":1508061599703,\"vwap\":0.214,\"rsi_avg_gain\":0.0007868877829922069,\"rsi_avg_loss\":0.0010602166043166554,\"rsi\":43},{\"period_id\":\"120m209451\",\"size\":\"120m\",\"time\":1508047200000,\"open\":0.21579,\"high\":0.21797,\"low\":0.21503,\"close\":0.21696,\"volume\":394691.07658418996,\"close_time\":1508054359089,\"vwap\":0.21656492757475115,\"rsi_avg_gain\":0.0008474176124531459,\"rsi_avg_loss\":0.0009140794200333221,\"rsi\":48},{\"period_id\":\"120m209450\",\"size\":\"120m\",\"time\":1508040000000,\"open\":0.21822,\"high\":0.21883,\"low\":0.21504,\"close\":0.2158,\"volume\":171068.74766762997,\"close_time\":1508047123237,\"vwap\":0.2157563191960247,\"rsi_avg_gain\":0.0008233728134110806,\"rsi_avg_loss\":0.0009843932215743468,\"rsi\":46},{\"period_id\":\"120m209449\",\"size\":\"120m\",\"time\":1508032800000,\"open\":0.21515,\"high\":0.21987,\"low\":0.215,\"close\":0.21798,\"volume\":220571.05850644,\"close_time\":1508039650535,\"vwap\":0.21798498129102264,\"rsi_avg_gain\":0.0008867091836734714,\"rsi_avg_loss\":0.000892423469387757,\"rsi\":50},{\"period_id\":\"120m209448\",\"size\":\"120m\",\"time\":1508025600000,\"open\":0.21536,\"high\":0.22149,\"low\":0.21386,\"close\":0.21546,\"volume\":707964.3870707101,\"close_time\":1508032798119,\"vwap\":0.21546634037761575,\"rsi_avg_gain\":0.000761071428571431,\"rsi_avg_loss\":0.0009610714285714307,\"rsi\":44},{\"period_id\":\"120m209447\",\"size\":\"120m\",\"time\":1508018400000,\"open\":0.21973,\"high\":0.2205,\"low\":0.2154,\"close\":0.2154,\"volume\":838005.9117413496,\"close_time\":1508025538461,\"vwap\":0.21540197306966216,\"rsi_avg_gain\":0.0008150000000000022,\"rsi_avg_loss\":0.0010350000000000023,\"rsi\":44},{\"period_id\":\"120m209446\",\"size\":\"120m\",\"time\":1508011200000,\"open\":0.21822,\"high\":0.22,\"low\":0.21704,\"close\":0.21983,\"volume\":575111.9319556504,\"close_time\":1508018298035,\"vwap\":0.21908921708460882},{\"period_id\":\"120m209445\",\"size\":\"120m\",\"time\":1508004000000,\"open\":0.2155,\"high\":0.22,\"low\":0.21526,\"close\":0.21822,\"volume\":489996.45826562005,\"close_time\":1508010985727,\"vwap\":0.2182324543019339},{\"period_id\":\"120m209444\",\"size\":\"120m\",\"time\":1507996800000,\"open\":0.216,\"high\":0.21743,\"low\":0.212,\"close\":0.2155,\"volume\":1021218.8540847708,\"close_time\":1508003893718,\"vwap\":0.2154966671889849},{\"period_id\":\"120m209443\",\"size\":\"120m\",\"time\":1507989600000,\"open\":0.21681,\"high\":0.21797,\"low\":0.215,\"close\":0.21592,\"volume\":713933.1875201706,\"close_time\":1507996716287,\"vwap\":0.21644174433593108},{\"period_id\":\"120m209442\",\"size\":\"120m\",\"time\":1507982400000,\"open\":0.21846,\"high\":0.21995,\"low\":0.2161,\"close\":0.217,\"volume\":510351.39443468006,\"close_time\":1507989592659},{\"period_id\":\"120m209441\",\"size\":\"120m\",\"time\":1507975200000,\"open\":0.2218,\"high\":0.2228,\"low\":0.2158,\"close\":0.21846,\"volume\":713020.0319770401,\"close_time\":1507982378829},{\"period_id\":\"120m209440\",\"size\":\"120m\",\"time\":1507968000000,\"open\":0.2176,\"high\":0.22378,\"low\":0.21651,\"close\":0.22192,\"volume\":1198865.3822558406,\"close_time\":1507975185432},{\"period_id\":\"120m209439\",\"size\":\"120m\",\"time\":1507960800000,\"open\":0.218,\"high\":0.21895,\"low\":0.215,\"close\":0.2175,\"volume\":647635.7473931103,\"close_time\":1507967986898},{\"period_id\":\"120m209438\",\"size\":\"120m\",\"time\":1507953600000,\"open\":0.21942,\"high\":0.22366,\"low\":0.21801,\"close\":0.21801,\"volume\":153208.56479699002,\"close_time\":1507960794466},{\"period_id\":\"120m209437\",\"size\":\"120m\",\"time\":1507946400000,\"open\":0.22138,\"high\":0.2238,\"low\":0.21948,\"close\":0.2205,\"volume\":371646.62039033975,\"close_time\":1507953503013},{\"period_id\":\"120m209436\",\"size\":\"120m\",\"time\":1507939200000,\"open\":0.2183,\"high\":0.22139,\"low\":0.21761,\"close\":0.22123,\"volume\":335889.88883946976,\"close_time\":1507946329960},{\"period_id\":\"120m209435\",\"size\":\"120m\",\"time\":1507932000000,\"open\":0.21462,\"high\":0.219,\"low\":0.2146,\"close\":0.21761,\"volume\":342086.37947635003,\"close_time\":1507939166270},{\"period_id\":\"120m209434\",\"size\":\"120m\",\"time\":1507924800000,\"open\":0.217,\"high\":0.21762,\"low\":0.211,\"close\":0.21549,\"volume\":806460.19144003,\"close_time\":1507931994857}];\nvar trades = [{\"time\":1508812297524,\"execution_time\":1913925,\"slippage\":0.0004500000000000549,\"type\":\"buy\",\"size\":\"4100.59171598\",\"fee\":6.336,\"price\":\"0.16907605\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1508819123657,\"execution_time\":1636215,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3914.12736000\",\"fee\":1.070423338335437,\"price\":\"0.17092305\",\"order_type\":\"maker\"},{\"time\":1508826388445,\"execution_time\":1622389,\"slippage\":0.00045000000000007046,\"type\":\"buy\",\"size\":\"3996.64147439\",\"fee\":6.4318044192479995,\"price\":\"0.17307785\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1508925672104,\"execution_time\":78297,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4012.45277163\",\"fee\":1.1229812070071745,\"price\":\"0.17492125\",\"order_type\":\"maker\"},{\"time\":1509036685937,\"execution_time\":46377681,\"slippage\":0.0004499999999999014,\"type\":\"buy\",\"size\":\"4048.59048372\",\"fee\":6.4777447739520015,\"price\":\"0.17207740\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509083559199,\"execution_time\":7031795,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4041.81613928\",\"fee\":1.1311992501648507,\"price\":\"0.17492125\",\"order_type\":\"maker\"},{\"time\":1509223193040,\"execution_time\":16808106,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"40.41816139\",\"fee\":0.011182712586569261,\"price\":\"0.17292215\",\"order_type\":\"maker\"},{\"time\":1509308060275,\"execution_time\":15375901,\"slippage\":0.00045000000000006276,\"type\":\"buy\",\"size\":\"4165.91362365\",\"fee\":6.588404436015999,\"price\":\"0.17107695\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509567002437,\"execution_time\":101484524,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4070.45690601\",\"fee\":1.1392150561126428,\"price\":\"0.17492125\",\"order_type\":\"maker\"},{\"time\":1509671719179,\"execution_time\":4548785,\"slippage\":0.00045000000000006276,\"type\":\"buy\",\"size\":\"4203.06820687\",\"fee\":6.2839314830560005,\"price\":\"0.17107695\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509877509431,\"execution_time\":1557794,\"slippage\":0.00045020259116602474,\"type\":\"sell\",\"size\":\"3922.66608203\",\"fee\":1.091578805630395,\"price\":\"0.17392170\",\"order_type\":\"maker\"},{\"time\":1509968600389,\"execution_time\":6216095,\"slippage\":0.0004499999999999014,\"type\":\"buy\",\"size\":\"4231.86026284\",\"fee\":6.542741260304,\"price\":\"0.17207740\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509998539571,\"execution_time\":168172,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4081.07050179\",\"fee\":1.1421855256179745,\"price\":\"0.17492125\",\"order_type\":\"maker\"},{\"time\":1510040563611,\"execution_time\":13751617,\"slippage\":0.00045000000000007046,\"type\":\"buy\",\"size\":\"4259.25963488\",\"fee\":6.7756498099839995,\"price\":\"0.17307785\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510136820027,\"execution_time\":44868297,\"slippage\":0.00044999999999991087,\"type\":\"buy\",\"size\":\"64.56650316\",\"fee\":0.099862858224,\"price\":\"0.17407830\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510307860202,\"execution_time\":7149662,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4288.22741093\",\"fee\":1.2756021980778955,\"price\":\"0.18591630\",\"order_type\":\"maker\"},{\"time\":1510426267770,\"execution_time\":3077674,\"slippage\":0.00044999999999992924,\"type\":\"buy\",\"size\":\"4429.74304658\",\"fee\":7.168129657200001,\"price\":\"0.17808010\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510434646495,\"execution_time\":4264053,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4471.06605114\",\"fee\":1.2727865995395575,\"price\":\"0.17791990\",\"order_type\":\"maker\"},{\"time\":1510567799380,\"execution_time\":614145,\"slippage\":0.0004499999999999014,\"type\":\"buy\",\"size\":\"4563.58003465\",\"fee\":7.25952153488,\"price\":\"0.17207740\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510597666573,\"execution_time\":1725458,\"slippage\":0.00045020259116602474,\"type\":\"sell\",\"size\":\"4529.35268390\",\"fee\":1.260404349893521,\"price\":\"0.17392170\",\"order_type\":\"maker\"},{\"time\":1510627469334,\"execution_time\":9871508,\"slippage\":0.0004499999999999014,\"type\":\"buy\",\"size\":\"4596.63319907\",\"fee\":7.22853403648,\"price\":\"0.17207740\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510839233076,\"execution_time\":5664999,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4510.79271321\",\"fee\":1.2840956615280832,\"price\":\"0.17791990\",\"order_type\":\"maker\"},{\"time\":1510840937071,\"execution_time\":140659,\"slippage\":0.00044999999999994534,\"type\":\"buy\",\"size\":\"3735.05012722\",\"fee\":6.003619743664,\"price\":\"0.21809810\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510975080116,\"execution_time\":4782283,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3753.90405998\",\"fee\":1.1466768438435595,\"price\":\"0.19091405\",\"order_type\":\"maker\"},{\"time\":1511042739859,\"execution_time\":43580032,\"slippage\":0.00044999999999998356,\"type\":\"buy\",\"size\":\"3730.02272591\",\"fee\":5.875747139375999,\"price\":\"0.19108595\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511079098082,\"execution_time\":735225,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3667.34059342\",\"fee\":1.1261000571349897,\"price\":\"0.19191360\",\"order_type\":\"maker\"},{\"time\":1511085850686,\"execution_time\":255022,\"slippage\":0.00044999999999998747,\"type\":\"buy\",\"size\":\"3715.51192145\",\"fee\":5.944819074320001,\"price\":\"0.19208640\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511369757161,\"execution_time\":39533570,\"slippage\":0.0004500000000000135,\"type\":\"buy\",\"size\":\"34.25111990\",\"fee\":0.053987903840000004,\"price\":\"0.19908955\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511491599605,\"execution_time\":2806166,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3742.49640477\",\"fee\":1.2210011286449953,\"price\":\"0.20390820\",\"order_type\":\"maker\"},{\"time\":1511512179066,\"execution_time\":1779671,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"37.42496405\",\"fee\":0.012150158290694452,\"price\":\"0.20290865\",\"order_type\":\"maker\"},{\"time\":1511598864424,\"execution_time\":30868630,\"slippage\":0.0004500000000000206,\"type\":\"buy\",\"size\":\"3790.83045951\",\"fee\":6.035302355328,\"price\":\"0.20109045\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511623783181,\"execution_time\":12602800,\"slippage\":0.0004500000000000276,\"type\":\"buy\",\"size\":\"54.26670545\",\"fee\":0.085148917536,\"price\":\"0.20309135\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511692806879,\"execution_time\":2460955,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3781.34422796\",\"fee\":1.245770208559725,\"price\":\"0.20590730\",\"order_type\":\"maker\"},{\"time\":1511725112176,\"execution_time\":13199966,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"37.81344228\",\"fee\":0.012457702085729029,\"price\":\"0.20590730\",\"order_type\":\"maker\"},{\"time\":1511775993705,\"execution_time\":13697285,\"slippage\":0.0004500000000000276,\"type\":\"buy\",\"size\":\"3830.53677935\",\"fee\":6.12885884696,\"price\":\"0.20309135\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511978790070,\"execution_time\":398187,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3786.54197572\",\"fee\":1.320151505502627,\"price\":\"0.21790190\",\"order_type\":\"maker\"},{\"time\":1512138371222,\"execution_time\":1572711,\"slippage\":0.0004499999999999077,\"type\":\"buy\",\"size\":\"3956.56905462\",\"fee\":6.361092663664,\"price\":\"0.20809360\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512338626571,\"execution_time\":229790,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3967.49402366\",\"fee\":1.294407303800429,\"price\":\"0.20390820\",\"order_type\":\"maker\"},{\"time\":1512388708776,\"execution_time\":14362203,\"slippage\":0.00044999999999989975,\"type\":\"buy\",\"size\":\"3900.76888766\",\"fee\":6.271675245712,\"price\":\"0.20609270\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512392949458,\"execution_time\":4152260,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3914.06504002\",\"fee\":1.3020146749382624,\"price\":\"0.20790640\",\"order_type\":\"maker\"},{\"time\":1512452513752,\"execution_time\":13489333,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"39.14065040\",\"fee\":0.013020146749316095,\"price\":\"0.20790640\",\"order_type\":\"maker\"},{\"time\":1512699360458,\"execution_time\":995610,\"slippage\":0.0004500000000000276,\"type\":\"buy\",\"size\":\"4020.54760966\",\"fee\":6.562180219184,\"price\":\"0.20309135\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512713336701,\"execution_time\":545912,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4054.24385871\",\"fee\":1.2513871258430416,\"price\":\"0.19291315\",\"order_type\":\"maker\"},{\"time\":1512736814119,\"execution_time\":2425231,\"slippage\":0.00044999999999999126,\"type\":\"buy\",\"size\":\"3961.69074395\",\"fee\":6.2416841925119995,\"price\":\"0.19308685\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512846893075,\"execution_time\":4494715,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3896.40526536\",\"fee\":1.2275942735186334,\"price\":\"0.19691135\",\"order_type\":\"maker\"},{\"time\":1512849609385,\"execution_time\":30117,\"slippage\":0.0004500000000000062,\"type\":\"buy\",\"size\":\"3945.45893136\",\"fee\":6.3127342901759995,\"price\":\"0.19708865\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512871396285,\"execution_time\":208624,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3938.71878775\",\"fee\":1.2346263798430726,\"price\":\"0.19591180\",\"order_type\":\"maker\"},{\"time\":1512916168500,\"execution_time\":1775353,\"slippage\":0.0004500000000000062,\"type\":\"buy\",\"size\":\"3909.28466610\",\"fee\":6.22326528664,\"price\":\"0.19708865\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512921739597,\"execution_time\":149154,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3883.87155135\",\"fee\":1.2050112303607474,\"price\":\"0.19391270\",\"order_type\":\"maker\"},{\"time\":1512988276878,\"execution_time\":16372084,\"slippage\":0.00044999999999999885,\"type\":\"buy\",\"size\":\"3874.96571357\",\"fee\":6.044946513168001,\"price\":\"0.19508775\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"price\":0.3935,\"size\":\"3811.27764999\",\"type\":\"sell\",\"time\":1513173600000}];\n\nwithData(data, trades)\n  </script>\n  <pre><code>{\n  \"asset_capital\": 0,\n  \"avg_slippage_pct\": 0.045,\n  \"buy_pct\": 99,\n  \"buy_stop_pct\": 0,\n  \"currency_capital\": 700,\n  \"days\": 60,\n  \"emalen1\": 30,\n  \"filename\": \"simulations/vwapmax10.html\",\n  \"markdown_buy_pct\": 0.5,\n  \"markup_sell_pct\": 0.5,\n  \"max_sell_loss_pct\": 25,\n  \"max_slippage_pct\": \"100\",\n  \"min_periods\": 1,\n  \"mode\": \"sim\",\n  \"order_adjust_time\": 5000,\n  \"order_type\": \"maker\",\n  \"period\": \"120m\",\n  \"profit_stop_enable_pct\": 0,\n  \"profit_stop_pct\": 1,\n  \"rsi_periods\": 14,\n  \"selector\": \"kraken.XXRP-ZEUR\",\n  \"sell_pct\": 99,\n  \"sell_stop_pct\": 0,\n  \"show_options\": true,\n  \"smalen1\": 108,\n  \"smalen2\": 60,\n  \"start\": 1507939200000,\n  \"stats\": false,\n  \"strategy\": \"crossover_vwap\",\n  \"verbose\": false,\n  \"vwap_length\": 10,\n  \"vwap_max\": 10\n}\nend balance: 1525.92919381 (117.99%)\nbuy hold: 1261.79569400 (80.26%)\nvs. buy hold: 20.93%\n51 trades over 62 days (avg 0.82 trades/day)\nwin/loss: 20/6\nerror rate: 23.08%</pre></code>\n</body>\n</html>"
  },
  {
    "path": "extensions/strategies/crossover_vwap/example_sims/vwapmax100.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>kraken.XXRP-ZEUR - zenbot 4.0.5 sim result</title>\n  <link href=\"main.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n  <div class=\"ticker-graph\"></div>\n  <script src=\"https://code.jquery.com/jquery-3.0.0.slim.min.js\"></script>\n  <script src=\"https://d3js.org/d3.v4.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/techan.js/0.8.0/techan.min.js\"></script>\n  <script>\n    var withData = function (data, trades) {\n      var dim = {\n          width: 1280, height: 520,\n          margin: { top: 20, right: 50, bottom: 20, left: 50 },\n          ohlc: { height: 450 }\n      };\n      dim.plot = {\n          width: dim.width - dim.margin.left - dim.margin.right,\n          height: dim.height - dim.margin.top - dim.margin.bottom\n      };\n\n      var yInit, yPercentInit, zoomableInit;\n\n      var x = techan.scale.financetime()\n              .range([0, dim.plot.width]);\n\n      var y = d3.scaleLinear()\n              .range([dim.ohlc.height, 0]);\n\n      var zoom = d3.zoom()\n              .on(\"zoom\", zoomed);\n\n      var yPercent = y.copy();   // Same as y at this stage, will get a different domain later\n\n      var yVolume = d3.scaleLinear()\n              .range([y(0), y(1)]);\n\n      var candlestick = techan.plot.candlestick()\n              .xScale(x)\n              .yScale(y);\n\n      var tradearrow = techan.plot.tradearrow()\n              .xScale(x)\n              .yScale(y)\n              .y(function(d) {\n                  // Display the buy and sell arrows a bit above and below the price, so the price is still visible\n                  if(d.type === 'buy') return y(d.price);\n                  if(d.type === 'sell') return y(d.price);\n                  else \n                    return y(d.price);\n              });\n\n      var ema2 = techan.plot.ema()\n        .xScale(x)\n        .yScale(y);\n\n      var sma0 = techan.plot.sma()\n              .xScale(x)\n              .yScale(y);\n    \n      var sma1 = techan.plot.sma()\n              .xScale(x)\n              .yScale(y);\n    \n      var adx1 = techan.plot.adx()\n              .xScale(x)\n              .yScale(y);\n  \n      var volume = techan.plot.volume()\n              .accessor(candlestick.accessor())   // Set the accessor to a ohlc accessor so we get highlighted bars\n              .xScale(x)\n              .yScale(yVolume);\n\n      var xAxis = d3.axisBottom(x);\n\n      var timeAnnotation = techan.plot.axisannotation()\n              .axis(xAxis)\n              .orient('bottom')\n              .format(d3.timeFormat('%c'))\n              .width(140)\n              .translate([0, dim.plot.height]);\n\n      var yAxis = d3.axisRight(y);\n\n      var ohlcAnnotation = techan.plot.axisannotation()\n              .axis(yAxis)\n              .orient('right')\n              .format(d3.format(',.8f'))\n              .translate([x(1), 0]);\n\n      var percentAxis = d3.axisLeft(yPercent)\n              .tickFormat(d3.format('+.1%'));\n\n      var percentAnnotation = techan.plot.axisannotation()\n              .axis(percentAxis)\n              .orient('left');\n\n      var volumeAxis = d3.axisRight(yVolume)\n              .ticks(3)\n              .tickFormat(d3.format(\",.3s\"));\n\n      var volumeAnnotation = techan.plot.axisannotation()\n              .axis(volumeAxis)\n              .orient(\"right\")\n              .width(35);\n\n      var ohlcCrosshair = techan.plot.crosshair()\n              .xScale(timeAnnotation.axis().scale())\n              .yScale(ohlcAnnotation.axis().scale())\n              .xAnnotation(timeAnnotation)\n              .yAnnotation([ohlcAnnotation, percentAnnotation, volumeAnnotation])\n              .verticalWireRange([0, dim.plot.height]);\n\n      var svg = d3.select(\"body\").append(\"svg\")\n              .attr(\"viewBox\", \"0 0 \" + dim.width + \" \" + dim.height)\n              .attr(\"width\", dim.width)\n              .attr(\"height\", dim.height);\n\n      var defs = svg.append(\"defs\");\n\n      defs.append(\"clipPath\")\n              .attr(\"id\", \"ohlcClip\")\n          .append(\"rect\")\n              .attr(\"x\", 0)\n              .attr(\"y\", 0)\n              .attr(\"width\", dim.plot.width)\n              .attr(\"height\", dim.ohlc.height);\n\n      svg = svg.append(\"g\")\n              .attr(\"transform\", \"translate(\" + dim.margin.left + \",\" + dim.margin.top + \")\");\n\n      svg.append('text')\n              .attr(\"class\", \"symbol\")\n              .attr(\"x\", 50)\n              .text(\"kraken.XXRP-ZEUR - zenbot 4.0.5\");\n\n      svg.append(\"g\")\n              .attr(\"class\", \"x axis\")\n              .attr(\"transform\", \"translate(0,\" + (dim.plot.height - 30) + \")\");\n\n      var ohlcSelection = svg.append(\"g\")\n              .attr(\"class\", \"ohlc\")\n              .attr(\"transform\", \"translate(0,0)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"axis\")\n              .attr(\"transform\", \"translate(\" + x(1) + \",0)\")\n          .append(\"text\")\n              .attr(\"transform\", \"rotate(-90)\")\n              .attr(\"y\", -12)\n              .attr(\"dy\", \".71em\")\n              .style(\"text-anchor\", \"end\")\n              .text(\"Price\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"close annotation up\")\n              .attr(\"font-weight\", \"900\")\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"volume\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"candlestick\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator ema ma-2\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator sma sma-0\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator sma sma-1\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator adx adx-1\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line1\")\n                .attr(\"class\", \"indicator ema ma-2\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line2\")\n                .attr(\"class\", \"indicator sma sma-0\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line3\")\n                .attr(\"class\", \"indicator sma sma-1\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n            \n      svg.append(\"g\")\n                .attr(\"id\", \"data_line4\")\n                .attr(\"class\", \"indicator indicator4\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"percent axis\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"volume axis\");\n\n      // Add trendlines and other interactions last to be above zoom pane\n      svg.append('g')\n              .attr(\"class\", \"crosshair ohlc\");\n\n      svg.append(\"g\")\n              .attr(\"class\", \"tradearrow\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      var accessor = candlestick.accessor();\n\n      data = data.map(function (d) {\n        d.date = new Date(d.time)\n        return d\n      })\n      data.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n      trades = trades.map(function (t) {\n        t.date = new Date(t.time)\n        return t\n      })\n      trades.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n\n      //$('body').css('backgroundColor', '#1f2d35')\n      x.domain(techan.scale.plot.time(data).domain());\n      y.domain(techan.scale.plot.ohlc(data).domain());\n      yPercent.domain(techan.scale.plot.percent(y, accessor(data[0])).domain());\n      yVolume.domain(techan.scale.plot.volume(data).domain());\n\n      svg.select(\"g.candlestick\").datum(data)\n      var last = data[data.length-1]\n      if (!last) {\n        return\n      }\n  \n      var parseQueryString = function(url) {\n        var urlParams = {};\n        url.replace(\n          new RegExp(\"([^?=&]+)(=([^&]*))?\", \"g\"),\n          function($0, $1, $2, $3) {\n            urlParams[$1] = $3;\n          }\n        );\n\n        return urlParams;\n      }\n  \n      var urlToParse = location.search;  \n      var qParams = parseQueryString(urlToParse ); \n  \n      var tperiod = qParams.period;\n  \n      svg.select(\"g.volume\").datum(data)\n  \n      // svg.select(\"g.ema.ma-2\").datum(techan.indicator.ema().period(tperiod*2)(data)).call(ema2);\n      // svg.select(\"g.sma.sma-0\").datum(techan.indicator.sma().period(tperiod*2)(data)).call(sma0);\n      // svg.select(\"g.sma.sma-1\").datum(techan.indicator.sma().period(tperiod)(data)).call(sma1);\n  \n      // svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1);\n      // svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2);\n      // svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3);\n      //\n  \n        \n      var plotLine1 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.ema1); });\n\n      var plotLine2 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.sma1); });\n\n      var plotLine3 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.sma2); });\n          \n      var plotLine4 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2) && !isNaN(d.vwap); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.vwap); });\n        \n        \n      svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1);\n      svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2);\n      svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3);\n      svg.select(\"g#data_line4 path\").datum(data).attr(\"d\", plotLine4);\n      //svg.select(\"g.adx.adx-1\").datum(techan.indicator.adx().period(tperiod)(data)).call(adx1);\n  \n      svg.select(\"g.tradearrow\").datum(trades).call(tradearrow);\n  \n      // Stash for zooming\n      zoomableInit = x.zoomable().domain([0, data.length]).copy(); // Zoom in a little to hide indicator preroll\n      yInit = y.copy();\n      yPercentInit = yPercent.copy();\n\n      draw();\n\n      function draw() {\n        svg.select(\"g.x.axis\").call(xAxis);\n        svg.select(\"g.ohlc .axis\").call(yAxis);\n        svg.select(\"g.volume.axis\").call(volumeAxis);\n        svg.select(\"g.percent.axis\").call(percentAxis);\n        svg.select(\"g.candlestick\").call(candlestick);\n        svg.select(\"g.volume\").call(volume);\n        svg.select(\"g.crosshair.ohlc\").call(ohlcCrosshair).call(zoom);\n        svg.select(\"g.tradearrow\").call(tradearrow);\n        // svg.select(\"g .ema.ma-2\").call(ema2.refresh).call(zoom);\n        // svg.select(\"g .sma.sma-0\").call(sma0.refresh).call(zoom);\n        // svg.select(\"g .sma.sma-1\").call(sma1.refresh).call(zoom);\n        // svg.select(\"g .adx.adx-1\").call(adx1.refresh).call(zoom);\n    \n        svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1).call(zoom);\n        svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2).call(zoom);\n        svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3).call(zoom);\n        svg.select(\"g#data_line4 path\").datum(data).attr(\"d\", plotLine4).call(zoom);\n      }\n\n\n      function zoomed() {\n        x.zoomable().domain(d3.event.transform.rescaleX(zoomableInit).domain());\n        y.domain(d3.event.transform.rescaleY(yInit).domain());\n        yPercent.domain(d3.event.transform.rescaleY(yPercentInit).domain());\n\n        draw();\n      }\n  \n      if(!qParams.static)\n        setTimeout(function(){ window.location.reload(1); }, 10000);\n    }\n  </script>\n  <script>\nvar data = [{\"period_id\":\"120m210163\",\"size\":\"120m\",\"time\":1513173600000,\"open\":0.3875,\"high\":0.399,\"low\":0.3812,\"close\":0.3935,\"volume\":1394606.5288537226,\"close_time\":1513174686001,\"vwap\":0.39264430667621325,\"ema1\":0.27287274681999496,\"sma1\":0.2141562685185185,\"sma2\":0.22013291666666668},{\"period_id\":\"120m210162\",\"size\":\"120m\",\"time\":1513166400000,\"open\":0.38999,\"high\":0.395,\"low\":0.371,\"close\":0.3875,\"volume\":2764537.296713162,\"close_time\":1513173592543,\"vwap\":0.38531473600668553,\"ema1\":0.2645536259110291,\"sma1\":0.21242386111111108,\"sma2\":0.21690791666666667,\"rsi_avg_gain\":0.009856092175262298,\"rsi_avg_loss\":0.000811144798512558,\"rsi\":92},{\"period_id\":\"120m210161\",\"size\":\"120m\",\"time\":1513159200000,\"open\":0.37499,\"high\":0.39,\"low\":0.35,\"close\":0.38331,\"volume\":4774045.706226606,\"close_time\":1513166399125,\"vwap\":0.38786809878647166,\"ema1\":0.2560745656290311,\"sma1\":0.21074265740740744,\"sma2\":0.21373625000000002,\"rsi_avg_gain\":0.010291945419513242,\"rsi_avg_loss\":0.0008735405522442933,\"rsi\":92},{\"period_id\":\"120m210160\",\"size\":\"120m\",\"time\":1513152000000,\"open\":0.365,\"high\":0.43,\"low\":0.362,\"close\":0.37037,\"volume\":10615001.811561493,\"close_time\":1513159196158,\"vwap\":0.3709937483551211,\"ema1\":0.24729970808620566,\"sma1\":0.20869450925925928,\"sma2\":0.21075141666666672,\"rsi_avg_gain\":0.010088248913321952,\"rsi_avg_loss\":0.0009407359793400081,\"rsi\":91},{\"period_id\":\"120m210159\",\"size\":\"120m\",\"time\":1513144800000,\"open\":0.31155,\"high\":0.3799,\"low\":0.30039,\"close\":0.36201,\"volume\":7383654.496617741,\"close_time\":1513151997966,\"vwap\":0.36460323683755314,\"ema1\":0.23881210174732329,\"sma1\":0.20709302777777777,\"sma2\":0.2079064166666667,\"rsi_avg_gain\":0.010221191137423641,\"rsi_avg_loss\":0.0010131002854430857,\"rsi\":91},{\"period_id\":\"120m210158\",\"size\":\"120m\",\"time\":1513137600000,\"open\":0.28467,\"high\":0.319,\"low\":0.28201,\"close\":0.3084,\"volume\":1939410.0138247905,\"close_time\":1513144797985,\"vwap\":0.3111542688257597,\"ema1\":0.2303156949712766,\"sma1\":0.2060463611111111,\"sma2\":0.2061830833333334,\"rsi_avg_gain\":0.006883590455686998,\"rsi_avg_loss\":0.0010910310766310155,\"rsi\":86},{\"period_id\":\"120m210157\",\"size\":\"120m\",\"time\":1513130400000,\"open\":0.2981,\"high\":0.3,\"low\":0.27671,\"close\":0.28923,\"volume\":1470804.7478552302,\"close_time\":1513137551841,\"vwap\":0.282191762577511,\"ema1\":0.22493057048653706,\"sma1\":0.20516673148148146,\"sma2\":0.20477208333333338,\"rsi_avg_gain\":0.005938482029201381,\"rsi_avg_loss\":0.0011749565440641705,\"rsi\":83},{\"period_id\":\"120m210156\",\"size\":\"120m\",\"time\":1513123200000,\"open\":0.27601,\"high\":0.29897,\"low\":0.27,\"close\":0.298,\"volume\":3115674.8552143956,\"close_time\":1513130393652,\"vwap\":0.2987413444534714,\"ema1\":0.22049612707181548,\"sma1\":0.20430552777777777,\"sma2\":0.20283875000000007,\"rsi_avg_gain\":0.006395288339139949,\"rsi_avg_loss\":0.0005907224320691066,\"rsi\":92},{\"period_id\":\"120m210155\",\"size\":\"120m\",\"time\":1513116000000,\"open\":0.272,\"high\":0.32956,\"low\":0.272,\"close\":0.27601,\"volume\":15006128.73051956,\"close_time\":1513123194998,\"vwap\":0.2770924299981449,\"ema1\":0.2151510323871131,\"sma1\":0.2032051574074074,\"sma2\":0.20133858333333338,\"rsi_avg_gain\":0.005195695134458405,\"rsi_avg_loss\":0.0006361626191513457,\"rsi\":89},{\"period_id\":\"120m210154\",\"size\":\"120m\",\"time\":1513108800000,\"open\":0.22885,\"high\":0.271965,\"low\":0.2287,\"close\":0.271965,\"volume\":13060193.335544836,\"close_time\":1513115999358,\"vwap\":0.269998928348188,\"ema1\":0.210953862206914,\"sma1\":0.20263140740740743,\"sma2\":0.19982250000000004,\"rsi_avg_gain\":0.005284210144801362,\"rsi_avg_loss\":0.0006850982052399108,\"rsi\":89},{\"period_id\":\"120m210153\",\"size\":\"120m\",\"time\":1513101600000,\"open\":0.226,\"high\":0.22885,\"low\":0.222,\"close\":0.22885,\"volume\":2796097.9907069877,\"close_time\":1513108799425,\"vwap\":0.22882736660691183,\"ema1\":0.20674619753152876,\"sma1\":0.20245687037037038,\"sma2\":0.19904166666666667,\"rsi_avg_gain\":0.0023741493867091576,\"rsi_avg_loss\":0.0007377980671814424,\"rsi\":76},{\"period_id\":\"120m210152\",\"size\":\"120m\",\"time\":1513094400000,\"open\":0.21948,\"high\":0.228,\"low\":0.2161,\"close\":0.22503,\"volume\":6439607.943355674,\"close_time\":1513101587721,\"vwap\":0.22575782212771792,\"ema1\":0.20522179736128937,\"sma1\":0.2023068703703704,\"sma2\":0.19840783333333334,\"rsi_avg_gain\":0.002262930108763709,\"rsi_avg_loss\":0.0007945517646569379,\"rsi\":74},{\"period_id\":\"120m210151\",\"size\":\"120m\",\"time\":1513087200000,\"open\":0.2171,\"high\":0.2199,\"low\":0.21,\"close\":0.21989,\"volume\":2382252.81933436,\"close_time\":1513094394487,\"vwap\":0.21938512380369968,\"ema1\":0.20385571442068864,\"sma1\":0.20224298148148154,\"sma2\":0.19788466666666665,\"rsi_avg_gain\":0.002041617040207071,\"rsi_avg_loss\":0.0008556711311690101,\"rsi\":70},{\"period_id\":\"120m210150\",\"size\":\"120m\",\"time\":1513080000000,\"open\":0.2199,\"high\":0.22,\"low\":0.21203,\"close\":0.2171,\"volume\":2916612.944391042,\"close_time\":1513087188989,\"vwap\":0.21688631713113152,\"ema1\":0.20274990162211545,\"sma1\":0.20214483333333336,\"sma2\":0.19739133333333334,\"rsi_avg_gain\":0.0019840491202229985,\"rsi_avg_loss\":0.0009214919874127801,\"rsi\":68},{\"period_id\":\"120m210149\",\"size\":\"120m\",\"time\":1513072800000,\"open\":0.21318,\"high\":0.2199,\"low\":0.21048,\"close\":0.2199,\"volume\":2803692.7908667373,\"close_time\":1513079996977,\"vwap\":0.21962677965707444,\"ema1\":0.20176023966501996,\"sma1\":0.20203464814814817,\"sma2\":0.19681183333333332,\"rsi_avg_gain\":0.0021366682833170755,\"rsi_avg_loss\":0.0007769913710599151,\"rsi\":73},{\"period_id\":\"120m210148\",\"size\":\"120m\",\"time\":1513065600000,\"open\":0.20682,\"high\":0.2147,\"low\":0.20681,\"close\":0.2139,\"volume\":2409213.2365118363,\"close_time\":1513072781584,\"vwap\":0.21318370149360236,\"ema1\":0.2005092217108834,\"sma1\":0.20197261111111112,\"sma2\":0.19634699999999997,\"rsi_avg_gain\":0.0018394889204953115,\"rsi_avg_loss\":0.000836759938064524,\"rsi\":69},{\"period_id\":\"120m210147\",\"size\":\"120m\",\"time\":1513058400000,\"open\":0.209,\"high\":0.2099,\"low\":0.205,\"close\":0.20682,\"volume\":761639.33327307,\"close_time\":1513065594627,\"vwap\":0.20814185315868608,\"ema1\":0.19958571975990982,\"sma1\":0.201949,\"sma2\":0.1961045,\"rsi_avg_gain\":0.0014363726836103352,\"rsi_avg_loss\":0.0009011260871464106,\"rsi\":61},{\"period_id\":\"120m210146\",\"size\":\"120m\",\"time\":1513051200000,\"open\":0.2013,\"high\":0.21124,\"low\":0.19611,\"close\":0.20898,\"volume\":2402623.3937815027,\"close_time\":1513058363795,\"vwap\":0.20986584977647635,\"ema1\":0.19908680388128291,\"sma1\":0.20189224074074075,\"sma2\":0.19572866666666663,\"rsi_avg_gain\":0.0015468628900418995,\"rsi_avg_loss\":0.0008042896323115195,\"rsi\":66},{\"period_id\":\"120m210145\",\"size\":\"120m\",\"time\":1513044000000,\"open\":0.20056,\"high\":0.2015,\"low\":0.19804,\"close\":0.20129,\"volume\":182878.24229903996,\"close_time\":1513051003700,\"vwap\":0.19946305108430804,\"ema1\":0.19840451449378518,\"sma1\":0.20193853703703699,\"sma2\":0.19548216666666668,\"rsi_avg_gain\":0.001074313881583584,\"rsi_avg_loss\":0.0008661580655662517,\"rsi\":55},{\"period_id\":\"120m210144\",\"size\":\"120m\",\"time\":1513036800000,\"open\":0.2018,\"high\":0.203,\"low\":0.1961,\"close\":0.19999,\"volume\":1030371.8747069496,\"close_time\":1513043937932,\"vwap\":0.19996765987872228,\"ema1\":0.19820551549335658,\"sma1\":0.2019912222222222,\"sma2\":0.19529933333333332,\"rsi_avg_gain\":0.0010569534109361677,\"rsi_avg_loss\":0.0009327856090713479,\"rsi\":53},{\"period_id\":\"120m210143\",\"size\":\"120m\",\"time\":1513029600000,\"open\":0.20101,\"high\":0.202,\"low\":0.2,\"close\":0.2018,\"volume\":1521322.558584841,\"close_time\":1513036796088,\"vwap\":0.2015023425645459,\"ema1\":0.1980824475963467,\"sma1\":0.20204677777777771,\"sma2\":0.19518599999999997,\"rsi_avg_gain\":0.0011382575194697191,\"rsi_avg_loss\":0.0008653075789999126,\"rsi\":57},{\"period_id\":\"120m210142\",\"size\":\"120m\",\"time\":1513022400000,\"open\":0.202,\"high\":0.202,\"low\":0.2,\"close\":0.20119,\"volume\":978930.4729250503,\"close_time\":1513029582354,\"vwap\":0.20166288987494163,\"ema1\":0.1978260646719568,\"sma1\":0.20209788888888885,\"sma2\":0.19512699999999997,\"rsi_avg_gain\":0.0011788927132750822,\"rsi_avg_loss\":0.0009318697004614445,\"rsi\":56},{\"period_id\":\"120m210141\",\"size\":\"120m\",\"time\":1513015200000,\"open\":0.203,\"high\":0.20773,\"low\":0.20001,\"close\":0.202,\"volume\":1492537.8041972315,\"close_time\":1513022380076,\"vwap\":0.20120593611437665,\"ema1\":0.19759406913209174,\"sma1\":0.20210038888888884,\"sma2\":0.1950686666666666,\"rsi_avg_gain\":0.0012695767681423962,\"rsi_avg_loss\":0.0009412442928046321,\"rsi\":57},{\"period_id\":\"120m210140\",\"size\":\"120m\",\"time\":1513008000000,\"open\":0.20474,\"high\":0.206,\"low\":0.2021,\"close\":0.204,\"volume\":1342877.567555539,\"close_time\":1513015199565,\"vwap\":0.2031483682556018,\"ema1\":0.19729021183085668,\"sma1\":0.20212631481481477,\"sma2\":0.19500033333333328,\"rsi_avg_gain\":0.001367236519537965,\"rsi_avg_loss\":0.0008598015460972981,\"rsi\":61},{\"period_id\":\"120m210139\",\"size\":\"120m\",\"time\":1513000800000,\"open\":0.20238,\"high\":0.2049,\"low\":0.20083,\"close\":0.20486,\"volume\":1091793.7951348608,\"close_time\":1513007991071,\"vwap\":0.2043372997767047,\"ema1\":0.19682746781919164,\"sma1\":0.20216798148148143,\"sma2\":0.1948854999999999,\"rsi_avg_gain\":0.0014724085595024237,\"rsi_avg_loss\":0.0008597862804124749,\"rsi\":63},{\"period_id\":\"120m210138\",\"size\":\"120m\",\"time\":1512993600000,\"open\":0.20099,\"high\":0.205,\"low\":0.2003984,\"close\":0.20214,\"volume\":2245705.2988893474,\"close_time\":1513000786065,\"vwap\":0.2014267766702875,\"ema1\":0.19627350008258415,\"sma1\":0.20222353703703697,\"sma2\":0.1948279999999999,\"rsi_avg_gain\":0.0013764399871564563,\"rsi_avg_loss\":0.0009259236865980498,\"rsi\":60},{\"period_id\":\"120m210137\",\"size\":\"120m\",\"time\":1512986400000,\"open\":0.20054,\"high\":0.2025,\"low\":0.1996,\"close\":0.201,\"volume\":1180345.4121488596,\"close_time\":1512993538146,\"vwap\":0.20094293796157614,\"ema1\":0.19586891388138306,\"sma1\":0.20230224074074066,\"sma2\":0.1947621666666666,\"rsi_avg_gain\":0.0013946276784761857,\"rsi_avg_loss\":0.0009971485855671306,\"rsi\":58},{\"period_id\":\"120m210136\",\"size\":\"120m\",\"time\":1512979200000,\"open\":0.19841,\"high\":0.202,\"low\":0.19696,\"close\":0.2012,\"volume\":1455140.9476323111,\"close_time\":1512986398978,\"vwap\":0.20120000000000002,\"ema1\":0.19551504587320256,\"sma1\":0.20237622222222212,\"sma2\":0.1947051666666666,\"rsi_avg_gain\":0.0015019067306666614,\"rsi_avg_loss\":0.0010584677075338347,\"rsi\":59},{\"period_id\":\"120m210135\",\"size\":\"120m\",\"time\":1512972000000,\"open\":0.1955,\"high\":0.199,\"low\":0.19447,\"close\":0.19841,\"volume\":600052.8410154001,\"close_time\":1512978995397,\"vwap\":0.1984199963323115,\"ema1\":0.19512298007135448,\"sma1\":0.20247418518518506,\"sma2\":0.1947016666666666,\"rsi_avg_gain\":0.0014028226330256362,\"rsi_avg_loss\":0.0011398883004210528,\"rsi\":55},{\"period_id\":\"120m210134\",\"size\":\"120m\",\"time\":1512964800000,\"open\":0.19194,\"high\":0.19676,\"low\":0.19102,\"close\":0.19601,\"volume\":539611.00519656,\"close_time\":1512971904794,\"vwap\":0.1956049441844182,\"ema1\":0.1948962890417927,\"sma1\":0.2025927037037036,\"sma2\":0.1948064999999999,\"rsi_avg_gain\":0.001326116681719915,\"rsi_avg_loss\":0.0012275720158380567,\"rsi\":52},{\"period_id\":\"120m210133\",\"size\":\"120m\",\"time\":1512957600000,\"open\":0.1897,\"high\":0.19214,\"low\":0.1895,\"close\":0.19205,\"volume\":441306.56720423984,\"close_time\":1512964362686,\"vwap\":0.19207665341135022,\"ema1\":0.19481948138950256,\"sma1\":0.20278214814814804,\"sma2\":0.19496699999999995,\"rsi_avg_gain\":0.0011235102726214474,\"rsi_avg_loss\":0.0013220006324409842,\"rsi\":46},{\"period_id\":\"120m210132\",\"size\":\"120m\",\"time\":1512950400000,\"open\":0.18952,\"high\":0.19378,\"low\":0.18952,\"close\":0.18971,\"volume\":431192.4742363398,\"close_time\":1512957565944,\"vwap\":0.19019582475324606,\"ema1\":0.19501048010601998,\"sma1\":0.2029786296296295,\"sma2\":0.19519916666666662,\"rsi_avg_gain\":0.0010299341397461733,\"rsi_avg_loss\":0.0014236929887825984,\"rsi\":42},{\"period_id\":\"120m210131\",\"size\":\"120m\",\"time\":1512943200000,\"open\":0.19185,\"high\":0.19429,\"low\":0.18951,\"close\":0.18952,\"volume\":784356.8331573796,\"close_time\":1512950356364,\"vwap\":0.19009976870568687,\"ema1\":0.1953760304581593,\"sma1\":0.20314594444444437,\"sma2\":0.1954546666666666,\"rsi_avg_gain\":0.001094544458188187,\"rsi_avg_loss\":0.0015332078340735676,\"rsi\":42},{\"period_id\":\"120m210130\",\"size\":\"120m\",\"time\":1512936000000,\"open\":0.1948,\"high\":0.1949,\"low\":0.19,\"close\":0.19004,\"volume\":1233056.1801976203,\"close_time\":1512943196487,\"vwap\":0.19064164569003467,\"ema1\":0.19577989462768752,\"sma1\":0.20328575925925915,\"sma2\":0.19568766666666662,\"rsi_avg_gain\":0.0011787401857411247,\"rsi_avg_loss\":0.0016111468982330734,\"rsi\":42},{\"period_id\":\"120m210129\",\"size\":\"120m\",\"time\":1512928800000,\"open\":0.1935,\"high\":0.19676,\"low\":0.19301,\"close\":0.19439,\"volume\":387426.0634739798,\"close_time\":1512935995196,\"vwap\":0.1942478162109847,\"ema1\":0.196175749429597,\"sma1\":0.20342687037037027,\"sma2\":0.19583466666666666,\"rsi_avg_gain\":0.0012694125077212111,\"rsi_avg_loss\":0.0014004658904048465,\"rsi\":48},{\"period_id\":\"120m210128\",\"size\":\"120m\",\"time\":1512921600000,\"open\":0.1925,\"high\":0.19867,\"low\":0.192,\"close\":0.1935,\"volume\":746355.7882153098,\"close_time\":1512928784644,\"vwap\":0.1935609424444953,\"ema1\":0.19629890456267265,\"sma1\":0.2035315925925925,\"sma2\":0.19602466666666665,\"rsi_avg_gain\":0.001298598085238227,\"rsi_avg_loss\":0.0015081940358206037,\"rsi\":46},{\"period_id\":\"120m210127\",\"size\":\"120m\",\"time\":1512914400000,\"open\":0.19889,\"high\":0.2,\"low\":0.192,\"close\":0.1925,\"volume\":1304227.7168578205,\"close_time\":1512921590443,\"vwap\":0.19349429219127742,\"ema1\":0.19649193246354663,\"sma1\":0.20368807407407397,\"sma2\":0.19624249999999996,\"rsi_avg_gain\":0.0013215671687180906,\"rsi_avg_loss\":0.0016242089616529576,\"rsi\":45},{\"period_id\":\"120m210126\",\"size\":\"120m\",\"time\":1512907200000,\"open\":0.19353,\"high\":0.19949,\"low\":0.1917,\"close\":0.19868,\"volume\":650525.0708087999,\"close_time\":1512914393147,\"vwap\":0.19855935848161216,\"ema1\":0.19676723815068778,\"sma1\":0.203757611111111,\"sma2\":0.19633949999999994,\"rsi_avg_gain\":0.0014232261816964052,\"rsi_avg_loss\":0.0012737634971647243,\"rsi\":53},{\"period_id\":\"120m210125\",\"size\":\"120m\",\"time\":1512900000000,\"open\":0.19333,\"high\":0.19902,\"low\":0.19,\"close\":0.19385,\"volume\":978565.5069178501,\"close_time\":1512907196740,\"vwap\":0.19313685612750262,\"ema1\":0.19663532354039037,\"sma1\":0.20378575925925915,\"sma2\":0.19652599999999995,\"rsi_avg_gain\":0.0011611666572115132,\"rsi_avg_loss\":0.0013717453046389338,\"rsi\":46},{\"period_id\":\"120m210124\",\"size\":\"120m\",\"time\":1512892800000,\"open\":0.19131,\"high\":0.194,\"low\":0.19,\"close\":0.19341,\"volume\":531661.3797847299,\"close_time\":1512899982936,\"vwap\":0.19303166422456924,\"ema1\":0.19682741481903798,\"sma1\":0.20383964814814806,\"sma2\":0.19673416666666668,\"rsi_avg_gain\":0.0012166410154585531,\"rsi_avg_loss\":0.001477264174226544,\"rsi\":45},{\"period_id\":\"120m210122\",\"size\":\"120m\",\"time\":1512878400000,\"open\":0.191,\"high\":0.19313,\"low\":0.1895,\"close\":0.19301,\"volume\":391477.15581255,\"close_time\":1512882237255,\"vwap\":0.19058855824298188,\"ema1\":0.19706309859966128,\"sma1\":0.2039214999999999,\"sma2\":0.19693149999999998,\"rsi_avg_gain\":0.00127945955510921,\"rsi_avg_loss\":0.0015908998799362784,\"rsi\":45},{\"period_id\":\"120m210121\",\"size\":\"120m\",\"time\":1512871200000,\"open\":0.195,\"high\":0.19843,\"low\":0.191,\"close\":0.191,\"volume\":822354.6339335999,\"close_time\":1512878389037,\"vwap\":0.19119700515420232,\"ema1\":0.19734262264101723,\"sma1\":0.20394529629629618,\"sma2\":0.19716733333333333,\"rsi_avg_gain\":0.0012232641362714583,\"rsi_avg_loss\":0.0017132767937775306,\"rsi\":42},{\"period_id\":\"120m210120\",\"size\":\"120m\",\"time\":1512864000000,\"open\":0.19926,\"high\":0.19928,\"low\":0.195,\"close\":0.195,\"volume\":575411.43770943,\"close_time\":1512871187661,\"vwap\":0.1950330198733138,\"ema1\":0.19778004489212186,\"sma1\":0.20398992592592582,\"sma2\":0.1973611666666667,\"rsi_avg_gain\":0.001317361377523109,\"rsi_avg_loss\":0.0015373750086834941,\"rsi\":46},{\"period_id\":\"120m210119\",\"size\":\"120m\",\"time\":1512856800000,\"open\":0.2,\"high\":0.20254,\"low\":0.19733,\"close\":0.19929,\"volume\":680314.7565415404,\"close_time\":1512863991018,\"vwap\":0.19851328684491423,\"ema1\":0.1979717721260613,\"sma1\":0.20402974074074068,\"sma2\":0.1975107666666667,\"rsi_avg_gain\":0.0014186968681018097,\"rsi_avg_loss\":0.0013256346247360717,\"rsi\":52},{\"period_id\":\"120m210118\",\"size\":\"120m\",\"time\":1512849600000,\"open\":0.19851,\"high\":0.2,\"low\":0.1953,\"close\":0.2,\"volume\":352961.11425362,\"close_time\":1512856793108,\"vwap\":0.1999366864432818,\"ema1\":0.19788085985889312,\"sma1\":0.2040714074074073,\"sma2\":0.19762693333333337,\"rsi_avg_gain\":0.0015278273964173337,\"rsi_avg_loss\":0.001372991134331153,\"rsi\":53},{\"period_id\":\"120m210117\",\"size\":\"120m\",\"time\":1512842400000,\"open\":0.19541,\"high\":0.19867,\"low\":0.19486,\"close\":0.19799,\"volume\":926232.5305575604,\"close_time\":1512849579268,\"vwap\":0.19683981250896715,\"ema1\":0.19773471226295472,\"sma1\":0.20412631481481475,\"sma2\":0.19777710000000004,\"rsi_avg_gain\":0.001490737196141743,\"rsi_avg_loss\":0.001478605836972011,\"rsi\":50},{\"period_id\":\"120m210116\",\"size\":\"120m\",\"time\":1512835200000,\"open\":0.2025,\"high\":0.2027,\"low\":0.19541,\"close\":0.19541,\"volume\":641413.0257922799,\"close_time\":1512842398360,\"vwap\":0.19598168588773135,\"ema1\":0.19771710621212402,\"sma1\":0.20409103703703693,\"sma2\":0.1979792666666667,\"rsi_avg_gain\":0.001406947749691108,\"rsi_avg_loss\":0.0015923447475083194,\"rsi\":47},{\"period_id\":\"120m210115\",\"size\":\"120m\",\"time\":1512828000000,\"open\":0.2029,\"high\":0.203,\"low\":0.19926,\"close\":0.2025,\"volume\":759955.0663505401,\"close_time\":1512835181045,\"vwap\":0.20248585787937878,\"ema1\":0.19787621698537394,\"sma1\":0.20402622222222214,\"sma2\":0.19804026666666671,\"rsi_avg_gain\":0.001515174499667347,\"rsi_avg_loss\":0.001169448189624343,\"rsi\":56},{\"period_id\":\"120m210114\",\"size\":\"120m\",\"time\":1512820800000,\"open\":0.19915,\"high\":0.203,\"low\":0.1964,\"close\":0.20288,\"volume\":1060196.08788046,\"close_time\":1512827997733,\"vwap\":0.2027712213346322,\"ema1\":0.19755733539815834,\"sma1\":0.2040447407407406,\"sma2\":0.19809226666666674,\"rsi_avg_gain\":0.0016317263842571428,\"rsi_avg_loss\":0.0012301749734416009,\"rsi\":57},{\"period_id\":\"120m210113\",\"size\":\"120m\",\"time\":1512813600000,\"open\":0.19899,\"high\":0.2,\"low\":0.196,\"close\":0.199,\"volume\":1697599.1494401302,\"close_time\":1512820796071,\"vwap\":0.199,\"ema1\":0.19719025508078994,\"sma1\":0.20412427777777767,\"sma2\":0.1982202666666667,\"rsi_avg_gain\":0.001458782259969231,\"rsi_avg_loss\":0.0013248038175524934,\"rsi\":52},{\"period_id\":\"120m210112\",\"size\":\"120m\",\"time\":1512806400000,\"open\":0.2015,\"high\":0.20181,\"low\":0.196,\"close\":0.198,\"volume\":1049080.849649,\"close_time\":1512813598514,\"vwap\":0.1986564670241468,\"ema1\":0.19706544508636165,\"sma1\":0.20420474074074063,\"sma2\":0.1983702666666667,\"rsi_avg_gain\":0.0014940732030437874,\"rsi_avg_loss\":0.0014267118035180698,\"rsi\":51},{\"period_id\":\"120m210111\",\"size\":\"120m\",\"time\":1512799200000,\"open\":0.201,\"high\":0.203,\"low\":0.19911,\"close\":0.19931,\"volume\":611834.19321072,\"close_time\":1512806227310,\"vwap\":0.19972209079419734,\"ema1\":0.1970009930233521,\"sma1\":0.20425103703703693,\"sma2\":0.1985104333333334,\"rsi_avg_gain\":0.0016090019109702325,\"rsi_avg_loss\":0.001435689634557923,\"rsi\":53},{\"period_id\":\"120m210110\",\"size\":\"120m\",\"time\":1512792000000,\"open\":0.20095,\"high\":0.20189,\"low\":0.19933,\"close\":0.2018,\"volume\":327272.42923343997,\"close_time\":1512799199401,\"vwap\":0.20165125093864353,\"ema1\":0.19684175116289362,\"sma1\":0.20433437037037028,\"sma2\":0.19856810000000003,\"rsi_avg_gain\":0.0017327712887371734,\"rsi_avg_loss\":0.001354588837216223,\"rsi\":56},{\"period_id\":\"120m210109\",\"size\":\"120m\",\"time\":1512784800000,\"open\":0.199,\"high\":0.20181,\"low\":0.199,\"close\":0.20148,\"volume\":97245.56367083998,\"close_time\":1512791938779,\"vwap\":0.20084528241306196,\"ema1\":0.1964998029672311,\"sma1\":0.20441020370370364,\"sma2\":0.19864193333333333,\"rsi_avg_gain\":0.0018414460032554164,\"rsi_avg_loss\":0.0014587879785405479,\"rsi\":56},{\"period_id\":\"120m210108\",\"size\":\"120m\",\"time\":1512777600000,\"open\":0.2,\"high\":0.20181,\"low\":0.19801,\"close\":0.19981,\"volume\":403268.47447363014,\"close_time\":1512784528415,\"vwap\":0.19976536151046154,\"ema1\":0.1961563411029022,\"sma1\":0.2044859444444444,\"sma2\":0.19872843333333334,\"rsi_avg_gain\":0.0018546341573519864,\"rsi_avg_loss\":0.0015710024384282821,\"rsi\":54},{\"period_id\":\"120m210107\",\"size\":\"120m\",\"time\":1512770400000,\"open\":0.19995,\"high\":0.20194,\"low\":0.19811,\"close\":0.2,\"volume\":1030570.62235018,\"close_time\":1512777589000,\"vwap\":0.20009906273751787,\"ema1\":0.19590436462724028,\"sma1\":0.20456057407407402,\"sma2\":0.19878193333333335,\"rsi_avg_gain\":0.001997298323302139,\"rsi_avg_loss\":0.001677233395230456,\"rsi\":54},{\"period_id\":\"120m210106\",\"size\":\"120m\",\"time\":1512763200000,\"open\":0.20056,\"high\":0.2029,\"low\":0.19882,\"close\":0.20195,\"volume\":687992.28091057,\"close_time\":1512770355398,\"vwap\":0.2004527717368329,\"ema1\":0.1956219070153258,\"sma1\":0.2046263148148148,\"sma2\":0.19878443333333337,\"rsi_avg_gain\":0.002150936655863842,\"rsi_avg_loss\":0.0016562513487097233,\"rsi\":56},{\"period_id\":\"120m210105\",\"size\":\"120m\",\"time\":1512756000000,\"open\":0.2,\"high\":0.204,\"low\":0.199,\"close\":0.20292,\"volume\":1842953.0237013297,\"close_time\":1512763170809,\"vwap\":0.20144342474640492,\"ema1\":0.19518548680948622,\"sma1\":0.20477048148148147,\"sma2\":0.1988857666666667,\"rsi_avg_gain\":0.002316393321699522,\"rsi_avg_loss\":0.0017090399139950867,\"rsi\":58},{\"period_id\":\"120m210104\",\"size\":\"120m\",\"time\":1512748800000,\"open\":0.196,\"high\":0.20086,\"low\":0.196,\"close\":0.2,\"volume\":1102251.6171724405,\"close_time\":1512755976994,\"vwap\":0.19991247530974532,\"ema1\":0.19465207210669216,\"sma1\":0.20497548148148148,\"sma2\":0.19904876666666674,\"rsi_avg_gain\":0.0022699620387533334,\"rsi_avg_loss\":0.0018405045227639395,\"rsi\":55},{\"period_id\":\"120m210103\",\"size\":\"120m\",\"time\":1512741600000,\"open\":0.20001,\"high\":0.20182,\"low\":0.19001,\"close\":0.196,\"volume\":1809689.6471748506,\"close_time\":1512748783413,\"vwap\":0.19676927880818923,\"ema1\":0.1942832494933606,\"sma1\":0.2052364074074074,\"sma2\":0.1992737666666667,\"rsi_avg_gain\":0.0021368821955805124,\"rsi_avg_loss\":0.001982081793745781,\"rsi\":52},{\"period_id\":\"120m210102\",\"size\":\"120m\",\"time\":1512734400000,\"open\":0.19362,\"high\":0.20199,\"low\":0.193,\"close\":0.20182,\"volume\":1979923.9914177093,\"close_time\":1512741577584,\"vwap\":0.20078000788796294,\"ema1\":0.1941648529066958,\"sma1\":0.20548446296296297,\"sma2\":0.19942676666666675,\"rsi_avg_gain\":0.0023012577490867056,\"rsi_avg_loss\":0.0016868573163416108,\"rsi\":58},{\"period_id\":\"120m210101\",\"size\":\"120m\",\"time\":1512727200000,\"open\":0.1931,\"high\":0.19999,\"low\":0.19,\"close\":0.194,\"volume\":1792191.8218561397,\"close_time\":1512734388888,\"vwap\":0.19507290431897675,\"ema1\":0.19363691172784725,\"sma1\":0.2057149259259259,\"sma2\":0.1996746,\"rsi_avg_gain\":0.0018767391144010677,\"rsi_avg_loss\":0.0018166155714448118,\"rsi\":51},{\"period_id\":\"120m210100\",\"size\":\"120m\",\"time\":1512720000000,\"open\":0.19009,\"high\":0.2,\"low\":0.18955,\"close\":0.19301,\"volume\":1800915.4518014311,\"close_time\":1512727186604,\"vwap\":0.19265661635751802,\"ema1\":0.19361187115735395,\"sma1\":0.20594529629629627,\"sma2\":0.1999061,\"rsi_avg_gain\":0.0019449498155088409,\"rsi_avg_loss\":0.0019563552307867204,\"rsi\":50},{\"period_id\":\"120m210099\",\"size\":\"120m\",\"time\":1512712800000,\"open\":0.191,\"high\":0.19649,\"low\":0.18501,\"close\":0.19128,\"volume\":1533508.5199854106,\"close_time\":1512719994835,\"vwap\":0.1893645540183751,\"ema1\":0.19365337951303355,\"sma1\":0.2061701111111111,\"sma2\":0.20016993333333336,\"rsi_avg_gain\":0.00196148441670183,\"rsi_avg_loss\":0.0021068440946933912,\"rsi\":48},{\"period_id\":\"120m210098\",\"size\":\"120m\",\"time\":1512705600000,\"open\":0.203,\"high\":0.20687,\"low\":0.19021,\"close\":0.19131,\"volume\":824094.35925791,\"close_time\":1512712790789,\"vwap\":0.1917653459444912,\"ema1\":0.19381706085876,\"sma1\":0.20631177777777776,\"sma2\":0.20040060000000004,\"rsi_avg_gain\":0.002112367833371202,\"rsi_avg_loss\":0.002266601332746729,\"rsi\":48},{\"period_id\":\"120m210097\",\"size\":\"120m\",\"time\":1512698400000,\"open\":0.20457,\"high\":0.208,\"low\":0.19155,\"close\":0.205,\"volume\":1802558.6234344696,\"close_time\":1512705589882,\"vwap\":0.20338526378011557,\"ema1\":0.19398996160763998,\"sma1\":0.20649585185185182,\"sma2\":0.20039776666666667,\"rsi_avg_gain\":0.0022748576667074483,\"rsi_avg_loss\":0.0013878783583426326,\"rsi\":62},{\"period_id\":\"120m210096\",\"size\":\"120m\",\"time\":1512691200000,\"open\":0.18264,\"high\":0.21,\"low\":0.18,\"close\":0.20457,\"volume\":5069064.234255623,\"close_time\":1512698364848,\"vwap\":0.20413709171045932,\"ema1\":0.19323064861506342,\"sma1\":0.2067273333333333,\"sma2\":0.20039026666666665,\"rsi_avg_gain\":0.0024167697949157145,\"rsi_avg_loss\":0.0014946382320612968,\"rsi\":62},{\"period_id\":\"120m210095\",\"size\":\"120m\",\"time\":1512684000000,\"open\":0.18631,\"high\":0.18699,\"low\":0.18,\"close\":0.182,\"volume\":2887392.7136900085,\"close_time\":1512691099048,\"vwap\":0.18189399556045138,\"ema1\":0.19244862438161953,\"sma1\":0.20717187037037035,\"sma2\":0.20079026666666666,\"rsi_avg_gain\":0.0008665213176015379,\"rsi_avg_loss\":0.0016096104037583196,\"rsi\":35},{\"period_id\":\"120m210094\",\"size\":\"120m\",\"time\":1512676800000,\"open\":0.18049,\"high\":0.186,\"low\":0.18007,\"close\":0.186,\"volume\":1397581.4726467493,\"close_time\":1512683999964,\"vwap\":0.18445865456725352,\"ema1\":0.1931692191665588,\"sma1\":0.2075561296296296,\"sma2\":0.20114843333333327,\"rsi_avg_gain\":0.000933176803570887,\"rsi_avg_loss\":0.0014257342809704976,\"rsi\":40},{\"period_id\":\"120m210093\",\"size\":\"120m\",\"time\":1512669600000,\"open\":0.182,\"high\":0.18889,\"low\":0.18004,\"close\":0.181,\"volume\":1519254.1145062689,\"close_time\":1512676772537,\"vwap\":0.18138266560013777,\"ema1\":0.19366364807459735,\"sma1\":0.2078807592592592,\"sma2\":0.20157693333333332,\"rsi_avg_gain\":0.0006203442499994165,\"rsi_avg_loss\":0.001535406148737459,\"rsi\":29},{\"period_id\":\"120m210092\",\"size\":\"120m\",\"time\":1512662400000,\"open\":0.18434,\"high\":0.18959,\"low\":0.18,\"close\":0.182,\"volume\":1880239.514088659,\"close_time\":1512669591339,\"vwap\":0.18195534515379677,\"ema1\":0.19453700311422475,\"sma1\":0.208233537037037,\"sma2\":0.20199393333333326,\"rsi_avg_gain\":0.0006680630384609101,\"rsi_avg_loss\":0.0015765912371018787,\"rsi\":30},{\"period_id\":\"120m210091\",\"size\":\"120m\",\"time\":1512655200000,\"open\":0.1885,\"high\":0.18995,\"low\":0.18301,\"close\":0.187,\"volume\":1319921.42306792,\"close_time\":1512662369202,\"vwap\":0.18669182360062084,\"ema1\":0.19540162401865405,\"sma1\":0.20853307407407404,\"sma2\":0.20230944066666665,\"rsi_avg_gain\":0.0007194525029579033,\"rsi_avg_loss\":0.0013132521014943305,\"rsi\":35},{\"period_id\":\"120m210090\",\"size\":\"120m\",\"time\":1512648000000,\"open\":0.1875,\"high\":0.19,\"low\":0.1875,\"close\":0.1885,\"volume\":1411372.0180265396,\"close_time\":1512655194555,\"vwap\":0.18861353180050672,\"ema1\":0.19598104636476812,\"sma1\":0.2088013148148148,\"sma2\":0.2026461073333333,\"rsi_avg_gain\":0.0007747950031854342,\"rsi_avg_loss\":0.0012988868785323558,\"rsi\":37},{\"period_id\":\"120m210089\",\"size\":\"120m\",\"time\":1512640800000,\"open\":0.18521,\"high\":0.18979,\"low\":0.181,\"close\":0.1875,\"volume\":2092077.3675429292,\"close_time\":1512647973104,\"vwap\":0.18778710531297813,\"ema1\":0.1964969805968211,\"sma1\":0.20908057407407407,\"sma2\":0.20298944066666663,\"rsi_avg_gain\":0.000757471541892006,\"rsi_avg_loss\":0.0013988012538040755,\"rsi\":35},{\"period_id\":\"120m210088\",\"size\":\"120m\",\"time\":1512633600000,\"open\":0.1872,\"high\":0.18979,\"low\":0.18513,\"close\":0.18513,\"volume\":1129966.4392239994,\"close_time\":1512640768505,\"vwap\":0.18596171032030123,\"ema1\":0.19711746201729152,\"sma1\":0.20934177777777777,\"sma2\":0.20340394066666662,\"rsi_avg_gain\":0.0006334308912683133,\"rsi_avg_loss\":0.0015064013502505429,\"rsi\":30},{\"period_id\":\"120m210087\",\"size\":\"120m\",\"time\":1512626400000,\"open\":0.19225,\"high\":0.19231,\"low\":0.1852,\"close\":0.18601,\"volume\":1170682.04228123,\"close_time\":1512633583210,\"vwap\":0.18601000000000004,\"ema1\":0.19794418353572543,\"sma1\":0.20957705555555553,\"sma2\":0.20378977399999998,\"rsi_avg_gain\":0.0006821563444427989,\"rsi_avg_loss\":0.001554586069500583,\"rsi\":30},{\"period_id\":\"120m210086\",\"size\":\"120m\",\"time\":1512619200000,\"open\":0.1855,\"high\":0.19288,\"low\":0.18373,\"close\":0.19227,\"volume\":312959.47167122003,\"close_time\":1512626260601,\"vwap\":0.19071445930508396,\"ema1\":0.1987672306761203,\"sma1\":0.20980964814814815,\"sma2\":0.2040286073333333,\"rsi_avg_gain\":0.0007346299093999373,\"rsi_avg_loss\":0.0011926311517698597,\"rsi\":38},{\"period_id\":\"120m210085\",\"size\":\"120m\",\"time\":1512612000000,\"open\":0.18694,\"high\":0.19286,\"low\":0.18393,\"close\":0.18643,\"volume\":1313166.93189536,\"close_time\":1512619169443,\"vwap\":0.1861749296330021,\"ema1\":0.19921531555033548,\"sma1\":0.21004325925925926,\"sma2\":0.20440660733333332,\"rsi_avg_gain\":0.0003419091331999337,\"rsi_avg_loss\":0.0012843720095983104,\"rsi\":21},{\"period_id\":\"120m210084\",\"size\":\"120m\",\"time\":1512604800000,\"open\":0.18902,\"high\":0.1927,\"low\":0.1865,\"close\":0.1865,\"volume\":1847827.2706492287,\"close_time\":1512611942664,\"vwap\":0.1875554391863921,\"ema1\":0.2000970614503586,\"sma1\":0.21020344444444447,\"sma2\":0.20478094066666663,\"rsi_avg_gain\":0.00036820983575377476,\"rsi_avg_loss\":0.0013777852411058738,\"rsi\":21},{\"period_id\":\"120m210083\",\"size\":\"120m\",\"time\":1512597600000,\"open\":0.19498,\"high\":0.196,\"low\":0.189,\"close\":0.18902,\"volume\":2480005.0900642066,\"close_time\":1512604794901,\"vwap\":0.1899554323805524,\"ema1\":0.2010347898262454,\"sma1\":0.21030066666666666,\"sma2\":0.2051734406666666,\"rsi_avg_gain\":0.00039653366927329593,\"rsi_avg_loss\":0.0012899225673447877,\"rsi\":24},{\"period_id\":\"120m210082\",\"size\":\"120m\",\"time\":1512590400000,\"open\":0.19679,\"high\":0.19775,\"low\":0.192,\"close\":0.195,\"volume\":1901877.715855151,\"close_time\":1512597582829,\"vwap\":0.19420287302483605,\"ema1\":0.20186339602115888,\"sma1\":0.21038816666666663,\"sma2\":0.20546277399999993,\"rsi_avg_gain\":0.00042703625921739564,\"rsi_avg_loss\":0.0009291473802174625,\"rsi\":31},{\"period_id\":\"120m210081\",\"size\":\"120m\",\"time\":1512583200000,\"open\":0.1985,\"high\":0.20003,\"low\":0.19615,\"close\":0.19765,\"volume\":1159402.1994188598,\"close_time\":1512590389470,\"vwap\":0.19718200911963224,\"ema1\":0.20233673367779054,\"sma1\":0.2104573333333333,\"sma2\":0.20566194066666663,\"rsi_avg_gain\":0.0004598852022341184,\"rsi_avg_loss\":0.000796774101772653,\"rsi\":37},{\"period_id\":\"120m210080\",\"size\":\"120m\",\"time\":1512576000000,\"open\":0.1999,\"high\":0.20198,\"low\":0.1978,\"close\":0.1985,\"volume\":1149012.43157479,\"close_time\":1512583187057,\"vwap\":0.19944965915057072,\"ema1\":0.20265995669005196,\"sma1\":0.2104941851851852,\"sma2\":0.20582710733333334,\"rsi_avg_gain\":0.0004952609870213583,\"rsi_avg_loss\":0.0007926798019090096,\"rsi\":38},{\"period_id\":\"120m210079\",\"size\":\"120m\",\"time\":1512568800000,\"open\":0.197,\"high\":0.19997,\"low\":0.196,\"close\":0.1999,\"volume\":1754763.5733593802,\"close_time\":1512575983189,\"vwap\":0.19982716141519988,\"ema1\":0.20294685025488313,\"sma1\":0.21054724074074074,\"sma2\":0.205974774,\"rsi_avg_gain\":0.0005333579860230012,\"rsi_avg_loss\":0.0007459628635943192,\"rsi\":42},{\"period_id\":\"120m210078\",\"size\":\"120m\",\"time\":1512561600000,\"open\":0.19867,\"high\":0.19869,\"low\":0.196,\"close\":0.19797,\"volume\":1356577.2933801496,\"close_time\":1512568782682,\"vwap\":0.19676020578957099,\"ema1\":0.20315697785866818,\"sma1\":0.21060566666666666,\"sma2\":0.2061669406666667,\"rsi_avg_gain\":0.00042592398494784847,\"rsi_avg_loss\":0.0008033446223323438,\"rsi\":35},{\"period_id\":\"120m210077\",\"size\":\"120m\",\"time\":1512554400000,\"open\":0.19707,\"high\":0.2,\"low\":0.196,\"close\":0.19869,\"volume\":2110134.6971577206,\"close_time\":1512561542485,\"vwap\":0.19752957667326243,\"ema1\":0.20351470046961082,\"sma1\":0.21065168518518515,\"sma2\":0.206231774,\"rsi_avg_gain\":0.00045868736840537527,\"rsi_avg_loss\":0.0008097557471271396,\"rsi\":36},{\"period_id\":\"120m210076\",\"size\":\"120m\",\"time\":1512547200000,\"open\":0.19606,\"high\":0.20158,\"low\":0.1953,\"close\":0.19705,\"volume\":2170755.0190411303,\"close_time\":1512554398487,\"vwap\":0.19846608174483601,\"ema1\":0.20384743843303224,\"sma1\":0.21068798148148143,\"sma2\":0.20631527400000002,\"rsi_avg_gain\":0.0003678171659750193,\"rsi_avg_loss\":0.0008720446507523041,\"rsi\":30},{\"period_id\":\"120m210075\",\"size\":\"120m\",\"time\":1512540000000,\"open\":0.19901,\"high\":0.20293,\"low\":0.195,\"close\":0.19778,\"volume\":2231629.5649462496,\"close_time\":1512547191564,\"vwap\":0.19677833590155774,\"ema1\":0.20431622729048274,\"sma1\":0.21071270370370368,\"sma2\":0.2063039406666667,\"rsi_avg_gain\":0.0003961107941269439,\"rsi_avg_loss\":0.0008829711623486346,\"rsi\":31},{\"period_id\":\"120m210074\",\"size\":\"120m\",\"time\":1512532800000,\"open\":0.201,\"high\":0.20466,\"low\":0.1981,\"close\":0.1982,\"volume\":1667986.7979470093,\"close_time\":1512539956524,\"vwap\":0.19947326390413575,\"ema1\":0.2047670015863781,\"sma1\":0.2107149259259259,\"sma2\":0.20629227400000003,\"rsi_avg_gain\":0.0004265808552136319,\"rsi_avg_loss\":0.0009185843286831468,\"rsi\":32},{\"period_id\":\"120m210073\",\"size\":\"120m\",\"time\":1512525600000,\"open\":0.20164,\"high\":0.204,\"low\":0.2,\"close\":0.2023,\"volume\":1055209.2105613104,\"close_time\":1512532718975,\"vwap\":0.2003280961264012,\"ema1\":0.2052198982475076,\"sma1\":0.21071520370370364,\"sma2\":0.2062139406666667,\"rsi_avg_gain\":0.0004593947671531421,\"rsi_avg_loss\":0.0006738600462741566,\"rsi\":41},{\"period_id\":\"120m210072\",\"size\":\"120m\",\"time\":1512518400000,\"open\":0.20532,\"high\":0.20635,\"low\":0.20011,\"close\":0.20168,\"volume\":1645813.257506141,\"close_time\":1512525583549,\"vwap\":0.20063792479898104,\"ema1\":0.20542127054043918,\"sma1\":0.210693074074074,\"sma2\":0.2061879406666667,\"rsi_avg_gain\":0.00044704051847261386,\"rsi_avg_loss\":0.0007256954344490918,\"rsi\":38},{\"period_id\":\"120m210071\",\"size\":\"120m\",\"time\":1512511200000,\"open\":0.20402,\"high\":0.2055,\"low\":0.203,\"close\":0.20364,\"volume\":2130364.2691354603,\"close_time\":1512518349788,\"vwap\":0.20501113706394616,\"ema1\":0.2056792891984005,\"sma1\":0.2106879814814814,\"sma2\":0.2061706073333334,\"rsi_avg_gain\":0.00048142825066281494,\"rsi_avg_loss\":0.0006307489294067151,\"rsi\":43},{\"period_id\":\"120m210070\",\"size\":\"120m\",\"time\":1512504000000,\"open\":0.20498,\"high\":0.20535,\"low\":0.203,\"close\":0.20485,\"volume\":1083083.8736538694,\"close_time\":1512511198657,\"vwap\":0.204522510738842,\"ema1\":0.20581992983277295,\"sma1\":0.2106761296296296,\"sma2\":0.20612977400000004,\"rsi_avg_gain\":0.000518461193021493,\"rsi_avg_loss\":0.0005861911547456919,\"rsi\":47},{\"period_id\":\"120m210069\",\"size\":\"120m\",\"time\":1512496800000,\"open\":0.204,\"high\":0.20538,\"low\":0.203,\"close\":0.20402,\"volume\":860057.4203535096,\"close_time\":1512503859014,\"vwap\":0.20402439704930334,\"ema1\":0.205886821545378,\"sma1\":0.21067344444444439,\"sma2\":0.20612777400000007,\"rsi_avg_gain\":0.0004944966694077618,\"rsi_avg_loss\":0.000631282782033822,\"rsi\":44},{\"period_id\":\"120m210068\",\"size\":\"120m\",\"time\":1512489600000,\"open\":0.20488,\"high\":0.2055,\"low\":0.203,\"close\":0.20321,\"volume\":1296081.3617274298,\"close_time\":1512496789885,\"vwap\":0.20427493020287335,\"ema1\":0.20601556785885233,\"sma1\":0.21067437037037032,\"sma2\":0.20602427400000006,\"rsi_avg_gain\":0.0004702271824391278,\"rsi_avg_loss\":0.0006798429960364236,\"rsi\":41},{\"period_id\":\"120m210067\",\"size\":\"120m\",\"time\":1512482400000,\"open\":0.20556,\"high\":0.20556,\"low\":0.2035,\"close\":0.2049,\"volume\":1402909.4253659002,\"close_time\":1512489590218,\"vwap\":0.20455284931761197,\"ema1\":0.20620905529739386,\"sma1\":0.21067501851851847,\"sma2\":0.20583277400000005,\"rsi_avg_gain\":0.0005063985041652146,\"rsi_avg_loss\":0.0006021386111161488,\"rsi\":46},{\"period_id\":\"120m210066\",\"size\":\"120m\",\"time\":1512475200000,\"open\":0.2045,\"high\":0.20646,\"low\":0.204,\"close\":0.20557,\"volume\":905663.6345902705,\"close_time\":1512482395799,\"vwap\":0.20511404439894168,\"ema1\":0.2062993349730762,\"sma1\":0.21066798148148144,\"sma2\":0.20567327400000004,\"rsi_avg_gain\":0.0005453522352548466,\"rsi_avg_loss\":0.0005969185042789293,\"rsi\":48},{\"period_id\":\"120m210065\",\"size\":\"120m\",\"time\":1512468000000,\"open\":0.20576,\"high\":0.20643,\"low\":0.2043,\"close\":0.2045,\"volume\":1058386.8217710692,\"close_time\":1512475196068,\"vwap\":0.2049801846258361,\"ema1\":0.20634963393673664,\"sma1\":0.21066835185185184,\"sma2\":0.20562027400000008,\"rsi_avg_gain\":0.0005049947148898336,\"rsi_avg_loss\":0.0006428353123003853,\"rsi\":44},{\"period_id\":\"120m210064\",\"size\":\"120m\",\"time\":1512460800000,\"open\":0.2057,\"high\":0.2082,\"low\":0.205,\"close\":0.20504,\"volume\":1827906.7326850519,\"close_time\":1512467894122,\"vwap\":0.20551644586478132,\"ema1\":0.2064771948978909,\"sma1\":0.2106489074074074,\"sma2\":0.20565610733333337,\"rsi_avg_gain\":0.0005438404621890515,\"rsi_avg_loss\":0.0006507457209388755,\"rsi\":46},{\"period_id\":\"120m210063\",\"size\":\"120m\",\"time\":1512453600000,\"open\":0.20508,\"high\":0.2071,\"low\":0.20415,\"close\":0.2059,\"volume\":616188.42400966,\"close_time\":1512460761594,\"vwap\":0.20515453899770983,\"ema1\":0.20657631178740063,\"sma1\":0.2106420555555555,\"sma2\":0.20565777400000004,\"rsi_avg_gain\":0.0005856743438959017,\"rsi_avg_loss\":0.0006346492379341736,\"rsi\":48},{\"period_id\":\"120m210062\",\"size\":\"120m\",\"time\":1512446400000,\"open\":0.20531,\"high\":0.20798,\"low\":0.2045,\"close\":0.20485,\"volume\":407359.59938782,\"close_time\":1512453554144,\"vwap\":0.20552314103756028,\"ema1\":0.20662295397963515,\"sma1\":0.21062381481481476,\"sma2\":0.20570827400000002,\"rsi_avg_gain\":0.0005499569857340483,\"rsi_avg_loss\":0.0006834684100829562,\"rsi\":45},{\"period_id\":\"120m210061\",\"size\":\"120m\",\"time\":1512439200000,\"open\":0.20663,\"high\":0.20663,\"low\":0.205,\"close\":0.20515,\"volume\":595110.5549349199,\"close_time\":1512446369424,\"vwap\":0.20540328026770585,\"ema1\":0.20674522666788586,\"sma1\":0.21061353703703697,\"sma2\":0.20577927400000004,\"rsi_avg_gain\":0.000592261369252052,\"rsi_avg_loss\":0.0007129659800893379,\"rsi\":45},{\"period_id\":\"120m210060\",\"size\":\"120m\",\"time\":1512432000000,\"open\":0.20764,\"high\":0.208266,\"low\":0.2062,\"close\":0.20663,\"volume\":508934.48698234,\"close_time\":1512439024419,\"vwap\":0.2067972643827175,\"ema1\":0.20685524230015384,\"sma1\":0.21060366666666663,\"sma2\":0.20583510733333338,\"rsi_avg_gain\":0.0006378199361175944,\"rsi_avg_loss\":0.0006539633631731324,\"rsi\":49},{\"period_id\":\"120m210059\",\"size\":\"120m\",\"time\":1512424800000,\"open\":0.20697,\"high\":0.208266,\"low\":0.206,\"close\":0.208266,\"volume\":918199.0655971197,\"close_time\":1512431956920,\"vwap\":0.2082086101326022,\"ema1\":0.2068707762518886,\"sma1\":0.21060120370370367,\"sma2\":0.2057148406666667,\"rsi_avg_gain\":0.0006868830081266401,\"rsi_avg_loss\":0.0005784220834172196,\"rsi\":54},{\"period_id\":\"120m210058\",\"size\":\"120m\",\"time\":1512417600000,\"open\":0.2069,\"high\":0.2075,\"low\":0.2055,\"close\":0.20697,\"volume\":632957.20665359,\"close_time\":1512424783756,\"vwap\":0.20680285765117373,\"ema1\":0.20677455392443264,\"sma1\":0.2106058333333333,\"sma2\":0.2056783406666667,\"rsi_avg_gain\":0.000640027854905611,\"rsi_avg_loss\":0.0006229160898339288,\"rsi\":51},{\"period_id\":\"120m210057\",\"size\":\"120m\",\"time\":1512410400000,\"open\":0.20754,\"high\":0.20769,\"low\":0.20562,\"close\":0.207,\"volume\":703081.9222192308,\"close_time\":1512417597662,\"vwap\":0.20657377503648014,\"ema1\":0.20676107488473836,\"sma1\":0.21060870370370366,\"sma2\":0.2055448406666667,\"rsi_avg_gain\":0.0006892607668214271,\"rsi_avg_loss\":0.0006685250198211538,\"rsi\":51},{\"period_id\":\"120m210056\",\"size\":\"120m\",\"time\":1512403200000,\"open\":0.20617,\"high\":0.20754,\"low\":0.205,\"close\":0.20754,\"volume\":614650.2980817601,\"close_time\":1512410370625,\"vwap\":0.20706505577174364,\"ema1\":0.20674459729058237,\"sma1\":0.21061759259259252,\"sma2\":0.2056858406666667,\"rsi_avg_gain\":0.0007422808258076908,\"rsi_avg_loss\":0.0006784115598073954,\"rsi\":52},{\"period_id\":\"120m210055\",\"size\":\"120m\",\"time\":1512396000000,\"open\":0.206,\"high\":0.20778,\"low\":0.20474,\"close\":0.20616,\"volume\":555274.1970127601,\"close_time\":1512403151943,\"vwap\":0.20616,\"ema1\":0.20668974193131218,\"sma1\":0.21062888888888884,\"sma2\":0.20588317400000006,\"rsi_avg_gain\":0.0006932255047159753,\"rsi_avg_loss\":0.0007305970644079642,\"rsi\":49},{\"period_id\":\"120m210054\",\"size\":\"120m\",\"time\":1512388800000,\"open\":0.20601,\"high\":0.2078,\"low\":0.20311,\"close\":0.206,\"volume\":1058620.9446994702,\"close_time\":1512395944827,\"vwap\":0.2052923789984246,\"ema1\":0.20672627585760955,\"sma1\":0.21061685185185178,\"sma2\":0.20624967400000005,\"rsi_avg_gain\":0.0007342428512325871,\"rsi_avg_loss\":0.0007867968385931923,\"rsi\":48},{\"period_id\":\"120m210053\",\"size\":\"120m\",\"time\":1512381600000,\"open\":0.20655,\"high\":0.2079,\"low\":0.205,\"close\":0.20668,\"volume\":937889.2512387097,\"close_time\":1512388797198,\"vwap\":0.20589644610807406,\"ema1\":0.20677636384778952,\"sma1\":0.21058537037037028,\"sma2\":0.20651200733333339,\"rsi_avg_gain\":0.0007907230705581706,\"rsi_avg_loss\":0.0007950119800234367,\"rsi\":50},{\"period_id\":\"120m210052\",\"size\":\"120m\",\"time\":1512374400000,\"open\":0.2073,\"high\":0.20843,\"low\":0.20567,\"close\":0.207,\"volume\":846062.6015024798,\"close_time\":1512381483617,\"vwap\":0.20723179529206506,\"ema1\":0.2067830096303957,\"sma1\":0.21054712962962954,\"sma2\":0.20679367400000004,\"rsi_avg_gain\":0.0008515479221395684,\"rsi_avg_loss\":0.0008315513631021637,\"rsi\":51},{\"period_id\":\"120m210051\",\"size\":\"120m\",\"time\":1512367200000,\"open\":0.20506,\"high\":0.2088,\"low\":0.20506,\"close\":0.20772,\"volume\":369815.74117833993,\"close_time\":1512374346573,\"vwap\":0.2076175044452182,\"ema1\":0.20676804477731953,\"sma1\":0.21051166666666657,\"sma2\":0.20700667400000003,\"rsi_avg_gain\":0.0009170516084579968,\"rsi_avg_loss\":0.0008401322371869457,\"rsi\":52},{\"period_id\":\"120m210050\",\"size\":\"120m\",\"time\":1512360000000,\"open\":0.20511,\"high\":0.20694,\"low\":0.205,\"close\":0.20526,\"volume\":148488.14376757,\"close_time\":1512367074218,\"vwap\":0.2059249391058433,\"ema1\":0.20670239269299673,\"sma1\":0.21049361111111103,\"sma2\":0.207210674,\"rsi_avg_gain\":0.0007983632706470742,\"rsi_avg_loss\":0.0009047577938936338,\"rsi\":47},{\"period_id\":\"120m210049\",\"size\":\"120m\",\"time\":1512352800000,\"open\":0.20479,\"high\":0.20596,\"low\":0.20479,\"close\":0.20591,\"volume\":112455.98687227,\"close_time\":1512359645187,\"vwap\":0.2051671625582667,\"ema1\":0.20680186805113443,\"sma1\":0.2104800925925925,\"sma2\":0.20744550733333336,\"rsi_avg_gain\":0.0008597758299276184,\"rsi_avg_loss\":0.0009243545472700663,\"rsi\":48},{\"period_id\":\"120m210048\",\"size\":\"120m\",\"time\":1512345600000,\"open\":0.2025,\"high\":0.205,\"low\":0.2022,\"close\":0.205,\"volume\":244383.31424754005,\"close_time\":1512352788800,\"vwap\":0.20490388420590536,\"ema1\":0.20686337619259199,\"sma1\":0.21046666666666655,\"sma2\":0.207812174,\"rsi_avg_gain\":0.0008559124322297413,\"rsi_avg_loss\":0.0009954587432139176,\"rsi\":46},{\"period_id\":\"120m210047\",\"size\":\"120m\",\"time\":1512338400000,\"open\":0.203,\"high\":0.20596,\"low\":0.201,\"close\":0.20321,\"volume\":1016917.7492541395,\"close_time\":1512345595739,\"vwap\":0.20316291896505326,\"ema1\":0.20699188489552936,\"sma1\":0.21043925925925913,\"sma2\":0.2083210073333333,\"rsi_avg_gain\":0.000784059542401261,\"rsi_avg_loss\":0.0010720324926919112,\"rsi\":42},{\"period_id\":\"120m210046\",\"size\":\"120m\",\"time\":1512331200000,\"open\":0.20927755,\"high\":0.21072,\"low\":0.2021,\"close\":0.2021,\"volume\":1914351.5573701388,\"close_time\":1512338396781,\"vwap\":0.20255106870689396,\"ema1\":0.2072527045434969,\"sma1\":0.21036685185185175,\"sma2\":0.20871917399999998,\"rsi_avg_gain\":0.0007589871995090503,\"rsi_avg_loss\":0.001154496530591289,\"rsi\":40},{\"period_id\":\"120m210045\",\"size\":\"120m\",\"time\":1512324000000,\"open\":0.20861,\"high\":0.21,\"low\":0.20824,\"close\":0.209,\"volume\":407974.7964288199,\"close_time\":1512331113146,\"vwap\":0.2091210538367338,\"ema1\":0.20760806347753116,\"sma1\":0.21029731481481473,\"sma2\":0.20892100733333333,\"rsi_avg_gain\":0.0008173708302405158,\"rsi_avg_loss\":0.0007125347252521584,\"rsi\":53},{\"period_id\":\"120m210044\",\"size\":\"120m\",\"time\":1512316800000,\"open\":0.20906,\"high\":0.21,\"low\":0.2084,\"close\":0.20978,\"volume\":615420.8094476499,\"close_time\":1512323994319,\"vwap\":0.20939352593148133,\"ema1\":0.20751206785529194,\"sma1\":0.21023064814814807,\"sma2\":0.20914134066666665,\"rsi_avg_gain\":0.0008802455094897862,\"rsi_avg_loss\":0.0007073450887330933,\"rsi\":55},{\"period_id\":\"120m210043\",\"size\":\"120m\",\"time\":1512309600000,\"open\":0.211,\"high\":0.2118,\"low\":0.208,\"close\":0.2095,\"volume\":1208601.3046583012,\"close_time\":1512316768941,\"vwap\":0.20962329188403223,\"ema1\":0.2073556587418638,\"sma1\":0.21014851851851843,\"sma2\":0.20935467399999996,\"rsi_avg_gain\":0.0009264182409890003,\"rsi_avg_loss\":0.0007617562494048696,\"rsi\":55},{\"period_id\":\"120m210042\",\"size\":\"120m\",\"time\":1512302400000,\"open\":0.2093,\"high\":0.213,\"low\":0.20887,\"close\":0.211,\"volume\":2451547.833988342,\"close_time\":1512309491987,\"vwap\":0.211,\"ema1\":0.2072077731378544,\"sma1\":0.21005694444444434,\"sma2\":0.20939200733333332,\"rsi_avg_gain\":0.0009976811826035387,\"rsi_avg_loss\":0.0007049682685898595,\"rsi\":59},{\"period_id\":\"120m210041\",\"size\":\"120m\",\"time\":1512295200000,\"open\":0.207,\"high\":0.2094,\"low\":0.20601,\"close\":0.20887,\"volume\":657082.7732712004,\"close_time\":1512302385755,\"vwap\":0.2092577965910144,\"ema1\":0.20694624025080988,\"sma1\":0.2099976851851851,\"sma2\":0.20954367399999996,\"rsi_avg_gain\":0.0009105797351115036,\"rsi_avg_loss\":0.0007591965969429255,\"rsi\":55},{\"period_id\":\"120m210040\",\"size\":\"120m\",\"time\":1512288000000,\"open\":0.20712,\"high\":0.208,\"low\":0.20605,\"close\":0.2069,\"volume\":404712.48956450995,\"close_time\":1512295180202,\"vwap\":0.20699478319665193,\"ema1\":0.20681356716465885,\"sma1\":0.20997175925925918,\"sma2\":0.20967867399999998,\"rsi_avg_gain\":0.0008290858685816192,\"rsi_avg_loss\":0.0008175963351693044,\"rsi\":50},{\"period_id\":\"120m210039\",\"size\":\"120m\",\"time\":1512280800000,\"open\":0.2053,\"high\":0.208,\"low\":0.20519,\"close\":0.20711,\"volume\":91034.59465931001,\"close_time\":1512287925924,\"vwap\":0.2063267980213231,\"ema1\":0.2068076062794629,\"sma1\":0.2099518518518518,\"sma2\":0.209827174,\"rsi_avg_gain\":0.0008928617046263591,\"rsi_avg_loss\":0.0008643345147977134,\"rsi\":51},{\"period_id\":\"120m210038\",\"size\":\"120m\",\"time\":1512273600000,\"open\":0.20466,\"high\":0.20735,\"low\":0.20465,\"close\":0.20515,\"volume\":341844.85708863003,\"close_time\":1512280257377,\"vwap\":0.205372097226232,\"ema1\":0.20678675154011553,\"sma1\":0.20992879629629627,\"sma2\":0.20995800733333334,\"rsi_avg_gain\":0.0008107741434437722,\"rsi_avg_loss\":0.0009308217851667682,\"rsi\":47},{\"period_id\":\"120m210037\",\"size\":\"120m\",\"time\":1512266400000,\"open\":0.20416,\"high\":0.20511,\"low\":0.204,\"close\":0.20483,\"volume\":44043.33960736001,\"close_time\":1512273462247,\"vwap\":0.20451019845217286,\"ema1\":0.2068996309566752,\"sma1\":0.20995537037037032,\"sma2\":0.21014017399999999,\"rsi_avg_gain\":0.0008485260006317557,\"rsi_avg_loss\":0.0010024234609488272,\"rsi\":46},{\"period_id\":\"120m210036\",\"size\":\"120m\",\"time\":1512259200000,\"open\":0.2061,\"high\":0.2065,\"low\":0.204,\"close\":0.20412,\"volume\":437910.88185003994,\"close_time\":1512266341154,\"vwap\":0.20452107213735413,\"ema1\":0.20704236412610108,\"sma1\":0.20996101851851845,\"sma2\":0.210238174,\"rsi_avg_gain\":0.0008591818468341972,\"rsi_avg_loss\":0.001079532957944891,\"rsi\":44},{\"period_id\":\"120m210035\",\"size\":\"120m\",\"time\":1512252000000,\"open\":0.2075,\"high\":0.20869,\"low\":0.205,\"close\":0.206,\"volume\":627978.90874285,\"close_time\":1512259172274,\"vwap\":0.205787600612729,\"ema1\":0.2072439064796253,\"sma1\":0.20996851851851847,\"sma2\":0.21022150733333334,\"rsi_avg_gain\":0.0009252727581291354,\"rsi_avg_loss\":0.0010179585700944985,\"rsi\":48},{\"period_id\":\"120m210034\",\"size\":\"120m\",\"time\":1512244800000,\"open\":0.20626,\"high\":0.208,\"low\":0.20587,\"close\":0.20749,\"volume\":375143.7825295599,\"close_time\":1512251968347,\"vwap\":0.20737429043287456,\"ema1\":0.20732969313339256,\"sma1\":0.20998703703703697,\"sma2\":0.21019650733333337,\"rsi_avg_gain\":0.0009964475856775305,\"rsi_avg_loss\":0.000981647690870997,\"rsi\":50},{\"period_id\":\"120m210033\",\"size\":\"120m\",\"time\":1512237600000,\"open\":0.20752,\"high\":0.20752,\"low\":0.2055,\"close\":0.20671,\"volume\":269664.32342694,\"close_time\":1512244785524,\"vwap\":0.20639348437636962,\"ema1\":0.20731863748741963,\"sma1\":0.20999425925925921,\"sma2\":0.21019750733333334,\"rsi_avg_gain\":0.0010130973999604171,\"rsi_avg_loss\":0.0010571590517072275,\"rsi\":49},{\"period_id\":\"120m210032\",\"size\":\"120m\",\"time\":1512230400000,\"open\":0.20577,\"high\":0.208,\"low\":0.2043,\"close\":0.20702,\"volume\":548313.6903024999,\"close_time\":1512237578495,\"vwap\":0.2070720080517699,\"ema1\":0.20736061248655202,\"sma1\":0.20999425925925921,\"sma2\":0.2101738406666667,\"rsi_avg_gain\":0.0010910279691881415,\"rsi_avg_loss\":0.0011146328249154753,\"rsi\":49},{\"period_id\":\"120m210031\",\"size\":\"120m\",\"time\":1512223200000,\"open\":0.2088,\"high\":0.2088,\"low\":0.205,\"close\":0.20593044,\"volume\":507990.8551120195,\"close_time\":1512230394515,\"vwap\":0.2053774406338344,\"ema1\":0.20738410300286594,\"sma1\":0.20994981481481473,\"sma2\":0.21013533333333337,\"rsi_avg_gain\":0.0010911408898949203,\"rsi_avg_loss\":0.0012003738114474349,\"rsi\":48},{\"period_id\":\"120m210030\",\"size\":\"120m\",\"time\":1512216000000,\"open\":0.2081,\"high\":0.2094,\"low\":0.207,\"close\":0.2087,\"volume\":644599.4130293902,\"close_time\":1512223178420,\"vwap\":0.20874663935509372,\"ema1\":0.20748435562375325,\"sma1\":0.209906574074074,\"sma2\":0.21007350000000002,\"rsi_avg_gain\":0.001175074804502222,\"rsi_avg_loss\":0.0010796671815587757,\"rsi\":52},{\"period_id\":\"120m210029\",\"size\":\"120m\",\"time\":1512208800000,\"open\":0.21,\"high\":0.211,\"low\":0.2061,\"close\":0.2081,\"volume\":1036579.6382968901,\"close_time\":1512215967286,\"vwap\":0.20792781658986315,\"ema1\":0.2074005180805638,\"sma1\":0.20983249999999992,\"sma2\":0.21001350000000005,\"rsi_avg_gain\":0.0012193113279254707,\"rsi_avg_loss\":0.0011627185032171432,\"rsi\":51},{\"period_id\":\"120m210028\",\"size\":\"120m\",\"time\":1512201600000,\"open\":0.2091,\"high\":0.211,\"low\":0.2075,\"close\":0.21,\"volume\":843859.35179703,\"close_time\":1512208772992,\"vwap\":0.21016371739651893,\"ema1\":0.2073522779481889,\"sma1\":0.20976287037037025,\"sma2\":0.20992100000000005,\"rsi_avg_gain\":0.0013131045069966609,\"rsi_avg_loss\":0.0011060045419261553,\"rsi\":54},{\"period_id\":\"120m210027\",\"size\":\"120m\",\"time\":1512194400000,\"open\":0.20701,\"high\":0.20999,\"low\":0.20612,\"close\":0.20916,\"volume\":324696.8229079299,\"close_time\":1512201587493,\"vwap\":0.2091770268934642,\"ema1\":0.20716967642737433,\"sma1\":0.20971555555555546,\"sma2\":0.20984833333333336,\"rsi_avg_gain\":0.001349497161381021,\"rsi_avg_loss\":0.0011910818143820133,\"rsi\":53},{\"period_id\":\"120m210026\",\"size\":\"120m\",\"time\":1512187200000,\"open\":0.20948,\"high\":0.20958,\"low\":0.2065,\"close\":0.2066,\"volume\":423074.3872495901,\"close_time\":1512194238488,\"vwap\":0.20698137746371098,\"ema1\":0.20703241273271047,\"sma1\":0.20966759259259252,\"sma2\":0.20982000000000006,\"rsi_avg_gain\":0.0012563815584103297,\"rsi_avg_loss\":0.001282703492411399,\"rsi\":49},{\"period_id\":\"120m210025\",\"size\":\"120m\",\"time\":1512180000000,\"open\":0.20896,\"high\":0.20956,\"low\":0.207,\"close\":0.20911,\"volume\":97823.74024907005,\"close_time\":1512186828813,\"vwap\":0.20898586573159642,\"ema1\":0.20706223430048362,\"sma1\":0.20960861111111107,\"sma2\":0.2097263333333334,\"rsi_avg_gain\":0.0013530262936726628,\"rsi_avg_loss\":0.0011882960687507385,\"rsi\":53},{\"period_id\":\"120m210024\",\"size\":\"120m\",\"time\":1512172800000,\"open\":0.21257,\"high\":0.2126,\"low\":0.20706,\"close\":0.20896,\"volume\":1319666.9405931998,\"close_time\":1512179990311,\"vwap\":0.20895798651537476,\"ema1\":0.20692100907982733,\"sma1\":0.20952953703703697,\"sma2\":0.20963566666666678,\"rsi_avg_gain\":0.0014455667778013304,\"rsi_avg_loss\":0.0012797034586546415,\"rsi\":53},{\"period_id\":\"120m210023\",\"size\":\"120m\",\"time\":1512165600000,\"open\":0.21203,\"high\":0.215,\"low\":0.21065,\"close\":0.21257,\"volume\":2184093.836138379,\"close_time\":1512172768309,\"vwap\":0.21239267404049617,\"ema1\":0.20678038901636714,\"sma1\":0.20943694444444438,\"sma2\":0.20948033333333343,\"rsi_avg_gain\":0.0015567642222475864,\"rsi_avg_loss\":0.001100449878551152,\"rsi\":59},{\"period_id\":\"120m210022\",\"size\":\"120m\",\"time\":1512158400000,\"open\":0.2096,\"high\":0.21236,\"low\":0.20813,\"close\":0.21236,\"volume\":1072673.46061336,\"close_time\":1512165578647,\"vwap\":0.21182227397483236,\"ema1\":0.20638110550025454,\"sma1\":0.20936768518518514,\"sma2\":0.20931766666666674,\"rsi_avg_gain\":0.001660361470112784,\"rsi_avg_loss\":0.001185099869208933,\"rsi\":58},{\"period_id\":\"120m210021\",\"size\":\"120m\",\"time\":1512151200000,\"open\":0.20898,\"high\":0.21,\"low\":0.2071,\"close\":0.2096,\"volume\":906369.1453939505,\"close_time\":1512158399931,\"vwap\":0.20935349739762324,\"ema1\":0.20596876794854796,\"sma1\":0.20930212962962957,\"sma2\":0.20919100000000007,\"rsi_avg_gain\":0.0015757738908906914,\"rsi_avg_loss\":0.00127626139760962,\"rsi\":55},{\"period_id\":\"120m210020\",\"size\":\"120m\",\"time\":1512144000000,\"open\":0.20799,\"high\":0.212,\"low\":0.20799,\"close\":0.20841,\"volume\":1272584.15052845,\"close_time\":1512151168203,\"vwap\":0.2094186400146474,\"ema1\":0.20571833815189608,\"sma1\":0.2092280555555555,\"sma2\":0.20910916666666676,\"rsi_avg_gain\":0.001605448805574591,\"rsi_avg_loss\":0.0013744353512718985,\"rsi\":54},{\"period_id\":\"120m210019\",\"size\":\"120m\",\"time\":1512136800000,\"open\":0.20921,\"high\":0.20998,\"low\":0.207,\"close\":0.20876,\"volume\":1429491.255365281,\"close_time\":1512143985731,\"vwap\":0.20893020137584348,\"ema1\":0.2055327063003027,\"sma1\":0.2091541666666666,\"sma2\":0.20902983333333341,\"rsi_avg_gain\":0.0017289448675418674,\"rsi_avg_loss\":0.001453238070600507,\"rsi\":54},{\"period_id\":\"120m210018\",\"size\":\"120m\",\"time\":1512129600000,\"open\":0.20256,\"high\":0.2169,\"low\":0.20121,\"close\":0.2095,\"volume\":2799926.6295868102,\"close_time\":1512136798511,\"vwap\":0.2095880742034178,\"ema1\":0.20531013432101325,\"sma1\":0.20901481481481474,\"sma2\":0.2089548333333334,\"rsi_avg_gain\":0.0018619406265835494,\"rsi_avg_loss\":0.0015081025375697774,\"rsi\":55},{\"period_id\":\"120m210017\",\"size\":\"120m\",\"time\":1512122400000,\"open\":0.202104,\"high\":0.207,\"low\":0.201,\"close\":0.20258,\"volume\":1291062.32261302,\"close_time\":1512129593960,\"vwap\":0.2018660900262869,\"ema1\":0.20502117806729003,\"sma1\":0.2089685185185185,\"sma2\":0.20900850000000007,\"rsi_avg_gain\":0.0014728591363207468,\"rsi_avg_loss\":0.0016241104250751448,\"rsi\":48},{\"period_id\":\"120m210016\",\"size\":\"120m\",\"time\":1512115200000,\"open\":0.19814,\"high\":0.20206,\"low\":0.196,\"close\":0.20206,\"volume\":713837.5213206597,\"close_time\":1512122388374,\"vwap\":0.20072926771114477,\"ema1\":0.205189535175379,\"sma1\":0.20896796296296294,\"sma2\":0.2090548333333334,\"rsi_avg_gain\":0.0015461559929608026,\"rsi_avg_loss\":0.0017490419962347713,\"rsi\":47},{\"period_id\":\"120m210015\",\"size\":\"120m\",\"time\":1512108000000,\"open\":0.19743,\"high\":0.19982,\"low\":0.1961,\"close\":0.1971,\"volume\":557649.4492912301,\"close_time\":1512115180599,\"vwap\":0.19799145939520138,\"ema1\":0.2054053651874741,\"sma1\":0.20899740740740735,\"sma2\":0.2091865000000001,\"rsi_avg_gain\":0.0012835526078039418,\"rsi_avg_loss\":0.0018835836882528307,\"rsi\":41},{\"period_id\":\"120m210014\",\"size\":\"120m\",\"time\":1512100800000,\"open\":0.199,\"high\":0.20197,\"low\":0.19702,\"close\":0.1975,\"volume\":635311.7339892703,\"close_time\":1512107990517,\"vwap\":0.19756895000186525,\"ema1\":0.2059781489935068,\"sma1\":0.20898657407407406,\"sma2\":0.20932833333333345,\"rsi_avg_gain\":0.0013822874237888606,\"rsi_avg_loss\":0.0019977055104261243,\"rsi\":41},{\"period_id\":\"120m210013\",\"size\":\"120m\",\"time\":1512093600000,\"open\":0.20012,\"high\":0.201,\"low\":0.19722,\"close\":0.1976,\"volume\":236566.50866583994,\"close_time\":1512100510000,\"vwap\":0.1975385803065734,\"ema1\":0.2065628489240935,\"sma1\":0.20897259259259257,\"sma2\":0.20943650000000008,\"rsi_avg_gain\":0.001488617225618773,\"rsi_avg_loss\":0.002143682857381981,\"rsi\":41},{\"period_id\":\"120m210012\",\"size\":\"120m\",\"time\":1512086400000,\"open\":0.20222,\"high\":0.2041,\"low\":0.198,\"close\":0.20012,\"volume\":698903.8259039099,\"close_time\":1512093589718,\"vwap\":0.19948227608048652,\"ema1\":0.20718097643609992,\"sma1\":0.20892999999999995,\"sma2\":0.20950633333333343,\"rsi_avg_gain\":0.0016031262429740633,\"rsi_avg_loss\":0.002114735384872903,\"rsi\":43},{\"period_id\":\"120m210011\",\"size\":\"120m\",\"time\":1512079200000,\"open\":0.20296,\"high\":0.20684,\"low\":0.20112,\"close\":0.2026,\"volume\":1227702.9432458305,\"close_time\":1512086391967,\"vwap\":0.20297203164390082,\"ema1\":0.20766794032824476,\"sma1\":0.20887870370370368,\"sma2\":0.20958883333333342,\"rsi_avg_gain\":0.0017264436462797604,\"rsi_avg_loss\":0.0020866381067862027,\"rsi\":45},{\"period_id\":\"120m210010\",\"size\":\"120m\",\"time\":1512072000000,\"open\":0.2039,\"high\":0.2045,\"low\":0.19901,\"close\":0.2024,\"volume\":1258077.1042229799,\"close_time\":1512079169720,\"vwap\":0.20282329161916118,\"ema1\":0.20801745345433062,\"sma1\":0.20884907407407405,\"sma2\":0.20968183333333337,\"rsi_avg_gain\":0.0018438623883012802,\"rsi_avg_loss\":0.0022471487303851417,\"rsi\":45},{\"period_id\":\"120m210009\",\"size\":\"120m\",\"time\":1512064800000,\"open\":0.19698,\"high\":0.2046,\"low\":0.19566,\"close\":0.2039,\"volume\":1647673.1437247903,\"close_time\":1512071867725,\"vwap\":0.20399563881208152,\"ema1\":0.2084048640373879,\"sma1\":0.2088435185185185,\"sma2\":0.20974683333333338,\"rsi_avg_gain\":0.001985697956632148,\"rsi_avg_loss\":0.0023046217096455374,\"rsi\":46},{\"period_id\":\"120m210008\",\"size\":\"120m\",\"time\":1512057600000,\"open\":0.19378,\"high\":0.19889,\"low\":0.19002,\"close\":0.197,\"volume\":1298684.4076519401,\"close_time\":1512064799932,\"vwap\":0.19759394303301506,\"ema1\":0.20871554431582845,\"sma1\":0.20887231481481483,\"sma2\":0.20992133333333338,\"rsi_avg_gain\":0.0016076747225269295,\"rsi_avg_loss\":0.0024819003026951944,\"rsi\":39},{\"period_id\":\"120m210007\",\"size\":\"120m\",\"time\":1512050400000,\"open\":0.1957,\"high\":0.196,\"low\":0.19,\"close\":0.19341,\"volume\":3496820.0965343695,\"close_time\":1512057579478,\"vwap\":0.19227754373509662,\"ema1\":0.20952351288933385,\"sma1\":0.20893879629629628,\"sma2\":0.21015883333333338,\"rsi_avg_gain\":0.001455188162721308,\"rsi_avg_loss\":0.002672815710594825,\"rsi\":35},{\"period_id\":\"120m210006\",\"size\":\"120m\",\"time\":1512043200000,\"open\":0.201,\"high\":0.205,\"low\":0.1957,\"close\":0.196,\"volume\":2207844.756551129,\"close_time\":1512050392604,\"vwap\":0.1958772047126463,\"ema1\":0.2106347896403224,\"sma1\":0.208925,\"sma2\":0.2103088333333334,\"rsi_avg_gain\":0.0015671257136998702,\"rsi_avg_loss\":0.0026791861498713493,\"rsi\":37},{\"period_id\":\"120m210005\",\"size\":\"120m\",\"time\":1512036000000,\"open\":0.20723,\"high\":0.20859,\"low\":0.2,\"close\":0.20132,\"volume\":1182444.4129667808,\"close_time\":1512043188497,\"vwap\":0.20166730602177427,\"ema1\":0.211644085477586,\"sma1\":0.20887981481481482,\"sma2\":0.21035600000000004,\"rsi_avg_gain\":0.001687673845522937,\"rsi_avg_loss\":0.002476046622938377,\"rsi\":41},{\"period_id\":\"120m210004\",\"size\":\"120m\",\"time\":1512028800000,\"open\":0.206,\"high\":0.2105,\"low\":0.206,\"close\":0.20719,\"volume\":1239318.2030057004,\"close_time\":1512035986958,\"vwap\":0.20773565564347984,\"ema1\":0.21235609137259193,\"sma1\":0.20882814814814818,\"sma2\":0.21028283333333336,\"rsi_avg_gain\":0.001817494910563163,\"rsi_avg_loss\":0.0022149732862413282,\"rsi\":45},{\"period_id\":\"120m210003\",\"size\":\"120m\",\"time\":1512021600000,\"open\":0.2058,\"high\":0.208,\"low\":0.20034,\"close\":0.206,\"volume\":1034005.3892385698,\"close_time\":1512028795858,\"vwap\":0.20591875600491075,\"ema1\":0.21271237353621897,\"sma1\":0.20880490740740745,\"sma2\":0.21024950000000003,\"rsi_avg_gain\":0.0018657637498372508,\"rsi_avg_loss\":0.0023853558467214304,\"rsi\":44},{\"period_id\":\"120m210002\",\"size\":\"120m\",\"time\":1512014400000,\"open\":0.20938,\"high\":0.21089,\"low\":0.205,\"close\":0.20788,\"volume\":707748.94552877,\"close_time\":1512021589204,\"vwap\":0.20639625026600036,\"ema1\":0.21317529584906167,\"sma1\":0.20873240740740742,\"sma2\":0.21019433333333337,\"rsi_avg_gain\":0.00200928403828627,\"rsi_avg_loss\":0.002424229373392308,\"rsi\":45},{\"period_id\":\"120m210001\",\"size\":\"120m\",\"time\":1512007200000,\"open\":0.20915,\"high\":0.21,\"low\":0.20531,\"close\":0.20941,\"volume\":290501.8359916002,\"close_time\":1512014340616,\"vwap\":0.20877257439456173,\"ema1\":0.21354048866623834,\"sma1\":0.2086953703703704,\"sma2\":0.2100956666666667,\"rsi_avg_gain\":0.0021638443489236754,\"rsi_avg_loss\":0.0024930162482686394,\"rsi\":46},{\"period_id\":\"120m210000\",\"size\":\"120m\",\"time\":1512000000000,\"open\":0.201,\"high\":0.20999,\"low\":0.2,\"close\":0.20998,\"volume\":1165564.5829144393,\"close_time\":1512007030383,\"vwap\":0.20875268087723417,\"ema1\":0.2138253499535651,\"sma1\":0.20865833333333336,\"sma2\":0.2099876666666667,\"rsi_avg_gain\":0.0023302939142254967,\"rsi_avg_loss\":0.002640940575058536,\"rsi\":47},{\"period_id\":\"120m209999\",\"size\":\"120m\",\"time\":1511992800000,\"open\":0.20395,\"high\":0.21,\"low\":0.2,\"close\":0.20105,\"volume\":1814667.9738222098,\"close_time\":1511999980364,\"vwap\":0.20103202205372755,\"ema1\":0.21409054650208684,\"sma1\":0.20863870370370372,\"sma2\":0.2100181666666667,\"rsi_avg_gain\":0.001822624215319766,\"rsi_avg_loss\":0.002844089850063039,\"rsi\":39},{\"period_id\":\"120m209998\",\"size\":\"120m\",\"time\":1511985600000,\"open\":0.1959,\"high\":0.21,\"low\":0.191,\"close\":0.20478,\"volume\":4757349.276058303,\"close_time\":1511992776919,\"vwap\":0.20450348973901494,\"ema1\":0.21498989453671352,\"sma1\":0.20861925925925925,\"sma2\":0.20996150000000005,\"rsi_avg_gain\":0.0019628260780366713,\"rsi_avg_loss\":0.0027759429154525046,\"rsi\":41},{\"period_id\":\"120m209997\",\"size\":\"120m\",\"time\":1511978400000,\"open\":0.21606,\"high\":0.21957,\"low\":0.192,\"close\":0.19899,\"volume\":4420248.183224255,\"close_time\":1511985598964,\"vwap\":0.19422034549071834,\"ema1\":0.2156940251944179,\"sma1\":0.2085112962962963,\"sma2\":0.21001166666666674,\"rsi_avg_gain\":0.0016684280840394933,\"rsi_avg_loss\":0.002989476985871928,\"rsi\":36},{\"period_id\":\"120m209996\",\"size\":\"120m\",\"time\":1511971200000,\"open\":0.21998,\"high\":0.223,\"low\":0.216,\"close\":0.216,\"volume\":2351105.5345271663,\"close_time\":1511978391883,\"vwap\":0.21700862158899964,\"ema1\":0.21684602693196398,\"sma1\":0.20834462962962963,\"sma2\":0.20977833333333334,\"rsi_avg_gain\":0.001796768705888685,\"rsi_avg_loss\":0.0019109752155543843,\"rsi\":48},{\"period_id\":\"120m209995\",\"size\":\"120m\",\"time\":1511964000000,\"open\":0.22841,\"high\":0.23,\"low\":0.218,\"close\":0.218,\"volume\":4281064.854303387,\"close_time\":1511971197605,\"vwap\":0.21902660240989974,\"ema1\":0.21690437361692702,\"sma1\":0.20811185185185188,\"sma2\":0.20949500000000004,\"rsi_avg_gain\":0.0019349816832647377,\"rsi_avg_loss\":0.001904127155212414,\"rsi\":50},{\"period_id\":\"120m209994\",\"size\":\"120m\",\"time\":1511956800000,\"open\":0.22286,\"high\":0.22878,\"low\":0.22169,\"close\":0.22799,\"volume\":3263738.472919323,\"close_time\":1511963974595,\"vwap\":0.22720300793999193,\"ema1\":0.2168288131767151,\"sma1\":0.20787731481481483,\"sma2\":0.20903600000000006,\"rsi_avg_gain\":0.002083826428131256,\"rsi_avg_loss\":0.0012821369363825996,\"rsi\":62},{\"period_id\":\"120m209993\",\"size\":\"120m\",\"time\":1511949600000,\"open\":0.22398,\"high\":0.22488,\"low\":0.22111,\"close\":0.22242,\"volume\":2361820.0209971713,\"close_time\":1511956799508,\"vwap\":0.22269121907176645,\"ema1\":0.21605907615441958,\"sma1\":0.20768370370370373,\"sma2\":0.20868383333333335,\"rsi_avg_gain\":0.0018156592302951999,\"rsi_avg_loss\":0.0013807628545658764,\"rsi\":57},{\"period_id\":\"120m209992\",\"size\":\"120m\",\"time\":1511942400000,\"open\":0.2195,\"high\":0.22488,\"low\":0.2177,\"close\":0.2239,\"volume\":2649396.6815256095,\"close_time\":1511949549969,\"vwap\":0.2242283368454003,\"ema1\":0.2156203917512761,\"sma1\":0.20746259259259267,\"sma2\":0.20830200000000007,\"rsi_avg_gain\":0.001955325324933292,\"rsi_avg_loss\":0.0013731292279940222,\"rsi\":59},{\"period_id\":\"120m209991\",\"size\":\"120m\",\"time\":1511935200000,\"open\":0.2175,\"high\":0.22077,\"low\":0.214,\"close\":0.2205,\"volume\":2973725.5863664374,\"close_time\":1511942396778,\"vwap\":0.2199717737446829,\"ema1\":0.21504938428584686,\"sma1\":0.20727925925925936,\"sma2\":0.2079796666666667,\"rsi_avg_gain\":0.0018441965037743157,\"rsi_avg_loss\":0.0014787545532243315,\"rsi\":55},{\"period_id\":\"120m209990\",\"size\":\"120m\",\"time\":1511928000000,\"open\":0.22001,\"high\":0.22217,\"low\":0.2151,\"close\":0.2175,\"volume\":1326236.08597484,\"close_time\":1511935186922,\"vwap\":0.21757181243802545,\"ema1\":0.2146734797538363,\"sma1\":0.20712027777777783,\"sma2\":0.2077513333333334,\"rsi_avg_gain\":0.001755288542526186,\"rsi_avg_loss\":0.001592504903472357,\"rsi\":52},{\"period_id\":\"120m209989\",\"size\":\"120m\",\"time\":1511920800000,\"open\":0.22788,\"high\":0.22788,\"low\":0.22,\"close\":0.22,\"volume\":579065.919381,\"close_time\":1511926770791,\"vwap\":0.22011963611779267,\"ema1\":0.2144785473230664,\"sma1\":0.2068621296296297,\"sma2\":0.20747766666666675,\"rsi_avg_gain\":0.0018903107381051233,\"rsi_avg_loss\":0.0015226975883548457,\"rsi\":55},{\"period_id\":\"120m209988\",\"size\":\"120m\",\"time\":1511913600000,\"open\":0.23498,\"high\":0.235,\"low\":0.22137,\"close\":0.227,\"volume\":1532362.66207104,\"close_time\":1511920523754,\"vwap\":0.22796338690581003,\"ema1\":0.21409775748327786,\"sma1\":0.20650898148148156,\"sma2\":0.20706983333333343,\"rsi_avg_gain\":0.002035719256420902,\"rsi_avg_loss\":0.0011013666336129103,\"rsi\":65},{\"period_id\":\"120m209987\",\"size\":\"120m\",\"time\":1511906400000,\"open\":0.22599,\"high\":0.235,\"low\":0.22402,\"close\":0.23374,\"volume\":5473626.6050023865,\"close_time\":1511913591464,\"vwap\":0.23451424234930532,\"ema1\":0.2132079476545384,\"sma1\":0.20614666666666673,\"sma2\":0.2065958333333334,\"rsi_avg_gain\":0.002192313045376356,\"rsi_avg_loss\":0.0006676256054292884,\"rsi\":77},{\"period_id\":\"120m209986\",\"size\":\"120m\",\"time\":1511899200000,\"open\":0.22344,\"high\":0.2275,\"low\":0.221,\"close\":0.22599,\"volume\":1912175.8815506604,\"close_time\":1511906390069,\"vwap\":0.22554327931067908,\"ema1\":0.21179194404450657,\"sma1\":0.2058545370370371,\"sma2\":0.20629600000000006,\"rsi_avg_gain\":0.0017647986642514598,\"rsi_avg_loss\":0.0007189814212315414,\"rsi\":71},{\"period_id\":\"120m209985\",\"size\":\"120m\",\"time\":1511892000000,\"open\":0.22245,\"high\":0.22395,\"low\":0.22021,\"close\":0.22111,\"volume\":1405796.5932471403,\"close_time\":1511899189317,\"vwap\":0.22257721513494608,\"ema1\":0.21081276777171393,\"sma1\":0.20559564814814818,\"sma2\":0.2060825,\"rsi_avg_gain\":0.0015251677922708032,\"rsi_avg_loss\":0.0007742876844031984,\"rsi\":66},{\"period_id\":\"120m209984\",\"size\":\"120m\",\"time\":1511884800000,\"open\":0.2223,\"high\":0.22769,\"low\":0.2201,\"close\":0.223,\"volume\":3903963.718945954,\"close_time\":1511891998498,\"vwap\":0.2230391196615298,\"ema1\":0.21010261382493559,\"sma1\":0.20531611111111112,\"sma2\":0.20581599999999997,\"rsi_avg_gain\":0.0016424883916762495,\"rsi_avg_loss\":0.0006884636601265212,\"rsi\":70},{\"period_id\":\"120m209983\",\"size\":\"120m\",\"time\":1511877600000,\"open\":0.21498,\"high\":0.2223,\"low\":0.21382,\"close\":0.2223,\"volume\":3476791.268732116,\"close_time\":1511884789277,\"vwap\":0.2217788663610085,\"ema1\":0.20921313891631046,\"sma1\":0.20508092592592592,\"sma2\":0.20551100000000003,\"rsi_avg_gain\":0.0017149874987282682,\"rsi_avg_loss\":0.0007414224032131767,\"rsi\":70},{\"period_id\":\"120m209982\",\"size\":\"120m\",\"time\":1511870400000,\"open\":0.21701,\"high\":0.21897,\"low\":0.21,\"close\":0.21324,\"volume\":1580030.8104449601,\"close_time\":1511877576662,\"vwap\":0.21425645780819513,\"ema1\":0.20831059677260774,\"sma1\":0.20487055555555556,\"sma2\":0.20535616666666667,\"rsi_avg_gain\":0.0011499865370919824,\"rsi_avg_loss\":0.0007984548957680363,\"rsi\":59},{\"period_id\":\"120m209981\",\"size\":\"120m\",\"time\":1511863200000,\"open\":0.2144,\"high\":0.21995,\"low\":0.21399,\"close\":0.21797,\"volume\":2105043.1876786407,\"close_time\":1511870399364,\"vwap\":0.2166527236788207,\"ema1\":0.2079706379293393,\"sma1\":0.20467657407407408,\"sma2\":0.2050981666666667,\"rsi_avg_gain\":0.0012384470399452118,\"rsi_avg_loss\":0.0004960283492886556,\"rsi\":71},{\"period_id\":\"120m209980\",\"size\":\"120m\",\"time\":1511856000000,\"open\":0.21703,\"high\":0.218,\"low\":0.20949,\"close\":0.215,\"volume\":1955352.6909786584,\"close_time\":1511863185135,\"vwap\":0.21407103727506893,\"ema1\":0.20728102675205237,\"sma1\":0.20445435185185185,\"sma2\":0.2048826666666667,\"rsi_avg_gain\":0.0011052506584025357,\"rsi_avg_loss\":0.0005341843761570138,\"rsi\":67},{\"period_id\":\"120m209979\",\"size\":\"120m\",\"time\":1511848800000,\"open\":0.2126,\"high\":0.21772,\"low\":0.2101,\"close\":0.21602,\"volume\":1171198.8276388498,\"close_time\":1511855966678,\"vwap\":0.21676315072866936,\"ema1\":0.20674868376943528,\"sma1\":0.20422814814814816,\"sma2\":0.2046606666666667,\"rsi_avg_gain\":0.0011902699398181154,\"rsi_avg_loss\":0.0004968139435537077,\"rsi\":71},{\"period_id\":\"120m209978\",\"size\":\"120m\",\"time\":1511841600000,\"open\":0.21568,\"high\":0.218,\"low\":0.2126,\"close\":0.213,\"volume\":1039125.3916204604,\"close_time\":1511848787131,\"vwap\":0.21312221054227545,\"ema1\":0.206109282650086,\"sma1\":0.20400620370370373,\"sma2\":0.20447433333333334,\"rsi_avg_gain\":0.0010495214736502786,\"rsi_avg_loss\":0.0005350304007501469,\"rsi\":66},{\"period_id\":\"120m209977\",\"size\":\"120m\",\"time\":1511834400000,\"open\":0.21,\"high\":0.21809,\"low\":0.20801,\"close\":0.21576,\"volume\":3468057.7474857005,\"close_time\":1511841578393,\"vwap\":0.2165881918432649,\"ema1\":0.20563406076388502,\"sma1\":0.2037875,\"sma2\":0.20425250000000003,\"rsi_avg_gain\":0.0011302538947003,\"rsi_avg_loss\":0.00036387889311554185,\"rsi\":76},{\"period_id\":\"120m209976\",\"size\":\"120m\",\"time\":1511827200000,\"open\":0.205,\"high\":0.21,\"low\":0.205,\"close\":0.21,\"volume\":1558481.138053661,\"close_time\":1511834380900,\"vwap\":0.20999999999999996,\"ema1\":0.20493572012691158,\"sma1\":0.2036434259259259,\"sma2\":0.20412683333333337,\"rsi_avg_gain\":0.0007741195789080145,\"rsi_avg_loss\":0.0003918695772013528,\"rsi\":66},{\"period_id\":\"120m209975\",\"size\":\"120m\",\"time\":1511820000000,\"open\":0.20599,\"high\":0.2065,\"low\":0.2048,\"close\":0.205,\"volume\":389789.4495868001,\"close_time\":1511827185105,\"vwap\":0.2056472897630198,\"ema1\":0.20458645944600892,\"sma1\":0.20358314814814815,\"sma2\":0.2040988333333334,\"rsi_avg_gain\":0.0004490518542086307,\"rsi_avg_loss\":0.00042201339083222607,\"rsi\":52},{\"period_id\":\"120m209974\",\"size\":\"120m\",\"time\":1511812800000,\"open\":0.20676,\"high\":0.2072,\"low\":0.205,\"close\":0.20599,\"volume\":1422752.5999248598,\"close_time\":1511819964513,\"vwap\":0.2059939304849362,\"ema1\":0.20455793940780265,\"sma1\":0.20345999999999995,\"sma2\":0.20407566666666666,\"rsi_avg_gain\":0.00048359430453237155,\"rsi_avg_loss\":0.00037832211320393435,\"rsi\":56},{\"period_id\":\"120m209973\",\"size\":\"120m\",\"time\":1511805600000,\"open\":0.2056,\"high\":0.2075,\"low\":0.20438,\"close\":0.20677,\"volume\":1196450.54110655,\"close_time\":1511812798973,\"vwap\":0.20628616621658474,\"ema1\":0.20445917660834076,\"sma1\":0.2033433333333333,\"sma2\":0.20399083333333332,\"rsi_avg_gain\":0.000520793866419477,\"rsi_avg_loss\":0.00034742381421962133,\"rsi\":60},{\"period_id\":\"120m209972\",\"size\":\"120m\",\"time\":1511798400000,\"open\":0.20379,\"high\":0.20596,\"low\":0.2036,\"close\":0.2056,\"volume\":1021665.5822057405,\"close_time\":1511805533503,\"vwap\":0.20503821847881182,\"ema1\":0.2042998094778815,\"sma1\":0.20321870370370365,\"sma2\":0.20394649999999998,\"rsi_avg_gain\":0.0004708549330671288,\"rsi_avg_loss\":0.000374148723005746,\"rsi\":56},{\"period_id\":\"120m209971\",\"size\":\"120m\",\"time\":1511791200000,\"open\":0.20492,\"high\":0.2057,\"low\":0.20361,\"close\":0.20362,\"volume\":1156598.33650544,\"close_time\":1511798339155,\"vwap\":0.20479124962531792,\"ema1\":0.20421014116601127,\"sma1\":0.2030909259259259,\"sma2\":0.20390683333333334,\"rsi_avg_gain\":0.00035476685099536875,\"rsi_avg_loss\":0.00040292939400618803,\"rsi\":47},{\"period_id\":\"120m209970\",\"size\":\"120m\",\"time\":1511784000000,\"open\":0.20488,\"high\":0.205,\"low\":0.203,\"close\":0.20499,\"volume\":1106405.0097936601,\"close_time\":1511791177277,\"vwap\":0.2048252919029721,\"ema1\":0.20425084055677067,\"sma1\":0.20297490740740737,\"sma2\":0.20384716666666666,\"rsi_avg_gain\":0.00038205660876424325,\"rsi_avg_loss\":0.00032853934739127865,\"rsi\":54},{\"period_id\":\"120m209969\",\"size\":\"120m\",\"time\":1511776800000,\"open\":0.2043,\"high\":0.20497,\"low\":0.20151,\"close\":0.2045,\"volume\":1162813.67094193,\"close_time\":1511783982966,\"vwap\":0.20453619559504002,\"ema1\":0.2041998640434445,\"sma1\":0.20285972222222218,\"sma2\":0.2037865,\"rsi_avg_gain\":0.0003737532709768759,\"rsi_avg_loss\":0.00035381160488291545,\"rsi\":51},{\"period_id\":\"120m209968\",\"size\":\"120m\",\"time\":1511769600000,\"open\":0.2048,\"high\":0.2055,\"low\":0.202,\"close\":0.20445,\"volume\":1043370.4015265596,\"close_time\":1511776708321,\"vwap\":0.20356871661351028,\"ema1\":0.20417916501195793,\"sma1\":0.20275324074074075,\"sma2\":0.20371350000000002,\"rsi_avg_gain\":0.0003986573687443283,\"rsi_avg_loss\":0.00038102788218160124,\"rsi\":51},{\"period_id\":\"120m209967\",\"size\":\"120m\",\"time\":1511762400000,\"open\":0.204,\"high\":0.2056,\"low\":0.2035,\"close\":0.2048,\"volume\":727163.5247073199,\"close_time\":1511769598414,\"vwap\":0.20495484873602757,\"ema1\":0.20416048673692055,\"sma1\":0.20261805555555554,\"sma2\":0.20366683333333338,\"rsi_avg_gain\":0.0004293233201861998,\"rsi_avg_loss\":0.00038341464234941546,\"rsi\":53},{\"period_id\":\"120m209966\",\"size\":\"120m\",\"time\":1511755200000,\"open\":0.20399,\"high\":0.2049,\"low\":0.2035,\"close\":0.2049,\"volume\":169624.14325531002,\"close_time\":1511762296420,\"vwap\":0.2041253202644334,\"ema1\":0.20411638237394955,\"sma1\":0.20250296296296297,\"sma2\":0.2035981666666667,\"rsi_avg_gain\":0.0004623481909697536,\"rsi_avg_loss\":0.00040521576868398674,\"rsi\":53},{\"period_id\":\"120m209965\",\"size\":\"120m\",\"time\":1511748000000,\"open\":0.20393,\"high\":0.20403,\"low\":0.20161,\"close\":0.20349,\"volume\":152512.01532671004,\"close_time\":1511754632407,\"vwap\":0.20273445271113738,\"ema1\":0.20406233977904953,\"sma1\":0.20239157407407407,\"sma2\":0.2035233333333334,\"rsi_avg_gain\":0.0003894518979674274,\"rsi_avg_loss\":0.0004363862124289088,\"rsi\":47},{\"period_id\":\"120m209964\",\"size\":\"120m\",\"time\":1511740800000,\"open\":0.20231,\"high\":0.20396,\"low\":0.2013,\"close\":0.20352,\"volume\":209917.99183870008,\"close_time\":1511747968177,\"vwap\":0.20331879224970925,\"ema1\":0.2041018114879495,\"sma1\":0.20228796296296295,\"sma2\":0.2034266666666667,\"rsi_avg_gain\":0.00041940973627261415,\"rsi_avg_loss\":0.0004676466903080555,\"rsi\":47},{\"period_id\":\"120m209963\",\"size\":\"120m\",\"time\":1511733600000,\"open\":0.2026,\"high\":0.20495,\"low\":0.201,\"close\":0.20325,\"volume\":635724.2675824101,\"close_time\":1511740746473,\"vwap\":0.20220912707561622,\"ema1\":0.20414193641815293,\"sma1\":0.20218731481481478,\"sma2\":0.20334450000000007,\"rsi_avg_gain\":0.00043090279290896753,\"rsi_avg_loss\":0.0005036195126394444,\"rsi\":46},{\"period_id\":\"120m209962\",\"size\":\"120m\",\"time\":1511726400000,\"open\":0.202,\"high\":0.20407,\"low\":0.201,\"close\":0.2026,\"volume\":465787.79993479024,\"close_time\":1511733598819,\"vwap\":0.2023736210458021,\"ema1\":0.20420344927457726,\"sma1\":0.20209481481481475,\"sma2\":0.20330283333333338,\"rsi_avg_gain\":0.000414049161594274,\"rsi_avg_loss\":0.0005423594751501709,\"rsi\":43},{\"period_id\":\"120m209961\",\"size\":\"120m\",\"time\":1511719200000,\"open\":0.2035,\"high\":0.20509,\"low\":0.2011,\"close\":0.202,\"volume\":861816.7927144095,\"close_time\":1511726348696,\"vwap\":0.2028701217727616,\"ema1\":0.2043140319831688,\"sma1\":0.201999074074074,\"sma2\":0.20326950000000005,\"rsi_avg_gain\":0.00039974525094768046,\"rsi_avg_loss\":0.0005840794347771072,\"rsi\":41},{\"period_id\":\"120m209960\",\"size\":\"120m\",\"time\":1511712000000,\"open\":0.20403,\"high\":0.2056,\"low\":0.203,\"close\":0.2035,\"volume\":878007.2638635704,\"close_time\":1511719170255,\"vwap\":0.20346284187985247,\"ema1\":0.20447362039580114,\"sma1\":0.20191018518518516,\"sma2\":0.20324416666666673,\"rsi_avg_gain\":0.00043049488563596356,\"rsi_avg_loss\":0.0005136240066830405,\"rsi\":46},{\"period_id\":\"120m209959\",\"size\":\"120m\",\"time\":1511704800000,\"open\":0.20491,\"high\":0.20563,\"low\":0.204,\"close\":0.204,\"volume\":516405.63428572,\"close_time\":1511711912210,\"vwap\":0.20469681857355737,\"ema1\":0.20454076662999432,\"sma1\":0.2018391666666666,\"sma2\":0.2032106666666667,\"rsi_avg_gain\":0.00046360987683873,\"rsi_avg_loss\":0.0005146720071971205,\"rsi\":47},{\"period_id\":\"120m209958\",\"size\":\"120m\",\"time\":1511697600000,\"open\":0.20503,\"high\":0.2057,\"low\":0.2039,\"close\":0.205,\"volume\":523334.76196654997,\"close_time\":1511704792409,\"vwap\":0.2048358703927884,\"ema1\":0.20457806088033875,\"sma1\":0.20177712962962957,\"sma2\":0.20317433333333337,\"rsi_avg_gain\":0.0004992721750570939,\"rsi_avg_loss\":0.000477339084673822,\"rsi\":51},{\"period_id\":\"120m209957\",\"size\":\"120m\",\"time\":1511690400000,\"open\":0.2046,\"high\":0.20647,\"low\":0.2034,\"close\":0.2058,\"volume\":814346.0664185897,\"close_time\":1511697529865,\"vwap\":0.20572436395485244,\"ema1\":0.20454896163070693,\"sma1\":0.20171722222222216,\"sma2\":0.2031126666666667,\"rsi_avg_gain\":0.0005376777269845626,\"rsi_avg_loss\":0.00045251901426411427,\"rsi\":54},{\"period_id\":\"120m209956\",\"size\":\"120m\",\"time\":1511683200000,\"open\":0.20497,\"high\":0.2061,\"low\":0.203,\"close\":0.20484,\"volume\":532312.11396432,\"close_time\":1511690345924,\"vwap\":0.20451493625505604,\"ema1\":0.2044626831224798,\"sma1\":0.2016079629629629,\"sma2\":0.20306733333333335,\"rsi_avg_gain\":0.0005051913982910661,\"rsi_avg_loss\":0.00048732816920750763,\"rsi\":51},{\"period_id\":\"120m209955\",\"size\":\"120m\",\"time\":1511676000000,\"open\":0.20519,\"high\":0.20636,\"low\":0.20321,\"close\":0.205,\"volume\":265488.4841529699,\"close_time\":1511683195091,\"vwap\":0.2044805327415093,\"ema1\":0.20443666126885773,\"sma1\":0.2015114814814814,\"sma2\":0.20302150000000005,\"rsi_avg_gain\":0.0005440522750826866,\"rsi_avg_loss\":0.0005125072591465471,\"rsi\":51},{\"period_id\":\"120m209954\",\"size\":\"120m\",\"time\":1511668800000,\"open\":0.20465,\"high\":0.20601,\"low\":0.20355,\"close\":0.20601,\"volume\":185167.23776778998,\"close_time\":1511675783840,\"vwap\":0.20483812147577496,\"ema1\":0.2043978103218824,\"sma1\":0.201427037037037,\"sma2\":0.20296283333333337,\"rsi_avg_gain\":0.0005859024500890471,\"rsi_avg_loss\":0.0004742385867732038,\"rsi\":55},{\"period_id\":\"120m209953\",\"size\":\"120m\",\"time\":1511661600000,\"open\":0.204,\"high\":0.20552,\"low\":0.2036,\"close\":0.20409,\"volume\":169137.82431805995,\"close_time\":1511668637151,\"vwap\":0.2043832796095205,\"ema1\":0.2042866248268398,\"sma1\":0.20133425925925919,\"sma2\":0.2028946666666667,\"rsi_avg_gain\":0.000483279561634358,\"rsi_avg_loss\":0.0005107184780634502,\"rsi\":49},{\"period_id\":\"120m209952\",\"size\":\"120m\",\"time\":1511654400000,\"open\":0.2072,\"high\":0.2072,\"low\":0.2036,\"close\":0.20431,\"volume\":606910.1181575202,\"close_time\":1511661581796,\"vwap\":0.2042842544230525,\"ema1\":0.20430018515972528,\"sma1\":0.2012018518518518,\"sma2\":0.2029205,\"rsi_avg_gain\":0.0005204549125293086,\"rsi_avg_loss\":0.000533081437914485,\"rsi\":49},{\"period_id\":\"120m209951\",\"size\":\"120m\",\"time\":1511647200000,\"open\":0.20798,\"high\":0.208,\"low\":0.2062,\"close\":0.20755,\"volume\":640851.1185827403,\"close_time\":1511654269926,\"vwap\":0.207431167156542,\"ema1\":0.2042995082741891,\"sma1\":0.20115555555555548,\"sma2\":0.20279466666666665,\"rsi_avg_gain\":0.0005604899058007939,\"rsi_avg_loss\":0.00032485693313867456,\"rsi\":63},{\"period_id\":\"120m209950\",\"size\":\"120m\",\"time\":1511640000000,\"open\":0.2078,\"high\":0.208,\"low\":0.207,\"close\":0.20798,\"volume\":583376.7692860903,\"close_time\":1511647194817,\"vwap\":0.2078500428250824,\"ema1\":0.20407533643102974,\"sma1\":0.2011648148148147,\"sma2\":0.20277833333333334,\"rsi_avg_gain\":0.0006036045139393165,\"rsi_avg_loss\":0.0003167690049185737,\"rsi\":66},{\"period_id\":\"120m209949\",\"size\":\"120m\",\"time\":1511632800000,\"open\":0.20704,\"high\":0.208,\"low\":0.20698,\"close\":0.2078,\"volume\":693878.2040950699,\"close_time\":1511639923044,\"vwap\":0.2079796143590508,\"ema1\":0.20380604928834212,\"sma1\":0.20109999999999992,\"sma2\":0.2027316666666667,\"rsi_avg_gain\":0.0006361894765500344,\"rsi_avg_loss\":0.00034113585145077166,\"rsi\":65},{\"period_id\":\"120m209948\",\"size\":\"120m\",\"time\":1511625600000,\"open\":0.20765,\"high\":0.2085,\"low\":0.20601,\"close\":0.20747,\"volume\":1253601.6867732797,\"close_time\":1511632705865,\"vwap\":0.20746890797793824,\"ema1\":0.20353060441167606,\"sma1\":0.20111203703703695,\"sma2\":0.20269050000000002,\"rsi_avg_gain\":0.0006597425132077275,\"rsi_avg_loss\":0.0003673770707931387,\"rsi\":64},{\"period_id\":\"120m209947\",\"size\":\"120m\",\"time\":1511618400000,\"open\":0.20502,\"high\":0.209,\"low\":0.20309,\"close\":0.20766,\"volume\":2273022.4174963282,\"close_time\":1511625590556,\"vwap\":0.20775258820383463,\"ema1\":0.20325892195730888,\"sma1\":0.2012138888888888,\"sma2\":0.20263783333333332,\"rsi_avg_gain\":0.0007104919373006295,\"rsi_avg_loss\":0.0003810214608541476,\"rsi\":65},{\"period_id\":\"120m209946\",\"size\":\"120m\",\"time\":1511611200000,\"open\":0.204,\"high\":0.2065,\"low\":0.20301,\"close\":0.205,\"volume\":1099203.7551069506,\"close_time\":1511618393805,\"vwap\":0.2061220419960684,\"ema1\":0.202955399333675,\"sma1\":0.20133888888888882,\"sma2\":0.20258283333333332,\"rsi_avg_gain\":0.0005605297786314454,\"rsi_avg_loss\":0.00041033080399677436,\"rsi\":58},{\"period_id\":\"120m209945\",\"size\":\"120m\",\"time\":1511604000000,\"open\":0.20388,\"high\":0.2045,\"low\":0.20223,\"close\":0.20415,\"volume\":416695.1976930502,\"close_time\":1511611180381,\"vwap\":0.20391409548842693,\"ema1\":0.20281439239116986,\"sma1\":0.2010916666666666,\"sma2\":0.20257166666666668,\"rsi_avg_gain\":0.0005382628385261727,\"rsi_avg_loss\":0.0004418947119965262,\"rsi\":55},{\"period_id\":\"120m209944\",\"size\":\"120m\",\"time\":1511596800000,\"open\":0.204,\"high\":0.2043,\"low\":0.2,\"close\":0.2028,\"volume\":499000.01411457005,\"close_time\":1511603793654,\"vwap\":0.2024939281685806,\"ema1\":0.20272228152159535,\"sma1\":0.20085351851851846,\"sma2\":0.202525,\"rsi_avg_gain\":0.00047582151841280213,\"rsi_avg_loss\":0.0004758866129193359,\"rsi\":50},{\"period_id\":\"120m209943\",\"size\":\"120m\",\"time\":1511589600000,\"open\":0.20457,\"high\":0.20497,\"low\":0.202,\"close\":0.204,\"volume\":533388.0454640301,\"close_time\":1511596780677,\"vwap\":0.20380776777319473,\"ema1\":0.20271692162653296,\"sma1\":0.2006183333333333,\"sma2\":0.20245,\"rsi_avg_gain\":0.0005124231736753253,\"rsi_avg_loss\":0.0004201855831439018,\"rsi\":55},{\"period_id\":\"120m209942\",\"size\":\"120m\",\"time\":1511582400000,\"open\":0.20222,\"high\":0.20499,\"low\":0.20222,\"close\":0.20457,\"volume\":236988.47305102003,\"close_time\":1511589387547,\"vwap\":0.20415299339065238,\"ema1\":0.20262843346284556,\"sma1\":0.2003841666666666,\"sma2\":0.2023905,\"rsi_avg_gain\":0.0005518403408811196,\"rsi_avg_loss\":0.00040866139723189315,\"rsi\":57},{\"period_id\":\"120m209941\",\"size\":\"120m\",\"time\":1511575200000,\"open\":0.20348,\"high\":0.2045,\"low\":0.2016,\"close\":0.20349,\"volume\":265972.30650534004,\"close_time\":1511581116624,\"vwap\":0.20307958184662725,\"ema1\":0.20249453232235215,\"sma1\":0.20015703703703697,\"sma2\":0.20233233333333328,\"rsi_avg_gain\":0.000511212674795052,\"rsi_avg_loss\":0.00044009688932665416,\"rsi\":54},{\"period_id\":\"120m209940\",\"size\":\"120m\",\"time\":1511568000000,\"open\":0.20287,\"high\":0.20355,\"low\":0.2,\"close\":0.2035,\"volume\":868469.9902756196,\"close_time\":1511575142890,\"vwap\":0.20339885257069684,\"ema1\":0.2024258793790661,\"sma1\":0.19994731481481476,\"sma2\":0.20222166666666663,\"rsi_avg_gain\":0.0005505367267023637,\"rsi_avg_loss\":0.00047318126542870585,\"rsi\":54},{\"period_id\":\"120m209939\",\"size\":\"120m\",\"time\":1511560800000,\"open\":0.20138,\"high\":0.203,\"low\":0.2001,\"close\":0.20288,\"volume\":814359.5293872693,\"close_time\":1511567995794,\"vwap\":0.2023839684941778,\"ema1\":0.20235180209486375,\"sma1\":0.19972231481481478,\"sma2\":0.20209016666666665,\"rsi_avg_gain\":0.0005451933979871622,\"rsi_avg_loss\":0.0005095798243078371,\"rsi\":52},{\"period_id\":\"120m209938\",\"size\":\"120m\",\"time\":1511553600000,\"open\":0.202,\"high\":0.2029,\"low\":0.20001,\"close\":0.20138,\"volume\":909864.2336225205,\"close_time\":1511560780503,\"vwap\":0.20105355953919127,\"ema1\":0.2023153746531302,\"sma1\":0.1995009259259259,\"sma2\":0.2019838333333333,\"rsi_avg_gain\":0.00047174673629386696,\"rsi_avg_loss\":0.0005487782723315168,\"rsi\":46},{\"period_id\":\"120m209937\",\"size\":\"120m\",\"time\":1511546400000,\"open\":0.202,\"high\":0.20249,\"low\":0.20015,\"close\":0.202,\"volume\":696364.2606540502,\"close_time\":1511553569847,\"vwap\":0.20180633842566023,\"ema1\":0.2023798832498978,\"sma1\":0.19928240740740738,\"sma2\":0.20186599999999996,\"rsi_avg_gain\":0.0005080349467780106,\"rsi_avg_loss\":0.0005432996778954789,\"rsi\":48},{\"period_id\":\"120m209936\",\"size\":\"120m\",\"time\":1511539200000,\"open\":0.20135,\"high\":0.2028,\"low\":0.1999,\"close\":0.202,\"volume\":838008.0614882995,\"close_time\":1511546341797,\"vwap\":0.20192604257641322,\"ema1\":0.20240608209471833,\"sma1\":0.19905398148148143,\"sma2\":0.2017648333333333,\"rsi_avg_gain\":0.0005471145580686268,\"rsi_avg_loss\":0.0005850919608105158,\"rsi\":48},{\"period_id\":\"120m209935\",\"size\":\"120m\",\"time\":1511532000000,\"open\":0.20116,\"high\":0.20293,\"low\":0.199,\"close\":0.201,\"volume\":1265678.3266009598,\"close_time\":1511539137387,\"vwap\":0.20014283979701125,\"ema1\":0.20243408775642305,\"sma1\":0.19883574074074073,\"sma2\":0.20167316666666663,\"rsi_avg_gain\":0.0005122772163815981,\"rsi_avg_loss\":0.0006300990347190171,\"rsi\":45},{\"period_id\":\"120m209934\",\"size\":\"120m\",\"time\":1511524800000,\"open\":0.20247,\"high\":0.20311,\"low\":0.20045,\"close\":0.20045,\"volume\":1051248.8631149305,\"close_time\":1511531987163,\"vwap\":0.20114150807001063,\"ema1\":0.2025329903603143,\"sma1\":0.1986217592592592,\"sma2\":0.20158066666666663,\"rsi_avg_gain\":0.0005093754637955655,\"rsi_avg_loss\":0.0006785681912358645,\"rsi\":43},{\"period_id\":\"120m209933\",\"size\":\"120m\",\"time\":1511517600000,\"open\":0.20097,\"high\":0.203,\"low\":0.2,\"close\":0.20129,\"volume\":847409.5129088698,\"close_time\":1511524791332,\"vwap\":0.20191961589408214,\"ema1\":0.2026766448679222,\"sma1\":0.1984087962962962,\"sma2\":0.20148833333333335,\"rsi_avg_gain\":0.0005485581917798397,\"rsi_avg_loss\":0.0006661503597924688,\"rsi\":45},{\"period_id\":\"120m209932\",\"size\":\"120m\",\"time\":1511510400000,\"open\":0.2011,\"high\":0.2052,\"low\":0.198,\"close\":0.20099,\"volume\":2117724.14763733,\"close_time\":1511517580684,\"vwap\":0.20118402351805287,\"ema1\":0.20277227554846855,\"sma1\":0.1981754629629629,\"sma2\":0.20136316666666668,\"rsi_avg_gain\":0.0005676780526859816,\"rsi_avg_loss\":0.0007173926951611203,\"rsi\":44},{\"period_id\":\"120m209931\",\"size\":\"120m\",\"time\":1511503200000,\"open\":0.2038,\"high\":0.20585,\"low\":0.20116,\"close\":0.20116,\"volume\":970807.4843226504,\"close_time\":1511510399395,\"vwap\":0.20162712771392818,\"ema1\":0.20289519110353535,\"sma1\":0.1979268518518518,\"sma2\":0.20119150000000005,\"rsi_avg_gain\":0.0006113455952002879,\"rsi_avg_loss\":0.0007594998255581292,\"rsi\":45},{\"period_id\":\"120m209930\",\"size\":\"120m\",\"time\":1511496000000,\"open\":0.20358,\"high\":0.20486,\"low\":0.20251,\"close\":0.2038,\"volume\":746805.5528653798,\"close_time\":1511503045501,\"vwap\":0.20307969207729676,\"ema1\":0.2030148594555033,\"sma1\":0.1976733333333333,\"sma2\":0.20100000000000004,\"rsi_avg_gain\":0.0006583721794464639,\"rsi_avg_loss\":0.0006148459659856773,\"rsi\":52},{\"period_id\":\"120m209929\",\"size\":\"120m\",\"time\":1511488800000,\"open\":0.20201,\"high\":0.20798,\"low\":0.20201,\"close\":0.20358,\"volume\":230578.55803913996,\"close_time\":1511495740182,\"vwap\":0.20459644122194667,\"ema1\":0.2029607118317449,\"sma1\":0.19739055555555549,\"sma2\":0.20084200000000008,\"rsi_avg_gain\":0.0006920931163269614,\"rsi_avg_loss\":0.0006621418095230372,\"rsi\":51},{\"period_id\":\"120m209928\",\"size\":\"120m\",\"time\":1511481600000,\"open\":0.2052,\"high\":0.20711,\"low\":0.20201,\"close\":0.20253,\"volume\":1199177.8151506893,\"close_time\":1511488793439,\"vwap\":0.20249043869910915,\"ema1\":0.20291800230289972,\"sma1\":0.19711601851851843,\"sma2\":0.2006783333333334,\"rsi_avg_gain\":0.0006645618175828797,\"rsi_avg_loss\":0.0007130757948709632,\"rsi\":48},{\"period_id\":\"120m209927\",\"size\":\"120m\",\"time\":1511474400000,\"open\":0.2079,\"high\":0.2095,\"low\":0.2053,\"close\":0.2053,\"volume\":1323081.9437753898,\"close_time\":1511481589039,\"vwap\":0.20653020932107505,\"ema1\":0.20294476108241005,\"sma1\":0.1968067592592592,\"sma2\":0.2004733333333334,\"rsi_avg_gain\":0.0007156819573969473,\"rsi_avg_loss\":0.0005548508560148817,\"rsi\":56},{\"period_id\":\"120m209926\",\"size\":\"120m\",\"time\":1511467200000,\"open\":0.2083,\"high\":0.21,\"low\":0.20729,\"close\":0.208,\"volume\":1275330.9965464398,\"close_time\":1511474376676,\"vwap\":0.2076361911928582,\"ema1\":0.20278233081223143,\"sma1\":0.19650212962962957,\"sma2\":0.20023533333333343,\"rsi_avg_gain\":0.000770734415658251,\"rsi_avg_loss\":0.00038983938340064327,\"rsi\":66},{\"period_id\":\"120m209925\",\"size\":\"120m\",\"time\":1511460000000,\"open\":0.20701,\"high\":0.2083,\"low\":0.20646,\"close\":0.2083,\"volume\":1232249.5481780006,\"close_time\":1511467164713,\"vwap\":0.20796205570478848,\"ema1\":0.20242249155790257,\"sma1\":0.1962262037037037,\"sma2\":0.19996883333333343,\"rsi_avg_gain\":0.0008300216784011934,\"rsi_avg_loss\":0.00039675010520069106,\"rsi\":68},{\"period_id\":\"120m209924\",\"size\":\"120m\",\"time\":1511452800000,\"open\":0.204,\"high\":0.208,\"low\":0.20257,\"close\":0.20701,\"volume\":3353333.3538510166,\"close_time\":1511459973168,\"vwap\":0.20696375861124164,\"ema1\":0.20201714614810273,\"sma1\":0.19595518518518512,\"sma2\":0.1997133333333334,\"rsi_avg_gain\":0.0007946387305858996,\"rsi_avg_loss\":0.0004272693440622827,\"rsi\":65},{\"period_id\":\"120m209923\",\"size\":\"120m\",\"time\":1511445600000,\"open\":0.2038,\"high\":0.204,\"low\":0.20277,\"close\":0.204,\"volume\":1068651.5517517899,\"close_time\":1511452787259,\"vwap\":0.20389106541681956,\"ema1\":0.20167281139969603,\"sma1\":0.1957237037037037,\"sma2\":0.1995003333333334,\"rsi_avg_gain\":0.0006242263252463525,\"rsi_avg_loss\":0.0004601362166824583,\"rsi\":58},{\"period_id\":\"120m209922\",\"size\":\"120m\",\"time\":1511438400000,\"open\":0.2015,\"high\":0.20473,\"low\":0.20108,\"close\":0.20395,\"volume\":1206952.5871110403,\"close_time\":1511445599875,\"vwap\":0.2039176997273917,\"ema1\":0.20151231563415783,\"sma1\":0.19546222222222218,\"sma2\":0.19929783333333342,\"rsi_avg_gain\":0.0006683975810345339,\"rsi_avg_loss\":0.0004955313102734167,\"rsi\":57},{\"period_id\":\"120m209921\",\"size\":\"120m\",\"time\":1511431200000,\"open\":0.20205,\"high\":0.203,\"low\":0.2004,\"close\":0.20249,\"volume\":1267427.7514401998,\"close_time\":1511438314499,\"vwap\":0.20180623410762805,\"ema1\":0.2013441994709963,\"sma1\":0.19522138888888882,\"sma2\":0.19912800000000005,\"rsi_avg_gain\":0.0006075050872679604,\"rsi_avg_loss\":0.0005336491033713719,\"rsi\":53},{\"period_id\":\"120m209920\",\"size\":\"120m\",\"time\":1511424000000,\"open\":0.20271,\"high\":0.20348,\"low\":0.201,\"close\":0.20207,\"volume\":1254282.6533809998,\"close_time\":1511431188336,\"vwap\":0.20194919492836375,\"ema1\":0.2012651787448581,\"sma1\":0.19496888888888883,\"sma2\":0.19896916666666672,\"rsi_avg_gain\":0.0006219285555193417,\"rsi_avg_loss\":0.000574699034399939,\"rsi\":52},{\"period_id\":\"120m209919\",\"size\":\"120m\",\"time\":1511416800000,\"open\":0.20352,\"high\":0.20488,\"low\":0.2016,\"close\":0.2027,\"volume\":783677.1050473005,\"close_time\":1511423997249,\"vwap\":0.20282222768453814,\"ema1\":0.2012096738307104,\"sma1\":0.19470703703703704,\"sma2\":0.1987408333333334,\"rsi_avg_gain\":0.0006697692136362142,\"rsi_avg_loss\":0.0005704451139691657,\"rsi\":54},{\"period_id\":\"120m209918\",\"size\":\"120m\",\"time\":1511409600000,\"open\":0.20235,\"high\":0.2044,\"low\":0.20158,\"close\":0.20182,\"volume\":332666.98047993996,\"close_time\":1511416739820,\"vwap\":0.2033669342354231,\"ema1\":0.20110689271558696,\"sma1\":0.19445148148148148,\"sma2\":0.19854850000000004,\"rsi_avg_gain\":0.0006535976146851543,\"rsi_avg_loss\":0.0006143255073514092,\"rsi\":52},{\"period_id\":\"120m209917\",\"size\":\"120m\",\"time\":1511402400000,\"open\":0.20245,\"high\":0.20319,\"low\":0.2015,\"close\":0.20245,\"volume\":94018.41895133,\"close_time\":1511409541858,\"vwap\":0.2021536622810032,\"ema1\":0.2010577129028688,\"sma1\":0.19421824074074076,\"sma2\":0.19830600000000007,\"rsi_avg_gain\":0.0007038743542763201,\"rsi_avg_loss\":0.0006131197771476722,\"rsi\":53},{\"period_id\":\"120m209916\",\"size\":\"120m\",\"time\":1511395200000,\"open\":0.20288,\"high\":0.20406,\"low\":0.2015,\"close\":0.20246,\"volume\":905025.8519175604,\"close_time\":1511402350399,\"vwap\":0.20235841593768042,\"ema1\":0.20096169310306666,\"sma1\":0.1939537962962963,\"sma2\":0.1980830000000001,\"rsi_avg_gain\":0.0007580185353744986,\"rsi_avg_loss\":0.0006595136061590309,\"rsi\":53},{\"period_id\":\"120m209915\",\"size\":\"120m\",\"time\":1511388000000,\"open\":0.20468,\"high\":0.205,\"low\":0.2016,\"close\":0.20332,\"volume\":1224339.8817371898,\"close_time\":1511395061474,\"vwap\":0.20295425680412374,\"ema1\":0.20085836159293333,\"sma1\":0.19366212962962964,\"sma2\":0.1979130000000001,\"rsi_avg_gain\":0.0008163276534802293,\"rsi_avg_loss\":0.0006440915758635717,\"rsi\":56},{\"period_id\":\"120m209914\",\"size\":\"120m\",\"time\":1511380800000,\"open\":0.20168,\"high\":0.20488,\"low\":0.20151,\"close\":0.2046,\"volume\":1173801.88607649,\"close_time\":1511387995458,\"vwap\":0.20450299455207135,\"ema1\":0.20068859342692874,\"sma1\":0.19336222222222224,\"sma2\":0.19770300000000005,\"rsi_avg_gain\":0.0008791220883633238,\"rsi_avg_loss\":0.0005951755432376923,\"rsi\":60},{\"period_id\":\"120m209913\",\"size\":\"120m\",\"time\":1511373600000,\"open\":0.2012,\"high\":0.20292,\"low\":0.2,\"close\":0.20168,\"volume\":813905.8158250905,\"close_time\":1511380776554,\"vwap\":0.20223351484833343,\"ema1\":0.20041884124947554,\"sma1\":0.1930805555555556,\"sma2\":0.19755000000000006,\"rsi_avg_gain\":0.0007221314797758867,\"rsi_avg_loss\":0.0006409582773328993,\"rsi\":53},{\"period_id\":\"120m209912\",\"size\":\"120m\",\"time\":1511366400000,\"open\":0.20163,\"high\":0.204,\"low\":0.20009,\"close\":0.20294,\"volume\":1788743.1193710098,\"close_time\":1511373588986,\"vwap\":0.20203511587401768,\"ema1\":0.20033186478392212,\"sma1\":0.192797962962963,\"sma2\":0.1973983333333334,\"rsi_avg_gain\":0.0007776800551432626,\"rsi_avg_loss\":0.000593339683281583,\"rsi\":57},{\"period_id\":\"120m209911\",\"size\":\"120m\",\"time\":1511359200000,\"open\":0.20138,\"high\":0.202,\"low\":0.2,\"close\":0.20124,\"volume\":1000537.6612222702,\"close_time\":1511366359171,\"vwap\":0.20143499022822367,\"ema1\":0.20015199338970985,\"sma1\":0.19253407407407414,\"sma2\":0.1972928333333334,\"rsi_avg_gain\":0.0007067323670773591,\"rsi_avg_loss\":0.0006389811973801663,\"rsi\":53},{\"period_id\":\"120m209910\",\"size\":\"120m\",\"time\":1511352000000,\"open\":0.20086,\"high\":0.20185,\"low\":0.2,\"close\":0.20141,\"volume\":970720.5860405697,\"close_time\":1511359173776,\"vwap\":0.20074683506876181,\"ema1\":0.20007695845106915,\"sma1\":0.19227620370370374,\"sma2\":0.19719100000000003,\"rsi_avg_gain\":0.0007610963953140791,\"rsi_avg_loss\":0.0006750566741017173,\"rsi\":53},{\"period_id\":\"120m209909\",\"size\":\"120m\",\"time\":1511344800000,\"open\":0.20004,\"high\":0.202,\"low\":0.2,\"close\":0.20086,\"volume\":752880.6238023305,\"close_time\":1511351996965,\"vwap\":0.20145652341461392,\"ema1\":0.1999850245511429,\"sma1\":0.19202620370370374,\"sma2\":0.1971566666666667,\"rsi_avg_gain\":0.0007773345795690085,\"rsi_avg_loss\":0.0007269841105710801,\"rsi\":52},{\"period_id\":\"120m209908\",\"size\":\"120m\",\"time\":1511337600000,\"open\":0.20198,\"high\":0.202,\"low\":0.19969,\"close\":0.20007,\"volume\":653744.4946405801,\"close_time\":1511344770041,\"vwap\":0.20045574095320115,\"ema1\":0.19992468141673894,\"sma1\":0.19176601851851857,\"sma2\":0.19703050000000003,\"rsi_avg_gain\":0.0007763603164589312,\"rsi_avg_loss\":0.000782905965230394,\"rsi\":50},{\"period_id\":\"120m209907\",\"size\":\"120m\",\"time\":1511330400000,\"open\":0.20033,\"high\":0.203,\"low\":0.2,\"close\":0.202,\"volume\":652858.3084820701,\"close_time\":1511337347406,\"vwap\":0.20182928933362235,\"ema1\":0.19991465944547956,\"sma1\":0.19146509259259265,\"sma2\":0.19679716666666672,\"rsi_avg_gain\":0.000836080340801926,\"rsi_avg_loss\":0.0006946679625558077,\"rsi\":55},{\"period_id\":\"120m209906\",\"size\":\"120m\",\"time\":1511323200000,\"open\":0.1992,\"high\":0.2008,\"low\":0.199,\"close\":0.20078,\"volume\":199170.53298643001,\"close_time\":1511330223591,\"vwap\":0.20050041040335903,\"ema1\":0.19977084285551264,\"sma1\":0.19120675925925928,\"sma2\":0.19668500000000003,\"rsi_avg_gain\":0.000806548059325149,\"rsi_avg_loss\":0.0007481039596754852,\"rsi\":52},{\"period_id\":\"120m209905\",\"size\":\"120m\",\"time\":1511316000000,\"open\":0.19768,\"high\":0.19949,\"low\":0.19766,\"close\":0.199,\"volume\":139487.97756473004,\"close_time\":1511323109528,\"vwap\":0.19858964457887018,\"ema1\":0.19970124581106524,\"sma1\":0.19096027777777783,\"sma2\":0.19655366666666668,\"rsi_avg_gain\":0.0007316671408117008,\"rsi_avg_loss\":0.000805650418112061,\"rsi\":48},{\"period_id\":\"120m209904\",\"size\":\"120m\",\"time\":1511308800000,\"open\":0.1983,\"high\":0.1995,\"low\":0.1976,\"close\":0.19772,\"volume\":297919.29636284005,\"close_time\":1511315945772,\"vwap\":0.19818389380785995,\"ema1\":0.19974960759113872,\"sma1\":0.1907093518518519,\"sma2\":0.19639733333333337,\"rsi_avg_gain\":0.0006894876901049082,\"rsi_avg_loss\":0.0008676235271976041,\"rsi\":44},{\"period_id\":\"120m209903\",\"size\":\"120m\",\"time\":1511301600000,\"open\":0.20021,\"high\":0.2013,\"low\":0.198,\"close\":0.19832,\"volume\":1570212.2911061011,\"close_time\":1511308760197,\"vwap\":0.1988744517391006,\"ema1\":0.19988958052845862,\"sma1\":0.19041935185185185,\"sma2\":0.19626366666666673,\"rsi_avg_gain\":0.0007425252047283627,\"rsi_avg_loss\":0.0008882099523666514,\"rsi\":46},{\"period_id\":\"120m209902\",\"size\":\"120m\",\"time\":1511294400000,\"open\":0.20067,\"high\":0.2013,\"low\":0.2,\"close\":0.2001,\"volume\":826936.2524366702,\"close_time\":1511301577901,\"vwap\":0.20054645451211145,\"ema1\":0.19999782746145578,\"sma1\":0.1901387962962963,\"sma2\":0.19630866666666674,\"rsi_avg_gain\":0.000799642528169006,\"rsi_avg_loss\":0.0008196107179333166,\"rsi\":49},{\"period_id\":\"120m209901\",\"size\":\"120m\",\"time\":1511287200000,\"open\":0.20198,\"high\":0.204,\"low\":0.2,\"close\":0.2,\"volume\":1658189.0110132692,\"close_time\":1511294393668,\"vwap\":0.2001413860635652,\"ema1\":0.1999907810794872,\"sma1\":0.18983324074074073,\"sma2\":0.19622533333333342,\"rsi_avg_gain\":0.0008534611841820073,\"rsi_avg_loss\":0.0008826576962358794,\"rsi\":49},{\"period_id\":\"120m209900\",\"size\":\"120m\",\"time\":1511280000000,\"open\":0.20109,\"high\":0.202,\"low\":0.2006,\"close\":0.20198,\"volume\":655194.4879848204,\"close_time\":1511287150410,\"vwap\":0.20196006848450537,\"ema1\":0.19999014529186562,\"sma1\":0.1895647222222222,\"sma2\":0.1961323333333334,\"rsi_avg_gain\":0.0009191120445037002,\"rsi_avg_loss\":0.000798246749792487,\"rsi\":54},{\"period_id\":\"120m209899\",\"size\":\"120m\",\"time\":1511272800000,\"open\":0.20318,\"high\":0.20318,\"low\":0.2004,\"close\":0.20199,\"volume\":1154399.37290013,\"close_time\":1511279988375,\"vwap\":0.20149345702962523,\"ema1\":0.19985291393268395,\"sma1\":0.18928194444444438,\"sma2\":0.1961825000000001,\"rsi_avg_gain\":0.000989812971003985,\"rsi_avg_loss\":0.0008588811151611391,\"rsi\":54},{\"period_id\":\"120m209898\",\"size\":\"120m\",\"time\":1511265600000,\"open\":0.203,\"high\":0.20351,\"low\":0.20104,\"close\":0.20282,\"volume\":722255.2621213497,\"close_time\":1511272705668,\"vwap\":0.20189585768407187,\"ema1\":0.19970552868666216,\"sma1\":0.18902351851851848,\"sma2\":0.19646883333333343,\"rsi_avg_gain\":0.0010659524303119837,\"rsi_avg_loss\":0.0008611027394043039,\"rsi\":55},{\"period_id\":\"120m209897\",\"size\":\"120m\",\"time\":1511258400000,\"open\":0.20344,\"high\":0.20371,\"low\":0.20164,\"close\":0.2021,\"volume\":1164843.6084483103,\"close_time\":1511265582357,\"vwap\":0.20278060082314117,\"ema1\":0.19949073756160438,\"sma1\":0.18876972222222219,\"sma2\":0.19605050000000007,\"rsi_avg_gain\":0.001092564155720598,\"rsi_avg_loss\":0.0009273414116661734,\"rsi\":54},{\"period_id\":\"120m209896\",\"size\":\"120m\",\"time\":1511251200000,\"open\":0.20227,\"high\":0.20492,\"low\":0.202,\"close\":0.20212,\"volume\":661131.9622503897,\"close_time\":1511258386621,\"vwap\":0.2031215666559612,\"ema1\":0.1993107884279219,\"sma1\":0.1884599074074074,\"sma2\":0.1956318333333334,\"rsi_avg_gain\":0.00117660755231449,\"rsi_avg_loss\":0.0009971369048712643,\"rsi\":54},{\"period_id\":\"120m209895\",\"size\":\"120m\",\"time\":1511244000000,\"open\":0.20199,\"high\":0.20549,\"low\":0.20093,\"close\":0.20225,\"volume\":1112220.7707674399,\"close_time\":1511251168939,\"vwap\":0.20285261202379098,\"ema1\":0.19911704969881308,\"sma1\":0.18814046296296288,\"sma2\":0.19523766666666673,\"rsi_avg_gain\":0.0012671158255694506,\"rsi_avg_loss\":0.001063839743707514,\"rsi\":54},{\"period_id\":\"120m209894\",\"size\":\"120m\",\"time\":1511236800000,\"open\":0.2,\"high\":0.20306,\"low\":0.197,\"close\":0.20249,\"volume\":767532.2100792999,\"close_time\":1511243992356,\"vwap\":0.2010301921749081,\"ema1\":0.19890098416080018,\"sma1\":0.18786722222222213,\"sma2\":0.19485366666666673,\"rsi_avg_gain\":0.0013645862736901776,\"rsi_avg_loss\":0.0011272120316850158,\"rsi\":55},{\"period_id\":\"120m209893\",\"size\":\"120m\",\"time\":1511229600000,\"open\":0.20572,\"high\":0.206,\"low\":0.2,\"close\":0.2,\"volume\":808537.5062438501,\"close_time\":1511236760328,\"vwap\":0.200006858541817,\"ema1\":0.19865346582706225,\"sma1\":0.1875750925925925,\"sma2\":0.19448700000000005,\"rsi_avg_gain\":0.0012780159870509611,\"rsi_avg_loss\":0.00121392064950694,\"rsi\":51},{\"period_id\":\"120m209892\",\"size\":\"120m\",\"time\":1511222400000,\"open\":0.2,\"high\":0.20599,\"low\":0.2,\"close\":0.20586,\"volume\":658444.3325874807,\"close_time\":1511228996424,\"vwap\":0.20426259604498676,\"ema1\":0.1985606014013424,\"sma1\":0.18731314814814812,\"sma2\":0.19405600000000003,\"rsi_avg_gain\":0.0013763249091318043,\"rsi_avg_loss\":0.0008565299302382449,\"rsi\":62},{\"period_id\":\"120m209891\",\"size\":\"120m\",\"time\":1511215200000,\"open\":0.2075,\"high\":0.20788,\"low\":0.1992,\"close\":0.2,\"volume\":2154059.49515276,\"close_time\":1511222392685,\"vwap\":0.19986370911684473,\"ema1\":0.19805719460143498,\"sma1\":0.18704111111111102,\"sma2\":0.19368600000000005,\"rsi_avg_gain\":0.001031426825218868,\"rsi_avg_loss\":0.0009224168479488791,\"rsi\":53},{\"period_id\":\"120m209890\",\"size\":\"120m\",\"time\":1511208000000,\"open\":0.205,\"high\":0.2079,\"low\":0.204,\"close\":0.207,\"volume\":1726159.0560208398,\"close_time\":1511215187487,\"vwap\":0.2077274702903612,\"ema1\":0.1979232080222236,\"sma1\":0.18678259259259256,\"sma2\":0.19319733333333336,\"rsi_avg_gain\":0.001110767350235704,\"rsi_avg_loss\":0.00045491045163725607,\"rsi\":71},{\"period_id\":\"120m209889\",\"size\":\"120m\",\"time\":1511200800000,\"open\":0.205,\"high\":0.20791,\"low\":0.20401,\"close\":0.205,\"volume\":1288062.0671158903,\"close_time\":1511207996129,\"vwap\":0.20469319725572838,\"ema1\":0.19729722236858385,\"sma1\":0.186524537037037,\"sma2\":0.19271800000000003,\"rsi_avg_gain\":0.0010423648387153735,\"rsi_avg_loss\":0.0004899035633016604,\"rsi\":68},{\"period_id\":\"120m209888\",\"size\":\"120m\",\"time\":1511193600000,\"open\":0.2045,\"high\":0.205,\"low\":0.2012,\"close\":0.205,\"volume\":1174516.4974492008,\"close_time\":1511200734154,\"vwap\":0.20494697729888559,\"ema1\":0.1967659963250379,\"sma1\":0.18628749999999994,\"sma2\":0.19226016666666668,\"rsi_avg_gain\":0.0011225467493857868,\"rsi_avg_loss\":0.0005275884527864035,\"rsi\":68},{\"period_id\":\"120m209887\",\"size\":\"120m\",\"time\":1511186400000,\"open\":0.2017,\"high\":0.20486,\"low\":0.20116,\"close\":0.2045,\"volume\":1245355.5586386702,\"close_time\":1511193599796,\"vwap\":0.20469122212608867,\"ema1\":0.19619813400262673,\"sma1\":0.18600129629629628,\"sma2\":0.19182966666666668,\"rsi_avg_gain\":0.0011704349608770012,\"rsi_avg_loss\":0.0005681721799238192,\"rsi\":67},{\"period_id\":\"120m209886\",\"size\":\"120m\",\"time\":1511179200000,\"open\":0.20345,\"high\":0.20345,\"low\":0.1993,\"close\":0.2017,\"volume\":920490.0952195205,\"close_time\":1511186377172,\"vwap\":0.2017369292210861,\"ema1\":0.19562559152004927,\"sma1\":0.18574498444444443,\"sma2\":0.1914503333333334,\"rsi_avg_gain\":0.0010450838040213862,\"rsi_avg_loss\":0.0006118777322256514,\"rsi\":63},{\"period_id\":\"120m209885\",\"size\":\"120m\",\"time\":1511172000000,\"open\":0.1999,\"high\":0.20397,\"low\":0.1993,\"close\":0.20348,\"volume\":1839783.4880044202,\"close_time\":1511179183122,\"vwap\":0.20348,\"ema1\":0.19520666679729404,\"sma1\":0.18553609555555556,\"sma2\":0.1910556666666667,\"rsi_avg_gain\":0.0011254748658691852,\"rsi_avg_loss\":0.0005220221731660858,\"rsi\":68},{\"period_id\":\"120m209884\",\"size\":\"120m\",\"time\":1511164800000,\"open\":0.19989,\"high\":0.201,\"low\":0.199,\"close\":0.2,\"volume\":915706.22185213,\"close_time\":1511171992849,\"vwap\":0.20008369504289245,\"ema1\":0.19463609209365915,\"sma1\":0.18535091037037038,\"sma2\":0.19070833333333337,\"rsi_avg_gain\":0.0009443575478591237,\"rsi_avg_loss\":0.0005621777249480923,\"rsi\":63},{\"period_id\":\"120m209883\",\"size\":\"120m\",\"time\":1511157600000,\"open\":0.20058,\"high\":0.20097,\"low\":0.19501,\"close\":0.1995,\"volume\":831625.2586599299,\"close_time\":1511164735130,\"vwap\":0.1993769270231761,\"ema1\":0.19426616741046324,\"sma1\":0.18514146592592595,\"sma2\":0.19035000000000002,\"rsi_avg_gain\":0.0009785388976944409,\"rsi_avg_loss\":0.0006054221653287148,\"rsi\":62},{\"period_id\":\"120m209882\",\"size\":\"120m\",\"time\":1511150400000,\"open\":0.19996,\"high\":0.205,\"low\":0.19909,\"close\":0.201,\"volume\":1616283.4260598102,\"close_time\":1511157581859,\"vwap\":0.20138487279470976,\"ema1\":0.19390521343877104,\"sma1\":0.18488220666666672,\"sma2\":0.18994083333333336,\"rsi_avg_gain\":0.0010538111205940133,\"rsi_avg_loss\":0.0005366084857386159,\"rsi\":66},{\"period_id\":\"120m209881\",\"size\":\"120m\",\"time\":1511143200000,\"open\":0.19688,\"high\":0.2,\"low\":0.19686,\"close\":0.2,\"volume\":1187892.34910101,\"close_time\":1511150148973,\"vwap\":0.19987265930636078,\"ema1\":0.1934159178138587,\"sma1\":0.18466924370370372,\"sma2\":0.18954200000000002,\"rsi_avg_gain\":0.0010579504375627833,\"rsi_avg_loss\":0.0005778860615646633,\"rsi\":65},{\"period_id\":\"120m209880\",\"size\":\"120m\",\"time\":1511136000000,\"open\":0.195,\"high\":0.19686,\"low\":0.19494,\"close\":0.19686,\"volume\":818428.4982289891,\"close_time\":1511143199207,\"vwap\":0.19606153366285653,\"ema1\":0.19296184318033172,\"sma1\":0.18448785481481483,\"sma2\":0.18920450000000003,\"rsi_avg_gain\":0.0008977927789137664,\"rsi_avg_loss\":0.0006223388355311759,\"rsi\":59},{\"period_id\":\"120m209879\",\"size\":\"120m\",\"time\":1511128800000,\"open\":0.19498,\"high\":0.19587,\"low\":0.19353,\"close\":0.19499,\"volume\":774808.4024525699,\"close_time\":1511135815175,\"vwap\":0.19414928689429292,\"ema1\":0.19269300477897527,\"sma1\":0.1843316511111111,\"sma2\":0.188885,\"rsi_avg_gain\":0.0008230076080609784,\"rsi_avg_loss\":0.0006702110536489587,\"rsi\":55},{\"period_id\":\"120m209878\",\"size\":\"120m\",\"time\":1511121600000,\"open\":0.19592,\"high\":0.19595,\"low\":0.1938,\"close\":0.195,\"volume\":735082.8656450599,\"close_time\":1511128784054,\"vwap\":0.1942877476090016,\"ema1\":0.19253459131545633,\"sma1\":0.18414220666666664,\"sma2\":0.18856866666666666,\"rsi_avg_gain\":0.0008863158856041305,\"rsi_avg_loss\":0.0007209965193142625,\"rsi\":55},{\"period_id\":\"120m209877\",\"size\":\"120m\",\"time\":1511114400000,\"open\":0.19593,\"high\":0.19599,\"low\":0.19311,\"close\":0.19493,\"volume\":542808.07858512,\"close_time\":1511121526078,\"vwap\":0.1954278268673433,\"ema1\":0.19236456313031539,\"sma1\":0.18396822518518513,\"sma2\":0.1882625,\"rsi_avg_gain\":0.0009491094152659857,\"rsi_avg_loss\":0.0007764577900307443,\"rsi\":55},{\"period_id\":\"120m209876\",\"size\":\"120m\",\"time\":1511107200000,\"open\":0.195,\"high\":0.1975,\"low\":0.19462,\"close\":0.19593,\"volume\":736890.6753688401,\"close_time\":1511114338732,\"vwap\":0.1954788837159389,\"ema1\":0.19218763644964748,\"sma1\":0.1837876696296296,\"sma2\":0.18795900000000001,\"rsi_avg_gain\":0.0010221178318249077,\"rsi_avg_loss\":0.0007592622354177246,\"rsi\":57},{\"period_id\":\"120m209875\",\"size\":\"120m\",\"time\":1511100000000,\"open\":0.1949,\"high\":0.1969,\"low\":0.19441,\"close\":0.1955,\"volume\":602072.8910201305,\"close_time\":1511107180197,\"vwap\":0.195639222183848,\"ema1\":0.19192954241169213,\"sma1\":0.183620077037037,\"sma2\":0.18766566666666668,\"rsi_avg_gain\":0.0010676653573499016,\"rsi_avg_loss\":0.0008176670227575496,\"rsi\":57},{\"period_id\":\"120m209874\",\"size\":\"120m\",\"time\":1511092800000,\"open\":0.19514,\"high\":0.19625,\"low\":0.19305,\"close\":0.1949,\"volume\":664404.7235030198,\"close_time\":1511099955847,\"vwap\":0.19471447326864044,\"ema1\":0.19168330395732608,\"sma1\":0.18350841037037036,\"sma2\":0.18735733333333332,\"rsi_avg_gain\":0.001103639615607585,\"rsi_avg_loss\":0.0008805644860465919,\"rsi\":56},{\"period_id\":\"120m209873\",\"size\":\"120m\",\"time\":1511085600000,\"open\":0.19348,\"high\":0.199,\"low\":0.19165,\"close\":0.19575,\"volume\":1621898.0825811503,\"close_time\":1511092680789,\"vwap\":0.19576778026150154,\"ema1\":0.19146146285093477,\"sma1\":0.18338970666666668,\"sma2\":0.18702149999999998,\"rsi_avg_gain\":0.0011885349706543223,\"rsi_avg_loss\":0.0008829156003578668,\"rsi\":57},{\"period_id\":\"120m209872\",\"size\":\"120m\",\"time\":1511078400000,\"open\":0.19096,\"high\":0.194,\"low\":0.18996,\"close\":0.19348,\"volume\":852182.0922368199,\"close_time\":1511085595664,\"vwap\":0.1928585154248244,\"ema1\":0.19116570166824062,\"sma1\":0.1833113733333333,\"sma2\":0.1867268333333333,\"rsi_avg_gain\":0.0011053453530123476,\"rsi_avg_loss\":0.0009508321850007796,\"rsi\":54},{\"period_id\":\"120m209871\",\"size\":\"120m\",\"time\":1511071200000,\"open\":0.19277,\"high\":0.19329,\"low\":0.19,\"close\":0.19086,\"volume\":458432.8250426699,\"close_time\":1511078362857,\"vwap\":0.19011328051032964,\"ema1\":0.19100609488673997,\"sma1\":0.18325933629629632,\"sma2\":0.18645166666666663,\"rsi_avg_gain\":0.0009888334570902196,\"rsi_avg_loss\":0.0010239731223085319,\"rsi\":49},{\"period_id\":\"120m209870\",\"size\":\"120m\",\"time\":1511064000000,\"open\":0.194,\"high\":0.19403,\"low\":0.1923,\"close\":0.19231,\"volume\":53869.48320576,\"close_time\":1511071090724,\"vwap\":0.19328862627532273,\"ema1\":0.19101617039617033,\"sma1\":0.18321554,\"sma2\":0.18617949999999997,\"rsi_avg_gain\":0.0010648975691740826,\"rsi_avg_loss\":0.0009912018240245722,\"rsi\":52},{\"period_id\":\"120m209869\",\"size\":\"120m\",\"time\":1511056800000,\"open\":0.19382,\"high\":0.19447,\"low\":0.19291,\"close\":0.1941,\"volume\":69829.77653239999,\"close_time\":1511063790758,\"vwap\":0.19351768271065442,\"ema1\":0.19092694076832,\"sma1\":0.18316304,\"sma2\":0.18588683333333325,\"rsi_avg_gain\":0.001146812766802858,\"rsi_avg_loss\":0.000929755810488002,\"rsi\":55},{\"period_id\":\"120m209868\",\"size\":\"120m\",\"time\":1511049600000,\"open\":0.193,\"high\":0.19444,\"low\":0.1925,\"close\":0.19271,\"volume\":124356.55947407,\"close_time\":1511056574457,\"vwap\":0.1929258835874735,\"ema1\":0.19070810909716968,\"sma1\":0.18311359555555548,\"sma2\":0.18559999999999993,\"rsi_avg_gain\":0.0011281060565569239,\"rsi_avg_loss\":0.0010012754882178483,\"rsi\":53},{\"period_id\":\"120m209867\",\"size\":\"120m\",\"time\":1511042400000,\"open\":0.1935,\"high\":0.19999,\"low\":0.19211,\"close\":0.193,\"volume\":1359178.4623398397,\"close_time\":1511049586357,\"vwap\":0.19283711667965744,\"ema1\":0.19057004765559518,\"sma1\":0.18301600296296291,\"sma2\":0.18527499999999997,\"rsi_avg_gain\":0.001214883445522841,\"rsi_avg_loss\":0.001055988987311528,\"rsi\":53},{\"period_id\":\"120m209866\",\"size\":\"120m\",\"time\":1511035200000,\"open\":0.19234,\"high\":0.1939,\"low\":0.19201,\"close\":0.19372,\"volume\":268536.1830867801,\"close_time\":1511042361722,\"vwap\":0.19357446343609316,\"ema1\":0.1904024647352914,\"sma1\":0.18298720666666662,\"sma2\":0.18491283333333325,\"rsi_avg_gain\":0.0013083360182553673,\"rsi_avg_loss\":0.0010818342940277996,\"rsi\":55},{\"period_id\":\"120m209865\",\"size\":\"120m\",\"time\":1511028000000,\"open\":0.1917,\"high\":0.1949,\"low\":0.1917,\"close\":0.19231,\"volume\":728270.7040220896,\"close_time\":1511035186530,\"vwap\":0.19327381550597467,\"ema1\":0.19017366919979425,\"sma1\":0.18295637333333328,\"sma2\":0.18457433333333328,\"rsi_avg_gain\":0.0013005157119673188,\"rsi_avg_loss\":0.0011650523166453226,\"rsi\":53},{\"period_id\":\"120m209864\",\"size\":\"120m\",\"time\":1511020800000,\"open\":0.19089,\"high\":0.1925,\"low\":0.19016,\"close\":0.19168,\"volume\":464501.62250984996,\"close_time\":1511027934129,\"vwap\":0.19196393921011617,\"ema1\":0.19002633604115937,\"sma1\":0.18294803999999995,\"sma2\":0.1842546666666666,\"rsi_avg_gain\":0.0013520938436571111,\"rsi_avg_loss\":0.0012546717256180396,\"rsi\":52},{\"period_id\":\"120m209863\",\"size\":\"120m\",\"time\":1511013600000,\"open\":0.1919,\"high\":0.1919,\"low\":0.19,\"close\":0.19122,\"volume\":390100.3060764898,\"close_time\":1511020756298,\"vwap\":0.1912075062419421,\"ema1\":0.1899122902508945,\"sma1\":0.1829258177777777,\"sma2\":0.18395099999999995,\"rsi_avg_gain\":0.0014207164470153514,\"rsi_avg_loss\":0.0013511849352809656,\"rsi\":51},{\"period_id\":\"120m209862\",\"size\":\"120m\",\"time\":1511006400000,\"open\":0.1923,\"high\":0.19247,\"low\":0.191,\"close\":0.1918,\"volume\":337951.37589794997,\"close_time\":1511013473993,\"vwap\":0.1916904236134659,\"ema1\":0.18982210337164585,\"sma1\":0.1828822066666666,\"sma2\":0.1836383333333333,\"rsi_avg_gain\":0.001530002327554994,\"rsi_avg_loss\":0.0014105068533795016,\"rsi\":52},{\"period_id\":\"120m209861\",\"size\":\"120m\",\"time\":1510999200000,\"open\":0.19251,\"high\":0.19253,\"low\":0.19101,\"close\":0.1923,\"volume\":385301.98817009997,\"close_time\":1511006395926,\"vwap\":0.19223466881133133,\"ema1\":0.18968569670762142,\"sma1\":0.1828587807407407,\"sma2\":0.1833331666666666,\"rsi_avg_gain\":0.0016476948142899934,\"rsi_avg_loss\":0.0014805458421010018,\"rsi\":53},{\"period_id\":\"120m209860\",\"size\":\"120m\",\"time\":1510992000000,\"open\":0.18916,\"high\":0.194,\"low\":0.18914,\"close\":0.19254,\"volume\":803391.3881384006,\"close_time\":1510999159827,\"vwap\":0.19225630567133012,\"ema1\":0.1895053999288367,\"sma1\":0.1828586881481481,\"sma2\":0.1830156666666666,\"rsi_avg_gain\":0.0017744405692353775,\"rsi_avg_loss\":0.0015759724453395412,\"rsi\":53},{\"period_id\":\"120m209859\",\"size\":\"120m\",\"time\":1510984800000,\"open\":0.1897,\"high\":0.191,\"low\":0.188,\"close\":0.189,\"volume\":488820.45648977003,\"close_time\":1510991947134,\"vwap\":0.18893611478098907,\"ema1\":0.1892961171653082,\"sma1\":0.18288137333333326,\"sma2\":0.18267499999999998,\"rsi_avg_gain\":0.0016386283053304075,\"rsi_avg_loss\":0.0016972010949810443,\"rsi\":49},{\"period_id\":\"120m209858\",\"size\":\"120m\",\"time\":1510977600000,\"open\":0.1878,\"high\":0.19247,\"low\":0.18721,\"close\":0.19028,\"volume\":289907.14823640994,\"close_time\":1510984750372,\"vwap\":0.18943997661057194,\"ema1\":0.18931653903877774,\"sma1\":0.18287785481481475,\"sma2\":0.18232716666666662,\"rsi_avg_gain\":0.0017646766365096694,\"rsi_avg_loss\":0.0017292934869026627,\"rsi\":51},{\"period_id\":\"120m209857\",\"size\":\"120m\",\"time\":1510970400000,\"open\":0.1891,\"high\":0.192,\"low\":0.1879,\"close\":0.1879,\"volume\":234549.13786073995,\"close_time\":1510977539952,\"vwap\":0.1884340208108034,\"ema1\":0.18925009345524516,\"sma1\":0.18287776222222216,\"sma2\":0.18207549999999997,\"rsi_avg_gain\":0.0017173440700873367,\"rsi_avg_loss\":0.0018623160628182523,\"rsi\":48},{\"period_id\":\"120m209856\",\"size\":\"120m\",\"time\":1510963200000,\"open\":0.19112,\"high\":0.19277,\"low\":0.1889,\"close\":0.18908,\"volume\":926769.0720193102,\"close_time\":1510970297833,\"vwap\":0.18915446893036789,\"ema1\":0.18934320334871033,\"sma1\":0.18286554,\"sma2\":0.18172000833333335,\"rsi_avg_gain\":0.001849447460094055,\"rsi_avg_loss\":0.0019148019138042727,\"rsi\":49},{\"period_id\":\"120m209855\",\"size\":\"120m\",\"time\":1510956000000,\"open\":0.192,\"high\":0.19408,\"low\":0.191,\"close\":0.19312,\"volume\":428584.75338550995,\"close_time\":1510963099527,\"vwap\":0.19157015488247722,\"ema1\":0.1893613553037938,\"sma1\":0.18286479925925925,\"sma2\":0.18132634166666664,\"rsi_avg_gain\":0.001991712649332059,\"rsi_avg_loss\":0.001751325137943062,\"rsi\":53},{\"period_id\":\"120m209854\",\"size\":\"120m\",\"time\":1510948800000,\"open\":0.1925,\"high\":0.19408,\"low\":0.19061,\"close\":0.192,\"volume\":621065.0758878803,\"close_time\":1510955983115,\"vwap\":0.19176815726243787,\"ema1\":0.18910213842819337,\"sma1\":0.18281776222222218,\"sma2\":0.18091634166666665,\"rsi_avg_gain\":0.0020587674685114475,\"rsi_avg_loss\":0.0018860424562463743,\"rsi\":52},{\"period_id\":\"120m209853\",\"size\":\"120m\",\"time\":1510941600000,\"open\":0.19389,\"high\":0.19475,\"low\":0.19061,\"close\":0.1925,\"volume\":1033069.886988151,\"close_time\":1510948796268,\"vwap\":0.19283855205454012,\"ema1\":0.1889022859059998,\"sma1\":0.18272646592592587,\"sma2\":0.180541675,\"rsi_avg_gain\":0.002217134196858482,\"rsi_avg_loss\":0.0019926611067268645,\"rsi\":53},{\"period_id\":\"120m209852\",\"size\":\"120m\",\"time\":1510934400000,\"open\":0.19491,\"high\":0.196,\"low\":0.19103,\"close\":0.19384,\"volume\":1005591.6163256401,\"close_time\":1510941572001,\"vwap\":0.19365846998029349,\"ema1\":0.18865416769262047,\"sma1\":0.18259544740740735,\"sma2\":0.18014800833333336,\"rsi_avg_gain\":0.0023876829812322113,\"rsi_avg_loss\":0.002042865807244315,\"rsi\":54},{\"period_id\":\"120m209851\",\"size\":\"120m\",\"time\":1510927200000,\"open\":0.19521,\"high\":0.19796,\"low\":0.1946,\"close\":0.19491,\"volume\":960112.6958736299,\"close_time\":1510934385989,\"vwap\":0.19502471097325816,\"ema1\":0.188296524085215,\"sma1\":0.1824462807407407,\"sma2\":0.179732675,\"rsi_avg_gain\":0.002571350902865458,\"rsi_avg_loss\":0.0021177016385708013,\"rsi\":55},{\"period_id\":\"120m209850\",\"size\":\"120m\",\"time\":1510920000000,\"open\":0.1988,\"high\":0.199,\"low\":0.19422,\"close\":0.1953,\"volume\":1780399.7603614214,\"close_time\":1510927150967,\"vwap\":0.195942998468003,\"ema1\":0.18784042229798845,\"sma1\":0.18227952148148144,\"sma2\":0.17931750833333332,\"rsi_avg_gain\":0.002769147126162801,\"rsi_avg_loss\":0.0022506017646147093,\"rsi\":55},{\"period_id\":\"120m209849\",\"size\":\"120m\",\"time\":1510912800000,\"open\":0.19248,\"high\":0.2,\"low\":0.1905,\"close\":0.1988,\"volume\":2745150.4320924804,\"close_time\":1510919995239,\"vwap\":0.1988171840187605,\"ema1\":0.18732596866336695,\"sma1\":0.18211100296296293,\"sma2\":0.1788875083333333,\"rsi_avg_gain\":0.0029821584435599396,\"rsi_avg_loss\":0.0021544942080466097,\"rsi\":58},{\"period_id\":\"120m209848\",\"size\":\"120m\",\"time\":1510905600000,\"open\":0.18905,\"high\":0.1943,\"low\":0.187,\"close\":0.1925,\"volume\":1784900.3421344298,\"close_time\":1510912797579,\"vwap\":0.19228120358271916,\"ema1\":0.18653465615739226,\"sma1\":0.18199248444444438,\"sma2\":0.17844600833333332,\"rsi_avg_gain\":0.0027269398622953196,\"rsi_avg_loss\":0.0023202245317425025,\"rsi\":54},{\"period_id\":\"120m209847\",\"size\":\"120m\",\"time\":1510898400000,\"open\":0.19545,\"high\":0.19594,\"low\":0.187,\"close\":0.188,\"volume\":1178642.750786331,\"close_time\":1510905535766,\"vwap\":0.18810326440729336,\"ema1\":0.18612325313376413,\"sma1\":0.18183091037037033,\"sma2\":0.177999675,\"rsi_avg_gain\":0.0025905506209334206,\"rsi_avg_loss\":0.002498703341876541,\"rsi\":51},{\"period_id\":\"120m209846\",\"size\":\"120m\",\"time\":1510891200000,\"open\":0.19199,\"high\":0.19689,\"low\":0.1894,\"close\":0.19405,\"volume\":956434.2075968998,\"close_time\":1510898331739,\"vwap\":0.19366392386341905,\"ema1\":0.18599382231540304,\"sma1\":0.18165322518518517,\"sma2\":0.17759884166666665,\"rsi_avg_gain\":0.0027898237456206072,\"rsi_avg_loss\":0.002225526675867044,\"rsi\":56},{\"period_id\":\"120m209845\",\"size\":\"120m\",\"time\":1510884000000,\"open\":0.187,\"high\":0.1955,\"low\":0.18683,\"close\":0.19112,\"volume\":924918.4014456196,\"close_time\":1510891162791,\"vwap\":0.1936901823577039,\"ema1\":0.18543822385439634,\"sma1\":0.18148841037037033,\"sma2\":0.17723384166666664,\"rsi_avg_gain\":0.0027790409568221935,\"rsi_avg_loss\":0.002396721035549124,\"rsi\":54},{\"period_id\":\"120m209844\",\"size\":\"120m\",\"time\":1510876800000,\"open\":0.19099,\"high\":0.1929,\"low\":0.185,\"close\":0.18834,\"volume\":1080509.2536917797,\"close_time\":1510883939814,\"vwap\":0.18694772570425006,\"ema1\":0.18504637722366507,\"sma1\":0.18135044740740738,\"sma2\":0.176999175,\"rsi_avg_gain\":0.002778967184270054,\"rsi_avg_loss\":0.002581084192129826,\"rsi\":52},{\"period_id\":\"120m209843\",\"size\":\"120m\",\"time\":1510869600000,\"open\":0.20252,\"high\":0.203,\"low\":0.19,\"close\":0.1903,\"volume\":3056503.1666262676,\"close_time\":1510876786878,\"vwap\":0.19044089287096824,\"ema1\":0.18481923082529714,\"sma1\":0.18111878074074073,\"sma2\":0.17677250833333333,\"rsi_avg_gain\":0.0029927338907523656,\"rsi_avg_loss\":0.002628859899216736,\"rsi\":53},{\"period_id\":\"120m209842\",\"size\":\"120m\",\"time\":1510862400000,\"open\":0.195,\"high\":0.209,\"low\":0.19241,\"close\":0.2028,\"volume\":5328767.228624752,\"close_time\":1510869597062,\"vwap\":0.202681199025145,\"ema1\":0.18444124674428314,\"sma1\":0.18081313259259257,\"sma2\":0.17632550833333333,\"rsi_avg_gain\":0.003222944190041009,\"rsi_avg_loss\":0.001869541429925715,\"rsi\":63},{\"period_id\":\"120m209841\",\"size\":\"120m\",\"time\":1510855200000,\"open\":0.19512,\"high\":0.201,\"low\":0.1905,\"close\":0.195,\"volume\":3369777.689228698,\"close_time\":1510862391100,\"vwap\":0.19394163440558715,\"ema1\":0.18317512583009576,\"sma1\":0.18058378074074072,\"sma2\":0.1760255083333333,\"rsi_avg_gain\":0.0028708629738903174,\"rsi_avg_loss\":0.00201335230915077,\"rsi\":59},{\"period_id\":\"120m209840\",\"size\":\"120m\",\"time\":1510848000000,\"open\":0.2055,\"high\":0.2098,\"low\":0.195,\"close\":0.1964,\"volume\":6663655.530201383,\"close_time\":1510855198173,\"vwap\":0.19622143263768996,\"ema1\":0.1823596172666541,\"sma1\":0.18027998444444446,\"sma2\":0.17574217499999994,\"rsi_avg_gain\":0.0030916985872664958,\"rsi_avg_loss\":0.002060533256008523,\"rsi\":60},{\"period_id\":\"120m209839\",\"size\":\"120m\",\"time\":1510840800000,\"open\":0.22,\"high\":0.22,\"low\":0.194,\"close\":0.205,\"volume\":15617530.64268609,\"close_time\":1510847998500,\"vwap\":0.20498752694640207,\"ema1\":0.18139131500918196,\"sma1\":0.17989850296296292,\"sma2\":0.17520267499999995,\"rsi_avg_gain\":0.0033295215555177644,\"rsi_avg_loss\":0.0015574973526245634,\"rsi\":68},{\"period_id\":\"120m209838\",\"size\":\"120m\",\"time\":1510833600000,\"open\":0.17678,\"high\":0.22,\"low\":0.1757,\"close\":0.22,\"volume\":10349111.628457345,\"close_time\":1510840796412,\"vwap\":0.21999952464299097,\"ema1\":0.1797631298374014,\"sma1\":0.17952257703703703,\"sma2\":0.1743610083333333,\"rsi_avg_gain\":0.0035856385982499,\"rsi_avg_loss\":0.0005234586874418366,\"rsi\":87},{\"period_id\":\"120m209837\",\"size\":\"120m\",\"time\":1510826400000,\"open\":0.177,\"high\":0.1778,\"low\":0.17555,\"close\":0.177,\"volume\":1105490.1614706505,\"close_time\":1510833568077,\"vwap\":0.17691653772003044,\"ema1\":0.17698817327446356,\"sma1\":0.17950692888888892,\"sma2\":0.17427934166666662,\"rsi_avg_gain\":0.0005537646442691225,\"rsi_avg_loss\":0.0005637247403219779,\"rsi\":50},{\"period_id\":\"120m209836\",\"size\":\"120m\",\"time\":1510819200000,\"open\":0.1785,\"high\":0.17858,\"low\":0.176,\"close\":0.177,\"volume\":397588.30518430006,\"close_time\":1510826392504,\"vwap\":0.17733225668916325,\"ema1\":0.17698735763821966,\"sma1\":0.1794858177777778,\"sma2\":0.1743330083333333,\"rsi_avg_gain\":0.0005963619245975165,\"rsi_avg_loss\":0.000607088181885207,\"rsi\":50},{\"period_id\":\"120m209835\",\"size\":\"120m\",\"time\":1510812000000,\"open\":0.179,\"high\":0.17957,\"low\":0.1775,\"close\":0.1786,\"volume\":236250.85952177003,\"close_time\":1510819171050,\"vwap\":0.17801235546217276,\"ema1\":0.17698648575120032,\"sma1\":0.17944692888888894,\"sma2\":0.1743230083333333,\"rsi_avg_gain\":0.0006422359187973254,\"rsi_avg_loss\":0.0005307103497225292,\"rsi\":55},{\"period_id\":\"120m209834\",\"size\":\"120m\",\"time\":1510804800000,\"open\":0.17893,\"high\":0.1797,\"low\":0.17753,\"close\":0.17945,\"volume\":206948.74571139002,\"close_time\":1510811990052,\"vwap\":0.1784905014925655,\"ema1\":0.17687520890645553,\"sma1\":0.1794049844444445,\"sma2\":0.174257175,\"rsi_avg_gain\":0.0006916386817817352,\"rsi_avg_loss\":0.0005061496073934939,\"rsi\":58},{\"period_id\":\"120m209833\",\"size\":\"120m\",\"time\":1510797600000,\"open\":0.17994,\"high\":0.17997,\"low\":0.17603,\"close\":0.178,\"volume\":353774.0085576001,\"close_time\":1510804386630,\"vwap\":0.17827405181434808,\"ema1\":0.17669763710690073,\"sma1\":0.17935433629629635,\"sma2\":0.17422967499999995,\"rsi_avg_gain\":0.0006333031957649452,\"rsi_avg_loss\":0.0005450841925776088,\"rsi\":54},{\"period_id\":\"120m209832\",\"size\":\"120m\",\"time\":1510790400000,\"open\":0.1778,\"high\":0.1809,\"low\":0.17779,\"close\":0.18,\"volume\":1361998.4149140103,\"close_time\":1510797487097,\"vwap\":0.17963520400183783,\"ema1\":0.17660781897634217,\"sma1\":0.17930896592592596,\"sma2\":0.17417967499999998,\"rsi_avg_gain\":0.0006820188262084025,\"rsi_avg_loss\":0.0004331675920066556,\"rsi\":61},{\"period_id\":\"120m209831\",\"size\":\"120m\",\"time\":1510783200000,\"open\":0.17768,\"high\":0.1787,\"low\":0.175,\"close\":0.1778,\"volume\":1566869.6451750586,\"close_time\":1510790392691,\"vwap\":0.17779839935576144,\"ema1\":0.17637387545746921,\"sma1\":0.17929655851851856,\"sma2\":0.1741280083333333,\"rsi_avg_gain\":0.0005652510436090504,\"rsi_avg_loss\":0.0004664881760071676,\"rsi\":55},{\"period_id\":\"120m209830\",\"size\":\"120m\",\"time\":1510776000000,\"open\":0.1769,\"high\":0.17899,\"low\":0.17601,\"close\":0.17768,\"volume\":491676.01611941017,\"close_time\":1510783162699,\"vwap\":0.17775094910840758,\"ema1\":0.17627552204074295,\"sma1\":0.17929822518518523,\"sma2\":0.17407984166666662,\"rsi_avg_gain\":0.000599501123886669,\"rsi_avg_loss\":0.0005023718818538727,\"rsi\":54},{\"period_id\":\"120m209829\",\"size\":\"120m\",\"time\":1510768800000,\"open\":0.17759,\"high\":0.17889,\"low\":0.17601,\"close\":0.17624,\"volume\":977653.8880108004,\"close_time\":1510775927078,\"vwap\":0.17653504894179523,\"ema1\":0.17617866149182868,\"sma1\":0.1792899844444445,\"sma2\":0.17404934166666666,\"rsi_avg_gain\":0.0005348473641856439,\"rsi_avg_loss\":0.0005410158727657091,\"rsi\":50},{\"period_id\":\"120m209828\",\"size\":\"120m\",\"time\":1510761600000,\"open\":0.17791,\"high\":0.17813,\"low\":0.176,\"close\":0.17753,\"volume\":790866.41378568,\"close_time\":1510768797924,\"vwap\":0.17750704424067298,\"ema1\":0.17617443124988583,\"sma1\":0.1792887807407408,\"sma2\":0.174027175,\"rsi_avg_gain\":0.000575989469123001,\"rsi_avg_loss\":0.00048340170913230334,\"rsi\":54},{\"period_id\":\"120m209827\",\"size\":\"120m\",\"time\":1510754400000,\"open\":0.17899,\"high\":0.17936,\"low\":0.17741,\"close\":0.17867,\"volume\":501227.49448165024,\"close_time\":1510761592558,\"vwap\":0.1786035236514743,\"ema1\":0.17608094374987796,\"sma1\":0.17928933629629634,\"sma2\":0.174012675,\"rsi_avg_gain\":0.0006202963513632319,\"rsi_avg_loss\":0.0004328941482963265,\"rsi\":59},{\"period_id\":\"120m209826\",\"size\":\"120m\",\"time\":1510747200000,\"open\":0.17861,\"high\":0.18,\"low\":0.1775,\"close\":0.17894,\"volume\":1020662.5634295301,\"close_time\":1510754363661,\"vwap\":0.17842893472832985,\"ema1\":0.17590238814642126,\"sma1\":0.17928470666666668,\"sma2\":0.17395700833333333,\"rsi_avg_gain\":0.0006680114553142497,\"rsi_avg_loss\":0.0004454244673960445,\"rsi\":60},{\"period_id\":\"120m209825\",\"size\":\"120m\",\"time\":1510740000000,\"open\":0.17916,\"high\":0.18,\"low\":0.17772,\"close\":0.1798,\"volume\":839624.29586238,\"close_time\":1510747159672,\"vwap\":0.17956297624432807,\"ema1\":0.17569289767376065,\"sma1\":0.17928461407407412,\"sma2\":0.17403017499999998,\"rsi_avg_gain\":0.0007193969518768842,\"rsi_avg_loss\":0.00041353404181112484,\"rsi\":63},{\"period_id\":\"120m209824\",\"size\":\"120m\",\"time\":1510732800000,\"open\":0.178,\"high\":0.18,\"low\":0.17774,\"close\":0.17916,\"volume\":1371706.4441208409,\"close_time\":1510739987906,\"vwap\":0.17965231746947483,\"ema1\":0.17540964923746827,\"sma1\":0.1792250770370371,\"sma2\":0.17409917499999994,\"rsi_avg_gain\":0.0007255044097135697,\"rsi_avg_loss\":0.0004453443527196729,\"rsi\":62},{\"period_id\":\"120m209823\",\"size\":\"120m\",\"time\":1510725600000,\"open\":0.17647,\"high\":0.179,\"low\":0.17647,\"close\":0.178,\"volume\":594290.64150528,\"close_time\":1510732786046,\"vwap\":0.1782691010683119,\"ema1\":0.17515100435729367,\"sma1\":0.17916766962962966,\"sma2\":0.17420850833333326,\"rsi_avg_gain\":0.0006920816719992272,\"rsi_avg_loss\":0.0004796016106211862,\"rsi\":59},{\"period_id\":\"120m209822\",\"size\":\"120m\",\"time\":1510718400000,\"open\":0.17676,\"high\":0.17748,\"low\":0.17561,\"close\":0.17645,\"volume\":194388.95898348003,\"close_time\":1510725406545,\"vwap\":0.17668885115736302,\"ema1\":0.17495452189917599,\"sma1\":0.17912507703703712,\"sma2\":0.1743610083333333,\"rsi_avg_gain\":0.0006260879544607065,\"rsi_avg_loss\":0.0005164940422074313,\"rsi\":55},{\"period_id\":\"120m209821\",\"size\":\"120m\",\"time\":1510711200000,\"open\":0.17672,\"high\":0.17744,\"low\":0.176,\"close\":0.17607,\"volume\":154013.12588774003,\"close_time\":1510717437169,\"vwap\":0.17625224532653838,\"ema1\":0.17485138547842952,\"sma1\":0.17908285481481487,\"sma2\":0.17454400833333328,\"rsi_avg_gain\":0.0006450177971115308,\"rsi_avg_loss\":0.0005562243531464645,\"rsi\":54},{\"period_id\":\"120m209820\",\"size\":\"120m\",\"time\":1510704000000,\"open\":0.17563,\"high\":0.17746,\"low\":0.1754,\"close\":0.17661,\"volume\":330525.27986849006,\"close_time\":1510711129545,\"vwap\":0.17681024005006213,\"ema1\":0.17476734309763156,\"sma1\":0.17904081777777783,\"sma2\":0.17473817499999988,\"rsi_avg_gain\":0.0006946345507354947,\"rsi_avg_loss\":0.0005574723803115783,\"rsi\":55},{\"period_id\":\"120m209819\",\"size\":\"120m\",\"time\":1510696800000,\"open\":0.17597,\"high\":0.1761,\"low\":0.175,\"close\":0.17582,\"volume\":577026.2364562798,\"close_time\":1510703941720,\"vwap\":0.17553062478070489,\"ema1\":0.1746402633112613,\"sma1\":0.17901674370370377,\"sma2\":0.17493950833333327,\"rsi_avg_gain\":0.0006872987469459185,\"rsi_avg_loss\":0.0006003548711047766,\"rsi\":53},{\"period_id\":\"120m209818\",\"size\":\"120m\",\"time\":1510689600000,\"open\":0.17656,\"high\":0.1771,\"low\":0.1746,\"close\":0.17602,\"volume\":754846.95783339,\"close_time\":1510696790603,\"vwap\":0.17567822762010027,\"ema1\":0.1745589021603138,\"sma1\":0.17898000851851853,\"sma2\":0.1751435083333333,\"rsi_avg_gain\":0.0007401678813263737,\"rsi_avg_loss\":0.0006311513996512975,\"rsi\":54},{\"period_id\":\"120m209817\",\"size\":\"120m\",\"time\":1510682400000,\"open\":0.17774,\"high\":0.1785,\"low\":0.17451,\"close\":0.17656,\"volume\":873858.6678473103,\"close_time\":1510689575374,\"vwap\":0.17579261722420594,\"ema1\":0.17445813679205957,\"sma1\":0.17891982333333337,\"sma2\":0.17536750833333326,\"rsi_avg_gain\":0.0007971038721976331,\"rsi_avg_loss\":0.0006381630457783215,\"rsi\":56},{\"period_id\":\"120m209816\",\"size\":\"120m\",\"time\":1510675200000,\"open\":0.17779,\"high\":0.17873,\"low\":0.177,\"close\":0.17772,\"volume\":601474.58078276,\"close_time\":1510682334312,\"vwap\":0.17800023218398808,\"ema1\":0.17431318070875335,\"sma1\":0.17886676777777777,\"sma2\":0.1755915083333333,\"rsi_avg_gain\":0.000858419554674374,\"rsi_avg_loss\":0.0005980217416074236,\"rsi\":59},{\"period_id\":\"120m209815\",\"size\":\"120m\",\"time\":1510668000000,\"open\":0.175,\"high\":0.179,\"low\":0.175,\"close\":0.1779,\"volume\":903691.211076629,\"close_time\":1510675183379,\"vwap\":0.17732679942437335,\"ema1\":0.1740782276541846,\"sma1\":0.17881121222222218,\"sma2\":0.17578050833333328,\"rsi_avg_gain\":0.0009244518281108643,\"rsi_avg_loss\":0.000630177260192609,\"rsi\":59},{\"period_id\":\"120m209814\",\"size\":\"120m\",\"time\":1510660800000,\"open\":0.17511,\"high\":0.17649,\"low\":0.1735,\"close\":0.1764,\"volume\":739101.4692513704,\"close_time\":1510667938280,\"vwap\":0.17596433020327176,\"ema1\":0.17381465714757663,\"sma1\":0.17879167518518516,\"sma2\":0.17596567499999993,\"rsi_avg_gain\":0.0008801788918116999,\"rsi_avg_loss\":0.000678652434053579,\"rsi\":56},{\"period_id\":\"120m209813\",\"size\":\"120m\",\"time\":1510653600000,\"open\":0.17595,\"high\":0.17699,\"low\":0.175,\"close\":0.1756,\"volume\":896831.7352713099,\"close_time\":1510660756249,\"vwap\":0.17562884722380503,\"ema1\":0.17363635764051294,\"sma1\":0.1787673233333333,\"sma2\":0.17616834166666662,\"rsi_avg_gain\":0.0008863464988741387,\"rsi_avg_loss\":0.0007308564674423159,\"rsi\":55},{\"period_id\":\"120m209812\",\"size\":\"120m\",\"time\":1510646400000,\"open\":0.17599,\"high\":0.17621,\"low\":0.17403,\"close\":0.1758,\"volume\":425112.28303541004,\"close_time\":1510653572451,\"vwap\":0.1757378716617612,\"ema1\":0.17350093402951383,\"sma1\":0.17875611962962965,\"sma2\":0.17634034166666665,\"rsi_avg_gain\":0.000954526998787534,\"rsi_avg_loss\":0.0007716915803224935,\"rsi\":55},{\"period_id\":\"120m209811\",\"size\":\"120m\",\"time\":1510639200000,\"open\":0.176,\"high\":0.1766,\"low\":0.17201,\"close\":0.17435,\"volume\":679307.6820065394,\"close_time\":1510646329094,\"vwap\":0.1752335826025816,\"ema1\":0.1733423777556872,\"sma1\":0.1787413048148148,\"sma2\":0.1766395083333333,\"rsi_avg_gain\":0.0009164136910019591,\"rsi_avg_loss\":0.0008310524711165315,\"rsi\":52},{\"period_id\":\"120m209810\",\"size\":\"120m\",\"time\":1510632000000,\"open\":0.1768,\"high\":0.1768,\"low\":0.175,\"close\":0.17598,\"volume\":429675.1602830501,\"close_time\":1510639183059,\"vwap\":0.17577534998431638,\"ema1\":0.17327288656642426,\"sma1\":0.17872556407407408,\"sma2\":0.17687317500000002,\"rsi_avg_gain\":0.0009869070518482637,\"rsi_avg_loss\":0.0007695949688947268,\"rsi\":56},{\"period_id\":\"120m209809\",\"size\":\"120m\",\"time\":1510624800000,\"open\":0.17539,\"high\":0.178,\"low\":0.17465,\"close\":0.17654,\"volume\":586797.5998933498,\"close_time\":1510631991411,\"vwap\":0.17696653540951365,\"ema1\":0.1730861890882466,\"sma1\":0.17869852703703706,\"sma2\":0.17712250833333332,\"rsi_avg_gain\":0.0010628229789135149,\"rsi_avg_loss\":0.0007857176588097054,\"rsi\":57},{\"period_id\":\"120m209808\",\"size\":\"120m\",\"time\":1510617600000,\"open\":0.17346,\"high\":0.1755,\"low\":0.17214,\"close\":0.1755,\"volume\":764624.7999068601,\"close_time\":1510624784246,\"vwap\":0.17505721704811383,\"ema1\":0.1728479952322636,\"sma1\":0.17869111962962966,\"sma2\":0.17737250833333335,\"rsi_avg_gain\":0.001064578592676092,\"rsi_avg_loss\":0.0008461574787181442,\"rsi\":56},{\"period_id\":\"120m209807\",\"size\":\"120m\",\"time\":1510610400000,\"open\":0.17199,\"high\":0.1735,\"low\":0.1712,\"close\":0.1735,\"volume\":538034.5097671399,\"close_time\":1510617597826,\"vwap\":0.1731965613737864,\"ema1\":0.17266509835173005,\"sma1\":0.17870399000000003,\"sma2\":0.177619175,\"rsi_avg_gain\":0.000992623099805022,\"rsi_avg_loss\":0.0009112465155426168,\"rsi\":52},{\"period_id\":\"120m209806\",\"size\":\"120m\",\"time\":1510603200000,\"open\":0.17054,\"high\":0.17249,\"low\":0.1704,\"close\":0.17199,\"volume\":631139.0908938397,\"close_time\":1510610382134,\"vwap\":0.17207680665418051,\"ema1\":0.17260751892771142,\"sma1\":0.17872639740740745,\"sma2\":0.17783317499999998,\"rsi_avg_gain\":0.0009528248767131019,\"rsi_avg_loss\":0.0009813424013535874,\"rsi\":49},{\"period_id\":\"120m209805\",\"size\":\"120m\",\"time\":1510596000000,\"open\":0.17247,\"high\":0.1725,\"low\":0.17,\"close\":0.172,\"volume\":870330.9006816499,\"close_time\":1510603178336,\"vwap\":0.17145258518649956,\"ema1\":0.1726501064399674,\"sma1\":0.17875658259259264,\"sma2\":0.178046175,\"rsi_avg_gain\":0.001026119097998725,\"rsi_avg_loss\":0.001056061047611557,\"rsi\":49},{\"period_id\":\"120m209804\",\"size\":\"120m\",\"time\":1510588800000,\"open\":0.173,\"high\":0.17348,\"low\":0.17106,\"close\":0.1725,\"volume\":309292.22678649,\"close_time\":1510595941115,\"vwap\":0.17201654824029866,\"ema1\":0.1726949413668617,\"sma1\":0.17877991592592596,\"sma2\":0.17819934166666665,\"rsi_avg_gain\":0.0011050513363063193,\"rsi_avg_loss\":0.0010988349743509074,\"rsi\":50},{\"period_id\":\"120m209803\",\"size\":\"120m\",\"time\":1510581600000,\"open\":0.17303,\"high\":0.1735,\"low\":0.17,\"close\":0.173,\"volume\":635923.3682115899,\"close_time\":1510588750094,\"vwap\":0.17283001690633226,\"ema1\":0.17270838559905907,\"sma1\":0.17881482333333334,\"sma2\":0.17834684166666664,\"rsi_avg_gain\":0.0011900552852529592,\"rsi_avg_loss\":0.0011448992031471308,\"rsi\":51},{\"period_id\":\"120m209802\",\"size\":\"120m\",\"time\":1510574400000,\"open\":0.17399,\"high\":0.174,\"low\":0.165,\"close\":0.17304,\"volume\":1779330.7190665496,\"close_time\":1510581596236,\"vwap\":0.17272529551664936,\"ema1\":0.17268827426106315,\"sma1\":0.17885149000000003,\"sma2\":0.178471175,\"rsi_avg_gain\":0.001281597999503187,\"rsi_avg_loss\":0.001229891449543063,\"rsi\":51},{\"period_id\":\"120m209801\",\"size\":\"120m\",\"time\":1510567200000,\"open\":0.1739,\"high\":0.175,\"low\":0.17095,\"close\":0.17399,\"volume\":1125405.2639887903,\"close_time\":1510574391964,\"vwap\":0.17410969252738262,\"ema1\":0.17266401731355027,\"sma1\":0.17886871222222223,\"sma2\":0.17855467500000002,\"rsi_avg_gain\":0.0013801824610034322,\"rsi_avg_loss\":0.0012514215610463751,\"rsi\":52},{\"period_id\":\"120m209800\",\"size\":\"120m\",\"time\":1510560000000,\"open\":0.1685,\"high\":0.1739,\"low\":0.168,\"close\":0.17349,\"volume\":1034292.9793085196,\"close_time\":1510567185235,\"vwap\":0.17305856346255233,\"ema1\":0.17257257023172615,\"sma1\":0.17889504685185187,\"sma2\":0.17868650833333335,\"rsi_avg_gain\":0.0014478888041575425,\"rsi_avg_loss\":0.0013476847580499425,\"rsi\":52},{\"period_id\":\"120m209799\",\"size\":\"120m\",\"time\":1510552800000,\"open\":0.16969,\"high\":0.1705,\"low\":0.16809,\"close\":0.16856,\"volume\":70489.34351741005,\"close_time\":1510559923918,\"vwap\":0.16901470363589832,\"ema1\":0.1725092992132245,\"sma1\":0.17894949129629634,\"sma2\":0.17884384166666667,\"rsi_avg_gain\":0.0011800340967850445,\"rsi_avg_loss\":0.0014513528163614766,\"rsi\":45},{\"period_id\":\"120m209798\",\"size\":\"120m\",\"time\":1510545600000,\"open\":0.17278,\"high\":0.1729,\"low\":0.16771,\"close\":0.16941,\"volume\":232672.51672249002,\"close_time\":1510552749298,\"vwap\":0.16895529582855587,\"ema1\":0.1727816646762055,\"sma1\":0.1789848616666667,\"sma2\":0.1789820083333333,\"rsi_avg_gain\":0.001270805950383894,\"rsi_avg_loss\":0.0014976107253123583,\"rsi\":46},{\"period_id\":\"120m209797\",\"size\":\"120m\",\"time\":1510538400000,\"open\":0.16775,\"high\":0.17287,\"low\":0.16714,\"close\":0.1728,\"volume\":317883.98797446996,\"close_time\":1510545349531,\"vwap\":0.17122749802444975,\"ema1\":0.17301419327456452,\"sma1\":0.1790229172222223,\"sma2\":0.17904850833333333,\"rsi_avg_gain\":0.001368560254259578,\"rsi_avg_loss\":0.0013520423195671546,\"rsi\":50},{\"period_id\":\"120m209796\",\"size\":\"120m\",\"time\":1510531200000,\"open\":0.16949,\"high\":0.1724,\"low\":0.16559,\"close\":0.1677505,\"volume\":521480.4175115699,\"close_time\":1510538326283,\"vwap\":0.16859853144458037,\"ema1\":0.17302896522453448,\"sma1\":0.17908402833333342,\"sma2\":0.17919049999999997,\"rsi_avg_gain\":0.0010854110430487754,\"rsi_avg_loss\":0.001456045574918474,\"rsi\":43},{\"period_id\":\"120m209795\",\"size\":\"120m\",\"time\":1510524000000,\"open\":0.1674,\"high\":0.16998,\"low\":0.165,\"close\":0.1695,\"volume\":1311093.4219952,\"close_time\":1510531050771,\"vwap\":0.16702202781259123,\"ema1\":0.17339299730898514,\"sma1\":0.17921384314814823,\"sma2\":0.17930783333333336,\"rsi_avg_gain\":0.0011689042002063735,\"rsi_avg_loss\":0.0014334721576045092,\"rsi\":45},{\"period_id\":\"120m209794\",\"size\":\"120m\",\"time\":1510516800000,\"open\":0.17,\"high\":0.171,\"low\":0.1655,\"close\":0.1674,\"volume\":930806.39173004,\"close_time\":1510523988470,\"vwap\":0.16828565177206004,\"ema1\":0.1736614798820186,\"sma1\":0.17935819500000005,\"sma2\":0.1794478333333334,\"rsi_avg_gain\":0.001097281446376093,\"rsi_avg_loss\":0.0015437392466510099,\"rsi\":42},{\"period_id\":\"120m209793\",\"size\":\"120m\",\"time\":1510509600000,\"open\":0.17021,\"high\":0.171,\"low\":0.1684,\"close\":0.17002,\"volume\":1081793.2557907307,\"close_time\":1510516799098,\"vwap\":0.16966781913775986,\"ema1\":0.1740933060807785,\"sma1\":0.17947856537037044,\"sma2\":0.17952533333333337,\"rsi_avg_gain\":0.0011816877114819463,\"rsi_avg_loss\":0.001460949957931856,\"rsi\":45},{\"period_id\":\"120m209792\",\"size\":\"120m\",\"time\":1510502400000,\"open\":0.16953,\"high\":0.173,\"low\":0.16717,\"close\":0.17022,\"volume\":1220729.4702502298,\"close_time\":1510509590715,\"vwap\":0.17002107168429434,\"ema1\":0.17437422374152184,\"sma1\":0.17956625055555564,\"sma2\":0.17962566666666674,\"rsi_avg_gain\":0.0012725867662113268,\"rsi_avg_loss\":0.0015579461085419982,\"rsi\":45},{\"period_id\":\"120m209791\",\"size\":\"120m\",\"time\":1510495200000,\"open\":0.16884,\"high\":0.17264,\"low\":0.1675,\"close\":0.16999,\"volume\":1416319.5101583297,\"close_time\":1510502384838,\"vwap\":0.1695567368368605,\"ema1\":0.17466072193059232,\"sma1\":0.1796653246296297,\"sma2\":0.17974183333333338,\"rsi_avg_gain\":0.0013527857482275821,\"rsi_avg_loss\":0.0016777881168913828,\"rsi\":45},{\"period_id\":\"120m209790\",\"size\":\"120m\",\"time\":1510488000000,\"open\":0.173,\"high\":0.1756,\"low\":0.1675,\"close\":0.17039,\"volume\":3313398.677564392,\"close_time\":1510495190490,\"vwap\":0.16901608021606956,\"ema1\":0.17498284068442627,\"sma1\":0.17967819500000004,\"sma2\":0.17984366666666673,\"rsi_avg_gain\":0.0014568461903989346,\"rsi_avg_loss\":0.0017760795104984112,\"rsi\":45},{\"period_id\":\"120m209789\",\"size\":\"120m\",\"time\":1510480800000,\"open\":0.16601,\"high\":0.1763,\"low\":0.165,\"close\":0.173,\"volume\":2580742.5473769414,\"close_time\":1510487985447,\"vwap\":0.17300000000000001,\"ema1\":0.17529958831783496,\"sma1\":0.1796714357407408,\"sma2\":0.17989550000000007,\"rsi_avg_gain\":0.0015689112819680835,\"rsi_avg_loss\":0.0017119317805367525,\"rsi\":48},{\"period_id\":\"120m209788\",\"size\":\"120m\",\"time\":1510473600000,\"open\":0.16596,\"high\":0.17146,\"low\":0.1611,\"close\":0.16601,\"volume\":2380649.9986581267,\"close_time\":1510480792987,\"vwap\":0.16679603063416554,\"ema1\":0.1754581806156167,\"sma1\":0.17971810240740746,\"sma2\":0.18005700000000008,\"rsi_avg_gain\":0.0011519044575040904,\"rsi_avg_loss\":0.001843618840578041,\"rsi\":38},{\"period_id\":\"120m209787\",\"size\":\"120m\",\"time\":1510466400000,\"open\":0.17,\"high\":0.17099,\"low\":0.161,\"close\":0.16122,\"volume\":3229527.0687472746,\"close_time\":1510473566212,\"vwap\":0.16500667268471284,\"ema1\":0.17610977927876267,\"sma1\":0.17976449129629626,\"sma2\":0.1802836666666667,\"rsi_avg_gain\":0.000872050954235175,\"rsi_avg_loss\":0.0019854356744686595,\"rsi\":31},{\"period_id\":\"120m209786\",\"size\":\"120m\",\"time\":1510459200000,\"open\":0.17066,\"high\":0.17355,\"low\":0.16823,\"close\":0.17,\"volume\":994724.1163038004,\"close_time\":1510466383975,\"vwap\":0.17015776089452883,\"ema1\":0.17713666060833252,\"sma1\":0.1797705098148148,\"sma2\":0.1803581666666667,\"rsi_avg_gain\":0.00093913179686865,\"rsi_avg_loss\":0.0014627768801970173,\"rsi\":39},{\"period_id\":\"120m209785\",\"size\":\"120m\",\"time\":1510452000000,\"open\":0.17445,\"high\":0.17445,\"low\":0.16902,\"close\":0.16922,\"volume\":1261435.8449201102,\"close_time\":1510459100083,\"vwap\":0.16933075713274207,\"ema1\":0.17762884409856236,\"sma1\":0.17979226907407408,\"sma2\":0.18044616666666669,\"rsi_avg_gain\":0.0009513727043200844,\"rsi_avg_loss\":0.0015752981786737112,\"rsi\":38},{\"period_id\":\"120m209784\",\"size\":\"120m\",\"time\":1510444800000,\"open\":0.17767,\"high\":0.1777,\"low\":0.17407,\"close\":0.17426,\"volume\":328023.63525571,\"close_time\":1510451999100,\"vwap\":0.17425067046971976,\"ema1\":0.17820876438122182,\"sma1\":0.17985986166666668,\"sma2\":0.18042516666666672,\"rsi_avg_gain\":0.001024555220037014,\"rsi_avg_loss\":0.0013087826539563052,\"rsi\":44},{\"period_id\":\"120m209783\",\"size\":\"120m\",\"time\":1510437600000,\"open\":0.17563,\"high\":0.1785,\"low\":0.17377,\"close\":0.1767,\"volume\":316327.0275906,\"close_time\":1510444746655,\"vwap\":0.17721418468029174,\"ema1\":0.17848109295923711,\"sma1\":0.17981625055555556,\"sma2\":0.1804106666666667,\"rsi_avg_gain\":0.0011033671600398612,\"rsi_avg_loss\":0.0012217659350298672,\"rsi\":47},{\"period_id\":\"120m209782\",\"size\":\"120m\",\"time\":1510430400000,\"open\":0.17608,\"high\":0.17998,\"low\":0.17214,\"close\":0.17598,\"volume\":1570101.0684755915,\"close_time\":1510437571913,\"vwap\":0.17628908975486998,\"ema1\":0.17860392695642588,\"sma1\":0.17969606537037042,\"sma2\":0.1804196666666667,\"rsi_avg_gain\":0.001132856941581389,\"rsi_avg_loss\":0.0013157479300321647,\"rsi\":46},{\"period_id\":\"120m209781\",\"size\":\"120m\",\"time\":1510423200000,\"open\":0.179,\"high\":0.18004,\"low\":0.175,\"close\":0.177,\"volume\":1139440.0789324606,\"close_time\":1510430382442,\"vwap\":0.17694729458882502,\"ema1\":0.1787848874361794,\"sma1\":0.1795708801851852,\"sma2\":0.18036033333333334,\"rsi_avg_gain\":0.0012199997832414958,\"rsi_avg_loss\":0.0013384977708038703,\"rsi\":48},{\"period_id\":\"120m209780\",\"size\":\"120m\",\"time\":1510416000000,\"open\":0.1732,\"high\":0.1794,\"low\":0.17001,\"close\":0.1794,\"volume\":991466.1092300097,\"close_time\":1510423190096,\"vwap\":0.17912087008269192,\"ema1\":0.17890798312143316,\"sma1\":0.1794468061111111,\"sma2\":0.18033533333333335,\"rsi_avg_gain\":0.0013138459204139186,\"rsi_avg_loss\":0.0012568437531733979,\"rsi\":51},{\"period_id\":\"120m209779\",\"size\":\"120m\",\"time\":1510408800000,\"open\":0.16985,\"high\":0.17395,\"low\":0.167,\"close\":0.17263,\"volume\":974812.9391063203,\"close_time\":1510415941956,\"vwap\":0.1730748811546792,\"ema1\":0.1788740509229113,\"sma1\":0.17939625055555555,\"sma2\":0.1804,\"rsi_avg_gain\":0.0008941417604457588,\"rsi_avg_loss\":0.001353524041879044,\"rsi\":40},{\"period_id\":\"120m209778\",\"size\":\"120m\",\"time\":1510401600000,\"open\":0.175,\"high\":0.17576832,\"low\":0.16701,\"close\":0.1695,\"volume\":2442211.8787478986,\"close_time\":1510408777466,\"vwap\":0.1692775685159474,\"ema1\":0.1793046751244914,\"sma1\":0.17933904388888883,\"sma2\":0.1805331666666667,\"rsi_avg_gain\":0.0007221526650954329,\"rsi_avg_loss\":0.0014576412758697396,\"rsi\":33},{\"period_id\":\"120m209777\",\"size\":\"120m\",\"time\":1510394400000,\"open\":0.1805,\"high\":0.18141,\"low\":0.172,\"close\":0.1721,\"volume\":2079496.2112085498,\"close_time\":1510401587132,\"vwap\":0.173656388203133,\"ema1\":0.17998085961583565,\"sma1\":0.17914080314814812,\"sma2\":0.18063316666666665,\"rsi_avg_gain\":0.0007777028701027739,\"rsi_avg_loss\":0.0013697675278597202,\"rsi\":36},{\"period_id\":\"120m209776\",\"size\":\"120m\",\"time\":1510387200000,\"open\":0.17744,\"high\":0.181,\"low\":0.17692,\"close\":0.18022,\"volume\":981048.3481494704,\"close_time\":1510394392419,\"vwap\":0.18061313943895851,\"ema1\":0.18052436717554846,\"sma1\":0.17894635870370368,\"sma2\":0.18052216666666665,\"rsi_avg_gain\":0.0008375261678029873,\"rsi_avg_loss\":0.0008505188761566227,\"rsi\":50},{\"period_id\":\"120m209775\",\"size\":\"120m\",\"time\":1510380000000,\"open\":0.17612,\"high\":0.17835,\"low\":0.17575,\"close\":0.178,\"volume\":270682.5348436299,\"close_time\":1510387170239,\"vwap\":0.17743585663488493,\"ema1\":0.18054535801524146,\"sma1\":0.1788060809259259,\"sma2\":0.18041383333333333,\"rsi_avg_gain\":0.0007311820268647556,\"rsi_avg_loss\":0.0009159434050917475,\"rsi\":44},{\"period_id\":\"120m209774\",\"size\":\"120m\",\"time\":1510372800000,\"open\":0.17598,\"high\":0.177,\"low\":0.175,\"close\":0.1755,\"volume\":131092.04912470002,\"close_time\":1510379912100,\"vwap\":0.17512220386909774,\"ema1\":0.18072089994732707,\"sma1\":0.17869237722222217,\"sma2\":0.18035716666666668,\"rsi_avg_gain\":0.000595119105854352,\"rsi_avg_loss\":0.000986400590098805,\"rsi\":38},{\"period_id\":\"120m209773\",\"size\":\"120m\",\"time\":1510365600000,\"open\":0.17698,\"high\":0.177,\"low\":0.1758,\"close\":0.17635,\"volume\":94690.41121102999,\"close_time\":1510372576835,\"vwap\":0.17650872452247177,\"ema1\":0.18108096201265997,\"sma1\":0.17860571055555552,\"sma2\":0.18028483333333334,\"rsi_avg_gain\":0.0006408974986123791,\"rsi_avg_loss\":0.000996892943183327,\"rsi\":39},{\"period_id\":\"120m209772\",\"size\":\"120m\",\"time\":1510358400000,\"open\":0.17466,\"high\":0.17727,\"low\":0.1735,\"close\":0.177,\"volume\":222966.58106674007,\"close_time\":1510365541592,\"vwap\":0.17673057107776774,\"ema1\":0.18140723525491237,\"sma1\":0.17850895129629624,\"sma2\":0.1801945,\"rsi_avg_gain\":0.0006901973061979467,\"rsi_avg_loss\":0.0010235770157358919,\"rsi\":40},{\"period_id\":\"120m209771\",\"size\":\"120m\",\"time\":1510351200000,\"open\":0.17467,\"high\":0.179,\"low\":0.17387,\"close\":0.1747,\"volume\":797093.3192915202,\"close_time\":1510358365250,\"vwap\":0.1747,\"ema1\":0.18171118251387183,\"sma1\":0.17839543277777775,\"sma2\":0.18016533333333332,\"rsi_avg_gain\":0.0005663663297516352,\"rsi_avg_loss\":0.0011023137092540374,\"rsi\":34},{\"period_id\":\"120m209770\",\"size\":\"120m\",\"time\":1510344000000,\"open\":0.17441,\"high\":0.17549,\"low\":0.171,\"close\":0.17479,\"volume\":1094468.96498331,\"close_time\":1510351192590,\"vwap\":0.17476073520600446,\"ema1\":0.18219471234241472,\"sma1\":0.1783408957407407,\"sma2\":0.18013771,\"rsi_avg_gain\":0.000609932970501761,\"rsi_avg_loss\":0.0011801839945812704,\"rsi\":34},{\"period_id\":\"120m209769\",\"size\":\"120m\",\"time\":1510336800000,\"open\":0.1761,\"high\":0.1772,\"low\":0.1715,\"close\":0.17441,\"volume\":1735605.7652716597,\"close_time\":1510343991423,\"vwap\":0.17383366958784283,\"ema1\":0.18270538215913298,\"sma1\":0.1782705253703703,\"sma2\":0.1800888766666667,\"rsi_avg_gain\":0.0006276201220788201,\"rsi_avg_loss\":0.0012709673787798296,\"rsi\":33},{\"period_id\":\"120m209768\",\"size\":\"120m\",\"time\":1510329600000,\"open\":0.1778,\"high\":0.178,\"low\":0.1752,\"close\":0.1762,\"volume\":1264054.9084802696,\"close_time\":1510336785873,\"vwap\":0.17647128440428556,\"ema1\":0.1832774774804525,\"sma1\":0.17821959944444443,\"sma2\":0.18001887666666672,\"rsi_avg_gain\":0.0006758985930079602,\"rsi_avg_loss\":0.0012310417925321252,\"rsi\":35},{\"period_id\":\"120m209767\",\"size\":\"120m\",\"time\":1510322400000,\"open\":0.17786,\"high\":0.1788,\"low\":0.175,\"close\":0.1778,\"volume\":1705075.3105860895,\"close_time\":1510329594861,\"vwap\":0.1775159232413199,\"ema1\":0.18376557937565613,\"sma1\":0.17816441425925925,\"sma2\":0.1799383766666667,\"rsi_avg_gain\":0.000727890792470111,\"rsi_avg_loss\":0.001202660391957672,\"rsi\":38},{\"period_id\":\"120m209766\",\"size\":\"120m\",\"time\":1510315200000,\"open\":0.183,\"high\":0.18419,\"low\":0.175,\"close\":0.1756,\"volume\":3142127.279473542,\"close_time\":1510322389977,\"vwap\":0.17633151315371934,\"ema1\":0.18417699864294276,\"sma1\":0.17804691425925925,\"sma2\":0.17987671000000008,\"rsi_avg_gain\":0.000614651622660119,\"rsi_avg_loss\":0.0012951727298005698,\"rsi\":32},{\"period_id\":\"120m209765\",\"size\":\"120m\",\"time\":1510308000000,\"open\":0.18448,\"high\":0.18618,\"low\":0.1828,\"close\":0.18419,\"volume\":1506359.236394429,\"close_time\":1510315192886,\"vwap\":0.18346468137435828,\"ema1\":0.18476851579073192,\"sma1\":0.17791543277777783,\"sma2\":0.1797035433333334,\"rsi_avg_gain\":0.0006619325167108974,\"rsi_avg_loss\":0.000734032170554461,\"rsi\":47},{\"period_id\":\"120m209764\",\"size\":\"120m\",\"time\":1510300800000,\"open\":0.184,\"high\":0.18554,\"low\":0.183,\"close\":0.1833,\"volume\":1503755.2062659115,\"close_time\":1510307961116,\"vwap\":0.1845565534141115,\"ema1\":0.18480841343147206,\"sma1\":0.17779617351851856,\"sma2\":0.1795332100000001,\"rsi_avg_gain\":0.0006443888641501971,\"rsi_avg_loss\":0.0007904961836740349,\"rsi\":45},{\"period_id\":\"120m209763\",\"size\":\"120m\",\"time\":1510293600000,\"open\":0.1856,\"high\":0.18767,\"low\":0.182,\"close\":0.18456,\"volume\":1486303.6773744512,\"close_time\":1510300710540,\"vwap\":0.184319848817635,\"ema1\":0.18491244194398737,\"sma1\":0.1776452475925926,\"sma2\":0.17936287666666675,\"rsi_avg_gain\":0.0006939572383155969,\"rsi_avg_loss\":0.0007543805054951136,\"rsi\":48},{\"period_id\":\"120m209762\",\"size\":\"120m\",\"time\":1510286400000,\"open\":0.18779,\"high\":0.1893,\"low\":0.185,\"close\":0.1856,\"volume\":939146.5902925809,\"close_time\":1510293560736,\"vwap\":0.18513008686010968,\"ema1\":0.18493674828495202,\"sma1\":0.17748154388888893,\"sma2\":0.1791872100000001,\"rsi_avg_gain\":0.0007473385643398736,\"rsi_avg_loss\":0.000732409775148585,\"rsi\":51},{\"period_id\":\"120m209761\",\"size\":\"120m\",\"time\":1510279200000,\"open\":0.18826,\"high\":0.1888,\"low\":0.18701,\"close\":0.18705,\"volume\":339837.14506474993,\"close_time\":1510285951714,\"vwap\":0.18725161424583345,\"ema1\":0.1848910067873625,\"sma1\":0.17732413648148154,\"sma2\":0.17897471000000006,\"rsi_avg_gain\":0.0008048261462121716,\"rsi_avg_loss\":0.0006772105270830911,\"rsi\":54},{\"period_id\":\"120m209760\",\"size\":\"120m\",\"time\":1510272000000,\"open\":0.18789,\"high\":0.1891,\"low\":0.18751,\"close\":0.18826,\"volume\":345118.0852415101,\"close_time\":1510279161966,\"vwap\":0.18835896497845628,\"ema1\":0.18474211070373234,\"sma1\":0.17716571055555563,\"sma2\":0.17874387666666677,\"rsi_avg_gain\":0.0008667358497669541,\"rsi_avg_loss\":0.0006362267214740969,\"rsi\":58},{\"period_id\":\"120m209759\",\"size\":\"120m\",\"time\":1510264800000,\"open\":0.18834,\"high\":0.18945,\"low\":0.187,\"close\":0.1879,\"volume\":796401.9897196796,\"close_time\":1510271939436,\"vwap\":0.18802679401620923,\"ema1\":0.18449949764881732,\"sma1\":0.17701191425925933,\"sma2\":0.1784985433333334,\"rsi_avg_gain\":0.0009057155305182582,\"rsi_avg_loss\":0.0006851672385105659,\"rsi\":57},{\"period_id\":\"120m209758\",\"size\":\"120m\",\"time\":1510257600000,\"open\":0.18978,\"high\":0.19079,\"low\":0.188,\"close\":0.18826,\"volume\":1298007.2077193111,\"close_time\":1510264623260,\"vwap\":0.18871234844248697,\"ema1\":0.18426498024528748,\"sma1\":0.17684580314814824,\"sma2\":0.17826021000000009,\"rsi_avg_gain\":0.0009753859559427396,\"rsi_avg_loss\":0.0007101801030113786,\"rsi\":58},{\"period_id\":\"120m209757\",\"size\":\"120m\",\"time\":1510250400000,\"open\":0.19128,\"high\":0.19157,\"low\":0.189,\"close\":0.19,\"volume\":1405700.9650095599,\"close_time\":1510257580160,\"vwap\":0.18986902553127247,\"ema1\":0.1839894616415142,\"sma1\":0.17667126611111125,\"sma2\":0.1780185433333334,\"rsi_avg_gain\":0.001050415644861412,\"rsi_avg_loss\":0.0006309631878584084,\"rsi\":62},{\"period_id\":\"120m209756\",\"size\":\"120m\",\"time\":1510243200000,\"open\":0.18917,\"high\":0.1916,\"low\":0.189,\"close\":0.19116,\"volume\":1132757.5451497396,\"close_time\":1510250373928,\"vwap\":0.19130599359806236,\"ema1\":0.18357494175472208,\"sma1\":0.1765036735185187,\"sma2\":0.17775237666666677,\"rsi_avg_gain\":0.0011312168483122898,\"rsi_avg_loss\":0.0005902680484629018,\"rsi\":66},{\"period_id\":\"120m209755\",\"size\":\"120m\",\"time\":1510236000000,\"open\":0.18691,\"high\":0.1895,\"low\":0.186,\"close\":0.18924,\"volume\":1015144.8545400195,\"close_time\":1510243165747,\"vwap\":0.1887002993587186,\"ema1\":0.1830518342895305,\"sma1\":0.17636571055555572,\"sma2\":0.17752904333333344,\"rsi_avg_gain\":0.0010705412212593888,\"rsi_avg_loss\":0.0006356732829600481,\"rsi\":63},{\"period_id\":\"120m209754\",\"size\":\"120m\",\"time\":1510228800000,\"open\":0.18752,\"high\":0.18776,\"low\":0.185,\"close\":0.18751,\"volume\":1343139.0552525606,\"close_time\":1510235959442,\"vwap\":0.18718980452169962,\"ema1\":0.1826250642405326,\"sma1\":0.1762457105555557,\"sma2\":0.17735404333333343,\"rsi_avg_gain\":0.0010198136228947278,\"rsi_avg_loss\":0.0006845712278031286,\"rsi\":60},{\"period_id\":\"120m209753\",\"size\":\"120m\",\"time\":1510221600000,\"open\":0.1869,\"high\":0.19,\"low\":0.1862,\"close\":0.18776,\"volume\":3008040.409756683,\"close_time\":1510228722468,\"vwap\":0.18737219782256267,\"ema1\":0.18228817211919002,\"sma1\":0.17610496981481497,\"sma2\":0.17714137666666677,\"rsi_avg_gain\":0.0010982608246558607,\"rsi_avg_loss\":0.0007179997837879846,\"rsi\":60},{\"period_id\":\"120m209752\",\"size\":\"120m\",\"time\":1510214400000,\"open\":0.1918,\"high\":0.19399,\"low\":0.18508,\"close\":0.18612,\"volume\":2349684.717258219,\"close_time\":1510221593570,\"vwap\":0.18639020311636445,\"ema1\":0.18191080467913415,\"sma1\":0.17592635870370388,\"sma2\":0.17697271000000006,\"rsi_avg_gain\":0.001056588580398619,\"rsi_avg_loss\":0.0007732305363870603,\"rsi\":58},{\"period_id\":\"120m209751\",\"size\":\"120m\",\"time\":1510207200000,\"open\":0.19,\"high\":0.19345,\"low\":0.18762,\"close\":0.1923,\"volume\":1760255.8831517405,\"close_time\":1510214387087,\"vwap\":0.19181226325253814,\"ema1\":0.18162051534666063,\"sma1\":0.17574978462962984,\"sma2\":0.17669971000000004,\"rsi_avg_gain\":0.0011378646250446666,\"rsi_avg_loss\":0.00035732519303221936,\"rsi\":76},{\"period_id\":\"120m209750\",\"size\":\"120m\",\"time\":1510200000000,\"open\":0.19149,\"high\":0.19209,\"low\":0.18817,\"close\":0.19,\"volume\":1028929.5947521498,\"close_time\":1510207189870,\"vwap\":0.1903786671029248,\"ema1\":0.1808839991636717,\"sma1\":0.17558172907407427,\"sma2\":0.1764783766666667,\"rsi_avg_gain\":0.0010484695962019491,\"rsi_avg_loss\":0.00038481174634239006,\"rsi\":73},{\"period_id\":\"120m209749\",\"size\":\"120m\",\"time\":1510192800000,\"open\":0.1904,\"high\":0.19199,\"low\":0.19,\"close\":0.1915,\"volume\":451503.23897744983,\"close_time\":1510199851179,\"vwap\":0.19133093274097196,\"ema1\":0.18025530945082147,\"sma1\":0.17541978462962982,\"sma2\":0.17619621,\"rsi_avg_gain\":0.0011291211036020992,\"rsi_avg_loss\":0.00029902803452257383,\"rsi\":79},{\"period_id\":\"120m209748\",\"size\":\"120m\",\"time\":1510185600000,\"open\":0.1883,\"high\":0.19145,\"low\":0.18762,\"close\":0.1905,\"volume\":1098934.3051002997,\"close_time\":1510192757308,\"vwap\":0.19056835753430942,\"ema1\":0.1794798135508781,\"sma1\":0.17525987722222236,\"sma2\":0.17593787666666666,\"rsi_avg_gain\":0.001139053496186876,\"rsi_avg_loss\":0.0003220301910243103,\"rsi\":78},{\"period_id\":\"120m209747\",\"size\":\"120m\",\"time\":1510178400000,\"open\":0.18594,\"high\":0.194,\"low\":0.18486,\"close\":0.1883,\"volume\":3605912.2368677803,\"close_time\":1510185592050,\"vwap\":0.1880548900016392,\"ema1\":0.17871980069231796,\"sma1\":0.17507932166666682,\"sma2\":0.17577454333333328,\"rsi_avg_gain\":0.001057442226662789,\"rsi_avg_loss\":0.0003468017441800265,\"rsi\":75},{\"period_id\":\"120m209746\",\"size\":\"120m\",\"time\":1510171200000,\"open\":0.18458,\"high\":0.189,\"low\":0.18392,\"close\":0.18483,\"volume\":2863643.826655647,\"close_time\":1510178396358,\"vwap\":0.18562474349162777,\"ema1\":0.17805909729178818,\"sma1\":0.17494774759259274,\"sma2\":0.17574237666666667,\"rsi_avg_gain\":0.0008718608594830033,\"rsi_avg_loss\":0.00037347880142464394,\"rsi\":70},{\"period_id\":\"120m209745\",\"size\":\"120m\",\"time\":1510164000000,\"open\":0.18168,\"high\":0.18489,\"low\":0.1812,\"close\":0.18478,\"volume\":1649316.9000354288,\"close_time\":1510171085680,\"vwap\":0.1846680225192354,\"ema1\":0.17759213848432528,\"sma1\":0.17485432166666684,\"sma2\":0.17572520999999994,\"rsi_avg_gain\":0.0009350809255970809,\"rsi_avg_loss\":0.00040220793999577037,\"rsi\":70},{\"period_id\":\"120m209744\",\"size\":\"120m\",\"time\":1510156800000,\"open\":0.18179,\"high\":0.18185,\"low\":0.18021,\"close\":0.18169,\"volume\":681920.6512323202,\"close_time\":1510163982490,\"vwap\":0.18114470003196287,\"ema1\":0.17709642389703736,\"sma1\":0.17479080314814832,\"sma2\":0.17573820999999995,\"rsi_avg_gain\":0.0007693179198737787,\"rsi_avg_loss\":0.00043314701230313734,\"rsi\":64},{\"period_id\":\"120m209743\",\"size\":\"120m\",\"time\":1510149600000,\"open\":0.1805,\"high\":0.18185,\"low\":0.17981,\"close\":0.18185,\"volume\":951725.1750221897,\"close_time\":1510156611388,\"vwap\":0.1818222233728494,\"ema1\":0.1767796255451089,\"sma1\":0.17472358092592605,\"sma2\":0.17568104333333331,\"rsi_avg_gain\":0.0008284962214025308,\"rsi_avg_loss\":0.0004541583209418386,\"rsi\":65},{\"period_id\":\"120m209742\",\"size\":\"120m\",\"time\":1510142400000,\"open\":0.17993,\"high\":0.18099,\"low\":0.17898,\"close\":0.1805,\"volume\":540792.8048310501,\"close_time\":1510149525975,\"vwap\":0.18052826531249555,\"ema1\":0.17642994454821986,\"sma1\":0.17467182166666678,\"sma2\":0.17562087666666662,\"rsi_avg_gain\":0.000788380546125801,\"rsi_avg_loss\":0.0004890935763989031,\"rsi\":62},{\"period_id\":\"120m209741\",\"size\":\"120m\",\"time\":1510135200000,\"open\":0.1814,\"high\":0.1818,\"low\":0.179,\"close\":0.179,\"volume\":783970.61652481,\"close_time\":1510142377261,\"vwap\":0.17987586762467253,\"ema1\":0.17614925106878676,\"sma1\":0.17461108092592603,\"sma2\":0.1755445433333333,\"rsi_avg_gain\":0.000733640588135478,\"rsi_avg_loss\":0.0005267161591988187,\"rsi\":58},{\"period_id\":\"120m209740\",\"size\":\"120m\",\"time\":1510128000000,\"open\":0.17791,\"high\":0.1815,\"low\":0.1779,\"close\":0.1814,\"volume\":1374943.94239282,\"close_time\":1510135187696,\"vwap\":0.18108207310607227,\"ema1\":0.17595264769422034,\"sma1\":0.17454858092592598,\"sma2\":0.17539120999999996,\"rsi_avg_gain\":0.0007900744795305148,\"rsi_avg_loss\":0.00038261740221411144,\"rsi\":67},{\"period_id\":\"120m209739\",\"size\":\"120m\",\"time\":1510120800000,\"open\":0.17764,\"high\":0.17849,\"low\":0.17652,\"close\":0.178,\"volume\":384621.52919080993,\"close_time\":1510127962156,\"vwap\":0.1779642267903981,\"ema1\":0.17557696822485622,\"sma1\":0.17450515500000008,\"sma2\":0.1753463766666666,\"rsi_avg_gain\":0.0005893109779559379,\"rsi_avg_loss\":0.0004120495100767354,\"rsi\":59},{\"period_id\":\"120m209738\",\"size\":\"120m\",\"time\":1510113600000,\"open\":0.1769,\"high\":0.1777,\"low\":0.17644,\"close\":0.1777,\"volume\":69522.52897796,\"close_time\":1510120779142,\"vwap\":0.176989719635065,\"ema1\":0.17540986258519112,\"sma1\":0.17446256240740748,\"sma2\":0.1752628766666666,\"rsi_avg_gain\":0.0006115656685679335,\"rsi_avg_loss\":0.0004437456262364843,\"rsi\":58},{\"period_id\":\"120m209737\",\"size\":\"120m\",\"time\":1510106400000,\"open\":0.17604,\"high\":0.1777,\"low\":0.17601,\"close\":0.17679,\"volume\":48029.677979789994,\"close_time\":1510113047765,\"vwap\":0.1766910173530985,\"ema1\":0.17525192207382498,\"sma1\":0.17442145129629635,\"sma2\":0.1751333766666666,\"rsi_avg_gain\":0.0005886091815346981,\"rsi_avg_loss\":0.0004778799051777523,\"rsi\":55},{\"period_id\":\"120m209736\",\"size\":\"120m\",\"time\":1510099200000,\"open\":0.17749,\"high\":0.178,\"low\":0.17573,\"close\":0.17627,\"volume\":193680.65782711,\"close_time\":1510105724331,\"vwap\":0.17634999746574248,\"ema1\":0.17514584773408878,\"sma1\":0.17438404388888895,\"sma2\":0.1751413766666666,\"rsi_avg_gain\":0.0005938868108835216,\"rsi_avg_loss\":0.0005146398978837333,\"rsi\":54},{\"period_id\":\"120m209735\",\"size\":\"120m\",\"time\":1510092000000,\"open\":0.176,\"high\":0.17798,\"low\":0.17505,\"close\":0.17654,\"volume\":331983.7212767101,\"close_time\":1510099191438,\"vwap\":0.1771066138025855,\"ema1\":0.17506831999161215,\"sma1\":0.17434135870370374,\"sma2\":0.17506720999999995,\"rsi_avg_gain\":0.0006395704117207156,\"rsi_avg_loss\":0.000533458351567098,\"rsi\":55},{\"period_id\":\"120m209734\",\"size\":\"120m\",\"time\":1510084800000,\"open\":0.17462,\"high\":0.17599,\"low\":0.174,\"close\":0.1758,\"volume\":543890.8425675798,\"close_time\":1510091951730,\"vwap\":0.17550507663286566,\"ema1\":0.1749668248186199,\"sma1\":0.1743274698148148,\"sma2\":0.17486787666666662,\"rsi_avg_gain\":0.0006318450587761559,\"rsi_avg_loss\":0.0005744936093799517,\"rsi\":52},{\"period_id\":\"120m209733\",\"size\":\"120m\",\"time\":1510077600000,\"open\":0.176,\"high\":0.17623,\"low\":0.1742,\"close\":0.17467,\"volume\":298285.5914498901,\"close_time\":1510084781753,\"vwap\":0.17453358603527658,\"ema1\":0.17490936446128333,\"sma1\":0.17430265499999997,\"sma2\":0.17470687666666665,\"rsi_avg_gain\":0.0005935254479127818,\"rsi_avg_loss\":0.0006186854254861019,\"rsi\":49},{\"period_id\":\"120m209732\",\"size\":\"120m\",\"time\":1510070400000,\"open\":0.17696,\"high\":0.17699,\"low\":0.1741,\"close\":0.17624,\"volume\":616210.35768858,\"close_time\":1510077534651,\"vwap\":0.17520873574737014,\"ema1\":0.17492587235516494,\"sma1\":0.17427219203703703,\"sma2\":0.17451487666666665,\"rsi_avg_gain\":0.0006391812515983804,\"rsi_avg_loss\":0.0005455073812927238,\"rsi\":54},{\"period_id\":\"120m209731\",\"size\":\"120m\",\"time\":1510063200000,\"open\":0.1765,\"high\":0.1788,\"low\":0.175,\"close\":0.17696,\"volume\":484177.00953444996,\"close_time\":1510070388539,\"vwap\":0.1769611404412767,\"ema1\":0.1748352428624177,\"sma1\":0.1742154327777778,\"sma2\":0.17432304333333332,\"rsi_avg_gain\":0.0006883490401828712,\"rsi_avg_loss\":0.000532084872161395,\"rsi\":56},{\"period_id\":\"120m209730\",\"size\":\"120m\",\"time\":1510056000000,\"open\":0.17611,\"high\":0.1794,\"low\":0.17513,\"close\":0.1765,\"volume\":691270.1650262901,\"close_time\":1510063183951,\"vwap\":0.17648591163162428,\"ema1\":0.174688707887412,\"sma1\":0.17414691425925927,\"sma2\":0.17415170999999996,\"rsi_avg_gain\":0.0007059143509661678,\"rsi_avg_loss\":0.0005730144777122716,\"rsi\":55},{\"period_id\":\"120m209729\",\"size\":\"120m\",\"time\":1510048800000,\"open\":0.175,\"high\":0.17611,\"low\":0.1742,\"close\":0.17611,\"volume\":343346.65494068,\"close_time\":1510055978376,\"vwap\":0.1755754591899352,\"ema1\":0.17456379118999213,\"sma1\":0.17410311796296296,\"sma2\":0.17388320999999998,\"rsi_avg_gain\":0.0007302154548866421,\"rsi_avg_loss\":0.0006170925144593694,\"rsi\":54},{\"period_id\":\"120m209728\",\"size\":\"120m\",\"time\":1510041600000,\"open\":0.17482,\"high\":0.1763,\"low\":0.1744,\"close\":0.1757,\"volume\":580407.61852609,\"close_time\":1510048791024,\"vwap\":0.17552982069885578,\"ema1\":0.17445715609964677,\"sma1\":0.17407061796296294,\"sma2\":0.17356670999999996,\"rsi_avg_gain\":0.0007548474129548458,\"rsi_avg_loss\":0.0006645611694177824,\"rsi\":53},{\"period_id\":\"120m209727\",\"size\":\"120m\",\"time\":1510034400000,\"open\":0.1744,\"high\":0.17537,\"low\":0.17321,\"close\":0.17482,\"volume\":284289.22077732993,\"close_time\":1510041591397,\"vwap\":0.17449298383954726,\"ema1\":0.17437144272720861,\"sma1\":0.17405580314814817,\"sma2\":0.17330504333333335,\"rsi_avg_gain\":0.0007452202908744498,\"rsi_avg_loss\":0.0007156812593729964,\"rsi\":51},{\"period_id\":\"120m209726\",\"size\":\"120m\",\"time\":1510027200000,\"open\":0.17457,\"high\":0.17517,\"low\":0.17371,\"close\":0.17447,\"volume\":11673.709015010001,\"close_time\":1510034307242,\"vwap\":0.17446979256747405,\"ema1\":0.17434050774287818,\"sma1\":0.1740440438888889,\"sma2\":0.1730855433333333,\"rsi_avg_gain\":0.0007756218517109447,\"rsi_avg_loss\":0.00077073366394015,\"rsi\":50},{\"period_id\":\"120m209725\",\"size\":\"120m\",\"time\":1510020000000,\"open\":0.17377,\"high\":0.1745,\"low\":0.17302,\"close\":0.1745,\"volume\":20485.34577588,\"close_time\":1510026811994,\"vwap\":0.17331825304706938,\"ema1\":0.17433157724238701,\"sma1\":0.17401395129629627,\"sma2\":0.17288554333333334,\"rsi_avg_gain\":0.000835285071073325,\"rsi_avg_loss\":0.0008277131765509306,\"rsi\":50},{\"period_id\":\"120m209724\",\"size\":\"120m\",\"time\":1510012800000,\"open\":0.1752,\"high\":0.176,\"low\":0.173,\"close\":0.173,\"volume\":507745.65906769,\"close_time\":1510019694184,\"vwap\":0.17330515804423186,\"ema1\":0.174319961879793,\"sma1\":0.17397811796296297,\"sma2\":0.17275754333333332,\"rsi_avg_gain\":0.0007841531534635807,\"rsi_avg_loss\":0.0008913834209010021,\"rsi\":47},{\"period_id\":\"120m209723\",\"size\":\"120m\",\"time\":1510005600000,\"open\":0.176,\"high\":0.17736,\"low\":0.17508,\"close\":0.17583,\"volume\":321363.90848562,\"close_time\":1510012612990,\"vwap\":0.1757119257737453,\"ema1\":0.17441099373357183,\"sma1\":0.17393339574074074,\"sma2\":0.17256604333333334,\"rsi_avg_gain\":0.000844472626806933,\"rsi_avg_loss\":0.0007422590686626177,\"rsi\":53},{\"period_id\":\"120m209722\",\"size\":\"120m\",\"time\":1509998400000,\"open\":0.17397,\"high\":0.17917,\"low\":0.173,\"close\":0.17652,\"volume\":837215.3540747804,\"close_time\":1510005596259,\"vwap\":0.1764532601849175,\"ema1\":0.17431313123243886,\"sma1\":0.17388821055555553,\"sma2\":0.17239937666666666,\"rsi_avg_gain\":0.0009094320596382355,\"rsi_avg_loss\":0.0007462789970212788,\"rsi\":55},{\"period_id\":\"120m209721\",\"size\":\"120m\",\"time\":1509991200000,\"open\":0.1779,\"high\":0.178,\"low\":0.1725,\"close\":0.17344,\"volume\":831803.0782492501,\"close_time\":1509998371399,\"vwap\":0.17315792171251726,\"ema1\":0.17416093338640015,\"sma1\":0.17383654388888883,\"sma2\":0.17231671,\"rsi_avg_gain\":0.0007424652949950229,\"rsi_avg_loss\":0.0008036850737152233,\"rsi\":48},{\"period_id\":\"120m209720\",\"size\":\"120m\",\"time\":1509984000000,\"open\":0.17718,\"high\":0.178,\"low\":0.176,\"close\":0.1779,\"volume\":519464.5367089202,\"close_time\":1509991165784,\"vwap\":0.17793062126985046,\"ema1\":0.1742106529302898,\"sma1\":0.1737830253703703,\"sma2\":0.17218487666666665,\"rsi_avg_gain\":0.00079957800999464,\"rsi_avg_loss\":0.0005224300793856257,\"rsi\":60},{\"period_id\":\"120m209719\",\"size\":\"120m\",\"time\":1509976800000,\"open\":0.17746,\"high\":0.17942,\"low\":0.176,\"close\":0.17651,\"volume\":713613.6589118104,\"close_time\":1509983927143,\"vwap\":0.17709958316684132,\"ema1\":0.17395621520134427,\"sma1\":0.17373274759259252,\"sma2\":0.17211521,\"rsi_avg_gain\":0.0007541609338403814,\"rsi_avg_loss\":0.0005626170085691354,\"rsi\":57},{\"period_id\":\"120m209718\",\"size\":\"120m\",\"time\":1509969600000,\"open\":0.17809,\"high\":0.1795,\"low\":0.17611,\"close\":0.17749,\"volume\":1374767.8448534303,\"close_time\":1509976794806,\"vwap\":0.17695601834267188,\"ema1\":0.1737800921117818,\"sma1\":0.17368885870370365,\"sma2\":0.17200871,\"rsi_avg_gain\":0.0008121733133665646,\"rsi_avg_loss\":0.0005305106246129143,\"rsi\":60},{\"period_id\":\"120m209717\",\"size\":\"120m\",\"time\":1509962400000,\"open\":0.1735,\"high\":0.17999,\"low\":0.1725,\"close\":0.1781,\"volume\":2200216.881624569,\"close_time\":1509969590499,\"vwap\":0.17779021395565534,\"ema1\":0.17352423639535297,\"sma1\":0.17363922907407403,\"sma2\":0.17187354333333332,\"rsi_avg_gain\":0.0008746481836255311,\"rsi_avg_loss\":0.0005243960572754462,\"rsi\":63},{\"period_id\":\"120m209716\",\"size\":\"120m\",\"time\":1509955200000,\"open\":0.17255,\"high\":0.17357,\"low\":0.17148,\"close\":0.17356,\"volume\":335989.29328549025,\"close_time\":1509962384294,\"vwap\":0.1732447585893753,\"ema1\":0.1732086664915842,\"sma1\":0.17365006240740738,\"sma2\":0.17183271,\"rsi_avg_gain\":0.0005926980439044169,\"rsi_avg_loss\":0.0005647342155274037,\"rsi\":51},{\"period_id\":\"120m209715\",\"size\":\"120m\",\"time\":1509948000000,\"open\":0.1721,\"high\":0.1728,\"low\":0.1715,\"close\":0.1715,\"volume\":202010.55558656997,\"close_time\":1509955028898,\"vwap\":0.17214209428086719,\"ema1\":0.17318443659445207,\"sma1\":0.1736625624074074,\"sma2\":0.17182771000000002,\"rsi_avg_gain\":0.0004798286626662968,\"rsi_avg_loss\":0.0006081753090295116,\"rsi\":44},{\"period_id\":\"120m209714\",\"size\":\"120m\",\"time\":1509940800000,\"open\":0.17246,\"high\":0.17288,\"low\":0.17201,\"close\":0.1721,\"volume\":23604.53356389,\"close_time\":1509947976027,\"vwap\":0.17204756568260168,\"ema1\":0.17330060463544877,\"sma1\":0.173670155,\"sma2\":0.17180604333333335,\"rsi_avg_gain\":0.0005167385597944735,\"rsi_avg_loss\":0.0006088041789548594,\"rsi\":46},{\"period_id\":\"120m209713\",\"size\":\"120m\",\"time\":1509933600000,\"open\":0.17205,\"high\":0.17288,\"low\":0.17157,\"close\":0.17201,\"volume\":19736.135164620002,\"close_time\":1509939281965,\"vwap\":0.17201169556598836,\"ema1\":0.1733834049551349,\"sma1\":0.17367598833333334,\"sma2\":0.17177304333333335,\"rsi_avg_gain\":0.0005495646028555863,\"rsi_avg_loss\":0.0006556352696436946,\"rsi\":46},{\"period_id\":\"120m209712\",\"size\":\"120m\",\"time\":1509926400000,\"open\":0.17216,\"high\":0.17292,\"low\":0.1715,\"close\":0.17158,\"volume\":121462.81296058,\"close_time\":1509933007327,\"vwap\":0.17198130892808547,\"ema1\":0.17347812253824765,\"sma1\":0.17368969203703702,\"sma2\":0.17177604333333335,\"rsi_avg_gain\":0.0005587618799983248,\"rsi_avg_loss\":0.0007060687519239788,\"rsi\":44},{\"period_id\":\"120m209711\",\"size\":\"120m\",\"time\":1509919200000,\"open\":0.1731326,\"high\":0.1735,\"low\":0.17202,\"close\":0.17295,\"volume\":141936.93398588,\"close_time\":1509926340359,\"vwap\":0.17273484637825373,\"ema1\":0.17360902754088542,\"sma1\":0.1737000624074074,\"sma2\":0.17174754333333336,\"rsi_avg_gain\":0.000601743563075119,\"rsi_avg_loss\":0.000654997117456594,\"rsi\":48},{\"period_id\":\"120m209710\",\"size\":\"120m\",\"time\":1509912000000,\"open\":0.1715,\"high\":0.1731326,\"low\":0.17102,\"close\":0.1731326,\"volume\":453581.5936299202,\"close_time\":1509919033486,\"vwap\":0.17247056509853648,\"ema1\":0.1736544777161189,\"sma1\":0.17371383462962958,\"sma2\":0.17172933333333337,\"rsi_avg_gain\":0.0006480315294655129,\"rsi_avg_loss\":0.000691335357260947,\"rsi\":48},{\"period_id\":\"120m209709\",\"size\":\"120m\",\"time\":1509904800000,\"open\":0.17196,\"high\":0.172,\"low\":0.171,\"close\":0.17148,\"volume\":278209.07779125,\"close_time\":1509911957273,\"vwap\":0.17132998359418528,\"ema1\":0.17369046928274778,\"sma1\":0.17373939018518517,\"sma2\":0.17174900000000007,\"rsi_avg_gain\":0.0005707570317320904,\"rsi_avg_loss\":0.0007445150001271737,\"rsi\":43},{\"period_id\":\"120m209708\",\"size\":\"120m\",\"time\":1509897600000,\"open\":0.17288,\"high\":0.173,\"low\":0.17115,\"close\":0.172,\"volume\":375641.9879333099,\"close_time\":1509904684190,\"vwap\":0.17211447815678493,\"ema1\":0.17384291544017866,\"sma1\":0.1737573531481481,\"sma2\":0.1717490000000001,\"rsi_avg_gain\":0.0006146614187884051,\"rsi_avg_loss\":0.0007617853847523415,\"rsi\":45},{\"period_id\":\"120m209707\",\"size\":\"120m\",\"time\":1509890400000,\"open\":0.17179,\"high\":0.173,\"low\":0.171,\"close\":0.17297,\"volume\":292718.31836345984,\"close_time\":1509897404974,\"vwap\":0.17262805025608477,\"ema1\":0.1739700130567427,\"sma1\":0.17377401981481477,\"sma2\":0.1717578333333334,\"rsi_avg_gain\":0.0006619430663875132,\"rsi_avg_loss\":0.000745768875887135,\"rsi\":47},{\"period_id\":\"120m209706\",\"size\":\"120m\",\"time\":1509883200000,\"open\":0.17341,\"high\":0.17438,\"low\":0.1713,\"close\":0.1719,\"volume\":480094.5933641599,\"close_time\":1509890180175,\"vwap\":0.172010224769516,\"ema1\":0.1740389794744491,\"sma1\":0.1737765198148148,\"sma2\":0.1718028333333334,\"rsi_avg_gain\":0.0006305540714942438,\"rsi_avg_loss\":0.0008031357124938377,\"rsi\":44},{\"period_id\":\"120m209705\",\"size\":\"120m\",\"time\":1509876000000,\"open\":0.1735,\"high\":0.17436,\"low\":0.172,\"close\":0.1738,\"volume\":282879.70329523,\"close_time\":1509882934323,\"vwap\":0.1734947380995721,\"ema1\":0.17418649530027316,\"sma1\":0.1737778161111111,\"sma2\":0.17181316666666674,\"rsi_avg_gain\":0.0006790582308399549,\"rsi_avg_loss\":0.0007187615365318242,\"rsi\":49},{\"period_id\":\"120m209704\",\"size\":\"120m\",\"time\":1509868800000,\"open\":0.175,\"high\":0.175,\"low\":0.17224,\"close\":0.17308,\"volume\":192083.89489337002,\"close_time\":1509875951637,\"vwap\":0.17278406970749835,\"ema1\":0.17421315014856786,\"sma1\":0.17377744574074072,\"sma2\":0.17184000000000005,\"rsi_avg_gain\":0.00067590886398149,\"rsi_avg_loss\":0.0007740508854958108,\"rsi\":47},{\"period_id\":\"120m209703\",\"size\":\"120m\",\"time\":1509861600000,\"open\":0.17477,\"high\":0.175,\"low\":0.17412,\"close\":0.17434,\"volume\":22891.058959859998,\"close_time\":1509868062594,\"vwap\":0.17477820752689527,\"ema1\":0.174291298434676,\"sma1\":0.17377559388888886,\"sma2\":0.17183783333333338,\"rsi_avg_gain\":0.0007279018535185276,\"rsi_avg_loss\":0.0007366701843801053,\"rsi\":50},{\"period_id\":\"120m209702\",\"size\":\"120m\",\"time\":1509854400000,\"open\":0.1743,\"high\":0.1751,\"low\":0.17386,\"close\":0.17506,\"volume\":45456.856648160014,\"close_time\":1509861577221,\"vwap\":0.17401039959403683,\"ema1\":0.17428793970603296,\"sma1\":0.17376874203703696,\"sma2\":0.17181833333333338,\"rsi_avg_gain\":0.0007838943037891836,\"rsi_avg_loss\":0.0007379525062554982,\"rsi\":52},{\"period_id\":\"120m209701\",\"size\":\"120m\",\"time\":1509847200000,\"open\":0.17441,\"high\":0.17508,\"low\":0.17233,\"close\":0.1743,\"volume\":87526.60253024001,\"close_time\":1509854298552,\"vwap\":0.17378613790783537,\"ema1\":0.174234694168518,\"sma1\":0.17375633462962958,\"sma2\":0.17181566666666673,\"rsi_avg_gain\":0.0007857323271575837,\"rsi_avg_loss\":0.0007947180836597673,\"rsi\":50},{\"period_id\":\"120m209700\",\"size\":\"120m\",\"time\":1509840000000,\"open\":0.1732,\"high\":0.1747,\"low\":0.17234,\"close\":0.17441,\"volume\":220942.73585190997,\"close_time\":1509847131823,\"vwap\":0.1734593092668257,\"ema1\":0.17423019031807097,\"sma1\":0.1737498531481481,\"sma2\":0.1718096666666667,\"rsi_avg_gain\":0.0008461732754004748,\"rsi_avg_loss\":0.0008473887054797495,\"rsi\":50},{\"period_id\":\"120m209699\",\"size\":\"120m\",\"time\":1509832800000,\"open\":0.17397,\"high\":0.17489,\"low\":0.17309,\"close\":0.17318,\"volume\":70737.93909811002,\"close_time\":1509839832787,\"vwap\":0.17395979646790014,\"ema1\":0.17421778965035173,\"sma1\":0.17374290870370365,\"sma2\":0.17182766666666668,\"rsi_avg_gain\":0.0008166481427389721,\"rsi_avg_loss\":0.0009125724520551149,\"rsi\":47},{\"period_id\":\"120m209698\",\"size\":\"120m\",\"time\":1509825600000,\"open\":0.1747,\"high\":0.17491,\"low\":0.173,\"close\":0.17396,\"volume\":312704.62396786007,\"close_time\":1509832781004,\"vwap\":0.17358707261397543,\"ema1\":0.17428936135037598,\"sma1\":0.17373327907407404,\"sma2\":0.17182000000000003,\"rsi_avg_gain\":0.0008794672306419699,\"rsi_avg_loss\":0.0009227703329824312,\"rsi\":49},{\"period_id\":\"120m209697\",\"size\":\"120m\",\"time\":1509818400000,\"open\":0.17519,\"high\":0.17576,\"low\":0.1746,\"close\":0.1755,\"volume\":115412.53669688001,\"close_time\":1509825521375,\"vwap\":0.1752349441273354,\"ema1\":0.174312075926264,\"sma1\":0.17372003833333327,\"sma2\":0.17180766666666666,\"rsi_avg_gain\":0.0009471185560759677,\"rsi_avg_loss\":0.0008752911278272346,\"rsi\":52},{\"period_id\":\"120m209696\",\"size\":\"120m\",\"time\":1509811200000,\"open\":0.17544,\"high\":0.176,\"low\":0.17461,\"close\":0.17519,\"volume\":265530.03636954,\"close_time\":1509818399443,\"vwap\":0.17509927167134237,\"ema1\":0.1742301501280753,\"sma1\":0.17369772351851848,\"sma2\":0.17177116666666667,\"rsi_avg_gain\":0.0009961276757741208,\"rsi_avg_loss\":0.0009426212145831758,\"rsi\":51},{\"period_id\":\"120m209695\",\"size\":\"120m\",\"time\":1509804000000,\"open\":0.17701,\"high\":0.17727,\"low\":0.1754,\"close\":0.17584,\"volume\":400965.41010697023,\"close_time\":1509811145225,\"vwap\":0.17575076881589138,\"ema1\":0.17416395358518394,\"sma1\":0.17367207537037033,\"sma2\":0.17174766666666663,\"rsi_avg_gain\":0.0010727528816028994,\"rsi_avg_loss\":0.0009651305387818828,\"rsi\":53},{\"period_id\":\"120m209694\",\"size\":\"120m\",\"time\":1509796800000,\"open\":0.17545,\"high\":0.17796,\"low\":0.175,\"close\":0.17701,\"volume\":519384.7214879097,\"close_time\":1509803994909,\"vwap\":0.1772637490907127,\"ema1\":0.1740483641772656,\"sma1\":0.17365281611111102,\"sma2\":0.17170333333333332,\"rsi_avg_gain\":0.0011552723340338916,\"rsi_avg_loss\":0.000949371349457412,\"rsi\":55},{\"period_id\":\"120m209693\",\"size\":\"120m\",\"time\":1509789600000,\"open\":0.17463,\"high\":0.17686,\"low\":0.1742,\"close\":0.175,\"volume\":276182.54125248006,\"close_time\":1509796634780,\"vwap\":0.1753120730027502,\"ema1\":0.1738441134308701,\"sma1\":0.17364151981481477,\"sma2\":0.1717033333333333,\"rsi_avg_gain\":0.0010895240520364976,\"rsi_avg_loss\":0.0010223999148002898,\"rsi\":52},{\"period_id\":\"120m209692\",\"size\":\"120m\",\"time\":1509782400000,\"open\":0.17584,\"high\":0.17674414,\"low\":0.17422,\"close\":0.176,\"volume\":457462.7664928798,\"close_time\":1509789508359,\"vwap\":0.17591598232838263,\"ema1\":0.1737643971157577,\"sma1\":0.17362379629629623,\"sma2\":0.1716633333333333,\"rsi_avg_gain\":0.0011733335945008437,\"rsi_avg_loss\":0.0010241229851695427,\"rsi\":53},{\"period_id\":\"120m209691\",\"size\":\"120m\",\"time\":1509775200000,\"open\":0.17575,\"high\":0.17638,\"low\":0.17486,\"close\":0.17592,\"volume\":205233.37796132002,\"close_time\":1509782377457,\"vwap\":0.17587225725049224,\"ema1\":0.1736102176064996,\"sma1\":0.17359712962962956,\"sma2\":0.17161466666666664,\"rsi_avg_gain\":0.0012574361786932165,\"rsi_avg_loss\":0.0011029016763364305,\"rsi\":53},{\"period_id\":\"120m209690\",\"size\":\"120m\",\"time\":1509768000000,\"open\":0.17459,\"high\":0.17672,\"low\":0.17359,\"close\":0.17672,\"volume\":408079.27570876,\"close_time\":1509775092431,\"vwap\":0.17652059461578523,\"ema1\":0.17345092226901682,\"sma1\":0.17356851851851848,\"sma2\":0.17155416666666665,\"rsi_avg_gain\":0.0013541620385926947,\"rsi_avg_loss\":0.001126201805285387,\"rsi\":55},{\"period_id\":\"120m209689\",\"size\":\"120m\",\"time\":1509760800000,\"open\":0.17535,\"high\":0.17698,\"low\":0.17202,\"close\":0.17457,\"volume\":1521247.5292743105,\"close_time\":1509767699486,\"vwap\":0.17337549313449807,\"ema1\":0.1732254686323973,\"sma1\":0.17353731481481477,\"sma2\":0.17152916666666662,\"rsi_avg_gain\":0.001292943733869057,\"rsi_avg_loss\":0.001212832713384263,\"rsi\":52},{\"period_id\":\"120m209688\",\"size\":\"120m\",\"time\":1509753600000,\"open\":0.1785,\"high\":0.179,\"low\":0.175,\"close\":0.175,\"volume\":451997.22231772024,\"close_time\":1509760617905,\"vwap\":0.17529192892527587,\"ema1\":0.1731327423311833,\"sma1\":0.17348388888888883,\"sma2\":0.17149466666666663,\"rsi_avg_gain\":0.0013924009441666767,\"rsi_avg_loss\":0.0012730506144138227,\"rsi\":52},{\"period_id\":\"120m209687\",\"size\":\"120m\",\"time\":1509746400000,\"open\":0.1829,\"high\":0.184,\"low\":0.1785,\"close\":0.1785,\"volume\":575165.06890172,\"close_time\":1509753593833,\"vwap\":0.1786685716408579,\"ema1\":0.17300396594023043,\"sma1\":0.1733971296296296,\"sma2\":0.17139216666666662,\"rsi_avg_gain\":0.001499508709102575,\"rsi_avg_loss\":0.001101746815522578,\"rsi\":58},{\"period_id\":\"120m209686\",\"size\":\"120m\",\"time\":1509739200000,\"open\":0.1832,\"high\":0.18659,\"low\":0.182,\"close\":0.1829,\"volume\":2008075.9797360403,\"close_time\":1509746386140,\"vwap\":0.18285002406326134,\"ema1\":0.17262492910852217,\"sma1\":0.17327666666666663,\"sma2\":0.17122716666666665,\"rsi_avg_gain\":0.001614855532879696,\"rsi_avg_loss\":0.0008480350321012367,\"rsi\":66},{\"period_id\":\"120m209685\",\"size\":\"120m\",\"time\":1509732000000,\"open\":0.18246,\"high\":0.184,\"low\":0.17948,\"close\":0.18375,\"volume\":1677742.2580434396,\"close_time\":1509739152792,\"vwap\":0.18349747316048484,\"ema1\":0.17191630352979956,\"sma1\":0.17316833333333334,\"sma2\":0.17103883333333328,\"rsi_avg_gain\":0.0017390751892550572,\"rsi_avg_loss\":0.0008478838807244095,\"rsi\":67},{\"period_id\":\"120m209684\",\"size\":\"120m\",\"time\":1509724800000,\"open\":0.17841,\"high\":0.18247,\"low\":0.17841,\"close\":0.18247,\"volume\":1072665.8394164399,\"close_time\":1509731987799,\"vwap\":0.18196372583990297,\"ema1\":0.17110018653185471,\"sma1\":0.17307925925925924,\"sma2\":0.17086349999999997,\"rsi_avg_gain\":0.0017743886653515998,\"rsi_avg_loss\":0.0009131057177032102,\"rsi\":66},{\"period_id\":\"120m209683\",\"size\":\"120m\",\"time\":1509717600000,\"open\":0.1768,\"high\":0.18334,\"low\":0.17621,\"close\":0.17842,\"volume\":2248575.3095276006,\"close_time\":1509724727590,\"vwap\":0.1787957323132709,\"ema1\":0.17031606146508607,\"sma1\":0.17300240740740738,\"sma2\":0.17076766666666668,\"rsi_avg_gain\":0.0015993416396094151,\"rsi_avg_loss\":0.0009833446190649956,\"rsi\":62},{\"period_id\":\"120m209682\",\"size\":\"120m\",\"time\":1509710400000,\"open\":0.17437,\"high\":0.17699,\"low\":0.173,\"close\":0.17689,\"volume\":661699.4675666498,\"close_time\":1509717577659,\"vwap\":0.17669781205775223,\"ema1\":0.16975716915233338,\"sma1\":0.17297009259259258,\"sma2\":0.17068616666666667,\"rsi_avg_gain\":0.0016046756118870621,\"rsi_avg_loss\":0.001058986512839226,\"rsi\":60},{\"period_id\":\"120m209681\",\"size\":\"120m\",\"time\":1509703200000,\"open\":0.1745,\"high\":0.17557,\"low\":0.17226,\"close\":0.17442,\"volume\":781881.1833836805,\"close_time\":1509710384632,\"vwap\":0.17386022967628956,\"ema1\":0.16926524978352878,\"sma1\":0.17297185185185182,\"sma2\":0.17061966666666664,\"rsi_avg_gain\":0.0015381121974168362,\"rsi_avg_loss\":0.0011404470138268587,\"rsi\":57},{\"period_id\":\"120m209680\",\"size\":\"120m\",\"time\":1509696000000,\"open\":0.1749,\"high\":0.1765,\"low\":0.1721,\"close\":0.1722,\"volume\":1284360.5497725192,\"close_time\":1509703193194,\"vwap\":0.17484200250279966,\"ema1\":0.16890974976859974,\"sma1\":0.17297555555555555,\"sma2\":0.17060466666666665,\"rsi_avg_gain\":0.0014856592895258237,\"rsi_avg_loss\":0.0012281737071981554,\"rsi\":55},{\"period_id\":\"120m209679\",\"size\":\"120m\",\"time\":1509688800000,\"open\":0.1717,\"high\":0.176,\"low\":0.17,\"close\":0.17531,\"volume\":935123.9349501398,\"close_time\":1509695910104,\"vwap\":0.17431780785713705,\"ema1\":0.16868283595953765,\"sma1\":0.17298472222222222,\"sma2\":0.1705553333333333,\"rsi_avg_gain\":0.0015999407733355024,\"rsi_avg_loss\":0.0010834178385210904,\"rsi\":60},{\"period_id\":\"120m209678\",\"size\":\"120m\",\"time\":1509681600000,\"open\":0.16914,\"high\":0.1742,\"low\":0.1675,\"close\":0.17269,\"volume\":434158.1058708002,\"close_time\":1509688744339,\"vwap\":0.17241382670109912,\"ema1\":0.1682257901636437,\"sma1\":0.17300138888888889,\"sma2\":0.17056599999999997,\"rsi_avg_gain\":0.0015214746789766961,\"rsi_avg_loss\":0.0011667576722534819,\"rsi\":57},{\"period_id\":\"120m209677\",\"size\":\"120m\",\"time\":1509674400000,\"open\":0.17603,\"high\":0.1768,\"low\":0.16835,\"close\":0.16902,\"volume\":791394.3819360004,\"close_time\":1509681430051,\"vwap\":0.1697672522409666,\"ema1\":0.16791791362320532,\"sma1\":0.17298111111111109,\"sma2\":0.170591,\"rsi_avg_gain\":0.0013562035004364415,\"rsi_avg_loss\":0.0012565082624268267,\"rsi\":52},{\"period_id\":\"120m209676\",\"size\":\"120m\",\"time\":1509667200000,\"open\":0.17103,\"high\":0.185,\"low\":0.17103,\"close\":0.17675,\"volume\":2884382.1256436,\"close_time\":1509674369734,\"vwap\":0.17498036074717432,\"ema1\":0.167841907666185,\"sma1\":0.17289240740740736,\"sma2\":0.17049533333333333,\"rsi_avg_gain\":0.0014605268466238602,\"rsi_avg_loss\":0.0007585473595365838,\"rsi\":66},{\"period_id\":\"120m209675\",\"size\":\"120m\",\"time\":1509660000000,\"open\":0.1639,\"high\":0.17379,\"low\":0.16262,\"close\":0.17209,\"volume\":1265909.4986710113,\"close_time\":1509667170394,\"vwap\":0.1729435943782731,\"ema1\":0.1672275564707495,\"sma1\":0.17293324074074073,\"sma2\":0.17048883333333337,\"rsi_avg_gain\":0.001214413527133388,\"rsi_avg_loss\":0.0008168971564240133,\"rsi\":60},{\"period_id\":\"120m209674\",\"size\":\"120m\",\"time\":1509652800000,\"open\":0.16502,\"high\":0.167,\"low\":0.16261,\"close\":0.16384,\"volume\":418199.62917654985,\"close_time\":1509659976821,\"vwap\":0.16373778460300847,\"ema1\":0.16689221553769773,\"sma1\":0.1730593518518518,\"sma2\":0.17062050000000004,\"rsi_avg_gain\":0.0006732145676821118,\"rsi_avg_loss\":0.0008797353992258605,\"rsi\":43},{\"period_id\":\"120m209673\",\"size\":\"120m\",\"time\":1509645600000,\"open\":0.16471,\"high\":0.16652,\"low\":0.1632,\"close\":0.16501,\"volume\":525454.1958027601,\"close_time\":1509652741055,\"vwap\":0.16555114466499424,\"ema1\":0.16710271316098724,\"sma1\":0.1732121296296296,\"sma2\":0.17072883333333333,\"rsi_avg_gain\":0.000725000303657659,\"rsi_avg_loss\":0.0008574073530124669,\"rsi\":46},{\"period_id\":\"120m209672\",\"size\":\"120m\",\"time\":1509638400000,\"open\":0.165,\"high\":0.166,\"low\":0.1635,\"close\":0.16472,\"volume\":405931.72862551996,\"close_time\":1509645579170,\"vwap\":0.16486809253725399,\"ema1\":0.16724703820657258,\"sma1\":0.1733718518518518,\"sma2\":0.1708496666666667,\"rsi_avg_gain\":0.00075846186547748,\"rsi_avg_loss\":0.0009233617647826567,\"rsi\":45},{\"period_id\":\"120m209671\",\"size\":\"120m\",\"time\":1509631200000,\"open\":0.164,\"high\":0.16849,\"low\":0.161,\"close\":0.16545,\"volume\":756164.8164522602,\"close_time\":1509638384550,\"vwap\":0.1647771780652372,\"ema1\":0.16742131670357757,\"sma1\":0.17352925925925924,\"sma2\":0.17095050000000003,\"rsi_avg_gain\":0.0008168050858988247,\"rsi_avg_loss\":0.0009382357466890143,\"rsi\":47},{\"period_id\":\"120m209670\",\"size\":\"120m\",\"time\":1509624000000,\"open\":0.16,\"high\":0.16959,\"low\":0.16,\"close\":0.16622,\"volume\":1455371.3556724899,\"close_time\":1509631193720,\"vwap\":0.1636178663271705,\"ema1\":0.16755726957968636,\"sma1\":0.17366268518518518,\"sma2\":0.1710575,\"rsi_avg_gain\":0.0008796362463525804,\"rsi_avg_loss\":0.0009511769579727851,\"rsi\":48},{\"period_id\":\"120m209669\",\"size\":\"120m\",\"time\":1509616800000,\"open\":0.15797,\"high\":0.16,\"low\":0.15464,\"close\":0.16,\"volume\":1654988.6244434293,\"close_time\":1509623991381,\"vwap\":0.15987127798455122,\"ema1\":0.1676494950679406,\"sma1\":0.17384509259259254,\"sma2\":0.17127416666666667,\"rsi_avg_gain\":0.0004688390345335479,\"rsi_avg_loss\":0.0010243444162783839,\"rsi\":31},{\"period_id\":\"120m209668\",\"size\":\"120m\",\"time\":1509609600000,\"open\":0.1595,\"high\":0.16,\"low\":0.15671,\"close\":0.15671,\"volume\":1721066.7197427999,\"close_time\":1509616786625,\"vwap\":0.15737714281233445,\"ema1\":0.1681770464519365,\"sma1\":0.17403027777777774,\"sma2\":0.171569,\"rsi_avg_gain\":0.00025182665257458895,\"rsi_avg_loss\":0.0011031401406074903,\"rsi\":19},{\"period_id\":\"120m209667\",\"size\":\"120m\",\"time\":1509602400000,\"open\":0.16123,\"high\":0.1632,\"low\":0.159,\"close\":0.15912,\"volume\":2334769.7164794793,\"close_time\":1509609597998,\"vwap\":0.15919625775255764,\"ema1\":0.16896787724172524,\"sma1\":0.17413944444444443,\"sma2\":0.17181533333333335,\"rsi_avg_gain\":0.000271197933541865,\"rsi_avg_loss\":0.001002612459115757,\"rsi\":21},{\"period_id\":\"120m209666\",\"size\":\"120m\",\"time\":1509595200000,\"open\":0.16241,\"high\":0.16472,\"low\":0.1613,\"close\":0.1613,\"volume\":345673.34816585,\"close_time\":1509602353291,\"vwap\":0.16182193823506325,\"ema1\":0.16964704118943041,\"sma1\":0.17423435185185185,\"sma2\":0.172018,\"rsi_avg_gain\":0.0002920593130450854,\"rsi_avg_loss\":0.0009120441867400469,\"rsi\":24},{\"period_id\":\"120m209665\",\"size\":\"120m\",\"time\":1509588000000,\"open\":0.16263,\"high\":0.16764,\"low\":0.1625,\"close\":0.1625,\"volume\":320289.0119792702,\"close_time\":1509595172195,\"vwap\":0.1629330524003564,\"ema1\":0.17022269920249458,\"sma1\":0.1743186111111111,\"sma2\":0.17220133333333335,\"rsi_avg_gain\":0.00031452541404855354,\"rsi_avg_loss\":0.0008898937395662038,\"rsi\":26},{\"period_id\":\"120m209664\",\"size\":\"120m\",\"time\":1509580800000,\"open\":0.16522,\"high\":0.16682,\"low\":0.1616,\"close\":0.16532,\"volume\":505396.63836847997,\"close_time\":1509587956753,\"vwap\":0.16389253000779863,\"ema1\":0.1707552991474942,\"sma1\":0.17435518518518517,\"sma2\":0.172343,\"rsi_avg_gain\":0.00033871967666767303,\"rsi_avg_loss\":0.0007414240272251434,\"rsi\":31},{\"period_id\":\"120m209663\",\"size\":\"120m\",\"time\":1509573600000,\"open\":0.1661,\"high\":0.16674,\"low\":0.16434,\"close\":0.16434,\"volume\":906775.1022949998,\"close_time\":1509580719608,\"vwap\":0.16441332698504976,\"ema1\":0.17113014736456278,\"sma1\":0.1743622222222222,\"sma2\":0.172498,\"rsi_avg_gain\":0.0002893904210267262,\"rsi_avg_loss\":0.0007984566447040006,\"rsi\":27},{\"period_id\":\"120m209662\",\"size\":\"120m\",\"time\":1509566400000,\"open\":0.16845,\"high\":0.1696,\"low\":0.16561,\"close\":0.16652,\"volume\":670029.5995432002,\"close_time\":1509573596127,\"vwap\":0.16623870734423526,\"ema1\":0.17159843338970504,\"sma1\":0.17431277777777776,\"sma2\":0.17262266666666667,\"rsi_avg_gain\":0.0003116512226441667,\"rsi_avg_loss\":0.0006921840789120016,\"rsi\":31},{\"period_id\":\"120m209661\",\"size\":\"120m\",\"time\":1509559200000,\"open\":0.16934,\"high\":0.1696,\"low\":0.16704,\"close\":0.16848,\"volume\":1189879.2806359415,\"close_time\":1509566397604,\"vwap\":0.16791062642658025,\"ema1\":0.17194867017520193,\"sma1\":0.17425148148148148,\"sma2\":0.17270366666666664,\"rsi_avg_gain\":0.0003356243936167949,\"rsi_avg_loss\":0.0005946597772898487,\"rsi\":36},{\"period_id\":\"120m209660\",\"size\":\"120m\",\"time\":1509552000000,\"open\":0.1725,\"high\":0.1725,\"low\":0.1694,\"close\":0.16999,\"volume\":917226.6054635601,\"close_time\":1509559199863,\"vwap\":0.16965792387779136,\"ema1\":0.17218788880797448,\"sma1\":0.17415425925925923,\"sma2\":0.17278266666666664,\"rsi_avg_gain\":0.0003614416546642406,\"rsi_avg_loss\":0.0005242489909275285,\"rsi\":41},{\"period_id\":\"120m209659\",\"size\":\"120m\",\"time\":1509544800000,\"open\":0.17109,\"high\":0.17284,\"low\":0.17,\"close\":0.17233,\"volume\":898158.8843483297,\"close_time\":1509551988199,\"vwap\":0.17206947614932938,\"ema1\":0.17233946734645547,\"sma1\":0.1740608333333333,\"sma2\":0.17281766666666665,\"rsi_avg_gain\":0.0003892448588691822,\"rsi_avg_loss\":0.00038457583638349155,\"rsi\":50},{\"period_id\":\"120m209658\",\"size\":\"120m\",\"time\":1509537600000,\"open\":0.1695,\"high\":0.1715,\"low\":0.169,\"close\":0.1711,\"volume\":1039009.0422977093,\"close_time\":1509544792007,\"vwap\":0.17053551200277656,\"ema1\":0.17234012026690068,\"sma1\":0.17401046296296294,\"sma2\":0.17285966666666663,\"rsi_avg_gain\":0.00032457138647450323,\"rsi_avg_loss\":0.0004141585930283755,\"rsi\":44},{\"period_id\":\"120m209657\",\"size\":\"120m\",\"time\":1509530400000,\"open\":0.1701,\"high\":0.17198,\"low\":0.1693,\"close\":0.16999,\"volume\":1167024.7693240494,\"close_time\":1509537595423,\"vwap\":0.16971702369913794,\"ema1\":0.17242564580254902,\"sma1\":0.1739659259259259,\"sma2\":0.1729228333333333,\"rsi_avg_gain\":0.0002641538008186958,\"rsi_avg_loss\":0.0004460169463382506,\"rsi\":37},{\"period_id\":\"120m209656\",\"size\":\"120m\",\"time\":1509523200000,\"open\":0.1712,\"high\":0.17266,\"low\":0.17,\"close\":0.17111,\"volume\":802673.6112538003,\"close_time\":1509530399245,\"vwap\":0.1702095837423379,\"ema1\":0.1725936213751386,\"sma1\":0.17391759259259257,\"sma2\":0.17297166666666663,\"rsi_avg_gain\":0.0002844733239585955,\"rsi_avg_loss\":0.0003941720960565768,\"rsi\":42},{\"period_id\":\"120m209655\",\"size\":\"120m\",\"time\":1509516000000,\"open\":0.1705,\"high\":0.17137,\"low\":0.17,\"close\":0.1712,\"volume\":486476.40899357,\"close_time\":1509523129373,\"vwap\":0.17068510802115644,\"ema1\":0.17269594009066538,\"sma1\":0.1738958333333333,\"sma2\":0.17301683333333331,\"rsi_avg_gain\":0.0003063558873400259,\"rsi_avg_loss\":0.000417569949599392,\"rsi\":42},{\"period_id\":\"120m209654\",\"size\":\"120m\",\"time\":1509508800000,\"open\":0.17086,\"high\":0.17162,\"low\":0.17,\"close\":0.1708,\"volume\":148063.88553533,\"close_time\":1509515159721,\"vwap\":0.1705350271489232,\"ema1\":0.17279910837278023,\"sma1\":0.17388787037037032,\"sma2\":0.17305449999999997,\"rsi_avg_gain\":0.0002991524940584907,\"rsi_avg_loss\":0.00044969071495319136,\"rsi\":40},{\"period_id\":\"120m209653\",\"size\":\"120m\",\"time\":1509501600000,\"open\":0.17165,\"high\":0.1718,\"low\":0.17,\"close\":0.17003,\"volume\":275252.1988088,\"close_time\":1509507850388,\"vwap\":0.17022325789193987,\"ema1\":0.1729369779157306,\"sma1\":0.1738791666666666,\"sma2\":0.17310949999999994,\"rsi_avg_gain\":0.00026293345513991146,\"rsi_avg_loss\":0.00048428230841112915,\"rsi\":35},{\"period_id\":\"120m209652\",\"size\":\"120m\",\"time\":1509494400000,\"open\":0.17124,\"high\":0.17199,\"low\":0.17101,\"close\":0.17176,\"volume\":125338.60549834,\"close_time\":1509501336761,\"vwap\":0.17150566155634805,\"ema1\":0.17313745915129822,\"sma1\":0.17387574074074072,\"sma2\":0.1731351666666666,\"rsi_avg_gain\":0.0002831591055352893,\"rsi_avg_loss\":0.00038845787059659995,\"rsi\":42},{\"period_id\":\"120m209651\",\"size\":\"120m\",\"time\":1509487200000,\"open\":0.17205,\"high\":0.17284,\"low\":0.17123,\"close\":0.17124,\"volume\":778377.35267301,\"close_time\":1509494388372,\"vwap\":0.17151766104498042,\"ema1\":0.17323245633414638,\"sma1\":0.17386796296296295,\"sma2\":0.17318166666666662,\"rsi_avg_gain\":0.00026494057519185055,\"rsi_avg_loss\":0.0004183392452578769,\"rsi\":39},{\"period_id\":\"120m209650\",\"size\":\"120m\",\"time\":1509480000000,\"open\":0.17263,\"high\":0.17285,\"low\":0.17204,\"close\":0.17204,\"volume\":368952.1699852,\"close_time\":1509487161380,\"vwap\":0.17250394234195085,\"ema1\":0.17336986711581165,\"sma1\":0.17385775509259258,\"sma2\":0.17320599999999994,\"rsi_avg_gain\":0.0002853206194373775,\"rsi_avg_loss\":0.00038898072566232936,\"rsi\":42},{\"period_id\":\"120m209649\",\"size\":\"120m\",\"time\":1509472800000,\"open\":0.172,\"high\":0.17272,\"low\":0.172,\"close\":0.17266,\"volume\":380343.36523268017,\"close_time\":1509479891306,\"vwap\":0.1726291248692182,\"ema1\":0.1734615820893159,\"sma1\":0.17385108842592592,\"sma2\":0.1732198333333333,\"rsi_avg_gain\":0.00030726835939409887,\"rsi_avg_loss\":0.0003712100122517386,\"rsi\":45},{\"period_id\":\"120m209648\",\"size\":\"120m\",\"time\":1509465600000,\"open\":0.17243,\"high\":0.1735,\"low\":0.172,\"close\":0.172,\"volume\":559983.7519757701,\"close_time\":1509472774896,\"vwap\":0.17254283384240096,\"ema1\":0.17351686361271698,\"sma1\":0.17384090324074072,\"sma2\":0.17323649999999996,\"rsi_avg_gain\":0.00028013515627056635,\"rsi_avg_loss\":0.0003997646285787954,\"rsi\":41},{\"period_id\":\"120m209647\",\"size\":\"120m\",\"time\":1509458400000,\"open\":0.17458,\"high\":0.1746,\"low\":0.172,\"close\":0.1735,\"volume\":938086.8382250599,\"close_time\":1509465517913,\"vwap\":0.17347006912318308,\"ema1\":0.17362147489635263,\"sma1\":0.17384284768518515,\"sma2\":0.1732311666666666,\"rsi_avg_gain\":0.0003016840144452253,\"rsi_avg_loss\":0.0003151311384694719,\"rsi\":49},{\"period_id\":\"120m209646\",\"size\":\"120m\",\"time\":1509451200000,\"open\":0.174,\"high\":0.1748,\"low\":0.1734,\"close\":0.1746,\"volume\":533246.7497322498,\"close_time\":1509458354825,\"vwap\":0.17401747871636486,\"ema1\":0.17362985247541143,\"sma1\":0.17382377361111112,\"sma2\":0.17322466666666664,\"rsi_avg_gain\":0.000324890477094858,\"rsi_avg_loss\":0.00025475661065942995,\"rsi\":56},{\"period_id\":\"120m209645\",\"size\":\"120m\",\"time\":1509444000000,\"open\":0.17467,\"high\":0.1748,\"low\":0.1735,\"close\":0.17442,\"volume\":691011.48796204,\"close_time\":1509451147678,\"vwap\":0.17391625346019293,\"ema1\":0.17356294574957773,\"sma1\":0.17379312546296297,\"sma2\":0.17324049999999996,\"rsi_avg_gain\":0.0003360358984098461,\"rsi_avg_loss\":0.00027435327301784766,\"rsi\":55},{\"period_id\":\"120m209644\",\"size\":\"120m\",\"time\":1509436800000,\"open\":0.1737,\"high\":0.1747,\"low\":0.1735,\"close\":0.17469,\"volume\":471611.4616469602,\"close_time\":1509443995806,\"vwap\":0.17438961772663714,\"ema1\":0.17350383855989343,\"sma1\":0.17379136620370372,\"sma2\":0.1732378333333333,\"rsi_avg_gain\":0.0003618848136721419,\"rsi_avg_loss\":0.00027468814017306514,\"rsi\":57},{\"period_id\":\"120m209643\",\"size\":\"120m\",\"time\":1509429600000,\"open\":0.17395,\"high\":0.17438,\"low\":0.1734,\"close\":0.17421,\"volume\":201060.23830178005,\"close_time\":1509436795149,\"vwap\":0.1740050483475053,\"ema1\":0.1734220343226447,\"sma1\":0.17380164398148154,\"sma2\":0.1732258333333333,\"rsi_avg_gain\":0.0003527990301084599,\"rsi_avg_loss\":0.00029581799710945477,\"rsi\":54},{\"period_id\":\"120m209642\",\"size\":\"120m\",\"time\":1509422400000,\"open\":0.17384,\"high\":0.17394,\"low\":0.17325,\"close\":0.17389,\"volume\":70472.03757481,\"close_time\":1509429450403,\"vwap\":0.17414367034478467,\"ema1\":0.17336769186213744,\"sma1\":0.17380118101851855,\"sma2\":0.17321099999999995,\"rsi_avg_gain\":0.0003553220324244941,\"rsi_avg_loss\":0.0003185732276563359,\"rsi\":53},{\"period_id\":\"120m209641\",\"size\":\"120m\",\"time\":1509415200000,\"open\":0.17395,\"high\":0.1745,\"low\":0.173,\"close\":0.17414,\"volume\":542700.20779527,\"close_time\":1509422089182,\"vwap\":0.17416350623298033,\"ema1\":0.17333167061125035,\"sma1\":0.17383423657407415,\"sma2\":0.1732,\"rsi_avg_gain\":0.00038265449645714754,\"rsi_avg_loss\":0.00032384809132220783,\"rsi\":54},{\"period_id\":\"120m209640\",\"size\":\"120m\",\"time\":1509408000000,\"open\":0.17418,\"high\":0.17418,\"low\":0.1735,\"close\":0.17405,\"volume\":45452.97159424001,\"close_time\":1509414427483,\"vwap\":0.17423967036618232,\"ema1\":0.17327592375685383,\"sma1\":0.1738871995370371,\"sma2\":0.1731608333333333,\"rsi_avg_gain\":0.00040516638080000664,\"rsi_avg_loss\":0.0003487594829623777,\"rsi\":54},{\"period_id\":\"120m209639\",\"size\":\"120m\",\"time\":1509400800000,\"open\":0.1735,\"high\":0.1745,\"low\":0.173,\"close\":0.17426,\"volume\":272719.8336484401,\"close_time\":1509407506948,\"vwap\":0.17428181586292282,\"ema1\":0.173222539188361,\"sma1\":0.17391960694444453,\"sma2\":0.17312666666666662,\"rsi_avg_gain\":0.0004363330254769302,\"rsi_avg_loss\":0.0003594332893441,\"rsi\":55},{\"period_id\":\"120m209638\",\"size\":\"120m\",\"time\":1509393600000,\"open\":0.17476,\"high\":0.17479,\"low\":0.1735,\"close\":0.1735,\"volume\":359921.3454896399,\"close_time\":1509400749257,\"vwap\":0.17369185653502733,\"ema1\":0.17315099016686866,\"sma1\":0.17390303287037043,\"sma2\":0.1730918333333333,\"rsi_avg_gain\":0.0004114355658982317,\"rsi_avg_loss\":0.0003870820039090308,\"rsi\":52},{\"period_id\":\"120m209637\",\"size\":\"120m\",\"time\":1509386400000,\"open\":0.1732,\"high\":0.1748,\"low\":0.173,\"close\":0.17476,\"volume\":427867.7588550901,\"close_time\":1509393559979,\"vwap\":0.17442478332336658,\"ema1\":0.17312692052320444,\"sma1\":0.17388349583333337,\"sma2\":0.17302416666666662,\"rsi_avg_gain\":0.000443084455582711,\"rsi_avg_loss\":0.0003199344657481862,\"rsi\":58},{\"period_id\":\"120m209636\",\"size\":\"120m\",\"time\":1509379200000,\"open\":0.17459,\"high\":0.17499,\"low\":0.173,\"close\":0.173,\"volume\":390086.82031326013,\"close_time\":1509386390303,\"vwap\":0.17367960062332735,\"ema1\":0.17301429435239096,\"sma1\":0.17385618101851855,\"sma2\":0.172985,\"rsi_avg_gain\":0.00034178325985830324,\"rsi_avg_loss\":0.00034454480926727744,\"rsi\":50},{\"period_id\":\"120m209635\",\"size\":\"120m\",\"time\":1509372000000,\"open\":0.17434,\"high\":0.17459,\"low\":0.17318,\"close\":0.17443,\"volume\":639290.63311668,\"close_time\":1509379077038,\"vwap\":0.17449114046409053,\"ema1\":0.17301528016979723,\"sma1\":0.17385618101851855,\"sma2\":0.17294400000000001,\"rsi_avg_gain\":0.00036807427984740347,\"rsi_avg_loss\":0.00026104825613399,\"rsi\":59},{\"period_id\":\"120m209634\",\"size\":\"120m\",\"time\":1509364800000,\"open\":0.17501,\"high\":0.1754,\"low\":0.17389,\"close\":0.17435,\"volume\":761219.5413139507,\"close_time\":1509371994662,\"vwap\":0.17436234156187677,\"ema1\":0.17291771328495564,\"sma1\":0.17383655138888887,\"sma2\":0.17291183333333332,\"rsi_avg_gain\":0.00039023383983566556,\"rsi_avg_loss\":0.00028112889122122,\"rsi\":58},{\"period_id\":\"120m209633\",\"size\":\"120m\",\"time\":1509357600000,\"open\":0.1736,\"high\":0.17524,\"low\":0.17295,\"close\":0.175,\"volume\":685731.3475932502,\"close_time\":1509364785467,\"vwap\":0.1749551715593104,\"ema1\":0.17281893489081465,\"sma1\":0.17381581064814813,\"sma2\":0.1728491666666666,\"rsi_avg_gain\":0.00042025182751533215,\"rsi_avg_loss\":0.00025275419054593043,\"rsi\":62},{\"period_id\":\"120m209632\",\"size\":\"120m\",\"time\":1509350400000,\"open\":0.17301,\"high\":0.17475,\"low\":0.17201,\"close\":0.1736,\"volume\":982754.7806384695,\"close_time\":1509357384770,\"vwap\":0.17380075759090924,\"ema1\":0.17266851660742255,\"sma1\":0.17380886620370367,\"sma2\":0.17284249999999998,\"rsi_avg_gain\":0.00034488658347805117,\"rsi_avg_loss\":0.0002721968205879251,\"rsi\":56},{\"period_id\":\"120m209631\",\"size\":\"120m\",\"time\":1509343200000,\"open\":0.17307,\"high\":0.1738,\"low\":0.17202,\"close\":0.173,\"volume\":284271.7854024,\"close_time\":1509350362054,\"vwap\":0.17322592551616783,\"ema1\":0.1726042763734517,\"sma1\":0.17381895879629627,\"sma2\":0.1728925,\"rsi_avg_gain\":0.00032526247451482304,\"rsi_avg_loss\":0.000293135037556227,\"rsi\":53},{\"period_id\":\"120m209630\",\"size\":\"120m\",\"time\":1509336000000,\"open\":0.17272,\"high\":0.1731,\"low\":0.17253,\"close\":0.17309,\"volume\":89463.18058985996,\"close_time\":1509343190680,\"vwap\":0.1730023632878584,\"ema1\":0.17257698508886216,\"sma1\":0.1738348847222222,\"sma2\":0.17291766666666666,\"rsi_avg_gain\":0.0003502826648621171,\"rsi_avg_loss\":0.0003087608096759362,\"rsi\":53},{\"period_id\":\"120m209629\",\"size\":\"120m\",\"time\":1509328800000,\"open\":0.17251,\"high\":0.17326,\"low\":0.1722,\"close\":0.17307,\"volume\":43252.373609710005,\"close_time\":1509335998032,\"vwap\":0.17250945790463892,\"ema1\":0.172541604750163,\"sma1\":0.17385914398148147,\"sma2\":0.1729425,\"rsi_avg_gain\":0.00037568902369766516,\"rsi_avg_loss\":0.0003325116411894698,\"rsi\":53},{\"period_id\":\"120m209628\",\"size\":\"120m\",\"time\":1509321600000,\"open\":0.17312,\"high\":0.17396,\"low\":0.172,\"close\":0.17293,\"volume\":83955.8920413,\"close_time\":1509328440473,\"vwap\":0.17234295860331275,\"ema1\":0.17250516369845012,\"sma1\":0.17389673657407403,\"sma2\":0.17291566666666663,\"rsi_avg_gain\":0.00039381894859748544,\"rsi_avg_loss\":0.00035808945974250597,\"rsi\":52},{\"period_id\":\"120m209627\",\"size\":\"120m\",\"time\":1509314400000,\"open\":0.173,\"high\":0.17337,\"low\":0.17201,\"close\":0.17235,\"volume\":684796.3868457904,\"close_time\":1509321591148,\"vwap\":0.17267485869357088,\"ema1\":0.17247586464317083,\"sma1\":0.17393673657407402,\"sma2\":0.1729558333333333,\"rsi_avg_gain\":0.00037949732925883067,\"rsi_avg_loss\":0.0003856348027996218,\"rsi\":50},{\"period_id\":\"120m209626\",\"size\":\"120m\",\"time\":1509307200000,\"open\":0.173,\"high\":0.17449,\"low\":0.1725,\"close\":0.173,\"volume\":476348.78848239995,\"close_time\":1509314385786,\"vwap\":0.17337845017727962,\"ema1\":0.1724845449633895,\"sma1\":0.17397201435185178,\"sma2\":0.1729875,\"rsi_avg_gain\":0.00040868943150950993,\"rsi_avg_loss\":0.00036529901839959394,\"rsi\":53},{\"period_id\":\"120m209625\",\"size\":\"120m\",\"time\":1509300000000,\"open\":0.1723,\"high\":0.17355,\"low\":0.17175,\"close\":0.17245,\"volume\":496058.7864573899,\"close_time\":1509307039172,\"vwap\":0.17299763454431405,\"ema1\":0.172448996340175,\"sma1\":0.1740316439814814,\"sma2\":0.17309499999999997,\"rsi_avg_gain\":0.00039781938777947264,\"rsi_avg_loss\":0.0003933989428918704,\"rsi\":50},{\"period_id\":\"120m209624\",\"size\":\"120m\",\"time\":1509292800000,\"open\":0.172688,\"high\":0.1737,\"low\":0.1715,\"close\":0.17195,\"volume\":516118.92092936015,\"close_time\":1509299984287,\"vwap\":0.17220053441440045,\"ema1\":0.172448927122256,\"sma1\":0.17409460694444437,\"sma2\":0.17324583333333327,\"rsi_avg_gain\":0.00038995934068558586,\"rsi_avg_loss\":0.0004236604000373989,\"rsi\":48},{\"period_id\":\"120m209623\",\"size\":\"120m\",\"time\":1509285600000,\"open\":0.172,\"high\":0.17267,\"low\":0.1715,\"close\":0.17267,\"volume\":282293.62723150995,\"close_time\":1509292684374,\"vwap\":0.17215835872018567,\"ema1\":0.17248333588930814,\"sma1\":0.17419849583333327,\"sma2\":0.17338099999999995,\"rsi_avg_gain\":0.0004199562130460156,\"rsi_avg_loss\":0.000400865046194122,\"rsi\":51},{\"period_id\":\"120m209622\",\"size\":\"120m\",\"time\":1509278400000,\"open\":0.1704,\"high\":0.172,\"low\":0.17,\"close\":0.172,\"volume\":507396.67994656984,\"close_time\":1509285544604,\"vwap\":0.1717335116492903,\"ema1\":0.17247046250236386,\"sma1\":0.17431423657407402,\"sma2\":0.17353799999999994,\"rsi_avg_gain\":0.0004007220755880165,\"rsi_avg_loss\":0.00043170081897828523,\"rsi\":48},{\"period_id\":\"120m209621\",\"size\":\"120m\",\"time\":1509271200000,\"open\":0.1713,\"high\":0.17138,\"low\":0.1692,\"close\":0.17043,\"volume\":708191.5313493701,\"close_time\":1509278199257,\"vwap\":0.1703077874739365,\"ema1\":0.17250290819218206,\"sma1\":0.1744398847222222,\"sma2\":0.1736661666666666,\"rsi_avg_gain\":0.0003107776198640187,\"rsi_avg_loss\":0.00046490857428430716,\"rsi\":40},{\"period_id\":\"120m209620\",\"size\":\"120m\",\"time\":1509264000000,\"open\":0.172,\"high\":0.17279,\"low\":0.17051,\"close\":0.1713,\"volume\":463339.66160280985,\"close_time\":1509271123701,\"vwap\":0.17134581439117905,\"ema1\":0.1726458673778498,\"sma1\":0.1745539587962963,\"sma2\":0.1737781666666666,\"rsi_avg_gain\":0.0003346835906227894,\"rsi_avg_loss\":0.0004337476953830993,\"rsi\":44},{\"period_id\":\"120m209619\",\"size\":\"120m\",\"time\":1509256800000,\"open\":0.17201,\"high\":0.17377,\"low\":0.17132,\"close\":0.17235,\"volume\":285626.02688529,\"close_time\":1509263966493,\"vwap\":0.17209271379523555,\"ema1\":0.1727386858177015,\"sma1\":0.174675625462963,\"sma2\":0.1738056666666666,\"rsi_avg_gain\":0.0003604284822091578,\"rsi_avg_loss\":0.0003863436719510304,\"rsi\":48},{\"period_id\":\"120m209618\",\"size\":\"120m\",\"time\":1509249600000,\"open\":0.17113,\"high\":0.1739,\"low\":0.17112,\"close\":0.17333,\"volume\":186683.95922460998,\"close_time\":1509256796594,\"vwap\":0.17265724769699972,\"ema1\":0.17276549173616368,\"sma1\":0.17482081064814817,\"sma2\":0.17382133333333324,\"rsi_avg_gain\":0.0003881537500714007,\"rsi_avg_loss\":0.0003406778005626475,\"rsi\":53},{\"period_id\":\"120m209617\",\"size\":\"120m\",\"time\":1509242400000,\"open\":0.17101,\"high\":0.17125,\"low\":0.1701,\"close\":0.17052,\"volume\":109812.33446858004,\"close_time\":1509249464890,\"vwap\":0.17046616386977956,\"ema1\":0.1727265601317612,\"sma1\":0.17494460694444444,\"sma2\":0.17380366666666663,\"rsi_avg_gain\":0.0002018578846922771,\"rsi_avg_loss\":0.00036688378522131264,\"rsi\":35},{\"period_id\":\"120m209616\",\"size\":\"120m\",\"time\":1509235200000,\"open\":0.17161,\"high\":0.17213,\"low\":0.171,\"close\":0.17101,\"volume\":250380.80532811998,\"close_time\":1509242351608,\"vwap\":0.17107577027881796,\"ema1\":0.1728787366925723,\"sma1\":0.17504710694444447,\"sma2\":0.17378683333333328,\"rsi_avg_gain\":0.00021738541428399072,\"rsi_avg_loss\":0.00035741330716141436,\"rsi\":38},{\"period_id\":\"120m209615\",\"size\":\"120m\",\"time\":1509228000000,\"open\":0.17176,\"high\":0.17253,\"low\":0.171,\"close\":0.1717,\"volume\":726369.6006439498,\"close_time\":1509235161837,\"vwap\":0.171467871263696,\"ema1\":0.1730076150851635,\"sma1\":0.17514858842592596,\"sma2\":0.17365849999999997,\"rsi_avg_gain\":0.0002341073692289131,\"rsi_avg_loss\":0.00033182971540460037,\"rsi\":41},{\"period_id\":\"120m209614\",\"size\":\"120m\",\"time\":1509220800000,\"open\":0.17152,\"high\":0.17429,\"low\":0.1715,\"close\":0.17174,\"volume\":507071.4701850402,\"close_time\":1509227774235,\"vwap\":0.1720817752860579,\"ema1\":0.17309779543586443,\"sma1\":0.1752459032407407,\"sma2\":0.1735018333333333,\"rsi_avg_gain\":0.00025211562840036795,\"rsi_avg_loss\":0.0003542781550511072,\"rsi\":42},{\"period_id\":\"120m209613\",\"size\":\"120m\",\"time\":1509213600000,\"open\":0.17186,\"high\":0.17242,\"low\":0.1715,\"close\":0.17151,\"volume\":296945.9798627102,\"close_time\":1509220576896,\"vwap\":0.17181102933355458,\"ema1\":0.1731914365004068,\"sma1\":0.17536701435185187,\"sma2\":0.17335166666666663,\"rsi_avg_gain\":0.000253816830585011,\"rsi_avg_loss\":0.00038153032082426927,\"rsi\":40},{\"period_id\":\"120m209612\",\"size\":\"120m\",\"time\":1509206400000,\"open\":0.17174,\"high\":0.17222,\"low\":0.17121,\"close\":0.17197,\"volume\":204456.1067420499,\"close_time\":1509213416725,\"vwap\":0.17171691347941956,\"ema1\":0.1733073976383659,\"sma1\":0.17557238472222222,\"sma2\":0.1731738333333333,\"rsi_avg_gain\":0.0002733412021684734,\"rsi_avg_loss\":0.00037549419165690414,\"rsi\":42},{\"period_id\":\"120m209611\",\"size\":\"120m\",\"time\":1509199200000,\"open\":0.17264,\"high\":0.17399,\"low\":0.1715,\"close\":0.1715,\"volume\":632198.5747353298,\"close_time\":1509206384934,\"vwap\":0.17170158204197078,\"ema1\":0.1733996319582532,\"sma1\":0.1757669217592593,\"sma2\":0.1729988333333333,\"rsi_avg_gain\":0.0002582136023352792,\"rsi_avg_loss\":0.0004043783602458968,\"rsi\":39},{\"period_id\":\"120m209610\",\"size\":\"120m\",\"time\":1509192000000,\"open\":0.17303,\"high\":0.17476,\"low\":0.1726,\"close\":0.17264,\"volume\":355098.94472750014,\"close_time\":1509199187198,\"vwap\":0.17315947943764481,\"ema1\":0.17353064105882238,\"sma1\":0.17581071805555556,\"sma2\":0.17282083333333328,\"rsi_avg_gain\":0.00027807618713030066,\"rsi_avg_loss\":0.0003477920802648139,\"rsi\":44},{\"period_id\":\"120m209609\",\"size\":\"120m\",\"time\":1509184800000,\"open\":0.1743,\"high\":0.17463,\"low\":0.173,\"close\":0.173,\"volume\":394166.51534412993,\"close_time\":1509191863970,\"vwap\":0.17331837523161694,\"ema1\":0.17359206458012047,\"sma1\":0.17585719953703707,\"sma2\":0.17268799999999998,\"rsi_avg_gain\":0.0002994666630634007,\"rsi_avg_loss\":0.00034685300951595356,\"rsi\":46},{\"period_id\":\"120m209608\",\"size\":\"120m\",\"time\":1509177600000,\"open\":0.17404,\"high\":0.17474,\"low\":0.17315,\"close\":0.1744,\"volume\":351321.72328474006,\"close_time\":1509184281479,\"vwap\":0.17439863957739576,\"ema1\":0.1736328966201288,\"sma1\":0.17591710694444448,\"sma2\":0.17254716666666664,\"rsi_avg_gain\":0.00032250256022212386,\"rsi_avg_loss\":0.0002658417025556414,\"rsi\":55},{\"period_id\":\"120m209607\",\"size\":\"120m\",\"time\":1509170400000,\"open\":0.17389,\"high\":0.17415,\"low\":0.17305,\"close\":0.1739,\"volume\":208398.77150217,\"close_time\":1509177443699,\"vwap\":0.1737375828940815,\"ema1\":0.17357999293875837,\"sma1\":0.17601460694444448,\"sma2\":0.17241599999999999,\"rsi_avg_gain\":0.000308848911008441,\"rsi_avg_loss\":0.0002862910642906907,\"rsi\":52},{\"period_id\":\"120m209606\",\"size\":\"120m\",\"time\":1509163200000,\"open\":0.17309,\"high\":0.1737,\"low\":0.1728,\"close\":0.17346,\"volume\":26886.12837723,\"close_time\":1509170236953,\"vwap\":0.17344674204411453,\"ema1\":0.17355792348625895,\"sma1\":0.1761046995370371,\"sma2\":0.17234349999999996,\"rsi_avg_gain\":0.00029876036570139833,\"rsi_avg_loss\":0.00030831345385151307,\"rsi\":49},{\"period_id\":\"120m209605\",\"size\":\"120m\",\"time\":1509156000000,\"open\":0.17327,\"high\":0.17351,\"low\":0.17257,\"close\":0.1735,\"volume\":22004.55199932,\"close_time\":1509162219469,\"vwap\":0.1738131944185292,\"ema1\":0.17356467683013888,\"sma1\":0.17621414398148155,\"sma2\":0.17229233333333333,\"rsi_avg_gain\":0.00032174193229381356,\"rsi_avg_loss\":0.00032895295030163066,\"rsi\":49},{\"period_id\":\"120m209604\",\"size\":\"120m\",\"time\":1509148800000,\"open\":0.17395,\"high\":0.1744,\"low\":0.17346,\"close\":0.17382,\"volume\":127167.2383359,\"close_time\":1509154797074,\"vwap\":0.17388137364112385,\"ema1\":0.17356913730118292,\"sma1\":0.1763208106481482,\"sma2\":0.17224233333333333,\"rsi_avg_gain\":0.00034649131170102994,\"rsi_avg_loss\":0.0003296416387863703,\"rsi\":51},{\"period_id\":\"120m209603\",\"size\":\"120m\",\"time\":1509141600000,\"open\":0.17364,\"high\":0.17462,\"low\":0.17364,\"close\":0.17364,\"volume\":245967.77557432003,\"close_time\":1509148469738,\"vwap\":0.1740976411780143,\"ema1\":0.17355183642540245,\"sma1\":0.1764455328703704,\"sma2\":0.1721943333333333,\"rsi_avg_gain\":0.0003592983356780312,\"rsi_avg_loss\":0.00035499868792378335,\"rsi\":50},{\"period_id\":\"120m209602\",\"size\":\"120m\",\"time\":1509134400000,\"open\":0.17335,\"high\":0.17462,\"low\":0.17293,\"close\":0.174,\"volume\":265180.97041563,\"close_time\":1509141551587,\"vwap\":0.17406258266021893,\"ema1\":0.1735457561788785,\"sma1\":0.17654368101851856,\"sma2\":0.17214866666666667,\"rsi_avg_gain\":0.0003869366691917259,\"rsi_avg_loss\":0.00035461397161022824,\"rsi\":52},{\"period_id\":\"120m209601\",\"size\":\"120m\",\"time\":1509127200000,\"open\":0.17475,\"high\":0.17476,\"low\":0.1728,\"close\":0.17334,\"volume\":507189.33349982,\"close_time\":1509134343110,\"vwap\":0.17312448906660963,\"ema1\":0.17351442901880115,\"sma1\":0.17661025509259265,\"sma2\":0.17209299999999997,\"rsi_avg_gain\":0.00036593179759108986,\"rsi_avg_loss\":0.00038189196942639965,\"rsi\":49},{\"period_id\":\"120m209600\",\"size\":\"120m\",\"time\":1509120000000,\"open\":0.17441,\"high\":0.17494,\"low\":0.17372,\"close\":0.17473,\"volume\":413137.98772199015,\"close_time\":1509127174200,\"vwap\":0.17465844772204947,\"ema1\":0.1735264586063047,\"sma1\":0.17674858842592597,\"sma2\":0.17203516666666668,\"rsi_avg_gain\":0.0003940803974057891,\"rsi_avg_loss\":0.00030434519784381487,\"rsi\":56},{\"period_id\":\"120m209599\",\"size\":\"120m\",\"time\":1509112800000,\"open\":0.17453,\"high\":0.1748,\"low\":0.1735,\"close\":0.17443,\"volume\":270804.7546261601,\"close_time\":1509119994189,\"vwap\":0.17405831560126986,\"ema1\":0.17344345575156708,\"sma1\":0.17688821805555557,\"sma2\":0.1720013333333333,\"rsi_avg_gain\":0.00040131735105238865,\"rsi_avg_loss\":0.00032775636690872374,\"rsi\":55},{\"period_id\":\"120m209598\",\"size\":\"120m\",\"time\":1509105600000,\"open\":0.17335,\"high\":0.17465,\"low\":0.173,\"close\":0.17362,\"volume\":509927.8083225598,\"close_time\":1509112788348,\"vwap\":0.1742858871526758,\"ema1\":0.1733754182171924,\"sma1\":0.17708229212962967,\"sma2\":0.17197866666666664,\"rsi_avg_gain\":0.00036988022421026434,\"rsi_avg_loss\":0.0003529683951324717,\"rsi\":51},{\"period_id\":\"120m209597\",\"size\":\"120m\",\"time\":1509098400000,\"open\":0.17369,\"high\":0.1745,\"low\":0.173,\"close\":0.17378,\"volume\":532383.4747534199,\"close_time\":1509105581778,\"vwap\":0.17354518600543367,\"ema1\":0.17335855050803325,\"sma1\":0.17729877361111115,\"sma2\":0.17190849999999994,\"rsi_avg_gain\":0.00039833254914951546,\"rsi_avg_loss\":0.00036781211783497005,\"rsi\":52},{\"period_id\":\"120m209596\",\"size\":\"120m\",\"time\":1509091200000,\"open\":0.17391,\"high\":0.17496,\"low\":0.173,\"close\":0.17404,\"volume\":482855.3375114401,\"close_time\":1509098375789,\"vwap\":0.17403999999999997,\"ema1\":0.17332948502582865,\"sma1\":0.17747247731481483,\"sma2\":0.17186549999999998,\"rsi_avg_gain\":0.000428973514468709,\"rsi_avg_loss\":0.0003761053576684285,\"rsi\":53},{\"period_id\":\"120m209595\",\"size\":\"120m\",\"time\":1509084000000,\"open\":0.17261,\"high\":0.1748,\"low\":0.17222,\"close\":0.17391,\"volume\":393510.9533228197,\"close_time\":1509091196781,\"vwap\":0.1735482507458642,\"ema1\":0.17328048399312718,\"sma1\":0.17769627361111107,\"sma2\":0.17186816666666663,\"rsi_avg_gain\":0.0004519714771201488,\"rsi_avg_loss\":0.0004050365390275384,\"rsi\":53},{\"period_id\":\"120m209594\",\"size\":\"120m\",\"time\":1509076800000,\"open\":0.1732,\"high\":0.17436,\"low\":0.17225,\"close\":0.17306,\"volume\":279280.6725509501,\"close_time\":1509083949504,\"vwap\":0.1728251655044001,\"ema1\":0.17323706909610145,\"sma1\":0.17794090324074072,\"sma2\":0.17187666666666662,\"rsi_avg_gain\":0.000421353898437082,\"rsi_avg_loss\":0.00043619319587581056,\"rsi\":49},{\"period_id\":\"120m209593\",\"size\":\"120m\",\"time\":1509069600000,\"open\":0.1733,\"high\":0.17374,\"low\":0.173,\"close\":0.17333,\"volume\":26224.47779756,\"close_time\":1509076527404,\"vwap\":0.1736472666805662,\"ema1\":0.17324928075790155,\"sma1\":0.1781771069444444,\"sma2\":0.17185266666666663,\"rsi_avg_gain\":0.00045376573677839607,\"rsi_avg_loss\":0.000448977287866256,\"rsi\":50},{\"period_id\":\"120m209592\",\"size\":\"120m\",\"time\":1509062400000,\"open\":0.174,\"high\":0.174,\"low\":0.17302,\"close\":0.1733,\"volume\":65117.73086698,\"close_time\":1509069539140,\"vwap\":0.17370165949064892,\"ema1\":0.1732437139136189,\"sma1\":0.17841581064814813,\"sma2\":0.17193016666666663,\"rsi_avg_gain\":0.00048636310114596483,\"rsi_avg_loss\":0.0004835140023175064,\"rsi\":50},{\"period_id\":\"120m209591\",\"size\":\"120m\",\"time\":1509055200000,\"open\":0.1735,\"high\":0.17414,\"low\":0.17286,\"close\":0.17403,\"volume\":277183.36005777994,\"close_time\":1509062233010,\"vwap\":0.17376804980277338,\"ema1\":0.17323983211455812,\"sma1\":0.1786058106481481,\"sma2\":0.1719963333333333,\"rsi_avg_gain\":0.0005237756473879621,\"rsi_avg_loss\":0.0004645535409573161,\"rsi\":53},{\"period_id\":\"120m209590\",\"size\":\"120m\",\"time\":1509048000000,\"open\":0.17345,\"high\":0.17387,\"low\":0.1725,\"close\":0.1735,\"volume\":387891.0964343199,\"close_time\":1509055115817,\"vwap\":0.1734046726036096,\"ema1\":0.1731853377776311,\"sma1\":0.1788905328703703,\"sma2\":0.1719713333333333,\"rsi_avg_gain\":0.0005232968510331898,\"rsi_avg_loss\":0.0005002884287232635,\"rsi\":51},{\"period_id\":\"120m209589\",\"size\":\"120m\",\"time\":1509040800000,\"open\":0.17298,\"high\":0.17433,\"low\":0.17214,\"close\":0.17349,\"volume\":391377.44248398015,\"close_time\":1509047942645,\"vwap\":0.1732800366432325,\"ema1\":0.1731636369347091,\"sma1\":0.17921599583333325,\"sma2\":0.17192066666666664,\"rsi_avg_gain\":0.0005627812241895903,\"rsi_avg_loss\":0.0005387721540096684,\"rsi\":51},{\"period_id\":\"120m209588\",\"size\":\"120m\",\"time\":1509033600000,\"open\":0.17315,\"high\":0.17359,\"low\":0.172,\"close\":0.173,\"volume\":462815.97802780016,\"close_time\":1509040586507,\"vwap\":0.17292129561918654,\"ema1\":0.17314112913710283,\"sma1\":0.17958090324074066,\"sma2\":0.17188566666666666,\"rsi_avg_gain\":0.0005683797798964804,\"rsi_avg_loss\":0.0005802161658565659,\"rsi\":49},{\"period_id\":\"120m209587\",\"size\":\"120m\",\"time\":1509026400000,\"open\":0.17423,\"high\":0.1745,\"low\":0.17318,\"close\":0.17318,\"volume\":536308.6854404302,\"close_time\":1509033597034,\"vwap\":0.17321996612115984,\"ema1\":0.17315086218104095,\"sma1\":0.17998831064814808,\"sma2\":0.17186566666666664,\"rsi_avg_gain\":0.000612101301426979,\"rsi_avg_loss\":0.0006110020247686084,\"rsi\":50},{\"period_id\":\"120m209586\",\"size\":\"120m\",\"time\":1509019200000,\"open\":0.17535,\"high\":0.17588,\"low\":0.17377,\"close\":0.17421,\"volume\":552158.98963798,\"close_time\":1509026340279,\"vwap\":0.17419099889741393,\"ema1\":0.17314885267628516,\"sma1\":0.18040331064814807,\"sma2\":0.17184549999999996,\"rsi_avg_gain\":0.000659186016921362,\"rsi_avg_loss\":0.0005787714112892703,\"rsi\":53},{\"period_id\":\"120m209585\",\"size\":\"120m\",\"time\":1509012000000,\"open\":0.17453,\"high\":0.17564,\"low\":0.17332,\"close\":0.17537,\"volume\":638825.14961212,\"close_time\":1509019193338,\"vwap\":0.17507607691531435,\"ema1\":0.17307567010223585,\"sma1\":0.18082701435185178,\"sma2\":0.17178933333333332,\"rsi_avg_gain\":0.0007098926336076206,\"rsi_avg_loss\":0.0005340615198499839,\"rsi\":57},{\"period_id\":\"120m209584\",\"size\":\"120m\",\"time\":1509004800000,\"open\":0.1735,\"high\":0.17483,\"low\":0.17231,\"close\":0.17453,\"volume\":545484.1022664,\"close_time\":1509011988439,\"vwap\":0.17430164893534983,\"ema1\":0.17291744045411417,\"sma1\":0.18128219953703695,\"sma2\":0.17174766666666663,\"rsi_avg_gain\":0.0006998843746543602,\"rsi_avg_loss\":0.0005751431752230596,\"rsi\":55},{\"period_id\":\"120m209583\",\"size\":\"120m\",\"time\":1508997600000,\"open\":0.1728,\"high\":0.1735,\"low\":0.17155,\"close\":0.17349,\"volume\":247787.35630792996,\"close_time\":1509004772097,\"vwap\":0.17322962507048165,\"ema1\":0.17280622945094962,\"sma1\":0.18172192175925922,\"sma2\":0.17175416666666662,\"rsi_avg_gain\":0.0006737216342431583,\"rsi_avg_loss\":0.0006193849579325257,\"rsi\":52},{\"period_id\":\"120m209582\",\"size\":\"120m\",\"time\":1508990400000,\"open\":0.17349,\"high\":0.17363,\"low\":0.17232,\"close\":0.173,\"volume\":203349.75248238,\"close_time\":1508997556850,\"vwap\":0.17293866672961836,\"ema1\":0.17275907286135994,\"sma1\":0.18218812546296292,\"sma2\":0.17177049999999996,\"rsi_avg_gain\":0.0006878540676464767,\"rsi_avg_loss\":0.0006670299546965661,\"rsi\":51},{\"period_id\":\"120m209581\",\"size\":\"120m\",\"time\":1508983200000,\"open\":0.17188,\"high\":0.17361,\"low\":0.1718,\"close\":0.17348,\"volume\":65074.96547798002,\"close_time\":1508990308256,\"vwap\":0.17151121226523533,\"ema1\":0.17274245719662615,\"sma1\":0.18263016249999997,\"sma2\":0.17176249999999996,\"rsi_avg_gain\":0.000740765919003898,\"rsi_avg_loss\":0.0006814168742886091,\"rsi\":52},{\"period_id\":\"120m209580\",\"size\":\"120m\",\"time\":1508976000000,\"open\":0.17214,\"high\":0.17323,\"low\":0.17072,\"close\":0.1717,\"volume\":152100.50329952006,\"close_time\":1508983070436,\"vwap\":0.1711596612436273,\"ema1\":0.17269159217570382,\"sma1\":0.18310599583333337,\"sma2\":0.1718233333333333,\"rsi_avg_gain\":0.0006608248358503515,\"rsi_avg_loss\":0.0007338335569261944,\"rsi\":47},{\"period_id\":\"120m209579\",\"size\":\"120m\",\"time\":1508968800000,\"open\":0.17132,\"high\":0.17463,\"low\":0.1709,\"close\":0.17221,\"volume\":327021.46813437995,\"close_time\":1508975990039,\"vwap\":0.17283440927195995,\"ema1\":0.17275997784299374,\"sma1\":0.18351960694444447,\"sma2\":0.171895,\"rsi_avg_gain\":0.0007116575155311477,\"rsi_avg_loss\":0.0007510515228435933,\"rsi\":49},{\"period_id\":\"120m209578\",\"size\":\"120m\",\"time\":1508961600000,\"open\":0.1707,\"high\":0.17358,\"low\":0.17062,\"close\":0.17141,\"volume\":541845.9698597101,\"close_time\":1508968736961,\"vwap\":0.17185669790707914,\"ema1\":0.17279790734940711,\"sma1\":0.1840079402777778,\"sma2\":0.1719715,\"rsi_avg_gain\":0.0007048619398027749,\"rsi_avg_loss\":0.000808824716908485,\"rsi\":47},{\"period_id\":\"120m209577\",\"size\":\"120m\",\"time\":1508954400000,\"open\":0.17124,\"high\":0.1723,\"low\":0.17,\"close\":0.1707,\"volume\":849917.9403358107,\"close_time\":1508961587149,\"vwap\":0.17079484452732072,\"ema1\":0.17289362509764208,\"sma1\":0.1845916439814815,\"sma2\":0.17208616666666668,\"rsi_avg_gain\":0.0007044667044029871,\"rsi_avg_loss\":0.0008710420028245223,\"rsi\":45},{\"period_id\":\"120m209576\",\"size\":\"120m\",\"time\":1508947200000,\"open\":0.17211,\"high\":0.17285,\"low\":0.17065,\"close\":0.17065,\"volume\":397940.7244818399,\"close_time\":1508954194635,\"vwap\":0.17105291815771428,\"ema1\":0.17304490958713464,\"sma1\":0.18521340324074076,\"sma2\":0.17222016666666665,\"rsi_avg_gain\":0.0007548102970493711,\"rsi_avg_loss\":0.000938045233811024,\"rsi\":45},{\"period_id\":\"120m209575\",\"size\":\"120m\",\"time\":1508940000000,\"open\":0.17242,\"high\":0.17504,\"low\":0.1705,\"close\":0.17197,\"volume\":1294814.2538945102,\"close_time\":1508947190837,\"vwap\":0.17267366448728436,\"ema1\":0.17321007576555772,\"sma1\":0.18589358842592596,\"sma2\":0.17236233333333334,\"rsi_avg_gain\":0.0008128726275916303,\"rsi_avg_loss\":0.0009086640979503324,\"rsi\":47},{\"period_id\":\"120m209574\",\"size\":\"120m\",\"time\":1508932800000,\"open\":0.17124,\"high\":0.1735,\"low\":0.17004,\"close\":0.17242,\"volume\":698543.0479591705,\"close_time\":1508939995535,\"vwap\":0.17259376891212705,\"ema1\":0.1732955982321479,\"sma1\":0.1866009958333333,\"sma2\":0.17255349999999997,\"rsi_avg_gain\":0.0008754012912525249,\"rsi_avg_loss\":0.0009439459516388212,\"rsi\":48},{\"period_id\":\"120m209573\",\"size\":\"120m\",\"time\":1508925600000,\"open\":0.1735,\"high\":0.17576,\"low\":0.17002,\"close\":0.17124,\"volume\":776842.12237437,\"close_time\":1508932775447,\"vwap\":0.17078094670683414,\"ema1\":0.17335598431712362,\"sma1\":0.18716803287037037,\"sma2\":0.17277449999999997,\"rsi_avg_gain\":0.0008519706213488739,\"rsi_avg_loss\":0.0010165571786879613,\"rsi\":46},{\"period_id\":\"120m209572\",\"size\":\"120m\",\"time\":1508918400000,\"open\":0.176,\"high\":0.1769,\"low\":0.173,\"close\":0.1732,\"volume\":853693.2410544899,\"close_time\":1508925593807,\"vwap\":0.17336725435389558,\"ema1\":0.1735019142700287,\"sma1\":0.18770599583333333,\"sma2\":0.17294899999999996,\"rsi_avg_gain\":0.000917506822991095,\"rsi_avg_loss\":0.0009439846539716516,\"rsi\":49},{\"period_id\":\"120m209571\",\"size\":\"120m\",\"time\":1508911200000,\"open\":0.1746,\"high\":0.17699,\"low\":0.1745,\"close\":0.176,\"volume\":812787.1982533699,\"close_time\":1508918396597,\"vwap\":0.17581035319699628,\"ema1\":0.17352273594382378,\"sma1\":0.18826164398148149,\"sma2\":0.17308216666666662,\"rsi_avg_gain\":0.000988084270913487,\"rsi_avg_loss\":0.000801214242738702,\"rsi\":55},{\"period_id\":\"120m209570\",\"size\":\"120m\",\"time\":1508904000000,\"open\":0.17459,\"high\":0.176,\"low\":0.17217,\"close\":0.1746,\"volume\":332293.24866345007,\"close_time\":1508911125306,\"vwap\":0.17358886993789718,\"ema1\":0.1733518901468461,\"sma1\":0.18871534768518522,\"sma2\":0.1732638333333333,\"rsi_avg_gain\":0.0009563984455991409,\"rsi_avg_loss\":0.000862846107564756,\"rsi\":53},{\"period_id\":\"120m209569\",\"size\":\"120m\",\"time\":1508896800000,\"open\":0.17102,\"high\":0.17461,\"low\":0.1705,\"close\":0.17456,\"volume\":238526.89042274005,\"close_time\":1508903964165,\"vwap\":0.17279983191631829,\"ema1\":0.17326581360524929,\"sma1\":0.18915219953703705,\"sma2\":0.17343149999999996,\"rsi_avg_gain\":0.0010268906337221508,\"rsi_avg_loss\":0.0009292188850697373,\"rsi\":52},{\"period_id\":\"120m209568\",\"size\":\"120m\",\"time\":1508889600000,\"open\":0.1751,\"high\":0.17542,\"low\":0.17101,\"close\":0.17132,\"volume\":315972.07897068013,\"close_time\":1508896758337,\"vwap\":0.17191224784046377,\"ema1\":0.17317655937112855,\"sma1\":0.18959488472222222,\"sma2\":0.17362883333333332,\"rsi_avg_gain\":0.0008566514517007785,\"rsi_avg_loss\":0.0010006972608443325,\"rsi\":46},{\"period_id\":\"120m209567\",\"size\":\"120m\",\"time\":1508882400000,\"open\":0.17488,\"high\":0.1782,\"low\":0.17324,\"close\":0.17476,\"volume\":779646.11099317,\"close_time\":1508889386052,\"vwap\":0.17453848848600464,\"ema1\":0.17330459794844777,\"sma1\":0.19001988472222225,\"sma2\":0.17375549999999998,\"rsi_avg_gain\":0.0009225477172162231,\"rsi_avg_loss\":0.0008130585886015889,\"rsi\":53},{\"period_id\":\"120m209566\",\"size\":\"120m\",\"time\":1508875200000,\"open\":0.17901,\"high\":0.18062,\"low\":0.1724,\"close\":0.1749,\"volume\":980719.45796823,\"close_time\":1508882374988,\"vwap\":0.1751055169630294,\"ema1\":0.1732042253931683,\"sma1\":0.19042247731481485,\"sma2\":0.17387549999999996,\"rsi_avg_gain\":0.0009935129262328556,\"rsi_avg_loss\":0.0008648323261863264,\"rsi\":53},{\"period_id\":\"120m209565\",\"size\":\"120m\",\"time\":1508868000000,\"open\":0.18111,\"high\":0.18302,\"low\":0.17853,\"close\":0.1789,\"volume\":870281.0234227607,\"close_time\":1508875170112,\"vwap\":0.17992818819272605,\"ema1\":0.17308727542028335,\"sma1\":0.19084358842592597,\"sma2\":0.17396999999999993,\"rsi_avg_gain\":0.0010699369974815367,\"rsi_avg_loss\":0.0006236655820468127,\"rsi\":63},{\"period_id\":\"120m209564\",\"size\":\"120m\",\"time\":1508860800000,\"open\":0.18079,\"high\":0.18325,\"low\":0.176,\"close\":0.181,\"volume\":2010800.5246071485,\"close_time\":1508867957444,\"vwap\":0.18103432344796824,\"ema1\":0.1726863978630615,\"sma1\":0.19124775509259262,\"sma2\":0.17399416666666664,\"rsi_avg_gain\":0.0011522398434416548,\"rsi_avg_loss\":0.0005101013960504145,\"rsi\":69},{\"period_id\":\"120m209563\",\"size\":\"120m\",\"time\":1508853600000,\"open\":0.18248,\"high\":0.18549,\"low\":0.1806,\"close\":0.18078,\"volume\":2048497.8937628616,\"close_time\":1508860796305,\"vwap\":0.18121601391492206,\"ema1\":0.1721130459915485,\"sma1\":0.19157655138888893,\"sma2\":0.1741811666666666,\"rsi_avg_gain\":0.0012239506006294747,\"rsi_avg_loss\":0.0005493399649773694,\"rsi\":69},{\"period_id\":\"120m209562\",\"size\":\"120m\",\"time\":1508846400000,\"open\":0.17812,\"high\":0.184,\"low\":0.178,\"close\":0.18142,\"volume\":2121593.591426679,\"close_time\":1508853596365,\"vwap\":0.18231023221289044,\"ema1\":0.1715153250254484,\"sma1\":0.19187951435185188,\"sma2\":0.17409866666666662,\"rsi_avg_gain\":0.001318100646831742,\"rsi_avg_loss\":0.0005423661161294747,\"rsi\":71},{\"period_id\":\"120m209561\",\"size\":\"120m\",\"time\":1508839200000,\"open\":0.17708,\"high\":0.1797,\"low\":0.1755,\"close\":0.17812,\"volume\":1405572.9367635408,\"close_time\":1508846399653,\"vwap\":0.17812,\"ema1\":0.1708322439927207,\"sma1\":0.19219895879629634,\"sma2\":0.1740983333333333,\"rsi_avg_gain\":0.0011656468504341838,\"rsi_avg_loss\":0.0005840865866009728,\"rsi\":67},{\"period_id\":\"120m209560\",\"size\":\"120m\",\"time\":1508832000000,\"open\":0.1749,\"high\":0.18,\"low\":0.174,\"close\":0.17802,\"volume\":2817885.18563076,\"close_time\":1508839193802,\"vwap\":0.17802420379522707,\"ema1\":0.17032964013014973,\"sma1\":0.1925582180555556,\"sma2\":0.1740965,\"rsi_avg_gain\":0.001247619685082968,\"rsi_avg_loss\":0.0006290163240318168,\"rsi\":66},{\"period_id\":\"120m209559\",\"size\":\"120m\",\"time\":1508824800000,\"open\":0.17427,\"high\":0.17499,\"low\":0.17004,\"close\":0.174,\"volume\":2599126.4352685795,\"close_time\":1508831953470,\"vwap\":0.17445027585887898,\"ema1\":0.16979927048395316,\"sma1\":0.19295618101851855,\"sma2\":0.17417716666666663,\"rsi_avg_gain\":0.001034359660858579,\"rsi_avg_loss\":0.0006774021951111873,\"rsi\":60},{\"period_id\":\"120m209558\",\"size\":\"120m\",\"time\":1508817600000,\"open\":0.16942,\"high\":0.17497,\"low\":0.16851,\"close\":0.17427,\"volume\":940349.9307694802,\"close_time\":1508824766056,\"vwap\":0.17359823988014553,\"ema1\":0.16950956500008785,\"sma1\":0.19336229212962963,\"sma2\":0.17429766666666663,\"rsi_avg_gain\":0.001113925788616931,\"rsi_avg_loss\":0.000708740825504354,\"rsi\":61},{\"period_id\":\"120m209557\",\"size\":\"120m\",\"time\":1508810400000,\"open\":0.17017,\"high\":0.17674,\"low\":0.16831,\"close\":0.16946,\"volume\":1315534.0875811498,\"close_time\":1508817487442,\"vwap\":0.16876837308363365,\"ema1\":0.16918125913802495,\"sma1\":0.19376164398148155,\"sma2\":0.1744541666666667,\"rsi_avg_gain\":0.0008296123877413098,\"rsi_avg_loss\":0.0007632593505431505,\"rsi\":52},{\"period_id\":\"120m209556\",\"size\":\"120m\",\"time\":1508803200000,\"open\":0.164,\"high\":0.17077,\"low\":0.1571,\"close\":0.17,\"volume\":1711814.2027050385,\"close_time\":1508810383599,\"vwap\":0.16994340824336823,\"ema1\":0.16916203563030255,\"sma1\":0.19423127361111112,\"sma2\":0.17466399999999999,\"rsi_avg_gain\":0.0008934287252598722,\"rsi_avg_loss\":0.0007804331467387764,\"rsi\":53},{\"period_id\":\"120m209555\",\"size\":\"120m\",\"time\":1508796000000,\"open\":0.16292,\"high\":0.1675,\"low\":0.16182,\"close\":0.164,\"volume\":807403.1018157998,\"close_time\":1508803132515,\"vwap\":0.16594378020678424,\"ema1\":0.16910424498411653,\"sma1\":0.19472201435185188,\"sma2\":0.17501649999999996,\"rsi_avg_gain\":0.000500615550279862,\"rsi_avg_loss\":0.0008404664657186823,\"rsi\":37},{\"period_id\":\"120m209554\",\"size\":\"120m\",\"time\":1508788800000,\"open\":0.1625,\"high\":0.16426,\"low\":0.16121,\"close\":0.16234,\"volume\":1314971.7257595595,\"close_time\":1508795898047,\"vwap\":0.16225794301638827,\"ema1\":0.16945626187957283,\"sma1\":0.19523812546296299,\"sma2\":0.17539533333333332,\"rsi_avg_gain\":0.000411432131070621,\"rsi_avg_loss\":0.000905117732312427,\"rsi\":31},{\"period_id\":\"120m209553\",\"size\":\"120m\",\"time\":1508781600000,\"open\":0.16131,\"high\":0.16298,\"low\":0.16,\"close\":0.1625,\"volume\":1229418.5161516913,\"close_time\":1508788795861,\"vwap\":0.16268759757040402,\"ema1\":0.16994703856092266,\"sma1\":0.19576608842592597,\"sma2\":0.1756808333333333,\"rsi_avg_gain\":0.0004430807565375918,\"rsi_avg_loss\":0.0009624344809518449,\"rsi\":32},{\"period_id\":\"120m209552\",\"size\":\"120m\",\"time\":1508774400000,\"open\":0.16147,\"high\":0.162,\"low\":0.16,\"close\":0.1613,\"volume\":1277560.5058609694,\"close_time\":1508781568333,\"vwap\":0.16185832243869708,\"ema1\":0.1704606274271932,\"sma1\":0.1962793291666667,\"sma2\":0.1760008333333333,\"rsi_avg_gain\":0.0003848561993481752,\"rsi_avg_loss\":0.0010364679025635253,\"rsi\":27},{\"period_id\":\"120m209551\",\"size\":\"120m\",\"time\":1508767200000,\"open\":0.16191,\"high\":0.16275,\"low\":0.16,\"close\":0.161,\"volume\":1546121.7464910003,\"close_time\":1508774327749,\"vwap\":0.16133292820210757,\"ema1\":0.17109239483596514,\"sma1\":0.196790625462963,\"sma2\":0.17646749999999997,\"rsi_avg_gain\":0.0003913835992980352,\"rsi_avg_loss\":0.0011161962027607195,\"rsi\":26},{\"period_id\":\"120m209550\",\"size\":\"120m\",\"time\":1508760000000,\"open\":0.16606,\"high\":0.16606,\"low\":0.16034,\"close\":0.16196,\"volume\":1831406.5661778909,\"close_time\":1508767191577,\"vwap\":0.1617705364649587,\"ema1\":0.1717884220660317,\"sma1\":0.1972896069444445,\"sma2\":0.17690150000000002,\"rsi_avg_gain\":0.0004214900300132687,\"rsi_avg_loss\":0.0011282112952807758,\"rsi\":27},{\"period_id\":\"120m209549\",\"size\":\"120m\",\"time\":1508752800000,\"open\":0.16547,\"high\":0.16717,\"low\":0.165,\"close\":0.16503,\"volume\":1181269.23281257,\"close_time\":1508759985903,\"vwap\":0.16581033787681848,\"ema1\":0.17246624427748217,\"sma1\":0.19780469953703705,\"sma2\":0.17738233333333334,\"rsi_avg_gain\":0.00045391234001428935,\"rsi_avg_loss\":0.0009788429333792957,\"rsi\":32},{\"period_id\":\"120m209548\",\"size\":\"120m\",\"time\":1508745600000,\"open\":0.16604,\"high\":0.16744,\"low\":0.165,\"close\":0.16595,\"volume\":2203820.4107049895,\"close_time\":1508752793340,\"vwap\":0.1662040943710471,\"ema1\":0.17297908871041198,\"sma1\":0.19832636620370378,\"sma2\":0.1778451666666667,\"rsi_avg_gain\":0.0004888286738615424,\"rsi_avg_loss\":0.0009833693128700124,\"rsi\":33},{\"period_id\":\"120m209547\",\"size\":\"120m\",\"time\":1508738400000,\"open\":0.169,\"high\":0.16902,\"low\":0.165,\"close\":0.16603,\"volume\":1644274.9669853388,\"close_time\":1508745581675,\"vwap\":0.1663126770825469,\"ema1\":0.1734638534490611,\"sma1\":0.1987886810185186,\"sma2\":0.17827800000000002,\"rsi_avg_gain\":0.0005264308795431995,\"rsi_avg_loss\":0.0010528592600138576,\"rsi\":33},{\"period_id\":\"120m209546\",\"size\":\"120m\",\"time\":1508731200000,\"open\":0.17068,\"high\":0.17076,\"low\":0.169,\"close\":0.16911,\"volume\":319551.91773119004,\"close_time\":1508738356463,\"vwap\":0.16921089336730655,\"ema1\":0.1739765329972722,\"sma1\":0.19927849583333337,\"sma2\":0.17875950000000002,\"rsi_avg_gain\":0.000566925562584984,\"rsi_avg_loss\":0.0008969253569380006,\"rsi\":39},{\"period_id\":\"120m209545\",\"size\":\"120m\",\"time\":1508724000000,\"open\":0.1708,\"high\":0.17086,\"low\":0.17003,\"close\":0.17043,\"volume\":87114,\"close_time\":1508730294918,\"vwap\":0.17038397644963543,\"ema1\":0.1743121559626013,\"sma1\":0.19976868101851858,\"sma2\":0.17916900000000002,\"rsi_avg_gain\":0.0006105352212453675,\"rsi_avg_loss\":0.00086438115362554,\"rsi\":41},{\"period_id\":\"120m209544\",\"size\":\"120m\",\"time\":1508716800000,\"open\":0.17162,\"high\":0.17162,\"low\":0.1707,\"close\":0.17082,\"volume\":115057.60277177,\"close_time\":1508723544199,\"vwap\":0.1710497067978039,\"ema1\":0.1745798908565738,\"sma1\":0.20022951435185188,\"sma2\":0.1796456666666667,\"rsi_avg_gain\":0.0006574994690334726,\"rsi_avg_loss\":0.0009008720115967352,\"rsi\":42},{\"period_id\":\"120m209543\",\"size\":\"120m\",\"time\":1508709600000,\"open\":0.1705,\"high\":0.172,\"low\":0.17017,\"close\":0.17076,\"volume\":97633.11608365999,\"close_time\":1508716762892,\"vwap\":0.17111920783082935,\"ema1\":0.17483919367426853,\"sma1\":0.2006646995370371,\"sma2\":0.18004133333333336,\"rsi_avg_gain\":0.0007034609666514317,\"rsi_avg_loss\":0.0009701698586426379,\"rsi\":42},{\"period_id\":\"120m209542\",\"size\":\"120m\",\"time\":1508702400000,\"open\":0.17,\"high\":0.17174755,\"low\":0.16966,\"close\":0.17126,\"volume\":279349.66166889,\"close_time\":1508709197711,\"vwap\":0.17108423462983366,\"ema1\":0.17512051737594223,\"sma1\":0.2010894444444445,\"sma2\":0.18033200000000002,\"rsi_avg_gain\":0.0007575733487015418,\"rsi_avg_loss\":0.0010063367708459177,\"rsi\":43},{\"period_id\":\"120m209541\",\"size\":\"120m\",\"time\":1508695200000,\"open\":0.171,\"high\":0.172,\"low\":0.1698,\"close\":0.17,\"volume\":534286.93589556,\"close_time\":1508702389820,\"vwap\":0.1701235379082618,\"ema1\":0.1753867599535934,\"sma1\":0.20157314814814822,\"sma2\":0.18085700000000002,\"rsi_avg_gain\":0.0007189251447555079,\"rsi_avg_loss\":0.0010837472916802192,\"rsi\":40},{\"period_id\":\"120m209540\",\"size\":\"120m\",\"time\":1508688000000,\"open\":0.1724,\"high\":0.1724,\"low\":0.171,\"close\":0.17126,\"volume\":149310.91431348005,\"close_time\":1508694856926,\"vwap\":0.17173081076401212,\"ema1\":0.17575826064004813,\"sma2\":0.1814685,\"rsi_avg_gain\":0.0007742270789674701,\"rsi_avg_loss\":0.0010701893910402373,\"rsi\":42},{\"period_id\":\"120m209539\",\"size\":\"120m\",\"time\":1508680800000,\"open\":0.1723,\"high\":0.17481,\"low\":0.17121,\"close\":0.1724,\"volume\":597489.0677834799,\"close_time\":1508687927557,\"vwap\":0.17282102299690777,\"ema1\":0.1760684855117756,\"sma2\":0.18213633333333334,\"rsi_avg_gain\":0.0008337830081188139,\"rsi_avg_loss\":0.0010648193441971786,\"rsi\":44},{\"period_id\":\"120m209538\",\"size\":\"120m\",\"time\":1508673600000,\"open\":0.17057,\"high\":0.17274,\"low\":0.16958,\"close\":0.17226,\"volume\":357371.2148454699,\"close_time\":1508680784545,\"vwap\":0.17209896978677722,\"ema1\":0.1763214845125877,\"sma2\":0.1828766666666667,\"rsi_avg_gain\":0.0008871509318202611,\"rsi_avg_loss\":0.0011467285245200384,\"rsi\":44},{\"period_id\":\"120m209537\",\"size\":\"120m\",\"time\":1508666400000,\"open\":0.17146,\"high\":0.17149,\"low\":0.168,\"close\":0.16957,\"volume\":718263.7104258008,\"close_time\":1508673584125,\"vwap\":0.16983819940147563,\"ema1\":0.17660158689276617,\"sma2\":0.18363383333333336,\"rsi_avg_gain\":0.0007484702342679736,\"rsi_avg_loss\":0.0012349384110215797,\"rsi\":38},{\"period_id\":\"120m209536\",\"size\":\"120m\",\"time\":1508659200000,\"open\":0.17333,\"high\":0.17451,\"low\":0.16901,\"close\":0.17146,\"volume\":777359.1669491098,\"close_time\":1508666395877,\"vwap\":0.17049473565469034,\"ema1\":0.1770865239198535,\"sma2\":0.18446883333333336,\"rsi_avg_gain\":0.0008060448676732024,\"rsi_avg_loss\":0.0011845490580232394,\"rsi\":40},{\"period_id\":\"120m209535\",\"size\":\"120m\",\"time\":1508652000000,\"open\":0.173,\"high\":0.17549,\"low\":0.17237,\"close\":0.17407,\"volume\":368189.59224220994,\"close_time\":1508659091496,\"vwap\":0.17458465792530212,\"ema1\":0.17747456005225717,\"sma2\":0.185208,\"rsi_avg_gain\":0.0008680483190326796,\"rsi_avg_loss\":0.0010748989855634886,\"rsi\":45},{\"period_id\":\"120m209534\",\"size\":\"120m\",\"time\":1508644800000,\"open\":0.17198,\"high\":0.17389,\"low\":0.17066,\"close\":0.17357,\"volume\":259884.95235785996,\"close_time\":1508651645538,\"vwap\":0.1731051089630606,\"ema1\":0.17770935729724044,\"sma2\":0.185956,\"rsi_avg_gain\":0.0008963597281890396,\"rsi_avg_loss\":0.0011575835229145261,\"rsi\":44},{\"period_id\":\"120m209533\",\"size\":\"120m\",\"time\":1508637600000,\"open\":0.17799,\"high\":0.17807,\"low\":0.1715,\"close\":0.17189,\"volume\":233140.33999584996,\"close_time\":1508644438052,\"vwap\":0.172105109035289,\"ema1\":0.1779948302142915,\"sma2\":0.18673033333333333,\"rsi_avg_gain\":0.000836079707280503,\"rsi_avg_loss\":0.0012466284092925667,\"rsi\":40},{\"period_id\":\"120m209532\",\"size\":\"120m\",\"time\":1508630400000,\"open\":0.17794,\"high\":0.1799,\"low\":0.17573,\"close\":0.17795,\"volume\":324073.30858867,\"close_time\":1508637572755,\"vwap\":0.17716881406919807,\"ema1\":0.17841585298769091,\"sma2\":0.18743116666666668,\"rsi_avg_gain\":0.0009003935309174648,\"rsi_avg_loss\":0.0008763690561612251,\"rsi\":51},{\"period_id\":\"120m209531\",\"size\":\"120m\",\"time\":1508623200000,\"open\":0.17182,\"high\":0.178,\"low\":0.17131,\"close\":0.178,\"volume\":579369.1544701199,\"close_time\":1508630360880,\"vwap\":0.17653882289078662,\"ema1\":0.17844798077994548,\"sma2\":0.188096,\"rsi_avg_gain\":0.0009696545717572698,\"rsi_avg_loss\":0.0009399359066351658,\"rsi\":51},{\"period_id\":\"120m209530\",\"size\":\"120m\",\"time\":1508616000000,\"open\":0.17,\"high\":0.173,\"low\":0.16948,\"close\":0.172,\"volume\":437613.7920166499,\"close_time\":1508623105179,\"vwap\":0.17187200877087108,\"ema1\":0.17847887600614862,\"sma2\":0.18881266666666668,\"rsi_avg_gain\":0.0005827049234309055,\"rsi_avg_loss\":0.0010122386686840248,\"rsi\":37},{\"period_id\":\"120m209529\",\"size\":\"120m\",\"time\":1508608800000,\"open\":0.171,\"high\":0.17269,\"low\":0.17,\"close\":0.17045,\"volume\":521011.0137024398,\"close_time\":1508615996024,\"vwap\":0.17029659216256093,\"ema1\":0.17892569504105543,\"sma2\":0.18962850000000003,\"rsi_avg_gain\":0.0005082976098486679,\"rsi_avg_loss\":0.001090103181659719,\"rsi\":32},{\"period_id\":\"120m209528\",\"size\":\"120m\",\"time\":1508601600000,\"open\":0.17174,\"high\":0.17204,\"low\":0.168,\"close\":0.1709,\"volume\":676697.5788278899,\"close_time\":1508608747958,\"vwap\":0.17020585498862775,\"ema1\":0.17951022573354203,\"sma2\":0.19065016666666673,\"rsi_avg_gain\":0.0005473974259908731,\"rsi_avg_loss\":0.0011393418879412354,\"rsi\":32},{\"period_id\":\"120m209527\",\"size\":\"120m\",\"time\":1508594400000,\"open\":0.17297,\"high\":0.17459,\"low\":0.1709,\"close\":0.17198,\"volume\":648114.2900651698,\"close_time\":1508601565921,\"vwap\":0.17154506074986217,\"ema1\":0.18010403440482078,\"sma2\":0.19176050000000003,\"rsi_avg_gain\":0.0005895049202978633,\"rsi_avg_loss\":0.0011439066485521,\"rsi\":34},{\"period_id\":\"120m209526\",\"size\":\"120m\",\"time\":1508587200000,\"open\":0.172,\"high\":0.17328,\"low\":0.16928,\"close\":0.173,\"volume\":2639942.211716732,\"close_time\":1508594339385,\"vwap\":0.17305500242375843,\"ema1\":0.180664312639636,\"sma2\":0.19300483333333335,\"rsi_avg_gain\":0.0006348514526284682,\"rsi_avg_loss\":0.0011534379292099544,\"rsi\":36},{\"period_id\":\"120m209525\",\"size\":\"120m\",\"time\":1508580000000,\"open\":0.17203,\"high\":0.173,\"low\":0.171,\"close\":0.172,\"volume\":729710.4042586304,\"close_time\":1508587194952,\"vwap\":0.17208464307113142,\"ema1\":0.18119288592512814,\"sma2\":0.19406316666666668,\"rsi_avg_gain\":0.000606763102830658,\"rsi_avg_loss\":0.0012421639237645663,\"rsi\":33},{\"period_id\":\"120m209524\",\"size\":\"120m\",\"time\":1508572800000,\"open\":0.17382,\"high\":0.174,\"low\":0.172,\"close\":0.17203,\"volume\":599489.1881081001,\"close_time\":1508579993090,\"vwap\":0.17210494222870373,\"ema1\":0.1818268780578956,\"sma2\":0.195087,\"rsi_avg_gain\":0.0006534371876637856,\"rsi_avg_loss\":0.0013354073025156866,\"rsi\":33},{\"period_id\":\"120m209523\",\"size\":\"120m\",\"time\":1508565600000,\"open\":0.174,\"high\":0.17489,\"low\":0.17141,\"close\":0.17388,\"volume\":803000.1573551196,\"close_time\":1508572738039,\"vwap\":0.1736222593228525,\"ema1\":0.1825025248205091,\"sma2\":0.1961053333333334,\"rsi_avg_gain\":0.0007037015867148461,\"rsi_avg_loss\":0.0012958232488630456,\"rsi\":35},{\"period_id\":\"120m209522\",\"size\":\"120m\",\"time\":1508558400000,\"open\":0.17331,\"high\":0.17482,\"low\":0.17153,\"close\":0.17398,\"volume\":328946.48005890014,\"close_time\":1508565586485,\"vwap\":0.17311014575153227,\"ema1\":0.18309718170468214,\"sma2\":0.19690200000000008,\"rsi_avg_gain\":0.0007578324780006036,\"rsi_avg_loss\":0.001387809652621742,\"rsi\":35},{\"period_id\":\"120m209521\",\"size\":\"120m\",\"time\":1508551200000,\"open\":0.175,\"high\":0.17588,\"low\":0.173,\"close\":0.173,\"volume\":369652.91754784994,\"close_time\":1508558005497,\"vwap\":0.17317272045693233,\"ema1\":0.18372595285672919,\"sma2\":0.19768533333333338,\"rsi_avg_gain\":0.000740742668616034,\"rsi_avg_loss\":0.001494564241284953,\"rsi\":33},{\"period_id\":\"120m209520\",\"size\":\"120m\",\"time\":1508544000000,\"open\":0.17635,\"high\":0.17802,\"low\":0.17464,\"close\":0.17535,\"volume\":470922.95569517004,\"close_time\":1508551167572,\"vwap\":0.17504487972755184,\"ema1\":0.18446567374340017,\"sma2\":0.1984418333333334,\"rsi_avg_gain\":0.0007977228738941905,\"rsi_avg_loss\":0.0014287614906145635,\"rsi\":36},{\"period_id\":\"120m209519\",\"size\":\"120m\",\"time\":1508536800000,\"open\":0.176,\"high\":0.17769,\"low\":0.1746,\"close\":0.17651,\"volume\":1082256.3462099694,\"close_time\":1508543841892,\"vwap\":0.17557135476230007,\"ema1\":0.18509434089811744,\"sma2\":0.19921666666666674,\"rsi_avg_gain\":0.0008590861718860513,\"rsi_avg_loss\":0.0014494354514310687,\"rsi\":37},{\"period_id\":\"120m209518\",\"size\":\"120m\",\"time\":1508529600000,\"open\":0.177,\"high\":0.1783,\"low\":0.175,\"close\":0.176,\"volume\":2969300.322570631,\"close_time\":1508536792880,\"vwap\":0.1772148111298336,\"ema1\":0.18568636440833244,\"sma2\":0.20000683333333338,\"rsi_avg_gain\":0.0008859389543388236,\"rsi_avg_loss\":0.0015609304861565357,\"rsi\":36},{\"period_id\":\"120m209517\",\"size\":\"120m\",\"time\":1508522400000,\"open\":0.1785,\"high\":0.17999,\"low\":0.1771,\"close\":0.17758,\"volume\":913124.6028473194,\"close_time\":1508529579456,\"vwap\":0.17799178236265384,\"ema1\":0.18635438953994157,\"sma2\":0.20077866666666674,\"rsi_avg_gain\":0.0009540881046725794,\"rsi_avg_loss\":0.0015594636004762695,\"rsi\":38},{\"period_id\":\"120m209516\",\"size\":\"120m\",\"time\":1508515200000,\"open\":0.1805,\"high\":0.1805,\"low\":0.1765,\"close\":0.17869,\"volume\":854731.4552997001,\"close_time\":1508522351206,\"vwap\":0.1789196294045729,\"ema1\":0.186959519853041,\"sma2\":0.20156716666666677,\"rsi_avg_gain\":0.0010274794973397009,\"rsi_avg_loss\":0.0015940377235898287,\"rsi\":39},{\"period_id\":\"120m209515\",\"size\":\"120m\",\"time\":1508508000000,\"open\":0.18251,\"high\":0.18389,\"low\":0.1754,\"close\":0.1805,\"volume\":2255473.1624895213,\"close_time\":1508515181054,\"vwap\":0.18040027472604683,\"ema1\":0.1875298315670438,\"sma2\":0.2022330000000001,\"rsi_avg_gain\":0.001106516381750447,\"rsi_avg_loss\":0.0015774252407890457,\"rsi\":41},{\"period_id\":\"120m209514\",\"size\":\"120m\",\"time\":1508500800000,\"open\":0.1827,\"high\":0.1845,\"low\":0.182,\"close\":0.18389,\"volume\":741604.6409471899,\"close_time\":1508507951218,\"vwap\":0.1832446610486187,\"ema1\":0.18801464753718475,\"sma2\":0.20273350000000007,\"rsi_avg_gain\":0.0011916330265004816,\"rsi_avg_loss\":0.0014379964131574336,\"rsi\":45},{\"period_id\":\"120m209513\",\"size\":\"120m\",\"time\":1508493600000,\"open\":0.18325,\"high\":0.18495,\"low\":0.18194,\"close\":0.1845,\"volume\":672749.5059062601,\"close_time\":1508500751369,\"vwap\":0.18366120025432592,\"ema1\":0.18829910598802507,\"sma2\":0.2032285,\"rsi_avg_gain\":0.0012832971054620571,\"rsi_avg_loss\":0.0015016884449387746,\"rsi\":46},{\"period_id\":\"120m209512\",\"size\":\"120m\",\"time\":1508486400000,\"open\":0.18398,\"high\":0.18511,\"low\":0.1825,\"close\":0.18367,\"volume\":750380.9981659299,\"close_time\":1508493594948,\"vwap\":0.18319647164436506,\"ema1\":0.18856111329754405,\"sma2\":0.20373400000000003,\"rsi_avg_gain\":0.0013181661135745234,\"rsi_avg_loss\":0.0016172029407032957,\"rsi\":45},{\"period_id\":\"120m209511\",\"size\":\"120m\",\"time\":1508479200000,\"open\":0.18556,\"high\":0.18691,\"low\":0.1833,\"close\":0.18399,\"volume\":934216.4546398703,\"close_time\":1508486356945,\"vwap\":0.18437038172175144,\"ema1\":0.18889843145599536,\"sma2\":0.2042835000000001,\"rsi_avg_gain\":0.0014195635069264097,\"rsi_avg_loss\":0.0017169877822958578,\"rsi\":45},{\"period_id\":\"120m209510\",\"size\":\"120m\",\"time\":1508472000000,\"open\":0.18476,\"high\":0.18958,\"low\":0.18476,\"close\":0.1855,\"volume\":854452.3424677192,\"close_time\":1508479192400,\"vwap\":0.18564149287696619,\"ema1\":0.18923694397020194,\"sma2\":0.20478850000000007,\"rsi_avg_gain\":0.0015287606997669027,\"rsi_avg_loss\":0.0017329099193955381,\"rsi\":47},{\"period_id\":\"120m209509\",\"size\":\"120m\",\"time\":1508464800000,\"open\":0.18316,\"high\":0.18462,\"low\":0.18193,\"close\":0.18462,\"volume\":229724.49574185,\"close_time\":1508471909974,\"vwap\":0.18449735935168177,\"ema1\":0.18949466424400896,\"sma2\":0.2053445,\"rsi_avg_gain\":0.0015786653689797419,\"rsi_avg_loss\":0.0018662106824259641,\"rsi\":46},{\"period_id\":\"120m209508\",\"size\":\"120m\",\"time\":1508457600000,\"open\":0.18186,\"high\":0.1832,\"low\":0.17975,\"close\":0.18316,\"volume\":430995.58608996,\"close_time\":1508464770516,\"vwap\":0.18318985663461293,\"ema1\":0.1898308479849751,\"sma2\":0.2058828333333334,\"rsi_avg_gain\":0.0015877934742858744,\"rsi_avg_loss\":0.0020097653503048842,\"rsi\":44},{\"period_id\":\"120m209507\",\"size\":\"120m\",\"time\":1508450400000,\"open\":0.18245,\"high\":0.18349,\"low\":0.18,\"close\":0.18236,\"volume\":266705.26839337003,\"close_time\":1508457396244,\"vwap\":0.18020222997736218,\"ema1\":0.19029090646669752,\"sma2\":0.20643350000000005,\"rsi_avg_gain\":0.001648392972307865,\"rsi_avg_loss\":0.0021643626849437215,\"rsi\":43},{\"period_id\":\"120m209506\",\"size\":\"120m\",\"time\":1508443200000,\"open\":0.18448,\"high\":0.1848,\"low\":0.18011,\"close\":0.1821,\"volume\":694507.9420249896,\"close_time\":1508450386343,\"vwap\":0.18249718688258407,\"ema1\":0.19083786553336632,\"sma2\":0.2070623333333334,\"rsi_avg_gain\":0.0017551924317161635,\"rsi_avg_loss\":0.002330852122247085,\"rsi\":43},{\"period_id\":\"120m209505\",\"size\":\"120m\",\"time\":1508436000000,\"open\":0.1825,\"high\":0.1855,\"low\":0.181,\"close\":0.18457,\"volume\":949255.9928773206,\"close_time\":1508443191375,\"vwap\":0.18407656658719393,\"ema1\":0.19144047694946054,\"sma2\":0.20762316666666672,\"rsi_avg_gain\":0.0018902072341558684,\"rsi_avg_loss\":0.0023201484393430144,\"rsi\":45},{\"period_id\":\"120m209504\",\"size\":\"120m\",\"time\":1508428800000,\"open\":0.191,\"high\":0.1944,\"low\":0.1821,\"close\":0.18245,\"volume\":2695444.7140950765,\"close_time\":1508435969412,\"vwap\":0.18355305028834823,\"ema1\":0.19191430294597506,\"sma2\":0.20817400000000008,\"rsi_avg_gain\":0.0018725308675524729,\"rsi_avg_loss\":0.0024986213962155538,\"rsi\":43},{\"period_id\":\"120m209503\",\"size\":\"120m\",\"time\":1508421600000,\"open\":0.17647,\"high\":0.195,\"low\":0.175,\"close\":0.192,\"volume\":3989608.8784541055,\"close_time\":1508428794391,\"vwap\":0.19310053827298404,\"ema1\":0.19256701349397334,\"sma2\":0.20857266666666677,\"rsi_avg_gain\":0.0020165717035180476,\"rsi_avg_loss\":0.0019562076574629037,\"rsi\":51},{\"period_id\":\"120m209502\",\"size\":\"120m\",\"time\":1508414400000,\"open\":0.1781,\"high\":0.17949,\"low\":0.1764,\"close\":0.17647,\"volume\":1041090.1481537899,\"close_time\":1508421587204,\"vwap\":0.17703154172111538,\"ema1\":0.19260611787286805,\"sma2\":0.20924816666666676,\"rsi_avg_gain\":0.0009770772191732807,\"rsi_avg_loss\":0.0021066851695754345,\"rsi\":32},{\"period_id\":\"120m209501\",\"size\":\"120m\",\"time\":1508407200000,\"open\":0.17791,\"high\":0.17965,\"low\":0.1752,\"close\":0.1781,\"volume\":1684302.6253727605,\"close_time\":1508414397667,\"vwap\":0.17807500711599594,\"ema1\":0.19371895358823826,\"sma2\":0.20992083333333342,\"rsi_avg_gain\":0.001052237005263533,\"rsi_avg_loss\":0.002143353259542774,\"rsi\":33},{\"period_id\":\"120m209500\",\"size\":\"120m\",\"time\":1508400000000,\"open\":0.17884,\"high\":0.18121,\"low\":0.17727,\"close\":0.17791,\"volume\":1148991.7105682401,\"close_time\":1508407195358,\"vwap\":0.17793044788619722,\"ema1\":0.19479612280122022,\"sma2\":0.21065433333333342,\"rsi_avg_gain\":0.0011185629287453435,\"rsi_avg_loss\":0.0023082265871999107,\"rsi\":33},{\"period_id\":\"120m209499\",\"size\":\"120m\",\"time\":1508392800000,\"open\":0.1826,\"high\":0.18468,\"low\":0.17801,\"close\":0.17884,\"volume\":1068540.03475697,\"close_time\":1508399998814,\"vwap\":0.18056155901031304,\"ema1\":0.1959606829944078,\"sma2\":0.21129866666666672,\"rsi_avg_gain\":0.0012046062309565239,\"rsi_avg_loss\":0.0024142440169845204,\"rsi\":33},{\"period_id\":\"120m209498\",\"size\":\"120m\",\"time\":1508385600000,\"open\":0.17834,\"high\":0.18343,\"low\":0.1763,\"close\":0.1815,\"volume\":1083815.3835733393,\"close_time\":1508392791657,\"vwap\":0.18290908173604495,\"ema1\":0.19714141975264282,\"sma2\":0.21190716666666673,\"rsi_avg_gain\":0.0012972682487224104,\"rsi_avg_loss\":0.0023953397105987147,\"rsi\":35},{\"period_id\":\"120m209497\",\"size\":\"120m\",\"time\":1508378400000,\"open\":0.1835,\"high\":0.18533,\"low\":0.17843,\"close\":0.17885,\"volume\":555617.9518499903,\"close_time\":1508385595765,\"vwap\":0.17949608885825166,\"ema1\":0.19822013835627336,\"sma2\":0.2126013333333334,\"rsi_avg_gain\":0.0011932119601625968,\"rsi_avg_loss\":0.0025795966114140006,\"rsi\":32},{\"period_id\":\"120m209496\",\"size\":\"120m\",\"time\":1508371200000,\"open\":0.18414,\"high\":0.18592,\"low\":0.18112,\"close\":0.18259,\"volume\":481808.72188413964,\"close_time\":1508378329705,\"vwap\":0.18389167181660124,\"ema1\":0.19955600996705083,\"sma2\":0.2132453333333334,\"rsi_avg_gain\":0.0012849974955597195,\"rsi_avg_loss\":0.0024903348122920013,\"rsi\":34},{\"period_id\":\"120m209495\",\"size\":\"120m\",\"time\":1508364000000,\"open\":0.185,\"high\":0.18809,\"low\":0.1836,\"close\":0.18515,\"volume\":1333017.9636087907,\"close_time\":1508371192259,\"vwap\":0.18587398221568036,\"ema1\":0.2007260796199509,\"sma2\":0.21378633333333338,\"rsi_avg_gain\":0.001383843456756621,\"rsi_avg_loss\":0.0024849759516990776,\"rsi\":36},{\"period_id\":\"120m209494\",\"size\":\"120m\",\"time\":1508356800000,\"open\":0.17963,\"high\":0.18522,\"low\":0.17531,\"close\":0.18507,\"volume\":2839118.2283753585,\"close_time\":1508363988420,\"vwap\":0.1850127406534052,\"ema1\":0.20180029200753372,\"sma2\":0.21429333333333342,\"rsi_avg_gain\":0.0014841391072763614,\"rsi_avg_loss\":0.002676127947983622,\"rsi\":36},{\"period_id\":\"120m209493\",\"size\":\"120m\",\"time\":1508349600000,\"open\":0.1817,\"high\":0.18195,\"low\":0.17057,\"close\":0.17963,\"volume\":4148635.5413661683,\"close_time\":1508356790881,\"vwap\":0.18001799863434262,\"ema1\":0.20295410524943258,\"sma2\":0.21491200000000005,\"rsi_avg_gain\":0.0011798421155283891,\"rsi_avg_loss\":0.002881983943982362,\"rsi\":29},{\"period_id\":\"120m209492\",\"size\":\"120m\",\"time\":1508342400000,\"open\":0.189,\"high\":0.18988,\"low\":0.18,\"close\":0.1805,\"volume\":2751641.340932761,\"close_time\":1508349586855,\"vwap\":0.18084156896086603,\"ema1\":0.20456266423215208,\"rsi_avg_gain\":0.0012705992013382651,\"rsi_avg_loss\":0.0030367519396733147,\"rsi\":29},{\"period_id\":\"120m209491\",\"size\":\"120m\",\"time\":1508335200000,\"open\":0.1888,\"high\":0.18988,\"low\":0.1853,\"close\":0.189,\"volume\":1497489.5640848696,\"close_time\":1508342398064,\"vwap\":0.18894788424430603,\"ema1\":0.2062221583171281,\"rsi_avg_gain\":0.0013683376014412088,\"rsi_avg_loss\":0.0026165020888789534,\"rsi\":34},{\"period_id\":\"120m209490\",\"size\":\"120m\",\"time\":1508328000000,\"open\":0.193,\"high\":0.19561,\"low\":0.188,\"close\":0.188,\"volume\":1372659.4788467903,\"close_time\":1508335190916,\"vwap\":0.18942827465556739,\"ema1\":0.20740989337348176,\"rsi_avg_gain\":0.0013966712630905326,\"rsi_avg_loss\":0.002817771480331181,\"rsi\":33},{\"period_id\":\"120m209489\",\"size\":\"120m\",\"time\":1508320800000,\"open\":0.19372,\"high\":0.19788,\"low\":0.19,\"close\":0.19388,\"volume\":1368834.8061775295,\"close_time\":1508327989073,\"vwap\":0.1924835244347913,\"ema1\":0.20874850670958395,\"rsi_avg_gain\":0.0015041075140974967,\"rsi_avg_loss\":0.0025822154403566566,\"rsi\":37},{\"period_id\":\"120m209488\",\"size\":\"120m\",\"time\":1508313600000,\"open\":0.1895,\"high\":0.19372,\"low\":0.18551,\"close\":0.19372,\"volume\":1762878.7035395007,\"close_time\":1508320794514,\"vwap\":0.1928377734572167,\"ema1\":0.20977392096541733,\"rsi_avg_gain\":0.0016075003997973048,\"rsi_avg_loss\":0.002780847397307169,\"rsi\":37},{\"period_id\":\"120m209487\",\"size\":\"120m\",\"time\":1508306400000,\"open\":0.19807,\"high\":0.19897,\"low\":0.18551,\"close\":0.192,\"volume\":1783411.5423043596,\"close_time\":1508313540957,\"vwap\":0.1899177304514697,\"ema1\":0.21088108792854957,\"rsi_avg_gain\":0.0015988465843970977,\"rsi_avg_loss\":0.0029947587355615662,\"rsi\":35},{\"period_id\":\"120m209486\",\"size\":\"120m\",\"time\":1508299200000,\"open\":0.19455,\"high\":0.20078,\"low\":0.19428,\"close\":0.198,\"volume\":1296323.113122249,\"close_time\":1508306398847,\"vwap\":0.19792532950746977,\"ema1\":0.21218323192362196,\"rsi_avg_gain\":0.0017218347831968743,\"rsi_avg_loss\":0.0027635863306047634,\"rsi\":38},{\"period_id\":\"120m209485\",\"size\":\"120m\",\"time\":1508292000000,\"open\":0.19707,\"high\":0.19925,\"low\":0.193,\"close\":0.195,\"volume\":376664.22766547016,\"close_time\":1508299009432,\"vwap\":0.19400504473218486,\"ema1\":0.21316138584938898,\"rsi_avg_gain\":0.001623514381904326,\"rsi_avg_loss\":0.0029761698944974374,\"rsi\":35},{\"period_id\":\"120m209484\",\"size\":\"120m\",\"time\":1508284800000,\"open\":0.19449,\"high\":0.19978,\"low\":0.19075,\"close\":0.19942,\"volume\":743392.9868329304,\"close_time\":1508291986653,\"vwap\":0.19885875649529902,\"ema1\":0.21441389521831236,\"rsi_avg_gain\":0.0017484001035892743,\"rsi_avg_loss\":0.002865106040228011,\"rsi\":38},{\"period_id\":\"120m209483\",\"size\":\"120m\",\"time\":1508277600000,\"open\":0.191,\"high\":0.19466,\"low\":0.1888,\"close\":0.1945,\"volume\":2467112.42037417,\"close_time\":1508284788370,\"vwap\":0.19066432430361366,\"ema1\":0.21544795695750632,\"rsi_avg_gain\":0.0015044308807884506,\"rsi_avg_loss\":0.003085498812553243,\"rsi\":33},{\"period_id\":\"120m209482\",\"size\":\"120m\",\"time\":1508270400000,\"open\":0.2015,\"high\":0.20462,\"low\":0.18501,\"close\":0.1887,\"volume\":8168424.322204548,\"close_time\":1508277590165,\"vwap\":0.19134540073003575,\"ema1\":0.2168926436442309,\"rsi_avg_gain\":0.0011740024870029468,\"rsi_avg_loss\":0.003322844875057339,\"rsi\":26},{\"period_id\":\"120m209481\",\"size\":\"120m\",\"time\":1508263200000,\"open\":0.20795,\"high\":0.20948,\"low\":0.198,\"close\":0.2015,\"volume\":4465280.972445613,\"close_time\":1508270392738,\"vwap\":0.20168820247663807,\"ema1\":0.21883696389555715,\"rsi_avg_gain\":0.001264310370618558,\"rsi_avg_loss\":0.0025938329423694415,\"rsi\":33},{\"period_id\":\"120m209480\",\"size\":\"120m\",\"time\":1508256000000,\"open\":0.21216,\"high\":0.213,\"low\":0.2,\"close\":0.20795,\"volume\":4123265.899420519,\"close_time\":1508263196262,\"vwap\":0.20792711589448057,\"ema1\":0.22003261657800938,\"rsi_avg_gain\":0.0013615650145122934,\"rsi_avg_loss\":0.002297204707167092,\"rsi\":37},{\"period_id\":\"120m209479\",\"size\":\"120m\",\"time\":1508248800000,\"open\":0.21667,\"high\":0.2185,\"low\":0.21126,\"close\":0.21247,\"volume\":1350323.3272897,\"close_time\":1508255977182,\"vwap\":0.21181299136429038,\"ema1\":0.22086590047994106,\"rsi_avg_gain\":0.001466300784859393,\"rsi_avg_loss\":0.002126220453872253,\"rsi\":41},{\"period_id\":\"120m209478\",\"size\":\"120m\",\"time\":1508241600000,\"open\":0.21483,\"high\":0.2207,\"low\":0.2145,\"close\":0.21668,\"volume\":1476930.5860650714,\"close_time\":1508248766827,\"vwap\":0.21594006264791207,\"ema1\":0.22144492809924735,\"rsi_avg_gain\":0.0015790931529255001,\"rsi_avg_loss\":0.0019659297195547326,\"rsi\":45},{\"period_id\":\"120m209477\",\"size\":\"120m\",\"time\":1508234400000,\"open\":0.2214,\"high\":0.2214,\"low\":0.21483,\"close\":0.215,\"volume\":1546725.3390792508,\"close_time\":1508241589452,\"vwap\":0.21499119793410795,\"ema1\":0.22177354383022993,\"rsi_avg_gain\":0.001571331087765922,\"rsi_avg_loss\":0.002117155082597404,\"rsi\":43},{\"period_id\":\"120m209476\",\"size\":\"120m\",\"time\":1508227200000,\"open\":0.21815,\"high\":0.22399,\"low\":0.2162,\"close\":0.22156,\"volume\":1788883.6854261511,\"close_time\":1508234398358,\"vwap\":0.22157007576565024,\"ema1\":0.22224068478403888,\"rsi_avg_gain\":0.0016922027099017622,\"rsi_avg_loss\":0.001775397781258742,\"rsi\":49},{\"period_id\":\"120m209475\",\"size\":\"120m\",\"time\":1508220000000,\"open\":0.21901,\"high\":0.22099,\"low\":0.215,\"close\":0.21842,\"volume\":1724554.0755199182,\"close_time\":1508227139321,\"vwap\":0.21826715896185891,\"ema1\":0.22228762856224846,\"rsi_avg_gain\":0.0015808336875865127,\"rsi_avg_loss\":0.0019119668413555683,\"rsi\":45},{\"period_id\":\"120m209474\",\"size\":\"120m\",\"time\":1508212800000,\"open\":0.218,\"high\":0.22398,\"low\":0.218,\"close\":0.21845,\"volume\":604386.24432186,\"close_time\":1508219872202,\"vwap\":0.2195492691468099,\"ema1\":0.22255436156654146,\"rsi_avg_gain\":0.0017024362789393214,\"rsi_avg_loss\":0.0020567335214598426,\"rsi\":45},{\"period_id\":\"120m209473\",\"size\":\"120m\",\"time\":1508205600000,\"open\":0.22012,\"high\":0.22135,\"low\":0.218,\"close\":0.21835,\"volume\":278872.58491949004,\"close_time\":1508212763910,\"vwap\":0.21836999282569342,\"ema1\":0.22283742098492362,\"rsi_avg_gain\":0.0018257006080884986,\"rsi_avg_loss\":0.0022149437923413688,\"rsi\":45},{\"period_id\":\"120m209472\",\"size\":\"120m\",\"time\":1508198400000,\"open\":0.2172,\"high\":0.22462,\"low\":0.2165,\"close\":0.22,\"volume\":526781.0521477099,\"close_time\":1508204356283,\"vwap\":0.2216557336998304,\"ema1\":0.2231468982942287,\"rsi_avg_gain\":0.0019661391164029983,\"rsi_avg_loss\":0.0022584010071368577,\"rsi\":47},{\"period_id\":\"120m209471\",\"size\":\"120m\",\"time\":1508191200000,\"open\":0.215,\"high\":0.2193,\"low\":0.21384,\"close\":0.21789,\"volume\":1527821.7633719281,\"close_time\":1508198371974,\"vwap\":0.21723655468614939,\"ema1\":0.2233639257627962,\"rsi_avg_gain\":0.0019550728945878443,\"rsi_avg_loss\":0.0024321241615320004,\"rsi\":45},{\"period_id\":\"120m209470\",\"size\":\"120m\",\"time\":1508184000000,\"open\":0.21977,\"high\":0.22632,\"low\":0.215,\"close\":0.215,\"volume\":3312468.6553416625,\"close_time\":1508191198043,\"vwap\":0.21508736695103464,\"ema1\":0.22374143788436834,\"rsi_avg_gain\":0.0018831554249407554,\"rsi_avg_loss\":0.0026192106354960003,\"rsi\":42},{\"period_id\":\"120m209469\",\"size\":\"120m\",\"time\":1508176800000,\"open\":0.2322,\"high\":0.23534,\"low\":0.215,\"close\":0.2194,\"volume\":7587043.2554451395,\"close_time\":1508183998207,\"vwap\":0.219239311139303,\"ema1\":0.2243442956694972,\"rsi_avg_gain\":0.0020280135345515826,\"rsi_avg_loss\":0.0024822268382264606,\"rsi\":45},{\"period_id\":\"120m209468\",\"size\":\"120m\",\"time\":1508169600000,\"open\":0.23909,\"high\":0.24,\"low\":0.22711,\"close\":0.2322,\"volume\":5271921.541000183,\"close_time\":1508176794364,\"vwap\":0.23264385251318925,\"ema1\":0.2246852815777384,\"rsi_avg_gain\":0.002184014575670935,\"rsi_avg_loss\":0.0016885519796284974,\"rsi\":56},{\"period_id\":\"120m209467\",\"size\":\"120m\",\"time\":1508162400000,\"open\":0.2485,\"high\":0.2485,\"low\":0.2386,\"close\":0.2386,\"volume\":4005236.0432454455,\"close_time\":1508169595100,\"vwap\":0.23891496290440933,\"ema1\":0.2241670251348238,\"rsi_avg_gain\":0.0023520156968763915,\"rsi_avg_loss\":0.0013261329011383803,\"rsi\":64},{\"period_id\":\"120m209466\",\"size\":\"120m\",\"time\":1508155200000,\"open\":0.2355,\"high\":0.2499,\"low\":0.235,\"close\":0.24766,\"volume\":5009323.550827344,\"close_time\":1508162398862,\"vwap\":0.24874451146990742,\"ema1\":0.2231716475579151,\"rsi_avg_gain\":0.0025329399812514986,\"rsi_avg_loss\":0.0007312200473797956,\"rsi\":78},{\"period_id\":\"120m209465\",\"size\":\"120m\",\"time\":1508148000000,\"open\":0.2334,\"high\":0.237,\"low\":0.23101,\"close\":0.2355,\"volume\":1623158.6642044901,\"close_time\":1508155184120,\"vwap\":0.236118302014926,\"ema1\":0.22148279566535753,\"rsi_avg_gain\":0.0017923969028862292,\"rsi_avg_loss\":0.0007874677433320875,\"rsi\":69},{\"period_id\":\"120m209464\",\"size\":\"120m\",\"time\":1508140800000,\"open\":0.23496,\"high\":0.235,\"low\":0.224,\"close\":0.23346,\"volume\":2284854.99099831,\"close_time\":1508147985967,\"vwap\":0.23307968403793886,\"ema1\":0.2205160919181408,\"rsi_avg_gain\":0.0017733505108005556,\"rsi_avg_loss\":0.0008480421851268634,\"rsi\":68},{\"period_id\":\"120m209463\",\"size\":\"120m\",\"time\":1508133600000,\"open\":0.22176,\"high\":0.237,\"low\":0.22174,\"close\":0.23498,\"volume\":3742457.9514594693,\"close_time\":1508140777463,\"vwap\":0.23505074595179692,\"ema1\":0.21962340860215052,\"rsi_avg_gain\":0.0019097620885544443,\"rsi_avg_loss\":0.0007963531224443149,\"rsi\":71},{\"period_id\":\"120m209462\",\"size\":\"120m\",\"time\":1508126400000,\"open\":0.22,\"high\":0.225,\"low\":0.21921,\"close\":0.22178,\"volume\":491233.2354765498,\"close_time\":1508133596710,\"vwap\":0.2217899988754425,\"rsi_avg_gain\":0.0010412822492124796,\"rsi_avg_loss\":0.0008576110549400315,\"rsi\":55},{\"period_id\":\"120m209461\",\"size\":\"120m\",\"time\":1508119200000,\"open\":0.22154,\"high\":0.22179,\"low\":0.21931,\"close\":0.22,\"volume\":231878.15689234002,\"close_time\":1508126390334,\"vwap\":0.2201132050136377,\"rsi_avg_gain\":0.0009844578068442084,\"rsi_avg_loss\":0.0009235811360892647,\"rsi\":52},{\"period_id\":\"120m209460\",\"size\":\"120m\",\"time\":1508112000000,\"open\":0.22323,\"high\":0.22323,\"low\":0.2203,\"close\":0.22074,\"volume\":253917.69177766997,\"close_time\":1508119056912,\"vwap\":0.22119565403154567,\"rsi_avg_gain\":0.0010601853304476091,\"rsi_avg_loss\":0.0009377027619422857,\"rsi\":53},{\"period_id\":\"120m209459\",\"size\":\"120m\",\"time\":1508104800000,\"open\":0.2238,\"high\":0.2241,\"low\":0.22,\"close\":0.223,\"volume\":679377.8068433397,\"close_time\":1508111891597,\"vwap\":0.22249040787566948,\"rsi_avg_gain\":0.0011417380481743484,\"rsi_avg_loss\":0.0008359875897839991,\"rsi\":58},{\"period_id\":\"120m209458\",\"size\":\"120m\",\"time\":1508097600000,\"open\":0.2235,\"high\":0.2241,\"low\":0.222,\"close\":0.22341,\"volume\":879567.2457431995,\"close_time\":1508104786549,\"vwap\":0.223751283457659,\"rsi_avg_gain\":0.0012295640518800676,\"rsi_avg_loss\":0.0008687558659212304,\"rsi\":59},{\"period_id\":\"120m209457\",\"size\":\"120m\",\"time\":1508090400000,\"open\":0.22601,\"high\":0.2285,\"low\":0.2235,\"close\":0.22389,\"volume\":2245693.797248608,\"close_time\":1508097595388,\"vwap\":0.22401529694032218,\"rsi_avg_gain\":0.0013241459020246881,\"rsi_avg_loss\":0.0008986601632997859,\"rsi\":60},{\"period_id\":\"120m209456\",\"size\":\"120m\",\"time\":1508083200000,\"open\":0.22045,\"high\":0.2269,\"low\":0.22011,\"close\":0.226,\"volume\":2726038.296152591,\"close_time\":1508090396748,\"vwap\":0.22637573006533565,\"rsi_avg_gain\":0.0014260032791035102,\"rsi_avg_loss\":0.0008054801758613078,\"rsi\":64},{\"period_id\":\"120m209455\",\"size\":\"120m\",\"time\":1508076000000,\"open\":0.21396,\"high\":0.221,\"low\":0.21354,\"close\":0.22045,\"volume\":1708637.0210549808,\"close_time\":1508083195777,\"vwap\":0.21970233976384576,\"rsi_avg_gain\":0.0011087727621114727,\"rsi_avg_loss\":0.0008674401893891007,\"rsi\":56},{\"period_id\":\"120m209454\",\"size\":\"120m\",\"time\":1508068800000,\"open\":0.21396,\"high\":0.21672,\"low\":0.21275,\"close\":0.21392,\"volume\":435710.61404684,\"close_time\":1508075872850,\"vwap\":0.21401715135089888,\"rsi_avg_gain\":0.000691755282273893,\"rsi_avg_loss\":0.0009341663578036469,\"rsi\":43},{\"period_id\":\"120m209453\",\"size\":\"120m\",\"time\":1508061600000,\"open\":0.214,\"high\":0.2142,\"low\":0.21012,\"close\":0.2142,\"volume\":850332.3362540897,\"close_time\":1508068743727,\"vwap\":0.21375396591384893,\"rsi_avg_gain\":0.0007449672270641925,\"rsi_avg_loss\":0.0009844868468654657,\"rsi\":43},{\"period_id\":\"120m209452\",\"size\":\"120m\",\"time\":1508054400000,\"open\":0.21693,\"high\":0.2188,\"low\":0.214,\"close\":0.214,\"volume\":607334.2370174906,\"close_time\":1508061599703,\"vwap\":0.2140619138545133,\"rsi_avg_gain\":0.0007868877829922069,\"rsi_avg_loss\":0.0010602166043166554,\"rsi\":43},{\"period_id\":\"120m209451\",\"size\":\"120m\",\"time\":1508047200000,\"open\":0.21579,\"high\":0.21797,\"low\":0.21503,\"close\":0.21696,\"volume\":394691.07658418996,\"close_time\":1508054359089,\"vwap\":0.21655392117100283,\"rsi_avg_gain\":0.0008474176124531459,\"rsi_avg_loss\":0.0009140794200333221,\"rsi\":48},{\"period_id\":\"120m209450\",\"size\":\"120m\",\"time\":1508040000000,\"open\":0.21822,\"high\":0.21883,\"low\":0.21504,\"close\":0.2158,\"volume\":171068.74766762997,\"close_time\":1508047123237,\"vwap\":0.21579065680663465,\"rsi_avg_gain\":0.0008233728134110806,\"rsi_avg_loss\":0.0009843932215743468,\"rsi\":46},{\"period_id\":\"120m209449\",\"size\":\"120m\",\"time\":1508032800000,\"open\":0.21515,\"high\":0.21987,\"low\":0.215,\"close\":0.21798,\"volume\":220571.05850644,\"close_time\":1508039650535,\"vwap\":0.21733520505484658,\"rsi_avg_gain\":0.0008867091836734714,\"rsi_avg_loss\":0.000892423469387757,\"rsi\":50},{\"period_id\":\"120m209448\",\"size\":\"120m\",\"time\":1508025600000,\"open\":0.21536,\"high\":0.22149,\"low\":0.21386,\"close\":0.21546,\"volume\":707964.3870707101,\"close_time\":1508032798119,\"vwap\":0.21595340383719086,\"rsi_avg_gain\":0.000761071428571431,\"rsi_avg_loss\":0.0009610714285714307,\"rsi\":44},{\"period_id\":\"120m209447\",\"size\":\"120m\",\"time\":1508018400000,\"open\":0.21973,\"high\":0.2205,\"low\":0.2154,\"close\":0.2154,\"volume\":838005.9117413496,\"close_time\":1508025538461,\"vwap\":0.21586374188899418,\"rsi_avg_gain\":0.0008150000000000022,\"rsi_avg_loss\":0.0010350000000000023,\"rsi\":44},{\"period_id\":\"120m209446\",\"size\":\"120m\",\"time\":1508011200000,\"open\":0.21822,\"high\":0.22,\"low\":0.21704,\"close\":0.21983,\"volume\":575111.9319556504,\"close_time\":1508018298035,\"vwap\":0.21963067811631234},{\"period_id\":\"120m209445\",\"size\":\"120m\",\"time\":1508004000000,\"open\":0.2155,\"high\":0.22,\"low\":0.21526,\"close\":0.21822,\"volume\":489996.45826562005,\"close_time\":1508010985727,\"vwap\":0.21863424381924207},{\"period_id\":\"120m209444\",\"size\":\"120m\",\"time\":1507996800000,\"open\":0.216,\"high\":0.21743,\"low\":0.212,\"close\":0.2155,\"volume\":1021218.8540847708,\"close_time\":1508003893718,\"vwap\":0.21580190468136892},{\"period_id\":\"120m209443\",\"size\":\"120m\",\"time\":1507989600000,\"open\":0.21681,\"high\":0.21797,\"low\":0.215,\"close\":0.21592,\"volume\":713933.1875201706,\"close_time\":1507996716287,\"vwap\":0.2162513326497886},{\"period_id\":\"120m209442\",\"size\":\"120m\",\"time\":1507982400000,\"open\":0.21846,\"high\":0.21995,\"low\":0.2161,\"close\":0.217,\"volume\":510351.39443468006,\"close_time\":1507989592659},{\"period_id\":\"120m209441\",\"size\":\"120m\",\"time\":1507975200000,\"open\":0.2218,\"high\":0.2228,\"low\":0.2158,\"close\":0.21846,\"volume\":713020.0319770401,\"close_time\":1507982378829},{\"period_id\":\"120m209440\",\"size\":\"120m\",\"time\":1507968000000,\"open\":0.2176,\"high\":0.22378,\"low\":0.21651,\"close\":0.22192,\"volume\":1198865.3822558406,\"close_time\":1507975185432},{\"period_id\":\"120m209439\",\"size\":\"120m\",\"time\":1507960800000,\"open\":0.218,\"high\":0.21895,\"low\":0.215,\"close\":0.2175,\"volume\":647635.7473931103,\"close_time\":1507967986898},{\"period_id\":\"120m209438\",\"size\":\"120m\",\"time\":1507953600000,\"open\":0.21942,\"high\":0.22366,\"low\":0.21801,\"close\":0.21801,\"volume\":153208.56479699002,\"close_time\":1507960794466},{\"period_id\":\"120m209437\",\"size\":\"120m\",\"time\":1507946400000,\"open\":0.22138,\"high\":0.2238,\"low\":0.21948,\"close\":0.2205,\"volume\":371646.62039033975,\"close_time\":1507953503013},{\"period_id\":\"120m209436\",\"size\":\"120m\",\"time\":1507939200000,\"open\":0.2183,\"high\":0.22139,\"low\":0.21761,\"close\":0.22123,\"volume\":335889.88883946976,\"close_time\":1507946329960},{\"period_id\":\"120m209435\",\"size\":\"120m\",\"time\":1507932000000,\"open\":0.21462,\"high\":0.219,\"low\":0.2146,\"close\":0.21761,\"volume\":342086.37947635003,\"close_time\":1507939166270},{\"period_id\":\"120m209434\",\"size\":\"120m\",\"time\":1507924800000,\"open\":0.217,\"high\":0.21762,\"low\":0.211,\"close\":0.21549,\"volume\":806460.19144003,\"close_time\":1507931994857}];\nvar trades = [{\"time\":1508812297524,\"execution_time\":1913925,\"slippage\":0.0004500000000000549,\"type\":\"buy\",\"size\":\"4100.59171598\",\"fee\":6.336,\"price\":\"0.16907605\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1508819123657,\"execution_time\":1636215,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3914.12736000\",\"fee\":1.070423338335437,\"price\":\"0.17092305\",\"order_type\":\"maker\"},{\"time\":1508826388445,\"execution_time\":1622389,\"slippage\":0.00045000000000007046,\"type\":\"buy\",\"size\":\"3996.64147439\",\"fee\":6.4318044192479995,\"price\":\"0.17307785\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1508907387060,\"execution_time\":10628723,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4012.45277163\",\"fee\":1.1101471360699495,\"price\":\"0.17292215\",\"order_type\":\"maker\"},{\"time\":1508917378973,\"execution_time\":6253667,\"slippage\":0.00045000000000007046,\"type\":\"buy\",\"size\":\"3979.35946557\",\"fee\":6.294209714672,\"price\":\"0.17307785\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1508925672104,\"execution_time\":78297,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3928.43552106\",\"fee\":1.0994669630211462,\"price\":\"0.17492125\",\"order_type\":\"maker\"},{\"time\":1509036685937,\"execution_time\":39129087,\"slippage\":0.0004499999999999014,\"type\":\"buy\",\"size\":\"4032.42382188\",\"fee\":6.451878115007999,\"price\":\"0.17207740\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509085015846,\"execution_time\":1066342,\"slippage\":0.00045020259116602474,\"type\":\"sell\",\"size\":\"4024.99657953\",\"fee\":1.1200547961696683,\"price\":\"0.17392170\",\"order_type\":\"maker\"},{\"time\":1509223193040,\"execution_time\":31329070,\"slippage\":0.00045020259116602474,\"type\":\"sell\",\"size\":\"40.24996580\",\"fee\":0.011200547963004577,\"price\":\"0.17392170\",\"order_type\":\"maker\"},{\"time\":1509308060275,\"execution_time\":1021103,\"slippage\":0.00045000000000006276,\"type\":\"buy\",\"size\":\"4125.56188220\",\"fee\":6.524588040288,\"price\":\"0.17107695\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509567002437,\"execution_time\":101484524,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4031.03200743\",\"fee\":1.1281810520474638,\"price\":\"0.17492125\",\"order_type\":\"maker\"},{\"time\":1509671719179,\"execution_time\":4548785,\"slippage\":0.00045000000000006276,\"type\":\"buy\",\"size\":\"4162.35883771\",\"fee\":6.223067639328001,\"price\":\"0.17107695\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509877509431,\"execution_time\":1557794,\"slippage\":0.00045020259116602474,\"type\":\"sell\",\"size\":\"3884.67258494\",\"fee\":1.0810061758658547,\"price\":\"0.17392170\",\"order_type\":\"maker\"},{\"time\":1509968600389,\"execution_time\":6216095,\"slippage\":0.0004499999999999014,\"type\":\"buy\",\"size\":\"4190.87202493\",\"fee\":6.479370681232001,\"price\":\"0.17207740\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509998539571,\"execution_time\":168172,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4041.54275789\",\"fee\":1.1311227378217061,\"price\":\"0.17492125\",\"order_type\":\"maker\"},{\"time\":1510040563611,\"execution_time\":6256369,\"slippage\":0.00045000000000007046,\"type\":\"buy\",\"size\":\"4218.00601671\",\"fee\":6.710023364512,\"price\":\"0.17307785\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510136820027,\"execution_time\":44868297,\"slippage\":0.00044999999999991087,\"type\":\"buy\",\"size\":\"63.94113586\",\"fee\":0.09889562347200001,\"price\":\"0.17407830\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510307860202,\"execution_time\":7149662,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4246.69322160\",\"fee\":1.2632471855919232,\"price\":\"0.18591630\",\"order_type\":\"maker\"},{\"time\":1510396697862,\"execution_time\":2305443,\"slippage\":0.00045000000000009247,\"type\":\"buy\",\"size\":\"4362.33071307\",\"fee\":7.018941102368001,\"price\":\"0.17908055\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510402414041,\"execution_time\":826909,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4378.48798762\",\"fee\":1.2114200905094776,\"price\":\"0.17292215\",\"order_type\":\"maker\"},{\"time\":1510426267770,\"execution_time\":3077674,\"slippage\":0.00044999999999992924,\"type\":\"buy\",\"size\":\"4221.81264647\",\"fee\":6.831660464287999,\"price\":\"0.17808010\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510434646495,\"execution_time\":4264053,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4264.11144830\",\"fee\":1.2138724519526258,\"price\":\"0.17791990\",\"order_type\":\"maker\"},{\"time\":1510567799380,\"execution_time\":614145,\"slippage\":0.0004499999999999014,\"type\":\"buy\",\"size\":\"4352.34827155\",\"fee\":6.923504302496,\"price\":\"0.17207740\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510597666573,\"execution_time\":1725458,\"slippage\":0.00045020259116602474,\"type\":\"sell\",\"size\":\"4319.70513239\",\"fee\":1.2020647361983903,\"price\":\"0.17392170\",\"order_type\":\"maker\"},{\"time\":1510627469334,\"execution_time\":9871508,\"slippage\":0.0004499999999999014,\"type\":\"buy\",\"size\":\"4383.87147368\",\"fee\":6.8939510260480015,\"price\":\"0.17207740\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510839233076,\"execution_time\":5664999,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4302.00423718\",\"fee\":1.224659461885827,\"price\":\"0.17791990\",\"order_type\":\"maker\"},{\"time\":1510840937071,\"execution_time\":140659,\"slippage\":0.00044999999999994534,\"type\":\"buy\",\"size\":\"3562.16800355\",\"fee\":5.72573363888,\"price\":\"0.21809810\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510975080116,\"execution_time\":4782283,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3580.14925512\",\"fee\":1.093601270239108,\"price\":\"0.19091405\",\"order_type\":\"maker\"},{\"time\":1511042739859,\"execution_time\":43580032,\"slippage\":0.00044999999999998356,\"type\":\"buy\",\"size\":\"3557.37330267\",\"fee\":5.603779800496,\"price\":\"0.19108595\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511079098082,\"execution_time\":735225,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3497.59250211\",\"fee\":1.0739769094607001,\"price\":\"0.19191360\",\"order_type\":\"maker\"},{\"time\":1511085850686,\"execution_time\":255022,\"slippage\":0.00044999999999998747,\"type\":\"buy\",\"size\":\"3543.53415147\",\"fee\":5.6696546423520005,\"price\":\"0.19208640\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511369757161,\"execution_time\":39533570,\"slippage\":0.0004500000000000135,\"type\":\"buy\",\"size\":\"32.66575797\",\"fee\":0.05148899672,\"price\":\"0.19908955\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511491599605,\"execution_time\":2806166,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3569.26961949\",\"fee\":1.1644853494798255,\"price\":\"0.20390820\",\"order_type\":\"maker\"},{\"time\":1511512179066,\"execution_time\":1779671,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"35.69269620\",\"fee\":0.011587770881283408,\"price\":\"0.20290865\",\"order_type\":\"maker\"},{\"time\":1511598864424,\"execution_time\":30868630,\"slippage\":0.0004500000000000206,\"type\":\"buy\",\"size\":\"3615.36646365\",\"fee\":5.755949775792001,\"price\":\"0.20109045\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511623783181,\"execution_time\":12602800,\"slippage\":0.0004500000000000276,\"type\":\"buy\",\"size\":\"51.75489354\",\"fee\":0.081207678368,\"price\":\"0.20309135\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511725112176,\"execution_time\":5941921,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3606.31931583\",\"fee\":1.1823404428612236,\"price\":\"0.20490775\",\"order_type\":\"maker\"},{\"time\":1511775993705,\"execution_time\":13697285,\"slippage\":0.0004500000000000276,\"type\":\"buy\",\"size\":\"3599.52755341\",\"fee\":5.759244085456,\"price\":\"0.20309135\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511778666840,\"execution_time\":1958519,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3593.89381939\",\"fee\":1.184014356539652,\"price\":\"0.20590730\",\"order_type\":\"maker\"},{\"time\":1511785762870,\"execution_time\":1779904,\"slippage\":0.0004500000000000276,\"type\":\"buy\",\"size\":\"3637.52818305\",\"fee\":5.82004509288,\"price\":\"0.20309135\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511985716807,\"execution_time\":117843,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3631.32999477\",\"fee\":1.1615026868071525,\"price\":\"0.19991000\",\"order_type\":\"maker\"},{\"time\":1512138371222,\"execution_time\":1572711,\"slippage\":0.0004499999999999077,\"type\":\"buy\",\"size\":\"3483.58229181\",\"fee\":5.600657906832,\"price\":\"0.20809360\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512338626571,\"execution_time\":229790,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3496.17572847\",\"fee\":1.1406382394816101,\"price\":\"0.20390820\",\"order_type\":\"maker\"},{\"time\":1512388708776,\"execution_time\":14362203,\"slippage\":0.00044999999999989975,\"type\":\"buy\",\"size\":\"3437.36291654\",\"fee\":5.526608864831999,\"price\":\"0.20609270\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512392949458,\"execution_time\":4152260,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3449.07964963\",\"fee\":1.147337173228535,\"price\":\"0.20790640\",\"order_type\":\"maker\"},{\"time\":1512420180443,\"execution_time\":2582781,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"34.49079650\",\"fee\":0.011528532174542682,\"price\":\"0.20890595\",\"order_type\":\"maker\"},{\"time\":1512699360458,\"execution_time\":995610,\"slippage\":0.0004500000000000276,\"type\":\"buy\",\"size\":\"3543.08010156\",\"fee\":5.7828764672799995,\"price\":\"0.20309135\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512713336701,\"execution_time\":545912,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3572.77467439\",\"fee\":1.1027763466828786,\"price\":\"0.19291315\",\"order_type\":\"maker\"},{\"time\":1512736814119,\"execution_time\":2425231,\"slippage\":0.00044999999999999126,\"type\":\"buy\",\"size\":\"3491.21287478\",\"fee\":5.5004415088480005,\"price\":\"0.19308685\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512846893075,\"execution_time\":4494715,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3433.68049324\",\"fee\":1.081809058228087,\"price\":\"0.19691135\",\"order_type\":\"maker\"},{\"time\":1512860832333,\"execution_time\":4039225,\"slippage\":0.0004500000000000135,\"type\":\"buy\",\"size\":\"3441.96489482\",\"fee\":5.53495768944,\"price\":\"0.19908955\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512871396285,\"execution_time\":208624,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3453.61226716\",\"fee\":1.0825654332182344,\"price\":\"0.19591180\",\"order_type\":\"maker\"},{\"time\":1512916168500,\"execution_time\":1775353,\"slippage\":0.0004500000000000062,\"type\":\"buy\",\"size\":\"3410.57710801\",\"fee\":5.429363153759999,\"price\":\"0.19708865\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512921739597,\"execution_time\":149154,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3388.57950455\",\"fee\":1.0513417614271245,\"price\":\"0.19391270\",\"order_type\":\"maker\"},{\"time\":1512988276878,\"execution_time\":16372084,\"slippage\":0.00044999999999999885,\"type\":\"buy\",\"size\":\"3380.80681767\",\"fee\":5.274058635567999,\"price\":\"0.19508775\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"price\":0.3935,\"size\":\"3325.24066439\",\"type\":\"sell\",\"time\":1513173600000}];\n\nwithData(data, trades)\n  </script>\n  <pre><code>{\n  \"asset_capital\": 0,\n  \"avg_slippage_pct\": 0.045,\n  \"buy_pct\": 99,\n  \"buy_stop_pct\": 0,\n  \"currency_capital\": 700,\n  \"days\": 60,\n  \"emalen1\": 30,\n  \"filename\": \"simulations/vwapmax100.html\",\n  \"markdown_buy_pct\": 0.5,\n  \"markup_sell_pct\": 0.5,\n  \"max_sell_loss_pct\": 25,\n  \"max_slippage_pct\": \"100\",\n  \"min_periods\": 1,\n  \"mode\": \"sim\",\n  \"order_adjust_time\": 5000,\n  \"order_type\": \"maker\",\n  \"period\": \"120m\",\n  \"profit_stop_enable_pct\": 0,\n  \"profit_stop_pct\": 1,\n  \"rsi_periods\": 14,\n  \"selector\": \"kraken.XXRP-ZEUR\",\n  \"sell_pct\": 99,\n  \"sell_stop_pct\": 0,\n  \"show_options\": true,\n  \"smalen1\": 108,\n  \"smalen2\": 60,\n  \"start\": 1507939200000,\n  \"stats\": false,\n  \"strategy\": \"crossover_vwap\",\n  \"verbose\": false,\n  \"vwap_length\": 10,\n  \"vwap_max\": 100\n}\nend balance: 1331.33355047 (90.19%)\nbuy hold: 1261.79569400 (80.26%)\nvs. buy hold: 5.51%\n56 trades over 62 days (avg 0.90 trades/day)\nwin/loss: 19/9\nerror rate: 32.14%</pre></code>\n</body>\n</html>"
  },
  {
    "path": "extensions/strategies/crossover_vwap/example_sims/vwapmax1000.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>kraken.XXRP-ZEUR - zenbot 4.0.5 sim result</title>\n  <link href=\"main.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n  <div class=\"ticker-graph\"></div>\n  <script src=\"https://code.jquery.com/jquery-3.0.0.slim.min.js\"></script>\n  <script src=\"https://d3js.org/d3.v4.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/techan.js/0.8.0/techan.min.js\"></script>\n  <script>\n    var withData = function (data, trades) {\n      var dim = {\n          width: 1280, height: 520,\n          margin: { top: 20, right: 50, bottom: 20, left: 50 },\n          ohlc: { height: 450 }\n      };\n      dim.plot = {\n          width: dim.width - dim.margin.left - dim.margin.right,\n          height: dim.height - dim.margin.top - dim.margin.bottom\n      };\n\n      var yInit, yPercentInit, zoomableInit;\n\n      var x = techan.scale.financetime()\n              .range([0, dim.plot.width]);\n\n      var y = d3.scaleLinear()\n              .range([dim.ohlc.height, 0]);\n\n      var zoom = d3.zoom()\n              .on(\"zoom\", zoomed);\n\n      var yPercent = y.copy();   // Same as y at this stage, will get a different domain later\n\n      var yVolume = d3.scaleLinear()\n              .range([y(0), y(1)]);\n\n      var candlestick = techan.plot.candlestick()\n              .xScale(x)\n              .yScale(y);\n\n      var tradearrow = techan.plot.tradearrow()\n              .xScale(x)\n              .yScale(y)\n              .y(function(d) {\n                  // Display the buy and sell arrows a bit above and below the price, so the price is still visible\n                  if(d.type === 'buy') return y(d.price);\n                  if(d.type === 'sell') return y(d.price);\n                  else \n                    return y(d.price);\n              });\n\n      var ema2 = techan.plot.ema()\n        .xScale(x)\n        .yScale(y);\n\n      var sma0 = techan.plot.sma()\n              .xScale(x)\n              .yScale(y);\n    \n      var sma1 = techan.plot.sma()\n              .xScale(x)\n              .yScale(y);\n    \n      var adx1 = techan.plot.adx()\n              .xScale(x)\n              .yScale(y);\n  \n      var volume = techan.plot.volume()\n              .accessor(candlestick.accessor())   // Set the accessor to a ohlc accessor so we get highlighted bars\n              .xScale(x)\n              .yScale(yVolume);\n\n      var xAxis = d3.axisBottom(x);\n\n      var timeAnnotation = techan.plot.axisannotation()\n              .axis(xAxis)\n              .orient('bottom')\n              .format(d3.timeFormat('%c'))\n              .width(140)\n              .translate([0, dim.plot.height]);\n\n      var yAxis = d3.axisRight(y);\n\n      var ohlcAnnotation = techan.plot.axisannotation()\n              .axis(yAxis)\n              .orient('right')\n              .format(d3.format(',.8f'))\n              .translate([x(1), 0]);\n\n      var percentAxis = d3.axisLeft(yPercent)\n              .tickFormat(d3.format('+.1%'));\n\n      var percentAnnotation = techan.plot.axisannotation()\n              .axis(percentAxis)\n              .orient('left');\n\n      var volumeAxis = d3.axisRight(yVolume)\n              .ticks(3)\n              .tickFormat(d3.format(\",.3s\"));\n\n      var volumeAnnotation = techan.plot.axisannotation()\n              .axis(volumeAxis)\n              .orient(\"right\")\n              .width(35);\n\n      var ohlcCrosshair = techan.plot.crosshair()\n              .xScale(timeAnnotation.axis().scale())\n              .yScale(ohlcAnnotation.axis().scale())\n              .xAnnotation(timeAnnotation)\n              .yAnnotation([ohlcAnnotation, percentAnnotation, volumeAnnotation])\n              .verticalWireRange([0, dim.plot.height]);\n\n      var svg = d3.select(\"body\").append(\"svg\")\n              .attr(\"viewBox\", \"0 0 \" + dim.width + \" \" + dim.height)\n              .attr(\"width\", dim.width)\n              .attr(\"height\", dim.height);\n\n      var defs = svg.append(\"defs\");\n\n      defs.append(\"clipPath\")\n              .attr(\"id\", \"ohlcClip\")\n          .append(\"rect\")\n              .attr(\"x\", 0)\n              .attr(\"y\", 0)\n              .attr(\"width\", dim.plot.width)\n              .attr(\"height\", dim.ohlc.height);\n\n      svg = svg.append(\"g\")\n              .attr(\"transform\", \"translate(\" + dim.margin.left + \",\" + dim.margin.top + \")\");\n\n      svg.append('text')\n              .attr(\"class\", \"symbol\")\n              .attr(\"x\", 50)\n              .text(\"kraken.XXRP-ZEUR - zenbot 4.0.5\");\n\n      svg.append(\"g\")\n              .attr(\"class\", \"x axis\")\n              .attr(\"transform\", \"translate(0,\" + (dim.plot.height - 30) + \")\");\n\n      var ohlcSelection = svg.append(\"g\")\n              .attr(\"class\", \"ohlc\")\n              .attr(\"transform\", \"translate(0,0)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"axis\")\n              .attr(\"transform\", \"translate(\" + x(1) + \",0)\")\n          .append(\"text\")\n              .attr(\"transform\", \"rotate(-90)\")\n              .attr(\"y\", -12)\n              .attr(\"dy\", \".71em\")\n              .style(\"text-anchor\", \"end\")\n              .text(\"Price\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"close annotation up\")\n              .attr(\"font-weight\", \"900\")\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"volume\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"candlestick\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator ema ma-2\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator sma sma-0\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator sma sma-1\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator adx adx-1\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line1\")\n                .attr(\"class\", \"indicator ema ma-2\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line2\")\n                .attr(\"class\", \"indicator sma sma-0\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line3\")\n                .attr(\"class\", \"indicator sma sma-1\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n            \n      svg.append(\"g\")\n                .attr(\"id\", \"data_line4\")\n                .attr(\"class\", \"indicator indicator4\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"percent axis\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"volume axis\");\n\n      // Add trendlines and other interactions last to be above zoom pane\n      svg.append('g')\n              .attr(\"class\", \"crosshair ohlc\");\n\n      svg.append(\"g\")\n              .attr(\"class\", \"tradearrow\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      var accessor = candlestick.accessor();\n\n      data = data.map(function (d) {\n        d.date = new Date(d.time)\n        return d\n      })\n      data.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n      trades = trades.map(function (t) {\n        t.date = new Date(t.time)\n        return t\n      })\n      trades.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n\n      //$('body').css('backgroundColor', '#1f2d35')\n      x.domain(techan.scale.plot.time(data).domain());\n      y.domain(techan.scale.plot.ohlc(data).domain());\n      yPercent.domain(techan.scale.plot.percent(y, accessor(data[0])).domain());\n      yVolume.domain(techan.scale.plot.volume(data).domain());\n\n      svg.select(\"g.candlestick\").datum(data)\n      var last = data[data.length-1]\n      if (!last) {\n        return\n      }\n  \n      var parseQueryString = function(url) {\n        var urlParams = {};\n        url.replace(\n          new RegExp(\"([^?=&]+)(=([^&]*))?\", \"g\"),\n          function($0, $1, $2, $3) {\n            urlParams[$1] = $3;\n          }\n        );\n\n        return urlParams;\n      }\n  \n      var urlToParse = location.search;  \n      var qParams = parseQueryString(urlToParse ); \n  \n      var tperiod = qParams.period;\n  \n      svg.select(\"g.volume\").datum(data)\n  \n      // svg.select(\"g.ema.ma-2\").datum(techan.indicator.ema().period(tperiod*2)(data)).call(ema2);\n      // svg.select(\"g.sma.sma-0\").datum(techan.indicator.sma().period(tperiod*2)(data)).call(sma0);\n      // svg.select(\"g.sma.sma-1\").datum(techan.indicator.sma().period(tperiod)(data)).call(sma1);\n  \n      // svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1);\n      // svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2);\n      // svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3);\n      //\n  \n        \n      var plotLine1 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.ema1); });\n\n      var plotLine2 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.sma1); });\n\n      var plotLine3 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.sma2); });\n          \n      var plotLine4 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2) && !isNaN(d.vwap); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.vwap); });\n        \n        \n      svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1);\n      svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2);\n      svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3);\n      svg.select(\"g#data_line4 path\").datum(data).attr(\"d\", plotLine4);\n      //svg.select(\"g.adx.adx-1\").datum(techan.indicator.adx().period(tperiod)(data)).call(adx1);\n  \n      svg.select(\"g.tradearrow\").datum(trades).call(tradearrow);\n  \n      // Stash for zooming\n      zoomableInit = x.zoomable().domain([0, data.length]).copy(); // Zoom in a little to hide indicator preroll\n      yInit = y.copy();\n      yPercentInit = yPercent.copy();\n\n      draw();\n\n      function draw() {\n        svg.select(\"g.x.axis\").call(xAxis);\n        svg.select(\"g.ohlc .axis\").call(yAxis);\n        svg.select(\"g.volume.axis\").call(volumeAxis);\n        svg.select(\"g.percent.axis\").call(percentAxis);\n        svg.select(\"g.candlestick\").call(candlestick);\n        svg.select(\"g.volume\").call(volume);\n        svg.select(\"g.crosshair.ohlc\").call(ohlcCrosshair).call(zoom);\n        svg.select(\"g.tradearrow\").call(tradearrow);\n        // svg.select(\"g .ema.ma-2\").call(ema2.refresh).call(zoom);\n        // svg.select(\"g .sma.sma-0\").call(sma0.refresh).call(zoom);\n        // svg.select(\"g .sma.sma-1\").call(sma1.refresh).call(zoom);\n        // svg.select(\"g .adx.adx-1\").call(adx1.refresh).call(zoom);\n    \n        svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1).call(zoom);\n        svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2).call(zoom);\n        svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3).call(zoom);\n        svg.select(\"g#data_line4 path\").datum(data).attr(\"d\", plotLine4).call(zoom);\n      }\n\n\n      function zoomed() {\n        x.zoomable().domain(d3.event.transform.rescaleX(zoomableInit).domain());\n        y.domain(d3.event.transform.rescaleY(yInit).domain());\n        yPercent.domain(d3.event.transform.rescaleY(yPercentInit).domain());\n\n        draw();\n      }\n  \n      if(!qParams.static)\n        setTimeout(function(){ window.location.reload(1); }, 10000);\n    }\n  </script>\n  <script>\nvar data = [{\"period_id\":\"120m210163\",\"size\":\"120m\",\"time\":1513173600000,\"open\":0.3875,\"high\":0.399,\"low\":0.3812,\"close\":0.3935,\"volume\":1394606.5288537226,\"close_time\":1513174686001,\"vwap\":0.38883923499805956,\"ema1\":0.27287274681999496,\"sma1\":0.2141562685185185,\"sma2\":0.22013291666666668},{\"period_id\":\"120m210162\",\"size\":\"120m\",\"time\":1513166400000,\"open\":0.38999,\"high\":0.395,\"low\":0.371,\"close\":0.3875,\"volume\":2764537.296713162,\"close_time\":1513173592543,\"vwap\":0.38562989822676286,\"ema1\":0.2645536259110291,\"sma1\":0.21242386111111108,\"sma2\":0.21690791666666667,\"rsi_avg_gain\":0.009856092175262298,\"rsi_avg_loss\":0.000811144798512558,\"rsi\":92},{\"period_id\":\"120m210161\",\"size\":\"120m\",\"time\":1513159200000,\"open\":0.37499,\"high\":0.39,\"low\":0.35,\"close\":0.38331,\"volume\":4774045.706226606,\"close_time\":1513166399125,\"vwap\":0.38893948699790015,\"ema1\":0.2560745656290311,\"sma1\":0.21074265740740744,\"sma2\":0.21373625000000002,\"rsi_avg_gain\":0.010291945419513242,\"rsi_avg_loss\":0.0008735405522442933,\"rsi\":92},{\"period_id\":\"120m210160\",\"size\":\"120m\",\"time\":1513152000000,\"open\":0.365,\"high\":0.43,\"low\":0.362,\"close\":0.37037,\"volume\":10615001.811561493,\"close_time\":1513159196158,\"vwap\":0.38516627351060295,\"ema1\":0.24729970808620566,\"sma1\":0.20869450925925928,\"sma2\":0.21075141666666672,\"rsi_avg_gain\":0.010088248913321952,\"rsi_avg_loss\":0.0009407359793400081,\"rsi\":91},{\"period_id\":\"120m210159\",\"size\":\"120m\",\"time\":1513144800000,\"open\":0.31155,\"high\":0.3799,\"low\":0.30039,\"close\":0.36201,\"volume\":7383654.496617741,\"close_time\":1513151997966,\"vwap\":0.36228269682694625,\"ema1\":0.23881210174732329,\"sma1\":0.20709302777777777,\"sma2\":0.2079064166666667,\"rsi_avg_gain\":0.010221191137423641,\"rsi_avg_loss\":0.0010131002854430857,\"rsi\":91},{\"period_id\":\"120m210158\",\"size\":\"120m\",\"time\":1513137600000,\"open\":0.28467,\"high\":0.319,\"low\":0.28201,\"close\":0.3084,\"volume\":1939410.0138247905,\"close_time\":1513144797985,\"vwap\":0.31105210418852697,\"ema1\":0.2303156949712766,\"sma1\":0.2060463611111111,\"sma2\":0.2061830833333334,\"rsi_avg_gain\":0.006883590455686998,\"rsi_avg_loss\":0.0010910310766310155,\"rsi\":86},{\"period_id\":\"120m210157\",\"size\":\"120m\",\"time\":1513130400000,\"open\":0.2981,\"high\":0.3,\"low\":0.27671,\"close\":0.28923,\"volume\":1470804.7478552302,\"close_time\":1513137551841,\"vwap\":0.29047222159666086,\"ema1\":0.22493057048653706,\"sma1\":0.20516673148148146,\"sma2\":0.20477208333333338,\"rsi_avg_gain\":0.005938482029201381,\"rsi_avg_loss\":0.0011749565440641705,\"rsi\":83},{\"period_id\":\"120m210156\",\"size\":\"120m\",\"time\":1513123200000,\"open\":0.27601,\"high\":0.29897,\"low\":0.27,\"close\":0.298,\"volume\":3115674.8552143956,\"close_time\":1513130393652,\"vwap\":0.2981958566304446,\"ema1\":0.22049612707181548,\"sma1\":0.20430552777777777,\"sma2\":0.20283875000000007,\"rsi_avg_gain\":0.006395288339139949,\"rsi_avg_loss\":0.0005907224320691066,\"rsi\":92},{\"period_id\":\"120m210155\",\"size\":\"120m\",\"time\":1513116000000,\"open\":0.272,\"high\":0.32956,\"low\":0.272,\"close\":0.27601,\"volume\":15006128.73051956,\"close_time\":1513123194998,\"vwap\":0.2857995660259099,\"ema1\":0.2151510323871131,\"sma1\":0.2032051574074074,\"sma2\":0.20133858333333338,\"rsi_avg_gain\":0.005195695134458405,\"rsi_avg_loss\":0.0006361626191513457,\"rsi\":89},{\"period_id\":\"120m210154\",\"size\":\"120m\",\"time\":1513108800000,\"open\":0.22885,\"high\":0.271965,\"low\":0.2287,\"close\":0.271965,\"volume\":13060193.335544836,\"close_time\":1513115999358,\"vwap\":0.2646613996706924,\"ema1\":0.210953862206914,\"sma1\":0.20263140740740743,\"sma2\":0.19982250000000004,\"rsi_avg_gain\":0.005284210144801362,\"rsi_avg_loss\":0.0006850982052399108,\"rsi\":89},{\"period_id\":\"120m210153\",\"size\":\"120m\",\"time\":1513101600000,\"open\":0.226,\"high\":0.22885,\"low\":0.222,\"close\":0.22885,\"volume\":2796097.9907069877,\"close_time\":1513108799425,\"vwap\":0.2268601607059023,\"ema1\":0.20674619753152876,\"sma1\":0.20245687037037038,\"sma2\":0.19904166666666667,\"rsi_avg_gain\":0.0023741493867091576,\"rsi_avg_loss\":0.0007377980671814424,\"rsi\":76},{\"period_id\":\"120m210152\",\"size\":\"120m\",\"time\":1513094400000,\"open\":0.21948,\"high\":0.228,\"low\":0.2161,\"close\":0.22503,\"volume\":6439607.943355674,\"close_time\":1513101587721,\"vwap\":0.2239560453263387,\"ema1\":0.20522179736128937,\"sma1\":0.2023068703703704,\"sma2\":0.19840783333333334,\"rsi_avg_gain\":0.002262930108763709,\"rsi_avg_loss\":0.0007945517646569379,\"rsi\":74},{\"period_id\":\"120m210151\",\"size\":\"120m\",\"time\":1513087200000,\"open\":0.2171,\"high\":0.2199,\"low\":0.21,\"close\":0.21989,\"volume\":2382252.81933436,\"close_time\":1513094394487,\"vwap\":0.21719334212958566,\"ema1\":0.20385571442068864,\"sma1\":0.20224298148148154,\"sma2\":0.19788466666666665,\"rsi_avg_gain\":0.002041617040207071,\"rsi_avg_loss\":0.0008556711311690101,\"rsi\":70},{\"period_id\":\"120m210150\",\"size\":\"120m\",\"time\":1513080000000,\"open\":0.2199,\"high\":0.22,\"low\":0.21203,\"close\":0.2171,\"volume\":2916612.944391042,\"close_time\":1513087188989,\"vwap\":0.21701580182295685,\"ema1\":0.20274990162211545,\"sma1\":0.20214483333333336,\"sma2\":0.19739133333333334,\"rsi_avg_gain\":0.0019840491202229985,\"rsi_avg_loss\":0.0009214919874127801,\"rsi\":68},{\"period_id\":\"120m210149\",\"size\":\"120m\",\"time\":1513072800000,\"open\":0.21318,\"high\":0.2199,\"low\":0.21048,\"close\":0.2199,\"volume\":2803692.7908667373,\"close_time\":1513079996977,\"vwap\":0.21813759791091314,\"ema1\":0.20176023966501996,\"sma1\":0.20203464814814817,\"sma2\":0.19681183333333332,\"rsi_avg_gain\":0.0021366682833170755,\"rsi_avg_loss\":0.0007769913710599151,\"rsi\":73},{\"period_id\":\"120m210148\",\"size\":\"120m\",\"time\":1513065600000,\"open\":0.20682,\"high\":0.2147,\"low\":0.20681,\"close\":0.2139,\"volume\":2409213.2365118363,\"close_time\":1513072781584,\"vwap\":0.21275633250929762,\"ema1\":0.2005092217108834,\"sma1\":0.20197261111111112,\"sma2\":0.19634699999999997,\"rsi_avg_gain\":0.0018394889204953115,\"rsi_avg_loss\":0.000836759938064524,\"rsi\":69},{\"period_id\":\"120m210147\",\"size\":\"120m\",\"time\":1513058400000,\"open\":0.209,\"high\":0.2099,\"low\":0.205,\"close\":0.20682,\"volume\":761639.33327307,\"close_time\":1513065594627,\"vwap\":0.20731915888015204,\"ema1\":0.19958571975990982,\"sma1\":0.201949,\"sma2\":0.1961045,\"rsi_avg_gain\":0.0014363726836103352,\"rsi_avg_loss\":0.0009011260871464106,\"rsi\":61},{\"period_id\":\"120m210146\",\"size\":\"120m\",\"time\":1513051200000,\"open\":0.2013,\"high\":0.21124,\"low\":0.19611,\"close\":0.20898,\"volume\":2402623.3937815027,\"close_time\":1513058363795,\"vwap\":0.21011611583865947,\"ema1\":0.19908680388128291,\"sma1\":0.20189224074074075,\"sma2\":0.19572866666666663,\"rsi_avg_gain\":0.0015468628900418995,\"rsi_avg_loss\":0.0008042896323115195,\"rsi\":66},{\"period_id\":\"120m210145\",\"size\":\"120m\",\"time\":1513044000000,\"open\":0.20056,\"high\":0.2015,\"low\":0.19804,\"close\":0.20129,\"volume\":182878.24229903996,\"close_time\":1513051003700,\"vwap\":0.19919993480116455,\"ema1\":0.19840451449378518,\"sma1\":0.20193853703703699,\"sma2\":0.19548216666666668,\"rsi_avg_gain\":0.001074313881583584,\"rsi_avg_loss\":0.0008661580655662517,\"rsi\":55},{\"period_id\":\"120m210144\",\"size\":\"120m\",\"time\":1513036800000,\"open\":0.2018,\"high\":0.203,\"low\":0.1961,\"close\":0.19999,\"volume\":1030371.8747069496,\"close_time\":1513043937932,\"vwap\":0.1992272831042329,\"ema1\":0.19820551549335658,\"sma1\":0.2019912222222222,\"sma2\":0.19529933333333332,\"rsi_avg_gain\":0.0010569534109361677,\"rsi_avg_loss\":0.0009327856090713479,\"rsi\":53},{\"period_id\":\"120m210143\",\"size\":\"120m\",\"time\":1513029600000,\"open\":0.20101,\"high\":0.202,\"low\":0.2,\"close\":0.2018,\"volume\":1521322.558584841,\"close_time\":1513036796088,\"vwap\":0.2012958343545259,\"ema1\":0.1980824475963467,\"sma1\":0.20204677777777771,\"sma2\":0.19518599999999997,\"rsi_avg_gain\":0.0011382575194697191,\"rsi_avg_loss\":0.0008653075789999126,\"rsi\":57},{\"period_id\":\"120m210142\",\"size\":\"120m\",\"time\":1513022400000,\"open\":0.202,\"high\":0.202,\"low\":0.2,\"close\":0.20119,\"volume\":978930.4729250503,\"close_time\":1513029582354,\"vwap\":0.20138545469047767,\"ema1\":0.1978260646719568,\"sma1\":0.20209788888888885,\"sma2\":0.19512699999999997,\"rsi_avg_gain\":0.0011788927132750822,\"rsi_avg_loss\":0.0009318697004614445,\"rsi\":56},{\"period_id\":\"120m210141\",\"size\":\"120m\",\"time\":1513015200000,\"open\":0.203,\"high\":0.20773,\"low\":0.20001,\"close\":0.202,\"volume\":1492537.8041972315,\"close_time\":1513022380076,\"vwap\":0.20290136932138272,\"ema1\":0.19759406913209174,\"sma1\":0.20210038888888884,\"sma2\":0.1950686666666666,\"rsi_avg_gain\":0.0012695767681423962,\"rsi_avg_loss\":0.0009412442928046321,\"rsi\":57},{\"period_id\":\"120m210140\",\"size\":\"120m\",\"time\":1513008000000,\"open\":0.20474,\"high\":0.206,\"low\":0.2021,\"close\":0.204,\"volume\":1342877.567555539,\"close_time\":1513015199565,\"vwap\":0.20404738262285696,\"ema1\":0.19729021183085668,\"sma1\":0.20212631481481477,\"sma2\":0.19500033333333328,\"rsi_avg_gain\":0.001367236519537965,\"rsi_avg_loss\":0.0008598015460972981,\"rsi\":61},{\"period_id\":\"120m210139\",\"size\":\"120m\",\"time\":1513000800000,\"open\":0.20238,\"high\":0.2049,\"low\":0.20083,\"close\":0.20486,\"volume\":1091793.7951348608,\"close_time\":1513007991071,\"vwap\":0.2037186940974994,\"ema1\":0.19682746781919164,\"sma1\":0.20216798148148143,\"sma2\":0.1948854999999999,\"rsi_avg_gain\":0.0014724085595024237,\"rsi_avg_loss\":0.0008597862804124749,\"rsi\":63},{\"period_id\":\"120m210138\",\"size\":\"120m\",\"time\":1512993600000,\"open\":0.20099,\"high\":0.205,\"low\":0.2003984,\"close\":0.20214,\"volume\":2245705.2988893474,\"close_time\":1513000786065,\"vwap\":0.20344644639859227,\"ema1\":0.19627350008258415,\"sma1\":0.20222353703703697,\"sma2\":0.1948279999999999,\"rsi_avg_gain\":0.0013764399871564563,\"rsi_avg_loss\":0.0009259236865980498,\"rsi\":60},{\"period_id\":\"120m210137\",\"size\":\"120m\",\"time\":1512986400000,\"open\":0.20054,\"high\":0.2025,\"low\":0.1996,\"close\":0.201,\"volume\":1180345.4121488596,\"close_time\":1512993538146,\"vwap\":0.20121871791096774,\"ema1\":0.19586891388138306,\"sma1\":0.20230224074074066,\"sma2\":0.1947621666666666,\"rsi_avg_gain\":0.0013946276784761857,\"rsi_avg_loss\":0.0009971485855671306,\"rsi\":58},{\"period_id\":\"120m210136\",\"size\":\"120m\",\"time\":1512979200000,\"open\":0.19841,\"high\":0.202,\"low\":0.19696,\"close\":0.2012,\"volume\":1455140.9476323111,\"close_time\":1512986398978,\"vwap\":0.20076036315882387,\"ema1\":0.19551504587320256,\"sma1\":0.20237622222222212,\"sma2\":0.1947051666666666,\"rsi_avg_gain\":0.0015019067306666614,\"rsi_avg_loss\":0.0010584677075338347,\"rsi\":59},{\"period_id\":\"120m210135\",\"size\":\"120m\",\"time\":1512972000000,\"open\":0.1955,\"high\":0.199,\"low\":0.19447,\"close\":0.19841,\"volume\":600052.8410154001,\"close_time\":1512978995397,\"vwap\":0.19645310681101538,\"ema1\":0.19512298007135448,\"sma1\":0.20247418518518506,\"sma2\":0.1947016666666666,\"rsi_avg_gain\":0.0014028226330256362,\"rsi_avg_loss\":0.0011398883004210528,\"rsi\":55},{\"period_id\":\"120m210134\",\"size\":\"120m\",\"time\":1512964800000,\"open\":0.19194,\"high\":0.19676,\"low\":0.19102,\"close\":0.19601,\"volume\":539611.00519656,\"close_time\":1512971904794,\"vwap\":0.19545135403979702,\"ema1\":0.1948962890417927,\"sma1\":0.2025927037037036,\"sma2\":0.1948064999999999,\"rsi_avg_gain\":0.001326116681719915,\"rsi_avg_loss\":0.0012275720158380567,\"rsi\":52},{\"period_id\":\"120m210133\",\"size\":\"120m\",\"time\":1512957600000,\"open\":0.1897,\"high\":0.19214,\"low\":0.1895,\"close\":0.19205,\"volume\":441306.56720423984,\"close_time\":1512964362686,\"vwap\":0.19101647125725327,\"ema1\":0.19481948138950256,\"sma1\":0.20278214814814804,\"sma2\":0.19496699999999995,\"rsi_avg_gain\":0.0011235102726214474,\"rsi_avg_loss\":0.0013220006324409842,\"rsi\":46},{\"period_id\":\"120m210132\",\"size\":\"120m\",\"time\":1512950400000,\"open\":0.18952,\"high\":0.19378,\"low\":0.18952,\"close\":0.18971,\"volume\":431192.4742363398,\"close_time\":1512957565944,\"vwap\":0.19102460152685383,\"ema1\":0.19501048010601998,\"sma1\":0.2029786296296295,\"sma2\":0.19519916666666662,\"rsi_avg_gain\":0.0010299341397461733,\"rsi_avg_loss\":0.0014236929887825984,\"rsi\":42},{\"period_id\":\"120m210131\",\"size\":\"120m\",\"time\":1512943200000,\"open\":0.19185,\"high\":0.19429,\"low\":0.18951,\"close\":0.18952,\"volume\":784356.8331573796,\"close_time\":1512950356364,\"vwap\":0.19110570363941706,\"ema1\":0.1953760304581593,\"sma1\":0.20314594444444437,\"sma2\":0.1954546666666666,\"rsi_avg_gain\":0.001094544458188187,\"rsi_avg_loss\":0.0015332078340735676,\"rsi\":42},{\"period_id\":\"120m210130\",\"size\":\"120m\",\"time\":1512936000000,\"open\":0.1948,\"high\":0.1949,\"low\":0.19,\"close\":0.19004,\"volume\":1233056.1801976203,\"close_time\":1512943196487,\"vwap\":0.191970664263652,\"ema1\":0.19577989462768752,\"sma1\":0.20328575925925915,\"sma2\":0.19568766666666662,\"rsi_avg_gain\":0.0011787401857411247,\"rsi_avg_loss\":0.0016111468982330734,\"rsi\":42},{\"period_id\":\"120m210129\",\"size\":\"120m\",\"time\":1512928800000,\"open\":0.1935,\"high\":0.19676,\"low\":0.19301,\"close\":0.19439,\"volume\":387426.0634739798,\"close_time\":1512935995196,\"vwap\":0.19434694274080946,\"ema1\":0.196175749429597,\"sma1\":0.20342687037037027,\"sma2\":0.19583466666666666,\"rsi_avg_gain\":0.0012694125077212111,\"rsi_avg_loss\":0.0014004658904048465,\"rsi\":48},{\"period_id\":\"120m210128\",\"size\":\"120m\",\"time\":1512921600000,\"open\":0.1925,\"high\":0.19867,\"low\":0.192,\"close\":0.1935,\"volume\":746355.7882153098,\"close_time\":1512928784644,\"vwap\":0.1934234103153928,\"ema1\":0.19629890456267265,\"sma1\":0.2035315925925925,\"sma2\":0.19602466666666665,\"rsi_avg_gain\":0.001298598085238227,\"rsi_avg_loss\":0.0015081940358206037,\"rsi\":46},{\"period_id\":\"120m210127\",\"size\":\"120m\",\"time\":1512914400000,\"open\":0.19889,\"high\":0.2,\"low\":0.192,\"close\":0.1925,\"volume\":1304227.7168578205,\"close_time\":1512921590443,\"vwap\":0.19344832535924464,\"ema1\":0.19649193246354663,\"sma1\":0.20368807407407397,\"sma2\":0.19624249999999996,\"rsi_avg_gain\":0.0013215671687180906,\"rsi_avg_loss\":0.0016242089616529576,\"rsi\":45},{\"period_id\":\"120m210126\",\"size\":\"120m\",\"time\":1512907200000,\"open\":0.19353,\"high\":0.19949,\"low\":0.1917,\"close\":0.19868,\"volume\":650525.0708087999,\"close_time\":1512914393147,\"vwap\":0.19484550903424502,\"ema1\":0.19676723815068778,\"sma1\":0.203757611111111,\"sma2\":0.19633949999999994,\"rsi_avg_gain\":0.0014232261816964052,\"rsi_avg_loss\":0.0012737634971647243,\"rsi\":53},{\"period_id\":\"120m210125\",\"size\":\"120m\",\"time\":1512900000000,\"open\":0.19333,\"high\":0.19902,\"low\":0.19,\"close\":0.19385,\"volume\":978565.5069178501,\"close_time\":1512907196740,\"vwap\":0.192935154541433,\"ema1\":0.19663532354039037,\"sma1\":0.20378575925925915,\"sma2\":0.19652599999999995,\"rsi_avg_gain\":0.0011611666572115132,\"rsi_avg_loss\":0.0013717453046389338,\"rsi\":46},{\"period_id\":\"120m210124\",\"size\":\"120m\",\"time\":1512892800000,\"open\":0.19131,\"high\":0.194,\"low\":0.19,\"close\":0.19341,\"volume\":531661.3797847299,\"close_time\":1512899982936,\"vwap\":0.19182110627328042,\"ema1\":0.19682741481903798,\"sma1\":0.20383964814814806,\"sma2\":0.19673416666666668,\"rsi_avg_gain\":0.0012166410154585531,\"rsi_avg_loss\":0.001477264174226544,\"rsi\":45},{\"period_id\":\"120m210122\",\"size\":\"120m\",\"time\":1512878400000,\"open\":0.191,\"high\":0.19313,\"low\":0.1895,\"close\":0.19301,\"volume\":391477.15581255,\"close_time\":1512882237255,\"vwap\":0.19026821797808519,\"ema1\":0.19706309859966128,\"sma1\":0.2039214999999999,\"sma2\":0.19693149999999998,\"rsi_avg_gain\":0.00127945955510921,\"rsi_avg_loss\":0.0015908998799362784,\"rsi\":45},{\"period_id\":\"120m210121\",\"size\":\"120m\",\"time\":1512871200000,\"open\":0.195,\"high\":0.19843,\"low\":0.191,\"close\":0.191,\"volume\":822354.6339335999,\"close_time\":1512878389037,\"vwap\":0.1967705243075349,\"ema1\":0.19734262264101723,\"sma1\":0.20394529629629618,\"sma2\":0.19716733333333333,\"rsi_avg_gain\":0.0012232641362714583,\"rsi_avg_loss\":0.0017132767937775306,\"rsi\":42},{\"period_id\":\"120m210120\",\"size\":\"120m\",\"time\":1512864000000,\"open\":0.19926,\"high\":0.19928,\"low\":0.195,\"close\":0.195,\"volume\":575411.43770943,\"close_time\":1512871187661,\"vwap\":0.1985207281323745,\"ema1\":0.19778004489212186,\"sma1\":0.20398992592592582,\"sma2\":0.1973611666666667,\"rsi_avg_gain\":0.001317361377523109,\"rsi_avg_loss\":0.0015373750086834941,\"rsi\":46},{\"period_id\":\"120m210119\",\"size\":\"120m\",\"time\":1512856800000,\"open\":0.2,\"high\":0.20254,\"low\":0.19733,\"close\":0.19929,\"volume\":680314.7565415404,\"close_time\":1512863991018,\"vwap\":0.1994013936682423,\"ema1\":0.1979717721260613,\"sma1\":0.20402974074074068,\"sma2\":0.1975107666666667,\"rsi_avg_gain\":0.0014186968681018097,\"rsi_avg_loss\":0.0013256346247360717,\"rsi\":52},{\"period_id\":\"120m210118\",\"size\":\"120m\",\"time\":1512849600000,\"open\":0.19851,\"high\":0.2,\"low\":0.1953,\"close\":0.2,\"volume\":352961.11425362,\"close_time\":1512856793108,\"vwap\":0.19908610763770757,\"ema1\":0.19788085985889312,\"sma1\":0.2040714074074073,\"sma2\":0.19762693333333337,\"rsi_avg_gain\":0.0015278273964173337,\"rsi_avg_loss\":0.001372991134331153,\"rsi\":53},{\"period_id\":\"120m210117\",\"size\":\"120m\",\"time\":1512842400000,\"open\":0.19541,\"high\":0.19867,\"low\":0.19486,\"close\":0.19799,\"volume\":926232.5305575604,\"close_time\":1512849579268,\"vwap\":0.1987493934150122,\"ema1\":0.19773471226295472,\"sma1\":0.20412631481481475,\"sma2\":0.19777710000000004,\"rsi_avg_gain\":0.001490737196141743,\"rsi_avg_loss\":0.001478605836972011,\"rsi\":50},{\"period_id\":\"120m210116\",\"size\":\"120m\",\"time\":1512835200000,\"open\":0.2025,\"high\":0.2027,\"low\":0.19541,\"close\":0.19541,\"volume\":641413.0257922799,\"close_time\":1512842398360,\"vwap\":0.20032728094955285,\"ema1\":0.19771710621212402,\"sma1\":0.20409103703703693,\"sma2\":0.1979792666666667,\"rsi_avg_gain\":0.001406947749691108,\"rsi_avg_loss\":0.0015923447475083194,\"rsi\":47},{\"period_id\":\"120m210115\",\"size\":\"120m\",\"time\":1512828000000,\"open\":0.2029,\"high\":0.203,\"low\":0.19926,\"close\":0.2025,\"volume\":759955.0663505401,\"close_time\":1512835181045,\"vwap\":0.20228980283498302,\"ema1\":0.19787621698537394,\"sma1\":0.20402622222222214,\"sma2\":0.19804026666666671,\"rsi_avg_gain\":0.001515174499667347,\"rsi_avg_loss\":0.001169448189624343,\"rsi\":56},{\"period_id\":\"120m210114\",\"size\":\"120m\",\"time\":1512820800000,\"open\":0.19915,\"high\":0.203,\"low\":0.1964,\"close\":0.20288,\"volume\":1060196.08788046,\"close_time\":1512827997733,\"vwap\":0.2001570622681191,\"ema1\":0.19755733539815834,\"sma1\":0.2040447407407406,\"sma2\":0.19809226666666674,\"rsi_avg_gain\":0.0016317263842571428,\"rsi_avg_loss\":0.0012301749734416009,\"rsi\":57},{\"period_id\":\"120m210113\",\"size\":\"120m\",\"time\":1512813600000,\"open\":0.19899,\"high\":0.2,\"low\":0.196,\"close\":0.199,\"volume\":1697599.1494401302,\"close_time\":1512820796071,\"vwap\":0.1992282597116985,\"ema1\":0.19719025508078994,\"sma1\":0.20412427777777767,\"sma2\":0.1982202666666667,\"rsi_avg_gain\":0.001458782259969231,\"rsi_avg_loss\":0.0013248038175524934,\"rsi\":52},{\"period_id\":\"120m210112\",\"size\":\"120m\",\"time\":1512806400000,\"open\":0.2015,\"high\":0.20181,\"low\":0.196,\"close\":0.198,\"volume\":1049080.849649,\"close_time\":1512813598514,\"vwap\":0.19946392071778082,\"ema1\":0.19706544508636165,\"sma1\":0.20420474074074063,\"sma2\":0.1983702666666667,\"rsi_avg_gain\":0.0014940732030437874,\"rsi_avg_loss\":0.0014267118035180698,\"rsi\":51},{\"period_id\":\"120m210111\",\"size\":\"120m\",\"time\":1512799200000,\"open\":0.201,\"high\":0.203,\"low\":0.19911,\"close\":0.19931,\"volume\":611834.19321072,\"close_time\":1512806227310,\"vwap\":0.20135240598536797,\"ema1\":0.1970009930233521,\"sma1\":0.20425103703703693,\"sma2\":0.1985104333333334,\"rsi_avg_gain\":0.0016090019109702325,\"rsi_avg_loss\":0.001435689634557923,\"rsi\":53},{\"period_id\":\"120m210110\",\"size\":\"120m\",\"time\":1512792000000,\"open\":0.20095,\"high\":0.20189,\"low\":0.19933,\"close\":0.2018,\"volume\":327272.42923343997,\"close_time\":1512799199401,\"vwap\":0.20103602913591956,\"ema1\":0.19684175116289362,\"sma1\":0.20433437037037028,\"sma2\":0.19856810000000003,\"rsi_avg_gain\":0.0017327712887371734,\"rsi_avg_loss\":0.001354588837216223,\"rsi\":56},{\"period_id\":\"120m210109\",\"size\":\"120m\",\"time\":1512784800000,\"open\":0.199,\"high\":0.20181,\"low\":0.199,\"close\":0.20148,\"volume\":97245.56367083998,\"close_time\":1512791938779,\"vwap\":0.20008148651207566,\"ema1\":0.1964998029672311,\"sma1\":0.20441020370370364,\"sma2\":0.19864193333333333,\"rsi_avg_gain\":0.0018414460032554164,\"rsi_avg_loss\":0.0014587879785405479,\"rsi\":56},{\"period_id\":\"120m210108\",\"size\":\"120m\",\"time\":1512777600000,\"open\":0.2,\"high\":0.20181,\"low\":0.19801,\"close\":0.19981,\"volume\":403268.47447363014,\"close_time\":1512784528415,\"vwap\":0.20007031023332897,\"ema1\":0.1961563411029022,\"sma1\":0.2044859444444444,\"sma2\":0.19872843333333334,\"rsi_avg_gain\":0.0018546341573519864,\"rsi_avg_loss\":0.0015710024384282821,\"rsi\":54},{\"period_id\":\"120m210107\",\"size\":\"120m\",\"time\":1512770400000,\"open\":0.19995,\"high\":0.20194,\"low\":0.19811,\"close\":0.2,\"volume\":1030570.62235018,\"close_time\":1512777589000,\"vwap\":0.2001485787355065,\"ema1\":0.19590436462724028,\"sma1\":0.20456057407407402,\"sma2\":0.19878193333333335,\"rsi_avg_gain\":0.001997298323302139,\"rsi_avg_loss\":0.001677233395230456,\"rsi\":54},{\"period_id\":\"120m210106\",\"size\":\"120m\",\"time\":1512763200000,\"open\":0.20056,\"high\":0.2029,\"low\":0.19882,\"close\":0.20195,\"volume\":687992.28091057,\"close_time\":1512770355398,\"vwap\":0.20068445633232296,\"ema1\":0.1956219070153258,\"sma1\":0.2046263148148148,\"sma2\":0.19878443333333337,\"rsi_avg_gain\":0.002150936655863842,\"rsi_avg_loss\":0.0016562513487097233,\"rsi\":56},{\"period_id\":\"120m210105\",\"size\":\"120m\",\"time\":1512756000000,\"open\":0.2,\"high\":0.204,\"low\":0.199,\"close\":0.20292,\"volume\":1842953.0237013297,\"close_time\":1512763170809,\"vwap\":0.20125341574867145,\"ema1\":0.19518548680948622,\"sma1\":0.20477048148148147,\"sma2\":0.1988857666666667,\"rsi_avg_gain\":0.002316393321699522,\"rsi_avg_loss\":0.0017090399139950867,\"rsi\":58},{\"period_id\":\"120m210104\",\"size\":\"120m\",\"time\":1512748800000,\"open\":0.196,\"high\":0.20086,\"low\":0.196,\"close\":0.2,\"volume\":1102251.6171724405,\"close_time\":1512755976994,\"vwap\":0.19958411125113276,\"ema1\":0.19465207210669216,\"sma1\":0.20497548148148148,\"sma2\":0.19904876666666674,\"rsi_avg_gain\":0.0022699620387533334,\"rsi_avg_loss\":0.0018405045227639395,\"rsi\":55},{\"period_id\":\"120m210103\",\"size\":\"120m\",\"time\":1512741600000,\"open\":0.20001,\"high\":0.20182,\"low\":0.19001,\"close\":0.196,\"volume\":1809689.6471748506,\"close_time\":1512748783413,\"vwap\":0.19717364695763287,\"ema1\":0.1942832494933606,\"sma1\":0.2052364074074074,\"sma2\":0.1992737666666667,\"rsi_avg_gain\":0.0021368821955805124,\"rsi_avg_loss\":0.001982081793745781,\"rsi\":52},{\"period_id\":\"120m210102\",\"size\":\"120m\",\"time\":1512734400000,\"open\":0.19362,\"high\":0.20199,\"low\":0.193,\"close\":0.20182,\"volume\":1979923.9914177093,\"close_time\":1512741577584,\"vwap\":0.19788549090663868,\"ema1\":0.1941648529066958,\"sma1\":0.20548446296296297,\"sma2\":0.19942676666666675,\"rsi_avg_gain\":0.0023012577490867056,\"rsi_avg_loss\":0.0016868573163416108,\"rsi\":58},{\"period_id\":\"120m210101\",\"size\":\"120m\",\"time\":1512727200000,\"open\":0.1931,\"high\":0.19999,\"low\":0.19,\"close\":0.194,\"volume\":1792191.8218561397,\"close_time\":1512734388888,\"vwap\":0.19657523285700887,\"ema1\":0.19363691172784725,\"sma1\":0.2057149259259259,\"sma2\":0.1996746,\"rsi_avg_gain\":0.0018767391144010677,\"rsi_avg_loss\":0.0018166155714448118,\"rsi\":51},{\"period_id\":\"120m210100\",\"size\":\"120m\",\"time\":1512720000000,\"open\":0.19009,\"high\":0.2,\"low\":0.18955,\"close\":0.19301,\"volume\":1800915.4518014311,\"close_time\":1512727186604,\"vwap\":0.19346743793027427,\"ema1\":0.19361187115735395,\"sma1\":0.20594529629629627,\"sma2\":0.1999061,\"rsi_avg_gain\":0.0019449498155088409,\"rsi_avg_loss\":0.0019563552307867204,\"rsi\":50},{\"period_id\":\"120m210099\",\"size\":\"120m\",\"time\":1512712800000,\"open\":0.191,\"high\":0.19649,\"low\":0.18501,\"close\":0.19128,\"volume\":1533508.5199854106,\"close_time\":1512719994835,\"vwap\":0.1901252528252937,\"ema1\":0.19365337951303355,\"sma1\":0.2061701111111111,\"sma2\":0.20016993333333336,\"rsi_avg_gain\":0.00196148441670183,\"rsi_avg_loss\":0.0021068440946933912,\"rsi\":48},{\"period_id\":\"120m210098\",\"size\":\"120m\",\"time\":1512705600000,\"open\":0.203,\"high\":0.20687,\"low\":0.19021,\"close\":0.19131,\"volume\":824094.35925791,\"close_time\":1512712790789,\"vwap\":0.19616126176419324,\"ema1\":0.19381706085876,\"sma1\":0.20631177777777776,\"sma2\":0.20040060000000004,\"rsi_avg_gain\":0.002112367833371202,\"rsi_avg_loss\":0.002266601332746729,\"rsi\":48},{\"period_id\":\"120m210097\",\"size\":\"120m\",\"time\":1512698400000,\"open\":0.20457,\"high\":0.208,\"low\":0.19155,\"close\":0.205,\"volume\":1802558.6234344696,\"close_time\":1512705589882,\"vwap\":0.20676086988039985,\"ema1\":0.19398996160763998,\"sma1\":0.20649585185185182,\"sma2\":0.20039776666666667,\"rsi_avg_gain\":0.0022748576667074483,\"rsi_avg_loss\":0.0013878783583426326,\"rsi\":62},{\"period_id\":\"120m210096\",\"size\":\"120m\",\"time\":1512691200000,\"open\":0.18264,\"high\":0.21,\"low\":0.18,\"close\":0.20457,\"volume\":5069064.234255623,\"close_time\":1512698364848,\"vwap\":0.2071521333638395,\"ema1\":0.19323064861506342,\"sma1\":0.2067273333333333,\"sma2\":0.20039026666666665,\"rsi_avg_gain\":0.0024167697949157145,\"rsi_avg_loss\":0.0014946382320612968,\"rsi\":62},{\"period_id\":\"120m210095\",\"size\":\"120m\",\"time\":1512684000000,\"open\":0.18631,\"high\":0.18699,\"low\":0.18,\"close\":0.182,\"volume\":2887392.7136900085,\"close_time\":1512691099048,\"vwap\":0.1809912952478299,\"ema1\":0.19244862438161953,\"sma1\":0.20717187037037035,\"sma2\":0.20079026666666666,\"rsi_avg_gain\":0.0008665213176015379,\"rsi_avg_loss\":0.0016096104037583196,\"rsi\":35},{\"period_id\":\"120m210094\",\"size\":\"120m\",\"time\":1512676800000,\"open\":0.18049,\"high\":0.186,\"low\":0.18007,\"close\":0.186,\"volume\":1397581.4726467493,\"close_time\":1512683999964,\"vwap\":0.18280095537961688,\"ema1\":0.1931692191665588,\"sma1\":0.2075561296296296,\"sma2\":0.20114843333333327,\"rsi_avg_gain\":0.000933176803570887,\"rsi_avg_loss\":0.0014257342809704976,\"rsi\":40},{\"period_id\":\"120m210093\",\"size\":\"120m\",\"time\":1512669600000,\"open\":0.182,\"high\":0.18889,\"low\":0.18004,\"close\":0.181,\"volume\":1519254.1145062689,\"close_time\":1512676772537,\"vwap\":0.18196505272864322,\"ema1\":0.19366364807459735,\"sma1\":0.2078807592592592,\"sma2\":0.20157693333333332,\"rsi_avg_gain\":0.0006203442499994165,\"rsi_avg_loss\":0.001535406148737459,\"rsi\":29},{\"period_id\":\"120m210092\",\"size\":\"120m\",\"time\":1512662400000,\"open\":0.18434,\"high\":0.18959,\"low\":0.18,\"close\":0.182,\"volume\":1880239.514088659,\"close_time\":1512669591339,\"vwap\":0.18225246281008,\"ema1\":0.19453700311422475,\"sma1\":0.208233537037037,\"sma2\":0.20199393333333326,\"rsi_avg_gain\":0.0006680630384609101,\"rsi_avg_loss\":0.0015765912371018787,\"rsi\":30},{\"period_id\":\"120m210091\",\"size\":\"120m\",\"time\":1512655200000,\"open\":0.1885,\"high\":0.18995,\"low\":0.18301,\"close\":0.187,\"volume\":1319921.42306792,\"close_time\":1512662369202,\"vwap\":0.18704551594699845,\"ema1\":0.19540162401865405,\"sma1\":0.20853307407407404,\"sma2\":0.20230944066666665,\"rsi_avg_gain\":0.0007194525029579033,\"rsi_avg_loss\":0.0013132521014943305,\"rsi\":35},{\"period_id\":\"120m210090\",\"size\":\"120m\",\"time\":1512648000000,\"open\":0.1875,\"high\":0.19,\"low\":0.1875,\"close\":0.1885,\"volume\":1411372.0180265396,\"close_time\":1512655194555,\"vwap\":0.18754613718454582,\"ema1\":0.19598104636476812,\"sma1\":0.2088013148148148,\"sma2\":0.2026461073333333,\"rsi_avg_gain\":0.0007747950031854342,\"rsi_avg_loss\":0.0012988868785323558,\"rsi\":37},{\"period_id\":\"120m210089\",\"size\":\"120m\",\"time\":1512640800000,\"open\":0.18521,\"high\":0.18979,\"low\":0.181,\"close\":0.1875,\"volume\":2092077.3675429292,\"close_time\":1512647973104,\"vwap\":0.18484892271463943,\"ema1\":0.1964969805968211,\"sma1\":0.20908057407407407,\"sma2\":0.20298944066666663,\"rsi_avg_gain\":0.000757471541892006,\"rsi_avg_loss\":0.0013988012538040755,\"rsi\":35},{\"period_id\":\"120m210088\",\"size\":\"120m\",\"time\":1512633600000,\"open\":0.1872,\"high\":0.18979,\"low\":0.18513,\"close\":0.18513,\"volume\":1129966.4392239994,\"close_time\":1512640768505,\"vwap\":0.18720427357170047,\"ema1\":0.19711746201729152,\"sma1\":0.20934177777777777,\"sma2\":0.20340394066666662,\"rsi_avg_gain\":0.0006334308912683133,\"rsi_avg_loss\":0.0015064013502505429,\"rsi\":30},{\"period_id\":\"120m210087\",\"size\":\"120m\",\"time\":1512626400000,\"open\":0.19225,\"high\":0.19231,\"low\":0.1852,\"close\":0.18601,\"volume\":1170682.04228123,\"close_time\":1512633583210,\"vwap\":0.18763612257536755,\"ema1\":0.19794418353572543,\"sma1\":0.20957705555555553,\"sma2\":0.20378977399999998,\"rsi_avg_gain\":0.0006821563444427989,\"rsi_avg_loss\":0.001554586069500583,\"rsi\":30},{\"period_id\":\"120m210086\",\"size\":\"120m\",\"time\":1512619200000,\"open\":0.1855,\"high\":0.19288,\"low\":0.18373,\"close\":0.19227,\"volume\":312959.47167122003,\"close_time\":1512626260601,\"vwap\":0.18740113380128323,\"ema1\":0.1987672306761203,\"sma1\":0.20980964814814815,\"sma2\":0.2040286073333333,\"rsi_avg_gain\":0.0007346299093999373,\"rsi_avg_loss\":0.0011926311517698597,\"rsi\":38},{\"period_id\":\"120m210085\",\"size\":\"120m\",\"time\":1512612000000,\"open\":0.18694,\"high\":0.19286,\"low\":0.18393,\"close\":0.18643,\"volume\":1313166.93189536,\"close_time\":1512619169443,\"vwap\":0.18672038325125634,\"ema1\":0.19921531555033548,\"sma1\":0.21004325925925926,\"sma2\":0.20440660733333332,\"rsi_avg_gain\":0.0003419091331999337,\"rsi_avg_loss\":0.0012843720095983104,\"rsi\":21},{\"period_id\":\"120m210084\",\"size\":\"120m\",\"time\":1512604800000,\"open\":0.18902,\"high\":0.1927,\"low\":0.1865,\"close\":0.1865,\"volume\":1847827.2706492287,\"close_time\":1512611942664,\"vwap\":0.1887737784597635,\"ema1\":0.2000970614503586,\"sma1\":0.21020344444444447,\"sma2\":0.20478094066666663,\"rsi_avg_gain\":0.00036820983575377476,\"rsi_avg_loss\":0.0013777852411058738,\"rsi\":21},{\"period_id\":\"120m210083\",\"size\":\"120m\",\"time\":1512597600000,\"open\":0.19498,\"high\":0.196,\"low\":0.189,\"close\":0.18902,\"volume\":2480005.0900642066,\"close_time\":1512604794901,\"vwap\":0.18994551090026837,\"ema1\":0.2010347898262454,\"sma1\":0.21030066666666666,\"sma2\":0.2051734406666666,\"rsi_avg_gain\":0.00039653366927329593,\"rsi_avg_loss\":0.0012899225673447877,\"rsi\":24},{\"period_id\":\"120m210082\",\"size\":\"120m\",\"time\":1512590400000,\"open\":0.19679,\"high\":0.19775,\"low\":0.192,\"close\":0.195,\"volume\":1901877.715855151,\"close_time\":1512597582829,\"vwap\":0.19387609243325257,\"ema1\":0.20186339602115888,\"sma1\":0.21038816666666663,\"sma2\":0.20546277399999993,\"rsi_avg_gain\":0.00042703625921739564,\"rsi_avg_loss\":0.0009291473802174625,\"rsi\":31},{\"period_id\":\"120m210081\",\"size\":\"120m\",\"time\":1512583200000,\"open\":0.1985,\"high\":0.20003,\"low\":0.19615,\"close\":0.19765,\"volume\":1159402.1994188598,\"close_time\":1512590389470,\"vwap\":0.19854458313308318,\"ema1\":0.20233673367779054,\"sma1\":0.2104573333333333,\"sma2\":0.20566194066666663,\"rsi_avg_gain\":0.0004598852022341184,\"rsi_avg_loss\":0.000796774101772653,\"rsi\":37},{\"period_id\":\"120m210080\",\"size\":\"120m\",\"time\":1512576000000,\"open\":0.1999,\"high\":0.20198,\"low\":0.1978,\"close\":0.1985,\"volume\":1149012.43157479,\"close_time\":1512583187057,\"vwap\":0.20023517149153444,\"ema1\":0.20265995669005196,\"sma1\":0.2104941851851852,\"sma2\":0.20582710733333334,\"rsi_avg_gain\":0.0004952609870213583,\"rsi_avg_loss\":0.0007926798019090096,\"rsi\":38},{\"period_id\":\"120m210079\",\"size\":\"120m\",\"time\":1512568800000,\"open\":0.197,\"high\":0.19997,\"low\":0.196,\"close\":0.1999,\"volume\":1754763.5733593802,\"close_time\":1512575983189,\"vwap\":0.19788040952422475,\"ema1\":0.20294685025488313,\"sma1\":0.21054724074074074,\"sma2\":0.205974774,\"rsi_avg_gain\":0.0005333579860230012,\"rsi_avg_loss\":0.0007459628635943192,\"rsi\":42},{\"period_id\":\"120m210078\",\"size\":\"120m\",\"time\":1512561600000,\"open\":0.19867,\"high\":0.19869,\"low\":0.196,\"close\":0.19797,\"volume\":1356577.2933801496,\"close_time\":1512568782682,\"vwap\":0.1967820966880183,\"ema1\":0.20315697785866818,\"sma1\":0.21060566666666666,\"sma2\":0.2061669406666667,\"rsi_avg_gain\":0.00042592398494784847,\"rsi_avg_loss\":0.0008033446223323438,\"rsi\":35},{\"period_id\":\"120m210077\",\"size\":\"120m\",\"time\":1512554400000,\"open\":0.19707,\"high\":0.2,\"low\":0.196,\"close\":0.19869,\"volume\":2110134.6971577206,\"close_time\":1512561542485,\"vwap\":0.1981199951972279,\"ema1\":0.20351470046961082,\"sma1\":0.21065168518518515,\"sma2\":0.206231774,\"rsi_avg_gain\":0.00045868736840537527,\"rsi_avg_loss\":0.0008097557471271396,\"rsi\":36},{\"period_id\":\"120m210076\",\"size\":\"120m\",\"time\":1512547200000,\"open\":0.19606,\"high\":0.20158,\"low\":0.1953,\"close\":0.19705,\"volume\":2170755.0190411303,\"close_time\":1512554398487,\"vwap\":0.19834870146496808,\"ema1\":0.20384743843303224,\"sma1\":0.21068798148148143,\"sma2\":0.20631527400000002,\"rsi_avg_gain\":0.0003678171659750193,\"rsi_avg_loss\":0.0008720446507523041,\"rsi\":30},{\"period_id\":\"120m210075\",\"size\":\"120m\",\"time\":1512540000000,\"open\":0.19901,\"high\":0.20293,\"low\":0.195,\"close\":0.19778,\"volume\":2231629.5649462496,\"close_time\":1512547191564,\"vwap\":0.1972916269683572,\"ema1\":0.20431622729048274,\"sma1\":0.21071270370370368,\"sma2\":0.2063039406666667,\"rsi_avg_gain\":0.0003961107941269439,\"rsi_avg_loss\":0.0008829711623486346,\"rsi\":31},{\"period_id\":\"120m210074\",\"size\":\"120m\",\"time\":1512532800000,\"open\":0.201,\"high\":0.20466,\"low\":0.1981,\"close\":0.1982,\"volume\":1667986.7979470093,\"close_time\":1512539956524,\"vwap\":0.2003205312314241,\"ema1\":0.2047670015863781,\"sma1\":0.2107149259259259,\"sma2\":0.20629227400000003,\"rsi_avg_gain\":0.0004265808552136319,\"rsi_avg_loss\":0.0009185843286831468,\"rsi\":32},{\"period_id\":\"120m210073\",\"size\":\"120m\",\"time\":1512525600000,\"open\":0.20164,\"high\":0.204,\"low\":0.2,\"close\":0.2023,\"volume\":1055209.2105613104,\"close_time\":1512532718975,\"vwap\":0.20020800750004752,\"ema1\":0.2052198982475076,\"sma1\":0.21071520370370364,\"sma2\":0.2062139406666667,\"rsi_avg_gain\":0.0004593947671531421,\"rsi_avg_loss\":0.0006738600462741566,\"rsi\":41},{\"period_id\":\"120m210072\",\"size\":\"120m\",\"time\":1512518400000,\"open\":0.20532,\"high\":0.20635,\"low\":0.20011,\"close\":0.20168,\"volume\":1645813.257506141,\"close_time\":1512525583549,\"vwap\":0.2026443041413774,\"ema1\":0.20542127054043918,\"sma1\":0.210693074074074,\"sma2\":0.2061879406666667,\"rsi_avg_gain\":0.00044704051847261386,\"rsi_avg_loss\":0.0007256954344490918,\"rsi\":38},{\"period_id\":\"120m210071\",\"size\":\"120m\",\"time\":1512511200000,\"open\":0.20402,\"high\":0.2055,\"low\":0.203,\"close\":0.20364,\"volume\":2130364.2691354603,\"close_time\":1512518349788,\"vwap\":0.20508372638956532,\"ema1\":0.2056792891984005,\"sma1\":0.2106879814814814,\"sma2\":0.2061706073333334,\"rsi_avg_gain\":0.00048142825066281494,\"rsi_avg_loss\":0.0006307489294067151,\"rsi\":43},{\"period_id\":\"120m210070\",\"size\":\"120m\",\"time\":1512504000000,\"open\":0.20498,\"high\":0.20535,\"low\":0.203,\"close\":0.20485,\"volume\":1083083.8736538694,\"close_time\":1512511198657,\"vwap\":0.20428592826834946,\"ema1\":0.20581992983277295,\"sma1\":0.2106761296296296,\"sma2\":0.20612977400000004,\"rsi_avg_gain\":0.000518461193021493,\"rsi_avg_loss\":0.0005861911547456919,\"rsi\":47},{\"period_id\":\"120m210069\",\"size\":\"120m\",\"time\":1512496800000,\"open\":0.204,\"high\":0.20538,\"low\":0.203,\"close\":0.20402,\"volume\":860057.4203535096,\"close_time\":1512503859014,\"vwap\":0.20415574486260468,\"ema1\":0.205886821545378,\"sma1\":0.21067344444444439,\"sma2\":0.20612777400000007,\"rsi_avg_gain\":0.0004944966694077618,\"rsi_avg_loss\":0.000631282782033822,\"rsi\":44},{\"period_id\":\"120m210068\",\"size\":\"120m\",\"time\":1512489600000,\"open\":0.20488,\"high\":0.2055,\"low\":0.203,\"close\":0.20321,\"volume\":1296081.3617274298,\"close_time\":1512496789885,\"vwap\":0.20414603913652468,\"ema1\":0.20601556785885233,\"sma1\":0.21067437037037032,\"sma2\":0.20602427400000006,\"rsi_avg_gain\":0.0004702271824391278,\"rsi_avg_loss\":0.0006798429960364236,\"rsi\":41},{\"period_id\":\"120m210067\",\"size\":\"120m\",\"time\":1512482400000,\"open\":0.20556,\"high\":0.20556,\"low\":0.2035,\"close\":0.2049,\"volume\":1402909.4253659002,\"close_time\":1512489590218,\"vwap\":0.20428621508175507,\"ema1\":0.20620905529739386,\"sma1\":0.21067501851851847,\"sma2\":0.20583277400000005,\"rsi_avg_gain\":0.0005063985041652146,\"rsi_avg_loss\":0.0006021386111161488,\"rsi\":46},{\"period_id\":\"120m210066\",\"size\":\"120m\",\"time\":1512475200000,\"open\":0.2045,\"high\":0.20646,\"low\":0.204,\"close\":0.20557,\"volume\":905663.6345902705,\"close_time\":1512482395799,\"vwap\":0.20477202403019432,\"ema1\":0.2062993349730762,\"sma1\":0.21066798148148144,\"sma2\":0.20567327400000004,\"rsi_avg_gain\":0.0005453522352548466,\"rsi_avg_loss\":0.0005969185042789293,\"rsi\":48},{\"period_id\":\"120m210065\",\"size\":\"120m\",\"time\":1512468000000,\"open\":0.20576,\"high\":0.20643,\"low\":0.2043,\"close\":0.2045,\"volume\":1058386.8217710692,\"close_time\":1512475196068,\"vwap\":0.20534161690642078,\"ema1\":0.20634963393673664,\"sma1\":0.21066835185185184,\"sma2\":0.20562027400000008,\"rsi_avg_gain\":0.0005049947148898336,\"rsi_avg_loss\":0.0006428353123003853,\"rsi\":44},{\"period_id\":\"120m210064\",\"size\":\"120m\",\"time\":1512460800000,\"open\":0.2057,\"high\":0.2082,\"low\":0.205,\"close\":0.20504,\"volume\":1827906.7326850519,\"close_time\":1512467894122,\"vwap\":0.20577443199719542,\"ema1\":0.2064771948978909,\"sma1\":0.2106489074074074,\"sma2\":0.20565610733333337,\"rsi_avg_gain\":0.0005438404621890515,\"rsi_avg_loss\":0.0006507457209388755,\"rsi\":46},{\"period_id\":\"120m210063\",\"size\":\"120m\",\"time\":1512453600000,\"open\":0.20508,\"high\":0.2071,\"low\":0.20415,\"close\":0.2059,\"volume\":616188.42400966,\"close_time\":1512460761594,\"vwap\":0.20545755248715586,\"ema1\":0.20657631178740063,\"sma1\":0.2106420555555555,\"sma2\":0.20565777400000004,\"rsi_avg_gain\":0.0005856743438959017,\"rsi_avg_loss\":0.0006346492379341736,\"rsi\":48},{\"period_id\":\"120m210062\",\"size\":\"120m\",\"time\":1512446400000,\"open\":0.20531,\"high\":0.20798,\"low\":0.2045,\"close\":0.20485,\"volume\":407359.59938782,\"close_time\":1512453554144,\"vwap\":0.205664573607321,\"ema1\":0.20662295397963515,\"sma1\":0.21062381481481476,\"sma2\":0.20570827400000002,\"rsi_avg_gain\":0.0005499569857340483,\"rsi_avg_loss\":0.0006834684100829562,\"rsi\":45},{\"period_id\":\"120m210061\",\"size\":\"120m\",\"time\":1512439200000,\"open\":0.20663,\"high\":0.20663,\"low\":0.205,\"close\":0.20515,\"volume\":595110.5549349199,\"close_time\":1512446369424,\"vwap\":0.20573751480161442,\"ema1\":0.20674522666788586,\"sma1\":0.21061353703703697,\"sma2\":0.20577927400000004,\"rsi_avg_gain\":0.000592261369252052,\"rsi_avg_loss\":0.0007129659800893379,\"rsi\":45},{\"period_id\":\"120m210060\",\"size\":\"120m\",\"time\":1512432000000,\"open\":0.20764,\"high\":0.208266,\"low\":0.2062,\"close\":0.20663,\"volume\":508934.48698234,\"close_time\":1512439024419,\"vwap\":0.20674272804641955,\"ema1\":0.20685524230015384,\"sma1\":0.21060366666666663,\"sma2\":0.20583510733333338,\"rsi_avg_gain\":0.0006378199361175944,\"rsi_avg_loss\":0.0006539633631731324,\"rsi\":49},{\"period_id\":\"120m210059\",\"size\":\"120m\",\"time\":1512424800000,\"open\":0.20697,\"high\":0.208266,\"low\":0.206,\"close\":0.208266,\"volume\":918199.0655971197,\"close_time\":1512431956920,\"vwap\":0.2072213936013246,\"ema1\":0.2068707762518886,\"sma1\":0.21060120370370367,\"sma2\":0.2057148406666667,\"rsi_avg_gain\":0.0006868830081266401,\"rsi_avg_loss\":0.0005784220834172196,\"rsi\":54},{\"period_id\":\"120m210058\",\"size\":\"120m\",\"time\":1512417600000,\"open\":0.2069,\"high\":0.2075,\"low\":0.2055,\"close\":0.20697,\"volume\":632957.20665359,\"close_time\":1512424783756,\"vwap\":0.20671191606700437,\"ema1\":0.20677455392443264,\"sma1\":0.2106058333333333,\"sma2\":0.2056783406666667,\"rsi_avg_gain\":0.000640027854905611,\"rsi_avg_loss\":0.0006229160898339288,\"rsi\":51},{\"period_id\":\"120m210057\",\"size\":\"120m\",\"time\":1512410400000,\"open\":0.20754,\"high\":0.20769,\"low\":0.20562,\"close\":0.207,\"volume\":703081.9222192308,\"close_time\":1512417597662,\"vwap\":0.2069815570765555,\"ema1\":0.20676107488473836,\"sma1\":0.21060870370370366,\"sma2\":0.2055448406666667,\"rsi_avg_gain\":0.0006892607668214271,\"rsi_avg_loss\":0.0006685250198211538,\"rsi\":51},{\"period_id\":\"120m210056\",\"size\":\"120m\",\"time\":1512403200000,\"open\":0.20617,\"high\":0.20754,\"low\":0.205,\"close\":0.20754,\"volume\":614650.2980817601,\"close_time\":1512410370625,\"vwap\":0.20620798803923227,\"ema1\":0.20674459729058237,\"sma1\":0.21061759259259252,\"sma2\":0.2056858406666667,\"rsi_avg_gain\":0.0007422808258076908,\"rsi_avg_loss\":0.0006784115598073954,\"rsi\":52},{\"period_id\":\"120m210055\",\"size\":\"120m\",\"time\":1512396000000,\"open\":0.206,\"high\":0.20778,\"low\":0.20474,\"close\":0.20616,\"volume\":555274.1970127601,\"close_time\":1512403151943,\"vwap\":0.2058676398278229,\"ema1\":0.20668974193131218,\"sma1\":0.21062888888888884,\"sma2\":0.20588317400000006,\"rsi_avg_gain\":0.0006932255047159753,\"rsi_avg_loss\":0.0007305970644079642,\"rsi\":49},{\"period_id\":\"120m210054\",\"size\":\"120m\",\"time\":1512388800000,\"open\":0.20601,\"high\":0.2078,\"low\":0.20311,\"close\":0.206,\"volume\":1058620.9446994702,\"close_time\":1512395944827,\"vwap\":0.20595907599095595,\"ema1\":0.20672627585760955,\"sma1\":0.21061685185185178,\"sma2\":0.20624967400000005,\"rsi_avg_gain\":0.0007342428512325871,\"rsi_avg_loss\":0.0007867968385931923,\"rsi\":48},{\"period_id\":\"120m210053\",\"size\":\"120m\",\"time\":1512381600000,\"open\":0.20655,\"high\":0.2079,\"low\":0.205,\"close\":0.20668,\"volume\":937889.2512387097,\"close_time\":1512388797198,\"vwap\":0.20677606112173794,\"ema1\":0.20677636384778952,\"sma1\":0.21058537037037028,\"sma2\":0.20651200733333339,\"rsi_avg_gain\":0.0007907230705581706,\"rsi_avg_loss\":0.0007950119800234367,\"rsi\":50},{\"period_id\":\"120m210052\",\"size\":\"120m\",\"time\":1512374400000,\"open\":0.2073,\"high\":0.20843,\"low\":0.20567,\"close\":0.207,\"volume\":846062.6015024798,\"close_time\":1512381483617,\"vwap\":0.2071189571101366,\"ema1\":0.2067830096303957,\"sma1\":0.21054712962962954,\"sma2\":0.20679367400000004,\"rsi_avg_gain\":0.0008515479221395684,\"rsi_avg_loss\":0.0008315513631021637,\"rsi\":51},{\"period_id\":\"120m210051\",\"size\":\"120m\",\"time\":1512367200000,\"open\":0.20506,\"high\":0.2088,\"low\":0.20506,\"close\":0.20772,\"volume\":369815.74117833993,\"close_time\":1512374346573,\"vwap\":0.20405688779317194,\"ema1\":0.20676804477731953,\"sma1\":0.21051166666666657,\"sma2\":0.20700667400000003,\"rsi_avg_gain\":0.0009170516084579968,\"rsi_avg_loss\":0.0008401322371869457,\"rsi\":52},{\"period_id\":\"120m210050\",\"size\":\"120m\",\"time\":1512360000000,\"open\":0.20511,\"high\":0.20694,\"low\":0.205,\"close\":0.20526,\"volume\":148488.14376757,\"close_time\":1512367074218,\"vwap\":0.20352835036926384,\"ema1\":0.20670239269299673,\"sma1\":0.21049361111111103,\"sma2\":0.207210674,\"rsi_avg_gain\":0.0007983632706470742,\"rsi_avg_loss\":0.0009047577938936338,\"rsi\":47},{\"period_id\":\"120m210049\",\"size\":\"120m\",\"time\":1512352800000,\"open\":0.20479,\"high\":0.20596,\"low\":0.20479,\"close\":0.20591,\"volume\":112455.98687227,\"close_time\":1512359645187,\"vwap\":0.20340785221990704,\"ema1\":0.20680186805113443,\"sma1\":0.2104800925925925,\"sma2\":0.20744550733333336,\"rsi_avg_gain\":0.0008597758299276184,\"rsi_avg_loss\":0.0009243545472700663,\"rsi\":48},{\"period_id\":\"120m210048\",\"size\":\"120m\",\"time\":1512345600000,\"open\":0.2025,\"high\":0.205,\"low\":0.2022,\"close\":0.205,\"volume\":244383.31424754005,\"close_time\":1512352788800,\"vwap\":0.20337111563240234,\"ema1\":0.20686337619259199,\"sma1\":0.21046666666666655,\"sma2\":0.207812174,\"rsi_avg_gain\":0.0008559124322297413,\"rsi_avg_loss\":0.0009954587432139176,\"rsi\":46},{\"period_id\":\"120m210047\",\"size\":\"120m\",\"time\":1512338400000,\"open\":0.203,\"high\":0.20596,\"low\":0.201,\"close\":0.20321,\"volume\":1016917.7492541395,\"close_time\":1512345595739,\"vwap\":0.2032920805207178,\"ema1\":0.20699188489552936,\"sma1\":0.21043925925925913,\"sma2\":0.2083210073333333,\"rsi_avg_gain\":0.000784059542401261,\"rsi_avg_loss\":0.0010720324926919112,\"rsi\":42},{\"period_id\":\"120m210046\",\"size\":\"120m\",\"time\":1512331200000,\"open\":0.20927755,\"high\":0.21072,\"low\":0.2021,\"close\":0.2021,\"volume\":1914351.5573701388,\"close_time\":1512338396781,\"vwap\":0.20546997158706048,\"ema1\":0.2072527045434969,\"sma1\":0.21036685185185175,\"sma2\":0.20871917399999998,\"rsi_avg_gain\":0.0007589871995090503,\"rsi_avg_loss\":0.001154496530591289,\"rsi\":40},{\"period_id\":\"120m210045\",\"size\":\"120m\",\"time\":1512324000000,\"open\":0.20861,\"high\":0.21,\"low\":0.20824,\"close\":0.209,\"volume\":407974.7964288199,\"close_time\":1512331113146,\"vwap\":0.20941285992893555,\"ema1\":0.20760806347753116,\"sma1\":0.21029731481481473,\"sma2\":0.20892100733333333,\"rsi_avg_gain\":0.0008173708302405158,\"rsi_avg_loss\":0.0007125347252521584,\"rsi\":53},{\"period_id\":\"120m210044\",\"size\":\"120m\",\"time\":1512316800000,\"open\":0.20906,\"high\":0.21,\"low\":0.2084,\"close\":0.20978,\"volume\":615420.8094476499,\"close_time\":1512323994319,\"vwap\":0.20944357500055305,\"ema1\":0.20751206785529194,\"sma1\":0.21023064814814807,\"sma2\":0.20914134066666665,\"rsi_avg_gain\":0.0008802455094897862,\"rsi_avg_loss\":0.0007073450887330933,\"rsi\":55},{\"period_id\":\"120m210043\",\"size\":\"120m\",\"time\":1512309600000,\"open\":0.211,\"high\":0.2118,\"low\":0.208,\"close\":0.2095,\"volume\":1208601.3046583012,\"close_time\":1512316768941,\"vwap\":0.20940112542340114,\"ema1\":0.2073556587418638,\"sma1\":0.21014851851851843,\"sma2\":0.20935467399999996,\"rsi_avg_gain\":0.0009264182409890003,\"rsi_avg_loss\":0.0007617562494048696,\"rsi\":55},{\"period_id\":\"120m210042\",\"size\":\"120m\",\"time\":1512302400000,\"open\":0.2093,\"high\":0.213,\"low\":0.20887,\"close\":0.211,\"volume\":2451547.833988342,\"close_time\":1512309491987,\"vwap\":0.21186667568867948,\"ema1\":0.2072077731378544,\"sma1\":0.21005694444444434,\"sma2\":0.20939200733333332,\"rsi_avg_gain\":0.0009976811826035387,\"rsi_avg_loss\":0.0007049682685898595,\"rsi\":59},{\"period_id\":\"120m210041\",\"size\":\"120m\",\"time\":1512295200000,\"open\":0.207,\"high\":0.2094,\"low\":0.20601,\"close\":0.20887,\"volume\":657082.7732712004,\"close_time\":1512302385755,\"vwap\":0.20704341086996972,\"ema1\":0.20694624025080988,\"sma1\":0.2099976851851851,\"sma2\":0.20954367399999996,\"rsi_avg_gain\":0.0009105797351115036,\"rsi_avg_loss\":0.0007591965969429255,\"rsi\":55},{\"period_id\":\"120m210040\",\"size\":\"120m\",\"time\":1512288000000,\"open\":0.20712,\"high\":0.208,\"low\":0.20605,\"close\":0.2069,\"volume\":404712.48956450995,\"close_time\":1512295180202,\"vwap\":0.20607706538594198,\"ema1\":0.20681356716465885,\"sma1\":0.20997175925925918,\"sma2\":0.20967867399999998,\"rsi_avg_gain\":0.0008290858685816192,\"rsi_avg_loss\":0.0008175963351693044,\"rsi\":50},{\"period_id\":\"120m210039\",\"size\":\"120m\",\"time\":1512280800000,\"open\":0.2053,\"high\":0.208,\"low\":0.20519,\"close\":0.20711,\"volume\":91034.59465931001,\"close_time\":1512287925924,\"vwap\":0.20526211508150372,\"ema1\":0.2068076062794629,\"sma1\":0.2099518518518518,\"sma2\":0.209827174,\"rsi_avg_gain\":0.0008928617046263591,\"rsi_avg_loss\":0.0008643345147977134,\"rsi\":51},{\"period_id\":\"120m210038\",\"size\":\"120m\",\"time\":1512273600000,\"open\":0.20466,\"high\":0.20735,\"low\":0.20465,\"close\":0.20515,\"volume\":341844.85708863003,\"close_time\":1512280257377,\"vwap\":0.2051528171559784,\"ema1\":0.20678675154011553,\"sma1\":0.20992879629629627,\"sma2\":0.20995800733333334,\"rsi_avg_gain\":0.0008107741434437722,\"rsi_avg_loss\":0.0009308217851667682,\"rsi\":47},{\"period_id\":\"120m210037\",\"size\":\"120m\",\"time\":1512266400000,\"open\":0.20416,\"high\":0.20511,\"low\":0.204,\"close\":0.20483,\"volume\":44043.33960736001,\"close_time\":1512273462247,\"vwap\":0.20480280981556875,\"ema1\":0.2068996309566752,\"sma1\":0.20995537037037032,\"sma2\":0.21014017399999999,\"rsi_avg_gain\":0.0008485260006317557,\"rsi_avg_loss\":0.0010024234609488272,\"rsi\":46},{\"period_id\":\"120m210036\",\"size\":\"120m\",\"time\":1512259200000,\"open\":0.2061,\"high\":0.2065,\"low\":0.204,\"close\":0.20412,\"volume\":437910.88185003994,\"close_time\":1512266341154,\"vwap\":0.20481565722254663,\"ema1\":0.20704236412610108,\"sma1\":0.20996101851851845,\"sma2\":0.210238174,\"rsi_avg_gain\":0.0008591818468341972,\"rsi_avg_loss\":0.001079532957944891,\"rsi\":44},{\"period_id\":\"120m210035\",\"size\":\"120m\",\"time\":1512252000000,\"open\":0.2075,\"high\":0.20869,\"low\":0.205,\"close\":0.206,\"volume\":627978.90874285,\"close_time\":1512259172274,\"vwap\":0.20609971462864043,\"ema1\":0.2072439064796253,\"sma1\":0.20996851851851847,\"sma2\":0.21022150733333334,\"rsi_avg_gain\":0.0009252727581291354,\"rsi_avg_loss\":0.0010179585700944985,\"rsi\":48},{\"period_id\":\"120m210034\",\"size\":\"120m\",\"time\":1512244800000,\"open\":0.20626,\"high\":0.208,\"low\":0.20587,\"close\":0.20749,\"volume\":375143.7825295599,\"close_time\":1512251968347,\"vwap\":0.20624967050794304,\"ema1\":0.20732969313339256,\"sma1\":0.20998703703703697,\"sma2\":0.21019650733333337,\"rsi_avg_gain\":0.0009964475856775305,\"rsi_avg_loss\":0.000981647690870997,\"rsi\":50},{\"period_id\":\"120m210033\",\"size\":\"120m\",\"time\":1512237600000,\"open\":0.20752,\"high\":0.20752,\"low\":0.2055,\"close\":0.20671,\"volume\":269664.32342694,\"close_time\":1512244785524,\"vwap\":0.20607840350521592,\"ema1\":0.20731863748741963,\"sma1\":0.20999425925925921,\"sma2\":0.21019750733333334,\"rsi_avg_gain\":0.0010130973999604171,\"rsi_avg_loss\":0.0010571590517072275,\"rsi\":49},{\"period_id\":\"120m210032\",\"size\":\"120m\",\"time\":1512230400000,\"open\":0.20577,\"high\":0.208,\"low\":0.2043,\"close\":0.20702,\"volume\":548313.6903024999,\"close_time\":1512237578495,\"vwap\":0.2060362696575604,\"ema1\":0.20736061248655202,\"sma1\":0.20999425925925921,\"sma2\":0.2101738406666667,\"rsi_avg_gain\":0.0010910279691881415,\"rsi_avg_loss\":0.0011146328249154753,\"rsi\":49},{\"period_id\":\"120m210031\",\"size\":\"120m\",\"time\":1512223200000,\"open\":0.2088,\"high\":0.2088,\"low\":0.205,\"close\":0.20593044,\"volume\":507990.8551120195,\"close_time\":1512230394515,\"vwap\":0.2060949657948756,\"ema1\":0.20738410300286594,\"sma1\":0.20994981481481473,\"sma2\":0.21013533333333337,\"rsi_avg_gain\":0.0010911408898949203,\"rsi_avg_loss\":0.0012003738114474349,\"rsi\":48},{\"period_id\":\"120m210030\",\"size\":\"120m\",\"time\":1512216000000,\"open\":0.2081,\"high\":0.2094,\"low\":0.207,\"close\":0.2087,\"volume\":644599.4130293902,\"close_time\":1512223178420,\"vwap\":0.20894840951285787,\"ema1\":0.20748435562375325,\"sma1\":0.209906574074074,\"sma2\":0.21007350000000002,\"rsi_avg_gain\":0.001175074804502222,\"rsi_avg_loss\":0.0010796671815587757,\"rsi\":52},{\"period_id\":\"120m210029\",\"size\":\"120m\",\"time\":1512208800000,\"open\":0.21,\"high\":0.211,\"low\":0.2061,\"close\":0.2081,\"volume\":1036579.6382968901,\"close_time\":1512215967286,\"vwap\":0.20917656456287775,\"ema1\":0.2074005180805638,\"sma1\":0.20983249999999992,\"sma2\":0.21001350000000005,\"rsi_avg_gain\":0.0012193113279254707,\"rsi_avg_loss\":0.0011627185032171432,\"rsi\":51},{\"period_id\":\"120m210028\",\"size\":\"120m\",\"time\":1512201600000,\"open\":0.2091,\"high\":0.211,\"low\":0.2075,\"close\":0.21,\"volume\":843859.35179703,\"close_time\":1512208772992,\"vwap\":0.2100370641100408,\"ema1\":0.2073522779481889,\"sma1\":0.20976287037037025,\"sma2\":0.20992100000000005,\"rsi_avg_gain\":0.0013131045069966609,\"rsi_avg_loss\":0.0011060045419261553,\"rsi\":54},{\"period_id\":\"120m210027\",\"size\":\"120m\",\"time\":1512194400000,\"open\":0.20701,\"high\":0.20999,\"low\":0.20612,\"close\":0.20916,\"volume\":324696.8229079299,\"close_time\":1512201587493,\"vwap\":0.20967390599995678,\"ema1\":0.20716967642737433,\"sma1\":0.20971555555555546,\"sma2\":0.20984833333333336,\"rsi_avg_gain\":0.001349497161381021,\"rsi_avg_loss\":0.0011910818143820133,\"rsi\":53},{\"period_id\":\"120m210026\",\"size\":\"120m\",\"time\":1512187200000,\"open\":0.20948,\"high\":0.20958,\"low\":0.2065,\"close\":0.2066,\"volume\":423074.3872495901,\"close_time\":1512194238488,\"vwap\":0.2097584544118847,\"ema1\":0.20703241273271047,\"sma1\":0.20966759259259252,\"sma2\":0.20982000000000006,\"rsi_avg_gain\":0.0012563815584103297,\"rsi_avg_loss\":0.001282703492411399,\"rsi\":49},{\"period_id\":\"120m210025\",\"size\":\"120m\",\"time\":1512180000000,\"open\":0.20896,\"high\":0.20956,\"low\":0.207,\"close\":0.20911,\"volume\":97823.74024907005,\"close_time\":1512186828813,\"vwap\":0.210032350632436,\"ema1\":0.20706223430048362,\"sma1\":0.20960861111111107,\"sma2\":0.2097263333333334,\"rsi_avg_gain\":0.0013530262936726628,\"rsi_avg_loss\":0.0011882960687507385,\"rsi\":53},{\"period_id\":\"120m210024\",\"size\":\"120m\",\"time\":1512172800000,\"open\":0.21257,\"high\":0.2126,\"low\":0.20706,\"close\":0.20896,\"volume\":1319666.9405931998,\"close_time\":1512179990311,\"vwap\":0.21005960058647496,\"ema1\":0.20692100907982733,\"sma1\":0.20952953703703697,\"sma2\":0.20963566666666678,\"rsi_avg_gain\":0.0014455667778013304,\"rsi_avg_loss\":0.0012797034586546415,\"rsi\":53},{\"period_id\":\"120m210023\",\"size\":\"120m\",\"time\":1512165600000,\"open\":0.21203,\"high\":0.215,\"low\":0.21065,\"close\":0.21257,\"volume\":2184093.836138379,\"close_time\":1512172768309,\"vwap\":0.21226334638720443,\"ema1\":0.20678038901636714,\"sma1\":0.20943694444444438,\"sma2\":0.20948033333333343,\"rsi_avg_gain\":0.0015567642222475864,\"rsi_avg_loss\":0.001100449878551152,\"rsi\":59},{\"period_id\":\"120m210022\",\"size\":\"120m\",\"time\":1512158400000,\"open\":0.2096,\"high\":0.21236,\"low\":0.20813,\"close\":0.21236,\"volume\":1072673.46061336,\"close_time\":1512165578647,\"vwap\":0.21117774494455832,\"ema1\":0.20638110550025454,\"sma1\":0.20936768518518514,\"sma2\":0.20931766666666674,\"rsi_avg_gain\":0.001660361470112784,\"rsi_avg_loss\":0.001185099869208933,\"rsi\":58},{\"period_id\":\"120m210021\",\"size\":\"120m\",\"time\":1512151200000,\"open\":0.20898,\"high\":0.21,\"low\":0.2071,\"close\":0.2096,\"volume\":906369.1453939505,\"close_time\":1512158399931,\"vwap\":0.2097730584252749,\"ema1\":0.20596876794854796,\"sma1\":0.20930212962962957,\"sma2\":0.20919100000000007,\"rsi_avg_gain\":0.0015757738908906914,\"rsi_avg_loss\":0.00127626139760962,\"rsi\":55},{\"period_id\":\"120m210020\",\"size\":\"120m\",\"time\":1512144000000,\"open\":0.20799,\"high\":0.212,\"low\":0.20799,\"close\":0.20841,\"volume\":1272584.15052845,\"close_time\":1512151168203,\"vwap\":0.21001643933254108,\"ema1\":0.20571833815189608,\"sma1\":0.2092280555555555,\"sma2\":0.20910916666666676,\"rsi_avg_gain\":0.001605448805574591,\"rsi_avg_loss\":0.0013744353512718985,\"rsi\":54},{\"period_id\":\"120m210019\",\"size\":\"120m\",\"time\":1512136800000,\"open\":0.20921,\"high\":0.20998,\"low\":0.207,\"close\":0.20876,\"volume\":1429491.255365281,\"close_time\":1512143985731,\"vwap\":0.20885029669556604,\"ema1\":0.2055327063003027,\"sma1\":0.2091541666666666,\"sma2\":0.20902983333333341,\"rsi_avg_gain\":0.0017289448675418674,\"rsi_avg_loss\":0.001453238070600507,\"rsi\":54},{\"period_id\":\"120m210018\",\"size\":\"120m\",\"time\":1512129600000,\"open\":0.20256,\"high\":0.2169,\"low\":0.20121,\"close\":0.2095,\"volume\":2799926.6295868102,\"close_time\":1512136798511,\"vwap\":0.20797820713085763,\"ema1\":0.20531013432101325,\"sma1\":0.20901481481481474,\"sma2\":0.2089548333333334,\"rsi_avg_gain\":0.0018619406265835494,\"rsi_avg_loss\":0.0015081025375697774,\"rsi\":55},{\"period_id\":\"120m210017\",\"size\":\"120m\",\"time\":1512122400000,\"open\":0.202104,\"high\":0.207,\"low\":0.201,\"close\":0.20258,\"volume\":1291062.32261302,\"close_time\":1512129593960,\"vwap\":0.2027329442216166,\"ema1\":0.20502117806729003,\"sma1\":0.2089685185185185,\"sma2\":0.20900850000000007,\"rsi_avg_gain\":0.0014728591363207468,\"rsi_avg_loss\":0.0016241104250751448,\"rsi\":48},{\"period_id\":\"120m210016\",\"size\":\"120m\",\"time\":1512115200000,\"open\":0.19814,\"high\":0.20206,\"low\":0.196,\"close\":0.20206,\"volume\":713837.5213206597,\"close_time\":1512122388374,\"vwap\":0.1990749725255539,\"ema1\":0.205189535175379,\"sma1\":0.20896796296296294,\"sma2\":0.2090548333333334,\"rsi_avg_gain\":0.0015461559929608026,\"rsi_avg_loss\":0.0017490419962347713,\"rsi\":47},{\"period_id\":\"120m210015\",\"size\":\"120m\",\"time\":1512108000000,\"open\":0.19743,\"high\":0.19982,\"low\":0.1961,\"close\":0.1971,\"volume\":557649.4492912301,\"close_time\":1512115180599,\"vwap\":0.19806364007801053,\"ema1\":0.2054053651874741,\"sma1\":0.20899740740740735,\"sma2\":0.2091865000000001,\"rsi_avg_gain\":0.0012835526078039418,\"rsi_avg_loss\":0.0018835836882528307,\"rsi\":41},{\"period_id\":\"120m210014\",\"size\":\"120m\",\"time\":1512100800000,\"open\":0.199,\"high\":0.20197,\"low\":0.19702,\"close\":0.1975,\"volume\":635311.7339892703,\"close_time\":1512107990517,\"vwap\":0.19827076827850804,\"ema1\":0.2059781489935068,\"sma1\":0.20898657407407406,\"sma2\":0.20932833333333345,\"rsi_avg_gain\":0.0013822874237888606,\"rsi_avg_loss\":0.0019977055104261243,\"rsi\":41},{\"period_id\":\"120m210013\",\"size\":\"120m\",\"time\":1512093600000,\"open\":0.20012,\"high\":0.201,\"low\":0.19722,\"close\":0.1976,\"volume\":236566.50866583994,\"close_time\":1512100510000,\"vwap\":0.20264512169549936,\"ema1\":0.2065628489240935,\"sma1\":0.20897259259259257,\"sma2\":0.20943650000000008,\"rsi_avg_gain\":0.001488617225618773,\"rsi_avg_loss\":0.002143682857381981,\"rsi\":41},{\"period_id\":\"120m210012\",\"size\":\"120m\",\"time\":1512086400000,\"open\":0.20222,\"high\":0.2041,\"low\":0.198,\"close\":0.20012,\"volume\":698903.8259039099,\"close_time\":1512093589718,\"vwap\":0.20282156081611016,\"ema1\":0.20718097643609992,\"sma1\":0.20892999999999995,\"sma2\":0.20950633333333343,\"rsi_avg_gain\":0.0016031262429740633,\"rsi_avg_loss\":0.002114735384872903,\"rsi\":43},{\"period_id\":\"120m210011\",\"size\":\"120m\",\"time\":1512079200000,\"open\":0.20296,\"high\":0.20684,\"low\":0.20112,\"close\":0.2026,\"volume\":1227702.9432458305,\"close_time\":1512086391967,\"vwap\":0.20374938404174817,\"ema1\":0.20766794032824476,\"sma1\":0.20887870370370368,\"sma2\":0.20958883333333342,\"rsi_avg_gain\":0.0017264436462797604,\"rsi_avg_loss\":0.0020866381067862027,\"rsi\":45},{\"period_id\":\"120m210010\",\"size\":\"120m\",\"time\":1512072000000,\"open\":0.2039,\"high\":0.2045,\"low\":0.19901,\"close\":0.2024,\"volume\":1258077.1042229799,\"close_time\":1512079169720,\"vwap\":0.201814181830262,\"ema1\":0.20801745345433062,\"sma1\":0.20884907407407405,\"sma2\":0.20968183333333337,\"rsi_avg_gain\":0.0018438623883012802,\"rsi_avg_loss\":0.0022471487303851417,\"rsi\":45},{\"period_id\":\"120m210009\",\"size\":\"120m\",\"time\":1512064800000,\"open\":0.19698,\"high\":0.2046,\"low\":0.19566,\"close\":0.2039,\"volume\":1647673.1437247903,\"close_time\":1512071867725,\"vwap\":0.2022244183543589,\"ema1\":0.2084048640373879,\"sma1\":0.2088435185185185,\"sma2\":0.20974683333333338,\"rsi_avg_gain\":0.001985697956632148,\"rsi_avg_loss\":0.0023046217096455374,\"rsi\":46},{\"period_id\":\"120m210008\",\"size\":\"120m\",\"time\":1512057600000,\"open\":0.19378,\"high\":0.19889,\"low\":0.19002,\"close\":0.197,\"volume\":1298684.4076519401,\"close_time\":1512064799932,\"vwap\":0.1935718381795372,\"ema1\":0.20871554431582845,\"sma1\":0.20887231481481483,\"sma2\":0.20992133333333338,\"rsi_avg_gain\":0.0016076747225269295,\"rsi_avg_loss\":0.0024819003026951944,\"rsi\":39},{\"period_id\":\"120m210007\",\"size\":\"120m\",\"time\":1512050400000,\"open\":0.1957,\"high\":0.196,\"low\":0.19,\"close\":0.19341,\"volume\":3496820.0965343695,\"close_time\":1512057579478,\"vwap\":0.1923905897486901,\"ema1\":0.20952351288933385,\"sma1\":0.20893879629629628,\"sma2\":0.21015883333333338,\"rsi_avg_gain\":0.001455188162721308,\"rsi_avg_loss\":0.002672815710594825,\"rsi\":35},{\"period_id\":\"120m210006\",\"size\":\"120m\",\"time\":1512043200000,\"open\":0.201,\"high\":0.205,\"low\":0.1957,\"close\":0.196,\"volume\":2207844.756551129,\"close_time\":1512050392604,\"vwap\":0.19994088222786274,\"ema1\":0.2106347896403224,\"sma1\":0.208925,\"sma2\":0.2103088333333334,\"rsi_avg_gain\":0.0015671257136998702,\"rsi_avg_loss\":0.0026791861498713493,\"rsi\":37},{\"period_id\":\"120m210005\",\"size\":\"120m\",\"time\":1512036000000,\"open\":0.20723,\"high\":0.20859,\"low\":0.2,\"close\":0.20132,\"volume\":1182444.4129667808,\"close_time\":1512043188497,\"vwap\":0.20172154270760426,\"ema1\":0.211644085477586,\"sma1\":0.20887981481481482,\"sma2\":0.21035600000000004,\"rsi_avg_gain\":0.001687673845522937,\"rsi_avg_loss\":0.002476046622938377,\"rsi\":41},{\"period_id\":\"120m210004\",\"size\":\"120m\",\"time\":1512028800000,\"open\":0.206,\"high\":0.2105,\"low\":0.206,\"close\":0.20719,\"volume\":1239318.2030057004,\"close_time\":1512035986958,\"vwap\":0.2086090980565234,\"ema1\":0.21235609137259193,\"sma1\":0.20882814814814818,\"sma2\":0.21028283333333336,\"rsi_avg_gain\":0.001817494910563163,\"rsi_avg_loss\":0.0022149732862413282,\"rsi\":45},{\"period_id\":\"120m210003\",\"size\":\"120m\",\"time\":1512021600000,\"open\":0.2058,\"high\":0.208,\"low\":0.20034,\"close\":0.206,\"volume\":1034005.3892385698,\"close_time\":1512028795858,\"vwap\":0.20655909348921653,\"ema1\":0.21271237353621897,\"sma1\":0.20880490740740745,\"sma2\":0.21024950000000003,\"rsi_avg_gain\":0.0018657637498372508,\"rsi_avg_loss\":0.0023853558467214304,\"rsi\":44},{\"period_id\":\"120m210002\",\"size\":\"120m\",\"time\":1512014400000,\"open\":0.20938,\"high\":0.21089,\"low\":0.205,\"close\":0.20788,\"volume\":707748.94552877,\"close_time\":1512021589204,\"vwap\":0.20853625348533805,\"ema1\":0.21317529584906167,\"sma1\":0.20873240740740742,\"sma2\":0.21019433333333337,\"rsi_avg_gain\":0.00200928403828627,\"rsi_avg_loss\":0.002424229373392308,\"rsi\":45},{\"period_id\":\"120m210001\",\"size\":\"120m\",\"time\":1512007200000,\"open\":0.20915,\"high\":0.21,\"low\":0.20531,\"close\":0.20941,\"volume\":290501.8359916002,\"close_time\":1512014340616,\"vwap\":0.20874016284543281,\"ema1\":0.21354048866623834,\"sma1\":0.2086953703703704,\"sma2\":0.2100956666666667,\"rsi_avg_gain\":0.0021638443489236754,\"rsi_avg_loss\":0.0024930162482686394,\"rsi\":46},{\"period_id\":\"120m210000\",\"size\":\"120m\",\"time\":1512000000000,\"open\":0.201,\"high\":0.20999,\"low\":0.2,\"close\":0.20998,\"volume\":1165564.5829144393,\"close_time\":1512007030383,\"vwap\":0.20881183111068075,\"ema1\":0.2138253499535651,\"sma1\":0.20865833333333336,\"sma2\":0.2099876666666667,\"rsi_avg_gain\":0.0023302939142254967,\"rsi_avg_loss\":0.002640940575058536,\"rsi\":47},{\"period_id\":\"120m209999\",\"size\":\"120m\",\"time\":1511992800000,\"open\":0.20395,\"high\":0.21,\"low\":0.2,\"close\":0.20105,\"volume\":1814667.9738222098,\"close_time\":1511999980364,\"vwap\":0.20465629089397017,\"ema1\":0.21409054650208684,\"sma1\":0.20863870370370372,\"sma2\":0.2100181666666667,\"rsi_avg_gain\":0.001822624215319766,\"rsi_avg_loss\":0.002844089850063039,\"rsi\":39},{\"period_id\":\"120m209998\",\"size\":\"120m\",\"time\":1511985600000,\"open\":0.1959,\"high\":0.21,\"low\":0.191,\"close\":0.20478,\"volume\":4757349.276058303,\"close_time\":1511992776919,\"vwap\":0.20111518990792254,\"ema1\":0.21498989453671352,\"sma1\":0.20861925925925925,\"sma2\":0.20996150000000005,\"rsi_avg_gain\":0.0019628260780366713,\"rsi_avg_loss\":0.0027759429154525046,\"rsi\":41},{\"period_id\":\"120m209997\",\"size\":\"120m\",\"time\":1511978400000,\"open\":0.21606,\"high\":0.21957,\"low\":0.192,\"close\":0.19899,\"volume\":4420248.183224255,\"close_time\":1511985598964,\"vwap\":0.19687513917074723,\"ema1\":0.2156940251944179,\"sma1\":0.2085112962962963,\"sma2\":0.21001166666666674,\"rsi_avg_gain\":0.0016684280840394933,\"rsi_avg_loss\":0.002989476985871928,\"rsi\":36},{\"period_id\":\"120m209996\",\"size\":\"120m\",\"time\":1511971200000,\"open\":0.21998,\"high\":0.223,\"low\":0.216,\"close\":0.216,\"volume\":2351105.5345271663,\"close_time\":1511978391883,\"vwap\":0.21869097017099173,\"ema1\":0.21684602693196398,\"sma1\":0.20834462962962963,\"sma2\":0.20977833333333334,\"rsi_avg_gain\":0.001796768705888685,\"rsi_avg_loss\":0.0019109752155543843,\"rsi\":48},{\"period_id\":\"120m209995\",\"size\":\"120m\",\"time\":1511964000000,\"open\":0.22841,\"high\":0.23,\"low\":0.218,\"close\":0.218,\"volume\":4281064.854303387,\"close_time\":1511971197605,\"vwap\":0.21983312462148338,\"ema1\":0.21690437361692702,\"sma1\":0.20811185185185188,\"sma2\":0.20949500000000004,\"rsi_avg_gain\":0.0019349816832647377,\"rsi_avg_loss\":0.001904127155212414,\"rsi\":50},{\"period_id\":\"120m209994\",\"size\":\"120m\",\"time\":1511956800000,\"open\":0.22286,\"high\":0.22878,\"low\":0.22169,\"close\":0.22799,\"volume\":3263738.472919323,\"close_time\":1511963974595,\"vwap\":0.22707308475306254,\"ema1\":0.2168288131767151,\"sma1\":0.20787731481481483,\"sma2\":0.20903600000000006,\"rsi_avg_gain\":0.002083826428131256,\"rsi_avg_loss\":0.0012821369363825996,\"rsi\":62},{\"period_id\":\"120m209993\",\"size\":\"120m\",\"time\":1511949600000,\"open\":0.22398,\"high\":0.22488,\"low\":0.22111,\"close\":0.22242,\"volume\":2361820.0209971713,\"close_time\":1511956799508,\"vwap\":0.22274233609345317,\"ema1\":0.21605907615441958,\"sma1\":0.20768370370370373,\"sma2\":0.20868383333333335,\"rsi_avg_gain\":0.0018156592302951999,\"rsi_avg_loss\":0.0013807628545658764,\"rsi\":57},{\"period_id\":\"120m209992\",\"size\":\"120m\",\"time\":1511942400000,\"open\":0.2195,\"high\":0.22488,\"low\":0.2177,\"close\":0.2239,\"volume\":2649396.6815256095,\"close_time\":1511949549969,\"vwap\":0.22267758636730048,\"ema1\":0.2156203917512761,\"sma1\":0.20746259259259267,\"sma2\":0.20830200000000007,\"rsi_avg_gain\":0.001955325324933292,\"rsi_avg_loss\":0.0013731292279940222,\"rsi\":59},{\"period_id\":\"120m209991\",\"size\":\"120m\",\"time\":1511935200000,\"open\":0.2175,\"high\":0.22077,\"low\":0.214,\"close\":0.2205,\"volume\":2973725.5863664374,\"close_time\":1511942396778,\"vwap\":0.2159301965630422,\"ema1\":0.21504938428584686,\"sma1\":0.20727925925925936,\"sma2\":0.2079796666666667,\"rsi_avg_gain\":0.0018441965037743157,\"rsi_avg_loss\":0.0014787545532243315,\"rsi\":55},{\"period_id\":\"120m209990\",\"size\":\"120m\",\"time\":1511928000000,\"open\":0.22001,\"high\":0.22217,\"low\":0.2151,\"close\":0.2175,\"volume\":1326236.08597484,\"close_time\":1511935186922,\"vwap\":0.21826872766308533,\"ema1\":0.2146734797538363,\"sma1\":0.20712027777777783,\"sma2\":0.2077513333333334,\"rsi_avg_gain\":0.001755288542526186,\"rsi_avg_loss\":0.001592504903472357,\"rsi\":52},{\"period_id\":\"120m209989\",\"size\":\"120m\",\"time\":1511920800000,\"open\":0.22788,\"high\":0.22788,\"low\":0.22,\"close\":0.22,\"volume\":579065.919381,\"close_time\":1511926770791,\"vwap\":0.22744423618343,\"ema1\":0.2144785473230664,\"sma1\":0.2068621296296297,\"sma2\":0.20747766666666675,\"rsi_avg_gain\":0.0018903107381051233,\"rsi_avg_loss\":0.0015226975883548457,\"rsi\":55},{\"period_id\":\"120m209988\",\"size\":\"120m\",\"time\":1511913600000,\"open\":0.23498,\"high\":0.235,\"low\":0.22137,\"close\":0.227,\"volume\":1532362.66207104,\"close_time\":1511920523754,\"vwap\":0.22823631799561186,\"ema1\":0.21409775748327786,\"sma1\":0.20650898148148156,\"sma2\":0.20706983333333343,\"rsi_avg_gain\":0.002035719256420902,\"rsi_avg_loss\":0.0011013666336129103,\"rsi\":65},{\"period_id\":\"120m209987\",\"size\":\"120m\",\"time\":1511906400000,\"open\":0.22599,\"high\":0.235,\"low\":0.22402,\"close\":0.23374,\"volume\":5473626.6050023865,\"close_time\":1511913591464,\"vwap\":0.23140790048900678,\"ema1\":0.2132079476545384,\"sma1\":0.20614666666666673,\"sma2\":0.2065958333333334,\"rsi_avg_gain\":0.002192313045376356,\"rsi_avg_loss\":0.0006676256054292884,\"rsi\":77},{\"period_id\":\"120m209986\",\"size\":\"120m\",\"time\":1511899200000,\"open\":0.22344,\"high\":0.2275,\"low\":0.221,\"close\":0.22599,\"volume\":1912175.8815506604,\"close_time\":1511906390069,\"vwap\":0.22517778811349032,\"ema1\":0.21179194404450657,\"sma1\":0.2058545370370371,\"sma2\":0.20629600000000006,\"rsi_avg_gain\":0.0017647986642514598,\"rsi_avg_loss\":0.0007189814212315414,\"rsi\":71},{\"period_id\":\"120m209985\",\"size\":\"120m\",\"time\":1511892000000,\"open\":0.22245,\"high\":0.22395,\"low\":0.22021,\"close\":0.22111,\"volume\":1405796.5932471403,\"close_time\":1511899189317,\"vwap\":0.22281079426180192,\"ema1\":0.21081276777171393,\"sma1\":0.20559564814814818,\"sma2\":0.2060825,\"rsi_avg_gain\":0.0015251677922708032,\"rsi_avg_loss\":0.0007742876844031984,\"rsi\":66},{\"period_id\":\"120m209984\",\"size\":\"120m\",\"time\":1511884800000,\"open\":0.2223,\"high\":0.22769,\"low\":0.2201,\"close\":0.223,\"volume\":3903963.718945954,\"close_time\":1511891998498,\"vwap\":0.22292324034927374,\"ema1\":0.21010261382493559,\"sma1\":0.20531611111111112,\"sma2\":0.20581599999999997,\"rsi_avg_gain\":0.0016424883916762495,\"rsi_avg_loss\":0.0006884636601265212,\"rsi\":70},{\"period_id\":\"120m209983\",\"size\":\"120m\",\"time\":1511877600000,\"open\":0.21498,\"high\":0.2223,\"low\":0.21382,\"close\":0.2223,\"volume\":3476791.268732116,\"close_time\":1511884789277,\"vwap\":0.22010386366553636,\"ema1\":0.20921313891631046,\"sma1\":0.20508092592592592,\"sma2\":0.20551100000000003,\"rsi_avg_gain\":0.0017149874987282682,\"rsi_avg_loss\":0.0007414224032131767,\"rsi\":70},{\"period_id\":\"120m209982\",\"size\":\"120m\",\"time\":1511870400000,\"open\":0.21701,\"high\":0.21897,\"low\":0.21,\"close\":0.21324,\"volume\":1580030.8104449601,\"close_time\":1511877576662,\"vwap\":0.21403921834514752,\"ema1\":0.20831059677260774,\"sma1\":0.20487055555555556,\"sma2\":0.20535616666666667,\"rsi_avg_gain\":0.0011499865370919824,\"rsi_avg_loss\":0.0007984548957680363,\"rsi\":59},{\"period_id\":\"120m209981\",\"size\":\"120m\",\"time\":1511863200000,\"open\":0.2144,\"high\":0.21995,\"low\":0.21399,\"close\":0.21797,\"volume\":2105043.1876786407,\"close_time\":1511870399364,\"vwap\":0.21758387769736715,\"ema1\":0.2079706379293393,\"sma1\":0.20467657407407408,\"sma2\":0.2050981666666667,\"rsi_avg_gain\":0.0012384470399452118,\"rsi_avg_loss\":0.0004960283492886556,\"rsi\":71},{\"period_id\":\"120m209980\",\"size\":\"120m\",\"time\":1511856000000,\"open\":0.21703,\"high\":0.218,\"low\":0.20949,\"close\":0.215,\"volume\":1955352.6909786584,\"close_time\":1511863185135,\"vwap\":0.21409921974239773,\"ema1\":0.20728102675205237,\"sma1\":0.20445435185185185,\"sma2\":0.2048826666666667,\"rsi_avg_gain\":0.0011052506584025357,\"rsi_avg_loss\":0.0005341843761570138,\"rsi\":67},{\"period_id\":\"120m209979\",\"size\":\"120m\",\"time\":1511848800000,\"open\":0.2126,\"high\":0.21772,\"low\":0.2101,\"close\":0.21602,\"volume\":1171198.8276388498,\"close_time\":1511855966678,\"vwap\":0.21507786822222466,\"ema1\":0.20674868376943528,\"sma1\":0.20422814814814816,\"sma2\":0.2046606666666667,\"rsi_avg_gain\":0.0011902699398181154,\"rsi_avg_loss\":0.0004968139435537077,\"rsi\":71},{\"period_id\":\"120m209978\",\"size\":\"120m\",\"time\":1511841600000,\"open\":0.21568,\"high\":0.218,\"low\":0.2126,\"close\":0.213,\"volume\":1039125.3916204604,\"close_time\":1511848787131,\"vwap\":0.21590833242219787,\"ema1\":0.206109282650086,\"sma1\":0.20400620370370373,\"sma2\":0.20447433333333334,\"rsi_avg_gain\":0.0010495214736502786,\"rsi_avg_loss\":0.0005350304007501469,\"rsi\":66},{\"period_id\":\"120m209977\",\"size\":\"120m\",\"time\":1511834400000,\"open\":0.21,\"high\":0.21809,\"low\":0.20801,\"close\":0.21576,\"volume\":3468057.7474857005,\"close_time\":1511841578393,\"vwap\":0.21610360297229536,\"ema1\":0.20563406076388502,\"sma1\":0.2037875,\"sma2\":0.20425250000000003,\"rsi_avg_gain\":0.0011302538947003,\"rsi_avg_loss\":0.00036387889311554185,\"rsi\":76},{\"period_id\":\"120m209976\",\"size\":\"120m\",\"time\":1511827200000,\"open\":0.205,\"high\":0.21,\"low\":0.205,\"close\":0.21,\"volume\":1558481.138053661,\"close_time\":1511834380900,\"vwap\":0.20903645559468523,\"ema1\":0.20493572012691158,\"sma1\":0.2036434259259259,\"sma2\":0.20412683333333337,\"rsi_avg_gain\":0.0007741195789080145,\"rsi_avg_loss\":0.0003918695772013528,\"rsi\":66},{\"period_id\":\"120m209975\",\"size\":\"120m\",\"time\":1511820000000,\"open\":0.20599,\"high\":0.2065,\"low\":0.2048,\"close\":0.205,\"volume\":389789.4495868001,\"close_time\":1511827185105,\"vwap\":0.20560791733451098,\"ema1\":0.20458645944600892,\"sma1\":0.20358314814814815,\"sma2\":0.2040988333333334,\"rsi_avg_gain\":0.0004490518542086307,\"rsi_avg_loss\":0.00042201339083222607,\"rsi\":52},{\"period_id\":\"120m209974\",\"size\":\"120m\",\"time\":1511812800000,\"open\":0.20676,\"high\":0.2072,\"low\":0.205,\"close\":0.20599,\"volume\":1422752.5999248598,\"close_time\":1511819964513,\"vwap\":0.20642896157085958,\"ema1\":0.20455793940780265,\"sma1\":0.20345999999999995,\"sma2\":0.20407566666666666,\"rsi_avg_gain\":0.00048359430453237155,\"rsi_avg_loss\":0.00037832211320393435,\"rsi\":56},{\"period_id\":\"120m209973\",\"size\":\"120m\",\"time\":1511805600000,\"open\":0.2056,\"high\":0.2075,\"low\":0.20438,\"close\":0.20677,\"volume\":1196450.54110655,\"close_time\":1511812798973,\"vwap\":0.20660567424403514,\"ema1\":0.20445917660834076,\"sma1\":0.2033433333333333,\"sma2\":0.20399083333333332,\"rsi_avg_gain\":0.000520793866419477,\"rsi_avg_loss\":0.00034742381421962133,\"rsi\":60},{\"period_id\":\"120m209972\",\"size\":\"120m\",\"time\":1511798400000,\"open\":0.20379,\"high\":0.20596,\"low\":0.2036,\"close\":0.2056,\"volume\":1021665.5822057405,\"close_time\":1511805533503,\"vwap\":0.20508361539371156,\"ema1\":0.2042998094778815,\"sma1\":0.20321870370370365,\"sma2\":0.20394649999999998,\"rsi_avg_gain\":0.0004708549330671288,\"rsi_avg_loss\":0.000374148723005746,\"rsi\":56},{\"period_id\":\"120m209971\",\"size\":\"120m\",\"time\":1511791200000,\"open\":0.20492,\"high\":0.2057,\"low\":0.20361,\"close\":0.20362,\"volume\":1156598.33650544,\"close_time\":1511798339155,\"vwap\":0.20502449409804344,\"ema1\":0.20421014116601127,\"sma1\":0.2030909259259259,\"sma2\":0.20390683333333334,\"rsi_avg_gain\":0.00035476685099536875,\"rsi_avg_loss\":0.00040292939400618803,\"rsi\":47},{\"period_id\":\"120m209970\",\"size\":\"120m\",\"time\":1511784000000,\"open\":0.20488,\"high\":0.205,\"low\":0.203,\"close\":0.20499,\"volume\":1106405.0097936601,\"close_time\":1511791177277,\"vwap\":0.2041027243056243,\"ema1\":0.20425084055677067,\"sma1\":0.20297490740740737,\"sma2\":0.20384716666666666,\"rsi_avg_gain\":0.00038205660876424325,\"rsi_avg_loss\":0.00032853934739127865,\"rsi\":54},{\"period_id\":\"120m209969\",\"size\":\"120m\",\"time\":1511776800000,\"open\":0.2043,\"high\":0.20497,\"low\":0.20151,\"close\":0.2045,\"volume\":1162813.67094193,\"close_time\":1511783982966,\"vwap\":0.2038686955413727,\"ema1\":0.2041998640434445,\"sma1\":0.20285972222222218,\"sma2\":0.2037865,\"rsi_avg_gain\":0.0003737532709768759,\"rsi_avg_loss\":0.00035381160488291545,\"rsi\":51},{\"period_id\":\"120m209968\",\"size\":\"120m\",\"time\":1511769600000,\"open\":0.2048,\"high\":0.2055,\"low\":0.202,\"close\":0.20445,\"volume\":1043370.4015265596,\"close_time\":1511776708321,\"vwap\":0.2043587737226767,\"ema1\":0.20417916501195793,\"sma1\":0.20275324074074075,\"sma2\":0.20371350000000002,\"rsi_avg_gain\":0.0003986573687443283,\"rsi_avg_loss\":0.00038102788218160124,\"rsi\":51},{\"period_id\":\"120m209967\",\"size\":\"120m\",\"time\":1511762400000,\"open\":0.204,\"high\":0.2056,\"low\":0.2035,\"close\":0.2048,\"volume\":727163.5247073199,\"close_time\":1511769598414,\"vwap\":0.20466129033318572,\"ema1\":0.20416048673692055,\"sma1\":0.20261805555555554,\"sma2\":0.20366683333333338,\"rsi_avg_gain\":0.0004293233201861998,\"rsi_avg_loss\":0.00038341464234941546,\"rsi\":53},{\"period_id\":\"120m209966\",\"size\":\"120m\",\"time\":1511755200000,\"open\":0.20399,\"high\":0.2049,\"low\":0.2035,\"close\":0.2049,\"volume\":169624.14325531002,\"close_time\":1511762296420,\"vwap\":0.20402041338014235,\"ema1\":0.20411638237394955,\"sma1\":0.20250296296296297,\"sma2\":0.2035981666666667,\"rsi_avg_gain\":0.0004623481909697536,\"rsi_avg_loss\":0.00040521576868398674,\"rsi\":53},{\"period_id\":\"120m209965\",\"size\":\"120m\",\"time\":1511748000000,\"open\":0.20393,\"high\":0.20403,\"low\":0.20161,\"close\":0.20349,\"volume\":152512.01532671004,\"close_time\":1511754632407,\"vwap\":0.20243243959812154,\"ema1\":0.20406233977904953,\"sma1\":0.20239157407407407,\"sma2\":0.2035233333333334,\"rsi_avg_gain\":0.0003894518979674274,\"rsi_avg_loss\":0.0004363862124289088,\"rsi\":47},{\"period_id\":\"120m209964\",\"size\":\"120m\",\"time\":1511740800000,\"open\":0.20231,\"high\":0.20396,\"low\":0.2013,\"close\":0.20352,\"volume\":209917.99183870008,\"close_time\":1511747968177,\"vwap\":0.2024182985184451,\"ema1\":0.2041018114879495,\"sma1\":0.20228796296296295,\"sma2\":0.2034266666666667,\"rsi_avg_gain\":0.00041940973627261415,\"rsi_avg_loss\":0.0004676466903080555,\"rsi\":47},{\"period_id\":\"120m209963\",\"size\":\"120m\",\"time\":1511733600000,\"open\":0.2026,\"high\":0.20495,\"low\":0.201,\"close\":0.20325,\"volume\":635724.2675824101,\"close_time\":1511740746473,\"vwap\":0.2024055922222081,\"ema1\":0.20414193641815293,\"sma1\":0.20218731481481478,\"sma2\":0.20334450000000007,\"rsi_avg_gain\":0.00043090279290896753,\"rsi_avg_loss\":0.0005036195126394444,\"rsi\":46},{\"period_id\":\"120m209962\",\"size\":\"120m\",\"time\":1511726400000,\"open\":0.202,\"high\":0.20407,\"low\":0.201,\"close\":0.2026,\"volume\":465787.79993479024,\"close_time\":1511733598819,\"vwap\":0.20242545409139776,\"ema1\":0.20420344927457726,\"sma1\":0.20209481481481475,\"sma2\":0.20330283333333338,\"rsi_avg_gain\":0.000414049161594274,\"rsi_avg_loss\":0.0005423594751501709,\"rsi\":43},{\"period_id\":\"120m209961\",\"size\":\"120m\",\"time\":1511719200000,\"open\":0.2035,\"high\":0.20509,\"low\":0.2011,\"close\":0.202,\"volume\":861816.7927144095,\"close_time\":1511726348696,\"vwap\":0.20243279529276398,\"ema1\":0.2043140319831688,\"sma1\":0.201999074074074,\"sma2\":0.20326950000000005,\"rsi_avg_gain\":0.00039974525094768046,\"rsi_avg_loss\":0.0005840794347771072,\"rsi\":41},{\"period_id\":\"120m209960\",\"size\":\"120m\",\"time\":1511712000000,\"open\":0.20403,\"high\":0.2056,\"low\":0.203,\"close\":0.2035,\"volume\":878007.2638635704,\"close_time\":1511719170255,\"vwap\":0.2044585569908536,\"ema1\":0.20447362039580114,\"sma1\":0.20191018518518516,\"sma2\":0.20324416666666673,\"rsi_avg_gain\":0.00043049488563596356,\"rsi_avg_loss\":0.0005136240066830405,\"rsi\":46},{\"period_id\":\"120m209959\",\"size\":\"120m\",\"time\":1511704800000,\"open\":0.20491,\"high\":0.20563,\"low\":0.204,\"close\":0.204,\"volume\":516405.63428572,\"close_time\":1511711912210,\"vwap\":0.2050798393716548,\"ema1\":0.20454076662999432,\"sma1\":0.2018391666666666,\"sma2\":0.2032106666666667,\"rsi_avg_gain\":0.00046360987683873,\"rsi_avg_loss\":0.0005146720071971205,\"rsi\":47},{\"period_id\":\"120m209958\",\"size\":\"120m\",\"time\":1511697600000,\"open\":0.20503,\"high\":0.2057,\"low\":0.2039,\"close\":0.205,\"volume\":523334.76196654997,\"close_time\":1511704792409,\"vwap\":0.20517542645620465,\"ema1\":0.20457806088033875,\"sma1\":0.20177712962962957,\"sma2\":0.20317433333333337,\"rsi_avg_gain\":0.0004992721750570939,\"rsi_avg_loss\":0.000477339084673822,\"rsi\":51},{\"period_id\":\"120m209957\",\"size\":\"120m\",\"time\":1511690400000,\"open\":0.2046,\"high\":0.20647,\"low\":0.2034,\"close\":0.2058,\"volume\":814346.0664185897,\"close_time\":1511697529865,\"vwap\":0.20585730698045754,\"ema1\":0.20454896163070693,\"sma1\":0.20171722222222216,\"sma2\":0.2031126666666667,\"rsi_avg_gain\":0.0005376777269845626,\"rsi_avg_loss\":0.00045251901426411427,\"rsi\":54},{\"period_id\":\"120m209956\",\"size\":\"120m\",\"time\":1511683200000,\"open\":0.20497,\"high\":0.2061,\"low\":0.203,\"close\":0.20484,\"volume\":532312.11396432,\"close_time\":1511690345924,\"vwap\":0.2047070597957785,\"ema1\":0.2044626831224798,\"sma1\":0.2016079629629629,\"sma2\":0.20306733333333335,\"rsi_avg_gain\":0.0005051913982910661,\"rsi_avg_loss\":0.00048732816920750763,\"rsi\":51},{\"period_id\":\"120m209955\",\"size\":\"120m\",\"time\":1511676000000,\"open\":0.20519,\"high\":0.20636,\"low\":0.20321,\"close\":0.205,\"volume\":265488.4841529699,\"close_time\":1511683195091,\"vwap\":0.20468861838366198,\"ema1\":0.20443666126885773,\"sma1\":0.2015114814814814,\"sma2\":0.20302150000000005,\"rsi_avg_gain\":0.0005440522750826866,\"rsi_avg_loss\":0.0005125072591465471,\"rsi\":51},{\"period_id\":\"120m209954\",\"size\":\"120m\",\"time\":1511668800000,\"open\":0.20465,\"high\":0.20601,\"low\":0.20355,\"close\":0.20601,\"volume\":185167.23776778998,\"close_time\":1511675783840,\"vwap\":0.20476285325495938,\"ema1\":0.2043978103218824,\"sma1\":0.201427037037037,\"sma2\":0.20296283333333337,\"rsi_avg_gain\":0.0005859024500890471,\"rsi_avg_loss\":0.0004742385867732038,\"rsi\":55},{\"period_id\":\"120m209953\",\"size\":\"120m\",\"time\":1511661600000,\"open\":0.204,\"high\":0.20552,\"low\":0.2036,\"close\":0.20409,\"volume\":169137.82431805995,\"close_time\":1511668637151,\"vwap\":0.20477030904754115,\"ema1\":0.2042866248268398,\"sma1\":0.20133425925925919,\"sma2\":0.2028946666666667,\"rsi_avg_gain\":0.000483279561634358,\"rsi_avg_loss\":0.0005107184780634502,\"rsi\":49},{\"period_id\":\"120m209952\",\"size\":\"120m\",\"time\":1511654400000,\"open\":0.2072,\"high\":0.2072,\"low\":0.2036,\"close\":0.20431,\"volume\":606910.1181575202,\"close_time\":1511661581796,\"vwap\":0.20479625738460477,\"ema1\":0.20430018515972528,\"sma1\":0.2012018518518518,\"sma2\":0.2029205,\"rsi_avg_gain\":0.0005204549125293086,\"rsi_avg_loss\":0.000533081437914485,\"rsi\":49},{\"period_id\":\"120m209951\",\"size\":\"120m\",\"time\":1511647200000,\"open\":0.20798,\"high\":0.208,\"low\":0.2062,\"close\":0.20755,\"volume\":640851.1185827403,\"close_time\":1511654269926,\"vwap\":0.2075846707554601,\"ema1\":0.2042995082741891,\"sma1\":0.20115555555555548,\"sma2\":0.20279466666666665,\"rsi_avg_gain\":0.0005604899058007939,\"rsi_avg_loss\":0.00032485693313867456,\"rsi\":63},{\"period_id\":\"120m209950\",\"size\":\"120m\",\"time\":1511640000000,\"open\":0.2078,\"high\":0.208,\"low\":0.207,\"close\":0.20798,\"volume\":583376.7692860903,\"close_time\":1511647194817,\"vwap\":0.20767132830885707,\"ema1\":0.20407533643102974,\"sma1\":0.2011648148148147,\"sma2\":0.20277833333333334,\"rsi_avg_gain\":0.0006036045139393165,\"rsi_avg_loss\":0.0003167690049185737,\"rsi\":66},{\"period_id\":\"120m209949\",\"size\":\"120m\",\"time\":1511632800000,\"open\":0.20704,\"high\":0.208,\"low\":0.20698,\"close\":0.2078,\"volume\":693878.2040950699,\"close_time\":1511639923044,\"vwap\":0.20764027302221466,\"ema1\":0.20380604928834212,\"sma1\":0.20109999999999992,\"sma2\":0.2027316666666667,\"rsi_avg_gain\":0.0006361894765500344,\"rsi_avg_loss\":0.00034113585145077166,\"rsi\":65},{\"period_id\":\"120m209948\",\"size\":\"120m\",\"time\":1511625600000,\"open\":0.20765,\"high\":0.2085,\"low\":0.20601,\"close\":0.20747,\"volume\":1253601.6867732797,\"close_time\":1511632705865,\"vwap\":0.20746688507124023,\"ema1\":0.20353060441167606,\"sma1\":0.20111203703703695,\"sma2\":0.20269050000000002,\"rsi_avg_gain\":0.0006597425132077275,\"rsi_avg_loss\":0.0003673770707931387,\"rsi\":64},{\"period_id\":\"120m209947\",\"size\":\"120m\",\"time\":1511618400000,\"open\":0.20502,\"high\":0.209,\"low\":0.20309,\"close\":0.20766,\"volume\":2273022.4174963282,\"close_time\":1511625590556,\"vwap\":0.20725163527699955,\"ema1\":0.20325892195730888,\"sma1\":0.2012138888888888,\"sma2\":0.20263783333333332,\"rsi_avg_gain\":0.0007104919373006295,\"rsi_avg_loss\":0.0003810214608541476,\"rsi\":65},{\"period_id\":\"120m209946\",\"size\":\"120m\",\"time\":1511611200000,\"open\":0.204,\"high\":0.2065,\"low\":0.20301,\"close\":0.205,\"volume\":1099203.7551069506,\"close_time\":1511618393805,\"vwap\":0.20553267130515418,\"ema1\":0.202955399333675,\"sma1\":0.20133888888888882,\"sma2\":0.20258283333333332,\"rsi_avg_gain\":0.0005605297786314454,\"rsi_avg_loss\":0.00041033080399677436,\"rsi\":58},{\"period_id\":\"120m209945\",\"size\":\"120m\",\"time\":1511604000000,\"open\":0.20388,\"high\":0.2045,\"low\":0.20223,\"close\":0.20415,\"volume\":416695.1976930502,\"close_time\":1511611180381,\"vwap\":0.20339176130298536,\"ema1\":0.20281439239116986,\"sma1\":0.2010916666666666,\"sma2\":0.20257166666666668,\"rsi_avg_gain\":0.0005382628385261727,\"rsi_avg_loss\":0.0004418947119965262,\"rsi\":55},{\"period_id\":\"120m209944\",\"size\":\"120m\",\"time\":1511596800000,\"open\":0.204,\"high\":0.2043,\"low\":0.2,\"close\":0.2028,\"volume\":499000.01411457005,\"close_time\":1511603793654,\"vwap\":0.2030166529202067,\"ema1\":0.20272228152159535,\"sma1\":0.20085351851851846,\"sma2\":0.202525,\"rsi_avg_gain\":0.00047582151841280213,\"rsi_avg_loss\":0.0004758866129193359,\"rsi\":50},{\"period_id\":\"120m209943\",\"size\":\"120m\",\"time\":1511589600000,\"open\":0.20457,\"high\":0.20497,\"low\":0.202,\"close\":0.204,\"volume\":533388.0454640301,\"close_time\":1511596780677,\"vwap\":0.20399779039183372,\"ema1\":0.20271692162653296,\"sma1\":0.2006183333333333,\"sma2\":0.20245,\"rsi_avg_gain\":0.0005124231736753253,\"rsi_avg_loss\":0.0004201855831439018,\"rsi\":55},{\"period_id\":\"120m209942\",\"size\":\"120m\",\"time\":1511582400000,\"open\":0.20222,\"high\":0.20499,\"low\":0.20222,\"close\":0.20457,\"volume\":236988.47305102003,\"close_time\":1511589387547,\"vwap\":0.2023357624148994,\"ema1\":0.20262843346284556,\"sma1\":0.2003841666666666,\"sma2\":0.2023905,\"rsi_avg_gain\":0.0005518403408811196,\"rsi_avg_loss\":0.00040866139723189315,\"rsi\":57},{\"period_id\":\"120m209941\",\"size\":\"120m\",\"time\":1511575200000,\"open\":0.20348,\"high\":0.2045,\"low\":0.2016,\"close\":0.20349,\"volume\":265972.30650534004,\"close_time\":1511581116624,\"vwap\":0.2022816735336129,\"ema1\":0.20249453232235215,\"sma1\":0.20015703703703697,\"sma2\":0.20233233333333328,\"rsi_avg_gain\":0.000511212674795052,\"rsi_avg_loss\":0.00044009688932665416,\"rsi\":54},{\"period_id\":\"120m209940\",\"size\":\"120m\",\"time\":1511568000000,\"open\":0.20287,\"high\":0.20355,\"low\":0.2,\"close\":0.2035,\"volume\":868469.9902756196,\"close_time\":1511575142890,\"vwap\":0.2022274865615268,\"ema1\":0.2024258793790661,\"sma1\":0.19994731481481476,\"sma2\":0.20222166666666663,\"rsi_avg_gain\":0.0005505367267023637,\"rsi_avg_loss\":0.00047318126542870585,\"rsi\":54},{\"period_id\":\"120m209939\",\"size\":\"120m\",\"time\":1511560800000,\"open\":0.20138,\"high\":0.203,\"low\":0.2001,\"close\":0.20288,\"volume\":814359.5293872693,\"close_time\":1511567995794,\"vwap\":0.20205721748316338,\"ema1\":0.20235180209486375,\"sma1\":0.19972231481481478,\"sma2\":0.20209016666666665,\"rsi_avg_gain\":0.0005451933979871622,\"rsi_avg_loss\":0.0005095798243078371,\"rsi\":52},{\"period_id\":\"120m209938\",\"size\":\"120m\",\"time\":1511553600000,\"open\":0.202,\"high\":0.2029,\"low\":0.20001,\"close\":0.20138,\"volume\":909864.2336225205,\"close_time\":1511560780503,\"vwap\":0.20175811111410935,\"ema1\":0.2023153746531302,\"sma1\":0.1995009259259259,\"sma2\":0.2019838333333333,\"rsi_avg_gain\":0.00047174673629386696,\"rsi_avg_loss\":0.0005487782723315168,\"rsi\":46},{\"period_id\":\"120m209937\",\"size\":\"120m\",\"time\":1511546400000,\"open\":0.202,\"high\":0.20249,\"low\":0.20015,\"close\":0.202,\"volume\":696364.2606540502,\"close_time\":1511553569847,\"vwap\":0.20186968384870638,\"ema1\":0.2023798832498978,\"sma1\":0.19928240740740738,\"sma2\":0.20186599999999996,\"rsi_avg_gain\":0.0005080349467780106,\"rsi_avg_loss\":0.0005432996778954789,\"rsi\":48},{\"period_id\":\"120m209936\",\"size\":\"120m\",\"time\":1511539200000,\"open\":0.20135,\"high\":0.2028,\"low\":0.1999,\"close\":0.202,\"volume\":838008.0614882995,\"close_time\":1511546341797,\"vwap\":0.20196351433239143,\"ema1\":0.20240608209471833,\"sma1\":0.19905398148148143,\"sma2\":0.2017648333333333,\"rsi_avg_gain\":0.0005471145580686268,\"rsi_avg_loss\":0.0005850919608105158,\"rsi\":48},{\"period_id\":\"120m209935\",\"size\":\"120m\",\"time\":1511532000000,\"open\":0.20116,\"high\":0.20293,\"low\":0.199,\"close\":0.201,\"volume\":1265678.3266009598,\"close_time\":1511539137387,\"vwap\":0.20077697966523197,\"ema1\":0.20243408775642305,\"sma1\":0.19883574074074073,\"sma2\":0.20167316666666663,\"rsi_avg_gain\":0.0005122772163815981,\"rsi_avg_loss\":0.0006300990347190171,\"rsi\":45},{\"period_id\":\"120m209934\",\"size\":\"120m\",\"time\":1511524800000,\"open\":0.20247,\"high\":0.20311,\"low\":0.20045,\"close\":0.20045,\"volume\":1051248.8631149305,\"close_time\":1511531987163,\"vwap\":0.20101285319243772,\"ema1\":0.2025329903603143,\"sma1\":0.1986217592592592,\"sma2\":0.20158066666666663,\"rsi_avg_gain\":0.0005093754637955655,\"rsi_avg_loss\":0.0006785681912358645,\"rsi\":43},{\"period_id\":\"120m209933\",\"size\":\"120m\",\"time\":1511517600000,\"open\":0.20097,\"high\":0.203,\"low\":0.2,\"close\":0.20129,\"volume\":847409.5129088698,\"close_time\":1511524791332,\"vwap\":0.19998643573621824,\"ema1\":0.2026766448679222,\"sma1\":0.1984087962962962,\"sma2\":0.20148833333333335,\"rsi_avg_gain\":0.0005485581917798397,\"rsi_avg_loss\":0.0006661503597924688,\"rsi\":45},{\"period_id\":\"120m209932\",\"size\":\"120m\",\"time\":1511510400000,\"open\":0.2011,\"high\":0.2052,\"low\":0.198,\"close\":0.20099,\"volume\":2117724.14763733,\"close_time\":1511517580684,\"vwap\":0.1991828420888131,\"ema1\":0.20277227554846855,\"sma1\":0.1981754629629629,\"sma2\":0.20136316666666668,\"rsi_avg_gain\":0.0005676780526859816,\"rsi_avg_loss\":0.0007173926951611203,\"rsi\":44},{\"period_id\":\"120m209931\",\"size\":\"120m\",\"time\":1511503200000,\"open\":0.2038,\"high\":0.20585,\"low\":0.20116,\"close\":0.20116,\"volume\":970807.4843226504,\"close_time\":1511510399395,\"vwap\":0.20212846548179417,\"ema1\":0.20289519110353535,\"sma1\":0.1979268518518518,\"sma2\":0.20119150000000005,\"rsi_avg_gain\":0.0006113455952002879,\"rsi_avg_loss\":0.0007594998255581292,\"rsi\":45},{\"period_id\":\"120m209930\",\"size\":\"120m\",\"time\":1511496000000,\"open\":0.20358,\"high\":0.20486,\"low\":0.20251,\"close\":0.2038,\"volume\":746805.5528653798,\"close_time\":1511503045501,\"vwap\":0.20427672273648054,\"ema1\":0.2030148594555033,\"sma1\":0.1976733333333333,\"sma2\":0.20100000000000004,\"rsi_avg_gain\":0.0006583721794464639,\"rsi_avg_loss\":0.0006148459659856773,\"rsi\":52},{\"period_id\":\"120m209929\",\"size\":\"120m\",\"time\":1511488800000,\"open\":0.20201,\"high\":0.20798,\"low\":0.20201,\"close\":0.20358,\"volume\":230578.55803913996,\"close_time\":1511495740182,\"vwap\":0.20442737177897718,\"ema1\":0.2029607118317449,\"sma1\":0.19739055555555549,\"sma2\":0.20084200000000008,\"rsi_avg_gain\":0.0006920931163269614,\"rsi_avg_loss\":0.0006621418095230372,\"rsi\":51},{\"period_id\":\"120m209928\",\"size\":\"120m\",\"time\":1511481600000,\"open\":0.2052,\"high\":0.20711,\"low\":0.20201,\"close\":0.20253,\"volume\":1199177.8151506893,\"close_time\":1511488793439,\"vwap\":0.20442554467564478,\"ema1\":0.20291800230289972,\"sma1\":0.19711601851851843,\"sma2\":0.2006783333333334,\"rsi_avg_gain\":0.0006645618175828797,\"rsi_avg_loss\":0.0007130757948709632,\"rsi\":48},{\"period_id\":\"120m209927\",\"size\":\"120m\",\"time\":1511474400000,\"open\":0.2079,\"high\":0.2095,\"low\":0.2053,\"close\":0.2053,\"volume\":1323081.9437753898,\"close_time\":1511481589039,\"vwap\":0.20651693340532637,\"ema1\":0.20294476108241005,\"sma1\":0.1968067592592592,\"sma2\":0.2004733333333334,\"rsi_avg_gain\":0.0007156819573969473,\"rsi_avg_loss\":0.0005548508560148817,\"rsi\":56},{\"period_id\":\"120m209926\",\"size\":\"120m\",\"time\":1511467200000,\"open\":0.2083,\"high\":0.21,\"low\":0.20729,\"close\":0.208,\"volume\":1275330.9965464398,\"close_time\":1511474376676,\"vwap\":0.20921280921840252,\"ema1\":0.20278233081223143,\"sma1\":0.19650212962962957,\"sma2\":0.20023533333333343,\"rsi_avg_gain\":0.000770734415658251,\"rsi_avg_loss\":0.00038983938340064327,\"rsi\":66},{\"period_id\":\"120m209925\",\"size\":\"120m\",\"time\":1511460000000,\"open\":0.20701,\"high\":0.2083,\"low\":0.20646,\"close\":0.2083,\"volume\":1232249.5481780006,\"close_time\":1511467164713,\"vwap\":0.20797042651512745,\"ema1\":0.20242249155790257,\"sma1\":0.1962262037037037,\"sma2\":0.19996883333333343,\"rsi_avg_gain\":0.0008300216784011934,\"rsi_avg_loss\":0.00039675010520069106,\"rsi\":68},{\"period_id\":\"120m209924\",\"size\":\"120m\",\"time\":1511452800000,\"open\":0.204,\"high\":0.208,\"low\":0.20257,\"close\":0.20701,\"volume\":3353333.3538510166,\"close_time\":1511459973168,\"vwap\":0.20699429945590722,\"ema1\":0.20201714614810273,\"sma1\":0.19595518518518512,\"sma2\":0.1997133333333334,\"rsi_avg_gain\":0.0007946387305858996,\"rsi_avg_loss\":0.0004272693440622827,\"rsi\":65},{\"period_id\":\"120m209923\",\"size\":\"120m\",\"time\":1511445600000,\"open\":0.2038,\"high\":0.204,\"low\":0.20277,\"close\":0.204,\"volume\":1068651.5517517899,\"close_time\":1511452787259,\"vwap\":0.20385367254800757,\"ema1\":0.20167281139969603,\"sma1\":0.1957237037037037,\"sma2\":0.1995003333333334,\"rsi_avg_gain\":0.0006242263252463525,\"rsi_avg_loss\":0.0004601362166824583,\"rsi\":58},{\"period_id\":\"120m209922\",\"size\":\"120m\",\"time\":1511438400000,\"open\":0.2015,\"high\":0.20473,\"low\":0.20108,\"close\":0.20395,\"volume\":1206952.5871110403,\"close_time\":1511445599875,\"vwap\":0.2040668522806942,\"ema1\":0.20151231563415783,\"sma1\":0.19546222222222218,\"sma2\":0.19929783333333342,\"rsi_avg_gain\":0.0006683975810345339,\"rsi_avg_loss\":0.0004955313102734167,\"rsi\":57},{\"period_id\":\"120m209921\",\"size\":\"120m\",\"time\":1511431200000,\"open\":0.20205,\"high\":0.203,\"low\":0.2004,\"close\":0.20249,\"volume\":1267427.7514401998,\"close_time\":1511438314499,\"vwap\":0.20188369840624695,\"ema1\":0.2013441994709963,\"sma1\":0.19522138888888882,\"sma2\":0.19912800000000005,\"rsi_avg_gain\":0.0006075050872679604,\"rsi_avg_loss\":0.0005336491033713719,\"rsi\":53},{\"period_id\":\"120m209920\",\"size\":\"120m\",\"time\":1511424000000,\"open\":0.20271,\"high\":0.20348,\"low\":0.201,\"close\":0.20207,\"volume\":1254282.6533809998,\"close_time\":1511431188336,\"vwap\":0.20203424373576476,\"ema1\":0.2012651787448581,\"sma1\":0.19496888888888883,\"sma2\":0.19896916666666672,\"rsi_avg_gain\":0.0006219285555193417,\"rsi_avg_loss\":0.000574699034399939,\"rsi\":52},{\"period_id\":\"120m209919\",\"size\":\"120m\",\"time\":1511416800000,\"open\":0.20352,\"high\":0.20488,\"low\":0.2016,\"close\":0.2027,\"volume\":783677.1050473005,\"close_time\":1511423997249,\"vwap\":0.20280361053037946,\"ema1\":0.2012096738307104,\"sma1\":0.19470703703703704,\"sma2\":0.1987408333333334,\"rsi_avg_gain\":0.0006697692136362142,\"rsi_avg_loss\":0.0005704451139691657,\"rsi\":54},{\"period_id\":\"120m209918\",\"size\":\"120m\",\"time\":1511409600000,\"open\":0.20235,\"high\":0.2044,\"low\":0.20158,\"close\":0.20182,\"volume\":332666.98047993996,\"close_time\":1511416739820,\"vwap\":0.20355845283824225,\"ema1\":0.20110689271558696,\"sma1\":0.19445148148148148,\"sma2\":0.19854850000000004,\"rsi_avg_gain\":0.0006535976146851543,\"rsi_avg_loss\":0.0006143255073514092,\"rsi\":52},{\"period_id\":\"120m209917\",\"size\":\"120m\",\"time\":1511402400000,\"open\":0.20245,\"high\":0.20319,\"low\":0.2015,\"close\":0.20245,\"volume\":94018.41895133,\"close_time\":1511409541858,\"vwap\":0.20357826271694573,\"ema1\":0.2010577129028688,\"sma1\":0.19421824074074076,\"sma2\":0.19830600000000007,\"rsi_avg_gain\":0.0007038743542763201,\"rsi_avg_loss\":0.0006131197771476722,\"rsi\":53},{\"period_id\":\"120m209916\",\"size\":\"120m\",\"time\":1511395200000,\"open\":0.20288,\"high\":0.20406,\"low\":0.2015,\"close\":0.20246,\"volume\":905025.8519175604,\"close_time\":1511402350399,\"vwap\":0.20358883659785137,\"ema1\":0.20096169310306666,\"sma1\":0.1939537962962963,\"sma2\":0.1980830000000001,\"rsi_avg_gain\":0.0007580185353744986,\"rsi_avg_loss\":0.0006595136061590309,\"rsi\":53},{\"period_id\":\"120m209915\",\"size\":\"120m\",\"time\":1511388000000,\"open\":0.20468,\"high\":0.205,\"low\":0.2016,\"close\":0.20332,\"volume\":1224339.8817371898,\"close_time\":1511395061474,\"vwap\":0.20385554338256703,\"ema1\":0.20085836159293333,\"sma1\":0.19366212962962964,\"sma2\":0.1979130000000001,\"rsi_avg_gain\":0.0008163276534802293,\"rsi_avg_loss\":0.0006440915758635717,\"rsi\":56},{\"period_id\":\"120m209914\",\"size\":\"120m\",\"time\":1511380800000,\"open\":0.20168,\"high\":0.20488,\"low\":0.20151,\"close\":0.2046,\"volume\":1173801.88607649,\"close_time\":1511387995458,\"vwap\":0.20281742741661915,\"ema1\":0.20068859342692874,\"sma1\":0.19336222222222224,\"sma2\":0.19770300000000005,\"rsi_avg_gain\":0.0008791220883633238,\"rsi_avg_loss\":0.0005951755432376923,\"rsi\":60},{\"period_id\":\"120m209913\",\"size\":\"120m\",\"time\":1511373600000,\"open\":0.2012,\"high\":0.20292,\"low\":0.2,\"close\":0.20168,\"volume\":813905.8158250905,\"close_time\":1511380776554,\"vwap\":0.20167279876603447,\"ema1\":0.20041884124947554,\"sma1\":0.1930805555555556,\"sma2\":0.19755000000000006,\"rsi_avg_gain\":0.0007221314797758867,\"rsi_avg_loss\":0.0006409582773328993,\"rsi\":53},{\"period_id\":\"120m209912\",\"size\":\"120m\",\"time\":1511366400000,\"open\":0.20163,\"high\":0.204,\"low\":0.20009,\"close\":0.20294,\"volume\":1788743.1193710098,\"close_time\":1511373588986,\"vwap\":0.20210542238976145,\"ema1\":0.20033186478392212,\"sma1\":0.192797962962963,\"sma2\":0.1973983333333334,\"rsi_avg_gain\":0.0007776800551432626,\"rsi_avg_loss\":0.000593339683281583,\"rsi\":57},{\"period_id\":\"120m209911\",\"size\":\"120m\",\"time\":1511359200000,\"open\":0.20138,\"high\":0.202,\"low\":0.2,\"close\":0.20124,\"volume\":1000537.6612222702,\"close_time\":1511366359171,\"vwap\":0.20099521533764805,\"ema1\":0.20015199338970985,\"sma1\":0.19253407407407414,\"sma2\":0.1972928333333334,\"rsi_avg_gain\":0.0007067323670773591,\"rsi_avg_loss\":0.0006389811973801663,\"rsi\":53},{\"period_id\":\"120m209910\",\"size\":\"120m\",\"time\":1511352000000,\"open\":0.20086,\"high\":0.20185,\"low\":0.2,\"close\":0.20141,\"volume\":970720.5860405697,\"close_time\":1511359173776,\"vwap\":0.20088328728710408,\"ema1\":0.20007695845106915,\"sma1\":0.19227620370370374,\"sma2\":0.19719100000000003,\"rsi_avg_gain\":0.0007610963953140791,\"rsi_avg_loss\":0.0006750566741017173,\"rsi\":53},{\"period_id\":\"120m209909\",\"size\":\"120m\",\"time\":1511344800000,\"open\":0.20004,\"high\":0.202,\"low\":0.2,\"close\":0.20086,\"volume\":752880.6238023305,\"close_time\":1511351996965,\"vwap\":0.20111366227737362,\"ema1\":0.1999850245511429,\"sma1\":0.19202620370370374,\"sma2\":0.1971566666666667,\"rsi_avg_gain\":0.0007773345795690085,\"rsi_avg_loss\":0.0007269841105710801,\"rsi\":52},{\"period_id\":\"120m209908\",\"size\":\"120m\",\"time\":1511337600000,\"open\":0.20198,\"high\":0.202,\"low\":0.19969,\"close\":0.20007,\"volume\":653744.4946405801,\"close_time\":1511344770041,\"vwap\":0.20095295486210962,\"ema1\":0.19992468141673894,\"sma1\":0.19176601851851857,\"sma2\":0.19703050000000003,\"rsi_avg_gain\":0.0007763603164589312,\"rsi_avg_loss\":0.000782905965230394,\"rsi\":50},{\"period_id\":\"120m209907\",\"size\":\"120m\",\"time\":1511330400000,\"open\":0.20033,\"high\":0.203,\"low\":0.2,\"close\":0.202,\"volume\":652858.3084820701,\"close_time\":1511337347406,\"vwap\":0.20009707388641026,\"ema1\":0.19991465944547956,\"sma1\":0.19146509259259265,\"sma2\":0.19679716666666672,\"rsi_avg_gain\":0.000836080340801926,\"rsi_avg_loss\":0.0006946679625558077,\"rsi\":55},{\"period_id\":\"120m209906\",\"size\":\"120m\",\"time\":1511323200000,\"open\":0.1992,\"high\":0.2008,\"low\":0.199,\"close\":0.20078,\"volume\":199170.53298643001,\"close_time\":1511330223591,\"vwap\":0.19922391363258524,\"ema1\":0.19977084285551264,\"sma1\":0.19120675925925928,\"sma2\":0.19668500000000003,\"rsi_avg_gain\":0.000806548059325149,\"rsi_avg_loss\":0.0007481039596754852,\"rsi\":52},{\"period_id\":\"120m209905\",\"size\":\"120m\",\"time\":1511316000000,\"open\":0.19768,\"high\":0.19949,\"low\":0.19766,\"close\":0.199,\"volume\":139487.97756473004,\"close_time\":1511323109528,\"vwap\":0.1991354909776538,\"ema1\":0.19970124581106524,\"sma1\":0.19096027777777783,\"sma2\":0.19655366666666668,\"rsi_avg_gain\":0.0007316671408117008,\"rsi_avg_loss\":0.000805650418112061,\"rsi\":48},{\"period_id\":\"120m209904\",\"size\":\"120m\",\"time\":1511308800000,\"open\":0.1983,\"high\":0.1995,\"low\":0.1976,\"close\":0.19772,\"volume\":297919.29636284005,\"close_time\":1511315945772,\"vwap\":0.19913334123508666,\"ema1\":0.19974960759113872,\"sma1\":0.1907093518518519,\"sma2\":0.19639733333333337,\"rsi_avg_gain\":0.0006894876901049082,\"rsi_avg_loss\":0.0008676235271976041,\"rsi\":44},{\"period_id\":\"120m209903\",\"size\":\"120m\",\"time\":1511301600000,\"open\":0.20021,\"high\":0.2013,\"low\":0.198,\"close\":0.19832,\"volume\":1570212.2911061011,\"close_time\":1511308760197,\"vwap\":0.19926372430575406,\"ema1\":0.19988958052845862,\"sma1\":0.19041935185185185,\"sma2\":0.19626366666666673,\"rsi_avg_gain\":0.0007425252047283627,\"rsi_avg_loss\":0.0008882099523666514,\"rsi\":46},{\"period_id\":\"120m209902\",\"size\":\"120m\",\"time\":1511294400000,\"open\":0.20067,\"high\":0.2013,\"low\":0.2,\"close\":0.2001,\"volume\":826936.2524366702,\"close_time\":1511301577901,\"vwap\":0.20045090844235325,\"ema1\":0.19999782746145578,\"sma1\":0.1901387962962963,\"sma2\":0.19630866666666674,\"rsi_avg_gain\":0.000799642528169006,\"rsi_avg_loss\":0.0008196107179333166,\"rsi\":49},{\"period_id\":\"120m209901\",\"size\":\"120m\",\"time\":1511287200000,\"open\":0.20198,\"high\":0.204,\"low\":0.2,\"close\":0.2,\"volume\":1658189.0110132692,\"close_time\":1511294393668,\"vwap\":0.2002703533491829,\"ema1\":0.1999907810794872,\"sma1\":0.18983324074074073,\"sma2\":0.19622533333333342,\"rsi_avg_gain\":0.0008534611841820073,\"rsi_avg_loss\":0.0008826576962358794,\"rsi\":49},{\"period_id\":\"120m209900\",\"size\":\"120m\",\"time\":1511280000000,\"open\":0.20109,\"high\":0.202,\"low\":0.2006,\"close\":0.20198,\"volume\":655194.4879848204,\"close_time\":1511287150410,\"vwap\":0.2017014898494884,\"ema1\":0.19999014529186562,\"sma1\":0.1895647222222222,\"sma2\":0.1961323333333334,\"rsi_avg_gain\":0.0009191120445037002,\"rsi_avg_loss\":0.000798246749792487,\"rsi\":54},{\"period_id\":\"120m209899\",\"size\":\"120m\",\"time\":1511272800000,\"open\":0.20318,\"high\":0.20318,\"low\":0.2004,\"close\":0.20199,\"volume\":1154399.37290013,\"close_time\":1511279988375,\"vwap\":0.2017881928692082,\"ema1\":0.19985291393268395,\"sma1\":0.18928194444444438,\"sma2\":0.1961825000000001,\"rsi_avg_gain\":0.000989812971003985,\"rsi_avg_loss\":0.0008588811151611391,\"rsi\":54},{\"period_id\":\"120m209898\",\"size\":\"120m\",\"time\":1511265600000,\"open\":0.203,\"high\":0.20351,\"low\":0.20104,\"close\":0.20282,\"volume\":722255.2621213497,\"close_time\":1511272705668,\"vwap\":0.20296737530612716,\"ema1\":0.19970552868666216,\"sma1\":0.18902351851851848,\"sma2\":0.19646883333333343,\"rsi_avg_gain\":0.0010659524303119837,\"rsi_avg_loss\":0.0008611027394043039,\"rsi\":55},{\"period_id\":\"120m209897\",\"size\":\"120m\",\"time\":1511258400000,\"open\":0.20344,\"high\":0.20371,\"low\":0.20164,\"close\":0.2021,\"volume\":1164843.6084483103,\"close_time\":1511265582357,\"vwap\":0.20315027421577223,\"ema1\":0.19949073756160438,\"sma1\":0.18876972222222219,\"sma2\":0.19605050000000007,\"rsi_avg_gain\":0.001092564155720598,\"rsi_avg_loss\":0.0009273414116661734,\"rsi\":54},{\"period_id\":\"120m209896\",\"size\":\"120m\",\"time\":1511251200000,\"open\":0.20227,\"high\":0.20492,\"low\":0.202,\"close\":0.20212,\"volume\":661131.9622503897,\"close_time\":1511258386621,\"vwap\":0.2021610074693968,\"ema1\":0.1993107884279219,\"sma1\":0.1884599074074074,\"sma2\":0.1956318333333334,\"rsi_avg_gain\":0.00117660755231449,\"rsi_avg_loss\":0.0009971369048712643,\"rsi\":54},{\"period_id\":\"120m209895\",\"size\":\"120m\",\"time\":1511244000000,\"open\":0.20199,\"high\":0.20549,\"low\":0.20093,\"close\":0.20225,\"volume\":1112220.7707674399,\"close_time\":1511251168939,\"vwap\":0.20178827585132053,\"ema1\":0.19911704969881308,\"sma1\":0.18814046296296288,\"sma2\":0.19523766666666673,\"rsi_avg_gain\":0.0012671158255694506,\"rsi_avg_loss\":0.001063839743707514,\"rsi\":54},{\"period_id\":\"120m209894\",\"size\":\"120m\",\"time\":1511236800000,\"open\":0.2,\"high\":0.20306,\"low\":0.197,\"close\":0.20249,\"volume\":767532.2100792999,\"close_time\":1511243992356,\"vwap\":0.1988858883697169,\"ema1\":0.19890098416080018,\"sma1\":0.18786722222222213,\"sma2\":0.19485366666666673,\"rsi_avg_gain\":0.0013645862736901776,\"rsi_avg_loss\":0.0011272120316850158,\"rsi\":55},{\"period_id\":\"120m209893\",\"size\":\"120m\",\"time\":1511229600000,\"open\":0.20572,\"high\":0.206,\"low\":0.2,\"close\":0.2,\"volume\":808537.5062438501,\"close_time\":1511236760328,\"vwap\":0.20172344678699347,\"ema1\":0.19865346582706225,\"sma1\":0.1875750925925925,\"sma2\":0.19448700000000005,\"rsi_avg_gain\":0.0012780159870509611,\"rsi_avg_loss\":0.00121392064950694,\"rsi\":51},{\"period_id\":\"120m209892\",\"size\":\"120m\",\"time\":1511222400000,\"open\":0.2,\"high\":0.20599,\"low\":0.2,\"close\":0.20586,\"volume\":658444.3325874807,\"close_time\":1511228996424,\"vwap\":0.20178616469278812,\"ema1\":0.1985606014013424,\"sma1\":0.18731314814814812,\"sma2\":0.19405600000000003,\"rsi_avg_gain\":0.0013763249091318043,\"rsi_avg_loss\":0.0008565299302382449,\"rsi\":62},{\"period_id\":\"120m209891\",\"size\":\"120m\",\"time\":1511215200000,\"open\":0.2075,\"high\":0.20788,\"low\":0.1992,\"close\":0.2,\"volume\":2154059.49515276,\"close_time\":1511222392685,\"vwap\":0.20152265170430392,\"ema1\":0.19805719460143498,\"sma1\":0.18704111111111102,\"sma2\":0.19368600000000005,\"rsi_avg_gain\":0.001031426825218868,\"rsi_avg_loss\":0.0009224168479488791,\"rsi\":53},{\"period_id\":\"120m209890\",\"size\":\"120m\",\"time\":1511208000000,\"open\":0.205,\"high\":0.2079,\"low\":0.204,\"close\":0.207,\"volume\":1726159.0560208398,\"close_time\":1511215187487,\"vwap\":0.20675363898607943,\"ema1\":0.1979232080222236,\"sma1\":0.18678259259259256,\"sma2\":0.19319733333333336,\"rsi_avg_gain\":0.001110767350235704,\"rsi_avg_loss\":0.00045491045163725607,\"rsi\":71},{\"period_id\":\"120m209889\",\"size\":\"120m\",\"time\":1511200800000,\"open\":0.205,\"high\":0.20791,\"low\":0.20401,\"close\":0.205,\"volume\":1288062.0671158903,\"close_time\":1511207996129,\"vwap\":0.20468535004224264,\"ema1\":0.19729722236858385,\"sma1\":0.186524537037037,\"sma2\":0.19271800000000003,\"rsi_avg_gain\":0.0010423648387153735,\"rsi_avg_loss\":0.0004899035633016604,\"rsi\":68},{\"period_id\":\"120m209888\",\"size\":\"120m\",\"time\":1511193600000,\"open\":0.2045,\"high\":0.205,\"low\":0.2012,\"close\":0.205,\"volume\":1174516.4974492008,\"close_time\":1511200734154,\"vwap\":0.20472495589122489,\"ema1\":0.1967659963250379,\"sma1\":0.18628749999999994,\"sma2\":0.19226016666666668,\"rsi_avg_gain\":0.0011225467493857868,\"rsi_avg_loss\":0.0005275884527864035,\"rsi\":68},{\"period_id\":\"120m209887\",\"size\":\"120m\",\"time\":1511186400000,\"open\":0.2017,\"high\":0.20486,\"low\":0.20116,\"close\":0.2045,\"volume\":1245355.5586386702,\"close_time\":1511193599796,\"vwap\":0.2029681650740078,\"ema1\":0.19619813400262673,\"sma1\":0.18600129629629628,\"sma2\":0.19182966666666668,\"rsi_avg_gain\":0.0011704349608770012,\"rsi_avg_loss\":0.0005681721799238192,\"rsi\":67},{\"period_id\":\"120m209886\",\"size\":\"120m\",\"time\":1511179200000,\"open\":0.20345,\"high\":0.20345,\"low\":0.1993,\"close\":0.2017,\"volume\":920490.0952195205,\"close_time\":1511186377172,\"vwap\":0.20146239259418028,\"ema1\":0.19562559152004927,\"sma1\":0.18574498444444443,\"sma2\":0.1914503333333334,\"rsi_avg_gain\":0.0010450838040213862,\"rsi_avg_loss\":0.0006118777322256514,\"rsi\":63},{\"period_id\":\"120m209885\",\"size\":\"120m\",\"time\":1511172000000,\"open\":0.1999,\"high\":0.20397,\"low\":0.1993,\"close\":0.20348,\"volume\":1839783.4880044202,\"close_time\":1511179183122,\"vwap\":0.20180893012732803,\"ema1\":0.19520666679729404,\"sma1\":0.18553609555555556,\"sma2\":0.1910556666666667,\"rsi_avg_gain\":0.0011254748658691852,\"rsi_avg_loss\":0.0005220221731660858,\"rsi\":68},{\"period_id\":\"120m209884\",\"size\":\"120m\",\"time\":1511164800000,\"open\":0.19989,\"high\":0.201,\"low\":0.199,\"close\":0.2,\"volume\":915706.22185213,\"close_time\":1511171992849,\"vwap\":0.2001308783535262,\"ema1\":0.19463609209365915,\"sma1\":0.18535091037037038,\"sma2\":0.19070833333333337,\"rsi_avg_gain\":0.0009443575478591237,\"rsi_avg_loss\":0.0005621777249480923,\"rsi\":63},{\"period_id\":\"120m209883\",\"size\":\"120m\",\"time\":1511157600000,\"open\":0.20058,\"high\":0.20097,\"low\":0.19501,\"close\":0.1995,\"volume\":831625.2586599299,\"close_time\":1511164735130,\"vwap\":0.20058835227513735,\"ema1\":0.19426616741046324,\"sma1\":0.18514146592592595,\"sma2\":0.19035000000000002,\"rsi_avg_gain\":0.0009785388976944409,\"rsi_avg_loss\":0.0006054221653287148,\"rsi\":62},{\"period_id\":\"120m209882\",\"size\":\"120m\",\"time\":1511150400000,\"open\":0.19996,\"high\":0.205,\"low\":0.19909,\"close\":0.201,\"volume\":1616283.4260598102,\"close_time\":1511157581859,\"vwap\":0.20136238344374865,\"ema1\":0.19390521343877104,\"sma1\":0.18488220666666672,\"sma2\":0.18994083333333336,\"rsi_avg_gain\":0.0010538111205940133,\"rsi_avg_loss\":0.0005366084857386159,\"rsi\":66},{\"period_id\":\"120m209881\",\"size\":\"120m\",\"time\":1511143200000,\"open\":0.19688,\"high\":0.2,\"low\":0.19686,\"close\":0.2,\"volume\":1187892.34910101,\"close_time\":1511150148973,\"vwap\":0.19689700064208582,\"ema1\":0.1934159178138587,\"sma1\":0.18466924370370372,\"sma2\":0.18954200000000002,\"rsi_avg_gain\":0.0010579504375627833,\"rsi_avg_loss\":0.0005778860615646633,\"rsi\":65},{\"period_id\":\"120m209880\",\"size\":\"120m\",\"time\":1511136000000,\"open\":0.195,\"high\":0.19686,\"low\":0.19494,\"close\":0.19686,\"volume\":818428.4982289891,\"close_time\":1511143199207,\"vwap\":0.19513853609337034,\"ema1\":0.19296184318033172,\"sma1\":0.18448785481481483,\"sma2\":0.18920450000000003,\"rsi_avg_gain\":0.0008977927789137664,\"rsi_avg_loss\":0.0006223388355311759,\"rsi\":59},{\"period_id\":\"120m209879\",\"size\":\"120m\",\"time\":1511128800000,\"open\":0.19498,\"high\":0.19587,\"low\":0.19353,\"close\":0.19499,\"volume\":774808.4024525699,\"close_time\":1511135815175,\"vwap\":0.19440346858482946,\"ema1\":0.19269300477897527,\"sma1\":0.1843316511111111,\"sma2\":0.188885,\"rsi_avg_gain\":0.0008230076080609784,\"rsi_avg_loss\":0.0006702110536489587,\"rsi\":55},{\"period_id\":\"120m209878\",\"size\":\"120m\",\"time\":1511121600000,\"open\":0.19592,\"high\":0.19595,\"low\":0.1938,\"close\":0.195,\"volume\":735082.8656450599,\"close_time\":1511128784054,\"vwap\":0.19448709961811791,\"ema1\":0.19253459131545633,\"sma1\":0.18414220666666664,\"sma2\":0.18856866666666666,\"rsi_avg_gain\":0.0008863158856041305,\"rsi_avg_loss\":0.0007209965193142625,\"rsi\":55},{\"period_id\":\"120m209877\",\"size\":\"120m\",\"time\":1511114400000,\"open\":0.19593,\"high\":0.19599,\"low\":0.19311,\"close\":0.19493,\"volume\":542808.07858512,\"close_time\":1511121526078,\"vwap\":0.19548521304683572,\"ema1\":0.19236456313031539,\"sma1\":0.18396822518518513,\"sma2\":0.1882625,\"rsi_avg_gain\":0.0009491094152659857,\"rsi_avg_loss\":0.0007764577900307443,\"rsi\":55},{\"period_id\":\"120m209876\",\"size\":\"120m\",\"time\":1511107200000,\"open\":0.195,\"high\":0.1975,\"low\":0.19462,\"close\":0.19593,\"volume\":736890.6753688401,\"close_time\":1511114338732,\"vwap\":0.1956641627847307,\"ema1\":0.19218763644964748,\"sma1\":0.1837876696296296,\"sma2\":0.18795900000000001,\"rsi_avg_gain\":0.0010221178318249077,\"rsi_avg_loss\":0.0007592622354177246,\"rsi\":57},{\"period_id\":\"120m209875\",\"size\":\"120m\",\"time\":1511100000000,\"open\":0.1949,\"high\":0.1969,\"low\":0.19441,\"close\":0.1955,\"volume\":602072.8910201305,\"close_time\":1511107180197,\"vwap\":0.19530012319942047,\"ema1\":0.19192954241169213,\"sma1\":0.183620077037037,\"sma2\":0.18766566666666668,\"rsi_avg_gain\":0.0010676653573499016,\"rsi_avg_loss\":0.0008176670227575496,\"rsi\":57},{\"period_id\":\"120m209874\",\"size\":\"120m\",\"time\":1511092800000,\"open\":0.19514,\"high\":0.19625,\"low\":0.19305,\"close\":0.1949,\"volume\":664404.7235030198,\"close_time\":1511099955847,\"vwap\":0.1947358405178314,\"ema1\":0.19168330395732608,\"sma1\":0.18350841037037036,\"sma2\":0.18735733333333332,\"rsi_avg_gain\":0.001103639615607585,\"rsi_avg_loss\":0.0008805644860465919,\"rsi\":56},{\"period_id\":\"120m209873\",\"size\":\"120m\",\"time\":1511085600000,\"open\":0.19348,\"high\":0.199,\"low\":0.19165,\"close\":0.19575,\"volume\":1621898.0825811503,\"close_time\":1511092680789,\"vwap\":0.1949787105077426,\"ema1\":0.19146146285093477,\"sma1\":0.18338970666666668,\"sma2\":0.18702149999999998,\"rsi_avg_gain\":0.0011885349706543223,\"rsi_avg_loss\":0.0008829156003578668,\"rsi\":57},{\"period_id\":\"120m209872\",\"size\":\"120m\",\"time\":1511078400000,\"open\":0.19096,\"high\":0.194,\"low\":0.18996,\"close\":0.19348,\"volume\":852182.0922368199,\"close_time\":1511085595664,\"vwap\":0.19135544043330488,\"ema1\":0.19116570166824062,\"sma1\":0.1833113733333333,\"sma2\":0.1867268333333333,\"rsi_avg_gain\":0.0011053453530123476,\"rsi_avg_loss\":0.0009508321850007796,\"rsi\":54},{\"period_id\":\"120m209871\",\"size\":\"120m\",\"time\":1511071200000,\"open\":0.19277,\"high\":0.19329,\"low\":0.19,\"close\":0.19086,\"volume\":458432.8250426699,\"close_time\":1511078362857,\"vwap\":0.19358825773923152,\"ema1\":0.19100609488673997,\"sma1\":0.18325933629629632,\"sma2\":0.18645166666666663,\"rsi_avg_gain\":0.0009888334570902196,\"rsi_avg_loss\":0.0010239731223085319,\"rsi\":49},{\"period_id\":\"120m209870\",\"size\":\"120m\",\"time\":1511064000000,\"open\":0.194,\"high\":0.19403,\"low\":0.1923,\"close\":0.19231,\"volume\":53869.48320576,\"close_time\":1511071090724,\"vwap\":0.19425173816450114,\"ema1\":0.19101617039617033,\"sma1\":0.18321554,\"sma2\":0.18617949999999997,\"rsi_avg_gain\":0.0010648975691740826,\"rsi_avg_loss\":0.0009912018240245722,\"rsi\":52},{\"period_id\":\"120m209869\",\"size\":\"120m\",\"time\":1511056800000,\"open\":0.19382,\"high\":0.19447,\"low\":0.19291,\"close\":0.1941,\"volume\":69829.77653239999,\"close_time\":1511063790758,\"vwap\":0.1942576431306024,\"ema1\":0.19092694076832,\"sma1\":0.18316304,\"sma2\":0.18588683333333325,\"rsi_avg_gain\":0.001146812766802858,\"rsi_avg_loss\":0.000929755810488002,\"rsi\":55},{\"period_id\":\"120m209868\",\"size\":\"120m\",\"time\":1511049600000,\"open\":0.193,\"high\":0.19444,\"low\":0.1925,\"close\":0.19271,\"volume\":124356.55947407,\"close_time\":1511056574457,\"vwap\":0.1942622831091533,\"ema1\":0.19070810909716968,\"sma1\":0.18311359555555548,\"sma2\":0.18559999999999993,\"rsi_avg_gain\":0.0011281060565569239,\"rsi_avg_loss\":0.0010012754882178483,\"rsi\":53},{\"period_id\":\"120m209867\",\"size\":\"120m\",\"time\":1511042400000,\"open\":0.1935,\"high\":0.19999,\"low\":0.19211,\"close\":0.193,\"volume\":1359178.4623398397,\"close_time\":1511049586357,\"vwap\":0.19428429355872004,\"ema1\":0.19057004765559518,\"sma1\":0.18301600296296291,\"sma2\":0.18527499999999997,\"rsi_avg_gain\":0.001214883445522841,\"rsi_avg_loss\":0.001055988987311528,\"rsi\":53},{\"period_id\":\"120m209866\",\"size\":\"120m\",\"time\":1511035200000,\"open\":0.19234,\"high\":0.1939,\"low\":0.19201,\"close\":0.19372,\"volume\":268536.1830867801,\"close_time\":1511042361722,\"vwap\":0.19340502332004872,\"ema1\":0.1904024647352914,\"sma1\":0.18298720666666662,\"sma2\":0.18491283333333325,\"rsi_avg_gain\":0.0013083360182553673,\"rsi_avg_loss\":0.0010818342940277996,\"rsi\":55},{\"period_id\":\"120m209865\",\"size\":\"120m\",\"time\":1511028000000,\"open\":0.1917,\"high\":0.1949,\"low\":0.1917,\"close\":0.19231,\"volume\":728270.7040220896,\"close_time\":1511035186530,\"vwap\":0.19232078939810573,\"ema1\":0.19017366919979425,\"sma1\":0.18295637333333328,\"sma2\":0.18457433333333328,\"rsi_avg_gain\":0.0013005157119673188,\"rsi_avg_loss\":0.0011650523166453226,\"rsi\":53},{\"period_id\":\"120m209864\",\"size\":\"120m\",\"time\":1511020800000,\"open\":0.19089,\"high\":0.1925,\"low\":0.19016,\"close\":0.19168,\"volume\":464501.62250984996,\"close_time\":1511027934129,\"vwap\":0.19160010097587796,\"ema1\":0.19002633604115937,\"sma1\":0.18294803999999995,\"sma2\":0.1842546666666666,\"rsi_avg_gain\":0.0013520938436571111,\"rsi_avg_loss\":0.0012546717256180396,\"rsi\":52},{\"period_id\":\"120m209863\",\"size\":\"120m\",\"time\":1511013600000,\"open\":0.1919,\"high\":0.1919,\"low\":0.19,\"close\":0.19122,\"volume\":390100.3060764898,\"close_time\":1511020756298,\"vwap\":0.19155901476042,\"ema1\":0.1899122902508945,\"sma1\":0.1829258177777777,\"sma2\":0.18395099999999995,\"rsi_avg_gain\":0.0014207164470153514,\"rsi_avg_loss\":0.0013511849352809656,\"rsi\":51},{\"period_id\":\"120m209862\",\"size\":\"120m\",\"time\":1511006400000,\"open\":0.1923,\"high\":0.19247,\"low\":0.191,\"close\":0.1918,\"volume\":337951.37589794997,\"close_time\":1511013473993,\"vwap\":0.19186740962117327,\"ema1\":0.18982210337164585,\"sma1\":0.1828822066666666,\"sma2\":0.1836383333333333,\"rsi_avg_gain\":0.001530002327554994,\"rsi_avg_loss\":0.0014105068533795016,\"rsi\":52},{\"period_id\":\"120m209861\",\"size\":\"120m\",\"time\":1510999200000,\"open\":0.19251,\"high\":0.19253,\"low\":0.19101,\"close\":0.1923,\"volume\":385301.98817009997,\"close_time\":1511006395926,\"vwap\":0.19222075640666264,\"ema1\":0.18968569670762142,\"sma1\":0.1828587807407407,\"sma2\":0.1833331666666666,\"rsi_avg_gain\":0.0016476948142899934,\"rsi_avg_loss\":0.0014805458421010018,\"rsi\":53},{\"period_id\":\"120m209860\",\"size\":\"120m\",\"time\":1510992000000,\"open\":0.18916,\"high\":0.194,\"low\":0.18914,\"close\":0.19254,\"volume\":803391.3881384006,\"close_time\":1510999159827,\"vwap\":0.19066608247506786,\"ema1\":0.1895053999288367,\"sma1\":0.1828586881481481,\"sma2\":0.1830156666666666,\"rsi_avg_gain\":0.0017744405692353775,\"rsi_avg_loss\":0.0015759724453395412,\"rsi\":53},{\"period_id\":\"120m209859\",\"size\":\"120m\",\"time\":1510984800000,\"open\":0.1897,\"high\":0.191,\"low\":0.188,\"close\":0.189,\"volume\":488820.45648977003,\"close_time\":1510991947134,\"vwap\":0.18957623750023656,\"ema1\":0.1892961171653082,\"sma1\":0.18288137333333326,\"sma2\":0.18267499999999998,\"rsi_avg_gain\":0.0016386283053304075,\"rsi_avg_loss\":0.0016972010949810443,\"rsi\":49},{\"period_id\":\"120m209858\",\"size\":\"120m\",\"time\":1510977600000,\"open\":0.1878,\"high\":0.19247,\"low\":0.18721,\"close\":0.19028,\"volume\":289907.14823640994,\"close_time\":1510984750372,\"vwap\":0.18973468255530415,\"ema1\":0.18931653903877774,\"sma1\":0.18287785481481475,\"sma2\":0.18232716666666662,\"rsi_avg_gain\":0.0017646766365096694,\"rsi_avg_loss\":0.0017292934869026627,\"rsi\":51},{\"period_id\":\"120m209857\",\"size\":\"120m\",\"time\":1510970400000,\"open\":0.1891,\"high\":0.192,\"low\":0.1879,\"close\":0.1879,\"volume\":234549.13786073995,\"close_time\":1510977539952,\"vwap\":0.18979015926727377,\"ema1\":0.18925009345524516,\"sma1\":0.18287776222222216,\"sma2\":0.18207549999999997,\"rsi_avg_gain\":0.0017173440700873367,\"rsi_avg_loss\":0.0018623160628182523,\"rsi\":48},{\"period_id\":\"120m209856\",\"size\":\"120m\",\"time\":1510963200000,\"open\":0.19112,\"high\":0.19277,\"low\":0.1889,\"close\":0.18908,\"volume\":926769.0720193102,\"close_time\":1510970297833,\"vwap\":0.18996098527420946,\"ema1\":0.18934320334871033,\"sma1\":0.18286554,\"sma2\":0.18172000833333335,\"rsi_avg_gain\":0.001849447460094055,\"rsi_avg_loss\":0.0019148019138042727,\"rsi\":49},{\"period_id\":\"120m209855\",\"size\":\"120m\",\"time\":1510956000000,\"open\":0.192,\"high\":0.19408,\"low\":0.191,\"close\":0.19312,\"volume\":428584.75338550995,\"close_time\":1510963099527,\"vwap\":0.1926064897659799,\"ema1\":0.1893613553037938,\"sma1\":0.18286479925925925,\"sma2\":0.18132634166666664,\"rsi_avg_gain\":0.001991712649332059,\"rsi_avg_loss\":0.001751325137943062,\"rsi\":53},{\"period_id\":\"120m209854\",\"size\":\"120m\",\"time\":1510948800000,\"open\":0.1925,\"high\":0.19408,\"low\":0.19061,\"close\":0.192,\"volume\":621065.0758878803,\"close_time\":1510955983115,\"vwap\":0.19276932100323332,\"ema1\":0.18910213842819337,\"sma1\":0.18281776222222218,\"sma2\":0.18091634166666665,\"rsi_avg_gain\":0.0020587674685114475,\"rsi_avg_loss\":0.0018860424562463743,\"rsi\":52},{\"period_id\":\"120m209853\",\"size\":\"120m\",\"time\":1510941600000,\"open\":0.19389,\"high\":0.19475,\"low\":0.19061,\"close\":0.1925,\"volume\":1033069.886988151,\"close_time\":1510948796268,\"vwap\":0.19285185724725548,\"ema1\":0.1889022859059998,\"sma1\":0.18272646592592587,\"sma2\":0.180541675,\"rsi_avg_gain\":0.002217134196858482,\"rsi_avg_loss\":0.0019926611067268645,\"rsi\":53},{\"period_id\":\"120m209852\",\"size\":\"120m\",\"time\":1510934400000,\"open\":0.19491,\"high\":0.196,\"low\":0.19103,\"close\":0.19384,\"volume\":1005591.6163256401,\"close_time\":1510941572001,\"vwap\":0.19413922814667925,\"ema1\":0.18865416769262047,\"sma1\":0.18259544740740735,\"sma2\":0.18014800833333336,\"rsi_avg_gain\":0.0023876829812322113,\"rsi_avg_loss\":0.002042865807244315,\"rsi\":54},{\"period_id\":\"120m209851\",\"size\":\"120m\",\"time\":1510927200000,\"open\":0.19521,\"high\":0.19796,\"low\":0.1946,\"close\":0.19491,\"volume\":960112.6958736299,\"close_time\":1510934385989,\"vwap\":0.195008206767943,\"ema1\":0.188296524085215,\"sma1\":0.1824462807407407,\"sma2\":0.179732675,\"rsi_avg_gain\":0.002571350902865458,\"rsi_avg_loss\":0.0021177016385708013,\"rsi\":55},{\"period_id\":\"120m209850\",\"size\":\"120m\",\"time\":1510920000000,\"open\":0.1988,\"high\":0.199,\"low\":0.19422,\"close\":0.1953,\"volume\":1780399.7603614214,\"close_time\":1510927150967,\"vwap\":0.19658705694902612,\"ema1\":0.18784042229798845,\"sma1\":0.18227952148148144,\"sma2\":0.17931750833333332,\"rsi_avg_gain\":0.002769147126162801,\"rsi_avg_loss\":0.0022506017646147093,\"rsi\":55},{\"period_id\":\"120m209849\",\"size\":\"120m\",\"time\":1510912800000,\"open\":0.19248,\"high\":0.2,\"low\":0.1905,\"close\":0.1988,\"volume\":2745150.4320924804,\"close_time\":1510919995239,\"vwap\":0.19647699777234237,\"ema1\":0.18732596866336695,\"sma1\":0.18211100296296293,\"sma2\":0.1788875083333333,\"rsi_avg_gain\":0.0029821584435599396,\"rsi_avg_loss\":0.0021544942080466097,\"rsi\":58},{\"period_id\":\"120m209848\",\"size\":\"120m\",\"time\":1510905600000,\"open\":0.18905,\"high\":0.1943,\"low\":0.187,\"close\":0.1925,\"volume\":1784900.3421344298,\"close_time\":1510912797579,\"vwap\":0.19118382501470735,\"ema1\":0.18653465615739226,\"sma1\":0.18199248444444438,\"sma2\":0.17844600833333332,\"rsi_avg_gain\":0.0027269398622953196,\"rsi_avg_loss\":0.0023202245317425025,\"rsi\":54},{\"period_id\":\"120m209847\",\"size\":\"120m\",\"time\":1510898400000,\"open\":0.19545,\"high\":0.19594,\"low\":0.187,\"close\":0.188,\"volume\":1178642.750786331,\"close_time\":1510905535766,\"vwap\":0.18844925690580644,\"ema1\":0.18612325313376413,\"sma1\":0.18183091037037033,\"sma2\":0.177999675,\"rsi_avg_gain\":0.0025905506209334206,\"rsi_avg_loss\":0.002498703341876541,\"rsi\":51},{\"period_id\":\"120m209846\",\"size\":\"120m\",\"time\":1510891200000,\"open\":0.19199,\"high\":0.19689,\"low\":0.1894,\"close\":0.19405,\"volume\":956434.2075968998,\"close_time\":1510898331739,\"vwap\":0.1913680221065273,\"ema1\":0.18599382231540304,\"sma1\":0.18165322518518517,\"sma2\":0.17759884166666665,\"rsi_avg_gain\":0.0027898237456206072,\"rsi_avg_loss\":0.002225526675867044,\"rsi\":56},{\"period_id\":\"120m209845\",\"size\":\"120m\",\"time\":1510884000000,\"open\":0.187,\"high\":0.1955,\"low\":0.18683,\"close\":0.19112,\"volume\":924918.4014456196,\"close_time\":1510891162791,\"vwap\":0.1898614893981602,\"ema1\":0.18543822385439634,\"sma1\":0.18148841037037033,\"sma2\":0.17723384166666664,\"rsi_avg_gain\":0.0027790409568221935,\"rsi_avg_loss\":0.002396721035549124,\"rsi\":54},{\"period_id\":\"120m209844\",\"size\":\"120m\",\"time\":1510876800000,\"open\":0.19099,\"high\":0.1929,\"low\":0.185,\"close\":0.18834,\"volume\":1080509.2536917797,\"close_time\":1510883939814,\"vwap\":0.1867629921007141,\"ema1\":0.18504637722366507,\"sma1\":0.18135044740740738,\"sma2\":0.176999175,\"rsi_avg_gain\":0.002778967184270054,\"rsi_avg_loss\":0.002581084192129826,\"rsi\":52},{\"period_id\":\"120m209843\",\"size\":\"120m\",\"time\":1510869600000,\"open\":0.20252,\"high\":0.203,\"low\":0.19,\"close\":0.1903,\"volume\":3056503.1666262676,\"close_time\":1510876786878,\"vwap\":0.19281879002088542,\"ema1\":0.18481923082529714,\"sma1\":0.18111878074074073,\"sma2\":0.17677250833333333,\"rsi_avg_gain\":0.0029927338907523656,\"rsi_avg_loss\":0.002628859899216736,\"rsi\":53},{\"period_id\":\"120m209842\",\"size\":\"120m\",\"time\":1510862400000,\"open\":0.195,\"high\":0.209,\"low\":0.19241,\"close\":0.2028,\"volume\":5328767.228624752,\"close_time\":1510869597062,\"vwap\":0.20571291060710176,\"ema1\":0.18444124674428314,\"sma1\":0.18081313259259257,\"sma2\":0.17632550833333333,\"rsi_avg_gain\":0.003222944190041009,\"rsi_avg_loss\":0.001869541429925715,\"rsi\":63},{\"period_id\":\"120m209841\",\"size\":\"120m\",\"time\":1510855200000,\"open\":0.19512,\"high\":0.201,\"low\":0.1905,\"close\":0.195,\"volume\":3369777.689228698,\"close_time\":1510862391100,\"vwap\":0.1938625097802017,\"ema1\":0.18317512583009576,\"sma1\":0.18058378074074072,\"sma2\":0.1760255083333333,\"rsi_avg_gain\":0.0028708629738903174,\"rsi_avg_loss\":0.00201335230915077,\"rsi\":59},{\"period_id\":\"120m209840\",\"size\":\"120m\",\"time\":1510848000000,\"open\":0.2055,\"high\":0.2098,\"low\":0.195,\"close\":0.1964,\"volume\":6663655.530201383,\"close_time\":1510855198173,\"vwap\":0.19782844818667894,\"ema1\":0.1823596172666541,\"sma1\":0.18027998444444446,\"sma2\":0.17574217499999994,\"rsi_avg_gain\":0.0030916985872664958,\"rsi_avg_loss\":0.002060533256008523,\"rsi\":60},{\"period_id\":\"120m209839\",\"size\":\"120m\",\"time\":1510840800000,\"open\":0.22,\"high\":0.22,\"low\":0.194,\"close\":0.205,\"volume\":15617530.64268609,\"close_time\":1510847998500,\"vwap\":0.20401196762495674,\"ema1\":0.18139131500918196,\"sma1\":0.17989850296296292,\"sma2\":0.17520267499999995,\"rsi_avg_gain\":0.0033295215555177644,\"rsi_avg_loss\":0.0015574973526245634,\"rsi\":68},{\"period_id\":\"120m209838\",\"size\":\"120m\",\"time\":1510833600000,\"open\":0.17678,\"high\":0.22,\"low\":0.1757,\"close\":0.22,\"volume\":10349111.628457345,\"close_time\":1510840796412,\"vwap\":0.21420131193147776,\"ema1\":0.1797631298374014,\"sma1\":0.17952257703703703,\"sma2\":0.1743610083333333,\"rsi_avg_gain\":0.0035856385982499,\"rsi_avg_loss\":0.0005234586874418366,\"rsi\":87},{\"period_id\":\"120m209837\",\"size\":\"120m\",\"time\":1510826400000,\"open\":0.177,\"high\":0.1778,\"low\":0.17555,\"close\":0.177,\"volume\":1105490.1614706505,\"close_time\":1510833568077,\"vwap\":0.17699456489126175,\"ema1\":0.17698817327446356,\"sma1\":0.17950692888888892,\"sma2\":0.17427934166666662,\"rsi_avg_gain\":0.0005537646442691225,\"rsi_avg_loss\":0.0005637247403219779,\"rsi\":50},{\"period_id\":\"120m209836\",\"size\":\"120m\",\"time\":1510819200000,\"open\":0.1785,\"high\":0.17858,\"low\":0.176,\"close\":0.177,\"volume\":397588.30518430006,\"close_time\":1510826392504,\"vwap\":0.1773111926635487,\"ema1\":0.17698735763821966,\"sma1\":0.1794858177777778,\"sma2\":0.1743330083333333,\"rsi_avg_gain\":0.0005963619245975165,\"rsi_avg_loss\":0.000607088181885207,\"rsi\":50},{\"period_id\":\"120m209835\",\"size\":\"120m\",\"time\":1510812000000,\"open\":0.179,\"high\":0.17957,\"low\":0.1775,\"close\":0.1786,\"volume\":236250.85952177003,\"close_time\":1510819171050,\"vwap\":0.1790232221428534,\"ema1\":0.17698648575120032,\"sma1\":0.17944692888888894,\"sma2\":0.1743230083333333,\"rsi_avg_gain\":0.0006422359187973254,\"rsi_avg_loss\":0.0005307103497225292,\"rsi\":55},{\"period_id\":\"120m209834\",\"size\":\"120m\",\"time\":1510804800000,\"open\":0.17893,\"high\":0.1797,\"low\":0.17753,\"close\":0.17945,\"volume\":206948.74571139002,\"close_time\":1510811990052,\"vwap\":0.1790597680670807,\"ema1\":0.17687520890645553,\"sma1\":0.1794049844444445,\"sma2\":0.174257175,\"rsi_avg_gain\":0.0006916386817817352,\"rsi_avg_loss\":0.0005061496073934939,\"rsi\":58},{\"period_id\":\"120m209833\",\"size\":\"120m\",\"time\":1510797600000,\"open\":0.17994,\"high\":0.17997,\"low\":0.17603,\"close\":0.178,\"volume\":353774.0085576001,\"close_time\":1510804386630,\"vwap\":0.1790706058314383,\"ema1\":0.17669763710690073,\"sma1\":0.17935433629629635,\"sma2\":0.17422967499999995,\"rsi_avg_gain\":0.0006333031957649452,\"rsi_avg_loss\":0.0005450841925776088,\"rsi\":54},{\"period_id\":\"120m209832\",\"size\":\"120m\",\"time\":1510790400000,\"open\":0.1778,\"high\":0.1809,\"low\":0.17779,\"close\":0.18,\"volume\":1361998.4149140103,\"close_time\":1510797487097,\"vwap\":0.17911860470825394,\"ema1\":0.17660781897634217,\"sma1\":0.17930896592592596,\"sma2\":0.17417967499999998,\"rsi_avg_gain\":0.0006820188262084025,\"rsi_avg_loss\":0.0004331675920066556,\"rsi\":61},{\"period_id\":\"120m209831\",\"size\":\"120m\",\"time\":1510783200000,\"open\":0.17768,\"high\":0.1787,\"low\":0.175,\"close\":0.1778,\"volume\":1566869.6451750586,\"close_time\":1510790392691,\"vwap\":0.17779852196768908,\"ema1\":0.17637387545746921,\"sma1\":0.17929655851851856,\"sma2\":0.1741280083333333,\"rsi_avg_gain\":0.0005652510436090504,\"rsi_avg_loss\":0.0004664881760071676,\"rsi\":55},{\"period_id\":\"120m209830\",\"size\":\"120m\",\"time\":1510776000000,\"open\":0.1769,\"high\":0.17899,\"low\":0.17601,\"close\":0.17768,\"volume\":491676.01611941017,\"close_time\":1510783162699,\"vwap\":0.17697639130697318,\"ema1\":0.17627552204074295,\"sma1\":0.17929822518518523,\"sma2\":0.17407984166666662,\"rsi_avg_gain\":0.000599501123886669,\"rsi_avg_loss\":0.0005023718818538727,\"rsi\":54},{\"period_id\":\"120m209829\",\"size\":\"120m\",\"time\":1510768800000,\"open\":0.17759,\"high\":0.17889,\"low\":0.17601,\"close\":0.17624,\"volume\":977653.8880108004,\"close_time\":1510775927078,\"vwap\":0.17649894025286014,\"ema1\":0.17617866149182868,\"sma1\":0.1792899844444445,\"sma2\":0.17404934166666666,\"rsi_avg_gain\":0.0005348473641856439,\"rsi_avg_loss\":0.0005410158727657091,\"rsi\":50},{\"period_id\":\"120m209828\",\"size\":\"120m\",\"time\":1510761600000,\"open\":0.17791,\"high\":0.17813,\"low\":0.176,\"close\":0.17753,\"volume\":790866.41378568,\"close_time\":1510768797924,\"vwap\":0.17766481600907205,\"ema1\":0.17617443124988583,\"sma1\":0.1792887807407408,\"sma2\":0.174027175,\"rsi_avg_gain\":0.000575989469123001,\"rsi_avg_loss\":0.00048340170913230334,\"rsi\":54},{\"period_id\":\"120m209827\",\"size\":\"120m\",\"time\":1510754400000,\"open\":0.17899,\"high\":0.17936,\"low\":0.17741,\"close\":0.17867,\"volume\":501227.49448165024,\"close_time\":1510761592558,\"vwap\":0.1781705017743884,\"ema1\":0.17608094374987796,\"sma1\":0.17928933629629634,\"sma2\":0.174012675,\"rsi_avg_gain\":0.0006202963513632319,\"rsi_avg_loss\":0.0004328941482963265,\"rsi\":59},{\"period_id\":\"120m209826\",\"size\":\"120m\",\"time\":1510747200000,\"open\":0.17861,\"high\":0.18,\"low\":0.1775,\"close\":0.17894,\"volume\":1020662.5634295301,\"close_time\":1510754363661,\"vwap\":0.1779712333039312,\"ema1\":0.17590238814642126,\"sma1\":0.17928470666666668,\"sma2\":0.17395700833333333,\"rsi_avg_gain\":0.0006680114553142497,\"rsi_avg_loss\":0.0004454244673960445,\"rsi\":60},{\"period_id\":\"120m209825\",\"size\":\"120m\",\"time\":1510740000000,\"open\":0.17916,\"high\":0.18,\"low\":0.17772,\"close\":0.1798,\"volume\":839624.29586238,\"close_time\":1510747159672,\"vwap\":0.1792602328032591,\"ema1\":0.17569289767376065,\"sma1\":0.17928461407407412,\"sma2\":0.17403017499999998,\"rsi_avg_gain\":0.0007193969518768842,\"rsi_avg_loss\":0.00041353404181112484,\"rsi\":63},{\"period_id\":\"120m209824\",\"size\":\"120m\",\"time\":1510732800000,\"open\":0.178,\"high\":0.18,\"low\":0.17774,\"close\":0.17916,\"volume\":1371706.4441208409,\"close_time\":1510739987906,\"vwap\":0.1793719061962913,\"ema1\":0.17540964923746827,\"sma1\":0.1792250770370371,\"sma2\":0.17409917499999994,\"rsi_avg_gain\":0.0007255044097135697,\"rsi_avg_loss\":0.0004453443527196729,\"rsi\":62},{\"period_id\":\"120m209823\",\"size\":\"120m\",\"time\":1510725600000,\"open\":0.17647,\"high\":0.179,\"low\":0.17647,\"close\":0.178,\"volume\":594290.64150528,\"close_time\":1510732786046,\"vwap\":0.17660575812430898,\"ema1\":0.17515100435729367,\"sma1\":0.17916766962962966,\"sma2\":0.17420850833333326,\"rsi_avg_gain\":0.0006920816719992272,\"rsi_avg_loss\":0.0004796016106211862,\"rsi\":59},{\"period_id\":\"120m209822\",\"size\":\"120m\",\"time\":1510718400000,\"open\":0.17676,\"high\":0.17748,\"low\":0.17561,\"close\":0.17645,\"volume\":194388.95898348003,\"close_time\":1510725406545,\"vwap\":0.17578105442174546,\"ema1\":0.17495452189917599,\"sma1\":0.17912507703703712,\"sma2\":0.1743610083333333,\"rsi_avg_gain\":0.0006260879544607065,\"rsi_avg_loss\":0.0005164940422074313,\"rsi\":55},{\"period_id\":\"120m209821\",\"size\":\"120m\",\"time\":1510711200000,\"open\":0.17672,\"high\":0.17744,\"low\":0.176,\"close\":0.17607,\"volume\":154013.12588774003,\"close_time\":1510717437169,\"vwap\":0.1757461654742559,\"ema1\":0.17485138547842952,\"sma1\":0.17908285481481487,\"sma2\":0.17454400833333328,\"rsi_avg_gain\":0.0006450177971115308,\"rsi_avg_loss\":0.0005562243531464645,\"rsi\":54},{\"period_id\":\"120m209820\",\"size\":\"120m\",\"time\":1510704000000,\"open\":0.17563,\"high\":0.17746,\"low\":0.1754,\"close\":0.17661,\"volume\":330525.27986849006,\"close_time\":1510711129545,\"vwap\":0.17572610567543676,\"ema1\":0.17476734309763156,\"sma1\":0.17904081777777783,\"sma2\":0.17473817499999988,\"rsi_avg_gain\":0.0006946345507354947,\"rsi_avg_loss\":0.0005574723803115783,\"rsi\":55},{\"period_id\":\"120m209819\",\"size\":\"120m\",\"time\":1510696800000,\"open\":0.17597,\"high\":0.1761,\"low\":0.175,\"close\":0.17582,\"volume\":577026.2364562798,\"close_time\":1510703941720,\"vwap\":0.17550226671365224,\"ema1\":0.1746402633112613,\"sma1\":0.17901674370370377,\"sma2\":0.17493950833333327,\"rsi_avg_gain\":0.0006872987469459185,\"rsi_avg_loss\":0.0006003548711047766,\"rsi\":53},{\"period_id\":\"120m209818\",\"size\":\"120m\",\"time\":1510689600000,\"open\":0.17656,\"high\":0.1771,\"low\":0.1746,\"close\":0.17602,\"volume\":754846.95783339,\"close_time\":1510696790603,\"vwap\":0.1755662543243285,\"ema1\":0.1745589021603138,\"sma1\":0.17898000851851853,\"sma2\":0.1751435083333333,\"rsi_avg_gain\":0.0007401678813263737,\"rsi_avg_loss\":0.0006311513996512975,\"rsi\":54},{\"period_id\":\"120m209817\",\"size\":\"120m\",\"time\":1510682400000,\"open\":0.17774,\"high\":0.1785,\"low\":0.17451,\"close\":0.17656,\"volume\":873858.6678473103,\"close_time\":1510689575374,\"vwap\":0.17670971156735746,\"ema1\":0.17445813679205957,\"sma1\":0.17891982333333337,\"sma2\":0.17536750833333326,\"rsi_avg_gain\":0.0007971038721976331,\"rsi_avg_loss\":0.0006381630457783215,\"rsi\":56},{\"period_id\":\"120m209816\",\"size\":\"120m\",\"time\":1510675200000,\"open\":0.17779,\"high\":0.17873,\"low\":0.177,\"close\":0.17772,\"volume\":601474.58078276,\"close_time\":1510682334312,\"vwap\":0.17798990097997802,\"ema1\":0.17431318070875335,\"sma1\":0.17886676777777777,\"sma2\":0.1755915083333333,\"rsi_avg_gain\":0.000858419554674374,\"rsi_avg_loss\":0.0005980217416074236,\"rsi\":59},{\"period_id\":\"120m209815\",\"size\":\"120m\",\"time\":1510668000000,\"open\":0.175,\"high\":0.179,\"low\":0.175,\"close\":0.1779,\"volume\":903691.211076629,\"close_time\":1510675183379,\"vwap\":0.17753295252913387,\"ema1\":0.1740782276541846,\"sma1\":0.17881121222222218,\"sma2\":0.17578050833333328,\"rsi_avg_gain\":0.0009244518281108643,\"rsi_avg_loss\":0.000630177260192609,\"rsi\":59},{\"period_id\":\"120m209814\",\"size\":\"120m\",\"time\":1510660800000,\"open\":0.17511,\"high\":0.17649,\"low\":0.1735,\"close\":0.1764,\"volume\":739101.4692513704,\"close_time\":1510667938280,\"vwap\":0.1756082675462374,\"ema1\":0.17381465714757663,\"sma1\":0.17879167518518516,\"sma2\":0.17596567499999993,\"rsi_avg_gain\":0.0008801788918116999,\"rsi_avg_loss\":0.000678652434053579,\"rsi\":56},{\"period_id\":\"120m209813\",\"size\":\"120m\",\"time\":1510653600000,\"open\":0.17595,\"high\":0.17699,\"low\":0.175,\"close\":0.1756,\"volume\":896831.7352713099,\"close_time\":1510660756249,\"vwap\":0.17582763607114751,\"ema1\":0.17363635764051294,\"sma1\":0.1787673233333333,\"sma2\":0.17616834166666662,\"rsi_avg_gain\":0.0008863464988741387,\"rsi_avg_loss\":0.0007308564674423159,\"rsi\":55},{\"period_id\":\"120m209812\",\"size\":\"120m\",\"time\":1510646400000,\"open\":0.17599,\"high\":0.17621,\"low\":0.17403,\"close\":0.1758,\"volume\":425112.28303541004,\"close_time\":1510653572451,\"vwap\":0.17534226534700836,\"ema1\":0.17350093402951383,\"sma1\":0.17875611962962965,\"sma2\":0.17634034166666665,\"rsi_avg_gain\":0.000954526998787534,\"rsi_avg_loss\":0.0007716915803224935,\"rsi\":55},{\"period_id\":\"120m209811\",\"size\":\"120m\",\"time\":1510639200000,\"open\":0.176,\"high\":0.1766,\"low\":0.17201,\"close\":0.17435,\"volume\":679307.6820065394,\"close_time\":1510646329094,\"vwap\":0.17529764819255123,\"ema1\":0.1733423777556872,\"sma1\":0.1787413048148148,\"sma2\":0.1766395083333333,\"rsi_avg_gain\":0.0009164136910019591,\"rsi_avg_loss\":0.0008310524711165315,\"rsi\":52},{\"period_id\":\"120m209810\",\"size\":\"120m\",\"time\":1510632000000,\"open\":0.1768,\"high\":0.1768,\"low\":0.175,\"close\":0.17598,\"volume\":429675.1602830501,\"close_time\":1510639183059,\"vwap\":0.17569438772194995,\"ema1\":0.17327288656642426,\"sma1\":0.17872556407407408,\"sma2\":0.17687317500000002,\"rsi_avg_gain\":0.0009869070518482637,\"rsi_avg_loss\":0.0007695949688947268,\"rsi\":56},{\"period_id\":\"120m209809\",\"size\":\"120m\",\"time\":1510624800000,\"open\":0.17539,\"high\":0.178,\"low\":0.17465,\"close\":0.17654,\"volume\":586797.5998933498,\"close_time\":1510631991411,\"vwap\":0.17422972745241652,\"ema1\":0.1730861890882466,\"sma1\":0.17869852703703706,\"sma2\":0.17712250833333332,\"rsi_avg_gain\":0.0010628229789135149,\"rsi_avg_loss\":0.0007857176588097054,\"rsi\":57},{\"period_id\":\"120m209808\",\"size\":\"120m\",\"time\":1510617600000,\"open\":0.17346,\"high\":0.1755,\"low\":0.17214,\"close\":0.1755,\"volume\":764624.7999068601,\"close_time\":1510624784246,\"vwap\":0.17332172930927076,\"ema1\":0.1728479952322636,\"sma1\":0.17869111962962966,\"sma2\":0.17737250833333335,\"rsi_avg_gain\":0.001064578592676092,\"rsi_avg_loss\":0.0008461574787181442,\"rsi\":56},{\"period_id\":\"120m209807\",\"size\":\"120m\",\"time\":1510610400000,\"open\":0.17199,\"high\":0.1735,\"low\":0.1712,\"close\":0.1735,\"volume\":538034.5097671399,\"close_time\":1510617597826,\"vwap\":0.17230878654925555,\"ema1\":0.17266509835173005,\"sma1\":0.17870399000000003,\"sma2\":0.177619175,\"rsi_avg_gain\":0.000992623099805022,\"rsi_avg_loss\":0.0009112465155426168,\"rsi\":52},{\"period_id\":\"120m209806\",\"size\":\"120m\",\"time\":1510603200000,\"open\":0.17054,\"high\":0.17249,\"low\":0.1704,\"close\":0.17199,\"volume\":631139.0908938397,\"close_time\":1510610382134,\"vwap\":0.17195087557585748,\"ema1\":0.17260751892771142,\"sma1\":0.17872639740740745,\"sma2\":0.17783317499999998,\"rsi_avg_gain\":0.0009528248767131019,\"rsi_avg_loss\":0.0009813424013535874,\"rsi\":49},{\"period_id\":\"120m209805\",\"size\":\"120m\",\"time\":1510596000000,\"open\":0.17247,\"high\":0.1725,\"low\":0.17,\"close\":0.172,\"volume\":870330.9006816499,\"close_time\":1510603178336,\"vwap\":0.1718766132090517,\"ema1\":0.1726501064399674,\"sma1\":0.17875658259259264,\"sma2\":0.178046175,\"rsi_avg_gain\":0.001026119097998725,\"rsi_avg_loss\":0.001056061047611557,\"rsi\":49},{\"period_id\":\"120m209804\",\"size\":\"120m\",\"time\":1510588800000,\"open\":0.173,\"high\":0.17348,\"low\":0.17106,\"close\":0.1725,\"volume\":309292.22678649,\"close_time\":1510595941115,\"vwap\":0.17247879635508429,\"ema1\":0.1726949413668617,\"sma1\":0.17877991592592596,\"sma2\":0.17819934166666665,\"rsi_avg_gain\":0.0011050513363063193,\"rsi_avg_loss\":0.0010988349743509074,\"rsi\":50},{\"period_id\":\"120m209803\",\"size\":\"120m\",\"time\":1510581600000,\"open\":0.17303,\"high\":0.1735,\"low\":0.17,\"close\":0.173,\"volume\":635923.3682115899,\"close_time\":1510588750094,\"vwap\":0.17264953715607645,\"ema1\":0.17270838559905907,\"sma1\":0.17881482333333334,\"sma2\":0.17834684166666664,\"rsi_avg_gain\":0.0011900552852529592,\"rsi_avg_loss\":0.0011448992031471308,\"rsi\":51},{\"period_id\":\"120m209802\",\"size\":\"120m\",\"time\":1510574400000,\"open\":0.17399,\"high\":0.174,\"low\":0.165,\"close\":0.17304,\"volume\":1779330.7190665496,\"close_time\":1510581596236,\"vwap\":0.17183855510924553,\"ema1\":0.17268827426106315,\"sma1\":0.17885149000000003,\"sma2\":0.178471175,\"rsi_avg_gain\":0.001281597999503187,\"rsi_avg_loss\":0.001229891449543063,\"rsi\":51},{\"period_id\":\"120m209801\",\"size\":\"120m\",\"time\":1510567200000,\"open\":0.1739,\"high\":0.175,\"low\":0.17095,\"close\":0.17399,\"volume\":1125405.2639887903,\"close_time\":1510574391964,\"vwap\":0.17380898233874784,\"ema1\":0.17266401731355027,\"sma1\":0.17886871222222223,\"sma2\":0.17855467500000002,\"rsi_avg_gain\":0.0013801824610034322,\"rsi_avg_loss\":0.0012514215610463751,\"rsi\":52},{\"period_id\":\"120m209800\",\"size\":\"120m\",\"time\":1510560000000,\"open\":0.1685,\"high\":0.1739,\"low\":0.168,\"close\":0.17349,\"volume\":1034292.9793085196,\"close_time\":1510567185235,\"vwap\":0.1697687323764307,\"ema1\":0.17257257023172615,\"sma1\":0.17889504685185187,\"sma2\":0.17868650833333335,\"rsi_avg_gain\":0.0014478888041575425,\"rsi_avg_loss\":0.0013476847580499425,\"rsi\":52},{\"period_id\":\"120m209799\",\"size\":\"120m\",\"time\":1510552800000,\"open\":0.16969,\"high\":0.1705,\"low\":0.16809,\"close\":0.16856,\"volume\":70489.34351741005,\"close_time\":1510559923918,\"vwap\":0.16825225085071216,\"ema1\":0.1725092992132245,\"sma1\":0.17894949129629634,\"sma2\":0.17884384166666667,\"rsi_avg_gain\":0.0011800340967850445,\"rsi_avg_loss\":0.0014513528163614766,\"rsi\":45},{\"period_id\":\"120m209798\",\"size\":\"120m\",\"time\":1510545600000,\"open\":0.17278,\"high\":0.1729,\"low\":0.16771,\"close\":0.16941,\"volume\":232672.51672249002,\"close_time\":1510552749298,\"vwap\":0.16823715473220108,\"ema1\":0.1727816646762055,\"sma1\":0.1789848616666667,\"sma2\":0.1789820083333333,\"rsi_avg_gain\":0.001270805950383894,\"rsi_avg_loss\":0.0014976107253123583,\"rsi\":46},{\"period_id\":\"120m209797\",\"size\":\"120m\",\"time\":1510538400000,\"open\":0.16775,\"high\":0.17287,\"low\":0.16714,\"close\":0.1728,\"volume\":317883.98797446996,\"close_time\":1510545349531,\"vwap\":0.16818745359058343,\"ema1\":0.17301419327456452,\"sma1\":0.1790229172222223,\"sma2\":0.17904850833333333,\"rsi_avg_gain\":0.001368560254259578,\"rsi_avg_loss\":0.0013520423195671546,\"rsi\":50},{\"period_id\":\"120m209796\",\"size\":\"120m\",\"time\":1510531200000,\"open\":0.16949,\"high\":0.1724,\"low\":0.16559,\"close\":0.1677505,\"volume\":521480.4175115699,\"close_time\":1510538326283,\"vwap\":0.1679209888465611,\"ema1\":0.17302896522453448,\"sma1\":0.17908402833333342,\"sma2\":0.17919049999999997,\"rsi_avg_gain\":0.0010854110430487754,\"rsi_avg_loss\":0.001456045574918474,\"rsi\":43},{\"period_id\":\"120m209795\",\"size\":\"120m\",\"time\":1510524000000,\"open\":0.1674,\"high\":0.16998,\"low\":0.165,\"close\":0.1695,\"volume\":1311093.4219952,\"close_time\":1510531050771,\"vwap\":0.16691820564709517,\"ema1\":0.17339299730898514,\"sma1\":0.17921384314814823,\"sma2\":0.17930783333333336,\"rsi_avg_gain\":0.0011689042002063735,\"rsi_avg_loss\":0.0014334721576045092,\"rsi\":45},{\"period_id\":\"120m209794\",\"size\":\"120m\",\"time\":1510516800000,\"open\":0.17,\"high\":0.171,\"low\":0.1655,\"close\":0.1674,\"volume\":930806.39173004,\"close_time\":1510523988470,\"vwap\":0.16899764963389655,\"ema1\":0.1736614798820186,\"sma1\":0.17935819500000005,\"sma2\":0.1794478333333334,\"rsi_avg_gain\":0.001097281446376093,\"rsi_avg_loss\":0.0015437392466510099,\"rsi\":42},{\"period_id\":\"120m209793\",\"size\":\"120m\",\"time\":1510509600000,\"open\":0.17021,\"high\":0.171,\"low\":0.1684,\"close\":0.17002,\"volume\":1081793.2557907307,\"close_time\":1510516799098,\"vwap\":0.1700630570393893,\"ema1\":0.1740933060807785,\"sma1\":0.17947856537037044,\"sma2\":0.17952533333333337,\"rsi_avg_gain\":0.0011816877114819463,\"rsi_avg_loss\":0.001460949957931856,\"rsi\":45},{\"period_id\":\"120m209792\",\"size\":\"120m\",\"time\":1510502400000,\"open\":0.16953,\"high\":0.173,\"low\":0.16717,\"close\":0.17022,\"volume\":1220729.4702502298,\"close_time\":1510509590715,\"vwap\":0.1692525002316957,\"ema1\":0.17437422374152184,\"sma1\":0.17956625055555564,\"sma2\":0.17962566666666674,\"rsi_avg_gain\":0.0012725867662113268,\"rsi_avg_loss\":0.0015579461085419982,\"rsi\":45},{\"period_id\":\"120m209791\",\"size\":\"120m\",\"time\":1510495200000,\"open\":0.16884,\"high\":0.17264,\"low\":0.1675,\"close\":0.16999,\"volume\":1416319.5101583297,\"close_time\":1510502384838,\"vwap\":0.1695277756040311,\"ema1\":0.17466072193059232,\"sma1\":0.1796653246296297,\"sma2\":0.17974183333333338,\"rsi_avg_gain\":0.0013527857482275821,\"rsi_avg_loss\":0.0016777881168913828,\"rsi\":45},{\"period_id\":\"120m209790\",\"size\":\"120m\",\"time\":1510488000000,\"open\":0.173,\"high\":0.1756,\"low\":0.1675,\"close\":0.17039,\"volume\":3313398.677564392,\"close_time\":1510495190490,\"vwap\":0.17043271414817474,\"ema1\":0.17498284068442627,\"sma1\":0.17967819500000004,\"sma2\":0.17984366666666673,\"rsi_avg_gain\":0.0014568461903989346,\"rsi_avg_loss\":0.0017760795104984112,\"rsi\":45},{\"period_id\":\"120m209789\",\"size\":\"120m\",\"time\":1510480800000,\"open\":0.16601,\"high\":0.1763,\"low\":0.165,\"close\":0.173,\"volume\":2580742.5473769414,\"close_time\":1510487985447,\"vwap\":0.17146582625256596,\"ema1\":0.17529958831783496,\"sma1\":0.1796714357407408,\"sma2\":0.17989550000000007,\"rsi_avg_gain\":0.0015689112819680835,\"rsi_avg_loss\":0.0017119317805367525,\"rsi\":48},{\"period_id\":\"120m209788\",\"size\":\"120m\",\"time\":1510473600000,\"open\":0.16596,\"high\":0.17146,\"low\":0.1611,\"close\":0.16601,\"volume\":2380649.9986581267,\"close_time\":1510480792987,\"vwap\":0.1665903382977517,\"ema1\":0.1754581806156167,\"sma1\":0.17971810240740746,\"sma2\":0.18005700000000008,\"rsi_avg_gain\":0.0011519044575040904,\"rsi_avg_loss\":0.001843618840578041,\"rsi\":38},{\"period_id\":\"120m209787\",\"size\":\"120m\",\"time\":1510466400000,\"open\":0.17,\"high\":0.17099,\"low\":0.161,\"close\":0.16122,\"volume\":3229527.0687472746,\"close_time\":1510473566212,\"vwap\":0.16342290299102394,\"ema1\":0.17610977927876267,\"sma1\":0.17976449129629626,\"sma2\":0.1802836666666667,\"rsi_avg_gain\":0.000872050954235175,\"rsi_avg_loss\":0.0019854356744686595,\"rsi\":31},{\"period_id\":\"120m209786\",\"size\":\"120m\",\"time\":1510459200000,\"open\":0.17066,\"high\":0.17355,\"low\":0.16823,\"close\":0.17,\"volume\":994724.1163038004,\"close_time\":1510466383975,\"vwap\":0.16978592669118706,\"ema1\":0.17713666060833252,\"sma1\":0.1797705098148148,\"sma2\":0.1803581666666667,\"rsi_avg_gain\":0.00093913179686865,\"rsi_avg_loss\":0.0014627768801970173,\"rsi\":39},{\"period_id\":\"120m209785\",\"size\":\"120m\",\"time\":1510452000000,\"open\":0.17445,\"high\":0.17445,\"low\":0.16902,\"close\":0.16922,\"volume\":1261435.8449201102,\"close_time\":1510459100083,\"vwap\":0.1710854394965386,\"ema1\":0.17762884409856236,\"sma1\":0.17979226907407408,\"sma2\":0.18044616666666669,\"rsi_avg_gain\":0.0009513727043200844,\"rsi_avg_loss\":0.0015752981786737112,\"rsi\":38},{\"period_id\":\"120m209784\",\"size\":\"120m\",\"time\":1510444800000,\"open\":0.17767,\"high\":0.1777,\"low\":0.17407,\"close\":0.17426,\"volume\":328023.63525571,\"close_time\":1510451999100,\"vwap\":0.1759488667793826,\"ema1\":0.17820876438122182,\"sma1\":0.17985986166666668,\"sma2\":0.18042516666666672,\"rsi_avg_gain\":0.001024555220037014,\"rsi_avg_loss\":0.0013087826539563052,\"rsi\":44},{\"period_id\":\"120m209783\",\"size\":\"120m\",\"time\":1510437600000,\"open\":0.17563,\"high\":0.1785,\"low\":0.17377,\"close\":0.1767,\"volume\":316327.0275906,\"close_time\":1510444746655,\"vwap\":0.17731236545931028,\"ema1\":0.17848109295923711,\"sma1\":0.17981625055555556,\"sma2\":0.1804106666666667,\"rsi_avg_gain\":0.0011033671600398612,\"rsi_avg_loss\":0.0012217659350298672,\"rsi\":47},{\"period_id\":\"120m209782\",\"size\":\"120m\",\"time\":1510430400000,\"open\":0.17608,\"high\":0.17998,\"low\":0.17214,\"close\":0.17598,\"volume\":1570101.0684755915,\"close_time\":1510437571913,\"vwap\":0.17669135318475301,\"ema1\":0.17860392695642588,\"sma1\":0.17969606537037042,\"sma2\":0.1804196666666667,\"rsi_avg_gain\":0.001132856941581389,\"rsi_avg_loss\":0.0013157479300321647,\"rsi\":46},{\"period_id\":\"120m209781\",\"size\":\"120m\",\"time\":1510423200000,\"open\":0.179,\"high\":0.18004,\"low\":0.175,\"close\":0.177,\"volume\":1139440.0789324606,\"close_time\":1510430382442,\"vwap\":0.17718037856805066,\"ema1\":0.1787848874361794,\"sma1\":0.1795708801851852,\"sma2\":0.18036033333333334,\"rsi_avg_gain\":0.0012199997832414958,\"rsi_avg_loss\":0.0013384977708038703,\"rsi\":48},{\"period_id\":\"120m209780\",\"size\":\"120m\",\"time\":1510416000000,\"open\":0.1732,\"high\":0.1794,\"low\":0.17001,\"close\":0.1794,\"volume\":991466.1092300097,\"close_time\":1510423190096,\"vwap\":0.17555560153166702,\"ema1\":0.17890798312143316,\"sma1\":0.1794468061111111,\"sma2\":0.18033533333333335,\"rsi_avg_gain\":0.0013138459204139186,\"rsi_avg_loss\":0.0012568437531733979,\"rsi\":51},{\"period_id\":\"120m209779\",\"size\":\"120m\",\"time\":1510408800000,\"open\":0.16985,\"high\":0.17395,\"low\":0.167,\"close\":0.17263,\"volume\":974812.9391063203,\"close_time\":1510415941956,\"vwap\":0.1729288809659775,\"ema1\":0.1788740509229113,\"sma1\":0.17939625055555555,\"sma2\":0.1804,\"rsi_avg_gain\":0.0008941417604457588,\"rsi_avg_loss\":0.001353524041879044,\"rsi\":40},{\"period_id\":\"120m209778\",\"size\":\"120m\",\"time\":1510401600000,\"open\":0.175,\"high\":0.17576832,\"low\":0.16701,\"close\":0.1695,\"volume\":2442211.8787478986,\"close_time\":1510408777466,\"vwap\":0.16992233324360154,\"ema1\":0.1793046751244914,\"sma1\":0.17933904388888883,\"sma2\":0.1805331666666667,\"rsi_avg_gain\":0.0007221526650954329,\"rsi_avg_loss\":0.0014576412758697396,\"rsi\":33},{\"period_id\":\"120m209777\",\"size\":\"120m\",\"time\":1510394400000,\"open\":0.1805,\"high\":0.18141,\"low\":0.172,\"close\":0.1721,\"volume\":2079496.2112085498,\"close_time\":1510401587132,\"vwap\":0.17492635546822596,\"ema1\":0.17998085961583565,\"sma1\":0.17914080314814812,\"sma2\":0.18063316666666665,\"rsi_avg_gain\":0.0007777028701027739,\"rsi_avg_loss\":0.0013697675278597202,\"rsi\":36},{\"period_id\":\"120m209776\",\"size\":\"120m\",\"time\":1510387200000,\"open\":0.17744,\"high\":0.181,\"low\":0.17692,\"close\":0.18022,\"volume\":981048.3481494704,\"close_time\":1510394392419,\"vwap\":0.18055817656417925,\"ema1\":0.18052436717554846,\"sma1\":0.17894635870370368,\"sma2\":0.18052216666666665,\"rsi_avg_gain\":0.0008375261678029873,\"rsi_avg_loss\":0.0008505188761566227,\"rsi\":50},{\"period_id\":\"120m209775\",\"size\":\"120m\",\"time\":1510380000000,\"open\":0.17612,\"high\":0.17835,\"low\":0.17575,\"close\":0.178,\"volume\":270682.5348436299,\"close_time\":1510387170239,\"vwap\":0.17585125013857908,\"ema1\":0.18054535801524146,\"sma1\":0.1788060809259259,\"sma2\":0.18041383333333333,\"rsi_avg_gain\":0.0007311820268647556,\"rsi_avg_loss\":0.0009159434050917475,\"rsi\":44},{\"period_id\":\"120m209774\",\"size\":\"120m\",\"time\":1510372800000,\"open\":0.17598,\"high\":0.177,\"low\":0.175,\"close\":0.1755,\"volume\":131092.04912470002,\"close_time\":1510379912100,\"vwap\":0.17559025484222057,\"ema1\":0.18072089994732707,\"sma1\":0.17869237722222217,\"sma2\":0.18035716666666668,\"rsi_avg_gain\":0.000595119105854352,\"rsi_avg_loss\":0.000986400590098805,\"rsi\":38},{\"period_id\":\"120m209773\",\"size\":\"120m\",\"time\":1510365600000,\"open\":0.17698,\"high\":0.177,\"low\":0.1758,\"close\":0.17635,\"volume\":94690.41121102999,\"close_time\":1510372576835,\"vwap\":0.17559724933809398,\"ema1\":0.18108096201265997,\"sma1\":0.17860571055555552,\"sma2\":0.18028483333333334,\"rsi_avg_gain\":0.0006408974986123791,\"rsi_avg_loss\":0.000996892943183327,\"rsi\":39},{\"period_id\":\"120m209772\",\"size\":\"120m\",\"time\":1510358400000,\"open\":0.17466,\"high\":0.17727,\"low\":0.1735,\"close\":0.177,\"volume\":222966.58106674007,\"close_time\":1510365541592,\"vwap\":0.17557522682226764,\"ema1\":0.18140723525491237,\"sma1\":0.17850895129629624,\"sma2\":0.1801945,\"rsi_avg_gain\":0.0006901973061979467,\"rsi_avg_loss\":0.0010235770157358919,\"rsi\":40},{\"period_id\":\"120m209771\",\"size\":\"120m\",\"time\":1510351200000,\"open\":0.17467,\"high\":0.179,\"low\":0.17387,\"close\":0.1747,\"volume\":797093.3192915202,\"close_time\":1510358365250,\"vwap\":0.17546728861244507,\"ema1\":0.18171118251387183,\"sma1\":0.17839543277777775,\"sma2\":0.18016533333333332,\"rsi_avg_gain\":0.0005663663297516352,\"rsi_avg_loss\":0.0011023137092540374,\"rsi\":34},{\"period_id\":\"120m209770\",\"size\":\"120m\",\"time\":1510344000000,\"open\":0.17441,\"high\":0.17549,\"low\":0.171,\"close\":0.17479,\"volume\":1094468.96498331,\"close_time\":1510351192590,\"vwap\":0.17331172746452123,\"ema1\":0.18219471234241472,\"sma1\":0.1783408957407407,\"sma2\":0.18013771,\"rsi_avg_gain\":0.000609932970501761,\"rsi_avg_loss\":0.0011801839945812704,\"rsi\":34},{\"period_id\":\"120m209769\",\"size\":\"120m\",\"time\":1510336800000,\"open\":0.1761,\"high\":0.1772,\"low\":0.1715,\"close\":0.17441,\"volume\":1735605.7652716597,\"close_time\":1510343991423,\"vwap\":0.17332078885704977,\"ema1\":0.18270538215913298,\"sma1\":0.1782705253703703,\"sma2\":0.1800888766666667,\"rsi_avg_gain\":0.0006276201220788201,\"rsi_avg_loss\":0.0012709673787798296,\"rsi\":33},{\"period_id\":\"120m209768\",\"size\":\"120m\",\"time\":1510329600000,\"open\":0.1778,\"high\":0.178,\"low\":0.1752,\"close\":0.1762,\"volume\":1264054.9084802696,\"close_time\":1510336785873,\"vwap\":0.177245781903541,\"ema1\":0.1832774774804525,\"sma1\":0.17821959944444443,\"sma2\":0.18001887666666672,\"rsi_avg_gain\":0.0006758985930079602,\"rsi_avg_loss\":0.0012310417925321252,\"rsi\":35},{\"period_id\":\"120m209767\",\"size\":\"120m\",\"time\":1510322400000,\"open\":0.17786,\"high\":0.1788,\"low\":0.175,\"close\":0.1778,\"volume\":1705075.3105860895,\"close_time\":1510329594861,\"vwap\":0.17754493663237195,\"ema1\":0.18376557937565613,\"sma1\":0.17816441425925925,\"sma2\":0.1799383766666667,\"rsi_avg_gain\":0.000727890792470111,\"rsi_avg_loss\":0.001202660391957672,\"rsi\":38},{\"period_id\":\"120m209766\",\"size\":\"120m\",\"time\":1510315200000,\"open\":0.183,\"high\":0.18419,\"low\":0.175,\"close\":0.1756,\"volume\":3142127.279473542,\"close_time\":1510322389977,\"vwap\":0.1769254675874909,\"ema1\":0.18417699864294276,\"sma1\":0.17804691425925925,\"sma2\":0.17987671000000008,\"rsi_avg_gain\":0.000614651622660119,\"rsi_avg_loss\":0.0012951727298005698,\"rsi\":32},{\"period_id\":\"120m209765\",\"size\":\"120m\",\"time\":1510308000000,\"open\":0.18448,\"high\":0.18618,\"low\":0.1828,\"close\":0.18419,\"volume\":1506359.236394429,\"close_time\":1510315192886,\"vwap\":0.18435888808568712,\"ema1\":0.18476851579073192,\"sma1\":0.17791543277777783,\"sma2\":0.1797035433333334,\"rsi_avg_gain\":0.0006619325167108974,\"rsi_avg_loss\":0.000734032170554461,\"rsi\":47},{\"period_id\":\"120m209764\",\"size\":\"120m\",\"time\":1510300800000,\"open\":0.184,\"high\":0.18554,\"low\":0.183,\"close\":0.1833,\"volume\":1503755.2062659115,\"close_time\":1510307961116,\"vwap\":0.18442722737485695,\"ema1\":0.18480841343147206,\"sma1\":0.17779617351851856,\"sma2\":0.1795332100000001,\"rsi_avg_gain\":0.0006443888641501971,\"rsi_avg_loss\":0.0007904961836740349,\"rsi\":45},{\"period_id\":\"120m209763\",\"size\":\"120m\",\"time\":1510293600000,\"open\":0.1856,\"high\":0.18767,\"low\":0.182,\"close\":0.18456,\"volume\":1486303.6773744512,\"close_time\":1510300710540,\"vwap\":0.18389180282990275,\"ema1\":0.18491244194398737,\"sma1\":0.1776452475925926,\"sma2\":0.17936287666666675,\"rsi_avg_gain\":0.0006939572383155969,\"rsi_avg_loss\":0.0007543805054951136,\"rsi\":48},{\"period_id\":\"120m209762\",\"size\":\"120m\",\"time\":1510286400000,\"open\":0.18779,\"high\":0.1893,\"low\":0.185,\"close\":0.1856,\"volume\":939146.5902925809,\"close_time\":1510293560736,\"vwap\":0.18630409388436292,\"ema1\":0.18493674828495202,\"sma1\":0.17748154388888893,\"sma2\":0.1791872100000001,\"rsi_avg_gain\":0.0007473385643398736,\"rsi_avg_loss\":0.000732409775148585,\"rsi\":51},{\"period_id\":\"120m209761\",\"size\":\"120m\",\"time\":1510279200000,\"open\":0.18826,\"high\":0.1888,\"low\":0.18701,\"close\":0.18705,\"volume\":339837.14506474993,\"close_time\":1510285951714,\"vwap\":0.18778191377811868,\"ema1\":0.1848910067873625,\"sma1\":0.17732413648148154,\"sma2\":0.17897471000000006,\"rsi_avg_gain\":0.0008048261462121716,\"rsi_avg_loss\":0.0006772105270830911,\"rsi\":54},{\"period_id\":\"120m209760\",\"size\":\"120m\",\"time\":1510272000000,\"open\":0.18789,\"high\":0.1891,\"low\":0.18751,\"close\":0.18826,\"volume\":345118.0852415101,\"close_time\":1510279161966,\"vwap\":0.18825315086094688,\"ema1\":0.18474211070373234,\"sma1\":0.17716571055555563,\"sma2\":0.17874387666666677,\"rsi_avg_gain\":0.0008667358497669541,\"rsi_avg_loss\":0.0006362267214740969,\"rsi\":58},{\"period_id\":\"120m209759\",\"size\":\"120m\",\"time\":1510264800000,\"open\":0.18834,\"high\":0.18945,\"low\":0.187,\"close\":0.1879,\"volume\":796401.9897196796,\"close_time\":1510271939436,\"vwap\":0.18900284209000745,\"ema1\":0.18449949764881732,\"sma1\":0.17701191425925933,\"sma2\":0.1784985433333334,\"rsi_avg_gain\":0.0009057155305182582,\"rsi_avg_loss\":0.0006851672385105659,\"rsi\":57},{\"period_id\":\"120m209758\",\"size\":\"120m\",\"time\":1510257600000,\"open\":0.18978,\"high\":0.19079,\"low\":0.188,\"close\":0.18826,\"volume\":1298007.2077193111,\"close_time\":1510264623260,\"vwap\":0.18950816490344666,\"ema1\":0.18426498024528748,\"sma1\":0.17684580314814824,\"sma2\":0.17826021000000009,\"rsi_avg_gain\":0.0009753859559427396,\"rsi_avg_loss\":0.0007101801030113786,\"rsi\":58},{\"period_id\":\"120m209757\",\"size\":\"120m\",\"time\":1510250400000,\"open\":0.19128,\"high\":0.19157,\"low\":0.189,\"close\":0.19,\"volume\":1405700.9650095599,\"close_time\":1510257580160,\"vwap\":0.18998488965552207,\"ema1\":0.1839894616415142,\"sma1\":0.17667126611111125,\"sma2\":0.1780185433333334,\"rsi_avg_gain\":0.001050415644861412,\"rsi_avg_loss\":0.0006309631878584084,\"rsi\":62},{\"period_id\":\"120m209756\",\"size\":\"120m\",\"time\":1510243200000,\"open\":0.18917,\"high\":0.1916,\"low\":0.189,\"close\":0.19116,\"volume\":1132757.5451497396,\"close_time\":1510250373928,\"vwap\":0.1903784529951729,\"ema1\":0.18357494175472208,\"sma1\":0.1765036735185187,\"sma2\":0.17775237666666677,\"rsi_avg_gain\":0.0011312168483122898,\"rsi_avg_loss\":0.0005902680484629018,\"rsi\":66},{\"period_id\":\"120m209755\",\"size\":\"120m\",\"time\":1510236000000,\"open\":0.18691,\"high\":0.1895,\"low\":0.186,\"close\":0.18924,\"volume\":1015144.8545400195,\"close_time\":1510243165747,\"vwap\":0.1886144336386861,\"ema1\":0.1830518342895305,\"sma1\":0.17636571055555572,\"sma2\":0.17752904333333344,\"rsi_avg_gain\":0.0010705412212593888,\"rsi_avg_loss\":0.0006356732829600481,\"rsi\":63},{\"period_id\":\"120m209754\",\"size\":\"120m\",\"time\":1510228800000,\"open\":0.18752,\"high\":0.18776,\"low\":0.185,\"close\":0.18751,\"volume\":1343139.0552525606,\"close_time\":1510235959442,\"vwap\":0.18743402746670354,\"ema1\":0.1826250642405326,\"sma1\":0.1762457105555557,\"sma2\":0.17735404333333343,\"rsi_avg_gain\":0.0010198136228947278,\"rsi_avg_loss\":0.0006845712278031286,\"rsi\":60},{\"period_id\":\"120m209753\",\"size\":\"120m\",\"time\":1510221600000,\"open\":0.1869,\"high\":0.19,\"low\":0.1862,\"close\":0.18776,\"volume\":3008040.409756683,\"close_time\":1510228722468,\"vwap\":0.1880787561472881,\"ema1\":0.18228817211919002,\"sma1\":0.17610496981481497,\"sma2\":0.17714137666666677,\"rsi_avg_gain\":0.0010982608246558607,\"rsi_avg_loss\":0.0007179997837879846,\"rsi\":60},{\"period_id\":\"120m209752\",\"size\":\"120m\",\"time\":1510214400000,\"open\":0.1918,\"high\":0.19399,\"low\":0.18508,\"close\":0.18612,\"volume\":2349684.717258219,\"close_time\":1510221593570,\"vwap\":0.1870631592582689,\"ema1\":0.18191080467913415,\"sma1\":0.17592635870370388,\"sma2\":0.17697271000000006,\"rsi_avg_gain\":0.001056588580398619,\"rsi_avg_loss\":0.0007732305363870603,\"rsi\":58},{\"period_id\":\"120m209751\",\"size\":\"120m\",\"time\":1510207200000,\"open\":0.19,\"high\":0.19345,\"low\":0.18762,\"close\":0.1923,\"volume\":1760255.8831517405,\"close_time\":1510214387087,\"vwap\":0.19069862012082386,\"ema1\":0.18162051534666063,\"sma1\":0.17574978462962984,\"sma2\":0.17669971000000004,\"rsi_avg_gain\":0.0011378646250446666,\"rsi_avg_loss\":0.00035732519303221936,\"rsi\":76},{\"period_id\":\"120m209750\",\"size\":\"120m\",\"time\":1510200000000,\"open\":0.19149,\"high\":0.19209,\"low\":0.18817,\"close\":0.19,\"volume\":1028929.5947521498,\"close_time\":1510207189870,\"vwap\":0.18983725883409452,\"ema1\":0.1808839991636717,\"sma1\":0.17558172907407427,\"sma2\":0.1764783766666667,\"rsi_avg_gain\":0.0010484695962019491,\"rsi_avg_loss\":0.00038481174634239006,\"rsi\":73},{\"period_id\":\"120m209749\",\"size\":\"120m\",\"time\":1510192800000,\"open\":0.1904,\"high\":0.19199,\"low\":0.19,\"close\":0.1915,\"volume\":451503.23897744983,\"close_time\":1510199851179,\"vwap\":0.1895856186330094,\"ema1\":0.18025530945082147,\"sma1\":0.17541978462962982,\"sma2\":0.17619621,\"rsi_avg_gain\":0.0011291211036020992,\"rsi_avg_loss\":0.00029902803452257383,\"rsi\":79},{\"period_id\":\"120m209748\",\"size\":\"120m\",\"time\":1510185600000,\"open\":0.1883,\"high\":0.19145,\"low\":0.18762,\"close\":0.1905,\"volume\":1098934.3051002997,\"close_time\":1510192757308,\"vwap\":0.189071795426377,\"ema1\":0.1794798135508781,\"sma1\":0.17525987722222236,\"sma2\":0.17593787666666666,\"rsi_avg_gain\":0.001139053496186876,\"rsi_avg_loss\":0.0003220301910243103,\"rsi\":78},{\"period_id\":\"120m209747\",\"size\":\"120m\",\"time\":1510178400000,\"open\":0.18594,\"high\":0.194,\"low\":0.18486,\"close\":0.1883,\"volume\":3605912.2368677803,\"close_time\":1510185592050,\"vwap\":0.18961494078702593,\"ema1\":0.17871980069231796,\"sma1\":0.17507932166666682,\"sma2\":0.17577454333333328,\"rsi_avg_gain\":0.001057442226662789,\"rsi_avg_loss\":0.0003468017441800265,\"rsi\":75},{\"period_id\":\"120m209746\",\"size\":\"120m\",\"time\":1510171200000,\"open\":0.18458,\"high\":0.189,\"low\":0.18392,\"close\":0.18483,\"volume\":2863643.826655647,\"close_time\":1510178396358,\"vwap\":0.18614443130881142,\"ema1\":0.17805909729178818,\"sma1\":0.17494774759259274,\"sma2\":0.17574237666666667,\"rsi_avg_gain\":0.0008718608594830033,\"rsi_avg_loss\":0.00037347880142464394,\"rsi\":70},{\"period_id\":\"120m209745\",\"size\":\"120m\",\"time\":1510164000000,\"open\":0.18168,\"high\":0.18489,\"low\":0.1812,\"close\":0.18478,\"volume\":1649316.9000354288,\"close_time\":1510171085680,\"vwap\":0.18350376944692184,\"ema1\":0.17759213848432528,\"sma1\":0.17485432166666684,\"sma2\":0.17572520999999994,\"rsi_avg_gain\":0.0009350809255970809,\"rsi_avg_loss\":0.00040220793999577037,\"rsi\":70},{\"period_id\":\"120m209744\",\"size\":\"120m\",\"time\":1510156800000,\"open\":0.18179,\"high\":0.18185,\"low\":0.18021,\"close\":0.18169,\"volume\":681920.6512323202,\"close_time\":1510163982490,\"vwap\":0.18068541159841048,\"ema1\":0.17709642389703736,\"sma1\":0.17479080314814832,\"sma2\":0.17573820999999995,\"rsi_avg_gain\":0.0007693179198737787,\"rsi_avg_loss\":0.00043314701230313734,\"rsi\":64},{\"period_id\":\"120m209743\",\"size\":\"120m\",\"time\":1510149600000,\"open\":0.1805,\"high\":0.18185,\"low\":0.17981,\"close\":0.18185,\"volume\":951725.1750221897,\"close_time\":1510156611388,\"vwap\":0.18057221550874236,\"ema1\":0.1767796255451089,\"sma1\":0.17472358092592605,\"sma2\":0.17568104333333331,\"rsi_avg_gain\":0.0008284962214025308,\"rsi_avg_loss\":0.0004541583209418386,\"rsi\":65},{\"period_id\":\"120m209742\",\"size\":\"120m\",\"time\":1510142400000,\"open\":0.17993,\"high\":0.18099,\"low\":0.17898,\"close\":0.1805,\"volume\":540792.8048310501,\"close_time\":1510149525975,\"vwap\":0.1804318694786056,\"ema1\":0.17642994454821986,\"sma1\":0.17467182166666678,\"sma2\":0.17562087666666662,\"rsi_avg_gain\":0.000788380546125801,\"rsi_avg_loss\":0.0004890935763989031,\"rsi\":62},{\"period_id\":\"120m209741\",\"size\":\"120m\",\"time\":1510135200000,\"open\":0.1814,\"high\":0.1818,\"low\":0.179,\"close\":0.179,\"volume\":783970.61652481,\"close_time\":1510142377261,\"vwap\":0.18050216340351813,\"ema1\":0.17614925106878676,\"sma1\":0.17461108092592603,\"sma2\":0.1755445433333333,\"rsi_avg_gain\":0.000733640588135478,\"rsi_avg_loss\":0.0005267161591988187,\"rsi\":58},{\"period_id\":\"120m209740\",\"size\":\"120m\",\"time\":1510128000000,\"open\":0.17791,\"high\":0.1815,\"low\":0.1779,\"close\":0.1814,\"volume\":1374943.94239282,\"close_time\":1510135187696,\"vwap\":0.17986553570845035,\"ema1\":0.17595264769422034,\"sma1\":0.17454858092592598,\"sma2\":0.17539120999999996,\"rsi_avg_gain\":0.0007900744795305148,\"rsi_avg_loss\":0.00038261740221411144,\"rsi\":67},{\"period_id\":\"120m209739\",\"size\":\"120m\",\"time\":1510120800000,\"open\":0.17764,\"high\":0.17849,\"low\":0.17652,\"close\":0.178,\"volume\":384621.52919080993,\"close_time\":1510127962156,\"vwap\":0.17786524449442043,\"ema1\":0.17557696822485622,\"sma1\":0.17450515500000008,\"sma2\":0.1753463766666666,\"rsi_avg_gain\":0.0005893109779559379,\"rsi_avg_loss\":0.0004120495100767354,\"rsi\":59},{\"period_id\":\"120m209738\",\"size\":\"120m\",\"time\":1510113600000,\"open\":0.1769,\"high\":0.1777,\"low\":0.17644,\"close\":0.1777,\"volume\":69522.52897796,\"close_time\":1510120779142,\"vwap\":0.1770406861574717,\"ema1\":0.17540986258519112,\"sma1\":0.17446256240740748,\"sma2\":0.1752628766666666,\"rsi_avg_gain\":0.0006115656685679335,\"rsi_avg_loss\":0.0004437456262364843,\"rsi\":58},{\"period_id\":\"120m209737\",\"size\":\"120m\",\"time\":1510106400000,\"open\":0.17604,\"high\":0.1777,\"low\":0.17601,\"close\":0.17679,\"volume\":48029.677979789994,\"close_time\":1510113047765,\"vwap\":0.17553666750870361,\"ema1\":0.17525192207382498,\"sma1\":0.17442145129629635,\"sma2\":0.1751333766666666,\"rsi_avg_gain\":0.0005886091815346981,\"rsi_avg_loss\":0.0004778799051777523,\"rsi\":55},{\"period_id\":\"120m209736\",\"size\":\"120m\",\"time\":1510099200000,\"open\":0.17749,\"high\":0.178,\"low\":0.17573,\"close\":0.17627,\"volume\":193680.65782711,\"close_time\":1510105724331,\"vwap\":0.17553334268177562,\"ema1\":0.17514584773408878,\"sma1\":0.17438404388888895,\"sma2\":0.1751413766666666,\"rsi_avg_gain\":0.0005938868108835216,\"rsi_avg_loss\":0.0005146398978837333,\"rsi\":54},{\"period_id\":\"120m209735\",\"size\":\"120m\",\"time\":1510092000000,\"open\":0.176,\"high\":0.17798,\"low\":0.17505,\"close\":0.17654,\"volume\":331983.7212767101,\"close_time\":1510099191438,\"vwap\":0.17545365910225147,\"ema1\":0.17506831999161215,\"sma1\":0.17434135870370374,\"sma2\":0.17506720999999995,\"rsi_avg_gain\":0.0006395704117207156,\"rsi_avg_loss\":0.000533458351567098,\"rsi\":55},{\"period_id\":\"120m209734\",\"size\":\"120m\",\"time\":1510084800000,\"open\":0.17462,\"high\":0.17599,\"low\":0.174,\"close\":0.1758,\"volume\":543890.8425675798,\"close_time\":1510091951730,\"vwap\":0.17512203823646758,\"ema1\":0.1749668248186199,\"sma1\":0.1743274698148148,\"sma2\":0.17486787666666662,\"rsi_avg_gain\":0.0006318450587761559,\"rsi_avg_loss\":0.0005744936093799517,\"rsi\":52},{\"period_id\":\"120m209733\",\"size\":\"120m\",\"time\":1510077600000,\"open\":0.176,\"high\":0.17623,\"low\":0.1742,\"close\":0.17467,\"volume\":298285.5914498901,\"close_time\":1510084781753,\"vwap\":0.1751233748722952,\"ema1\":0.17490936446128333,\"sma1\":0.17430265499999997,\"sma2\":0.17470687666666665,\"rsi_avg_gain\":0.0005935254479127818,\"rsi_avg_loss\":0.0006186854254861019,\"rsi\":49},{\"period_id\":\"120m209732\",\"size\":\"120m\",\"time\":1510070400000,\"open\":0.17696,\"high\":0.17699,\"low\":0.1741,\"close\":0.17624,\"volume\":616210.35768858,\"close_time\":1510077534651,\"vwap\":0.1752082396367605,\"ema1\":0.17492587235516494,\"sma1\":0.17427219203703703,\"sma2\":0.17451487666666665,\"rsi_avg_gain\":0.0006391812515983804,\"rsi_avg_loss\":0.0005455073812927238,\"rsi\":54},{\"period_id\":\"120m209731\",\"size\":\"120m\",\"time\":1510063200000,\"open\":0.1765,\"high\":0.1788,\"low\":0.175,\"close\":0.17696,\"volume\":484177.00953444996,\"close_time\":1510070388539,\"vwap\":0.17680932576068042,\"ema1\":0.1748352428624177,\"sma1\":0.1742154327777778,\"sma2\":0.17432304333333332,\"rsi_avg_gain\":0.0006883490401828712,\"rsi_avg_loss\":0.000532084872161395,\"rsi\":56},{\"period_id\":\"120m209730\",\"size\":\"120m\",\"time\":1510056000000,\"open\":0.17611,\"high\":0.1794,\"low\":0.17513,\"close\":0.1765,\"volume\":691270.1650262901,\"close_time\":1510063183951,\"vwap\":0.17673421276654575,\"ema1\":0.174688707887412,\"sma1\":0.17414691425925927,\"sma2\":0.17415170999999996,\"rsi_avg_gain\":0.0007059143509661678,\"rsi_avg_loss\":0.0005730144777122716,\"rsi\":55},{\"period_id\":\"120m209729\",\"size\":\"120m\",\"time\":1510048800000,\"open\":0.175,\"high\":0.17611,\"low\":0.1742,\"close\":0.17611,\"volume\":343346.65494068,\"close_time\":1510055978376,\"vwap\":0.1755832594323325,\"ema1\":0.17456379118999213,\"sma1\":0.17410311796296296,\"sma2\":0.17388320999999998,\"rsi_avg_gain\":0.0007302154548866421,\"rsi_avg_loss\":0.0006170925144593694,\"rsi\":54},{\"period_id\":\"120m209728\",\"size\":\"120m\",\"time\":1510041600000,\"open\":0.17482,\"high\":0.1763,\"low\":0.1744,\"close\":0.1757,\"volume\":580407.61852609,\"close_time\":1510048791024,\"vwap\":0.17577554487609368,\"ema1\":0.17445715609964677,\"sma1\":0.17407061796296294,\"sma2\":0.17356670999999996,\"rsi_avg_gain\":0.0007548474129548458,\"rsi_avg_loss\":0.0006645611694177824,\"rsi\":53},{\"period_id\":\"120m209727\",\"size\":\"120m\",\"time\":1510034400000,\"open\":0.1744,\"high\":0.17537,\"low\":0.17321,\"close\":0.17482,\"volume\":284289.22077732993,\"close_time\":1510041591397,\"vwap\":0.17570119600826628,\"ema1\":0.17437144272720861,\"sma1\":0.17405580314814817,\"sma2\":0.17330504333333335,\"rsi_avg_gain\":0.0007452202908744498,\"rsi_avg_loss\":0.0007156812593729964,\"rsi\":51},{\"period_id\":\"120m209726\",\"size\":\"120m\",\"time\":1510027200000,\"open\":0.17457,\"high\":0.17517,\"low\":0.17371,\"close\":0.17447,\"volume\":11673.709015010001,\"close_time\":1510034307242,\"vwap\":0.1758493401568572,\"ema1\":0.17434050774287818,\"sma1\":0.1740440438888889,\"sma2\":0.1730855433333333,\"rsi_avg_gain\":0.0007756218517109447,\"rsi_avg_loss\":0.00077073366394015,\"rsi\":50},{\"period_id\":\"120m209725\",\"size\":\"120m\",\"time\":1510020000000,\"open\":0.17377,\"high\":0.1745,\"low\":0.17302,\"close\":0.1745,\"volume\":20485.34577588,\"close_time\":1510026811994,\"vwap\":0.17585108605659566,\"ema1\":0.17433157724238701,\"sma1\":0.17401395129629627,\"sma2\":0.17288554333333334,\"rsi_avg_gain\":0.000835285071073325,\"rsi_avg_loss\":0.0008277131765509306,\"rsi\":50},{\"period_id\":\"120m209724\",\"size\":\"120m\",\"time\":1510012800000,\"open\":0.1752,\"high\":0.176,\"low\":0.173,\"close\":0.173,\"volume\":507745.65906769,\"close_time\":1510019694184,\"vwap\":0.17585337536355825,\"ema1\":0.174319961879793,\"sma1\":0.17397811796296297,\"sma2\":0.17275754333333332,\"rsi_avg_gain\":0.0007841531534635807,\"rsi_avg_loss\":0.0008913834209010021,\"rsi\":47},{\"period_id\":\"120m209723\",\"size\":\"120m\",\"time\":1510005600000,\"open\":0.176,\"high\":0.17736,\"low\":0.17508,\"close\":0.17583,\"volume\":321363.90848562,\"close_time\":1510012612990,\"vwap\":0.17643086777099926,\"ema1\":0.17441099373357183,\"sma1\":0.17393339574074074,\"sma2\":0.17256604333333334,\"rsi_avg_gain\":0.000844472626806933,\"rsi_avg_loss\":0.0007422590686626177,\"rsi\":53},{\"period_id\":\"120m209722\",\"size\":\"120m\",\"time\":1509998400000,\"open\":0.17397,\"high\":0.17917,\"low\":0.173,\"close\":0.17652,\"volume\":837215.3540747804,\"close_time\":1510005596259,\"vwap\":0.17655834710534127,\"ema1\":0.17431313123243886,\"sma1\":0.17388821055555553,\"sma2\":0.17239937666666666,\"rsi_avg_gain\":0.0009094320596382355,\"rsi_avg_loss\":0.0007462789970212788,\"rsi\":55},{\"period_id\":\"120m209721\",\"size\":\"120m\",\"time\":1509991200000,\"open\":0.1779,\"high\":0.178,\"low\":0.1725,\"close\":0.17344,\"volume\":831803.0782492501,\"close_time\":1509998371399,\"vwap\":0.17582551882722042,\"ema1\":0.17416093338640015,\"sma1\":0.17383654388888883,\"sma2\":0.17231671,\"rsi_avg_gain\":0.0007424652949950229,\"rsi_avg_loss\":0.0008036850737152233,\"rsi\":48},{\"period_id\":\"120m209720\",\"size\":\"120m\",\"time\":1509984000000,\"open\":0.17718,\"high\":0.178,\"low\":0.176,\"close\":0.1779,\"volume\":519464.5367089202,\"close_time\":1509991165784,\"vwap\":0.17740333402709543,\"ema1\":0.1742106529302898,\"sma1\":0.1737830253703703,\"sma2\":0.17218487666666665,\"rsi_avg_gain\":0.00079957800999464,\"rsi_avg_loss\":0.0005224300793856257,\"rsi\":60},{\"period_id\":\"120m209719\",\"size\":\"120m\",\"time\":1509976800000,\"open\":0.17746,\"high\":0.17942,\"low\":0.176,\"close\":0.17651,\"volume\":713613.6589118104,\"close_time\":1509983927143,\"vwap\":0.17720566385056102,\"ema1\":0.17395621520134427,\"sma1\":0.17373274759259252,\"sma2\":0.17211521,\"rsi_avg_gain\":0.0007541609338403814,\"rsi_avg_loss\":0.0005626170085691354,\"rsi\":57},{\"period_id\":\"120m209718\",\"size\":\"120m\",\"time\":1509969600000,\"open\":0.17809,\"high\":0.1795,\"low\":0.17611,\"close\":0.17749,\"volume\":1374767.8448534303,\"close_time\":1509976794806,\"vwap\":0.1781407871156268,\"ema1\":0.1737800921117818,\"sma1\":0.17368885870370365,\"sma2\":0.17200871,\"rsi_avg_gain\":0.0008121733133665646,\"rsi_avg_loss\":0.0005305106246129143,\"rsi\":60},{\"period_id\":\"120m209717\",\"size\":\"120m\",\"time\":1509962400000,\"open\":0.1735,\"high\":0.17999,\"low\":0.1725,\"close\":0.1781,\"volume\":2200216.881624569,\"close_time\":1509969590499,\"vwap\":0.1781379823493928,\"ema1\":0.17352423639535297,\"sma1\":0.17363922907407403,\"sma2\":0.17187354333333332,\"rsi_avg_gain\":0.0008746481836255311,\"rsi_avg_loss\":0.0005243960572754462,\"rsi\":63},{\"period_id\":\"120m209716\",\"size\":\"120m\",\"time\":1509955200000,\"open\":0.17255,\"high\":0.17357,\"low\":0.17148,\"close\":0.17356,\"volume\":335989.29328549025,\"close_time\":1509962384294,\"vwap\":0.17287015011431317,\"ema1\":0.1732086664915842,\"sma1\":0.17365006240740738,\"sma2\":0.17183271,\"rsi_avg_gain\":0.0005926980439044169,\"rsi_avg_loss\":0.0005647342155274037,\"rsi\":51},{\"period_id\":\"120m209715\",\"size\":\"120m\",\"time\":1509948000000,\"open\":0.1721,\"high\":0.1728,\"low\":0.1715,\"close\":0.1715,\"volume\":202010.55558656997,\"close_time\":1509955028898,\"vwap\":0.1723799298287,\"ema1\":0.17318443659445207,\"sma1\":0.1736625624074074,\"sma2\":0.17182771000000002,\"rsi_avg_gain\":0.0004798286626662968,\"rsi_avg_loss\":0.0006081753090295116,\"rsi\":44},{\"period_id\":\"120m209714\",\"size\":\"120m\",\"time\":1509940800000,\"open\":0.17246,\"high\":0.17288,\"low\":0.17201,\"close\":0.1721,\"volume\":23604.53356389,\"close_time\":1509947976027,\"vwap\":0.17246435635440055,\"ema1\":0.17330060463544877,\"sma1\":0.173670155,\"sma2\":0.17180604333333335,\"rsi_avg_gain\":0.0005167385597944735,\"rsi_avg_loss\":0.0006088041789548594,\"rsi\":46},{\"period_id\":\"120m209713\",\"size\":\"120m\",\"time\":1509933600000,\"open\":0.17205,\"high\":0.17288,\"low\":0.17157,\"close\":0.17201,\"volume\":19736.135164620002,\"close_time\":1509939281965,\"vwap\":0.17246736352269115,\"ema1\":0.1733834049551349,\"sma1\":0.17367598833333334,\"sma2\":0.17177304333333335,\"rsi_avg_gain\":0.0005495646028555863,\"rsi_avg_loss\":0.0006556352696436946,\"rsi\":46},{\"period_id\":\"120m209712\",\"size\":\"120m\",\"time\":1509926400000,\"open\":0.17216,\"high\":0.17292,\"low\":0.1715,\"close\":0.17158,\"volume\":121462.81296058,\"close_time\":1509933007327,\"vwap\":0.17246663661737316,\"ema1\":0.17347812253824765,\"sma1\":0.17368969203703702,\"sma2\":0.17177604333333335,\"rsi_avg_gain\":0.0005587618799983248,\"rsi_avg_loss\":0.0007060687519239788,\"rsi\":44},{\"period_id\":\"120m209711\",\"size\":\"120m\",\"time\":1509919200000,\"open\":0.1731326,\"high\":0.1735,\"low\":0.17202,\"close\":0.17295,\"volume\":141936.93398588,\"close_time\":1509926340359,\"vwap\":0.17273184381823634,\"ema1\":0.17360902754088542,\"sma1\":0.1737000624074074,\"sma2\":0.17174754333333336,\"rsi_avg_gain\":0.000601743563075119,\"rsi_avg_loss\":0.000654997117456594,\"rsi\":48},{\"period_id\":\"120m209710\",\"size\":\"120m\",\"time\":1509912000000,\"open\":0.1715,\"high\":0.1731326,\"low\":0.17102,\"close\":0.1731326,\"volume\":453581.5936299202,\"close_time\":1509919033486,\"vwap\":0.17206037082645176,\"ema1\":0.1736544777161189,\"sma1\":0.17371383462962958,\"sma2\":0.17172933333333337,\"rsi_avg_gain\":0.0006480315294655129,\"rsi_avg_loss\":0.000691335357260947,\"rsi\":48},{\"period_id\":\"120m209709\",\"size\":\"120m\",\"time\":1509904800000,\"open\":0.17196,\"high\":0.172,\"low\":0.171,\"close\":0.17148,\"volume\":278209.07779125,\"close_time\":1509911957273,\"vwap\":0.17204271806508395,\"ema1\":0.17369046928274778,\"sma1\":0.17373939018518517,\"sma2\":0.17174900000000007,\"rsi_avg_gain\":0.0005707570317320904,\"rsi_avg_loss\":0.0007445150001271737,\"rsi\":43},{\"period_id\":\"120m209708\",\"size\":\"120m\",\"time\":1509897600000,\"open\":0.17288,\"high\":0.173,\"low\":0.17115,\"close\":0.172,\"volume\":375641.9879333099,\"close_time\":1509904684190,\"vwap\":0.17217089825594656,\"ema1\":0.17384291544017866,\"sma1\":0.1737573531481481,\"sma2\":0.1717490000000001,\"rsi_avg_gain\":0.0006146614187884051,\"rsi_avg_loss\":0.0007617853847523415,\"rsi\":45},{\"period_id\":\"120m209707\",\"size\":\"120m\",\"time\":1509890400000,\"open\":0.17179,\"high\":0.173,\"low\":0.171,\"close\":0.17297,\"volume\":292718.31836345984,\"close_time\":1509897404974,\"vwap\":0.17215239320029915,\"ema1\":0.1739700130567427,\"sma1\":0.17377401981481477,\"sma2\":0.1717578333333334,\"rsi_avg_gain\":0.0006619430663875132,\"rsi_avg_loss\":0.000745768875887135,\"rsi\":47},{\"period_id\":\"120m209706\",\"size\":\"120m\",\"time\":1509883200000,\"open\":0.17341,\"high\":0.17438,\"low\":0.1713,\"close\":0.1719,\"volume\":480094.5933641599,\"close_time\":1509890180175,\"vwap\":0.1719311154348428,\"ema1\":0.1740389794744491,\"sma1\":0.1737765198148148,\"sma2\":0.1718028333333334,\"rsi_avg_gain\":0.0006305540714942438,\"rsi_avg_loss\":0.0008031357124938377,\"rsi\":44},{\"period_id\":\"120m209705\",\"size\":\"120m\",\"time\":1509876000000,\"open\":0.1735,\"high\":0.17436,\"low\":0.172,\"close\":0.1738,\"volume\":282879.70329523,\"close_time\":1509882934323,\"vwap\":0.1735795268447775,\"ema1\":0.17418649530027316,\"sma1\":0.1737778161111111,\"sma2\":0.17181316666666674,\"rsi_avg_gain\":0.0006790582308399549,\"rsi_avg_loss\":0.0007187615365318242,\"rsi\":49},{\"period_id\":\"120m209704\",\"size\":\"120m\",\"time\":1509868800000,\"open\":0.175,\"high\":0.175,\"low\":0.17224,\"close\":0.17308,\"volume\":192083.89489337002,\"close_time\":1509875951637,\"vwap\":0.17363583463149002,\"ema1\":0.17421315014856786,\"sma1\":0.17377744574074072,\"sma2\":0.17184000000000005,\"rsi_avg_gain\":0.00067590886398149,\"rsi_avg_loss\":0.0007740508854958108,\"rsi\":47},{\"period_id\":\"120m209703\",\"size\":\"120m\",\"time\":1509861600000,\"open\":0.17477,\"high\":0.175,\"low\":0.17412,\"close\":0.17434,\"volume\":22891.058959859998,\"close_time\":1509868062594,\"vwap\":0.17360453559232056,\"ema1\":0.174291298434676,\"sma1\":0.17377559388888886,\"sma2\":0.17183783333333338,\"rsi_avg_gain\":0.0007279018535185276,\"rsi_avg_loss\":0.0007366701843801053,\"rsi\":50},{\"period_id\":\"120m209702\",\"size\":\"120m\",\"time\":1509854400000,\"open\":0.1743,\"high\":0.1751,\"low\":0.17386,\"close\":0.17506,\"volume\":45456.856648160014,\"close_time\":1509861577221,\"vwap\":0.1735968681095746,\"ema1\":0.17428793970603296,\"sma1\":0.17376874203703696,\"sma2\":0.17181833333333338,\"rsi_avg_gain\":0.0007838943037891836,\"rsi_avg_loss\":0.0007379525062554982,\"rsi\":52},{\"period_id\":\"120m209701\",\"size\":\"120m\",\"time\":1509847200000,\"open\":0.17441,\"high\":0.17508,\"low\":0.17233,\"close\":0.1743,\"volume\":87526.60253024001,\"close_time\":1509854298552,\"vwap\":0.1735803385171736,\"ema1\":0.174234694168518,\"sma1\":0.17375633462962958,\"sma2\":0.17181566666666673,\"rsi_avg_gain\":0.0007857323271575837,\"rsi_avg_loss\":0.0007947180836597673,\"rsi\":50},{\"period_id\":\"120m209700\",\"size\":\"120m\",\"time\":1509840000000,\"open\":0.1732,\"high\":0.1747,\"low\":0.17234,\"close\":0.17441,\"volume\":220942.73585190997,\"close_time\":1509847131823,\"vwap\":0.17356737637845238,\"ema1\":0.17423019031807097,\"sma1\":0.1737498531481481,\"sma2\":0.1718096666666667,\"rsi_avg_gain\":0.0008461732754004748,\"rsi_avg_loss\":0.0008473887054797495,\"rsi\":50},{\"period_id\":\"120m209699\",\"size\":\"120m\",\"time\":1509832800000,\"open\":0.17397,\"high\":0.17489,\"low\":0.17309,\"close\":0.17318,\"volume\":70737.93909811002,\"close_time\":1509839832787,\"vwap\":0.1736420457486742,\"ema1\":0.17421778965035173,\"sma1\":0.17374290870370365,\"sma2\":0.17182766666666668,\"rsi_avg_gain\":0.0008166481427389721,\"rsi_avg_loss\":0.0009125724520551149,\"rsi\":47},{\"period_id\":\"120m209698\",\"size\":\"120m\",\"time\":1509825600000,\"open\":0.1747,\"high\":0.17491,\"low\":0.173,\"close\":0.17396,\"volume\":312704.62396786007,\"close_time\":1509832781004,\"vwap\":0.17362288727102237,\"ema1\":0.17428936135037598,\"sma1\":0.17373327907407404,\"sma2\":0.17182000000000003,\"rsi_avg_gain\":0.0008794672306419699,\"rsi_avg_loss\":0.0009227703329824312,\"rsi\":49},{\"period_id\":\"120m209697\",\"size\":\"120m\",\"time\":1509818400000,\"open\":0.17519,\"high\":0.17576,\"low\":0.1746,\"close\":0.1755,\"volume\":115412.53669688001,\"close_time\":1509825521375,\"vwap\":0.17600782466734421,\"ema1\":0.174312075926264,\"sma1\":0.17372003833333327,\"sma2\":0.17180766666666666,\"rsi_avg_gain\":0.0009471185560759677,\"rsi_avg_loss\":0.0008752911278272346,\"rsi\":52},{\"period_id\":\"120m209696\",\"size\":\"120m\",\"time\":1509811200000,\"open\":0.17544,\"high\":0.176,\"low\":0.17461,\"close\":0.17519,\"volume\":265530.03636954,\"close_time\":1509818399443,\"vwap\":0.17604070353601112,\"ema1\":0.1742301501280753,\"sma1\":0.17369772351851848,\"sma2\":0.17177116666666667,\"rsi_avg_gain\":0.0009961276757741208,\"rsi_avg_loss\":0.0009426212145831758,\"rsi\":51},{\"period_id\":\"120m209695\",\"size\":\"120m\",\"time\":1509804000000,\"open\":0.17701,\"high\":0.17727,\"low\":0.1754,\"close\":0.17584,\"volume\":400965.41010697023,\"close_time\":1509811145225,\"vwap\":0.1762019273598267,\"ema1\":0.17416395358518394,\"sma1\":0.17367207537037033,\"sma2\":0.17174766666666663,\"rsi_avg_gain\":0.0010727528816028994,\"rsi_avg_loss\":0.0009651305387818828,\"rsi\":53},{\"period_id\":\"120m209694\",\"size\":\"120m\",\"time\":1509796800000,\"open\":0.17545,\"high\":0.17796,\"low\":0.175,\"close\":0.17701,\"volume\":519384.7214879097,\"close_time\":1509803994909,\"vwap\":0.17629660740185507,\"ema1\":0.1740483641772656,\"sma1\":0.17365281611111102,\"sma2\":0.17170333333333332,\"rsi_avg_gain\":0.0011552723340338916,\"rsi_avg_loss\":0.000949371349457412,\"rsi\":55},{\"period_id\":\"120m209693\",\"size\":\"120m\",\"time\":1509789600000,\"open\":0.17463,\"high\":0.17686,\"low\":0.1742,\"close\":0.175,\"volume\":276182.54125248006,\"close_time\":1509796634780,\"vwap\":0.17554940481989034,\"ema1\":0.1738441134308701,\"sma1\":0.17364151981481477,\"sma2\":0.1717033333333333,\"rsi_avg_gain\":0.0010895240520364976,\"rsi_avg_loss\":0.0010223999148002898,\"rsi\":52},{\"period_id\":\"120m209692\",\"size\":\"120m\",\"time\":1509782400000,\"open\":0.17584,\"high\":0.17674414,\"low\":0.17422,\"close\":0.176,\"volume\":457462.7664928798,\"close_time\":1509789508359,\"vwap\":0.17594386131615775,\"ema1\":0.1737643971157577,\"sma1\":0.17362379629629623,\"sma2\":0.1716633333333333,\"rsi_avg_gain\":0.0011733335945008437,\"rsi_avg_loss\":0.0010241229851695427,\"rsi\":53},{\"period_id\":\"120m209691\",\"size\":\"120m\",\"time\":1509775200000,\"open\":0.17575,\"high\":0.17638,\"low\":0.17486,\"close\":0.17592,\"volume\":205233.37796132002,\"close_time\":1509782377457,\"vwap\":0.17458123058164673,\"ema1\":0.1736102176064996,\"sma1\":0.17359712962962956,\"sma2\":0.17161466666666664,\"rsi_avg_gain\":0.0012574361786932165,\"rsi_avg_loss\":0.0011029016763364305,\"rsi\":53},{\"period_id\":\"120m209690\",\"size\":\"120m\",\"time\":1509768000000,\"open\":0.17459,\"high\":0.17672,\"low\":0.17359,\"close\":0.17672,\"volume\":408079.27570876,\"close_time\":1509775092431,\"vwap\":0.17449945353846605,\"ema1\":0.17345092226901682,\"sma1\":0.17356851851851848,\"sma2\":0.17155416666666665,\"rsi_avg_gain\":0.0013541620385926947,\"rsi_avg_loss\":0.001126201805285387,\"rsi\":55},{\"period_id\":\"120m209689\",\"size\":\"120m\",\"time\":1509760800000,\"open\":0.17535,\"high\":0.17698,\"low\":0.17202,\"close\":0.17457,\"volume\":1521247.5292743105,\"close_time\":1509767699486,\"vwap\":0.1744172784314176,\"ema1\":0.1732254686323973,\"sma1\":0.17353731481481477,\"sma2\":0.17152916666666662,\"rsi_avg_gain\":0.001292943733869057,\"rsi_avg_loss\":0.001212832713384263,\"rsi\":52},{\"period_id\":\"120m209688\",\"size\":\"120m\",\"time\":1509753600000,\"open\":0.1785,\"high\":0.179,\"low\":0.175,\"close\":0.175,\"volume\":451997.22231772024,\"close_time\":1509760617905,\"vwap\":0.17591248260188097,\"ema1\":0.1731327423311833,\"sma1\":0.17348388888888883,\"sma2\":0.17149466666666663,\"rsi_avg_gain\":0.0013924009441666767,\"rsi_avg_loss\":0.0012730506144138227,\"rsi\":52},{\"period_id\":\"120m209687\",\"size\":\"120m\",\"time\":1509746400000,\"open\":0.1829,\"high\":0.184,\"low\":0.1785,\"close\":0.1785,\"volume\":575165.06890172,\"close_time\":1509753593833,\"vwap\":0.18324387200418701,\"ema1\":0.17300396594023043,\"sma1\":0.1733971296296296,\"sma2\":0.17139216666666662,\"rsi_avg_gain\":0.001499508709102575,\"rsi_avg_loss\":0.001101746815522578,\"rsi\":58},{\"period_id\":\"120m209686\",\"size\":\"120m\",\"time\":1509739200000,\"open\":0.1832,\"high\":0.18659,\"low\":0.182,\"close\":0.1829,\"volume\":2008075.9797360403,\"close_time\":1509746386140,\"vwap\":0.18366183218098053,\"ema1\":0.17262492910852217,\"sma1\":0.17327666666666663,\"sma2\":0.17122716666666665,\"rsi_avg_gain\":0.001614855532879696,\"rsi_avg_loss\":0.0008480350321012367,\"rsi\":66},{\"period_id\":\"120m209685\",\"size\":\"120m\",\"time\":1509732000000,\"open\":0.18246,\"high\":0.184,\"low\":0.17948,\"close\":0.18375,\"volume\":1677742.2580434396,\"close_time\":1509739152792,\"vwap\":0.18183006547118488,\"ema1\":0.17191630352979956,\"sma1\":0.17316833333333334,\"sma2\":0.17103883333333328,\"rsi_avg_gain\":0.0017390751892550572,\"rsi_avg_loss\":0.0008478838807244095,\"rsi\":67},{\"period_id\":\"120m209684\",\"size\":\"120m\",\"time\":1509724800000,\"open\":0.17841,\"high\":0.18247,\"low\":0.17841,\"close\":0.18247,\"volume\":1072665.8394164399,\"close_time\":1509731987799,\"vwap\":0.18078791241397216,\"ema1\":0.17110018653185471,\"sma1\":0.17307925925925924,\"sma2\":0.17086349999999997,\"rsi_avg_gain\":0.0017743886653515998,\"rsi_avg_loss\":0.0009131057177032102,\"rsi\":66},{\"period_id\":\"120m209683\",\"size\":\"120m\",\"time\":1509717600000,\"open\":0.1768,\"high\":0.18334,\"low\":0.17621,\"close\":0.17842,\"volume\":2248575.3095276006,\"close_time\":1509724727590,\"vwap\":0.18038631648422776,\"ema1\":0.17031606146508607,\"sma1\":0.17300240740740738,\"sma2\":0.17076766666666668,\"rsi_avg_gain\":0.0015993416396094151,\"rsi_avg_loss\":0.0009833446190649956,\"rsi\":62},{\"period_id\":\"120m209682\",\"size\":\"120m\",\"time\":1509710400000,\"open\":0.17437,\"high\":0.17699,\"low\":0.173,\"close\":0.17689,\"volume\":661699.4675666498,\"close_time\":1509717577659,\"vwap\":0.17471107011879866,\"ema1\":0.16975716915233338,\"sma1\":0.17297009259259258,\"sma2\":0.17068616666666667,\"rsi_avg_gain\":0.0016046756118870621,\"rsi_avg_loss\":0.001058986512839226,\"rsi\":60},{\"period_id\":\"120m209681\",\"size\":\"120m\",\"time\":1509703200000,\"open\":0.1745,\"high\":0.17557,\"low\":0.17226,\"close\":0.17442,\"volume\":781881.1833836805,\"close_time\":1509710384632,\"vwap\":0.17414941392413671,\"ema1\":0.16926524978352878,\"sma1\":0.17297185185185182,\"sma2\":0.17061966666666664,\"rsi_avg_gain\":0.0015381121974168362,\"rsi_avg_loss\":0.0011404470138268587,\"rsi\":57},{\"period_id\":\"120m209680\",\"size\":\"120m\",\"time\":1509696000000,\"open\":0.1749,\"high\":0.1765,\"low\":0.1721,\"close\":0.1722,\"volume\":1284360.5497725192,\"close_time\":1509703193194,\"vwap\":0.17497881798250173,\"ema1\":0.16890974976859974,\"sma1\":0.17297555555555555,\"sma2\":0.17060466666666665,\"rsi_avg_gain\":0.0014856592895258237,\"rsi_avg_loss\":0.0012281737071981554,\"rsi\":55},{\"period_id\":\"120m209679\",\"size\":\"120m\",\"time\":1509688800000,\"open\":0.1717,\"high\":0.176,\"low\":0.17,\"close\":0.17531,\"volume\":935123.9349501398,\"close_time\":1509695910104,\"vwap\":0.17366467458848853,\"ema1\":0.16868283595953765,\"sma1\":0.17298472222222222,\"sma2\":0.1705553333333333,\"rsi_avg_gain\":0.0015999407733355024,\"rsi_avg_loss\":0.0010834178385210904,\"rsi\":60},{\"period_id\":\"120m209678\",\"size\":\"120m\",\"time\":1509681600000,\"open\":0.16914,\"high\":0.1742,\"low\":0.1675,\"close\":0.17269,\"volume\":434158.1058708002,\"close_time\":1509688744339,\"vwap\":0.17900528018561254,\"ema1\":0.1682257901636437,\"sma1\":0.17300138888888889,\"sma2\":0.17056599999999997,\"rsi_avg_gain\":0.0015214746789766961,\"rsi_avg_loss\":0.0011667576722534819,\"rsi\":57},{\"period_id\":\"120m209677\",\"size\":\"120m\",\"time\":1509674400000,\"open\":0.17603,\"high\":0.1768,\"low\":0.16835,\"close\":0.16902,\"volume\":791394.3819360004,\"close_time\":1509681430051,\"vwap\":0.17932674817964817,\"ema1\":0.16791791362320532,\"sma1\":0.17298111111111109,\"sma2\":0.170591,\"rsi_avg_gain\":0.0013562035004364415,\"rsi_avg_loss\":0.0012565082624268267,\"rsi\":52},{\"period_id\":\"120m209676\",\"size\":\"120m\",\"time\":1509667200000,\"open\":0.17103,\"high\":0.185,\"low\":0.17103,\"close\":0.17675,\"volume\":2884382.1256436,\"close_time\":1509674369734,\"vwap\":0.18007842340233426,\"ema1\":0.167841907666185,\"sma1\":0.17289240740740736,\"sma2\":0.17049533333333333,\"rsi_avg_gain\":0.0014605268466238602,\"rsi_avg_loss\":0.0007585473595365838,\"rsi\":66},{\"period_id\":\"120m209675\",\"size\":\"120m\",\"time\":1509660000000,\"open\":0.1639,\"high\":0.17379,\"low\":0.16262,\"close\":0.17209,\"volume\":1265909.4986710113,\"close_time\":1509667170394,\"vwap\":0.17223471153372333,\"ema1\":0.1672275564707495,\"sma1\":0.17293324074074073,\"sma2\":0.17048883333333337,\"rsi_avg_gain\":0.001214413527133388,\"rsi_avg_loss\":0.0008168971564240133,\"rsi\":60},{\"period_id\":\"120m209674\",\"size\":\"120m\",\"time\":1509652800000,\"open\":0.16502,\"high\":0.167,\"low\":0.16261,\"close\":0.16384,\"volume\":418199.62917654985,\"close_time\":1509659976821,\"vwap\":0.16483798891336457,\"ema1\":0.16689221553769773,\"sma1\":0.1730593518518518,\"sma2\":0.17062050000000004,\"rsi_avg_gain\":0.0006732145676821118,\"rsi_avg_loss\":0.0008797353992258605,\"rsi\":43},{\"period_id\":\"120m209673\",\"size\":\"120m\",\"time\":1509645600000,\"open\":0.16471,\"high\":0.16652,\"low\":0.1632,\"close\":0.16501,\"volume\":525454.1958027601,\"close_time\":1509652741055,\"vwap\":0.16544491877051146,\"ema1\":0.16710271316098724,\"sma1\":0.1732121296296296,\"sma2\":0.17072883333333333,\"rsi_avg_gain\":0.000725000303657659,\"rsi_avg_loss\":0.0008574073530124669,\"rsi\":46},{\"period_id\":\"120m209672\",\"size\":\"120m\",\"time\":1509638400000,\"open\":0.165,\"high\":0.166,\"low\":0.1635,\"close\":0.16472,\"volume\":405931.72862551996,\"close_time\":1509645579170,\"vwap\":0.1647610019083635,\"ema1\":0.16724703820657258,\"sma1\":0.1733718518518518,\"sma2\":0.1708496666666667,\"rsi_avg_gain\":0.00075846186547748,\"rsi_avg_loss\":0.0009233617647826567,\"rsi\":45},{\"period_id\":\"120m209671\",\"size\":\"120m\",\"time\":1509631200000,\"open\":0.164,\"high\":0.16849,\"low\":0.161,\"close\":0.16545,\"volume\":756164.8164522602,\"close_time\":1509638384550,\"vwap\":0.1646740774597794,\"ema1\":0.16742131670357757,\"sma1\":0.17352925925925924,\"sma2\":0.17095050000000003,\"rsi_avg_gain\":0.0008168050858988247,\"rsi_avg_loss\":0.0009382357466890143,\"rsi\":47},{\"period_id\":\"120m209670\",\"size\":\"120m\",\"time\":1509624000000,\"open\":0.16,\"high\":0.16959,\"low\":0.16,\"close\":0.16622,\"volume\":1455371.3556724899,\"close_time\":1509631193720,\"vwap\":0.16430215177955357,\"ema1\":0.16755726957968636,\"sma1\":0.17366268518518518,\"sma2\":0.1710575,\"rsi_avg_gain\":0.0008796362463525804,\"rsi_avg_loss\":0.0009511769579727851,\"rsi\":48},{\"period_id\":\"120m209669\",\"size\":\"120m\",\"time\":1509616800000,\"open\":0.15797,\"high\":0.16,\"low\":0.15464,\"close\":0.16,\"volume\":1654988.6244434293,\"close_time\":1509623991381,\"vwap\":0.1571318274504468,\"ema1\":0.1676494950679406,\"sma1\":0.17384509259259254,\"sma2\":0.17127416666666667,\"rsi_avg_gain\":0.0004688390345335479,\"rsi_avg_loss\":0.0010243444162783839,\"rsi\":31},{\"period_id\":\"120m209668\",\"size\":\"120m\",\"time\":1509609600000,\"open\":0.1595,\"high\":0.16,\"low\":0.15671,\"close\":0.15671,\"volume\":1721066.7197427999,\"close_time\":1509616786625,\"vwap\":0.15790150053313823,\"ema1\":0.1681770464519365,\"sma1\":0.17403027777777774,\"sma2\":0.171569,\"rsi_avg_gain\":0.00025182665257458895,\"rsi_avg_loss\":0.0011031401406074903,\"rsi\":19},{\"period_id\":\"120m209667\",\"size\":\"120m\",\"time\":1509602400000,\"open\":0.16123,\"high\":0.1632,\"low\":0.159,\"close\":0.15912,\"volume\":2334769.7164794793,\"close_time\":1509609597998,\"vwap\":0.16007185851367428,\"ema1\":0.16896787724172524,\"sma1\":0.17413944444444443,\"sma2\":0.17181533333333335,\"rsi_avg_gain\":0.000271197933541865,\"rsi_avg_loss\":0.001002612459115757,\"rsi\":21},{\"period_id\":\"120m209666\",\"size\":\"120m\",\"time\":1509595200000,\"open\":0.16241,\"high\":0.16472,\"low\":0.1613,\"close\":0.1613,\"volume\":345673.34816585,\"close_time\":1509602353291,\"vwap\":0.16303774212214608,\"ema1\":0.16964704118943041,\"sma1\":0.17423435185185185,\"sma2\":0.172018,\"rsi_avg_gain\":0.0002920593130450854,\"rsi_avg_loss\":0.0009120441867400469,\"rsi\":24},{\"period_id\":\"120m209665\",\"size\":\"120m\",\"time\":1509588000000,\"open\":0.16263,\"high\":0.16764,\"low\":0.1625,\"close\":0.1625,\"volume\":320289.0119792702,\"close_time\":1509595172195,\"vwap\":0.16376288852493276,\"ema1\":0.17022269920249458,\"sma1\":0.1743186111111111,\"sma2\":0.17220133333333335,\"rsi_avg_gain\":0.00031452541404855354,\"rsi_avg_loss\":0.0008898937395662038,\"rsi\":26},{\"period_id\":\"120m209664\",\"size\":\"120m\",\"time\":1509580800000,\"open\":0.16522,\"high\":0.16682,\"low\":0.1616,\"close\":0.16532,\"volume\":505396.63836847997,\"close_time\":1509587956753,\"vwap\":0.16496417184751644,\"ema1\":0.1707552991474942,\"sma1\":0.17435518518518517,\"sma2\":0.172343,\"rsi_avg_gain\":0.00033871967666767303,\"rsi_avg_loss\":0.0007414240272251434,\"rsi\":31},{\"period_id\":\"120m209663\",\"size\":\"120m\",\"time\":1509573600000,\"open\":0.1661,\"high\":0.16674,\"low\":0.16434,\"close\":0.16434,\"volume\":906775.1022949998,\"close_time\":1509580719608,\"vwap\":0.16540271047102817,\"ema1\":0.17113014736456278,\"sma1\":0.1743622222222222,\"sma2\":0.172498,\"rsi_avg_gain\":0.0002893904210267262,\"rsi_avg_loss\":0.0007984566447040006,\"rsi\":27},{\"period_id\":\"120m209662\",\"size\":\"120m\",\"time\":1509566400000,\"open\":0.16845,\"high\":0.1696,\"low\":0.16561,\"close\":0.16652,\"volume\":670029.5995432002,\"close_time\":1509573596127,\"vwap\":0.16623150986191368,\"ema1\":0.17159843338970504,\"sma1\":0.17431277777777776,\"sma2\":0.17262266666666667,\"rsi_avg_gain\":0.0003116512226441667,\"rsi_avg_loss\":0.0006921840789120016,\"rsi\":31},{\"period_id\":\"120m209661\",\"size\":\"120m\",\"time\":1509559200000,\"open\":0.16934,\"high\":0.1696,\"low\":0.16704,\"close\":0.16848,\"volume\":1189879.2806359415,\"close_time\":1509566397604,\"vwap\":0.16876063862776364,\"ema1\":0.17194867017520193,\"sma1\":0.17425148148148148,\"sma2\":0.17270366666666664,\"rsi_avg_gain\":0.0003356243936167949,\"rsi_avg_loss\":0.0005946597772898487,\"rsi\":36},{\"period_id\":\"120m209660\",\"size\":\"120m\",\"time\":1509552000000,\"open\":0.1725,\"high\":0.1725,\"low\":0.1694,\"close\":0.16999,\"volume\":917226.6054635601,\"close_time\":1509559199863,\"vwap\":0.1697711049728554,\"ema1\":0.17218788880797448,\"sma1\":0.17415425925925923,\"sma2\":0.17278266666666664,\"rsi_avg_gain\":0.0003614416546642406,\"rsi_avg_loss\":0.0005242489909275285,\"rsi\":41},{\"period_id\":\"120m209659\",\"size\":\"120m\",\"time\":1509544800000,\"open\":0.17109,\"high\":0.17284,\"low\":0.17,\"close\":0.17233,\"volume\":898158.8843483297,\"close_time\":1509551988199,\"vwap\":0.17102489555690054,\"ema1\":0.17233946734645547,\"sma1\":0.1740608333333333,\"sma2\":0.17281766666666665,\"rsi_avg_gain\":0.0003892448588691822,\"rsi_avg_loss\":0.00038457583638349155,\"rsi\":50},{\"period_id\":\"120m209658\",\"size\":\"120m\",\"time\":1509537600000,\"open\":0.1695,\"high\":0.1715,\"low\":0.169,\"close\":0.1711,\"volume\":1039009.0422977093,\"close_time\":1509544792007,\"vwap\":0.17001464414928769,\"ema1\":0.17234012026690068,\"sma1\":0.17401046296296294,\"sma2\":0.17285966666666663,\"rsi_avg_gain\":0.00032457138647450323,\"rsi_avg_loss\":0.0004141585930283755,\"rsi\":44},{\"period_id\":\"120m209657\",\"size\":\"120m\",\"time\":1509530400000,\"open\":0.1701,\"high\":0.17198,\"low\":0.1693,\"close\":0.16999,\"volume\":1167024.7693240494,\"close_time\":1509537595423,\"vwap\":0.17022963798161392,\"ema1\":0.17242564580254902,\"sma1\":0.1739659259259259,\"sma2\":0.1729228333333333,\"rsi_avg_gain\":0.0002641538008186958,\"rsi_avg_loss\":0.0004460169463382506,\"rsi\":37},{\"period_id\":\"120m209656\",\"size\":\"120m\",\"time\":1509523200000,\"open\":0.1712,\"high\":0.17266,\"low\":0.17,\"close\":0.17111,\"volume\":802673.6112538003,\"close_time\":1509530399245,\"vwap\":0.17052790422511024,\"ema1\":0.1725936213751386,\"sma1\":0.17391759259259257,\"sma2\":0.17297166666666663,\"rsi_avg_gain\":0.0002844733239585955,\"rsi_avg_loss\":0.0003941720960565768,\"rsi\":42},{\"period_id\":\"120m209655\",\"size\":\"120m\",\"time\":1509516000000,\"open\":0.1705,\"high\":0.17137,\"low\":0.17,\"close\":0.1712,\"volume\":486476.40899357,\"close_time\":1509523129373,\"vwap\":0.1712343201685813,\"ema1\":0.17269594009066538,\"sma1\":0.1738958333333333,\"sma2\":0.17301683333333331,\"rsi_avg_gain\":0.0003063558873400259,\"rsi_avg_loss\":0.000417569949599392,\"rsi\":42},{\"period_id\":\"120m209654\",\"size\":\"120m\",\"time\":1509508800000,\"open\":0.17086,\"high\":0.17162,\"low\":0.17,\"close\":0.1708,\"volume\":148063.88553533,\"close_time\":1509515159721,\"vwap\":0.17144723289613006,\"ema1\":0.17279910837278023,\"sma1\":0.17388787037037032,\"sma2\":0.17305449999999997,\"rsi_avg_gain\":0.0002991524940584907,\"rsi_avg_loss\":0.00044969071495319136,\"rsi\":40},{\"period_id\":\"120m209653\",\"size\":\"120m\",\"time\":1509501600000,\"open\":0.17165,\"high\":0.1718,\"low\":0.17,\"close\":0.17003,\"volume\":275252.1988088,\"close_time\":1509507850388,\"vwap\":0.17147663240885377,\"ema1\":0.1729369779157306,\"sma1\":0.1738791666666666,\"sma2\":0.17310949999999994,\"rsi_avg_gain\":0.00026293345513991146,\"rsi_avg_loss\":0.00048428230841112915,\"rsi\":35},{\"period_id\":\"120m209652\",\"size\":\"120m\",\"time\":1509494400000,\"open\":0.17124,\"high\":0.17199,\"low\":0.17101,\"close\":0.17176,\"volume\":125338.60549834,\"close_time\":1509501336761,\"vwap\":0.17166850488878882,\"ema1\":0.17313745915129822,\"sma1\":0.17387574074074072,\"sma2\":0.1731351666666666,\"rsi_avg_gain\":0.0002831591055352893,\"rsi_avg_loss\":0.00038845787059659995,\"rsi\":42},{\"period_id\":\"120m209651\",\"size\":\"120m\",\"time\":1509487200000,\"open\":0.17205,\"high\":0.17284,\"low\":0.17123,\"close\":0.17124,\"volume\":778377.35267301,\"close_time\":1509494388372,\"vwap\":0.1716789968728319,\"ema1\":0.17323245633414638,\"sma1\":0.17386796296296295,\"sma2\":0.17318166666666662,\"rsi_avg_gain\":0.00026494057519185055,\"rsi_avg_loss\":0.0004183392452578769,\"rsi\":39},{\"period_id\":\"120m209650\",\"size\":\"120m\",\"time\":1509480000000,\"open\":0.17263,\"high\":0.17285,\"low\":0.17204,\"close\":0.17204,\"volume\":368952.1699852,\"close_time\":1509487161380,\"vwap\":0.17275235516991846,\"ema1\":0.17336986711581165,\"sma1\":0.17385775509259258,\"sma2\":0.17320599999999994,\"rsi_avg_gain\":0.0002853206194373775,\"rsi_avg_loss\":0.00038898072566232936,\"rsi\":42},{\"period_id\":\"120m209649\",\"size\":\"120m\",\"time\":1509472800000,\"open\":0.172,\"high\":0.17272,\"low\":0.172,\"close\":0.17266,\"volume\":380343.36523268017,\"close_time\":1509479891306,\"vwap\":0.1727952239524585,\"ema1\":0.1734615820893159,\"sma1\":0.17385108842592592,\"sma2\":0.1732198333333333,\"rsi_avg_gain\":0.00030726835939409887,\"rsi_avg_loss\":0.0003712100122517386,\"rsi\":45},{\"period_id\":\"120m209648\",\"size\":\"120m\",\"time\":1509465600000,\"open\":0.17243,\"high\":0.1735,\"low\":0.172,\"close\":0.172,\"volume\":559983.7519757701,\"close_time\":1509472774896,\"vwap\":0.17292761356329706,\"ema1\":0.17351686361271698,\"sma1\":0.17384090324074072,\"sma2\":0.17323649999999996,\"rsi_avg_gain\":0.00028013515627056635,\"rsi_avg_loss\":0.0003997646285787954,\"rsi\":41},{\"period_id\":\"120m209647\",\"size\":\"120m\",\"time\":1509458400000,\"open\":0.17458,\"high\":0.1746,\"low\":0.172,\"close\":0.1735,\"volume\":938086.8382250599,\"close_time\":1509465517913,\"vwap\":0.1731657438405733,\"ema1\":0.17362147489635263,\"sma1\":0.17384284768518515,\"sma2\":0.1732311666666666,\"rsi_avg_gain\":0.0003016840144452253,\"rsi_avg_loss\":0.0003151311384694719,\"rsi\":49},{\"period_id\":\"120m209646\",\"size\":\"120m\",\"time\":1509451200000,\"open\":0.174,\"high\":0.1748,\"low\":0.1734,\"close\":0.1746,\"volume\":533246.7497322498,\"close_time\":1509458354825,\"vwap\":0.17401471142810393,\"ema1\":0.17362985247541143,\"sma1\":0.17382377361111112,\"sma2\":0.17322466666666664,\"rsi_avg_gain\":0.000324890477094858,\"rsi_avg_loss\":0.00025475661065942995,\"rsi\":56},{\"period_id\":\"120m209645\",\"size\":\"120m\",\"time\":1509444000000,\"open\":0.17467,\"high\":0.1748,\"low\":0.1735,\"close\":0.17442,\"volume\":691011.48796204,\"close_time\":1509451147678,\"vwap\":0.17401927665347855,\"ema1\":0.17356294574957773,\"sma1\":0.17379312546296297,\"sma2\":0.17324049999999996,\"rsi_avg_gain\":0.0003360358984098461,\"rsi_avg_loss\":0.00027435327301784766,\"rsi\":55},{\"period_id\":\"120m209644\",\"size\":\"120m\",\"time\":1509436800000,\"open\":0.1737,\"high\":0.1747,\"low\":0.1735,\"close\":0.17469,\"volume\":471611.4616469602,\"close_time\":1509443995806,\"vwap\":0.1743180171767573,\"ema1\":0.17350383855989343,\"sma1\":0.17379136620370372,\"sma2\":0.1732378333333333,\"rsi_avg_gain\":0.0003618848136721419,\"rsi_avg_loss\":0.00027468814017306514,\"rsi\":57},{\"period_id\":\"120m209643\",\"size\":\"120m\",\"time\":1509429600000,\"open\":0.17395,\"high\":0.17438,\"low\":0.1734,\"close\":0.17421,\"volume\":201060.23830178005,\"close_time\":1509436795149,\"vwap\":0.1741799590783383,\"ema1\":0.1734220343226447,\"sma1\":0.17380164398148154,\"sma2\":0.1732258333333333,\"rsi_avg_gain\":0.0003527990301084599,\"rsi_avg_loss\":0.00029581799710945477,\"rsi\":54},{\"period_id\":\"120m209642\",\"size\":\"120m\",\"time\":1509422400000,\"open\":0.17384,\"high\":0.17394,\"low\":0.17325,\"close\":0.17389,\"volume\":70472.03757481,\"close_time\":1509429450403,\"vwap\":0.17419049639163744,\"ema1\":0.17336769186213744,\"sma1\":0.17380118101851855,\"sma2\":0.17321099999999995,\"rsi_avg_gain\":0.0003553220324244941,\"rsi_avg_loss\":0.0003185732276563359,\"rsi\":53},{\"period_id\":\"120m209641\",\"size\":\"120m\",\"time\":1509415200000,\"open\":0.17395,\"high\":0.1745,\"low\":0.173,\"close\":0.17414,\"volume\":542700.20779527,\"close_time\":1509422089182,\"vwap\":0.17419377010534715,\"ema1\":0.17333167061125035,\"sma1\":0.17383423657407415,\"sma2\":0.1732,\"rsi_avg_gain\":0.00038265449645714754,\"rsi_avg_loss\":0.00032384809132220783,\"rsi\":54},{\"period_id\":\"120m209640\",\"size\":\"120m\",\"time\":1509408000000,\"open\":0.17418,\"high\":0.17418,\"low\":0.1735,\"close\":0.17405,\"volume\":45452.97159424001,\"close_time\":1509414427483,\"vwap\":0.17419455798398767,\"ema1\":0.17327592375685383,\"sma1\":0.1738871995370371,\"sma2\":0.1731608333333333,\"rsi_avg_gain\":0.00040516638080000664,\"rsi_avg_loss\":0.0003487594829623777,\"rsi\":54},{\"period_id\":\"120m209639\",\"size\":\"120m\",\"time\":1509400800000,\"open\":0.1735,\"high\":0.1745,\"low\":0.173,\"close\":0.17426,\"volume\":272719.8336484401,\"close_time\":1509407506948,\"vwap\":0.17419893686907353,\"ema1\":0.173222539188361,\"sma1\":0.17391960694444453,\"sma2\":0.17312666666666662,\"rsi_avg_gain\":0.0004363330254769302,\"rsi_avg_loss\":0.0003594332893441,\"rsi\":55},{\"period_id\":\"120m209638\",\"size\":\"120m\",\"time\":1509393600000,\"open\":0.17476,\"high\":0.17479,\"low\":0.1735,\"close\":0.1735,\"volume\":359921.3454896399,\"close_time\":1509400749257,\"vwap\":0.17420199821394075,\"ema1\":0.17315099016686866,\"sma1\":0.17390303287037043,\"sma2\":0.1730918333333333,\"rsi_avg_gain\":0.0004114355658982317,\"rsi_avg_loss\":0.0003870820039090308,\"rsi\":52},{\"period_id\":\"120m209637\",\"size\":\"120m\",\"time\":1509386400000,\"open\":0.1732,\"high\":0.1748,\"low\":0.173,\"close\":0.17476,\"volume\":427867.7588550901,\"close_time\":1509393559979,\"vwap\":0.17438335580757947,\"ema1\":0.17312692052320444,\"sma1\":0.17388349583333337,\"sma2\":0.17302416666666662,\"rsi_avg_gain\":0.000443084455582711,\"rsi_avg_loss\":0.0003199344657481862,\"rsi\":58},{\"period_id\":\"120m209636\",\"size\":\"120m\",\"time\":1509379200000,\"open\":0.17459,\"high\":0.17499,\"low\":0.173,\"close\":0.173,\"volume\":390086.82031326013,\"close_time\":1509386390303,\"vwap\":0.17431658024202473,\"ema1\":0.17301429435239096,\"sma1\":0.17385618101851855,\"sma2\":0.172985,\"rsi_avg_gain\":0.00034178325985830324,\"rsi_avg_loss\":0.00034454480926727744,\"rsi\":50},{\"period_id\":\"120m209635\",\"size\":\"120m\",\"time\":1509372000000,\"open\":0.17434,\"high\":0.17459,\"low\":0.17318,\"close\":0.17443,\"volume\":639290.63311668,\"close_time\":1509379077038,\"vwap\":0.1743824982142795,\"ema1\":0.17301528016979723,\"sma1\":0.17385618101851855,\"sma2\":0.17294400000000001,\"rsi_avg_gain\":0.00036807427984740347,\"rsi_avg_loss\":0.00026104825613399,\"rsi\":59},{\"period_id\":\"120m209634\",\"size\":\"120m\",\"time\":1509364800000,\"open\":0.17501,\"high\":0.1754,\"low\":0.17389,\"close\":0.17435,\"volume\":761219.5413139507,\"close_time\":1509371994662,\"vwap\":0.1745891149490404,\"ema1\":0.17291771328495564,\"sma1\":0.17383655138888887,\"sma2\":0.17291183333333332,\"rsi_avg_gain\":0.00039023383983566556,\"rsi_avg_loss\":0.00028112889122122,\"rsi\":58},{\"period_id\":\"120m209633\",\"size\":\"120m\",\"time\":1509357600000,\"open\":0.1736,\"high\":0.17524,\"low\":0.17295,\"close\":0.175,\"volume\":685731.3475932502,\"close_time\":1509364785467,\"vwap\":0.17499419430022142,\"ema1\":0.17281893489081465,\"sma1\":0.17381581064814813,\"sma2\":0.1728491666666666,\"rsi_avg_gain\":0.00042025182751533215,\"rsi_avg_loss\":0.00025275419054593043,\"rsi\":62},{\"period_id\":\"120m209632\",\"size\":\"120m\",\"time\":1509350400000,\"open\":0.17301,\"high\":0.17475,\"low\":0.17201,\"close\":0.1736,\"volume\":982754.7806384695,\"close_time\":1509357384770,\"vwap\":0.17385570403510886,\"ema1\":0.17266851660742255,\"sma1\":0.17380886620370367,\"sma2\":0.17284249999999998,\"rsi_avg_gain\":0.00034488658347805117,\"rsi_avg_loss\":0.0002721968205879251,\"rsi\":56},{\"period_id\":\"120m209631\",\"size\":\"120m\",\"time\":1509343200000,\"open\":0.17307,\"high\":0.1738,\"low\":0.17202,\"close\":0.173,\"volume\":284271.7854024,\"close_time\":1509350362054,\"vwap\":0.1731392731636723,\"ema1\":0.1726042763734517,\"sma1\":0.17381895879629627,\"sma2\":0.1728925,\"rsi_avg_gain\":0.00032526247451482304,\"rsi_avg_loss\":0.000293135037556227,\"rsi\":53},{\"period_id\":\"120m209630\",\"size\":\"120m\",\"time\":1509336000000,\"open\":0.17272,\"high\":0.1731,\"low\":0.17253,\"close\":0.17309,\"volume\":89463.18058985996,\"close_time\":1509343190680,\"vwap\":0.17288621116784525,\"ema1\":0.17257698508886216,\"sma1\":0.1738348847222222,\"sma2\":0.17291766666666666,\"rsi_avg_gain\":0.0003502826648621171,\"rsi_avg_loss\":0.0003087608096759362,\"rsi\":53},{\"period_id\":\"120m209629\",\"size\":\"120m\",\"time\":1509328800000,\"open\":0.17251,\"high\":0.17326,\"low\":0.1722,\"close\":0.17307,\"volume\":43252.373609710005,\"close_time\":1509335998032,\"vwap\":0.1726865843304753,\"ema1\":0.172541604750163,\"sma1\":0.17385914398148147,\"sma2\":0.1729425,\"rsi_avg_gain\":0.00037568902369766516,\"rsi_avg_loss\":0.0003325116411894698,\"rsi\":53},{\"period_id\":\"120m209628\",\"size\":\"120m\",\"time\":1509321600000,\"open\":0.17312,\"high\":0.17396,\"low\":0.172,\"close\":0.17293,\"volume\":83955.8920413,\"close_time\":1509328440473,\"vwap\":0.17239358427767845,\"ema1\":0.17250516369845012,\"sma1\":0.17389673657407403,\"sma2\":0.17291566666666663,\"rsi_avg_gain\":0.00039381894859748544,\"rsi_avg_loss\":0.00035808945974250597,\"rsi\":52},{\"period_id\":\"120m209627\",\"size\":\"120m\",\"time\":1509314400000,\"open\":0.173,\"high\":0.17337,\"low\":0.17201,\"close\":0.17235,\"volume\":684796.3868457904,\"close_time\":1509321591148,\"vwap\":0.1728386858118352,\"ema1\":0.17247586464317083,\"sma1\":0.17393673657407402,\"sma2\":0.1729558333333333,\"rsi_avg_gain\":0.00037949732925883067,\"rsi_avg_loss\":0.0003856348027996218,\"rsi\":50},{\"period_id\":\"120m209626\",\"size\":\"120m\",\"time\":1509307200000,\"open\":0.173,\"high\":0.17449,\"low\":0.1725,\"close\":0.173,\"volume\":476348.78848239995,\"close_time\":1509314385786,\"vwap\":0.17296133525946444,\"ema1\":0.1724845449633895,\"sma1\":0.17397201435185178,\"sma2\":0.1729875,\"rsi_avg_gain\":0.00040868943150950993,\"rsi_avg_loss\":0.00036529901839959394,\"rsi\":53},{\"period_id\":\"120m209625\",\"size\":\"120m\",\"time\":1509300000000,\"open\":0.1723,\"high\":0.17355,\"low\":0.17175,\"close\":0.17245,\"volume\":496058.7864573899,\"close_time\":1509307039172,\"vwap\":0.1726536747027557,\"ema1\":0.172448996340175,\"sma1\":0.1740316439814814,\"sma2\":0.17309499999999997,\"rsi_avg_gain\":0.00039781938777947264,\"rsi_avg_loss\":0.0003933989428918704,\"rsi\":50},{\"period_id\":\"120m209624\",\"size\":\"120m\",\"time\":1509292800000,\"open\":0.172688,\"high\":0.1737,\"low\":0.1715,\"close\":0.17195,\"volume\":516118.92092936015,\"close_time\":1509299984287,\"vwap\":0.1723957967748847,\"ema1\":0.172448927122256,\"sma1\":0.17409460694444437,\"sma2\":0.17324583333333327,\"rsi_avg_gain\":0.00038995934068558586,\"rsi_avg_loss\":0.0004236604000373989,\"rsi\":48},{\"period_id\":\"120m209623\",\"size\":\"120m\",\"time\":1509285600000,\"open\":0.172,\"high\":0.17267,\"low\":0.1715,\"close\":0.17267,\"volume\":282293.62723150995,\"close_time\":1509292684374,\"vwap\":0.17078199639721267,\"ema1\":0.17248333588930814,\"sma1\":0.17419849583333327,\"sma2\":0.17338099999999995,\"rsi_avg_gain\":0.0004199562130460156,\"rsi_avg_loss\":0.000400865046194122,\"rsi\":51},{\"period_id\":\"120m209622\",\"size\":\"120m\",\"time\":1509278400000,\"open\":0.1704,\"high\":0.172,\"low\":0.17,\"close\":0.172,\"volume\":507396.67994656984,\"close_time\":1509285544604,\"vwap\":0.17066096254370483,\"ema1\":0.17247046250236386,\"sma1\":0.17431423657407402,\"sma2\":0.17353799999999994,\"rsi_avg_gain\":0.0004007220755880165,\"rsi_avg_loss\":0.00043170081897828523,\"rsi\":48},{\"period_id\":\"120m209621\",\"size\":\"120m\",\"time\":1509271200000,\"open\":0.1713,\"high\":0.17138,\"low\":0.1692,\"close\":0.17043,\"volume\":708191.5313493701,\"close_time\":1509278199257,\"vwap\":0.17047738906124182,\"ema1\":0.17250290819218206,\"sma1\":0.1744398847222222,\"sma2\":0.1736661666666666,\"rsi_avg_gain\":0.0003107776198640187,\"rsi_avg_loss\":0.00046490857428430716,\"rsi\":40},{\"period_id\":\"120m209620\",\"size\":\"120m\",\"time\":1509264000000,\"open\":0.172,\"high\":0.17279,\"low\":0.17051,\"close\":0.1713,\"volume\":463339.66160280985,\"close_time\":1509271123701,\"vwap\":0.17143264803422117,\"ema1\":0.1726458673778498,\"sma1\":0.1745539587962963,\"sma2\":0.1737781666666666,\"rsi_avg_gain\":0.0003346835906227894,\"rsi_avg_loss\":0.0004337476953830993,\"rsi\":44},{\"period_id\":\"120m209619\",\"size\":\"120m\",\"time\":1509256800000,\"open\":0.17201,\"high\":0.17377,\"low\":0.17132,\"close\":0.17235,\"volume\":285626.02688529,\"close_time\":1509263966493,\"vwap\":0.1717707510435445,\"ema1\":0.1727386858177015,\"sma1\":0.174675625462963,\"sma2\":0.1738056666666666,\"rsi_avg_gain\":0.0003604284822091578,\"rsi_avg_loss\":0.0003863436719510304,\"rsi\":48},{\"period_id\":\"120m209618\",\"size\":\"120m\",\"time\":1509249600000,\"open\":0.17113,\"high\":0.1739,\"low\":0.17112,\"close\":0.17333,\"volume\":186683.95922460998,\"close_time\":1509256796594,\"vwap\":0.17173612551959608,\"ema1\":0.17276549173616368,\"sma1\":0.17482081064814817,\"sma2\":0.17382133333333324,\"rsi_avg_gain\":0.0003881537500714007,\"rsi_avg_loss\":0.0003406778005626475,\"rsi\":53},{\"period_id\":\"120m209617\",\"size\":\"120m\",\"time\":1509242400000,\"open\":0.17101,\"high\":0.17125,\"low\":0.1701,\"close\":0.17052,\"volume\":109812.33446858004,\"close_time\":1509249464890,\"vwap\":0.17170745330432255,\"ema1\":0.1727265601317612,\"sma1\":0.17494460694444444,\"sma2\":0.17380366666666663,\"rsi_avg_gain\":0.0002018578846922771,\"rsi_avg_loss\":0.00036688378522131264,\"rsi\":35},{\"period_id\":\"120m209616\",\"size\":\"120m\",\"time\":1509235200000,\"open\":0.17161,\"high\":0.17213,\"low\":0.171,\"close\":0.17101,\"volume\":250380.80532811998,\"close_time\":1509242351608,\"vwap\":0.1717435059066567,\"ema1\":0.1728787366925723,\"sma1\":0.17504710694444447,\"sma2\":0.17378683333333328,\"rsi_avg_gain\":0.00021738541428399072,\"rsi_avg_loss\":0.00035741330716141436,\"rsi\":38},{\"period_id\":\"120m209615\",\"size\":\"120m\",\"time\":1509228000000,\"open\":0.17176,\"high\":0.17253,\"low\":0.171,\"close\":0.1717,\"volume\":726369.6006439498,\"close_time\":1509235161837,\"vwap\":0.17182289666211076,\"ema1\":0.1730076150851635,\"sma1\":0.17514858842592596,\"sma2\":0.17365849999999997,\"rsi_avg_gain\":0.0002341073692289131,\"rsi_avg_loss\":0.00033182971540460037,\"rsi\":41},{\"period_id\":\"120m209614\",\"size\":\"120m\",\"time\":1509220800000,\"open\":0.17152,\"high\":0.17429,\"low\":0.1715,\"close\":0.17174,\"volume\":507071.4701850402,\"close_time\":1509227774235,\"vwap\":0.17195261321696165,\"ema1\":0.17309779543586443,\"sma1\":0.1752459032407407,\"sma2\":0.1735018333333333,\"rsi_avg_gain\":0.00025211562840036795,\"rsi_avg_loss\":0.0003542781550511072,\"rsi\":42},{\"period_id\":\"120m209613\",\"size\":\"120m\",\"time\":1509213600000,\"open\":0.17186,\"high\":0.17242,\"low\":0.1715,\"close\":0.17151,\"volume\":296945.9798627102,\"close_time\":1509220576896,\"vwap\":0.1718288197710004,\"ema1\":0.1731914365004068,\"sma1\":0.17536701435185187,\"sma2\":0.17335166666666663,\"rsi_avg_gain\":0.000253816830585011,\"rsi_avg_loss\":0.00038153032082426927,\"rsi\":40},{\"period_id\":\"120m209612\",\"size\":\"120m\",\"time\":1509206400000,\"open\":0.17174,\"high\":0.17222,\"low\":0.17121,\"close\":0.17197,\"volume\":204456.1067420499,\"close_time\":1509213416725,\"vwap\":0.17183612168563556,\"ema1\":0.1733073976383659,\"sma1\":0.17557238472222222,\"sma2\":0.1731738333333333,\"rsi_avg_gain\":0.0002733412021684734,\"rsi_avg_loss\":0.00037549419165690414,\"rsi\":42},{\"period_id\":\"120m209611\",\"size\":\"120m\",\"time\":1509199200000,\"open\":0.17264,\"high\":0.17399,\"low\":0.1715,\"close\":0.1715,\"volume\":632198.5747353298,\"close_time\":1509206384934,\"vwap\":0.17188513926802593,\"ema1\":0.1733996319582532,\"sma1\":0.1757669217592593,\"sma2\":0.1729988333333333,\"rsi_avg_gain\":0.0002582136023352792,\"rsi_avg_loss\":0.0004043783602458968,\"rsi\":39},{\"period_id\":\"120m209610\",\"size\":\"120m\",\"time\":1509192000000,\"open\":0.17303,\"high\":0.17476,\"low\":0.1726,\"close\":0.17264,\"volume\":355098.94472750014,\"close_time\":1509199187198,\"vwap\":0.1736300945006541,\"ema1\":0.17353064105882238,\"sma1\":0.17581071805555556,\"sma2\":0.17282083333333328,\"rsi_avg_gain\":0.00027807618713030066,\"rsi_avg_loss\":0.0003477920802648139,\"rsi\":44},{\"period_id\":\"120m209609\",\"size\":\"120m\",\"time\":1509184800000,\"open\":0.1743,\"high\":0.17463,\"low\":0.173,\"close\":0.173,\"volume\":394166.51534412993,\"close_time\":1509191863970,\"vwap\":0.17377337654980776,\"ema1\":0.17359206458012047,\"sma1\":0.17585719953703707,\"sma2\":0.17268799999999998,\"rsi_avg_gain\":0.0002994666630634007,\"rsi_avg_loss\":0.00034685300951595356,\"rsi\":46},{\"period_id\":\"120m209608\",\"size\":\"120m\",\"time\":1509177600000,\"open\":0.17404,\"high\":0.17474,\"low\":0.17315,\"close\":0.1744,\"volume\":351321.72328474006,\"close_time\":1509184281479,\"vwap\":0.17407153863235872,\"ema1\":0.1736328966201288,\"sma1\":0.17591710694444448,\"sma2\":0.17254716666666664,\"rsi_avg_gain\":0.00032250256022212386,\"rsi_avg_loss\":0.0002658417025556414,\"rsi\":55},{\"period_id\":\"120m209607\",\"size\":\"120m\",\"time\":1509170400000,\"open\":0.17389,\"high\":0.17415,\"low\":0.17305,\"close\":0.1739,\"volume\":208398.77150217,\"close_time\":1509177443699,\"vwap\":0.17392061100615322,\"ema1\":0.17357999293875837,\"sma1\":0.17601460694444448,\"sma2\":0.17241599999999999,\"rsi_avg_gain\":0.000308848911008441,\"rsi_avg_loss\":0.0002862910642906907,\"rsi\":52},{\"period_id\":\"120m209606\",\"size\":\"120m\",\"time\":1509163200000,\"open\":0.17309,\"high\":0.1737,\"low\":0.1728,\"close\":0.17346,\"volume\":26886.12837723,\"close_time\":1509170236953,\"vwap\":0.17396987499632816,\"ema1\":0.17355792348625895,\"sma1\":0.1761046995370371,\"sma2\":0.17234349999999996,\"rsi_avg_gain\":0.00029876036570139833,\"rsi_avg_loss\":0.00030831345385151307,\"rsi\":49},{\"period_id\":\"120m209605\",\"size\":\"120m\",\"time\":1509156000000,\"open\":0.17327,\"high\":0.17351,\"low\":0.17257,\"close\":0.1735,\"volume\":22004.55199932,\"close_time\":1509162219469,\"vwap\":0.1739834736598368,\"ema1\":0.17356467683013888,\"sma1\":0.17621414398148155,\"sma2\":0.17229233333333333,\"rsi_avg_gain\":0.00032174193229381356,\"rsi_avg_loss\":0.00032895295030163066,\"rsi\":49},{\"period_id\":\"120m209604\",\"size\":\"120m\",\"time\":1509148800000,\"open\":0.17395,\"high\":0.1744,\"low\":0.17346,\"close\":0.17382,\"volume\":127167.2383359,\"close_time\":1509154797074,\"vwap\":0.17400632303427654,\"ema1\":0.17356913730118292,\"sma1\":0.1763208106481482,\"sma2\":0.17224233333333333,\"rsi_avg_gain\":0.00034649131170102994,\"rsi_avg_loss\":0.0003296416387863703,\"rsi\":51},{\"period_id\":\"120m209603\",\"size\":\"120m\",\"time\":1509141600000,\"open\":0.17364,\"high\":0.17462,\"low\":0.17364,\"close\":0.17364,\"volume\":245967.77557432003,\"close_time\":1509148469738,\"vwap\":0.17406421108168518,\"ema1\":0.17355183642540245,\"sma1\":0.1764455328703704,\"sma2\":0.1721943333333333,\"rsi_avg_gain\":0.0003592983356780312,\"rsi_avg_loss\":0.00035499868792378335,\"rsi\":50},{\"period_id\":\"120m209602\",\"size\":\"120m\",\"time\":1509134400000,\"open\":0.17335,\"high\":0.17462,\"low\":0.17293,\"close\":0.174,\"volume\":265180.97041563,\"close_time\":1509141551587,\"vwap\":0.17402450415013776,\"ema1\":0.1735457561788785,\"sma1\":0.17654368101851856,\"sma2\":0.17214866666666667,\"rsi_avg_gain\":0.0003869366691917259,\"rsi_avg_loss\":0.00035461397161022824,\"rsi\":52},{\"period_id\":\"120m209601\",\"size\":\"120m\",\"time\":1509127200000,\"open\":0.17475,\"high\":0.17476,\"low\":0.1728,\"close\":0.17334,\"volume\":507189.33349982,\"close_time\":1509134343110,\"vwap\":0.17397146709987923,\"ema1\":0.17351442901880115,\"sma1\":0.17661025509259265,\"sma2\":0.17209299999999997,\"rsi_avg_gain\":0.00036593179759108986,\"rsi_avg_loss\":0.00038189196942639965,\"rsi\":49},{\"period_id\":\"120m209600\",\"size\":\"120m\",\"time\":1509120000000,\"open\":0.17441,\"high\":0.17494,\"low\":0.17372,\"close\":0.17473,\"volume\":413137.98772199015,\"close_time\":1509127174200,\"vwap\":0.17418501357179533,\"ema1\":0.1735264586063047,\"sma1\":0.17674858842592597,\"sma2\":0.17203516666666668,\"rsi_avg_gain\":0.0003940803974057891,\"rsi_avg_loss\":0.00030434519784381487,\"rsi\":56},{\"period_id\":\"120m209599\",\"size\":\"120m\",\"time\":1509112800000,\"open\":0.17453,\"high\":0.1748,\"low\":0.1735,\"close\":0.17443,\"volume\":270804.7546261601,\"close_time\":1509119994189,\"vwap\":0.1740807988104697,\"ema1\":0.17344345575156708,\"sma1\":0.17688821805555557,\"sma2\":0.1720013333333333,\"rsi_avg_gain\":0.00040131735105238865,\"rsi_avg_loss\":0.00032775636690872374,\"rsi\":55},{\"period_id\":\"120m209598\",\"size\":\"120m\",\"time\":1509105600000,\"open\":0.17335,\"high\":0.17465,\"low\":0.173,\"close\":0.17362,\"volume\":509927.8083225598,\"close_time\":1509112788348,\"vwap\":0.17407774667716805,\"ema1\":0.1733754182171924,\"sma1\":0.17708229212962967,\"sma2\":0.17197866666666664,\"rsi_avg_gain\":0.00036988022421026434,\"rsi_avg_loss\":0.0003529683951324717,\"rsi\":51},{\"period_id\":\"120m209597\",\"size\":\"120m\",\"time\":1509098400000,\"open\":0.17369,\"high\":0.1745,\"low\":0.173,\"close\":0.17378,\"volume\":532383.4747534199,\"close_time\":1509105581778,\"vwap\":0.17363198981423683,\"ema1\":0.17335855050803325,\"sma1\":0.17729877361111115,\"sma2\":0.17190849999999994,\"rsi_avg_gain\":0.00039833254914951546,\"rsi_avg_loss\":0.00036781211783497005,\"rsi\":52},{\"period_id\":\"120m209596\",\"size\":\"120m\",\"time\":1509091200000,\"open\":0.17391,\"high\":0.17496,\"low\":0.173,\"close\":0.17404,\"volume\":482855.3375114401,\"close_time\":1509098375789,\"vwap\":0.17362246804754114,\"ema1\":0.17332948502582865,\"sma1\":0.17747247731481483,\"sma2\":0.17186549999999998,\"rsi_avg_gain\":0.000428973514468709,\"rsi_avg_loss\":0.0003761053576684285,\"rsi\":53},{\"period_id\":\"120m209595\",\"size\":\"120m\",\"time\":1509084000000,\"open\":0.17261,\"high\":0.1748,\"low\":0.17222,\"close\":0.17391,\"volume\":393510.9533228197,\"close_time\":1509091196781,\"vwap\":0.17330489164970383,\"ema1\":0.17328048399312718,\"sma1\":0.17769627361111107,\"sma2\":0.17186816666666663,\"rsi_avg_gain\":0.0004519714771201488,\"rsi_avg_loss\":0.0004050365390275384,\"rsi\":53},{\"period_id\":\"120m209594\",\"size\":\"120m\",\"time\":1509076800000,\"open\":0.1732,\"high\":0.17436,\"low\":0.17225,\"close\":0.17306,\"volume\":279280.6725509501,\"close_time\":1509083949504,\"vwap\":0.1732861687747629,\"ema1\":0.17323706909610145,\"sma1\":0.17794090324074072,\"sma2\":0.17187666666666662,\"rsi_avg_gain\":0.000421353898437082,\"rsi_avg_loss\":0.00043619319587581056,\"rsi\":49},{\"period_id\":\"120m209593\",\"size\":\"120m\",\"time\":1509069600000,\"open\":0.1733,\"high\":0.17374,\"low\":0.173,\"close\":0.17333,\"volume\":26224.47779756,\"close_time\":1509076527404,\"vwap\":0.17353035739666928,\"ema1\":0.17324928075790155,\"sma1\":0.1781771069444444,\"sma2\":0.17185266666666663,\"rsi_avg_gain\":0.00045376573677839607,\"rsi_avg_loss\":0.000448977287866256,\"rsi\":50},{\"period_id\":\"120m209592\",\"size\":\"120m\",\"time\":1509062400000,\"open\":0.174,\"high\":0.174,\"low\":0.17302,\"close\":0.1733,\"volume\":65117.73086698,\"close_time\":1509069539140,\"vwap\":0.1735339572105106,\"ema1\":0.1732437139136189,\"sma1\":0.17841581064814813,\"sma2\":0.17193016666666663,\"rsi_avg_gain\":0.00048636310114596483,\"rsi_avg_loss\":0.0004835140023175064,\"rsi\":50},{\"period_id\":\"120m209591\",\"size\":\"120m\",\"time\":1509055200000,\"open\":0.1735,\"high\":0.17414,\"low\":0.17286,\"close\":0.17403,\"volume\":277183.36005777994,\"close_time\":1509062233010,\"vwap\":0.17353284856405535,\"ema1\":0.17323983211455812,\"sma1\":0.1786058106481481,\"sma2\":0.1719963333333333,\"rsi_avg_gain\":0.0005237756473879621,\"rsi_avg_loss\":0.0004645535409573161,\"rsi\":53},{\"period_id\":\"120m209590\",\"size\":\"120m\",\"time\":1509048000000,\"open\":0.17345,\"high\":0.17387,\"low\":0.1725,\"close\":0.1735,\"volume\":387891.0964343199,\"close_time\":1509055115817,\"vwap\":0.1733677229600495,\"ema1\":0.1731853377776311,\"sma1\":0.1788905328703703,\"sma2\":0.1719713333333333,\"rsi_avg_gain\":0.0005232968510331898,\"rsi_avg_loss\":0.0005002884287232635,\"rsi\":51},{\"period_id\":\"120m209589\",\"size\":\"120m\",\"time\":1509040800000,\"open\":0.17298,\"high\":0.17433,\"low\":0.17214,\"close\":0.17349,\"volume\":391377.44248398015,\"close_time\":1509047942645,\"vwap\":0.17362538151917128,\"ema1\":0.1731636369347091,\"sma1\":0.17921599583333325,\"sma2\":0.17192066666666664,\"rsi_avg_gain\":0.0005627812241895903,\"rsi_avg_loss\":0.0005387721540096684,\"rsi\":51},{\"period_id\":\"120m209588\",\"size\":\"120m\",\"time\":1509033600000,\"open\":0.17315,\"high\":0.17359,\"low\":0.172,\"close\":0.173,\"volume\":462815.97802780016,\"close_time\":1509040586507,\"vwap\":0.17364466693325054,\"ema1\":0.17314112913710283,\"sma1\":0.17958090324074066,\"sma2\":0.17188566666666666,\"rsi_avg_gain\":0.0005683797798964804,\"rsi_avg_loss\":0.0005802161658565659,\"rsi\":49},{\"period_id\":\"120m209587\",\"size\":\"120m\",\"time\":1509026400000,\"open\":0.17423,\"high\":0.1745,\"low\":0.17318,\"close\":0.17318,\"volume\":536308.6854404302,\"close_time\":1509033597034,\"vwap\":0.17396916491132758,\"ema1\":0.17315086218104095,\"sma1\":0.17998831064814808,\"sma2\":0.17186566666666664,\"rsi_avg_gain\":0.000612101301426979,\"rsi_avg_loss\":0.0006110020247686084,\"rsi\":50},{\"period_id\":\"120m209586\",\"size\":\"120m\",\"time\":1509019200000,\"open\":0.17535,\"high\":0.17588,\"low\":0.17377,\"close\":0.17421,\"volume\":552158.98963798,\"close_time\":1509026340279,\"vwap\":0.17423884291910097,\"ema1\":0.17314885267628516,\"sma1\":0.18040331064814807,\"sma2\":0.17184549999999996,\"rsi_avg_gain\":0.000659186016921362,\"rsi_avg_loss\":0.0005787714112892703,\"rsi\":53},{\"period_id\":\"120m209585\",\"size\":\"120m\",\"time\":1509012000000,\"open\":0.17453,\"high\":0.17564,\"low\":0.17332,\"close\":0.17537,\"volume\":638825.14961212,\"close_time\":1509019193338,\"vwap\":0.17417069691904474,\"ema1\":0.17307567010223585,\"sma1\":0.18082701435185178,\"sma2\":0.17178933333333332,\"rsi_avg_gain\":0.0007098926336076206,\"rsi_avg_loss\":0.0005340615198499839,\"rsi\":57},{\"period_id\":\"120m209584\",\"size\":\"120m\",\"time\":1509004800000,\"open\":0.1735,\"high\":0.17483,\"low\":0.17231,\"close\":0.17453,\"volume\":545484.1022664,\"close_time\":1509011988439,\"vwap\":0.1736050943329948,\"ema1\":0.17291744045411417,\"sma1\":0.18128219953703695,\"sma2\":0.17174766666666663,\"rsi_avg_gain\":0.0006998843746543602,\"rsi_avg_loss\":0.0005751431752230596,\"rsi\":55},{\"period_id\":\"120m209583\",\"size\":\"120m\",\"time\":1508997600000,\"open\":0.1728,\"high\":0.1735,\"low\":0.17155,\"close\":0.17349,\"volume\":247787.35630792996,\"close_time\":1509004772097,\"vwap\":0.1730266412403363,\"ema1\":0.17280622945094962,\"sma1\":0.18172192175925922,\"sma2\":0.17175416666666662,\"rsi_avg_gain\":0.0006737216342431583,\"rsi_avg_loss\":0.0006193849579325257,\"rsi\":52},{\"period_id\":\"120m209582\",\"size\":\"120m\",\"time\":1508990400000,\"open\":0.17349,\"high\":0.17363,\"low\":0.17232,\"close\":0.173,\"volume\":203349.75248238,\"close_time\":1508997556850,\"vwap\":0.1729447853184218,\"ema1\":0.17275907286135994,\"sma1\":0.18218812546296292,\"sma2\":0.17177049999999996,\"rsi_avg_gain\":0.0006878540676464767,\"rsi_avg_loss\":0.0006670299546965661,\"rsi\":51},{\"period_id\":\"120m209581\",\"size\":\"120m\",\"time\":1508983200000,\"open\":0.17188,\"high\":0.17361,\"low\":0.1718,\"close\":0.17348,\"volume\":65074.96547798002,\"close_time\":1508990308256,\"vwap\":0.17118823739767586,\"ema1\":0.17274245719662615,\"sma1\":0.18263016249999997,\"sma2\":0.17176249999999996,\"rsi_avg_gain\":0.000740765919003898,\"rsi_avg_loss\":0.0006814168742886091,\"rsi\":52},{\"period_id\":\"120m209580\",\"size\":\"120m\",\"time\":1508976000000,\"open\":0.17214,\"high\":0.17323,\"low\":0.17072,\"close\":0.1717,\"volume\":152100.50329952006,\"close_time\":1508983070436,\"vwap\":0.17118056383163377,\"ema1\":0.17269159217570382,\"sma1\":0.18310599583333337,\"sma2\":0.1718233333333333,\"rsi_avg_gain\":0.0006608248358503515,\"rsi_avg_loss\":0.0007338335569261944,\"rsi\":47},{\"period_id\":\"120m209579\",\"size\":\"120m\",\"time\":1508968800000,\"open\":0.17132,\"high\":0.17463,\"low\":0.1709,\"close\":0.17221,\"volume\":327021.46813437995,\"close_time\":1508975990039,\"vwap\":0.17117548462321686,\"ema1\":0.17275997784299374,\"sma1\":0.18351960694444447,\"sma2\":0.171895,\"rsi_avg_gain\":0.0007116575155311477,\"rsi_avg_loss\":0.0007510515228435933,\"rsi\":49},{\"period_id\":\"120m209578\",\"size\":\"120m\",\"time\":1508961600000,\"open\":0.1707,\"high\":0.17358,\"low\":0.17062,\"close\":0.17141,\"volume\":541845.9698597101,\"close_time\":1508968736961,\"vwap\":0.171029303651018,\"ema1\":0.17279790734940711,\"sma1\":0.1840079402777778,\"sma2\":0.1719715,\"rsi_avg_gain\":0.0007048619398027749,\"rsi_avg_loss\":0.000808824716908485,\"rsi\":47},{\"period_id\":\"120m209577\",\"size\":\"120m\",\"time\":1508954400000,\"open\":0.17124,\"high\":0.1723,\"low\":0.17,\"close\":0.1707,\"volume\":849917.9403358107,\"close_time\":1508961587149,\"vwap\":0.1706207150373739,\"ema1\":0.17289362509764208,\"sma1\":0.1845916439814815,\"sma2\":0.17208616666666668,\"rsi_avg_gain\":0.0007044667044029871,\"rsi_avg_loss\":0.0008710420028245223,\"rsi\":45},{\"period_id\":\"120m209576\",\"size\":\"120m\",\"time\":1508947200000,\"open\":0.17211,\"high\":0.17285,\"low\":0.17065,\"close\":0.17065,\"volume\":397940.7244818399,\"close_time\":1508954194635,\"vwap\":0.17225005195532464,\"ema1\":0.17304490958713464,\"sma1\":0.18521340324074076,\"sma2\":0.17222016666666665,\"rsi_avg_gain\":0.0007548102970493711,\"rsi_avg_loss\":0.000938045233811024,\"rsi\":45},{\"period_id\":\"120m209575\",\"size\":\"120m\",\"time\":1508940000000,\"open\":0.17242,\"high\":0.17504,\"low\":0.1705,\"close\":0.17197,\"volume\":1294814.2538945102,\"close_time\":1508947190837,\"vwap\":0.17241193251092427,\"ema1\":0.17321007576555772,\"sma1\":0.18589358842592596,\"sma2\":0.17236233333333334,\"rsi_avg_gain\":0.0008128726275916303,\"rsi_avg_loss\":0.0009086640979503324,\"rsi\":47},{\"period_id\":\"120m209574\",\"size\":\"120m\",\"time\":1508932800000,\"open\":0.17124,\"high\":0.1735,\"low\":0.17004,\"close\":0.17242,\"volume\":698543.0479591705,\"close_time\":1508939995535,\"vwap\":0.17234282256374464,\"ema1\":0.1732955982321479,\"sma1\":0.1866009958333333,\"sma2\":0.17255349999999997,\"rsi_avg_gain\":0.0008754012912525249,\"rsi_avg_loss\":0.0009439459516388212,\"rsi\":48},{\"period_id\":\"120m209573\",\"size\":\"120m\",\"time\":1508925600000,\"open\":0.1735,\"high\":0.17576,\"low\":0.17002,\"close\":0.17124,\"volume\":776842.12237437,\"close_time\":1508932775447,\"vwap\":0.17341318354317015,\"ema1\":0.17335598431712362,\"sma1\":0.18716803287037037,\"sma2\":0.17277449999999997,\"rsi_avg_gain\":0.0008519706213488739,\"rsi_avg_loss\":0.0010165571786879613,\"rsi\":46},{\"period_id\":\"120m209572\",\"size\":\"120m\",\"time\":1508918400000,\"open\":0.176,\"high\":0.1769,\"low\":0.173,\"close\":0.1732,\"volume\":853693.2410544899,\"close_time\":1508925593807,\"vwap\":0.17484199411651827,\"ema1\":0.1735019142700287,\"sma1\":0.18770599583333333,\"sma2\":0.17294899999999996,\"rsi_avg_gain\":0.000917506822991095,\"rsi_avg_loss\":0.0009439846539716516,\"rsi\":49},{\"period_id\":\"120m209571\",\"size\":\"120m\",\"time\":1508911200000,\"open\":0.1746,\"high\":0.17699,\"low\":0.1745,\"close\":0.176,\"volume\":812787.1982533699,\"close_time\":1508918396597,\"vwap\":0.17516463693661483,\"ema1\":0.17352273594382378,\"sma1\":0.18826164398148149,\"sma2\":0.17308216666666662,\"rsi_avg_gain\":0.000988084270913487,\"rsi_avg_loss\":0.000801214242738702,\"rsi\":55},{\"period_id\":\"120m209570\",\"size\":\"120m\",\"time\":1508904000000,\"open\":0.17459,\"high\":0.176,\"low\":0.17217,\"close\":0.1746,\"volume\":332293.24866345007,\"close_time\":1508911125306,\"vwap\":0.17393724681920666,\"ema1\":0.1733518901468461,\"sma1\":0.18871534768518522,\"sma2\":0.1732638333333333,\"rsi_avg_gain\":0.0009563984455991409,\"rsi_avg_loss\":0.000862846107564756,\"rsi\":53},{\"period_id\":\"120m209569\",\"size\":\"120m\",\"time\":1508896800000,\"open\":0.17102,\"high\":0.17461,\"low\":0.1705,\"close\":0.17456,\"volume\":238526.89042274005,\"close_time\":1508903964165,\"vwap\":0.17382772378620365,\"ema1\":0.17326581360524929,\"sma1\":0.18915219953703705,\"sma2\":0.17343149999999996,\"rsi_avg_gain\":0.0010268906337221508,\"rsi_avg_loss\":0.0009292188850697373,\"rsi\":52},{\"period_id\":\"120m209568\",\"size\":\"120m\",\"time\":1508889600000,\"open\":0.1751,\"high\":0.17542,\"low\":0.17101,\"close\":0.17132,\"volume\":315972.07897068013,\"close_time\":1508896758337,\"vwap\":0.17505061582009052,\"ema1\":0.17317655937112855,\"sma1\":0.18959488472222222,\"sma2\":0.17362883333333332,\"rsi_avg_gain\":0.0008566514517007785,\"rsi_avg_loss\":0.0010006972608443325,\"rsi\":46},{\"period_id\":\"120m209567\",\"size\":\"120m\",\"time\":1508882400000,\"open\":0.17488,\"high\":0.1782,\"low\":0.17324,\"close\":0.17476,\"volume\":779646.11099317,\"close_time\":1508889386052,\"vwap\":0.17528177589166444,\"ema1\":0.17330459794844777,\"sma1\":0.19001988472222225,\"sma2\":0.17375549999999998,\"rsi_avg_gain\":0.0009225477172162231,\"rsi_avg_loss\":0.0008130585886015889,\"rsi\":53},{\"period_id\":\"120m209566\",\"size\":\"120m\",\"time\":1508875200000,\"open\":0.17901,\"high\":0.18062,\"low\":0.1724,\"close\":0.1749,\"volume\":980719.45796823,\"close_time\":1508882374988,\"vwap\":0.17495241423055036,\"ema1\":0.1732042253931683,\"sma1\":0.19042247731481485,\"sma2\":0.17387549999999996,\"rsi_avg_gain\":0.0009935129262328556,\"rsi_avg_loss\":0.0008648323261863264,\"rsi\":53},{\"period_id\":\"120m209565\",\"size\":\"120m\",\"time\":1508868000000,\"open\":0.18111,\"high\":0.18302,\"low\":0.17853,\"close\":0.1789,\"volume\":870281.0234227607,\"close_time\":1508875170112,\"vwap\":0.17961178276550965,\"ema1\":0.17308727542028335,\"sma1\":0.19084358842592597,\"sma2\":0.17396999999999993,\"rsi_avg_gain\":0.0010699369974815367,\"rsi_avg_loss\":0.0006236655820468127,\"rsi\":63},{\"period_id\":\"120m209564\",\"size\":\"120m\",\"time\":1508860800000,\"open\":0.18079,\"high\":0.18325,\"low\":0.176,\"close\":0.181,\"volume\":2010800.5246071485,\"close_time\":1508867957444,\"vwap\":0.17918950911804693,\"ema1\":0.1726863978630615,\"sma1\":0.19124775509259262,\"sma2\":0.17399416666666664,\"rsi_avg_gain\":0.0011522398434416548,\"rsi_avg_loss\":0.0005101013960504145,\"rsi\":69},{\"period_id\":\"120m209563\",\"size\":\"120m\",\"time\":1508853600000,\"open\":0.18248,\"high\":0.18549,\"low\":0.1806,\"close\":0.18078,\"volume\":2048497.8937628616,\"close_time\":1508860796305,\"vwap\":0.18393185910877297,\"ema1\":0.1721130459915485,\"sma1\":0.19157655138888893,\"sma2\":0.1741811666666666,\"rsi_avg_gain\":0.0012239506006294747,\"rsi_avg_loss\":0.0005493399649773694,\"rsi\":69},{\"period_id\":\"120m209562\",\"size\":\"120m\",\"time\":1508846400000,\"open\":0.17812,\"high\":0.184,\"low\":0.178,\"close\":0.18142,\"volume\":2121593.591426679,\"close_time\":1508853596365,\"vwap\":0.18265305594146022,\"ema1\":0.1715153250254484,\"sma1\":0.19187951435185188,\"sma2\":0.17409866666666662,\"rsi_avg_gain\":0.001318100646831742,\"rsi_avg_loss\":0.0005423661161294747,\"rsi\":71},{\"period_id\":\"120m209561\",\"size\":\"120m\",\"time\":1508839200000,\"open\":0.17708,\"high\":0.1797,\"low\":0.1755,\"close\":0.17812,\"volume\":1405572.9367635408,\"close_time\":1508846399653,\"vwap\":0.17779101317780713,\"ema1\":0.1708322439927207,\"sma1\":0.19219895879629634,\"sma2\":0.1740983333333333,\"rsi_avg_gain\":0.0011656468504341838,\"rsi_avg_loss\":0.0005840865866009728,\"rsi\":67},{\"period_id\":\"120m209560\",\"size\":\"120m\",\"time\":1508832000000,\"open\":0.1749,\"high\":0.18,\"low\":0.174,\"close\":0.17802,\"volume\":2817885.18563076,\"close_time\":1508839193802,\"vwap\":0.17814969361971367,\"ema1\":0.17032964013014973,\"sma1\":0.1925582180555556,\"sma2\":0.1740965,\"rsi_avg_gain\":0.001247619685082968,\"rsi_avg_loss\":0.0006290163240318168,\"rsi\":66},{\"period_id\":\"120m209559\",\"size\":\"120m\",\"time\":1508824800000,\"open\":0.17427,\"high\":0.17499,\"low\":0.17004,\"close\":0.174,\"volume\":2599126.4352685795,\"close_time\":1508831953470,\"vwap\":0.17273747289629968,\"ema1\":0.16979927048395316,\"sma1\":0.19295618101851855,\"sma2\":0.17417716666666663,\"rsi_avg_gain\":0.001034359660858579,\"rsi_avg_loss\":0.0006774021951111873,\"rsi\":60},{\"period_id\":\"120m209558\",\"size\":\"120m\",\"time\":1508817600000,\"open\":0.16942,\"high\":0.17497,\"low\":0.16851,\"close\":0.17427,\"volume\":940349.9307694802,\"close_time\":1508824766056,\"vwap\":0.17118414576338137,\"ema1\":0.16950956500008785,\"sma1\":0.19336229212962963,\"sma2\":0.17429766666666663,\"rsi_avg_gain\":0.001113925788616931,\"rsi_avg_loss\":0.000708740825504354,\"rsi\":61},{\"period_id\":\"120m209557\",\"size\":\"120m\",\"time\":1508810400000,\"open\":0.17017,\"high\":0.17674,\"low\":0.16831,\"close\":0.16946,\"volume\":1315534.0875811498,\"close_time\":1508817487442,\"vwap\":0.17073297730378462,\"ema1\":0.16918125913802495,\"sma1\":0.19376164398148155,\"sma2\":0.1744541666666667,\"rsi_avg_gain\":0.0008296123877413098,\"rsi_avg_loss\":0.0007632593505431505,\"rsi\":52},{\"period_id\":\"120m209556\",\"size\":\"120m\",\"time\":1508803200000,\"open\":0.164,\"high\":0.17077,\"low\":0.1571,\"close\":0.17,\"volume\":1711814.2027050385,\"close_time\":1508810383599,\"vwap\":0.16249854637125513,\"ema1\":0.16916203563030255,\"sma1\":0.19423127361111112,\"sma2\":0.17466399999999999,\"rsi_avg_gain\":0.0008934287252598722,\"rsi_avg_loss\":0.0007804331467387764,\"rsi\":53},{\"period_id\":\"120m209555\",\"size\":\"120m\",\"time\":1508796000000,\"open\":0.16292,\"high\":0.1675,\"low\":0.16182,\"close\":0.164,\"volume\":807403.1018157998,\"close_time\":1508803132515,\"vwap\":0.1655929656509936,\"ema1\":0.16910424498411653,\"sma1\":0.19472201435185188,\"sma2\":0.17501649999999996,\"rsi_avg_gain\":0.000500615550279862,\"rsi_avg_loss\":0.0008404664657186823,\"rsi\":37},{\"period_id\":\"120m209554\",\"size\":\"120m\",\"time\":1508788800000,\"open\":0.1625,\"high\":0.16426,\"low\":0.16121,\"close\":0.16234,\"volume\":1314971.7257595595,\"close_time\":1508795898047,\"vwap\":0.162071488351643,\"ema1\":0.16945626187957283,\"sma1\":0.19523812546296299,\"sma2\":0.17539533333333332,\"rsi_avg_gain\":0.000411432131070621,\"rsi_avg_loss\":0.000905117732312427,\"rsi\":31},{\"period_id\":\"120m209553\",\"size\":\"120m\",\"time\":1508781600000,\"open\":0.16131,\"high\":0.16298,\"low\":0.16,\"close\":0.1625,\"volume\":1229418.5161516913,\"close_time\":1508788795861,\"vwap\":0.16147220232155357,\"ema1\":0.16994703856092266,\"sma1\":0.19576608842592597,\"sma2\":0.1756808333333333,\"rsi_avg_gain\":0.0004430807565375918,\"rsi_avg_loss\":0.0009624344809518449,\"rsi\":32},{\"period_id\":\"120m209552\",\"size\":\"120m\",\"time\":1508774400000,\"open\":0.16147,\"high\":0.162,\"low\":0.16,\"close\":0.1613,\"volume\":1277560.5058609694,\"close_time\":1508781568333,\"vwap\":0.1610109596515374,\"ema1\":0.1704606274271932,\"sma1\":0.1962793291666667,\"sma2\":0.1760008333333333,\"rsi_avg_gain\":0.0003848561993481752,\"rsi_avg_loss\":0.0010364679025635253,\"rsi\":27},{\"period_id\":\"120m209551\",\"size\":\"120m\",\"time\":1508767200000,\"open\":0.16191,\"high\":0.16275,\"low\":0.16,\"close\":0.161,\"volume\":1546121.7464910003,\"close_time\":1508774327749,\"vwap\":0.16098097588356824,\"ema1\":0.17109239483596514,\"sma1\":0.196790625462963,\"sma2\":0.17646749999999997,\"rsi_avg_gain\":0.0003913835992980352,\"rsi_avg_loss\":0.0011161962027607195,\"rsi\":26},{\"period_id\":\"120m209550\",\"size\":\"120m\",\"time\":1508760000000,\"open\":0.16606,\"high\":0.16606,\"low\":0.16034,\"close\":0.16196,\"volume\":1831406.5661778909,\"close_time\":1508767191577,\"vwap\":0.1621247675795076,\"ema1\":0.1717884220660317,\"sma1\":0.1972896069444445,\"sma2\":0.17690150000000002,\"rsi_avg_gain\":0.0004214900300132687,\"rsi_avg_loss\":0.0011282112952807758,\"rsi\":27},{\"period_id\":\"120m209549\",\"size\":\"120m\",\"time\":1508752800000,\"open\":0.16547,\"high\":0.16717,\"low\":0.165,\"close\":0.16503,\"volume\":1181269.23281257,\"close_time\":1508759985903,\"vwap\":0.1657610063675138,\"ema1\":0.17246624427748217,\"sma1\":0.19780469953703705,\"sma2\":0.17738233333333334,\"rsi_avg_gain\":0.00045391234001428935,\"rsi_avg_loss\":0.0009788429333792957,\"rsi\":32},{\"period_id\":\"120m209548\",\"size\":\"120m\",\"time\":1508745600000,\"open\":0.16604,\"high\":0.16744,\"low\":0.165,\"close\":0.16595,\"volume\":2203820.4107049895,\"close_time\":1508752793340,\"vwap\":0.16574961647201517,\"ema1\":0.17297908871041198,\"sma1\":0.19832636620370378,\"sma2\":0.1778451666666667,\"rsi_avg_gain\":0.0004888286738615424,\"rsi_avg_loss\":0.0009833693128700124,\"rsi\":33},{\"period_id\":\"120m209547\",\"size\":\"120m\",\"time\":1508738400000,\"open\":0.169,\"high\":0.16902,\"low\":0.165,\"close\":0.16603,\"volume\":1644274.9669853388,\"close_time\":1508745581675,\"vwap\":0.1663965442251834,\"ema1\":0.1734638534490611,\"sma1\":0.1987886810185186,\"sma2\":0.17827800000000002,\"rsi_avg_gain\":0.0005264308795431995,\"rsi_avg_loss\":0.0010528592600138576,\"rsi\":33},{\"period_id\":\"120m209546\",\"size\":\"120m\",\"time\":1508731200000,\"open\":0.17068,\"high\":0.17076,\"low\":0.169,\"close\":0.16911,\"volume\":319551.91773119004,\"close_time\":1508738356463,\"vwap\":0.1704714990360544,\"ema1\":0.1739765329972722,\"sma1\":0.19927849583333337,\"sma2\":0.17875950000000002,\"rsi_avg_gain\":0.000566925562584984,\"rsi_avg_loss\":0.0008969253569380006,\"rsi\":39},{\"period_id\":\"120m209545\",\"size\":\"120m\",\"time\":1508724000000,\"open\":0.1708,\"high\":0.17086,\"low\":0.17003,\"close\":0.17043,\"volume\":87114,\"close_time\":1508730294918,\"vwap\":0.17065712637325647,\"ema1\":0.1743121559626013,\"sma1\":0.19976868101851858,\"sma2\":0.17916900000000002,\"rsi_avg_gain\":0.0006105352212453675,\"rsi_avg_loss\":0.00086438115362554,\"rsi\":41},{\"period_id\":\"120m209544\",\"size\":\"120m\",\"time\":1508716800000,\"open\":0.17162,\"high\":0.17162,\"low\":0.1707,\"close\":0.17082,\"volume\":115057.60277177,\"close_time\":1508723544199,\"vwap\":0.17066042885896307,\"ema1\":0.1745798908565738,\"sma1\":0.20022951435185188,\"sma2\":0.1796456666666667,\"rsi_avg_gain\":0.0006574994690334726,\"rsi_avg_loss\":0.0009008720115967352,\"rsi\":42},{\"period_id\":\"120m209543\",\"size\":\"120m\",\"time\":1508709600000,\"open\":0.1705,\"high\":0.172,\"low\":0.17017,\"close\":0.17076,\"volume\":97633.11608365999,\"close_time\":1508716762892,\"vwap\":0.17065536090451464,\"ema1\":0.17483919367426853,\"sma1\":0.2006646995370371,\"sma2\":0.18004133333333336,\"rsi_avg_gain\":0.0007034609666514317,\"rsi_avg_loss\":0.0009701698586426379,\"rsi\":42},{\"period_id\":\"120m209542\",\"size\":\"120m\",\"time\":1508702400000,\"open\":0.17,\"high\":0.17174755,\"low\":0.16966,\"close\":0.17126,\"volume\":279349.66166889,\"close_time\":1508709197711,\"vwap\":0.17063346328090365,\"ema1\":0.17512051737594223,\"sma1\":0.2010894444444445,\"sma2\":0.18033200000000002,\"rsi_avg_gain\":0.0007575733487015418,\"rsi_avg_loss\":0.0010063367708459177,\"rsi\":43},{\"period_id\":\"120m209541\",\"size\":\"120m\",\"time\":1508695200000,\"open\":0.171,\"high\":0.172,\"low\":0.1698,\"close\":0.17,\"volume\":534286.93589556,\"close_time\":1508702389820,\"vwap\":0.17056747631382285,\"ema1\":0.1753867599535934,\"sma1\":0.20157314814814822,\"sma2\":0.18085700000000002,\"rsi_avg_gain\":0.0007189251447555079,\"rsi_avg_loss\":0.0010837472916802192,\"rsi\":40},{\"period_id\":\"120m209540\",\"size\":\"120m\",\"time\":1508688000000,\"open\":0.1724,\"high\":0.1724,\"low\":0.171,\"close\":0.17126,\"volume\":149310.91431348005,\"close_time\":1508694856926,\"vwap\":0.17173039112609564,\"ema1\":0.17575826064004813,\"sma2\":0.1814685,\"rsi_avg_gain\":0.0007742270789674701,\"rsi_avg_loss\":0.0010701893910402373,\"rsi\":42},{\"period_id\":\"120m209539\",\"size\":\"120m\",\"time\":1508680800000,\"open\":0.1723,\"high\":0.17481,\"low\":0.17121,\"close\":0.1724,\"volume\":597489.0677834799,\"close_time\":1508687927557,\"vwap\":0.17064006672269044,\"ema1\":0.1760684855117756,\"sma2\":0.18213633333333334,\"rsi_avg_gain\":0.0008337830081188139,\"rsi_avg_loss\":0.0010648193441971786,\"rsi\":44},{\"period_id\":\"120m209538\",\"size\":\"120m\",\"time\":1508673600000,\"open\":0.17057,\"high\":0.17274,\"low\":0.16958,\"close\":0.17226,\"volume\":357371.2148454699,\"close_time\":1508680784545,\"vwap\":0.1699206627959266,\"ema1\":0.1763214845125877,\"sma2\":0.1828766666666667,\"rsi_avg_gain\":0.0008871509318202611,\"rsi_avg_loss\":0.0011467285245200384,\"rsi\":44},{\"period_id\":\"120m209537\",\"size\":\"120m\",\"time\":1508666400000,\"open\":0.17146,\"high\":0.17149,\"low\":0.168,\"close\":0.16957,\"volume\":718263.7104258008,\"close_time\":1508673584125,\"vwap\":0.16961705411910227,\"ema1\":0.17660158689276617,\"sma2\":0.18363383333333336,\"rsi_avg_gain\":0.0007484702342679736,\"rsi_avg_loss\":0.0012349384110215797,\"rsi\":38},{\"period_id\":\"120m209536\",\"size\":\"120m\",\"time\":1508659200000,\"open\":0.17333,\"high\":0.17451,\"low\":0.16901,\"close\":0.17146,\"volume\":777359.1669491098,\"close_time\":1508666395877,\"vwap\":0.17037855224663298,\"ema1\":0.1770865239198535,\"sma2\":0.18446883333333336,\"rsi_avg_gain\":0.0008060448676732024,\"rsi_avg_loss\":0.0011845490580232394,\"rsi\":40},{\"period_id\":\"120m209535\",\"size\":\"120m\",\"time\":1508652000000,\"open\":0.173,\"high\":0.17549,\"low\":0.17237,\"close\":0.17407,\"volume\":368189.59224220994,\"close_time\":1508659091496,\"vwap\":0.1753421098131827,\"ema1\":0.17747456005225717,\"sma2\":0.185208,\"rsi_avg_gain\":0.0008680483190326796,\"rsi_avg_loss\":0.0010748989855634886,\"rsi\":45},{\"period_id\":\"120m209534\",\"size\":\"120m\",\"time\":1508644800000,\"open\":0.17198,\"high\":0.17389,\"low\":0.17066,\"close\":0.17357,\"volume\":259884.95235785996,\"close_time\":1508651645538,\"vwap\":0.17550725992260754,\"ema1\":0.17770935729724044,\"sma2\":0.185956,\"rsi_avg_gain\":0.0008963597281890396,\"rsi_avg_loss\":0.0011575835229145261,\"rsi\":44},{\"period_id\":\"120m209533\",\"size\":\"120m\",\"time\":1508637600000,\"open\":0.17799,\"high\":0.17807,\"low\":0.1715,\"close\":0.17189,\"volume\":233140.33999584996,\"close_time\":1508644438052,\"vwap\":0.17570000664859514,\"ema1\":0.1779948302142915,\"sma2\":0.18673033333333333,\"rsi_avg_gain\":0.000836079707280503,\"rsi_avg_loss\":0.0012466284092925667,\"rsi\":40},{\"period_id\":\"120m209532\",\"size\":\"120m\",\"time\":1508630400000,\"open\":0.17794,\"high\":0.1799,\"low\":0.17573,\"close\":0.17795,\"volume\":324073.30858867,\"close_time\":1508637572755,\"vwap\":0.1762117838517705,\"ema1\":0.17841585298769091,\"sma2\":0.18743116666666668,\"rsi_avg_gain\":0.0009003935309174648,\"rsi_avg_loss\":0.0008763690561612251,\"rsi\":51},{\"period_id\":\"120m209531\",\"size\":\"120m\",\"time\":1508623200000,\"open\":0.17182,\"high\":0.178,\"low\":0.17131,\"close\":0.178,\"volume\":579369.1544701199,\"close_time\":1508630360880,\"vwap\":0.17573955372319777,\"ema1\":0.17844798077994548,\"sma2\":0.188096,\"rsi_avg_gain\":0.0009696545717572698,\"rsi_avg_loss\":0.0009399359066351658,\"rsi\":51},{\"period_id\":\"120m209530\",\"size\":\"120m\",\"time\":1508616000000,\"open\":0.17,\"high\":0.173,\"low\":0.16948,\"close\":0.172,\"volume\":437613.7920166499,\"close_time\":1508623105179,\"vwap\":0.1707307457871788,\"ema1\":0.17847887600614862,\"sma2\":0.18881266666666668,\"rsi_avg_gain\":0.0005827049234309055,\"rsi_avg_loss\":0.0010122386686840248,\"rsi\":37},{\"period_id\":\"120m209529\",\"size\":\"120m\",\"time\":1508608800000,\"open\":0.171,\"high\":0.17269,\"low\":0.17,\"close\":0.17045,\"volume\":521011.0137024398,\"close_time\":1508615996024,\"vwap\":0.17055034153121734,\"ema1\":0.17892569504105543,\"sma2\":0.18962850000000003,\"rsi_avg_gain\":0.0005082976098486679,\"rsi_avg_loss\":0.001090103181659719,\"rsi\":32},{\"period_id\":\"120m209528\",\"size\":\"120m\",\"time\":1508601600000,\"open\":0.17174,\"high\":0.17204,\"low\":0.168,\"close\":0.1709,\"volume\":676697.5788278899,\"close_time\":1508608747958,\"vwap\":0.17038597174201825,\"ema1\":0.17951022573354203,\"sma2\":0.19065016666666673,\"rsi_avg_gain\":0.0005473974259908731,\"rsi_avg_loss\":0.0011393418879412354,\"rsi\":32},{\"period_id\":\"120m209527\",\"size\":\"120m\",\"time\":1508594400000,\"open\":0.17297,\"high\":0.17459,\"low\":0.1709,\"close\":0.17198,\"volume\":648114.2900651698,\"close_time\":1508601565921,\"vwap\":0.1719860796650415,\"ema1\":0.18010403440482078,\"sma2\":0.19176050000000003,\"rsi_avg_gain\":0.0005895049202978633,\"rsi_avg_loss\":0.0011439066485521,\"rsi\":34},{\"period_id\":\"120m209526\",\"size\":\"120m\",\"time\":1508587200000,\"open\":0.172,\"high\":0.17328,\"low\":0.16928,\"close\":0.173,\"volume\":2639942.211716732,\"close_time\":1508594339385,\"vwap\":0.1704238204859701,\"ema1\":0.180664312639636,\"sma2\":0.19300483333333335,\"rsi_avg_gain\":0.0006348514526284682,\"rsi_avg_loss\":0.0011534379292099544,\"rsi\":36},{\"period_id\":\"120m209525\",\"size\":\"120m\",\"time\":1508580000000,\"open\":0.17203,\"high\":0.173,\"low\":0.171,\"close\":0.172,\"volume\":729710.4042586304,\"close_time\":1508587194952,\"vwap\":0.1725478083047763,\"ema1\":0.18119288592512814,\"sma2\":0.19406316666666668,\"rsi_avg_gain\":0.000606763102830658,\"rsi_avg_loss\":0.0012421639237645663,\"rsi\":33},{\"period_id\":\"120m209524\",\"size\":\"120m\",\"time\":1508572800000,\"open\":0.17382,\"high\":0.174,\"low\":0.172,\"close\":0.17203,\"volume\":599489.1881081001,\"close_time\":1508579993090,\"vwap\":0.17297145077611542,\"ema1\":0.1818268780578956,\"sma2\":0.195087,\"rsi_avg_gain\":0.0006534371876637856,\"rsi_avg_loss\":0.0013354073025156866,\"rsi\":33},{\"period_id\":\"120m209523\",\"size\":\"120m\",\"time\":1508565600000,\"open\":0.174,\"high\":0.17489,\"low\":0.17141,\"close\":0.17388,\"volume\":803000.1573551196,\"close_time\":1508572738039,\"vwap\":0.17329790720025556,\"ema1\":0.1825025248205091,\"sma2\":0.1961053333333334,\"rsi_avg_gain\":0.0007037015867148461,\"rsi_avg_loss\":0.0012958232488630456,\"rsi\":35},{\"period_id\":\"120m209522\",\"size\":\"120m\",\"time\":1508558400000,\"open\":0.17331,\"high\":0.17482,\"low\":0.17153,\"close\":0.17398,\"volume\":328946.48005890014,\"close_time\":1508565586485,\"vwap\":0.17498296310439831,\"ema1\":0.18309718170468214,\"sma2\":0.19690200000000008,\"rsi_avg_gain\":0.0007578324780006036,\"rsi_avg_loss\":0.001387809652621742,\"rsi\":35},{\"period_id\":\"120m209521\",\"size\":\"120m\",\"time\":1508551200000,\"open\":0.175,\"high\":0.17588,\"low\":0.173,\"close\":0.173,\"volume\":369652.91754784994,\"close_time\":1508558005497,\"vwap\":0.17522760180143504,\"ema1\":0.18372595285672919,\"sma2\":0.19768533333333338,\"rsi_avg_gain\":0.000740742668616034,\"rsi_avg_loss\":0.001494564241284953,\"rsi\":33},{\"period_id\":\"120m209520\",\"size\":\"120m\",\"time\":1508544000000,\"open\":0.17635,\"high\":0.17802,\"low\":0.17464,\"close\":0.17535,\"volume\":470922.95569517004,\"close_time\":1508551167572,\"vwap\":0.1753848257045549,\"ema1\":0.18446567374340017,\"sma2\":0.1984418333333334,\"rsi_avg_gain\":0.0007977228738941905,\"rsi_avg_loss\":0.0014287614906145635,\"rsi\":36},{\"period_id\":\"120m209519\",\"size\":\"120m\",\"time\":1508536800000,\"open\":0.176,\"high\":0.17769,\"low\":0.1746,\"close\":0.17651,\"volume\":1082256.3462099694,\"close_time\":1508543841892,\"vwap\":0.17529590775088197,\"ema1\":0.18509434089811744,\"sma2\":0.19921666666666674,\"rsi_avg_gain\":0.0008590861718860513,\"rsi_avg_loss\":0.0014494354514310687,\"rsi\":37},{\"period_id\":\"120m209518\",\"size\":\"120m\",\"time\":1508529600000,\"open\":0.177,\"high\":0.1783,\"low\":0.175,\"close\":0.176,\"volume\":2969300.322570631,\"close_time\":1508536792880,\"vwap\":0.1763061521740689,\"ema1\":0.18568636440833244,\"sma2\":0.20000683333333338,\"rsi_avg_gain\":0.0008859389543388236,\"rsi_avg_loss\":0.0015609304861565357,\"rsi\":36},{\"period_id\":\"120m209517\",\"size\":\"120m\",\"time\":1508522400000,\"open\":0.1785,\"high\":0.17999,\"low\":0.1771,\"close\":0.17758,\"volume\":913124.6028473194,\"close_time\":1508529579456,\"vwap\":0.17855772575314405,\"ema1\":0.18635438953994157,\"sma2\":0.20077866666666674,\"rsi_avg_gain\":0.0009540881046725794,\"rsi_avg_loss\":0.0015594636004762695,\"rsi\":38},{\"period_id\":\"120m209516\",\"size\":\"120m\",\"time\":1508515200000,\"open\":0.1805,\"high\":0.1805,\"low\":0.1765,\"close\":0.17869,\"volume\":854731.4552997001,\"close_time\":1508522351206,\"vwap\":0.1791574381105648,\"ema1\":0.186959519853041,\"sma2\":0.20156716666666677,\"rsi_avg_gain\":0.0010274794973397009,\"rsi_avg_loss\":0.0015940377235898287,\"rsi\":39},{\"period_id\":\"120m209515\",\"size\":\"120m\",\"time\":1508508000000,\"open\":0.18251,\"high\":0.18389,\"low\":0.1754,\"close\":0.1805,\"volume\":2255473.1624895213,\"close_time\":1508515181054,\"vwap\":0.17929319339416447,\"ema1\":0.1875298315670438,\"sma2\":0.2022330000000001,\"rsi_avg_gain\":0.001106516381750447,\"rsi_avg_loss\":0.0015774252407890457,\"rsi\":41},{\"period_id\":\"120m209514\",\"size\":\"120m\",\"time\":1508500800000,\"open\":0.1827,\"high\":0.1845,\"low\":0.182,\"close\":0.18389,\"volume\":741604.6409471899,\"close_time\":1508507951218,\"vwap\":0.1834406166296652,\"ema1\":0.18801464753718475,\"sma2\":0.20273350000000007,\"rsi_avg_gain\":0.0011916330265004816,\"rsi_avg_loss\":0.0014379964131574336,\"rsi\":45},{\"period_id\":\"120m209513\",\"size\":\"120m\",\"time\":1508493600000,\"open\":0.18325,\"high\":0.18495,\"low\":0.18194,\"close\":0.1845,\"volume\":672749.5059062601,\"close_time\":1508500751369,\"vwap\":0.18359402512195983,\"ema1\":0.18829910598802507,\"sma2\":0.2032285,\"rsi_avg_gain\":0.0012832971054620571,\"rsi_avg_loss\":0.0015016884449387746,\"rsi\":46},{\"period_id\":\"120m209512\",\"size\":\"120m\",\"time\":1508486400000,\"open\":0.18398,\"high\":0.18511,\"low\":0.1825,\"close\":0.18367,\"volume\":750380.9981659299,\"close_time\":1508493594948,\"vwap\":0.18499696501133928,\"ema1\":0.18856111329754405,\"sma2\":0.20373400000000003,\"rsi_avg_gain\":0.0013181661135745234,\"rsi_avg_loss\":0.0016172029407032957,\"rsi\":45},{\"period_id\":\"120m209511\",\"size\":\"120m\",\"time\":1508479200000,\"open\":0.18556,\"high\":0.18691,\"low\":0.1833,\"close\":0.18399,\"volume\":934216.4546398703,\"close_time\":1508486356945,\"vwap\":0.18566581592244608,\"ema1\":0.18889843145599536,\"sma2\":0.2042835000000001,\"rsi_avg_gain\":0.0014195635069264097,\"rsi_avg_loss\":0.0017169877822958578,\"rsi\":45},{\"period_id\":\"120m209510\",\"size\":\"120m\",\"time\":1508472000000,\"open\":0.18476,\"high\":0.18958,\"low\":0.18476,\"close\":0.1855,\"volume\":854452.3424677192,\"close_time\":1508479192400,\"vwap\":0.1870272744773362,\"ema1\":0.18923694397020194,\"sma2\":0.20478850000000007,\"rsi_avg_gain\":0.0015287606997669027,\"rsi_avg_loss\":0.0017329099193955381,\"rsi\":47},{\"period_id\":\"120m209509\",\"size\":\"120m\",\"time\":1508464800000,\"open\":0.18316,\"high\":0.18462,\"low\":0.18193,\"close\":0.18462,\"volume\":229724.49574185,\"close_time\":1508471909974,\"vwap\":0.18243545442725206,\"ema1\":0.18949466424400896,\"sma2\":0.2053445,\"rsi_avg_gain\":0.0015786653689797419,\"rsi_avg_loss\":0.0018662106824259641,\"rsi\":46},{\"period_id\":\"120m209508\",\"size\":\"120m\",\"time\":1508457600000,\"open\":0.18186,\"high\":0.1832,\"low\":0.17975,\"close\":0.18316,\"volume\":430995.58608996,\"close_time\":1508464770516,\"vwap\":0.18236744434436378,\"ema1\":0.1898308479849751,\"sma2\":0.2058828333333334,\"rsi_avg_gain\":0.0015877934742858744,\"rsi_avg_loss\":0.0020097653503048842,\"rsi\":44},{\"period_id\":\"120m209507\",\"size\":\"120m\",\"time\":1508450400000,\"open\":0.18245,\"high\":0.18349,\"low\":0.18,\"close\":0.18236,\"volume\":266705.26839337003,\"close_time\":1508457396244,\"vwap\":0.18234647000063675,\"ema1\":0.19029090646669752,\"sma2\":0.20643350000000005,\"rsi_avg_gain\":0.001648392972307865,\"rsi_avg_loss\":0.0021643626849437215,\"rsi\":43},{\"period_id\":\"120m209506\",\"size\":\"120m\",\"time\":1508443200000,\"open\":0.18448,\"high\":0.1848,\"low\":0.18011,\"close\":0.1821,\"volume\":694507.9420249896,\"close_time\":1508450386343,\"vwap\":0.18264964159666786,\"ema1\":0.19083786553336632,\"sma2\":0.2070623333333334,\"rsi_avg_gain\":0.0017551924317161635,\"rsi_avg_loss\":0.002330852122247085,\"rsi\":43},{\"period_id\":\"120m209505\",\"size\":\"120m\",\"time\":1508436000000,\"open\":0.1825,\"high\":0.1855,\"low\":0.181,\"close\":0.18457,\"volume\":949255.9928773206,\"close_time\":1508443191375,\"vwap\":0.18456890337431356,\"ema1\":0.19144047694946054,\"sma2\":0.20762316666666672,\"rsi_avg_gain\":0.0018902072341558684,\"rsi_avg_loss\":0.0023201484393430144,\"rsi\":45},{\"period_id\":\"120m209504\",\"size\":\"120m\",\"time\":1508428800000,\"open\":0.191,\"high\":0.1944,\"low\":0.1821,\"close\":0.18245,\"volume\":2695444.7140950765,\"close_time\":1508435969412,\"vwap\":0.18655799686175034,\"ema1\":0.19191430294597506,\"sma2\":0.20817400000000008,\"rsi_avg_gain\":0.0018725308675524729,\"rsi_avg_loss\":0.0024986213962155538,\"rsi\":43},{\"period_id\":\"120m209503\",\"size\":\"120m\",\"time\":1508421600000,\"open\":0.17647,\"high\":0.195,\"low\":0.175,\"close\":0.192,\"volume\":3989608.8784541055,\"close_time\":1508428794391,\"vwap\":0.1890237493532235,\"ema1\":0.19256701349397334,\"sma2\":0.20857266666666677,\"rsi_avg_gain\":0.0020165717035180476,\"rsi_avg_loss\":0.0019562076574629037,\"rsi\":51},{\"period_id\":\"120m209502\",\"size\":\"120m\",\"time\":1508414400000,\"open\":0.1781,\"high\":0.17949,\"low\":0.1764,\"close\":0.17647,\"volume\":1041090.1481537899,\"close_time\":1508421587204,\"vwap\":0.1772286050416445,\"ema1\":0.19260611787286805,\"sma2\":0.20924816666666676,\"rsi_avg_gain\":0.0009770772191732807,\"rsi_avg_loss\":0.0021066851695754345,\"rsi\":32},{\"period_id\":\"120m209501\",\"size\":\"120m\",\"time\":1508407200000,\"open\":0.17791,\"high\":0.17965,\"low\":0.1752,\"close\":0.1781,\"volume\":1684302.6253727605,\"close_time\":1508414397667,\"vwap\":0.17784512793603802,\"ema1\":0.19371895358823826,\"sma2\":0.20992083333333342,\"rsi_avg_gain\":0.001052237005263533,\"rsi_avg_loss\":0.002143353259542774,\"rsi\":33},{\"period_id\":\"120m209500\",\"size\":\"120m\",\"time\":1508400000000,\"open\":0.17884,\"high\":0.18121,\"low\":0.17727,\"close\":0.17791,\"volume\":1148991.7105682401,\"close_time\":1508407195358,\"vwap\":0.17789404598886183,\"ema1\":0.19479612280122022,\"sma2\":0.21065433333333342,\"rsi_avg_gain\":0.0011185629287453435,\"rsi_avg_loss\":0.0023082265871999107,\"rsi\":33},{\"period_id\":\"120m209499\",\"size\":\"120m\",\"time\":1508392800000,\"open\":0.1826,\"high\":0.18468,\"low\":0.17801,\"close\":0.17884,\"volume\":1068540.03475697,\"close_time\":1508399998814,\"vwap\":0.1809338678109541,\"ema1\":0.1959606829944078,\"sma2\":0.21129866666666672,\"rsi_avg_gain\":0.0012046062309565239,\"rsi_avg_loss\":0.0024142440169845204,\"rsi\":33},{\"period_id\":\"120m209498\",\"size\":\"120m\",\"time\":1508385600000,\"open\":0.17834,\"high\":0.18343,\"low\":0.1763,\"close\":0.1815,\"volume\":1083815.3835733393,\"close_time\":1508392791657,\"vwap\":0.18297932083520319,\"ema1\":0.19714141975264282,\"sma2\":0.21190716666666673,\"rsi_avg_gain\":0.0012972682487224104,\"rsi_avg_loss\":0.0023953397105987147,\"rsi\":35},{\"period_id\":\"120m209497\",\"size\":\"120m\",\"time\":1508378400000,\"open\":0.1835,\"high\":0.18533,\"low\":0.17843,\"close\":0.17885,\"volume\":555617.9518499903,\"close_time\":1508385595765,\"vwap\":0.18425304444325433,\"ema1\":0.19822013835627336,\"sma2\":0.2126013333333334,\"rsi_avg_gain\":0.0011932119601625968,\"rsi_avg_loss\":0.0025795966114140006,\"rsi\":32},{\"period_id\":\"120m209496\",\"size\":\"120m\",\"time\":1508371200000,\"open\":0.18414,\"high\":0.18592,\"low\":0.18112,\"close\":0.18259,\"volume\":481808.72188413964,\"close_time\":1508378329705,\"vwap\":0.18509570970269848,\"ema1\":0.19955600996705083,\"sma2\":0.2132453333333334,\"rsi_avg_gain\":0.0012849974955597195,\"rsi_avg_loss\":0.0024903348122920013,\"rsi\":34},{\"period_id\":\"120m209495\",\"size\":\"120m\",\"time\":1508364000000,\"open\":0.185,\"high\":0.18809,\"low\":0.1836,\"close\":0.18515,\"volume\":1333017.9636087907,\"close_time\":1508371192259,\"vwap\":0.18529853573549354,\"ema1\":0.2007260796199509,\"sma2\":0.21378633333333338,\"rsi_avg_gain\":0.001383843456756621,\"rsi_avg_loss\":0.0024849759516990776,\"rsi\":36},{\"period_id\":\"120m209494\",\"size\":\"120m\",\"time\":1508356800000,\"open\":0.17963,\"high\":0.18522,\"low\":0.17531,\"close\":0.18507,\"volume\":2839118.2283753585,\"close_time\":1508363988420,\"vwap\":0.18094644031408225,\"ema1\":0.20180029200753372,\"sma2\":0.21429333333333342,\"rsi_avg_gain\":0.0014841391072763614,\"rsi_avg_loss\":0.002676127947983622,\"rsi\":36},{\"period_id\":\"120m209493\",\"size\":\"120m\",\"time\":1508349600000,\"open\":0.1817,\"high\":0.18195,\"low\":0.17057,\"close\":0.17963,\"volume\":4148635.5413661683,\"close_time\":1508356790881,\"vwap\":0.1771657702567181,\"ema1\":0.20295410524943258,\"sma2\":0.21491200000000005,\"rsi_avg_gain\":0.0011798421155283891,\"rsi_avg_loss\":0.002881983943982362,\"rsi\":29},{\"period_id\":\"120m209492\",\"size\":\"120m\",\"time\":1508342400000,\"open\":0.189,\"high\":0.18988,\"low\":0.18,\"close\":0.1805,\"volume\":2751641.340932761,\"close_time\":1508349586855,\"vwap\":0.18027200276345526,\"ema1\":0.20456266423215208,\"rsi_avg_gain\":0.0012705992013382651,\"rsi_avg_loss\":0.0030367519396733147,\"rsi\":29},{\"period_id\":\"120m209491\",\"size\":\"120m\",\"time\":1508335200000,\"open\":0.1888,\"high\":0.18988,\"low\":0.1853,\"close\":0.189,\"volume\":1497489.5640848696,\"close_time\":1508342398064,\"vwap\":0.18806709600440763,\"ema1\":0.2062221583171281,\"rsi_avg_gain\":0.0013683376014412088,\"rsi_avg_loss\":0.0026165020888789534,\"rsi\":34},{\"period_id\":\"120m209490\",\"size\":\"120m\",\"time\":1508328000000,\"open\":0.193,\"high\":0.19561,\"low\":0.188,\"close\":0.188,\"volume\":1372659.4788467903,\"close_time\":1508335190916,\"vwap\":0.19079442457002965,\"ema1\":0.20740989337348176,\"rsi_avg_gain\":0.0013966712630905326,\"rsi_avg_loss\":0.002817771480331181,\"rsi\":33},{\"period_id\":\"120m209489\",\"size\":\"120m\",\"time\":1508320800000,\"open\":0.19372,\"high\":0.19788,\"low\":0.19,\"close\":0.19388,\"volume\":1368834.8061775295,\"close_time\":1508327989073,\"vwap\":0.19325469574507861,\"ema1\":0.20874850670958395,\"rsi_avg_gain\":0.0015041075140974967,\"rsi_avg_loss\":0.0025822154403566566,\"rsi\":37},{\"period_id\":\"120m209488\",\"size\":\"120m\",\"time\":1508313600000,\"open\":0.1895,\"high\":0.19372,\"low\":0.18551,\"close\":0.19372,\"volume\":1762878.7035395007,\"close_time\":1508320794514,\"vwap\":0.19270516246013378,\"ema1\":0.20977392096541733,\"rsi_avg_gain\":0.0016075003997973048,\"rsi_avg_loss\":0.002780847397307169,\"rsi\":37},{\"period_id\":\"120m209487\",\"size\":\"120m\",\"time\":1508306400000,\"open\":0.19807,\"high\":0.19897,\"low\":0.18551,\"close\":0.192,\"volume\":1783411.5423043596,\"close_time\":1508313540957,\"vwap\":0.1909541555866886,\"ema1\":0.21088108792854957,\"rsi_avg_gain\":0.0015988465843970977,\"rsi_avg_loss\":0.0029947587355615662,\"rsi\":35},{\"period_id\":\"120m209486\",\"size\":\"120m\",\"time\":1508299200000,\"open\":0.19455,\"high\":0.20078,\"low\":0.19428,\"close\":0.198,\"volume\":1296323.113122249,\"close_time\":1508306398847,\"vwap\":0.19807996421472068,\"ema1\":0.21218323192362196,\"rsi_avg_gain\":0.0017218347831968743,\"rsi_avg_loss\":0.0027635863306047634,\"rsi\":38},{\"period_id\":\"120m209485\",\"size\":\"120m\",\"time\":1508292000000,\"open\":0.19707,\"high\":0.19925,\"low\":0.193,\"close\":0.195,\"volume\":376664.22766547016,\"close_time\":1508299009432,\"vwap\":0.191196537022313,\"ema1\":0.21316138584938898,\"rsi_avg_gain\":0.001623514381904326,\"rsi_avg_loss\":0.0029761698944974374,\"rsi\":35},{\"period_id\":\"120m209484\",\"size\":\"120m\",\"time\":1508284800000,\"open\":0.19449,\"high\":0.19978,\"low\":0.19075,\"close\":0.19942,\"volume\":743392.9868329304,\"close_time\":1508291986653,\"vwap\":0.1910857245010271,\"ema1\":0.21441389521831236,\"rsi_avg_gain\":0.0017484001035892743,\"rsi_avg_loss\":0.002865106040228011,\"rsi\":38},{\"period_id\":\"120m209483\",\"size\":\"120m\",\"time\":1508277600000,\"open\":0.191,\"high\":0.19466,\"low\":0.1888,\"close\":0.1945,\"volume\":2467112.42037417,\"close_time\":1508284788370,\"vwap\":0.1903080648596808,\"ema1\":0.21544795695750632,\"rsi_avg_gain\":0.0015044308807884506,\"rsi_avg_loss\":0.003085498812553243,\"rsi\":33},{\"period_id\":\"120m209482\",\"size\":\"120m\",\"time\":1508270400000,\"open\":0.2015,\"high\":0.20462,\"low\":0.18501,\"close\":0.1887,\"volume\":8168424.322204548,\"close_time\":1508277590165,\"vwap\":0.19088140124580993,\"ema1\":0.2168926436442309,\"rsi_avg_gain\":0.0011740024870029468,\"rsi_avg_loss\":0.003322844875057339,\"rsi\":26},{\"period_id\":\"120m209481\",\"size\":\"120m\",\"time\":1508263200000,\"open\":0.20795,\"high\":0.20948,\"low\":0.198,\"close\":0.2015,\"volume\":4465280.972445613,\"close_time\":1508270392738,\"vwap\":0.20186976571266035,\"ema1\":0.21883696389555715,\"rsi_avg_gain\":0.001264310370618558,\"rsi_avg_loss\":0.0025938329423694415,\"rsi\":33},{\"period_id\":\"120m209480\",\"size\":\"120m\",\"time\":1508256000000,\"open\":0.21216,\"high\":0.213,\"low\":0.2,\"close\":0.20795,\"volume\":4123265.899420519,\"close_time\":1508263196262,\"vwap\":0.20501435866939677,\"ema1\":0.22003261657800938,\"rsi_avg_gain\":0.0013615650145122934,\"rsi_avg_loss\":0.002297204707167092,\"rsi\":37},{\"period_id\":\"120m209479\",\"size\":\"120m\",\"time\":1508248800000,\"open\":0.21667,\"high\":0.2185,\"low\":0.21126,\"close\":0.21247,\"volume\":1350323.3272897,\"close_time\":1508255977182,\"vwap\":0.21329686659167252,\"ema1\":0.22086590047994106,\"rsi_avg_gain\":0.001466300784859393,\"rsi_avg_loss\":0.002126220453872253,\"rsi\":41},{\"period_id\":\"120m209478\",\"size\":\"120m\",\"time\":1508241600000,\"open\":0.21483,\"high\":0.2207,\"low\":0.2145,\"close\":0.21668,\"volume\":1476930.5860650714,\"close_time\":1508248766827,\"vwap\":0.21581147413600413,\"ema1\":0.22144492809924735,\"rsi_avg_gain\":0.0015790931529255001,\"rsi_avg_loss\":0.0019659297195547326,\"rsi\":45},{\"period_id\":\"120m209477\",\"size\":\"120m\",\"time\":1508234400000,\"open\":0.2214,\"high\":0.2214,\"low\":0.21483,\"close\":0.215,\"volume\":1546725.3390792508,\"close_time\":1508241589452,\"vwap\":0.21665137328115439,\"ema1\":0.22177354383022993,\"rsi_avg_gain\":0.001571331087765922,\"rsi_avg_loss\":0.002117155082597404,\"rsi\":43},{\"period_id\":\"120m209476\",\"size\":\"120m\",\"time\":1508227200000,\"open\":0.21815,\"high\":0.22399,\"low\":0.2162,\"close\":0.22156,\"volume\":1788883.6854261511,\"close_time\":1508234398358,\"vwap\":0.2215659889402093,\"ema1\":0.22224068478403888,\"rsi_avg_gain\":0.0016922027099017622,\"rsi_avg_loss\":0.001775397781258742,\"rsi\":49},{\"period_id\":\"120m209475\",\"size\":\"120m\",\"time\":1508220000000,\"open\":0.21901,\"high\":0.22099,\"low\":0.215,\"close\":0.21842,\"volume\":1724554.0755199182,\"close_time\":1508227139321,\"vwap\":0.2180942378142425,\"ema1\":0.22228762856224846,\"rsi_avg_gain\":0.0015808336875865127,\"rsi_avg_loss\":0.0019119668413555683,\"rsi\":45},{\"period_id\":\"120m209474\",\"size\":\"120m\",\"time\":1508212800000,\"open\":0.218,\"high\":0.22398,\"low\":0.218,\"close\":0.21845,\"volume\":604386.24432186,\"close_time\":1508219872202,\"vwap\":0.2206157995109615,\"ema1\":0.22255436156654146,\"rsi_avg_gain\":0.0017024362789393214,\"rsi_avg_loss\":0.0020567335214598426,\"rsi\":45},{\"period_id\":\"120m209473\",\"size\":\"120m\",\"time\":1508205600000,\"open\":0.22012,\"high\":0.22135,\"low\":0.218,\"close\":0.21835,\"volume\":278872.58491949004,\"close_time\":1508212763910,\"vwap\":0.2181026404292805,\"ema1\":0.22283742098492362,\"rsi_avg_gain\":0.0018257006080884986,\"rsi_avg_loss\":0.0022149437923413688,\"rsi\":45},{\"period_id\":\"120m209472\",\"size\":\"120m\",\"time\":1508198400000,\"open\":0.2172,\"high\":0.22462,\"low\":0.2165,\"close\":0.22,\"volume\":526781.0521477099,\"close_time\":1508204356283,\"vwap\":0.21804582147952503,\"ema1\":0.2231468982942287,\"rsi_avg_gain\":0.0019661391164029983,\"rsi_avg_loss\":0.0022584010071368577,\"rsi\":47},{\"period_id\":\"120m209471\",\"size\":\"120m\",\"time\":1508191200000,\"open\":0.215,\"high\":0.2193,\"low\":0.21384,\"close\":0.21789,\"volume\":1527821.7633719281,\"close_time\":1508198371974,\"vwap\":0.2175698577085208,\"ema1\":0.2233639257627962,\"rsi_avg_gain\":0.0019550728945878443,\"rsi_avg_loss\":0.0024321241615320004,\"rsi\":45},{\"period_id\":\"120m209470\",\"size\":\"120m\",\"time\":1508184000000,\"open\":0.21977,\"high\":0.22632,\"low\":0.215,\"close\":0.215,\"volume\":3312468.6553416625,\"close_time\":1508191198043,\"vwap\":0.21792222755722826,\"ema1\":0.22374143788436834,\"rsi_avg_gain\":0.0018831554249407554,\"rsi_avg_loss\":0.0026192106354960003,\"rsi\":42},{\"period_id\":\"120m209469\",\"size\":\"120m\",\"time\":1508176800000,\"open\":0.2322,\"high\":0.23534,\"low\":0.215,\"close\":0.2194,\"volume\":7587043.2554451395,\"close_time\":1508183998207,\"vwap\":0.21747857778629123,\"ema1\":0.2243442956694972,\"rsi_avg_gain\":0.0020280135345515826,\"rsi_avg_loss\":0.0024822268382264606,\"rsi\":45},{\"period_id\":\"120m209468\",\"size\":\"120m\",\"time\":1508169600000,\"open\":0.23909,\"high\":0.24,\"low\":0.22711,\"close\":0.2322,\"volume\":5271921.541000183,\"close_time\":1508176794364,\"vwap\":0.2326008280691368,\"ema1\":0.2246852815777384,\"rsi_avg_gain\":0.002184014575670935,\"rsi_avg_loss\":0.0016885519796284974,\"rsi\":56},{\"period_id\":\"120m209467\",\"size\":\"120m\",\"time\":1508162400000,\"open\":0.2485,\"high\":0.2485,\"low\":0.2386,\"close\":0.2386,\"volume\":4005236.0432454455,\"close_time\":1508169595100,\"vwap\":0.24137469633475178,\"ema1\":0.2241670251348238,\"rsi_avg_gain\":0.0023520156968763915,\"rsi_avg_loss\":0.0013261329011383803,\"rsi\":64},{\"period_id\":\"120m209466\",\"size\":\"120m\",\"time\":1508155200000,\"open\":0.2355,\"high\":0.2499,\"low\":0.235,\"close\":0.24766,\"volume\":5009323.550827344,\"close_time\":1508162398862,\"vwap\":0.24808879403489179,\"ema1\":0.2231716475579151,\"rsi_avg_gain\":0.0025329399812514986,\"rsi_avg_loss\":0.0007312200473797956,\"rsi\":78},{\"period_id\":\"120m209465\",\"size\":\"120m\",\"time\":1508148000000,\"open\":0.2334,\"high\":0.237,\"low\":0.23101,\"close\":0.2355,\"volume\":1623158.6642044901,\"close_time\":1508155184120,\"vwap\":0.2350855856035741,\"ema1\":0.22148279566535753,\"rsi_avg_gain\":0.0017923969028862292,\"rsi_avg_loss\":0.0007874677433320875,\"rsi\":69},{\"period_id\":\"120m209464\",\"size\":\"120m\",\"time\":1508140800000,\"open\":0.23496,\"high\":0.235,\"low\":0.224,\"close\":0.23346,\"volume\":2284854.99099831,\"close_time\":1508147985967,\"vwap\":0.23140919927550793,\"ema1\":0.2205160919181408,\"rsi_avg_gain\":0.0017733505108005556,\"rsi_avg_loss\":0.0008480421851268634,\"rsi\":68},{\"period_id\":\"120m209463\",\"size\":\"120m\",\"time\":1508133600000,\"open\":0.22176,\"high\":0.237,\"low\":0.22174,\"close\":0.23498,\"volume\":3742457.9514594693,\"close_time\":1508140777463,\"vwap\":0.2338008658061707,\"ema1\":0.21962340860215052,\"rsi_avg_gain\":0.0019097620885544443,\"rsi_avg_loss\":0.0007963531224443149,\"rsi\":71},{\"period_id\":\"120m209462\",\"size\":\"120m\",\"time\":1508126400000,\"open\":0.22,\"high\":0.225,\"low\":0.21921,\"close\":0.22178,\"volume\":491233.2354765498,\"close_time\":1508133596710,\"vwap\":0.221946882096288,\"rsi_avg_gain\":0.0010412822492124796,\"rsi_avg_loss\":0.0008576110549400315,\"rsi\":55},{\"period_id\":\"120m209461\",\"size\":\"120m\",\"time\":1508119200000,\"open\":0.22154,\"high\":0.22179,\"low\":0.21931,\"close\":0.22,\"volume\":231878.15689234002,\"close_time\":1508126390334,\"vwap\":0.22139976121317748,\"rsi_avg_gain\":0.0009844578068442084,\"rsi_avg_loss\":0.0009235811360892647,\"rsi\":52},{\"period_id\":\"120m209460\",\"size\":\"120m\",\"time\":1508112000000,\"open\":0.22323,\"high\":0.22323,\"low\":0.2203,\"close\":0.22074,\"volume\":253917.69177766997,\"close_time\":1508119056912,\"vwap\":0.22160374607343727,\"rsi_avg_gain\":0.0010601853304476091,\"rsi_avg_loss\":0.0009377027619422857,\"rsi\":53},{\"period_id\":\"120m209459\",\"size\":\"120m\",\"time\":1508104800000,\"open\":0.2238,\"high\":0.2241,\"low\":0.22,\"close\":0.223,\"volume\":679377.8068433397,\"close_time\":1508111891597,\"vwap\":0.22160872264372797,\"rsi_avg_gain\":0.0011417380481743484,\"rsi_avg_loss\":0.0008359875897839991,\"rsi\":58},{\"period_id\":\"120m209458\",\"size\":\"120m\",\"time\":1508097600000,\"open\":0.2235,\"high\":0.2241,\"low\":0.222,\"close\":0.22341,\"volume\":879567.2457431995,\"close_time\":1508104786549,\"vwap\":0.22489028418323861,\"rsi_avg_gain\":0.0012295640518800676,\"rsi_avg_loss\":0.0008687558659212304,\"rsi\":59},{\"period_id\":\"120m209457\",\"size\":\"120m\",\"time\":1508090400000,\"open\":0.22601,\"high\":0.2285,\"low\":0.2235,\"close\":0.22389,\"volume\":2245693.797248608,\"close_time\":1508097595388,\"vwap\":0.2251035773083654,\"rsi_avg_gain\":0.0013241459020246881,\"rsi_avg_loss\":0.0008986601632997859,\"rsi\":60},{\"period_id\":\"120m209456\",\"size\":\"120m\",\"time\":1508083200000,\"open\":0.22045,\"high\":0.2269,\"low\":0.22011,\"close\":0.226,\"volume\":2726038.296152591,\"close_time\":1508090396748,\"vwap\":0.22438936542650106,\"rsi_avg_gain\":0.0014260032791035102,\"rsi_avg_loss\":0.0008054801758613078,\"rsi\":64},{\"period_id\":\"120m209455\",\"size\":\"120m\",\"time\":1508076000000,\"open\":0.21396,\"high\":0.221,\"low\":0.21354,\"close\":0.22045,\"volume\":1708637.0210549808,\"close_time\":1508083195777,\"vwap\":0.21980825402574677,\"rsi_avg_gain\":0.0011087727621114727,\"rsi_avg_loss\":0.0008674401893891007,\"rsi\":56},{\"period_id\":\"120m209454\",\"size\":\"120m\",\"time\":1508068800000,\"open\":0.21396,\"high\":0.21672,\"low\":0.21275,\"close\":0.21392,\"volume\":435710.61404684,\"close_time\":1508075872850,\"vwap\":0.21300728319164708,\"rsi_avg_gain\":0.000691755282273893,\"rsi_avg_loss\":0.0009341663578036469,\"rsi\":43},{\"period_id\":\"120m209453\",\"size\":\"120m\",\"time\":1508061600000,\"open\":0.214,\"high\":0.2142,\"low\":0.21012,\"close\":0.2142,\"volume\":850332.3362540897,\"close_time\":1508068743727,\"vwap\":0.21252018151447027,\"rsi_avg_gain\":0.0007449672270641925,\"rsi_avg_loss\":0.0009844868468654657,\"rsi\":43},{\"period_id\":\"120m209452\",\"size\":\"120m\",\"time\":1508054400000,\"open\":0.21693,\"high\":0.2188,\"low\":0.214,\"close\":0.214,\"volume\":607334.2370174906,\"close_time\":1508061599703,\"vwap\":0.21636586153035572,\"rsi_avg_gain\":0.0007868877829922069,\"rsi_avg_loss\":0.0010602166043166554,\"rsi\":43},{\"period_id\":\"120m209451\",\"size\":\"120m\",\"time\":1508047200000,\"open\":0.21579,\"high\":0.21797,\"low\":0.21503,\"close\":0.21696,\"volume\":394691.07658418996,\"close_time\":1508054359089,\"vwap\":0.21697947586468466,\"rsi_avg_gain\":0.0008474176124531459,\"rsi_avg_loss\":0.0009140794200333221,\"rsi\":48},{\"period_id\":\"120m209450\",\"size\":\"120m\",\"time\":1508040000000,\"open\":0.21822,\"high\":0.21883,\"low\":0.21504,\"close\":0.2158,\"volume\":171068.74766762997,\"close_time\":1508047123237,\"vwap\":0.21717272841175855,\"rsi_avg_gain\":0.0008233728134110806,\"rsi_avg_loss\":0.0009843932215743468,\"rsi\":46},{\"period_id\":\"120m209449\",\"size\":\"120m\",\"time\":1508032800000,\"open\":0.21515,\"high\":0.21987,\"low\":0.215,\"close\":0.21798,\"volume\":220571.05850644,\"close_time\":1508039650535,\"vwap\":0.217283380404807,\"rsi_avg_gain\":0.0008867091836734714,\"rsi_avg_loss\":0.000892423469387757,\"rsi\":50},{\"period_id\":\"120m209448\",\"size\":\"120m\",\"time\":1508025600000,\"open\":0.21536,\"high\":0.22149,\"low\":0.21386,\"close\":0.21546,\"volume\":707964.3870707101,\"close_time\":1508032798119,\"vwap\":0.21729043061080927,\"rsi_avg_gain\":0.000761071428571431,\"rsi_avg_loss\":0.0009610714285714307,\"rsi\":44},{\"period_id\":\"120m209447\",\"size\":\"120m\",\"time\":1508018400000,\"open\":0.21973,\"high\":0.2205,\"low\":0.2154,\"close\":0.2154,\"volume\":838005.9117413496,\"close_time\":1508025538461,\"vwap\":0.21809789592962028,\"rsi_avg_gain\":0.0008150000000000022,\"rsi_avg_loss\":0.0010350000000000023,\"rsi\":44},{\"period_id\":\"120m209446\",\"size\":\"120m\",\"time\":1508011200000,\"open\":0.21822,\"high\":0.22,\"low\":0.21704,\"close\":0.21983,\"volume\":575111.9319556504,\"close_time\":1508018298035,\"vwap\":0.21911861226260934},{\"period_id\":\"120m209445\",\"size\":\"120m\",\"time\":1508004000000,\"open\":0.2155,\"high\":0.22,\"low\":0.21526,\"close\":0.21822,\"volume\":489996.45826562005,\"close_time\":1508010985727,\"vwap\":0.2191730835199429},{\"period_id\":\"120m209444\",\"size\":\"120m\",\"time\":1507996800000,\"open\":0.216,\"high\":0.21743,\"low\":0.212,\"close\":0.2155,\"volume\":1021218.8540847708,\"close_time\":1508003893718,\"vwap\":0.21517927310467588},{\"period_id\":\"120m209443\",\"size\":\"120m\",\"time\":1507989600000,\"open\":0.21681,\"high\":0.21797,\"low\":0.215,\"close\":0.21592,\"volume\":713933.1875201706,\"close_time\":1507996716287,\"vwap\":0.21576159824119892},{\"period_id\":\"120m209442\",\"size\":\"120m\",\"time\":1507982400000,\"open\":0.21846,\"high\":0.21995,\"low\":0.2161,\"close\":0.217,\"volume\":510351.39443468006,\"close_time\":1507989592659},{\"period_id\":\"120m209441\",\"size\":\"120m\",\"time\":1507975200000,\"open\":0.2218,\"high\":0.2228,\"low\":0.2158,\"close\":0.21846,\"volume\":713020.0319770401,\"close_time\":1507982378829},{\"period_id\":\"120m209440\",\"size\":\"120m\",\"time\":1507968000000,\"open\":0.2176,\"high\":0.22378,\"low\":0.21651,\"close\":0.22192,\"volume\":1198865.3822558406,\"close_time\":1507975185432},{\"period_id\":\"120m209439\",\"size\":\"120m\",\"time\":1507960800000,\"open\":0.218,\"high\":0.21895,\"low\":0.215,\"close\":0.2175,\"volume\":647635.7473931103,\"close_time\":1507967986898},{\"period_id\":\"120m209438\",\"size\":\"120m\",\"time\":1507953600000,\"open\":0.21942,\"high\":0.22366,\"low\":0.21801,\"close\":0.21801,\"volume\":153208.56479699002,\"close_time\":1507960794466},{\"period_id\":\"120m209437\",\"size\":\"120m\",\"time\":1507946400000,\"open\":0.22138,\"high\":0.2238,\"low\":0.21948,\"close\":0.2205,\"volume\":371646.62039033975,\"close_time\":1507953503013},{\"period_id\":\"120m209436\",\"size\":\"120m\",\"time\":1507939200000,\"open\":0.2183,\"high\":0.22139,\"low\":0.21761,\"close\":0.22123,\"volume\":335889.88883946976,\"close_time\":1507946329960},{\"period_id\":\"120m209435\",\"size\":\"120m\",\"time\":1507932000000,\"open\":0.21462,\"high\":0.219,\"low\":0.2146,\"close\":0.21761,\"volume\":342086.37947635003,\"close_time\":1507939166270},{\"period_id\":\"120m209434\",\"size\":\"120m\",\"time\":1507924800000,\"open\":0.217,\"high\":0.21762,\"low\":0.211,\"close\":0.21549,\"volume\":806460.19144003,\"close_time\":1507931994857}];\nvar trades = [{\"time\":1508826388445,\"execution_time\":8901003,\"slippage\":0.0004499999999998817,\"type\":\"buy\",\"size\":\"4125.00000000\",\"fee\":6.446511627904,\"price\":\"0.16807560\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1508946687470,\"execution_time\":6691935,\"slippage\":0.00045020259116602474,\"type\":\"sell\",\"size\":\"3982.39702325\",\"fee\":1.1082004165737274,\"price\":\"0.17392170\",\"order_type\":\"maker\"},{\"time\":1509036685937,\"execution_time\":39129087,\"slippage\":0.0004499999999999014,\"type\":\"buy\",\"size\":\"4111.54333678\",\"fee\":6.578469338848,\"price\":\"0.17207740\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509223193040,\"execution_time\":16808106,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4103.73918900\",\"fee\":1.1354038457618183,\"price\":\"0.17292215\",\"order_type\":\"maker\"},{\"time\":1509308060275,\"execution_time\":1021103,\"slippage\":0.00045000000000006276,\"type\":\"buy\",\"size\":\"4141.30925838\",\"fee\":6.549492561232,\"price\":\"0.17107695\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509567002437,\"execution_time\":101484524,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4087.05191652\",\"fee\":1.1438595680841184,\"price\":\"0.17492125\",\"order_type\":\"maker\"},{\"time\":1509671719179,\"execution_time\":4548785,\"slippage\":0.00045000000000006276,\"type\":\"buy\",\"size\":\"4219.33030929\",\"fee\":6.308244659135999,\"price\":\"0.17107695\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509877509431,\"execution_time\":44728427,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3937.85173979\",\"fee\":1.1021023178219864,\"price\":\"0.17492125\",\"order_type\":\"maker\"},{\"time\":1509971478859,\"execution_time\":1888360,\"slippage\":0.0004500000000000853,\"type\":\"buy\",\"size\":\"4150.21551416\",\"fee\":6.603039514671998,\"price\":\"0.17707965\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510307860202,\"execution_time\":7149662,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4118.47220799\",\"fee\":1.22510578329973,\"price\":\"0.18591630\",\"order_type\":\"maker\"},{\"time\":1510396697862,\"execution_time\":2305443,\"slippage\":0.00045000000000009247,\"type\":\"buy\",\"size\":\"4290.09743222\",\"fee\":6.902718565103999,\"price\":\"0.17908055\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510402414041,\"execution_time\":826909,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4305.40814285\",\"fee\":1.1912006923026066,\"price\":\"0.17292215\",\"order_type\":\"maker\"},{\"time\":1510574825042,\"execution_time\":433078,\"slippage\":0.00045000000000007046,\"type\":\"buy\",\"size\":\"4271.33134867\",\"fee\":6.834130157872,\"price\":\"0.17307785\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510597666573,\"execution_time\":16070337,\"slippage\":0.00045020259116602474,\"type\":\"sell\",\"size\":\"4264.90632775\",\"fee\":1.1868156141808595,\"price\":\"0.17392170\",\"order_type\":\"maker\"},{\"time\":1510627469334,\"execution_time\":2685088,\"slippage\":0.00044999999999991087,\"type\":\"buy\",\"size\":\"4254.18056973\",\"fee\":6.767793546352,\"price\":\"0.17407830\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511244086353,\"execution_time\":93997,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4223.52120447\",\"fee\":1.3779369703444957,\"price\":\"0.20390820\",\"order_type\":\"maker\"},{\"time\":1511251915008,\"execution_time\":746069,\"slippage\":0.0004500000000000206,\"type\":\"buy\",\"size\":\"4291.02637979\",\"fee\":6.798000412512,\"price\":\"0.20109045\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511335493846,\"execution_time\":26733649,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4241.76794688\",\"fee\":1.3567549284172493,\"price\":\"0.19991000\",\"order_type\":\"maker\"},{\"time\":1511369757161,\"execution_time\":32409755,\"slippage\":0.00045000000000001706,\"type\":\"buy\",\"size\":\"4274.02978324\",\"fee\":6.770740250672,\"price\":\"0.20009000\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511512179066,\"execution_time\":1779671,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4225.11017673\",\"fee\":1.371698243298473,\"price\":\"0.20290865\",\"order_type\":\"maker\"},{\"time\":1511598864424,\"execution_time\":2083747,\"slippage\":0.0004499999999998834,\"type\":\"buy\",\"size\":\"4276.88174165\",\"fee\":6.843010786639999,\"price\":\"0.20209090\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511725112176,\"execution_time\":5941921,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4269.58944532\",\"fee\":1.3997951466628307,\"price\":\"0.20490775\",\"order_type\":\"maker\"},{\"time\":1511775993705,\"execution_time\":6395291,\"slippage\":0.0004500000000000276,\"type\":\"buy\",\"size\":\"4300.45256188\",\"fee\":6.880724099008,\"price\":\"0.20309135\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511839450454,\"execution_time\":41111299,\"slippage\":0.0004499999999998834,\"type\":\"buy\",\"size\":\"41.29208330\",\"fee\":0.062655405264,\"price\":\"0.20209090\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511985716807,\"execution_time\":117843,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4332.03801700\",\"fee\":1.385628351965552,\"price\":\"0.19991000\",\"order_type\":\"maker\"},{\"time\":1512138371222,\"execution_time\":1572711,\"slippage\":0.0004499999999999077,\"type\":\"buy\",\"size\":\"4117.75050512\",\"fee\":6.620228831423999,\"price\":\"0.20809360\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512338626571,\"execution_time\":229790,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4133.03294307\",\"fee\":1.3484148927393698,\"price\":\"0.20390820\",\"order_type\":\"maker\"},{\"time\":1512388708776,\"execution_time\":7225159,\"slippage\":0.00045000000000003436,\"type\":\"buy\",\"size\":\"4083.32696609\",\"fee\":6.533323145743999,\"price\":\"0.20509225\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512392949458,\"execution_time\":4152260,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4077.35603595\",\"fee\":1.356333463924216,\"price\":\"0.20790640\",\"order_type\":\"maker\"},{\"time\":1512452513752,\"execution_time\":13489333,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"40.77356036\",\"fee\":0.01356333463940848,\"price\":\"0.20790640\",\"order_type\":\"maker\"},{\"time\":1512699360458,\"execution_time\":995610,\"slippage\":0.0004500000000000276,\"type\":\"buy\",\"size\":\"4208.20367742\",\"fee\":6.868465097616,\"price\":\"0.20309135\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512721526683,\"execution_time\":1531848,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4243.47073430\",\"fee\":1.3097940900586018,\"price\":\"0.19291315\",\"order_type\":\"maker\"},{\"time\":1512736814119,\"execution_time\":2425231,\"slippage\":0.00044999999999999126,\"type\":\"buy\",\"size\":\"4146.59779513\",\"fee\":6.533007138448,\"price\":\"0.19308685\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512881477014,\"execution_time\":3087977,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4078.26519719\",\"fee\":1.2522792891959085,\"price\":\"0.19191360\",\"order_type\":\"maker\"},{\"time\":1512988276878,\"execution_time\":16372084,\"slippage\":0.00044999999999999885,\"type\":\"buy\",\"size\":\"4068.65029920\",\"fee\":6.347094466752,\"price\":\"0.19508775\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"price\":0.3935,\"size\":\"4001.78154520\",\"type\":\"sell\",\"time\":1513173600000}];\n\nwithData(data, trades)\n  </script>\n  <pre><code>{\n  \"asset_capital\": 0,\n  \"avg_slippage_pct\": 0.045,\n  \"buy_pct\": 99,\n  \"buy_stop_pct\": 0,\n  \"currency_capital\": 700,\n  \"days\": 60,\n  \"emalen1\": 30,\n  \"filename\": \"simulations/vwapmax1000.html\",\n  \"markdown_buy_pct\": 0.5,\n  \"markup_sell_pct\": 0.5,\n  \"max_sell_loss_pct\": 25,\n  \"max_slippage_pct\": \"100\",\n  \"min_periods\": 1,\n  \"mode\": \"sim\",\n  \"order_adjust_time\": 5000,\n  \"order_type\": \"maker\",\n  \"period\": \"120m\",\n  \"profit_stop_enable_pct\": 0,\n  \"profit_stop_pct\": 1,\n  \"rsi_periods\": 14,\n  \"selector\": \"kraken.XXRP-ZEUR\",\n  \"sell_pct\": 99,\n  \"sell_stop_pct\": 0,\n  \"show_options\": true,\n  \"smalen1\": 108,\n  \"smalen2\": 60,\n  \"start\": 1507939200000,\n  \"stats\": false,\n  \"strategy\": \"crossover_vwap\",\n  \"verbose\": false,\n  \"vwap_length\": 10,\n  \"vwap_max\": 1000\n}\nend balance: 1602.20161795 (128.89%)\nbuy hold: 1261.79569400 (80.26%)\nvs. buy hold: 26.98%\n36 trades over 62 days (avg 0.58 trades/day)\nwin/loss: 12/6\nerror rate: 33.33%</pre></code>\n</body>\n</html>"
  },
  {
    "path": "extensions/strategies/crossover_vwap/example_sims/vwapmax10000.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>kraken.XXRP-ZEUR - zenbot 4.0.5 sim result</title>\n  <link href=\"main.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n  <div class=\"ticker-graph\"></div>\n  <script src=\"https://code.jquery.com/jquery-3.0.0.slim.min.js\"></script>\n  <script src=\"https://d3js.org/d3.v4.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/techan.js/0.8.0/techan.min.js\"></script>\n  <script>\n    var withData = function (data, trades) {\n      var dim = {\n          width: 1280, height: 520,\n          margin: { top: 20, right: 50, bottom: 20, left: 50 },\n          ohlc: { height: 450 }\n      };\n      dim.plot = {\n          width: dim.width - dim.margin.left - dim.margin.right,\n          height: dim.height - dim.margin.top - dim.margin.bottom\n      };\n\n      var yInit, yPercentInit, zoomableInit;\n\n      var x = techan.scale.financetime()\n              .range([0, dim.plot.width]);\n\n      var y = d3.scaleLinear()\n              .range([dim.ohlc.height, 0]);\n\n      var zoom = d3.zoom()\n              .on(\"zoom\", zoomed);\n\n      var yPercent = y.copy();   // Same as y at this stage, will get a different domain later\n\n      var yVolume = d3.scaleLinear()\n              .range([y(0), y(1)]);\n\n      var candlestick = techan.plot.candlestick()\n              .xScale(x)\n              .yScale(y);\n\n      var tradearrow = techan.plot.tradearrow()\n              .xScale(x)\n              .yScale(y)\n              .y(function(d) {\n                  // Display the buy and sell arrows a bit above and below the price, so the price is still visible\n                  if(d.type === 'buy') return y(d.price);\n                  if(d.type === 'sell') return y(d.price);\n                  else \n                    return y(d.price);\n              });\n\n      var ema2 = techan.plot.ema()\n        .xScale(x)\n        .yScale(y);\n\n      var sma0 = techan.plot.sma()\n              .xScale(x)\n              .yScale(y);\n    \n      var sma1 = techan.plot.sma()\n              .xScale(x)\n              .yScale(y);\n    \n      var adx1 = techan.plot.adx()\n              .xScale(x)\n              .yScale(y);\n  \n      var volume = techan.plot.volume()\n              .accessor(candlestick.accessor())   // Set the accessor to a ohlc accessor so we get highlighted bars\n              .xScale(x)\n              .yScale(yVolume);\n\n      var xAxis = d3.axisBottom(x);\n\n      var timeAnnotation = techan.plot.axisannotation()\n              .axis(xAxis)\n              .orient('bottom')\n              .format(d3.timeFormat('%c'))\n              .width(140)\n              .translate([0, dim.plot.height]);\n\n      var yAxis = d3.axisRight(y);\n\n      var ohlcAnnotation = techan.plot.axisannotation()\n              .axis(yAxis)\n              .orient('right')\n              .format(d3.format(',.8f'))\n              .translate([x(1), 0]);\n\n      var percentAxis = d3.axisLeft(yPercent)\n              .tickFormat(d3.format('+.1%'));\n\n      var percentAnnotation = techan.plot.axisannotation()\n              .axis(percentAxis)\n              .orient('left');\n\n      var volumeAxis = d3.axisRight(yVolume)\n              .ticks(3)\n              .tickFormat(d3.format(\",.3s\"));\n\n      var volumeAnnotation = techan.plot.axisannotation()\n              .axis(volumeAxis)\n              .orient(\"right\")\n              .width(35);\n\n      var ohlcCrosshair = techan.plot.crosshair()\n              .xScale(timeAnnotation.axis().scale())\n              .yScale(ohlcAnnotation.axis().scale())\n              .xAnnotation(timeAnnotation)\n              .yAnnotation([ohlcAnnotation, percentAnnotation, volumeAnnotation])\n              .verticalWireRange([0, dim.plot.height]);\n\n      var svg = d3.select(\"body\").append(\"svg\")\n              .attr(\"viewBox\", \"0 0 \" + dim.width + \" \" + dim.height)\n              .attr(\"width\", dim.width)\n              .attr(\"height\", dim.height);\n\n      var defs = svg.append(\"defs\");\n\n      defs.append(\"clipPath\")\n              .attr(\"id\", \"ohlcClip\")\n          .append(\"rect\")\n              .attr(\"x\", 0)\n              .attr(\"y\", 0)\n              .attr(\"width\", dim.plot.width)\n              .attr(\"height\", dim.ohlc.height);\n\n      svg = svg.append(\"g\")\n              .attr(\"transform\", \"translate(\" + dim.margin.left + \",\" + dim.margin.top + \")\");\n\n      svg.append('text')\n              .attr(\"class\", \"symbol\")\n              .attr(\"x\", 50)\n              .text(\"kraken.XXRP-ZEUR - zenbot 4.0.5\");\n\n      svg.append(\"g\")\n              .attr(\"class\", \"x axis\")\n              .attr(\"transform\", \"translate(0,\" + (dim.plot.height - 30) + \")\");\n\n      var ohlcSelection = svg.append(\"g\")\n              .attr(\"class\", \"ohlc\")\n              .attr(\"transform\", \"translate(0,0)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"axis\")\n              .attr(\"transform\", \"translate(\" + x(1) + \",0)\")\n          .append(\"text\")\n              .attr(\"transform\", \"rotate(-90)\")\n              .attr(\"y\", -12)\n              .attr(\"dy\", \".71em\")\n              .style(\"text-anchor\", \"end\")\n              .text(\"Price\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"close annotation up\")\n              .attr(\"font-weight\", \"900\")\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"volume\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"candlestick\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator ema ma-2\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator sma sma-0\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator sma sma-1\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator adx adx-1\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line1\")\n                .attr(\"class\", \"indicator ema ma-2\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line2\")\n                .attr(\"class\", \"indicator sma sma-0\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line3\")\n                .attr(\"class\", \"indicator sma sma-1\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n            \n      svg.append(\"g\")\n                .attr(\"id\", \"data_line4\")\n                .attr(\"class\", \"indicator indicator4\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"percent axis\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"volume axis\");\n\n      // Add trendlines and other interactions last to be above zoom pane\n      svg.append('g')\n              .attr(\"class\", \"crosshair ohlc\");\n\n      svg.append(\"g\")\n              .attr(\"class\", \"tradearrow\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      var accessor = candlestick.accessor();\n\n      data = data.map(function (d) {\n        d.date = new Date(d.time)\n        return d\n      })\n      data.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n      trades = trades.map(function (t) {\n        t.date = new Date(t.time)\n        return t\n      })\n      trades.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n\n      //$('body').css('backgroundColor', '#1f2d35')\n      x.domain(techan.scale.plot.time(data).domain());\n      y.domain(techan.scale.plot.ohlc(data).domain());\n      yPercent.domain(techan.scale.plot.percent(y, accessor(data[0])).domain());\n      yVolume.domain(techan.scale.plot.volume(data).domain());\n\n      svg.select(\"g.candlestick\").datum(data)\n      var last = data[data.length-1]\n      if (!last) {\n        return\n      }\n  \n      var parseQueryString = function(url) {\n        var urlParams = {};\n        url.replace(\n          new RegExp(\"([^?=&]+)(=([^&]*))?\", \"g\"),\n          function($0, $1, $2, $3) {\n            urlParams[$1] = $3;\n          }\n        );\n\n        return urlParams;\n      }\n  \n      var urlToParse = location.search;  \n      var qParams = parseQueryString(urlToParse ); \n  \n      var tperiod = qParams.period;\n  \n      svg.select(\"g.volume\").datum(data)\n  \n      // svg.select(\"g.ema.ma-2\").datum(techan.indicator.ema().period(tperiod*2)(data)).call(ema2);\n      // svg.select(\"g.sma.sma-0\").datum(techan.indicator.sma().period(tperiod*2)(data)).call(sma0);\n      // svg.select(\"g.sma.sma-1\").datum(techan.indicator.sma().period(tperiod)(data)).call(sma1);\n  \n      // svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1);\n      // svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2);\n      // svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3);\n      //\n  \n        \n      var plotLine1 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.ema1); });\n\n      var plotLine2 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.sma1); });\n\n      var plotLine3 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.sma2); });\n          \n      var plotLine4 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2) && !isNaN(d.vwap); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.vwap); });\n        \n        \n      svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1);\n      svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2);\n      svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3);\n      svg.select(\"g#data_line4 path\").datum(data).attr(\"d\", plotLine4);\n      //svg.select(\"g.adx.adx-1\").datum(techan.indicator.adx().period(tperiod)(data)).call(adx1);\n  \n      svg.select(\"g.tradearrow\").datum(trades).call(tradearrow);\n  \n      // Stash for zooming\n      zoomableInit = x.zoomable().domain([0, data.length]).copy(); // Zoom in a little to hide indicator preroll\n      yInit = y.copy();\n      yPercentInit = yPercent.copy();\n\n      draw();\n\n      function draw() {\n        svg.select(\"g.x.axis\").call(xAxis);\n        svg.select(\"g.ohlc .axis\").call(yAxis);\n        svg.select(\"g.volume.axis\").call(volumeAxis);\n        svg.select(\"g.percent.axis\").call(percentAxis);\n        svg.select(\"g.candlestick\").call(candlestick);\n        svg.select(\"g.volume\").call(volume);\n        svg.select(\"g.crosshair.ohlc\").call(ohlcCrosshair).call(zoom);\n        svg.select(\"g.tradearrow\").call(tradearrow);\n        // svg.select(\"g .ema.ma-2\").call(ema2.refresh).call(zoom);\n        // svg.select(\"g .sma.sma-0\").call(sma0.refresh).call(zoom);\n        // svg.select(\"g .sma.sma-1\").call(sma1.refresh).call(zoom);\n        // svg.select(\"g .adx.adx-1\").call(adx1.refresh).call(zoom);\n    \n        svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1).call(zoom);\n        svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2).call(zoom);\n        svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3).call(zoom);\n        svg.select(\"g#data_line4 path\").datum(data).attr(\"d\", plotLine4).call(zoom);\n      }\n\n\n      function zoomed() {\n        x.zoomable().domain(d3.event.transform.rescaleX(zoomableInit).domain());\n        y.domain(d3.event.transform.rescaleY(yInit).domain());\n        yPercent.domain(d3.event.transform.rescaleY(yPercentInit).domain());\n\n        draw();\n      }\n  \n      if(!qParams.static)\n        setTimeout(function(){ window.location.reload(1); }, 10000);\n    }\n  </script>\n  <script>\nvar data = [{\"period_id\":\"120m210163\",\"size\":\"120m\",\"time\":1513173600000,\"open\":0.3875,\"high\":0.399,\"low\":0.3812,\"close\":0.3935,\"volume\":1394606.5288537226,\"close_time\":1513174686001,\"vwap\":0.38647100532430545,\"ema1\":0.27287274681999496,\"sma1\":0.2141562685185185,\"sma2\":0.22013291666666668},{\"period_id\":\"120m210162\",\"size\":\"120m\",\"time\":1513166400000,\"open\":0.38999,\"high\":0.395,\"low\":0.371,\"close\":0.3875,\"volume\":2764537.296713162,\"close_time\":1513173592543,\"vwap\":0.384141647963998,\"ema1\":0.2645536259110291,\"sma1\":0.21242386111111108,\"sma2\":0.21690791666666667,\"rsi_avg_gain\":0.009856092175262298,\"rsi_avg_loss\":0.000811144798512558,\"rsi\":92},{\"period_id\":\"120m210161\",\"size\":\"120m\",\"time\":1513159200000,\"open\":0.37499,\"high\":0.39,\"low\":0.35,\"close\":0.38331,\"volume\":4774045.706226606,\"close_time\":1513166399125,\"vwap\":0.38902248809366513,\"ema1\":0.2560745656290311,\"sma1\":0.21074265740740744,\"sma2\":0.21373625000000002,\"rsi_avg_gain\":0.010291945419513242,\"rsi_avg_loss\":0.0008735405522442933,\"rsi\":92},{\"period_id\":\"120m210160\",\"size\":\"120m\",\"time\":1513152000000,\"open\":0.365,\"high\":0.43,\"low\":0.362,\"close\":0.37037,\"volume\":10615001.811561493,\"close_time\":1513159196158,\"vwap\":0.3921969547981659,\"ema1\":0.24729970808620566,\"sma1\":0.20869450925925928,\"sma2\":0.21075141666666672,\"rsi_avg_gain\":0.010088248913321952,\"rsi_avg_loss\":0.0009407359793400081,\"rsi\":91},{\"period_id\":\"120m210159\",\"size\":\"120m\",\"time\":1513144800000,\"open\":0.31155,\"high\":0.3799,\"low\":0.30039,\"close\":0.36201,\"volume\":7383654.496617741,\"close_time\":1513151997966,\"vwap\":0.309449028181434,\"ema1\":0.23881210174732329,\"sma1\":0.20709302777777777,\"sma2\":0.2079064166666667,\"rsi_avg_gain\":0.010221191137423641,\"rsi_avg_loss\":0.0010131002854430857,\"rsi\":91},{\"period_id\":\"120m210158\",\"size\":\"120m\",\"time\":1513137600000,\"open\":0.28467,\"high\":0.319,\"low\":0.28201,\"close\":0.3084,\"volume\":1939410.0138247905,\"close_time\":1513144797985,\"vwap\":0.2945244546206872,\"ema1\":0.2303156949712766,\"sma1\":0.2060463611111111,\"sma2\":0.2061830833333334,\"rsi_avg_gain\":0.006883590455686998,\"rsi_avg_loss\":0.0010910310766310155,\"rsi\":86},{\"period_id\":\"120m210157\",\"size\":\"120m\",\"time\":1513130400000,\"open\":0.2981,\"high\":0.3,\"low\":0.27671,\"close\":0.28923,\"volume\":1470804.7478552302,\"close_time\":1513137551841,\"vwap\":0.294024228735093,\"ema1\":0.22493057048653706,\"sma1\":0.20516673148148146,\"sma2\":0.20477208333333338,\"rsi_avg_gain\":0.005938482029201381,\"rsi_avg_loss\":0.0011749565440641705,\"rsi\":83},{\"period_id\":\"120m210156\",\"size\":\"120m\",\"time\":1513123200000,\"open\":0.27601,\"high\":0.29897,\"low\":0.27,\"close\":0.298,\"volume\":3115674.8552143956,\"close_time\":1513130393652,\"vwap\":0.2941547874895493,\"ema1\":0.22049612707181548,\"sma1\":0.20430552777777777,\"sma2\":0.20283875000000007,\"rsi_avg_gain\":0.006395288339139949,\"rsi_avg_loss\":0.0005907224320691066,\"rsi\":92},{\"period_id\":\"120m210155\",\"size\":\"120m\",\"time\":1513116000000,\"open\":0.272,\"high\":0.32956,\"low\":0.272,\"close\":0.27601,\"volume\":15006128.73051956,\"close_time\":1513123194998,\"vwap\":0.29445096601948473,\"ema1\":0.2151510323871131,\"sma1\":0.2032051574074074,\"sma2\":0.20133858333333338,\"rsi_avg_gain\":0.005195695134458405,\"rsi_avg_loss\":0.0006361626191513457,\"rsi\":89},{\"period_id\":\"120m210154\",\"size\":\"120m\",\"time\":1513108800000,\"open\":0.22885,\"high\":0.271965,\"low\":0.2287,\"close\":0.271965,\"volume\":13060193.335544836,\"close_time\":1513115999358,\"vwap\":0.25182555964988623,\"ema1\":0.210953862206914,\"sma1\":0.20263140740740743,\"sma2\":0.19982250000000004,\"rsi_avg_gain\":0.005284210144801362,\"rsi_avg_loss\":0.0006850982052399108,\"rsi\":89},{\"period_id\":\"120m210153\",\"size\":\"120m\",\"time\":1513101600000,\"open\":0.226,\"high\":0.22885,\"low\":0.222,\"close\":0.22885,\"volume\":2796097.9907069877,\"close_time\":1513108799425,\"vwap\":0.22496645515021643,\"ema1\":0.20674619753152876,\"sma1\":0.20245687037037038,\"sma2\":0.19904166666666667,\"rsi_avg_gain\":0.0023741493867091576,\"rsi_avg_loss\":0.0007377980671814424,\"rsi\":76},{\"period_id\":\"120m210152\",\"size\":\"120m\",\"time\":1513094400000,\"open\":0.21948,\"high\":0.228,\"low\":0.2161,\"close\":0.22503,\"volume\":6439607.943355674,\"close_time\":1513101587721,\"vwap\":0.2240628657043294,\"ema1\":0.20522179736128937,\"sma1\":0.2023068703703704,\"sma2\":0.19840783333333334,\"rsi_avg_gain\":0.002262930108763709,\"rsi_avg_loss\":0.0007945517646569379,\"rsi\":74},{\"period_id\":\"120m210151\",\"size\":\"120m\",\"time\":1513087200000,\"open\":0.2171,\"high\":0.2199,\"low\":0.21,\"close\":0.21989,\"volume\":2382252.81933436,\"close_time\":1513094394487,\"vwap\":0.21189531766611486,\"ema1\":0.20385571442068864,\"sma1\":0.20224298148148154,\"sma2\":0.19788466666666665,\"rsi_avg_gain\":0.002041617040207071,\"rsi_avg_loss\":0.0008556711311690101,\"rsi\":70},{\"period_id\":\"120m210150\",\"size\":\"120m\",\"time\":1513080000000,\"open\":0.2199,\"high\":0.22,\"low\":0.21203,\"close\":0.2171,\"volume\":2916612.944391042,\"close_time\":1513087188989,\"vwap\":0.211197898472819,\"ema1\":0.20274990162211545,\"sma1\":0.20214483333333336,\"sma2\":0.19739133333333334,\"rsi_avg_gain\":0.0019840491202229985,\"rsi_avg_loss\":0.0009214919874127801,\"rsi\":68},{\"period_id\":\"120m210149\",\"size\":\"120m\",\"time\":1513072800000,\"open\":0.21318,\"high\":0.2199,\"low\":0.21048,\"close\":0.2199,\"volume\":2803692.7908667373,\"close_time\":1513079996977,\"vwap\":0.209474345729318,\"ema1\":0.20176023966501996,\"sma1\":0.20203464814814817,\"sma2\":0.19681183333333332,\"rsi_avg_gain\":0.0021366682833170755,\"rsi_avg_loss\":0.0007769913710599151,\"rsi\":73},{\"period_id\":\"120m210148\",\"size\":\"120m\",\"time\":1513065600000,\"open\":0.20682,\"high\":0.2147,\"low\":0.20681,\"close\":0.2139,\"volume\":2409213.2365118363,\"close_time\":1513072781584,\"vwap\":0.20713305581821423,\"ema1\":0.2005092217108834,\"sma1\":0.20197261111111112,\"sma2\":0.19634699999999997,\"rsi_avg_gain\":0.0018394889204953115,\"rsi_avg_loss\":0.000836759938064524,\"rsi\":69},{\"period_id\":\"120m210147\",\"size\":\"120m\",\"time\":1513058400000,\"open\":0.209,\"high\":0.2099,\"low\":0.205,\"close\":0.20682,\"volume\":761639.33327307,\"close_time\":1513065594627,\"vwap\":0.20532077565785817,\"ema1\":0.19958571975990982,\"sma1\":0.201949,\"sma2\":0.1961045,\"rsi_avg_gain\":0.0014363726836103352,\"rsi_avg_loss\":0.0009011260871464106,\"rsi\":61},{\"period_id\":\"120m210146\",\"size\":\"120m\",\"time\":1513051200000,\"open\":0.2013,\"high\":0.21124,\"low\":0.19611,\"close\":0.20898,\"volume\":2402623.3937815027,\"close_time\":1513058363795,\"vwap\":0.20513616358622094,\"ema1\":0.19908680388128291,\"sma1\":0.20189224074074075,\"sma2\":0.19572866666666663,\"rsi_avg_gain\":0.0015468628900418995,\"rsi_avg_loss\":0.0008042896323115195,\"rsi\":66},{\"period_id\":\"120m210145\",\"size\":\"120m\",\"time\":1513044000000,\"open\":0.20056,\"high\":0.2015,\"low\":0.19804,\"close\":0.20129,\"volume\":182878.24229903996,\"close_time\":1513051003700,\"vwap\":0.201988629455344,\"ema1\":0.19840451449378518,\"sma1\":0.20193853703703699,\"sma2\":0.19548216666666668,\"rsi_avg_gain\":0.001074313881583584,\"rsi_avg_loss\":0.0008661580655662517,\"rsi\":55},{\"period_id\":\"120m210144\",\"size\":\"120m\",\"time\":1513036800000,\"open\":0.2018,\"high\":0.203,\"low\":0.1961,\"close\":0.19999,\"volume\":1030371.8747069496,\"close_time\":1513043937932,\"vwap\":0.20202625963629978,\"ema1\":0.19820551549335658,\"sma1\":0.2019912222222222,\"sma2\":0.19529933333333332,\"rsi_avg_gain\":0.0010569534109361677,\"rsi_avg_loss\":0.0009327856090713479,\"rsi\":53},{\"period_id\":\"120m210143\",\"size\":\"120m\",\"time\":1513029600000,\"open\":0.20101,\"high\":0.202,\"low\":0.2,\"close\":0.2018,\"volume\":1521322.558584841,\"close_time\":1513036796088,\"vwap\":0.20241260073572054,\"ema1\":0.1980824475963467,\"sma1\":0.20204677777777771,\"sma2\":0.19518599999999997,\"rsi_avg_gain\":0.0011382575194697191,\"rsi_avg_loss\":0.0008653075789999126,\"rsi\":57},{\"period_id\":\"120m210142\",\"size\":\"120m\",\"time\":1513022400000,\"open\":0.202,\"high\":0.202,\"low\":0.2,\"close\":0.20119,\"volume\":978930.4729250503,\"close_time\":1513029582354,\"vwap\":0.20290415198977646,\"ema1\":0.1978260646719568,\"sma1\":0.20209788888888885,\"sma2\":0.19512699999999997,\"rsi_avg_gain\":0.0011788927132750822,\"rsi_avg_loss\":0.0009318697004614445,\"rsi\":56},{\"period_id\":\"120m210141\",\"size\":\"120m\",\"time\":1513015200000,\"open\":0.203,\"high\":0.20773,\"low\":0.20001,\"close\":0.202,\"volume\":1492537.8041972315,\"close_time\":1513022380076,\"vwap\":0.2032839790438188,\"ema1\":0.19759406913209174,\"sma1\":0.20210038888888884,\"sma2\":0.1950686666666666,\"rsi_avg_gain\":0.0012695767681423962,\"rsi_avg_loss\":0.0009412442928046321,\"rsi\":57},{\"period_id\":\"120m210140\",\"size\":\"120m\",\"time\":1513008000000,\"open\":0.20474,\"high\":0.206,\"low\":0.2021,\"close\":0.204,\"volume\":1342877.567555539,\"close_time\":1513015199565,\"vwap\":0.2040463974846209,\"ema1\":0.19729021183085668,\"sma1\":0.20212631481481477,\"sma2\":0.19500033333333328,\"rsi_avg_gain\":0.001367236519537965,\"rsi_avg_loss\":0.0008598015460972981,\"rsi\":61},{\"period_id\":\"120m210139\",\"size\":\"120m\",\"time\":1513000800000,\"open\":0.20238,\"high\":0.2049,\"low\":0.20083,\"close\":0.20486,\"volume\":1091793.7951348608,\"close_time\":1513007991071,\"vwap\":0.19772607227143588,\"ema1\":0.19682746781919164,\"sma1\":0.20216798148148143,\"sma2\":0.1948854999999999,\"rsi_avg_gain\":0.0014724085595024237,\"rsi_avg_loss\":0.0008597862804124749,\"rsi\":63},{\"period_id\":\"120m210138\",\"size\":\"120m\",\"time\":1512993600000,\"open\":0.20099,\"high\":0.205,\"low\":0.2003984,\"close\":0.20214,\"volume\":2245705.2988893474,\"close_time\":1513000786065,\"vwap\":0.19721514454190733,\"ema1\":0.19627350008258415,\"sma1\":0.20222353703703697,\"sma2\":0.1948279999999999,\"rsi_avg_gain\":0.0013764399871564563,\"rsi_avg_loss\":0.0009259236865980498,\"rsi\":60},{\"period_id\":\"120m210137\",\"size\":\"120m\",\"time\":1512986400000,\"open\":0.20054,\"high\":0.2025,\"low\":0.1996,\"close\":0.201,\"volume\":1180345.4121488596,\"close_time\":1512993538146,\"vwap\":0.19546122391522214,\"ema1\":0.19586891388138306,\"sma1\":0.20230224074074066,\"sma2\":0.1947621666666666,\"rsi_avg_gain\":0.0013946276784761857,\"rsi_avg_loss\":0.0009971485855671306,\"rsi\":58},{\"period_id\":\"120m210136\",\"size\":\"120m\",\"time\":1512979200000,\"open\":0.19841,\"high\":0.202,\"low\":0.19696,\"close\":0.2012,\"volume\":1455140.9476323111,\"close_time\":1512986398978,\"vwap\":0.194898145832119,\"ema1\":0.19551504587320256,\"sma1\":0.20237622222222212,\"sma2\":0.1947051666666666,\"rsi_avg_gain\":0.0015019067306666614,\"rsi_avg_loss\":0.0010584677075338347,\"rsi\":59},{\"period_id\":\"120m210135\",\"size\":\"120m\",\"time\":1512972000000,\"open\":0.1955,\"high\":0.199,\"low\":0.19447,\"close\":0.19841,\"volume\":600052.8410154001,\"close_time\":1512978995397,\"vwap\":0.19391074396941518,\"ema1\":0.19512298007135448,\"sma1\":0.20247418518518506,\"sma2\":0.1947016666666666,\"rsi_avg_gain\":0.0014028226330256362,\"rsi_avg_loss\":0.0011398883004210528,\"rsi\":55},{\"period_id\":\"120m210134\",\"size\":\"120m\",\"time\":1512964800000,\"open\":0.19194,\"high\":0.19676,\"low\":0.19102,\"close\":0.19601,\"volume\":539611.00519656,\"close_time\":1512971904794,\"vwap\":0.19382113476009916,\"ema1\":0.1948962890417927,\"sma1\":0.2025927037037036,\"sma2\":0.1948064999999999,\"rsi_avg_gain\":0.001326116681719915,\"rsi_avg_loss\":0.0012275720158380567,\"rsi\":52},{\"period_id\":\"120m210133\",\"size\":\"120m\",\"time\":1512957600000,\"open\":0.1897,\"high\":0.19214,\"low\":0.1895,\"close\":0.19205,\"volume\":441306.56720423984,\"close_time\":1512964362686,\"vwap\":0.1937942300102614,\"ema1\":0.19481948138950256,\"sma1\":0.20278214814814804,\"sma2\":0.19496699999999995,\"rsi_avg_gain\":0.0011235102726214474,\"rsi_avg_loss\":0.0013220006324409842,\"rsi\":46},{\"period_id\":\"120m210132\",\"size\":\"120m\",\"time\":1512950400000,\"open\":0.18952,\"high\":0.19378,\"low\":0.18952,\"close\":0.18971,\"volume\":431192.4742363398,\"close_time\":1512957565944,\"vwap\":0.1938322726291474,\"ema1\":0.19501048010601998,\"sma1\":0.2029786296296295,\"sma2\":0.19519916666666662,\"rsi_avg_gain\":0.0010299341397461733,\"rsi_avg_loss\":0.0014236929887825984,\"rsi\":42},{\"period_id\":\"120m210131\",\"size\":\"120m\",\"time\":1512943200000,\"open\":0.19185,\"high\":0.19429,\"low\":0.18951,\"close\":0.18952,\"volume\":784356.8331573796,\"close_time\":1512950356364,\"vwap\":0.19391395454035548,\"ema1\":0.1953760304581593,\"sma1\":0.20314594444444437,\"sma2\":0.1954546666666666,\"rsi_avg_gain\":0.001094544458188187,\"rsi_avg_loss\":0.0015332078340735676,\"rsi\":42},{\"period_id\":\"120m210130\",\"size\":\"120m\",\"time\":1512936000000,\"open\":0.1948,\"high\":0.1949,\"low\":0.19,\"close\":0.19004,\"volume\":1233056.1801976203,\"close_time\":1512943196487,\"vwap\":0.19421671002829435,\"ema1\":0.19577989462768752,\"sma1\":0.20328575925925915,\"sma2\":0.19568766666666662,\"rsi_avg_gain\":0.0011787401857411247,\"rsi_avg_loss\":0.0016111468982330734,\"rsi\":42},{\"period_id\":\"120m210129\",\"size\":\"120m\",\"time\":1512928800000,\"open\":0.1935,\"high\":0.19676,\"low\":0.19301,\"close\":0.19439,\"volume\":387426.0634739798,\"close_time\":1512935995196,\"vwap\":0.19477788715933184,\"ema1\":0.196175749429597,\"sma1\":0.20342687037037027,\"sma2\":0.19583466666666666,\"rsi_avg_gain\":0.0012694125077212111,\"rsi_avg_loss\":0.0014004658904048465,\"rsi\":48},{\"period_id\":\"120m210128\",\"size\":\"120m\",\"time\":1512921600000,\"open\":0.1925,\"high\":0.19867,\"low\":0.192,\"close\":0.1935,\"volume\":746355.7882153098,\"close_time\":1512928784644,\"vwap\":0.1947961039299307,\"ema1\":0.19629890456267265,\"sma1\":0.2035315925925925,\"sma2\":0.19602466666666665,\"rsi_avg_gain\":0.001298598085238227,\"rsi_avg_loss\":0.0015081940358206037,\"rsi\":46},{\"period_id\":\"120m210127\",\"size\":\"120m\",\"time\":1512914400000,\"open\":0.19889,\"high\":0.2,\"low\":0.192,\"close\":0.1925,\"volume\":1304227.7168578205,\"close_time\":1512921590443,\"vwap\":0.19500431372348712,\"ema1\":0.19649193246354663,\"sma1\":0.20368807407407397,\"sma2\":0.19624249999999996,\"rsi_avg_gain\":0.0013215671687180906,\"rsi_avg_loss\":0.0016242089616529576,\"rsi\":45},{\"period_id\":\"120m210126\",\"size\":\"120m\",\"time\":1512907200000,\"open\":0.19353,\"high\":0.19949,\"low\":0.1917,\"close\":0.19868,\"volume\":650525.0708087999,\"close_time\":1512914393147,\"vwap\":0.19486913227245076,\"ema1\":0.19676723815068778,\"sma1\":0.203757611111111,\"sma2\":0.19633949999999994,\"rsi_avg_gain\":0.0014232261816964052,\"rsi_avg_loss\":0.0012737634971647243,\"rsi\":53},{\"period_id\":\"120m210125\",\"size\":\"120m\",\"time\":1512900000000,\"open\":0.19333,\"high\":0.19902,\"low\":0.19,\"close\":0.19385,\"volume\":978565.5069178501,\"close_time\":1512907196740,\"vwap\":0.19463927761725924,\"ema1\":0.19663532354039037,\"sma1\":0.20378575925925915,\"sma2\":0.19652599999999995,\"rsi_avg_gain\":0.0011611666572115132,\"rsi_avg_loss\":0.0013717453046389338,\"rsi\":46},{\"period_id\":\"120m210124\",\"size\":\"120m\",\"time\":1512892800000,\"open\":0.19131,\"high\":0.194,\"low\":0.19,\"close\":0.19341,\"volume\":531661.3797847299,\"close_time\":1512899982936,\"vwap\":0.19565932222918647,\"ema1\":0.19682741481903798,\"sma1\":0.20383964814814806,\"sma2\":0.19673416666666668,\"rsi_avg_gain\":0.0012166410154585531,\"rsi_avg_loss\":0.001477264174226544,\"rsi\":45},{\"period_id\":\"120m210122\",\"size\":\"120m\",\"time\":1512878400000,\"open\":0.191,\"high\":0.19313,\"low\":0.1895,\"close\":0.19301,\"volume\":391477.15581255,\"close_time\":1512882237255,\"vwap\":0.19630344978308276,\"ema1\":0.19706309859966128,\"sma1\":0.2039214999999999,\"sma2\":0.19693149999999998,\"rsi_avg_gain\":0.00127945955510921,\"rsi_avg_loss\":0.0015908998799362784,\"rsi\":45},{\"period_id\":\"120m210121\",\"size\":\"120m\",\"time\":1512871200000,\"open\":0.195,\"high\":0.19843,\"low\":0.191,\"close\":0.191,\"volume\":822354.6339335999,\"close_time\":1512878389037,\"vwap\":0.19687331658576232,\"ema1\":0.19734262264101723,\"sma1\":0.20394529629629618,\"sma2\":0.19716733333333333,\"rsi_avg_gain\":0.0012232641362714583,\"rsi_avg_loss\":0.0017132767937775306,\"rsi\":42},{\"period_id\":\"120m210120\",\"size\":\"120m\",\"time\":1512864000000,\"open\":0.19926,\"high\":0.19928,\"low\":0.195,\"close\":0.195,\"volume\":575411.43770943,\"close_time\":1512871187661,\"vwap\":0.1978685731234745,\"ema1\":0.19778004489212186,\"sma1\":0.20398992592592582,\"sma2\":0.1973611666666667,\"rsi_avg_gain\":0.001317361377523109,\"rsi_avg_loss\":0.0015373750086834941,\"rsi\":46},{\"period_id\":\"120m210119\",\"size\":\"120m\",\"time\":1512856800000,\"open\":0.2,\"high\":0.20254,\"low\":0.19733,\"close\":0.19929,\"volume\":680314.7565415404,\"close_time\":1512863991018,\"vwap\":0.19818476087437326,\"ema1\":0.1979717721260613,\"sma1\":0.20402974074074068,\"sma2\":0.1975107666666667,\"rsi_avg_gain\":0.0014186968681018097,\"rsi_avg_loss\":0.0013256346247360717,\"rsi\":52},{\"period_id\":\"120m210118\",\"size\":\"120m\",\"time\":1512849600000,\"open\":0.19851,\"high\":0.2,\"low\":0.1953,\"close\":0.2,\"volume\":352961.11425362,\"close_time\":1512856793108,\"vwap\":0.19742392619109222,\"ema1\":0.19788085985889312,\"sma1\":0.2040714074074073,\"sma2\":0.19762693333333337,\"rsi_avg_gain\":0.0015278273964173337,\"rsi_avg_loss\":0.001372991134331153,\"rsi\":53},{\"period_id\":\"120m210117\",\"size\":\"120m\",\"time\":1512842400000,\"open\":0.19541,\"high\":0.19867,\"low\":0.19486,\"close\":0.19799,\"volume\":926232.5305575604,\"close_time\":1512849579268,\"vwap\":0.19704789052690286,\"ema1\":0.19773471226295472,\"sma1\":0.20412631481481475,\"sma2\":0.19777710000000004,\"rsi_avg_gain\":0.001490737196141743,\"rsi_avg_loss\":0.001478605836972011,\"rsi\":50},{\"period_id\":\"120m210116\",\"size\":\"120m\",\"time\":1512835200000,\"open\":0.2025,\"high\":0.2027,\"low\":0.19541,\"close\":0.19541,\"volume\":641413.0257922799,\"close_time\":1512842398360,\"vwap\":0.20018331330607564,\"ema1\":0.19771710621212402,\"sma1\":0.20409103703703693,\"sma2\":0.1979792666666667,\"rsi_avg_gain\":0.001406947749691108,\"rsi_avg_loss\":0.0015923447475083194,\"rsi\":47},{\"period_id\":\"120m210115\",\"size\":\"120m\",\"time\":1512828000000,\"open\":0.2029,\"high\":0.203,\"low\":0.19926,\"close\":0.2025,\"volume\":759955.0663505401,\"close_time\":1512835181045,\"vwap\":0.20021006067521402,\"ema1\":0.19787621698537394,\"sma1\":0.20402622222222214,\"sma2\":0.19804026666666671,\"rsi_avg_gain\":0.001515174499667347,\"rsi_avg_loss\":0.001169448189624343,\"rsi\":56},{\"period_id\":\"120m210114\",\"size\":\"120m\",\"time\":1512820800000,\"open\":0.19915,\"high\":0.203,\"low\":0.1964,\"close\":0.20288,\"volume\":1060196.08788046,\"close_time\":1512827997733,\"vwap\":0.200175240379402,\"ema1\":0.19755733539815834,\"sma1\":0.2040447407407406,\"sma2\":0.19809226666666674,\"rsi_avg_gain\":0.0016317263842571428,\"rsi_avg_loss\":0.0012301749734416009,\"rsi\":57},{\"period_id\":\"120m210113\",\"size\":\"120m\",\"time\":1512813600000,\"open\":0.19899,\"high\":0.2,\"low\":0.196,\"close\":0.199,\"volume\":1697599.1494401302,\"close_time\":1512820796071,\"vwap\":0.20013914566135865,\"ema1\":0.19719025508078994,\"sma1\":0.20412427777777767,\"sma2\":0.1982202666666667,\"rsi_avg_gain\":0.001458782259969231,\"rsi_avg_loss\":0.0013248038175524934,\"rsi\":52},{\"period_id\":\"120m210112\",\"size\":\"120m\",\"time\":1512806400000,\"open\":0.2015,\"high\":0.20181,\"low\":0.196,\"close\":0.198,\"volume\":1049080.849649,\"close_time\":1512813598514,\"vwap\":0.2001818488773981,\"ema1\":0.19706544508636165,\"sma1\":0.20420474074074063,\"sma2\":0.1983702666666667,\"rsi_avg_gain\":0.0014940732030437874,\"rsi_avg_loss\":0.0014267118035180698,\"rsi\":51},{\"period_id\":\"120m210111\",\"size\":\"120m\",\"time\":1512799200000,\"open\":0.201,\"high\":0.203,\"low\":0.19911,\"close\":0.19931,\"volume\":611834.19321072,\"close_time\":1512806227310,\"vwap\":0.20022501241842242,\"ema1\":0.1970009930233521,\"sma1\":0.20425103703703693,\"sma2\":0.1985104333333334,\"rsi_avg_gain\":0.0016090019109702325,\"rsi_avg_loss\":0.001435689634557923,\"rsi\":53},{\"period_id\":\"120m210110\",\"size\":\"120m\",\"time\":1512792000000,\"open\":0.20095,\"high\":0.20189,\"low\":0.19933,\"close\":0.2018,\"volume\":327272.42923343997,\"close_time\":1512799199401,\"vwap\":0.20021323811629957,\"ema1\":0.19684175116289362,\"sma1\":0.20433437037037028,\"sma2\":0.19856810000000003,\"rsi_avg_gain\":0.0017327712887371734,\"rsi_avg_loss\":0.001354588837216223,\"rsi\":56},{\"period_id\":\"120m210109\",\"size\":\"120m\",\"time\":1512784800000,\"open\":0.199,\"high\":0.20181,\"low\":0.199,\"close\":0.20148,\"volume\":97245.56367083998,\"close_time\":1512791938779,\"vwap\":0.2002113047026365,\"ema1\":0.1964998029672311,\"sma1\":0.20441020370370364,\"sma2\":0.19864193333333333,\"rsi_avg_gain\":0.0018414460032554164,\"rsi_avg_loss\":0.0014587879785405479,\"rsi\":56},{\"period_id\":\"120m210108\",\"size\":\"120m\",\"time\":1512777600000,\"open\":0.2,\"high\":0.20181,\"low\":0.19801,\"close\":0.19981,\"volume\":403268.47447363014,\"close_time\":1512784528415,\"vwap\":0.20021088390255815,\"ema1\":0.1961563411029022,\"sma1\":0.2044859444444444,\"sma2\":0.19872843333333334,\"rsi_avg_gain\":0.0018546341573519864,\"rsi_avg_loss\":0.0015710024384282821,\"rsi\":54},{\"period_id\":\"120m210107\",\"size\":\"120m\",\"time\":1512770400000,\"open\":0.19995,\"high\":0.20194,\"low\":0.19811,\"close\":0.2,\"volume\":1030570.62235018,\"close_time\":1512777589000,\"vwap\":0.20021480240441816,\"ema1\":0.19590436462724028,\"sma1\":0.20456057407407402,\"sma2\":0.19878193333333335,\"rsi_avg_gain\":0.001997298323302139,\"rsi_avg_loss\":0.001677233395230456,\"rsi\":54},{\"period_id\":\"120m210106\",\"size\":\"120m\",\"time\":1512763200000,\"open\":0.20056,\"high\":0.2029,\"low\":0.19882,\"close\":0.20195,\"volume\":687992.28091057,\"close_time\":1512770355398,\"vwap\":0.2002247592426666,\"ema1\":0.1956219070153258,\"sma1\":0.2046263148148148,\"sma2\":0.19878443333333337,\"rsi_avg_gain\":0.002150936655863842,\"rsi_avg_loss\":0.0016562513487097233,\"rsi\":56},{\"period_id\":\"120m210105\",\"size\":\"120m\",\"time\":1512756000000,\"open\":0.2,\"high\":0.204,\"low\":0.199,\"close\":0.20292,\"volume\":1842953.0237013297,\"close_time\":1512763170809,\"vwap\":0.2002167827580578,\"ema1\":0.19518548680948622,\"sma1\":0.20477048148148147,\"sma2\":0.1988857666666667,\"rsi_avg_gain\":0.002316393321699522,\"rsi_avg_loss\":0.0017090399139950867,\"rsi\":58},{\"period_id\":\"120m210104\",\"size\":\"120m\",\"time\":1512748800000,\"open\":0.196,\"high\":0.20086,\"low\":0.196,\"close\":0.2,\"volume\":1102251.6171724405,\"close_time\":1512755976994,\"vwap\":0.20005448129824868,\"ema1\":0.19465207210669216,\"sma1\":0.20497548148148148,\"sma2\":0.19904876666666674,\"rsi_avg_gain\":0.0022699620387533334,\"rsi_avg_loss\":0.0018405045227639395,\"rsi\":55},{\"period_id\":\"120m210103\",\"size\":\"120m\",\"time\":1512741600000,\"open\":0.20001,\"high\":0.20182,\"low\":0.19001,\"close\":0.196,\"volume\":1809689.6471748506,\"close_time\":1512748783413,\"vwap\":0.20008768808041646,\"ema1\":0.1942832494933606,\"sma1\":0.2052364074074074,\"sma2\":0.1992737666666667,\"rsi_avg_gain\":0.0021368821955805124,\"rsi_avg_loss\":0.001982081793745781,\"rsi\":52},{\"period_id\":\"120m210102\",\"size\":\"120m\",\"time\":1512734400000,\"open\":0.19362,\"high\":0.20199,\"low\":0.193,\"close\":0.20182,\"volume\":1979923.9914177093,\"close_time\":1512741577584,\"vwap\":0.20043679204232664,\"ema1\":0.1941648529066958,\"sma1\":0.20548446296296297,\"sma2\":0.19942676666666675,\"rsi_avg_gain\":0.0023012577490867056,\"rsi_avg_loss\":0.0016868573163416108,\"rsi\":58},{\"period_id\":\"120m210101\",\"size\":\"120m\",\"time\":1512727200000,\"open\":0.1931,\"high\":0.19999,\"low\":0.19,\"close\":0.194,\"volume\":1792191.8218561397,\"close_time\":1512734388888,\"vwap\":0.20060714866460727,\"ema1\":0.19363691172784725,\"sma1\":0.2057149259259259,\"sma2\":0.1996746,\"rsi_avg_gain\":0.0018767391144010677,\"rsi_avg_loss\":0.0018166155714448118,\"rsi\":51},{\"period_id\":\"120m210100\",\"size\":\"120m\",\"time\":1512720000000,\"open\":0.19009,\"high\":0.2,\"low\":0.18955,\"close\":0.19301,\"volume\":1800915.4518014311,\"close_time\":1512727186604,\"vwap\":0.20119455815093515,\"ema1\":0.19361187115735395,\"sma1\":0.20594529629629627,\"sma2\":0.1999061,\"rsi_avg_gain\":0.0019449498155088409,\"rsi_avg_loss\":0.0019563552307867204,\"rsi\":50},{\"period_id\":\"120m210099\",\"size\":\"120m\",\"time\":1512712800000,\"open\":0.191,\"high\":0.19649,\"low\":0.18501,\"close\":0.19128,\"volume\":1533508.5199854106,\"close_time\":1512719994835,\"vwap\":0.20251279922766646,\"ema1\":0.19365337951303355,\"sma1\":0.2061701111111111,\"sma2\":0.20016993333333336,\"rsi_avg_gain\":0.00196148441670183,\"rsi_avg_loss\":0.0021068440946933912,\"rsi\":48},{\"period_id\":\"120m210098\",\"size\":\"120m\",\"time\":1512705600000,\"open\":0.203,\"high\":0.20687,\"low\":0.19021,\"close\":0.19131,\"volume\":824094.35925791,\"close_time\":1512712790789,\"vwap\":0.20466800866397225,\"ema1\":0.19381706085876,\"sma1\":0.20631177777777776,\"sma2\":0.20040060000000004,\"rsi_avg_gain\":0.002112367833371202,\"rsi_avg_loss\":0.002266601332746729,\"rsi\":48},{\"period_id\":\"120m210097\",\"size\":\"120m\",\"time\":1512698400000,\"open\":0.20457,\"high\":0.208,\"low\":0.19155,\"close\":0.205,\"volume\":1802558.6234344696,\"close_time\":1512705589882,\"vwap\":0.20513935939645722,\"ema1\":0.19398996160763998,\"sma1\":0.20649585185185182,\"sma2\":0.20039776666666667,\"rsi_avg_gain\":0.0022748576667074483,\"rsi_avg_loss\":0.0013878783583426326,\"rsi\":62},{\"period_id\":\"120m210096\",\"size\":\"120m\",\"time\":1512691200000,\"open\":0.18264,\"high\":0.21,\"low\":0.18,\"close\":0.20457,\"volume\":5069064.234255623,\"close_time\":1512698364848,\"vwap\":0.2052292292376463,\"ema1\":0.19323064861506342,\"sma1\":0.2067273333333333,\"sma2\":0.20039026666666665,\"rsi_avg_gain\":0.0024167697949157145,\"rsi_avg_loss\":0.0014946382320612968,\"rsi\":62},{\"period_id\":\"120m210095\",\"size\":\"120m\",\"time\":1512684000000,\"open\":0.18631,\"high\":0.18699,\"low\":0.18,\"close\":0.182,\"volume\":2887392.7136900085,\"close_time\":1512691099048,\"vwap\":0.18559082989323514,\"ema1\":0.19244862438161953,\"sma1\":0.20717187037037035,\"sma2\":0.20079026666666666,\"rsi_avg_gain\":0.0008665213176015379,\"rsi_avg_loss\":0.0016096104037583196,\"rsi\":35},{\"period_id\":\"120m210094\",\"size\":\"120m\",\"time\":1512676800000,\"open\":0.18049,\"high\":0.186,\"low\":0.18007,\"close\":0.186,\"volume\":1397581.4726467493,\"close_time\":1512683999964,\"vwap\":0.18675373597039205,\"ema1\":0.1931692191665588,\"sma1\":0.2075561296296296,\"sma2\":0.20114843333333327,\"rsi_avg_gain\":0.000933176803570887,\"rsi_avg_loss\":0.0014257342809704976,\"rsi\":40},{\"period_id\":\"120m210093\",\"size\":\"120m\",\"time\":1512669600000,\"open\":0.182,\"high\":0.18889,\"low\":0.18004,\"close\":0.181,\"volume\":1519254.1145062689,\"close_time\":1512676772537,\"vwap\":0.18691275563780835,\"ema1\":0.19366364807459735,\"sma1\":0.2078807592592592,\"sma2\":0.20157693333333332,\"rsi_avg_gain\":0.0006203442499994165,\"rsi_avg_loss\":0.001535406148737459,\"rsi\":29},{\"period_id\":\"120m210092\",\"size\":\"120m\",\"time\":1512662400000,\"open\":0.18434,\"high\":0.18959,\"low\":0.18,\"close\":0.182,\"volume\":1880239.514088659,\"close_time\":1512669591339,\"vwap\":0.18729920470851844,\"ema1\":0.19453700311422475,\"sma1\":0.208233537037037,\"sma2\":0.20199393333333326,\"rsi_avg_gain\":0.0006680630384609101,\"rsi_avg_loss\":0.0015765912371018787,\"rsi\":30},{\"period_id\":\"120m210091\",\"size\":\"120m\",\"time\":1512655200000,\"open\":0.1885,\"high\":0.18995,\"low\":0.18301,\"close\":0.187,\"volume\":1319921.42306792,\"close_time\":1512662369202,\"vwap\":0.18816492813631663,\"ema1\":0.19540162401865405,\"sma1\":0.20853307407407404,\"sma2\":0.20230944066666665,\"rsi_avg_gain\":0.0007194525029579033,\"rsi_avg_loss\":0.0013132521014943305,\"rsi\":35},{\"period_id\":\"120m210090\",\"size\":\"120m\",\"time\":1512648000000,\"open\":0.1875,\"high\":0.19,\"low\":0.1875,\"close\":0.1885,\"volume\":1411372.0180265396,\"close_time\":1512655194555,\"vwap\":0.1882961358781808,\"ema1\":0.19598104636476812,\"sma1\":0.2088013148148148,\"sma2\":0.2026461073333333,\"rsi_avg_gain\":0.0007747950031854342,\"rsi_avg_loss\":0.0012988868785323558,\"rsi\":37},{\"period_id\":\"120m210089\",\"size\":\"120m\",\"time\":1512640800000,\"open\":0.18521,\"high\":0.18979,\"low\":0.181,\"close\":0.1875,\"volume\":2092077.3675429292,\"close_time\":1512647973104,\"vwap\":0.18820210319771838,\"ema1\":0.1964969805968211,\"sma1\":0.20908057407407407,\"sma2\":0.20298944066666663,\"rsi_avg_gain\":0.000757471541892006,\"rsi_avg_loss\":0.0013988012538040755,\"rsi\":35},{\"period_id\":\"120m210088\",\"size\":\"120m\",\"time\":1512633600000,\"open\":0.1872,\"high\":0.18979,\"low\":0.18513,\"close\":0.18513,\"volume\":1129966.4392239994,\"close_time\":1512640768505,\"vwap\":0.18932627535994895,\"ema1\":0.19711746201729152,\"sma1\":0.20934177777777777,\"sma2\":0.20340394066666662,\"rsi_avg_gain\":0.0006334308912683133,\"rsi_avg_loss\":0.0015064013502505429,\"rsi\":30},{\"period_id\":\"120m210087\",\"size\":\"120m\",\"time\":1512626400000,\"open\":0.19225,\"high\":0.19231,\"low\":0.1852,\"close\":0.18601,\"volume\":1170682.04228123,\"close_time\":1512633583210,\"vwap\":0.18960386183557024,\"ema1\":0.19794418353572543,\"sma1\":0.20957705555555553,\"sma2\":0.20378977399999998,\"rsi_avg_gain\":0.0006821563444427989,\"rsi_avg_loss\":0.001554586069500583,\"rsi\":30},{\"period_id\":\"120m210086\",\"size\":\"120m\",\"time\":1512619200000,\"open\":0.1855,\"high\":0.19288,\"low\":0.18373,\"close\":0.19227,\"volume\":312959.47167122003,\"close_time\":1512626260601,\"vwap\":0.1898171319391563,\"ema1\":0.1987672306761203,\"sma1\":0.20980964814814815,\"sma2\":0.2040286073333333,\"rsi_avg_gain\":0.0007346299093999373,\"rsi_avg_loss\":0.0011926311517698597,\"rsi\":38},{\"period_id\":\"120m210085\",\"size\":\"120m\",\"time\":1512612000000,\"open\":0.18694,\"high\":0.19286,\"low\":0.18393,\"close\":0.18643,\"volume\":1313166.93189536,\"close_time\":1512619169443,\"vwap\":0.18982716116558893,\"ema1\":0.19921531555033548,\"sma1\":0.21004325925925926,\"sma2\":0.20440660733333332,\"rsi_avg_gain\":0.0003419091331999337,\"rsi_avg_loss\":0.0012843720095983104,\"rsi\":21},{\"period_id\":\"120m210084\",\"size\":\"120m\",\"time\":1512604800000,\"open\":0.18902,\"high\":0.1927,\"low\":0.1865,\"close\":0.1865,\"volume\":1847827.2706492287,\"close_time\":1512611942664,\"vwap\":0.19049326248979287,\"ema1\":0.2000970614503586,\"sma1\":0.21020344444444447,\"sma2\":0.20478094066666663,\"rsi_avg_gain\":0.00036820983575377476,\"rsi_avg_loss\":0.0013777852411058738,\"rsi\":21},{\"period_id\":\"120m210083\",\"size\":\"120m\",\"time\":1512597600000,\"open\":0.19498,\"high\":0.196,\"low\":0.189,\"close\":0.18902,\"volume\":2480005.0900642066,\"close_time\":1512604794901,\"vwap\":0.19097254020197885,\"ema1\":0.2010347898262454,\"sma1\":0.21030066666666666,\"sma2\":0.2051734406666666,\"rsi_avg_gain\":0.00039653366927329593,\"rsi_avg_loss\":0.0012899225673447877,\"rsi\":24},{\"period_id\":\"120m210082\",\"size\":\"120m\",\"time\":1512590400000,\"open\":0.19679,\"high\":0.19775,\"low\":0.192,\"close\":0.195,\"volume\":1901877.715855151,\"close_time\":1512597582829,\"vwap\":0.19362408201022976,\"ema1\":0.20186339602115888,\"sma1\":0.21038816666666663,\"sma2\":0.20546277399999993,\"rsi_avg_gain\":0.00042703625921739564,\"rsi_avg_loss\":0.0009291473802174625,\"rsi\":31},{\"period_id\":\"120m210081\",\"size\":\"120m\",\"time\":1512583200000,\"open\":0.1985,\"high\":0.20003,\"low\":0.19615,\"close\":0.19765,\"volume\":1159402.1994188598,\"close_time\":1512590389470,\"vwap\":0.1998089703893281,\"ema1\":0.20233673367779054,\"sma1\":0.2104573333333333,\"sma2\":0.20566194066666663,\"rsi_avg_gain\":0.0004598852022341184,\"rsi_avg_loss\":0.000796774101772653,\"rsi\":37},{\"period_id\":\"120m210080\",\"size\":\"120m\",\"time\":1512576000000,\"open\":0.1999,\"high\":0.20198,\"low\":0.1978,\"close\":0.1985,\"volume\":1149012.43157479,\"close_time\":1512583187057,\"vwap\":0.19991075299524258,\"ema1\":0.20265995669005196,\"sma1\":0.2104941851851852,\"sma2\":0.20582710733333334,\"rsi_avg_gain\":0.0004952609870213583,\"rsi_avg_loss\":0.0007926798019090096,\"rsi\":38},{\"period_id\":\"120m210079\",\"size\":\"120m\",\"time\":1512568800000,\"open\":0.197,\"high\":0.19997,\"low\":0.196,\"close\":0.1999,\"volume\":1754763.5733593802,\"close_time\":1512575983189,\"vwap\":0.19989386905103843,\"ema1\":0.20294685025488313,\"sma1\":0.21054724074074074,\"sma2\":0.205974774,\"rsi_avg_gain\":0.0005333579860230012,\"rsi_avg_loss\":0.0007459628635943192,\"rsi\":42},{\"period_id\":\"120m210078\",\"size\":\"120m\",\"time\":1512561600000,\"open\":0.19867,\"high\":0.19869,\"low\":0.196,\"close\":0.19797,\"volume\":1356577.2933801496,\"close_time\":1512568782682,\"vwap\":0.19999152702633965,\"ema1\":0.20315697785866818,\"sma1\":0.21060566666666666,\"sma2\":0.2061669406666667,\"rsi_avg_gain\":0.00042592398494784847,\"rsi_avg_loss\":0.0008033446223323438,\"rsi\":35},{\"period_id\":\"120m210077\",\"size\":\"120m\",\"time\":1512554400000,\"open\":0.19707,\"high\":0.2,\"low\":0.196,\"close\":0.19869,\"volume\":2110134.6971577206,\"close_time\":1512561542485,\"vwap\":0.20018653100805048,\"ema1\":0.20351470046961082,\"sma1\":0.21065168518518515,\"sma2\":0.206231774,\"rsi_avg_gain\":0.00045868736840537527,\"rsi_avg_loss\":0.0008097557471271396,\"rsi\":36},{\"period_id\":\"120m210076\",\"size\":\"120m\",\"time\":1512547200000,\"open\":0.19606,\"high\":0.20158,\"low\":0.1953,\"close\":0.19705,\"volume\":2170755.0190411303,\"close_time\":1512554398487,\"vwap\":0.20061608271359924,\"ema1\":0.20384743843303224,\"sma1\":0.21068798148148143,\"sma2\":0.20631527400000002,\"rsi_avg_gain\":0.0003678171659750193,\"rsi_avg_loss\":0.0008720446507523041,\"rsi\":30},{\"period_id\":\"120m210075\",\"size\":\"120m\",\"time\":1512540000000,\"open\":0.19901,\"high\":0.20293,\"low\":0.195,\"close\":0.19778,\"volume\":2231629.5649462496,\"close_time\":1512547191564,\"vwap\":0.2010825222980524,\"ema1\":0.20431622729048274,\"sma1\":0.21071270370370368,\"sma2\":0.2063039406666667,\"rsi_avg_gain\":0.0003961107941269439,\"rsi_avg_loss\":0.0008829711623486346,\"rsi\":31},{\"period_id\":\"120m210074\",\"size\":\"120m\",\"time\":1512532800000,\"open\":0.201,\"high\":0.20466,\"low\":0.1981,\"close\":0.1982,\"volume\":1667986.7979470093,\"close_time\":1512539956524,\"vwap\":0.20283286068163536,\"ema1\":0.2047670015863781,\"sma1\":0.2107149259259259,\"sma2\":0.20629227400000003,\"rsi_avg_gain\":0.0004265808552136319,\"rsi_avg_loss\":0.0009185843286831468,\"rsi\":32},{\"period_id\":\"120m210073\",\"size\":\"120m\",\"time\":1512525600000,\"open\":0.20164,\"high\":0.204,\"low\":0.2,\"close\":0.2023,\"volume\":1055209.2105613104,\"close_time\":1512532718975,\"vwap\":0.20330572953944556,\"ema1\":0.2052198982475076,\"sma1\":0.21071520370370364,\"sma2\":0.2062139406666667,\"rsi_avg_gain\":0.0004593947671531421,\"rsi_avg_loss\":0.0006738600462741566,\"rsi\":41},{\"period_id\":\"120m210072\",\"size\":\"120m\",\"time\":1512518400000,\"open\":0.20532,\"high\":0.20635,\"low\":0.20011,\"close\":0.20168,\"volume\":1645813.257506141,\"close_time\":1512525583549,\"vwap\":0.20379468007311782,\"ema1\":0.20542127054043918,\"sma1\":0.210693074074074,\"sma2\":0.2061879406666667,\"rsi_avg_gain\":0.00044704051847261386,\"rsi_avg_loss\":0.0007256954344490918,\"rsi\":38},{\"period_id\":\"120m210071\",\"size\":\"120m\",\"time\":1512511200000,\"open\":0.20402,\"high\":0.2055,\"low\":0.203,\"close\":0.20364,\"volume\":2130364.2691354603,\"close_time\":1512518349788,\"vwap\":0.2043388879808148,\"ema1\":0.2056792891984005,\"sma1\":0.2106879814814814,\"sma2\":0.2061706073333334,\"rsi_avg_gain\":0.00048142825066281494,\"rsi_avg_loss\":0.0006307489294067151,\"rsi\":43},{\"period_id\":\"120m210070\",\"size\":\"120m\",\"time\":1512504000000,\"open\":0.20498,\"high\":0.20535,\"low\":0.203,\"close\":0.20485,\"volume\":1083083.8736538694,\"close_time\":1512511198657,\"vwap\":0.20417873938894626,\"ema1\":0.20581992983277295,\"sma1\":0.2106761296296296,\"sma2\":0.20612977400000004,\"rsi_avg_gain\":0.000518461193021493,\"rsi_avg_loss\":0.0005861911547456919,\"rsi\":47},{\"period_id\":\"120m210069\",\"size\":\"120m\",\"time\":1512496800000,\"open\":0.204,\"high\":0.20538,\"low\":0.203,\"close\":0.20402,\"volume\":860057.4203535096,\"close_time\":1512503859014,\"vwap\":0.20412378777941007,\"ema1\":0.205886821545378,\"sma1\":0.21067344444444439,\"sma2\":0.20612777400000007,\"rsi_avg_gain\":0.0004944966694077618,\"rsi_avg_loss\":0.000631282782033822,\"rsi\":44},{\"period_id\":\"120m210068\",\"size\":\"120m\",\"time\":1512489600000,\"open\":0.20488,\"high\":0.2055,\"low\":0.203,\"close\":0.20321,\"volume\":1296081.3617274298,\"close_time\":1512496789885,\"vwap\":0.204098780308195,\"ema1\":0.20601556785885233,\"sma1\":0.21067437037037032,\"sma2\":0.20602427400000006,\"rsi_avg_gain\":0.0004702271824391278,\"rsi_avg_loss\":0.0006798429960364236,\"rsi\":41},{\"period_id\":\"120m210067\",\"size\":\"120m\",\"time\":1512482400000,\"open\":0.20556,\"high\":0.20556,\"low\":0.2035,\"close\":0.2049,\"volume\":1402909.4253659002,\"close_time\":1512489590218,\"vwap\":0.20720478790510558,\"ema1\":0.20620905529739386,\"sma1\":0.21067501851851847,\"sma2\":0.20583277400000005,\"rsi_avg_gain\":0.0005063985041652146,\"rsi_avg_loss\":0.0006021386111161488,\"rsi\":46},{\"period_id\":\"120m210066\",\"size\":\"120m\",\"time\":1512475200000,\"open\":0.2045,\"high\":0.20646,\"low\":0.204,\"close\":0.20557,\"volume\":905663.6345902705,\"close_time\":1512482395799,\"vwap\":0.20744173925020915,\"ema1\":0.2062993349730762,\"sma1\":0.21066798148148144,\"sma2\":0.20567327400000004,\"rsi_avg_gain\":0.0005453522352548466,\"rsi_avg_loss\":0.0005969185042789293,\"rsi\":48},{\"period_id\":\"120m210065\",\"size\":\"120m\",\"time\":1512468000000,\"open\":0.20576,\"high\":0.20643,\"low\":0.2043,\"close\":0.2045,\"volume\":1058386.8217710692,\"close_time\":1512475196068,\"vwap\":0.2075555603109211,\"ema1\":0.20634963393673664,\"sma1\":0.21066835185185184,\"sma2\":0.20562027400000008,\"rsi_avg_gain\":0.0005049947148898336,\"rsi_avg_loss\":0.0006428353123003853,\"rsi\":44},{\"period_id\":\"120m210064\",\"size\":\"120m\",\"time\":1512460800000,\"open\":0.2057,\"high\":0.2082,\"low\":0.205,\"close\":0.20504,\"volume\":1827906.7326850519,\"close_time\":1512467894122,\"vwap\":0.20769519904970338,\"ema1\":0.2064771948978909,\"sma1\":0.2106489074074074,\"sma2\":0.20565610733333337,\"rsi_avg_gain\":0.0005438404621890515,\"rsi_avg_loss\":0.0006507457209388755,\"rsi\":46},{\"period_id\":\"120m210063\",\"size\":\"120m\",\"time\":1512453600000,\"open\":0.20508,\"high\":0.2071,\"low\":0.20415,\"close\":0.2059,\"volume\":616188.42400966,\"close_time\":1512460761594,\"vwap\":0.20788179498017859,\"ema1\":0.20657631178740063,\"sma1\":0.2106420555555555,\"sma2\":0.20565777400000004,\"rsi_avg_gain\":0.0005856743438959017,\"rsi_avg_loss\":0.0006346492379341736,\"rsi\":48},{\"period_id\":\"120m210062\",\"size\":\"120m\",\"time\":1512446400000,\"open\":0.20531,\"high\":0.20798,\"low\":0.2045,\"close\":0.20485,\"volume\":407359.59938782,\"close_time\":1512453554144,\"vwap\":0.2079373749064452,\"ema1\":0.20662295397963515,\"sma1\":0.21062381481481476,\"sma2\":0.20570827400000002,\"rsi_avg_gain\":0.0005499569857340483,\"rsi_avg_loss\":0.0006834684100829562,\"rsi\":45},{\"period_id\":\"120m210061\",\"size\":\"120m\",\"time\":1512439200000,\"open\":0.20663,\"high\":0.20663,\"low\":0.205,\"close\":0.20515,\"volume\":595110.5549349199,\"close_time\":1512446369424,\"vwap\":0.2079532182971333,\"ema1\":0.20674522666788586,\"sma1\":0.21061353703703697,\"sma2\":0.20577927400000004,\"rsi_avg_gain\":0.000592261369252052,\"rsi_avg_loss\":0.0007129659800893379,\"rsi\":45},{\"period_id\":\"120m210060\",\"size\":\"120m\",\"time\":1512432000000,\"open\":0.20764,\"high\":0.208266,\"low\":0.2062,\"close\":0.20663,\"volume\":508934.48698234,\"close_time\":1512439024419,\"vwap\":0.20798863327805145,\"ema1\":0.20685524230015384,\"sma1\":0.21060366666666663,\"sma2\":0.20583510733333338,\"rsi_avg_gain\":0.0006378199361175944,\"rsi_avg_loss\":0.0006539633631731324,\"rsi\":49},{\"period_id\":\"120m210059\",\"size\":\"120m\",\"time\":1512424800000,\"open\":0.20697,\"high\":0.208266,\"low\":0.206,\"close\":0.208266,\"volume\":918199.0655971197,\"close_time\":1512431956920,\"vwap\":0.2079980280623821,\"ema1\":0.2068707762518886,\"sma1\":0.21060120370370367,\"sma2\":0.2057148406666667,\"rsi_avg_gain\":0.0006868830081266401,\"rsi_avg_loss\":0.0005784220834172196,\"rsi\":54},{\"period_id\":\"120m210058\",\"size\":\"120m\",\"time\":1512417600000,\"open\":0.2069,\"high\":0.2075,\"low\":0.2055,\"close\":0.20697,\"volume\":632957.20665359,\"close_time\":1512424783756,\"vwap\":0.2080004007385846,\"ema1\":0.20677455392443264,\"sma1\":0.2106058333333333,\"sma2\":0.2056783406666667,\"rsi_avg_gain\":0.000640027854905611,\"rsi_avg_loss\":0.0006229160898339288,\"rsi\":51},{\"period_id\":\"120m210057\",\"size\":\"120m\",\"time\":1512410400000,\"open\":0.20754,\"high\":0.20769,\"low\":0.20562,\"close\":0.207,\"volume\":703081.9222192308,\"close_time\":1512417597662,\"vwap\":0.20805039558297916,\"ema1\":0.20676107488473836,\"sma1\":0.21060870370370366,\"sma2\":0.2055448406666667,\"rsi_avg_gain\":0.0006892607668214271,\"rsi_avg_loss\":0.0006685250198211538,\"rsi\":51},{\"period_id\":\"120m210056\",\"size\":\"120m\",\"time\":1512403200000,\"open\":0.20617,\"high\":0.20754,\"low\":0.205,\"close\":0.20754,\"volume\":614650.2980817601,\"close_time\":1512410370625,\"vwap\":0.2080965083036315,\"ema1\":0.20674459729058237,\"sma1\":0.21061759259259252,\"sma2\":0.2056858406666667,\"rsi_avg_gain\":0.0007422808258076908,\"rsi_avg_loss\":0.0006784115598073954,\"rsi\":52},{\"period_id\":\"120m210055\",\"size\":\"120m\",\"time\":1512396000000,\"open\":0.206,\"high\":0.20778,\"low\":0.20474,\"close\":0.20616,\"volume\":555274.1970127601,\"close_time\":1512403151943,\"vwap\":0.20815123957989695,\"ema1\":0.20668974193131218,\"sma1\":0.21062888888888884,\"sma2\":0.20588317400000006,\"rsi_avg_gain\":0.0006932255047159753,\"rsi_avg_loss\":0.0007305970644079642,\"rsi\":49},{\"period_id\":\"120m210054\",\"size\":\"120m\",\"time\":1512388800000,\"open\":0.20601,\"high\":0.2078,\"low\":0.20311,\"close\":0.206,\"volume\":1058620.9446994702,\"close_time\":1512395944827,\"vwap\":0.20822809790349942,\"ema1\":0.20672627585760955,\"sma1\":0.21061685185185178,\"sma2\":0.20624967400000005,\"rsi_avg_gain\":0.0007342428512325871,\"rsi_avg_loss\":0.0007867968385931923,\"rsi\":48},{\"period_id\":\"120m210053\",\"size\":\"120m\",\"time\":1512381600000,\"open\":0.20655,\"high\":0.2079,\"low\":0.205,\"close\":0.20668,\"volume\":937889.2512387097,\"close_time\":1512388797198,\"vwap\":0.2084933855114995,\"ema1\":0.20677636384778952,\"sma1\":0.21058537037037028,\"sma2\":0.20651200733333339,\"rsi_avg_gain\":0.0007907230705581706,\"rsi_avg_loss\":0.0007950119800234367,\"rsi\":50},{\"period_id\":\"120m210052\",\"size\":\"120m\",\"time\":1512374400000,\"open\":0.2073,\"high\":0.20843,\"low\":0.20567,\"close\":0.207,\"volume\":846062.6015024798,\"close_time\":1512381483617,\"vwap\":0.20864409062177341,\"ema1\":0.2067830096303957,\"sma1\":0.21054712962962954,\"sma2\":0.20679367400000004,\"rsi_avg_gain\":0.0008515479221395684,\"rsi_avg_loss\":0.0008315513631021637,\"rsi\":51},{\"period_id\":\"120m210051\",\"size\":\"120m\",\"time\":1512367200000,\"open\":0.20506,\"high\":0.2088,\"low\":0.20506,\"close\":0.20772,\"volume\":369815.74117833993,\"close_time\":1512374346573,\"vwap\":0.20871257690363146,\"ema1\":0.20676804477731953,\"sma1\":0.21051166666666657,\"sma2\":0.20700667400000003,\"rsi_avg_gain\":0.0009170516084579968,\"rsi_avg_loss\":0.0008401322371869457,\"rsi\":52},{\"period_id\":\"120m210050\",\"size\":\"120m\",\"time\":1512360000000,\"open\":0.20511,\"high\":0.20694,\"low\":0.205,\"close\":0.20526,\"volume\":148488.14376757,\"close_time\":1512367074218,\"vwap\":0.20872506675494376,\"ema1\":0.20670239269299673,\"sma1\":0.21049361111111103,\"sma2\":0.207210674,\"rsi_avg_gain\":0.0007983632706470742,\"rsi_avg_loss\":0.0009047577938936338,\"rsi\":47},{\"period_id\":\"120m210049\",\"size\":\"120m\",\"time\":1512352800000,\"open\":0.20479,\"high\":0.20596,\"low\":0.20479,\"close\":0.20591,\"volume\":112455.98687227,\"close_time\":1512359645187,\"vwap\":0.20873503444291291,\"ema1\":0.20680186805113443,\"sma1\":0.2104800925925925,\"sma2\":0.20744550733333336,\"rsi_avg_gain\":0.0008597758299276184,\"rsi_avg_loss\":0.0009243545472700663,\"rsi\":48},{\"period_id\":\"120m210048\",\"size\":\"120m\",\"time\":1512345600000,\"open\":0.2025,\"high\":0.205,\"low\":0.2022,\"close\":0.205,\"volume\":244383.31424754005,\"close_time\":1512352788800,\"vwap\":0.20873918871306593,\"ema1\":0.20686337619259199,\"sma1\":0.21046666666666655,\"sma2\":0.207812174,\"rsi_avg_gain\":0.0008559124322297413,\"rsi_avg_loss\":0.0009954587432139176,\"rsi\":46},{\"period_id\":\"120m210047\",\"size\":\"120m\",\"time\":1512338400000,\"open\":0.203,\"high\":0.20596,\"low\":0.201,\"close\":0.20321,\"volume\":1016917.7492541395,\"close_time\":1512345595739,\"vwap\":0.2087707404419984,\"ema1\":0.20699188489552936,\"sma1\":0.21043925925925913,\"sma2\":0.2083210073333333,\"rsi_avg_gain\":0.000784059542401261,\"rsi_avg_loss\":0.0010720324926919112,\"rsi\":42},{\"period_id\":\"120m210046\",\"size\":\"120m\",\"time\":1512331200000,\"open\":0.20927755,\"high\":0.21072,\"low\":0.2021,\"close\":0.2021,\"volume\":1914351.5573701388,\"close_time\":1512338396781,\"vwap\":0.20935624446640927,\"ema1\":0.2072527045434969,\"sma1\":0.21036685185185175,\"sma2\":0.20871917399999998,\"rsi_avg_gain\":0.0007589871995090503,\"rsi_avg_loss\":0.001154496530591289,\"rsi\":40},{\"period_id\":\"120m210045\",\"size\":\"120m\",\"time\":1512324000000,\"open\":0.20861,\"high\":0.21,\"low\":0.20824,\"close\":0.209,\"volume\":407974.7964288199,\"close_time\":1512331113146,\"vwap\":0.21093990511376143,\"ema1\":0.20760806347753116,\"sma1\":0.21029731481481473,\"sma2\":0.20892100733333333,\"rsi_avg_gain\":0.0008173708302405158,\"rsi_avg_loss\":0.0007125347252521584,\"rsi\":53},{\"period_id\":\"120m210044\",\"size\":\"120m\",\"time\":1512316800000,\"open\":0.20906,\"high\":0.21,\"low\":0.2084,\"close\":0.20978,\"volume\":615420.8094476499,\"close_time\":1512323994319,\"vwap\":0.2109990590294507,\"ema1\":0.20751206785529194,\"sma1\":0.21023064814814807,\"sma2\":0.20914134066666665,\"rsi_avg_gain\":0.0008802455094897862,\"rsi_avg_loss\":0.0007073450887330933,\"rsi\":55},{\"period_id\":\"120m210043\",\"size\":\"120m\",\"time\":1512309600000,\"open\":0.211,\"high\":0.2118,\"low\":0.208,\"close\":0.2095,\"volume\":1208601.3046583012,\"close_time\":1512316768941,\"vwap\":0.21111321544121178,\"ema1\":0.2073556587418638,\"sma1\":0.21014851851851843,\"sma2\":0.20935467399999996,\"rsi_avg_gain\":0.0009264182409890003,\"rsi_avg_loss\":0.0007617562494048696,\"rsi\":55},{\"period_id\":\"120m210042\",\"size\":\"120m\",\"time\":1512302400000,\"open\":0.2093,\"high\":0.213,\"low\":0.20887,\"close\":0.211,\"volume\":2451547.833988342,\"close_time\":1512309491987,\"vwap\":0.21158854647780823,\"ema1\":0.2072077731378544,\"sma1\":0.21005694444444434,\"sma2\":0.20939200733333332,\"rsi_avg_gain\":0.0009976811826035387,\"rsi_avg_loss\":0.0007049682685898595,\"rsi\":59},{\"period_id\":\"120m210041\",\"size\":\"120m\",\"time\":1512295200000,\"open\":0.207,\"high\":0.2094,\"low\":0.20601,\"close\":0.20887,\"volume\":657082.7732712004,\"close_time\":1512302385755,\"vwap\":0.20842416828137286,\"ema1\":0.20694624025080988,\"sma1\":0.2099976851851851,\"sma2\":0.20954367399999996,\"rsi_avg_gain\":0.0009105797351115036,\"rsi_avg_loss\":0.0007591965969429255,\"rsi\":55},{\"period_id\":\"120m210040\",\"size\":\"120m\",\"time\":1512288000000,\"open\":0.20712,\"high\":0.208,\"low\":0.20605,\"close\":0.2069,\"volume\":404712.48956450995,\"close_time\":1512295180202,\"vwap\":0.20746060256330132,\"ema1\":0.20681356716465885,\"sma1\":0.20997175925925918,\"sma2\":0.20967867399999998,\"rsi_avg_gain\":0.0008290858685816192,\"rsi_avg_loss\":0.0008175963351693044,\"rsi\":50},{\"period_id\":\"120m210039\",\"size\":\"120m\",\"time\":1512280800000,\"open\":0.2053,\"high\":0.208,\"low\":0.20519,\"close\":0.20711,\"volume\":91034.59465931001,\"close_time\":1512287925924,\"vwap\":0.20746435029988858,\"ema1\":0.2068076062794629,\"sma1\":0.2099518518518518,\"sma2\":0.209827174,\"rsi_avg_gain\":0.0008928617046263591,\"rsi_avg_loss\":0.0008643345147977134,\"rsi\":51},{\"period_id\":\"120m210038\",\"size\":\"120m\",\"time\":1512273600000,\"open\":0.20466,\"high\":0.20735,\"low\":0.20465,\"close\":0.20515,\"volume\":341844.85708863003,\"close_time\":1512280257377,\"vwap\":0.20746456832775476,\"ema1\":0.20678675154011553,\"sma1\":0.20992879629629627,\"sma2\":0.20995800733333334,\"rsi_avg_gain\":0.0008107741434437722,\"rsi_avg_loss\":0.0009308217851667682,\"rsi\":47},{\"period_id\":\"120m210037\",\"size\":\"120m\",\"time\":1512266400000,\"open\":0.20416,\"high\":0.20511,\"low\":0.204,\"close\":0.20483,\"volume\":44043.33960736001,\"close_time\":1512273462247,\"vwap\":0.207471353560142,\"ema1\":0.2068996309566752,\"sma1\":0.20995537037037032,\"sma2\":0.21014017399999999,\"rsi_avg_gain\":0.0008485260006317557,\"rsi_avg_loss\":0.0010024234609488272,\"rsi\":46},{\"period_id\":\"120m210036\",\"size\":\"120m\",\"time\":1512259200000,\"open\":0.2061,\"high\":0.2065,\"low\":0.204,\"close\":0.20412,\"volume\":437910.88185003994,\"close_time\":1512266341154,\"vwap\":0.20747208181315616,\"ema1\":0.20704236412610108,\"sma1\":0.20996101851851845,\"sma2\":0.210238174,\"rsi_avg_gain\":0.0008591818468341972,\"rsi_avg_loss\":0.001079532957944891,\"rsi\":44},{\"period_id\":\"120m210035\",\"size\":\"120m\",\"time\":1512252000000,\"open\":0.2075,\"high\":0.20869,\"low\":0.205,\"close\":0.206,\"volume\":627978.90874285,\"close_time\":1512259172274,\"vwap\":0.20749091754824395,\"ema1\":0.2072439064796253,\"sma1\":0.20996851851851847,\"sma2\":0.21022150733333334,\"rsi_avg_gain\":0.0009252727581291354,\"rsi_avg_loss\":0.0010179585700944985,\"rsi\":48},{\"period_id\":\"120m210034\",\"size\":\"120m\",\"time\":1512244800000,\"open\":0.20626,\"high\":0.208,\"low\":0.20587,\"close\":0.20749,\"volume\":375143.7825295599,\"close_time\":1512251968347,\"vwap\":0.20750755407570004,\"ema1\":0.20732969313339256,\"sma1\":0.20998703703703697,\"sma2\":0.21019650733333337,\"rsi_avg_gain\":0.0009964475856775305,\"rsi_avg_loss\":0.000981647690870997,\"rsi\":50},{\"period_id\":\"120m210033\",\"size\":\"120m\",\"time\":1512237600000,\"open\":0.20752,\"high\":0.20752,\"low\":0.2055,\"close\":0.20671,\"volume\":269664.32342694,\"close_time\":1512244785524,\"vwap\":0.20750977941079402,\"ema1\":0.20731863748741963,\"sma1\":0.20999425925925921,\"sma2\":0.21019750733333334,\"rsi_avg_gain\":0.0010130973999604171,\"rsi_avg_loss\":0.0010571590517072275,\"rsi\":49},{\"period_id\":\"120m210032\",\"size\":\"120m\",\"time\":1512230400000,\"open\":0.20577,\"high\":0.208,\"low\":0.2043,\"close\":0.20702,\"volume\":548313.6903024999,\"close_time\":1512237578495,\"vwap\":0.20751344505514185,\"ema1\":0.20736061248655202,\"sma1\":0.20999425925925921,\"sma2\":0.2101738406666667,\"rsi_avg_gain\":0.0010910279691881415,\"rsi_avg_loss\":0.0011146328249154753,\"rsi\":49},{\"period_id\":\"120m210031\",\"size\":\"120m\",\"time\":1512223200000,\"open\":0.2088,\"high\":0.2088,\"low\":0.205,\"close\":0.20593044,\"volume\":507990.8551120195,\"close_time\":1512230394515,\"vwap\":0.20753718178682087,\"ema1\":0.20738410300286594,\"sma1\":0.20994981481481473,\"sma2\":0.21013533333333337,\"rsi_avg_gain\":0.0010911408898949203,\"rsi_avg_loss\":0.0012003738114474349,\"rsi\":48},{\"period_id\":\"120m210030\",\"size\":\"120m\",\"time\":1512216000000,\"open\":0.2081,\"high\":0.2094,\"low\":0.207,\"close\":0.2087,\"volume\":644599.4130293902,\"close_time\":1512223178420,\"vwap\":0.20755936402015548,\"ema1\":0.20748435562375325,\"sma1\":0.209906574074074,\"sma2\":0.21007350000000002,\"rsi_avg_gain\":0.001175074804502222,\"rsi_avg_loss\":0.0010796671815587757,\"rsi\":52},{\"period_id\":\"120m210029\",\"size\":\"120m\",\"time\":1512208800000,\"open\":0.21,\"high\":0.211,\"low\":0.2061,\"close\":0.2081,\"volume\":1036579.6382968901,\"close_time\":1512215967286,\"vwap\":0.20754623959128785,\"ema1\":0.2074005180805638,\"sma1\":0.20983249999999992,\"sma2\":0.21001350000000005,\"rsi_avg_gain\":0.0012193113279254707,\"rsi_avg_loss\":0.0011627185032171432,\"rsi\":51},{\"period_id\":\"120m210028\",\"size\":\"120m\",\"time\":1512201600000,\"open\":0.2091,\"high\":0.211,\"low\":0.2075,\"close\":0.21,\"volume\":843859.35179703,\"close_time\":1512208772992,\"vwap\":0.20750185034890078,\"ema1\":0.2073522779481889,\"sma1\":0.20976287037037025,\"sma2\":0.20992100000000005,\"rsi_avg_gain\":0.0013131045069966609,\"rsi_avg_loss\":0.0011060045419261553,\"rsi\":54},{\"period_id\":\"120m210027\",\"size\":\"120m\",\"time\":1512194400000,\"open\":0.20701,\"high\":0.20999,\"low\":0.20612,\"close\":0.20916,\"volume\":324696.8229079299,\"close_time\":1512201587493,\"vwap\":0.20743324815996594,\"ema1\":0.20716967642737433,\"sma1\":0.20971555555555546,\"sma2\":0.20984833333333336,\"rsi_avg_gain\":0.001349497161381021,\"rsi_avg_loss\":0.0011910818143820133,\"rsi\":53},{\"period_id\":\"120m210026\",\"size\":\"120m\",\"time\":1512187200000,\"open\":0.20948,\"high\":0.20958,\"low\":0.2065,\"close\":0.2066,\"volume\":423074.3872495901,\"close_time\":1512194238488,\"vwap\":0.20742667788154195,\"ema1\":0.20703241273271047,\"sma1\":0.20966759259259252,\"sma2\":0.20982000000000006,\"rsi_avg_gain\":0.0012563815584103297,\"rsi_avg_loss\":0.001282703492411399,\"rsi\":49},{\"period_id\":\"120m210025\",\"size\":\"120m\",\"time\":1512180000000,\"open\":0.20896,\"high\":0.20956,\"low\":0.207,\"close\":0.20911,\"volume\":97823.74024907005,\"close_time\":1512186828813,\"vwap\":0.20742796181517253,\"ema1\":0.20706223430048362,\"sma1\":0.20960861111111107,\"sma2\":0.2097263333333334,\"rsi_avg_gain\":0.0013530262936726628,\"rsi_avg_loss\":0.0011882960687507385,\"rsi\":53},{\"period_id\":\"120m210024\",\"size\":\"120m\",\"time\":1512172800000,\"open\":0.21257,\"high\":0.2126,\"low\":0.20706,\"close\":0.20896,\"volume\":1319666.9405931998,\"close_time\":1512179990311,\"vwap\":0.207427276082566,\"ema1\":0.20692100907982733,\"sma1\":0.20952953703703697,\"sma2\":0.20963566666666678,\"rsi_avg_gain\":0.0014455667778013304,\"rsi_avg_loss\":0.0012797034586546415,\"rsi\":53},{\"period_id\":\"120m210023\",\"size\":\"120m\",\"time\":1512165600000,\"open\":0.21203,\"high\":0.215,\"low\":0.21065,\"close\":0.21257,\"volume\":2184093.836138379,\"close_time\":1512172768309,\"vwap\":0.20726869208966708,\"ema1\":0.20678038901636714,\"sma1\":0.20943694444444438,\"sma2\":0.20948033333333343,\"rsi_avg_gain\":0.0015567642222475864,\"rsi_avg_loss\":0.001100449878551152,\"rsi\":59},{\"period_id\":\"120m210022\",\"size\":\"120m\",\"time\":1512158400000,\"open\":0.2096,\"high\":0.21236,\"low\":0.20813,\"close\":0.21236,\"volume\":1072673.46061336,\"close_time\":1512165578647,\"vwap\":0.20643688114083814,\"ema1\":0.20638110550025454,\"sma1\":0.20936768518518514,\"sma2\":0.20931766666666674,\"rsi_avg_gain\":0.001660361470112784,\"rsi_avg_loss\":0.001185099869208933,\"rsi\":58},{\"period_id\":\"120m210021\",\"size\":\"120m\",\"time\":1512151200000,\"open\":0.20898,\"high\":0.21,\"low\":0.2071,\"close\":0.2096,\"volume\":906369.1453939505,\"close_time\":1512158399931,\"vwap\":0.2061642182253817,\"ema1\":0.20596876794854796,\"sma1\":0.20930212962962957,\"sma2\":0.20919100000000007,\"rsi_avg_gain\":0.0015757738908906914,\"rsi_avg_loss\":0.00127626139760962,\"rsi\":55},{\"period_id\":\"120m210020\",\"size\":\"120m\",\"time\":1512144000000,\"open\":0.20799,\"high\":0.212,\"low\":0.20799,\"close\":0.20841,\"volume\":1272584.15052845,\"close_time\":1512151168203,\"vwap\":0.20602389948303554,\"ema1\":0.20571833815189608,\"sma1\":0.2092280555555555,\"sma2\":0.20910916666666676,\"rsi_avg_gain\":0.001605448805574591,\"rsi_avg_loss\":0.0013744353512718985,\"rsi\":54},{\"period_id\":\"120m210019\",\"size\":\"120m\",\"time\":1512136800000,\"open\":0.20921,\"high\":0.20998,\"low\":0.207,\"close\":0.20876,\"volume\":1429491.255365281,\"close_time\":1512143985731,\"vwap\":0.20555833226281878,\"ema1\":0.2055327063003027,\"sma1\":0.2091541666666666,\"sma2\":0.20902983333333341,\"rsi_avg_gain\":0.0017289448675418674,\"rsi_avg_loss\":0.001453238070600507,\"rsi\":54},{\"period_id\":\"120m210018\",\"size\":\"120m\",\"time\":1512129600000,\"open\":0.20256,\"high\":0.2169,\"low\":0.20121,\"close\":0.2095,\"volume\":2799926.6295868102,\"close_time\":1512136798511,\"vwap\":0.20511926776641315,\"ema1\":0.20531013432101325,\"sma1\":0.20901481481481474,\"sma2\":0.2089548333333334,\"rsi_avg_gain\":0.0018619406265835494,\"rsi_avg_loss\":0.0015081025375697774,\"rsi\":55},{\"period_id\":\"120m210017\",\"size\":\"120m\",\"time\":1512122400000,\"open\":0.202104,\"high\":0.207,\"low\":0.201,\"close\":0.20258,\"volume\":1291062.32261302,\"close_time\":1512129593960,\"vwap\":0.2016453037538464,\"ema1\":0.20502117806729003,\"sma1\":0.2089685185185185,\"sma2\":0.20900850000000007,\"rsi_avg_gain\":0.0014728591363207468,\"rsi_avg_loss\":0.0016241104250751448,\"rsi\":48},{\"period_id\":\"120m210016\",\"size\":\"120m\",\"time\":1512115200000,\"open\":0.19814,\"high\":0.20206,\"low\":0.196,\"close\":0.20206,\"volume\":713837.5213206597,\"close_time\":1512122388374,\"vwap\":0.20104974986273969,\"ema1\":0.205189535175379,\"sma1\":0.20896796296296294,\"sma2\":0.2090548333333334,\"rsi_avg_gain\":0.0015461559929608026,\"rsi_avg_loss\":0.0017490419962347713,\"rsi\":47},{\"period_id\":\"120m210015\",\"size\":\"120m\",\"time\":1512108000000,\"open\":0.19743,\"high\":0.19982,\"low\":0.1961,\"close\":0.1971,\"volume\":557649.4492912301,\"close_time\":1512115180599,\"vwap\":0.2012492808522773,\"ema1\":0.2054053651874741,\"sma1\":0.20899740740740735,\"sma2\":0.2091865000000001,\"rsi_avg_gain\":0.0012835526078039418,\"rsi_avg_loss\":0.0018835836882528307,\"rsi\":41},{\"period_id\":\"120m210014\",\"size\":\"120m\",\"time\":1512100800000,\"open\":0.199,\"high\":0.20197,\"low\":0.19702,\"close\":0.1975,\"volume\":635311.7339892703,\"close_time\":1512107990517,\"vwap\":0.20174170425829746,\"ema1\":0.2059781489935068,\"sma1\":0.20898657407407406,\"sma2\":0.20932833333333345,\"rsi_avg_gain\":0.0013822874237888606,\"rsi_avg_loss\":0.0019977055104261243,\"rsi\":41},{\"period_id\":\"120m210013\",\"size\":\"120m\",\"time\":1512093600000,\"open\":0.20012,\"high\":0.201,\"low\":0.19722,\"close\":0.1976,\"volume\":236566.50866583994,\"close_time\":1512100510000,\"vwap\":0.2021760067647227,\"ema1\":0.2065628489240935,\"sma1\":0.20897259259259257,\"sma2\":0.20943650000000008,\"rsi_avg_gain\":0.001488617225618773,\"rsi_avg_loss\":0.002143682857381981,\"rsi\":41},{\"period_id\":\"120m210012\",\"size\":\"120m\",\"time\":1512086400000,\"open\":0.20222,\"high\":0.2041,\"low\":0.198,\"close\":0.20012,\"volume\":698903.8259039099,\"close_time\":1512093589718,\"vwap\":0.2022771814567286,\"ema1\":0.20718097643609992,\"sma1\":0.20892999999999995,\"sma2\":0.20950633333333343,\"rsi_avg_gain\":0.0016031262429740633,\"rsi_avg_loss\":0.002114735384872903,\"rsi\":43},{\"period_id\":\"120m210011\",\"size\":\"120m\",\"time\":1512079200000,\"open\":0.20296,\"high\":0.20684,\"low\":0.20112,\"close\":0.2026,\"volume\":1227702.9432458305,\"close_time\":1512086391967,\"vwap\":0.20269013993821716,\"ema1\":0.20766794032824476,\"sma1\":0.20887870370370368,\"sma2\":0.20958883333333342,\"rsi_avg_gain\":0.0017264436462797604,\"rsi_avg_loss\":0.0020866381067862027,\"rsi\":45},{\"period_id\":\"120m210010\",\"size\":\"120m\",\"time\":1512072000000,\"open\":0.2039,\"high\":0.2045,\"low\":0.19901,\"close\":0.2024,\"volume\":1258077.1042229799,\"close_time\":1512079169720,\"vwap\":0.20130377547173542,\"ema1\":0.20801745345433062,\"sma1\":0.20884907407407405,\"sma2\":0.20968183333333337,\"rsi_avg_gain\":0.0018438623883012802,\"rsi_avg_loss\":0.0022471487303851417,\"rsi\":45},{\"period_id\":\"120m210009\",\"size\":\"120m\",\"time\":1512064800000,\"open\":0.19698,\"high\":0.2046,\"low\":0.19566,\"close\":0.2039,\"volume\":1647673.1437247903,\"close_time\":1512071867725,\"vwap\":0.20027774719710864,\"ema1\":0.2084048640373879,\"sma1\":0.2088435185185185,\"sma2\":0.20974683333333338,\"rsi_avg_gain\":0.001985697956632148,\"rsi_avg_loss\":0.0023046217096455374,\"rsi\":46},{\"period_id\":\"120m210008\",\"size\":\"120m\",\"time\":1512057600000,\"open\":0.19378,\"high\":0.19889,\"low\":0.19002,\"close\":0.197,\"volume\":1298684.4076519401,\"close_time\":1512064799932,\"vwap\":0.200214284254016,\"ema1\":0.20871554431582845,\"sma1\":0.20887231481481483,\"sma2\":0.20992133333333338,\"rsi_avg_gain\":0.0016076747225269295,\"rsi_avg_loss\":0.0024819003026951944,\"rsi\":39},{\"period_id\":\"120m210007\",\"size\":\"120m\",\"time\":1512050400000,\"open\":0.1957,\"high\":0.196,\"low\":0.19,\"close\":0.19341,\"volume\":3496820.0965343695,\"close_time\":1512057579478,\"vwap\":0.2003936579923032,\"ema1\":0.20952351288933385,\"sma1\":0.20893879629629628,\"sma2\":0.21015883333333338,\"rsi_avg_gain\":0.001455188162721308,\"rsi_avg_loss\":0.002672815710594825,\"rsi\":35},{\"period_id\":\"120m210006\",\"size\":\"120m\",\"time\":1512043200000,\"open\":0.201,\"high\":0.205,\"low\":0.1957,\"close\":0.196,\"volume\":2207844.756551129,\"close_time\":1512050392604,\"vwap\":0.2019033934830308,\"ema1\":0.2106347896403224,\"sma1\":0.208925,\"sma2\":0.2103088333333334,\"rsi_avg_gain\":0.0015671257136998702,\"rsi_avg_loss\":0.0026791861498713493,\"rsi\":37},{\"period_id\":\"120m210005\",\"size\":\"120m\",\"time\":1512036000000,\"open\":0.20723,\"high\":0.20859,\"low\":0.2,\"close\":0.20132,\"volume\":1182444.4129667808,\"close_time\":1512043188497,\"vwap\":0.20209661650699856,\"ema1\":0.211644085477586,\"sma1\":0.20887981481481482,\"sma2\":0.21035600000000004,\"rsi_avg_gain\":0.001687673845522937,\"rsi_avg_loss\":0.002476046622938377,\"rsi\":41},{\"period_id\":\"120m210004\",\"size\":\"120m\",\"time\":1512028800000,\"open\":0.206,\"high\":0.2105,\"low\":0.206,\"close\":0.20719,\"volume\":1239318.2030057004,\"close_time\":1512035986958,\"vwap\":0.20208885821388578,\"ema1\":0.21235609137259193,\"sma1\":0.20882814814814818,\"sma2\":0.21028283333333336,\"rsi_avg_gain\":0.001817494910563163,\"rsi_avg_loss\":0.0022149732862413282,\"rsi\":45},{\"period_id\":\"120m210003\",\"size\":\"120m\",\"time\":1512021600000,\"open\":0.2058,\"high\":0.208,\"low\":0.20034,\"close\":0.206,\"volume\":1034005.3892385698,\"close_time\":1512028795858,\"vwap\":0.20188362956649733,\"ema1\":0.21271237353621897,\"sma1\":0.20880490740740745,\"sma2\":0.21024950000000003,\"rsi_avg_gain\":0.0018657637498372508,\"rsi_avg_loss\":0.0023853558467214304,\"rsi\":44},{\"period_id\":\"120m210002\",\"size\":\"120m\",\"time\":1512014400000,\"open\":0.20938,\"high\":0.21089,\"low\":0.205,\"close\":0.20788,\"volume\":707748.94552877,\"close_time\":1512021589204,\"vwap\":0.20182536178866345,\"ema1\":0.21317529584906167,\"sma1\":0.20873240740740742,\"sma2\":0.21019433333333337,\"rsi_avg_gain\":0.00200928403828627,\"rsi_avg_loss\":0.002424229373392308,\"rsi\":45},{\"period_id\":\"120m210001\",\"size\":\"120m\",\"time\":1512007200000,\"open\":0.20915,\"high\":0.21,\"low\":0.20531,\"close\":0.20941,\"volume\":290501.8359916002,\"close_time\":1512014340616,\"vwap\":0.20173968945611143,\"ema1\":0.21354048866623834,\"sma1\":0.2086953703703704,\"sma2\":0.2100956666666667,\"rsi_avg_gain\":0.0021638443489236754,\"rsi_avg_loss\":0.0024930162482686394,\"rsi\":46},{\"period_id\":\"120m210000\",\"size\":\"120m\",\"time\":1512000000000,\"open\":0.201,\"high\":0.20999,\"low\":0.2,\"close\":0.20998,\"volume\":1165564.5829144393,\"close_time\":1512007030383,\"vwap\":0.20172422733518025,\"ema1\":0.2138253499535651,\"sma1\":0.20865833333333336,\"sma2\":0.2099876666666667,\"rsi_avg_gain\":0.0023302939142254967,\"rsi_avg_loss\":0.002640940575058536,\"rsi\":47},{\"period_id\":\"120m209999\",\"size\":\"120m\",\"time\":1511992800000,\"open\":0.20395,\"high\":0.21,\"low\":0.2,\"close\":0.20105,\"volume\":1814667.9738222098,\"close_time\":1511999980364,\"vwap\":0.20163980516012828,\"ema1\":0.21409054650208684,\"sma1\":0.20863870370370372,\"sma2\":0.2100181666666667,\"rsi_avg_gain\":0.001822624215319766,\"rsi_avg_loss\":0.002844089850063039,\"rsi\":39},{\"period_id\":\"120m209998\",\"size\":\"120m\",\"time\":1511985600000,\"open\":0.1959,\"high\":0.21,\"low\":0.191,\"close\":0.20478,\"volume\":4757349.276058303,\"close_time\":1511992776919,\"vwap\":0.20140021065353422,\"ema1\":0.21498989453671352,\"sma1\":0.20861925925925925,\"sma2\":0.20996150000000005,\"rsi_avg_gain\":0.0019628260780366713,\"rsi_avg_loss\":0.0027759429154525046,\"rsi\":41},{\"period_id\":\"120m209997\",\"size\":\"120m\",\"time\":1511978400000,\"open\":0.21606,\"high\":0.21957,\"low\":0.192,\"close\":0.19899,\"volume\":4420248.183224255,\"close_time\":1511985598964,\"vwap\":0.20144383587772777,\"ema1\":0.2156940251944179,\"sma1\":0.2085112962962963,\"sma2\":0.21001166666666674,\"rsi_avg_gain\":0.0016684280840394933,\"rsi_avg_loss\":0.002989476985871928,\"rsi\":36},{\"period_id\":\"120m209996\",\"size\":\"120m\",\"time\":1511971200000,\"open\":0.21998,\"high\":0.223,\"low\":0.216,\"close\":0.216,\"volume\":2351105.5345271663,\"close_time\":1511978391883,\"vwap\":0.22437155468355124,\"ema1\":0.21684602693196398,\"sma1\":0.20834462962962963,\"sma2\":0.20977833333333334,\"rsi_avg_gain\":0.001796768705888685,\"rsi_avg_loss\":0.0019109752155543843,\"rsi\":48},{\"period_id\":\"120m209995\",\"size\":\"120m\",\"time\":1511964000000,\"open\":0.22841,\"high\":0.23,\"low\":0.218,\"close\":0.218,\"volume\":4281064.854303387,\"close_time\":1511971197605,\"vwap\":0.22480053302898434,\"ema1\":0.21690437361692702,\"sma1\":0.20811185185185188,\"sma2\":0.20949500000000004,\"rsi_avg_gain\":0.0019349816832647377,\"rsi_avg_loss\":0.001904127155212414,\"rsi\":50},{\"period_id\":\"120m209994\",\"size\":\"120m\",\"time\":1511956800000,\"open\":0.22286,\"high\":0.22878,\"low\":0.22169,\"close\":0.22799,\"volume\":3263738.472919323,\"close_time\":1511963974595,\"vwap\":0.2251559796525665,\"ema1\":0.2168288131767151,\"sma1\":0.20787731481481483,\"sma2\":0.20903600000000006,\"rsi_avg_gain\":0.002083826428131256,\"rsi_avg_loss\":0.0012821369363825996,\"rsi\":62},{\"period_id\":\"120m209993\",\"size\":\"120m\",\"time\":1511949600000,\"open\":0.22398,\"high\":0.22488,\"low\":0.22111,\"close\":0.22242,\"volume\":2361820.0209971713,\"close_time\":1511956799508,\"vwap\":0.22519210952738045,\"ema1\":0.21605907615441958,\"sma1\":0.20768370370370373,\"sma2\":0.20868383333333335,\"rsi_avg_gain\":0.0018156592302951999,\"rsi_avg_loss\":0.0013807628545658764,\"rsi\":57},{\"period_id\":\"120m209992\",\"size\":\"120m\",\"time\":1511942400000,\"open\":0.2195,\"high\":0.22488,\"low\":0.2177,\"close\":0.2239,\"volume\":2649396.6815256095,\"close_time\":1511949549969,\"vwap\":0.2256474948420867,\"ema1\":0.2156203917512761,\"sma1\":0.20746259259259267,\"sma2\":0.20830200000000007,\"rsi_avg_gain\":0.001955325324933292,\"rsi_avg_loss\":0.0013731292279940222,\"rsi\":59},{\"period_id\":\"120m209991\",\"size\":\"120m\",\"time\":1511935200000,\"open\":0.2175,\"high\":0.22077,\"low\":0.214,\"close\":0.2205,\"volume\":2973725.5863664374,\"close_time\":1511942396778,\"vwap\":0.22641892260258994,\"ema1\":0.21504938428584686,\"sma1\":0.20727925925925936,\"sma2\":0.2079796666666667,\"rsi_avg_gain\":0.0018441965037743157,\"rsi_avg_loss\":0.0014787545532243315,\"rsi\":55},{\"period_id\":\"120m209990\",\"size\":\"120m\",\"time\":1511928000000,\"open\":0.22001,\"high\":0.22217,\"low\":0.2151,\"close\":0.2175,\"volume\":1326236.08597484,\"close_time\":1511935186922,\"vwap\":0.22948804114637733,\"ema1\":0.2146734797538363,\"sma1\":0.20712027777777783,\"sma2\":0.2077513333333334,\"rsi_avg_gain\":0.001755288542526186,\"rsi_avg_loss\":0.001592504903472357,\"rsi\":52},{\"period_id\":\"120m209989\",\"size\":\"120m\",\"time\":1511920800000,\"open\":0.22788,\"high\":0.22788,\"low\":0.22,\"close\":0.22,\"volume\":579065.919381,\"close_time\":1511926770791,\"vwap\":0.23053026020161185,\"ema1\":0.2144785473230664,\"sma1\":0.2068621296296297,\"sma2\":0.20747766666666675,\"rsi_avg_gain\":0.0018903107381051233,\"rsi_avg_loss\":0.0015226975883548457,\"rsi\":55},{\"period_id\":\"120m209988\",\"size\":\"120m\",\"time\":1511913600000,\"open\":0.23498,\"high\":0.235,\"low\":0.22137,\"close\":0.227,\"volume\":1532362.66207104,\"close_time\":1511920523754,\"vwap\":0.2306724275611325,\"ema1\":0.21409775748327786,\"sma1\":0.20650898148148156,\"sma2\":0.20706983333333343,\"rsi_avg_gain\":0.002035719256420902,\"rsi_avg_loss\":0.0011013666336129103,\"rsi\":65},{\"period_id\":\"120m209987\",\"size\":\"120m\",\"time\":1511906400000,\"open\":0.22599,\"high\":0.235,\"low\":0.22402,\"close\":0.23374,\"volume\":5473626.6050023865,\"close_time\":1511913591464,\"vwap\":0.23100906193566503,\"ema1\":0.2132079476545384,\"sma1\":0.20614666666666673,\"sma2\":0.2065958333333334,\"rsi_avg_gain\":0.002192313045376356,\"rsi_avg_loss\":0.0006676256054292884,\"rsi\":77},{\"period_id\":\"120m209986\",\"size\":\"120m\",\"time\":1511899200000,\"open\":0.22344,\"high\":0.2275,\"low\":0.221,\"close\":0.22599,\"volume\":1912175.8815506604,\"close_time\":1511906390069,\"vwap\":0.21812364621808875,\"ema1\":0.21179194404450657,\"sma1\":0.2058545370370371,\"sma2\":0.20629600000000006,\"rsi_avg_gain\":0.0017647986642514598,\"rsi_avg_loss\":0.0007189814212315414,\"rsi\":71},{\"period_id\":\"120m209985\",\"size\":\"120m\",\"time\":1511892000000,\"open\":0.22245,\"high\":0.22395,\"low\":0.22021,\"close\":0.22111,\"volume\":1405796.5932471403,\"close_time\":1511899189317,\"vwap\":0.21764600561389003,\"ema1\":0.21081276777171393,\"sma1\":0.20559564814814818,\"sma2\":0.2060825,\"rsi_avg_gain\":0.0015251677922708032,\"rsi_avg_loss\":0.0007742876844031984,\"rsi\":66},{\"period_id\":\"120m209984\",\"size\":\"120m\",\"time\":1511884800000,\"open\":0.2223,\"high\":0.22769,\"low\":0.2201,\"close\":0.223,\"volume\":3903963.718945954,\"close_time\":1511891998498,\"vwap\":0.21736624972741098,\"ema1\":0.21010261382493559,\"sma1\":0.20531611111111112,\"sma2\":0.20581599999999997,\"rsi_avg_gain\":0.0016424883916762495,\"rsi_avg_loss\":0.0006884636601265212,\"rsi\":70},{\"period_id\":\"120m209983\",\"size\":\"120m\",\"time\":1511877600000,\"open\":0.21498,\"high\":0.2223,\"low\":0.21382,\"close\":0.2223,\"volume\":3476791.268732116,\"close_time\":1511884789277,\"vwap\":0.21515997281706256,\"ema1\":0.20921313891631046,\"sma1\":0.20508092592592592,\"sma2\":0.20551100000000003,\"rsi_avg_gain\":0.0017149874987282682,\"rsi_avg_loss\":0.0007414224032131767,\"rsi\":70},{\"period_id\":\"120m209982\",\"size\":\"120m\",\"time\":1511870400000,\"open\":0.21701,\"high\":0.21897,\"low\":0.21,\"close\":0.21324,\"volume\":1580030.8104449601,\"close_time\":1511877576662,\"vwap\":0.21352884387626617,\"ema1\":0.20831059677260774,\"sma1\":0.20487055555555556,\"sma2\":0.20535616666666667,\"rsi_avg_gain\":0.0011499865370919824,\"rsi_avg_loss\":0.0007984548957680363,\"rsi\":59},{\"period_id\":\"120m209981\",\"size\":\"120m\",\"time\":1511863200000,\"open\":0.2144,\"high\":0.21995,\"low\":0.21399,\"close\":0.21797,\"volume\":2105043.1876786407,\"close_time\":1511870399364,\"vwap\":0.2134863214626374,\"ema1\":0.2079706379293393,\"sma1\":0.20467657407407408,\"sma2\":0.2050981666666667,\"rsi_avg_gain\":0.0012384470399452118,\"rsi_avg_loss\":0.0004960283492886556,\"rsi\":71},{\"period_id\":\"120m209980\",\"size\":\"120m\",\"time\":1511856000000,\"open\":0.21703,\"high\":0.218,\"low\":0.20949,\"close\":0.215,\"volume\":1955352.6909786584,\"close_time\":1511863185135,\"vwap\":0.21248381098734478,\"ema1\":0.20728102675205237,\"sma1\":0.20445435185185185,\"sma2\":0.2048826666666667,\"rsi_avg_gain\":0.0011052506584025357,\"rsi_avg_loss\":0.0005341843761570138,\"rsi\":67},{\"period_id\":\"120m209979\",\"size\":\"120m\",\"time\":1511848800000,\"open\":0.2126,\"high\":0.21772,\"low\":0.2101,\"close\":0.21602,\"volume\":1171198.8276388498,\"close_time\":1511855966678,\"vwap\":0.2121968203419161,\"ema1\":0.20674868376943528,\"sma1\":0.20422814814814816,\"sma2\":0.2046606666666667,\"rsi_avg_gain\":0.0011902699398181154,\"rsi_avg_loss\":0.0004968139435537077,\"rsi\":71},{\"period_id\":\"120m209978\",\"size\":\"120m\",\"time\":1511841600000,\"open\":0.21568,\"high\":0.218,\"low\":0.2126,\"close\":0.213,\"volume\":1039125.3916204604,\"close_time\":1511848787131,\"vwap\":0.21191623293286466,\"ema1\":0.206109282650086,\"sma1\":0.20400620370370373,\"sma2\":0.20447433333333334,\"rsi_avg_gain\":0.0010495214736502786,\"rsi_avg_loss\":0.0005350304007501469,\"rsi\":66},{\"period_id\":\"120m209977\",\"size\":\"120m\",\"time\":1511834400000,\"open\":0.21,\"high\":0.21809,\"low\":0.20801,\"close\":0.21576,\"volume\":3468057.7474857005,\"close_time\":1511841578393,\"vwap\":0.2117283399260072,\"ema1\":0.20563406076388502,\"sma1\":0.2037875,\"sma2\":0.20425250000000003,\"rsi_avg_gain\":0.0011302538947003,\"rsi_avg_loss\":0.00036387889311554185,\"rsi\":76},{\"period_id\":\"120m209976\",\"size\":\"120m\",\"time\":1511827200000,\"open\":0.205,\"high\":0.21,\"low\":0.205,\"close\":0.21,\"volume\":1558481.138053661,\"close_time\":1511834380900,\"vwap\":0.20748185758819349,\"ema1\":0.20493572012691158,\"sma1\":0.2036434259259259,\"sma2\":0.20412683333333337,\"rsi_avg_gain\":0.0007741195789080145,\"rsi_avg_loss\":0.0003918695772013528,\"rsi\":66},{\"period_id\":\"120m209975\",\"size\":\"120m\",\"time\":1511820000000,\"open\":0.20599,\"high\":0.2065,\"low\":0.2048,\"close\":0.205,\"volume\":389789.4495868001,\"close_time\":1511827185105,\"vwap\":0.20638389741127336,\"ema1\":0.20458645944600892,\"sma1\":0.20358314814814815,\"sma2\":0.2040988333333334,\"rsi_avg_gain\":0.0004490518542086307,\"rsi_avg_loss\":0.00042201339083222607,\"rsi\":52},{\"period_id\":\"120m209974\",\"size\":\"120m\",\"time\":1511812800000,\"open\":0.20676,\"high\":0.2072,\"low\":0.205,\"close\":0.20599,\"volume\":1422752.5999248598,\"close_time\":1511819964513,\"vwap\":0.20642907351132156,\"ema1\":0.20455793940780265,\"sma1\":0.20345999999999995,\"sma2\":0.20407566666666666,\"rsi_avg_gain\":0.00048359430453237155,\"rsi_avg_loss\":0.00037832211320393435,\"rsi\":56},{\"period_id\":\"120m209973\",\"size\":\"120m\",\"time\":1511805600000,\"open\":0.2056,\"high\":0.2075,\"low\":0.20438,\"close\":0.20677,\"volume\":1196450.54110655,\"close_time\":1511812798973,\"vwap\":0.20656174895644028,\"ema1\":0.20445917660834076,\"sma1\":0.2033433333333333,\"sma2\":0.20399083333333332,\"rsi_avg_gain\":0.000520793866419477,\"rsi_avg_loss\":0.00034742381421962133,\"rsi\":60},{\"period_id\":\"120m209972\",\"size\":\"120m\",\"time\":1511798400000,\"open\":0.20379,\"high\":0.20596,\"low\":0.2036,\"close\":0.2056,\"volume\":1021665.5822057405,\"close_time\":1511805533503,\"vwap\":0.2049087772407295,\"ema1\":0.2042998094778815,\"sma1\":0.20321870370370365,\"sma2\":0.20394649999999998,\"rsi_avg_gain\":0.0004708549330671288,\"rsi_avg_loss\":0.000374148723005746,\"rsi\":56},{\"period_id\":\"120m209971\",\"size\":\"120m\",\"time\":1511791200000,\"open\":0.20492,\"high\":0.2057,\"low\":0.20361,\"close\":0.20362,\"volume\":1156598.33650544,\"close_time\":1511798339155,\"vwap\":0.2048959929984865,\"ema1\":0.20421014116601127,\"sma1\":0.2030909259259259,\"sma2\":0.20390683333333334,\"rsi_avg_gain\":0.00035476685099536875,\"rsi_avg_loss\":0.00040292939400618803,\"rsi\":47},{\"period_id\":\"120m209970\",\"size\":\"120m\",\"time\":1511784000000,\"open\":0.20488,\"high\":0.205,\"low\":0.203,\"close\":0.20499,\"volume\":1106405.0097936601,\"close_time\":1511791177277,\"vwap\":0.20488868402027086,\"ema1\":0.20425084055677067,\"sma1\":0.20297490740740737,\"sma2\":0.20384716666666666,\"rsi_avg_gain\":0.00038205660876424325,\"rsi_avg_loss\":0.00032853934739127865,\"rsi\":54},{\"period_id\":\"120m209969\",\"size\":\"120m\",\"time\":1511776800000,\"open\":0.2043,\"high\":0.20497,\"low\":0.20151,\"close\":0.2045,\"volume\":1162813.67094193,\"close_time\":1511783982966,\"vwap\":0.2049200472785562,\"ema1\":0.2041998640434445,\"sma1\":0.20285972222222218,\"sma2\":0.2037865,\"rsi_avg_gain\":0.0003737532709768759,\"rsi_avg_loss\":0.00035381160488291545,\"rsi\":51},{\"period_id\":\"120m209968\",\"size\":\"120m\",\"time\":1511769600000,\"open\":0.2048,\"high\":0.2055,\"low\":0.202,\"close\":0.20445,\"volume\":1043370.4015265596,\"close_time\":1511776708321,\"vwap\":0.2050292197187268,\"ema1\":0.20417916501195793,\"sma1\":0.20275324074074075,\"sma2\":0.20371350000000002,\"rsi_avg_gain\":0.0003986573687443283,\"rsi_avg_loss\":0.00038102788218160124,\"rsi\":51},{\"period_id\":\"120m209967\",\"size\":\"120m\",\"time\":1511762400000,\"open\":0.204,\"high\":0.2056,\"low\":0.2035,\"close\":0.2048,\"volume\":727163.5247073199,\"close_time\":1511769598414,\"vwap\":0.20509656962160913,\"ema1\":0.20416048673692055,\"sma1\":0.20261805555555554,\"sma2\":0.20366683333333338,\"rsi_avg_gain\":0.0004293233201861998,\"rsi_avg_loss\":0.00038341464234941546,\"rsi\":53},{\"period_id\":\"120m209966\",\"size\":\"120m\",\"time\":1511755200000,\"open\":0.20399,\"high\":0.2049,\"low\":0.2035,\"close\":0.2049,\"volume\":169624.14325531002,\"close_time\":1511762296420,\"vwap\":0.20510838022977157,\"ema1\":0.20411638237394955,\"sma1\":0.20250296296296297,\"sma2\":0.2035981666666667,\"rsi_avg_gain\":0.0004623481909697536,\"rsi_avg_loss\":0.00040521576868398674,\"rsi\":53},{\"period_id\":\"120m209965\",\"size\":\"120m\",\"time\":1511748000000,\"open\":0.20393,\"high\":0.20403,\"low\":0.20161,\"close\":0.20349,\"volume\":152512.01532671004,\"close_time\":1511754632407,\"vwap\":0.2051114638047639,\"ema1\":0.20406233977904953,\"sma1\":0.20239157407407407,\"sma2\":0.2035233333333334,\"rsi_avg_gain\":0.0003894518979674274,\"rsi_avg_loss\":0.0004363862124289088,\"rsi\":47},{\"period_id\":\"120m209964\",\"size\":\"120m\",\"time\":1511740800000,\"open\":0.20231,\"high\":0.20396,\"low\":0.2013,\"close\":0.20352,\"volume\":209917.99183870008,\"close_time\":1511747968177,\"vwap\":0.20511877356788194,\"ema1\":0.2041018114879495,\"sma1\":0.20228796296296295,\"sma2\":0.2034266666666667,\"rsi_avg_gain\":0.00041940973627261415,\"rsi_avg_loss\":0.0004676466903080555,\"rsi\":47},{\"period_id\":\"120m209963\",\"size\":\"120m\",\"time\":1511733600000,\"open\":0.2026,\"high\":0.20495,\"low\":0.201,\"close\":0.20325,\"volume\":635724.2675824101,\"close_time\":1511740746473,\"vwap\":0.2051290170081408,\"ema1\":0.20414193641815293,\"sma1\":0.20218731481481478,\"sma2\":0.20334450000000007,\"rsi_avg_gain\":0.00043090279290896753,\"rsi_avg_loss\":0.0005036195126394444,\"rsi\":46},{\"period_id\":\"120m209962\",\"size\":\"120m\",\"time\":1511726400000,\"open\":0.202,\"high\":0.20407,\"low\":0.201,\"close\":0.2026,\"volume\":465787.79993479024,\"close_time\":1511733598819,\"vwap\":0.20521860822719915,\"ema1\":0.20420344927457726,\"sma1\":0.20209481481481475,\"sma2\":0.20330283333333338,\"rsi_avg_gain\":0.000414049161594274,\"rsi_avg_loss\":0.0005423594751501709,\"rsi\":43},{\"period_id\":\"120m209961\",\"size\":\"120m\",\"time\":1511719200000,\"open\":0.2035,\"high\":0.20509,\"low\":0.2011,\"close\":0.202,\"volume\":861816.7927144095,\"close_time\":1511726348696,\"vwap\":0.20530266691953838,\"ema1\":0.2043140319831688,\"sma1\":0.201999074074074,\"sma2\":0.20326950000000005,\"rsi_avg_gain\":0.00039974525094768046,\"rsi_avg_loss\":0.0005840794347771072,\"rsi\":41},{\"period_id\":\"120m209960\",\"size\":\"120m\",\"time\":1511712000000,\"open\":0.20403,\"high\":0.2056,\"low\":0.203,\"close\":0.2035,\"volume\":878007.2638635704,\"close_time\":1511719170255,\"vwap\":0.20547670687857278,\"ema1\":0.20447362039580114,\"sma1\":0.20191018518518516,\"sma2\":0.20324416666666673,\"rsi_avg_gain\":0.00043049488563596356,\"rsi_avg_loss\":0.0005136240066830405,\"rsi\":46},{\"period_id\":\"120m209959\",\"size\":\"120m\",\"time\":1511704800000,\"open\":0.20491,\"high\":0.20563,\"low\":0.204,\"close\":0.204,\"volume\":516405.63428572,\"close_time\":1511711912210,\"vwap\":0.20556514303123144,\"ema1\":0.20454076662999432,\"sma1\":0.2018391666666666,\"sma2\":0.2032106666666667,\"rsi_avg_gain\":0.00046360987683873,\"rsi_avg_loss\":0.0005146720071971205,\"rsi\":47},{\"period_id\":\"120m209958\",\"size\":\"120m\",\"time\":1511697600000,\"open\":0.20503,\"high\":0.2057,\"low\":0.2039,\"close\":0.205,\"volume\":523334.76196654997,\"close_time\":1511704792409,\"vwap\":0.20557909318465328,\"ema1\":0.20457806088033875,\"sma1\":0.20177712962962957,\"sma2\":0.20317433333333337,\"rsi_avg_gain\":0.0004992721750570939,\"rsi_avg_loss\":0.000477339084673822,\"rsi\":51},{\"period_id\":\"120m209957\",\"size\":\"120m\",\"time\":1511690400000,\"open\":0.2046,\"high\":0.20647,\"low\":0.2034,\"close\":0.2058,\"volume\":814346.0664185897,\"close_time\":1511697529865,\"vwap\":0.20560185571920722,\"ema1\":0.20454896163070693,\"sma1\":0.20171722222222216,\"sma2\":0.2031126666666667,\"rsi_avg_gain\":0.0005376777269845626,\"rsi_avg_loss\":0.00045251901426411427,\"rsi\":54},{\"period_id\":\"120m209956\",\"size\":\"120m\",\"time\":1511683200000,\"open\":0.20497,\"high\":0.2061,\"low\":0.203,\"close\":0.20484,\"volume\":532312.11396432,\"close_time\":1511690345924,\"vwap\":0.20561874784053247,\"ema1\":0.2044626831224798,\"sma1\":0.2016079629629629,\"sma2\":0.20306733333333335,\"rsi_avg_gain\":0.0005051913982910661,\"rsi_avg_loss\":0.00048732816920750763,\"rsi\":51},{\"period_id\":\"120m209955\",\"size\":\"120m\",\"time\":1511676000000,\"open\":0.20519,\"high\":0.20636,\"low\":0.20321,\"close\":0.205,\"volume\":265488.4841529699,\"close_time\":1511683195091,\"vwap\":0.20564818801388782,\"ema1\":0.20443666126885773,\"sma1\":0.2015114814814814,\"sma2\":0.20302150000000005,\"rsi_avg_gain\":0.0005440522750826866,\"rsi_avg_loss\":0.0005125072591465471,\"rsi\":51},{\"period_id\":\"120m209954\",\"size\":\"120m\",\"time\":1511668800000,\"open\":0.20465,\"high\":0.20601,\"low\":0.20355,\"close\":0.20601,\"volume\":185167.23776778998,\"close_time\":1511675783840,\"vwap\":0.20566047049092695,\"ema1\":0.2043978103218824,\"sma1\":0.201427037037037,\"sma2\":0.20296283333333337,\"rsi_avg_gain\":0.0005859024500890471,\"rsi_avg_loss\":0.0004742385867732038,\"rsi\":55},{\"period_id\":\"120m209953\",\"size\":\"120m\",\"time\":1511661600000,\"open\":0.204,\"high\":0.20552,\"low\":0.2036,\"close\":0.20409,\"volume\":169137.82431805995,\"close_time\":1511668637151,\"vwap\":0.20566281782808446,\"ema1\":0.2042866248268398,\"sma1\":0.20133425925925919,\"sma2\":0.2028946666666667,\"rsi_avg_gain\":0.000483279561634358,\"rsi_avg_loss\":0.0005107184780634502,\"rsi\":49},{\"period_id\":\"120m209952\",\"size\":\"120m\",\"time\":1511654400000,\"open\":0.2072,\"high\":0.2072,\"low\":0.2036,\"close\":0.20431,\"volume\":606910.1181575202,\"close_time\":1511661581796,\"vwap\":0.20566546918407053,\"ema1\":0.20430018515972528,\"sma1\":0.2012018518518518,\"sma2\":0.2029205,\"rsi_avg_gain\":0.0005204549125293086,\"rsi_avg_loss\":0.000533081437914485,\"rsi\":49},{\"period_id\":\"120m209951\",\"size\":\"120m\",\"time\":1511647200000,\"open\":0.20798,\"high\":0.208,\"low\":0.2062,\"close\":0.20755,\"volume\":640851.1185827403,\"close_time\":1511654269926,\"vwap\":0.2056915773598648,\"ema1\":0.2042995082741891,\"sma1\":0.20115555555555548,\"sma2\":0.20279466666666665,\"rsi_avg_gain\":0.0005604899058007939,\"rsi_avg_loss\":0.00032485693313867456,\"rsi\":63},{\"period_id\":\"120m209950\",\"size\":\"120m\",\"time\":1511640000000,\"open\":0.2078,\"high\":0.208,\"low\":0.207,\"close\":0.20798,\"volume\":583376.7692860903,\"close_time\":1511647194817,\"vwap\":0.20563053215110005,\"ema1\":0.20407533643102974,\"sma1\":0.2011648148148147,\"sma2\":0.20277833333333334,\"rsi_avg_gain\":0.0006036045139393165,\"rsi_avg_loss\":0.0003167690049185737,\"rsi\":66},{\"period_id\":\"120m209949\",\"size\":\"120m\",\"time\":1511632800000,\"open\":0.20704,\"high\":0.208,\"low\":0.20698,\"close\":0.2078,\"volume\":693878.2040950699,\"close_time\":1511639923044,\"vwap\":0.20552374254926245,\"ema1\":0.20380604928834212,\"sma1\":0.20109999999999992,\"sma2\":0.2027316666666667,\"rsi_avg_gain\":0.0006361894765500344,\"rsi_avg_loss\":0.00034113585145077166,\"rsi\":65},{\"period_id\":\"120m209948\",\"size\":\"120m\",\"time\":1511625600000,\"open\":0.20765,\"high\":0.2085,\"low\":0.20601,\"close\":0.20747,\"volume\":1253601.6867732797,\"close_time\":1511632705865,\"vwap\":0.2053908282237535,\"ema1\":0.20353060441167606,\"sma1\":0.20111203703703695,\"sma2\":0.20269050000000002,\"rsi_avg_gain\":0.0006597425132077275,\"rsi_avg_loss\":0.0003673770707931387,\"rsi\":64},{\"period_id\":\"120m209947\",\"size\":\"120m\",\"time\":1511618400000,\"open\":0.20502,\"high\":0.209,\"low\":0.20309,\"close\":0.20766,\"volume\":2273022.4174963282,\"close_time\":1511625590556,\"vwap\":0.20505912567986218,\"ema1\":0.20325892195730888,\"sma1\":0.2012138888888888,\"sma2\":0.20263783333333332,\"rsi_avg_gain\":0.0007104919373006295,\"rsi_avg_loss\":0.0003810214608541476,\"rsi\":65},{\"period_id\":\"120m209946\",\"size\":\"120m\",\"time\":1511611200000,\"open\":0.204,\"high\":0.2065,\"low\":0.20301,\"close\":0.205,\"volume\":1099203.7551069506,\"close_time\":1511618393805,\"vwap\":0.20327445250882156,\"ema1\":0.202955399333675,\"sma1\":0.20133888888888882,\"sma2\":0.20258283333333332,\"rsi_avg_gain\":0.0005605297786314454,\"rsi_avg_loss\":0.00041033080399677436,\"rsi\":58},{\"period_id\":\"120m209945\",\"size\":\"120m\",\"time\":1511604000000,\"open\":0.20388,\"high\":0.2045,\"low\":0.20223,\"close\":0.20415,\"volume\":416695.1976930502,\"close_time\":1511611180381,\"vwap\":0.20248607133899402,\"ema1\":0.20281439239116986,\"sma1\":0.2010916666666666,\"sma2\":0.20257166666666668,\"rsi_avg_gain\":0.0005382628385261727,\"rsi_avg_loss\":0.0004418947119965262,\"rsi\":55},{\"period_id\":\"120m209944\",\"size\":\"120m\",\"time\":1511596800000,\"open\":0.204,\"high\":0.2043,\"low\":0.2,\"close\":0.2028,\"volume\":499000.01411457005,\"close_time\":1511603793654,\"vwap\":0.20234761408940452,\"ema1\":0.20272228152159535,\"sma1\":0.20085351851851846,\"sma2\":0.202525,\"rsi_avg_gain\":0.00047582151841280213,\"rsi_avg_loss\":0.0004758866129193359,\"rsi\":50},{\"period_id\":\"120m209943\",\"size\":\"120m\",\"time\":1511589600000,\"open\":0.20457,\"high\":0.20497,\"low\":0.202,\"close\":0.204,\"volume\":533388.0454640301,\"close_time\":1511596780677,\"vwap\":0.2022740164892591,\"ema1\":0.20271692162653296,\"sma1\":0.2006183333333333,\"sma2\":0.20245,\"rsi_avg_gain\":0.0005124231736753253,\"rsi_avg_loss\":0.0004201855831439018,\"rsi\":55},{\"period_id\":\"120m209942\",\"size\":\"120m\",\"time\":1511582400000,\"open\":0.20222,\"high\":0.20499,\"low\":0.20222,\"close\":0.20457,\"volume\":236988.47305102003,\"close_time\":1511589387547,\"vwap\":0.20204747521249827,\"ema1\":0.20262843346284556,\"sma1\":0.2003841666666666,\"sma2\":0.2023905,\"rsi_avg_gain\":0.0005518403408811196,\"rsi_avg_loss\":0.00040866139723189315,\"rsi\":57},{\"period_id\":\"120m209941\",\"size\":\"120m\",\"time\":1511575200000,\"open\":0.20348,\"high\":0.2045,\"low\":0.2016,\"close\":0.20349,\"volume\":265972.30650534004,\"close_time\":1511581116624,\"vwap\":0.20200264058713463,\"ema1\":0.20249453232235215,\"sma1\":0.20015703703703697,\"sma2\":0.20233233333333328,\"rsi_avg_gain\":0.000511212674795052,\"rsi_avg_loss\":0.00044009688932665416,\"rsi\":54},{\"period_id\":\"120m209940\",\"size\":\"120m\",\"time\":1511568000000,\"open\":0.20287,\"high\":0.20355,\"low\":0.2,\"close\":0.2035,\"volume\":868469.9902756196,\"close_time\":1511575142890,\"vwap\":0.20195275205708607,\"ema1\":0.2024258793790661,\"sma1\":0.19994731481481476,\"sma2\":0.20222166666666663,\"rsi_avg_gain\":0.0005505367267023637,\"rsi_avg_loss\":0.00047318126542870585,\"rsi\":54},{\"period_id\":\"120m209939\",\"size\":\"120m\",\"time\":1511560800000,\"open\":0.20138,\"high\":0.203,\"low\":0.2001,\"close\":0.20288,\"volume\":814359.5293872693,\"close_time\":1511567995794,\"vwap\":0.20171777696952112,\"ema1\":0.20235180209486375,\"sma1\":0.19972231481481478,\"sma2\":0.20209016666666665,\"rsi_avg_gain\":0.0005451933979871622,\"rsi_avg_loss\":0.0005095798243078371,\"rsi\":52},{\"period_id\":\"120m209938\",\"size\":\"120m\",\"time\":1511553600000,\"open\":0.202,\"high\":0.2029,\"low\":0.20001,\"close\":0.20138,\"volume\":909864.2336225205,\"close_time\":1511560780503,\"vwap\":0.20129680950717552,\"ema1\":0.2023153746531302,\"sma1\":0.1995009259259259,\"sma2\":0.2019838333333333,\"rsi_avg_gain\":0.00047174673629386696,\"rsi_avg_loss\":0.0005487782723315168,\"rsi\":46},{\"period_id\":\"120m209937\",\"size\":\"120m\",\"time\":1511546400000,\"open\":0.202,\"high\":0.20249,\"low\":0.20015,\"close\":0.202,\"volume\":696364.2606540502,\"close_time\":1511553569847,\"vwap\":0.20382603115668171,\"ema1\":0.2023798832498978,\"sma1\":0.19928240740740738,\"sma2\":0.20186599999999996,\"rsi_avg_gain\":0.0005080349467780106,\"rsi_avg_loss\":0.0005432996778954789,\"rsi\":48},{\"period_id\":\"120m209936\",\"size\":\"120m\",\"time\":1511539200000,\"open\":0.20135,\"high\":0.2028,\"low\":0.1999,\"close\":0.202,\"volume\":838008.0614882995,\"close_time\":1511546341797,\"vwap\":0.20386290991802802,\"ema1\":0.20240608209471833,\"sma1\":0.19905398148148143,\"sma2\":0.2017648333333333,\"rsi_avg_gain\":0.0005471145580686268,\"rsi_avg_loss\":0.0005850919608105158,\"rsi\":48},{\"period_id\":\"120m209935\",\"size\":\"120m\",\"time\":1511532000000,\"open\":0.20116,\"high\":0.20293,\"low\":0.199,\"close\":0.201,\"volume\":1265678.3266009598,\"close_time\":1511539137387,\"vwap\":0.20391327525063327,\"ema1\":0.20243408775642305,\"sma1\":0.19883574074074073,\"sma2\":0.20167316666666663,\"rsi_avg_gain\":0.0005122772163815981,\"rsi_avg_loss\":0.0006300990347190171,\"rsi\":45},{\"period_id\":\"120m209934\",\"size\":\"120m\",\"time\":1511524800000,\"open\":0.20247,\"high\":0.20311,\"low\":0.20045,\"close\":0.20045,\"volume\":1051248.8631149305,\"close_time\":1511531987163,\"vwap\":0.20407431224516231,\"ema1\":0.2025329903603143,\"sma1\":0.1986217592592592,\"sma2\":0.20158066666666663,\"rsi_avg_gain\":0.0005093754637955655,\"rsi_avg_loss\":0.0006785681912358645,\"rsi\":43},{\"period_id\":\"120m209933\",\"size\":\"120m\",\"time\":1511517600000,\"open\":0.20097,\"high\":0.203,\"low\":0.2,\"close\":0.20129,\"volume\":847409.5129088698,\"close_time\":1511524791332,\"vwap\":0.20420254895594395,\"ema1\":0.2026766448679222,\"sma1\":0.1984087962962962,\"sma2\":0.20148833333333335,\"rsi_avg_gain\":0.0005485581917798397,\"rsi_avg_loss\":0.0006661503597924688,\"rsi\":45},{\"period_id\":\"120m209932\",\"size\":\"120m\",\"time\":1511510400000,\"open\":0.2011,\"high\":0.2052,\"low\":0.198,\"close\":0.20099,\"volume\":2117724.14763733,\"close_time\":1511517580684,\"vwap\":0.20429909791816372,\"ema1\":0.20277227554846855,\"sma1\":0.1981754629629629,\"sma2\":0.20136316666666668,\"rsi_avg_gain\":0.0005676780526859816,\"rsi_avg_loss\":0.0007173926951611203,\"rsi\":44},{\"period_id\":\"120m209931\",\"size\":\"120m\",\"time\":1511503200000,\"open\":0.2038,\"high\":0.20585,\"low\":0.20116,\"close\":0.20116,\"volume\":970807.4843226504,\"close_time\":1511510399395,\"vwap\":0.2053674537496257,\"ema1\":0.20289519110353535,\"sma1\":0.1979268518518518,\"sma2\":0.20119150000000005,\"rsi_avg_gain\":0.0006113455952002879,\"rsi_avg_loss\":0.0007594998255581292,\"rsi\":45},{\"period_id\":\"120m209930\",\"size\":\"120m\",\"time\":1511496000000,\"open\":0.20358,\"high\":0.20486,\"low\":0.20251,\"close\":0.2038,\"volume\":746805.5528653798,\"close_time\":1511503045501,\"vwap\":0.2054836252611302,\"ema1\":0.2030148594555033,\"sma1\":0.1976733333333333,\"sma2\":0.20100000000000004,\"rsi_avg_gain\":0.0006583721794464639,\"rsi_avg_loss\":0.0006148459659856773,\"rsi\":52},{\"period_id\":\"120m209929\",\"size\":\"120m\",\"time\":1511488800000,\"open\":0.20201,\"high\":0.20798,\"low\":0.20201,\"close\":0.20358,\"volume\":230578.55803913996,\"close_time\":1511495740182,\"vwap\":0.20551800917524782,\"ema1\":0.2029607118317449,\"sma1\":0.19739055555555549,\"sma2\":0.20084200000000008,\"rsi_avg_gain\":0.0006920931163269614,\"rsi_avg_loss\":0.0006621418095230372,\"rsi\":51},{\"period_id\":\"120m209928\",\"size\":\"120m\",\"time\":1511481600000,\"open\":0.2052,\"high\":0.20711,\"low\":0.20201,\"close\":0.20253,\"volume\":1199177.8151506893,\"close_time\":1511488793439,\"vwap\":0.20552173992688733,\"ema1\":0.20291800230289972,\"sma1\":0.19711601851851843,\"sma2\":0.2006783333333334,\"rsi_avg_gain\":0.0006645618175828797,\"rsi_avg_loss\":0.0007130757948709632,\"rsi\":48},{\"period_id\":\"120m209927\",\"size\":\"120m\",\"time\":1511474400000,\"open\":0.2079,\"high\":0.2095,\"low\":0.2053,\"close\":0.2053,\"volume\":1323081.9437753898,\"close_time\":1511481589039,\"vwap\":0.20565824906663802,\"ema1\":0.20294476108241005,\"sma1\":0.1968067592592592,\"sma2\":0.2004733333333334,\"rsi_avg_gain\":0.0007156819573969473,\"rsi_avg_loss\":0.0005548508560148817,\"rsi\":56},{\"period_id\":\"120m209926\",\"size\":\"120m\",\"time\":1511467200000,\"open\":0.2083,\"high\":0.21,\"low\":0.20729,\"close\":0.208,\"volume\":1275330.9965464398,\"close_time\":1511474376676,\"vwap\":0.20560335867049093,\"ema1\":0.20278233081223143,\"sma1\":0.19650212962962957,\"sma2\":0.20023533333333343,\"rsi_avg_gain\":0.000770734415658251,\"rsi_avg_loss\":0.00038983938340064327,\"rsi\":66},{\"period_id\":\"120m209925\",\"size\":\"120m\",\"time\":1511460000000,\"open\":0.20701,\"high\":0.2083,\"low\":0.20646,\"close\":0.2083,\"volume\":1232249.5481780006,\"close_time\":1511467164713,\"vwap\":0.2051087793362276,\"ema1\":0.20242249155790257,\"sma1\":0.1962262037037037,\"sma2\":0.19996883333333343,\"rsi_avg_gain\":0.0008300216784011934,\"rsi_avg_loss\":0.00039675010520069106,\"rsi\":68},{\"period_id\":\"120m209924\",\"size\":\"120m\",\"time\":1511452800000,\"open\":0.204,\"high\":0.208,\"low\":0.20257,\"close\":0.20701,\"volume\":3353333.3538510166,\"close_time\":1511459973168,\"vwap\":0.20483462140537378,\"ema1\":0.20201714614810273,\"sma1\":0.19595518518518512,\"sma2\":0.1997133333333334,\"rsi_avg_gain\":0.0007946387305858996,\"rsi_avg_loss\":0.0004272693440622827,\"rsi\":65},{\"period_id\":\"120m209923\",\"size\":\"120m\",\"time\":1511445600000,\"open\":0.2038,\"high\":0.204,\"low\":0.20277,\"close\":0.204,\"volume\":1068651.5517517899,\"close_time\":1511452787259,\"vwap\":0.2030899962044271,\"ema1\":0.20167281139969603,\"sma1\":0.1957237037037037,\"sma2\":0.1995003333333334,\"rsi_avg_gain\":0.0006242263252463525,\"rsi_avg_loss\":0.0004601362166824583,\"rsi\":58},{\"period_id\":\"120m209922\",\"size\":\"120m\",\"time\":1511438400000,\"open\":0.2015,\"high\":0.20473,\"low\":0.20108,\"close\":0.20395,\"volume\":1206952.5871110403,\"close_time\":1511445599875,\"vwap\":0.20299761785807116,\"ema1\":0.20151231563415783,\"sma1\":0.19546222222222218,\"sma2\":0.19929783333333342,\"rsi_avg_gain\":0.0006683975810345339,\"rsi_avg_loss\":0.0004955313102734167,\"rsi\":57},{\"period_id\":\"120m209921\",\"size\":\"120m\",\"time\":1511431200000,\"open\":0.20205,\"high\":0.203,\"low\":0.2004,\"close\":0.20249,\"volume\":1267427.7514401998,\"close_time\":1511438314499,\"vwap\":0.20280402012738993,\"ema1\":0.2013441994709963,\"sma1\":0.19522138888888882,\"sma2\":0.19912800000000005,\"rsi_avg_gain\":0.0006075050872679604,\"rsi_avg_loss\":0.0005336491033713719,\"rsi\":53},{\"period_id\":\"120m209920\",\"size\":\"120m\",\"time\":1511424000000,\"open\":0.20271,\"high\":0.20348,\"low\":0.201,\"close\":0.20207,\"volume\":1254282.6533809998,\"close_time\":1511431188336,\"vwap\":0.20316745864793354,\"ema1\":0.2012651787448581,\"sma1\":0.19496888888888883,\"sma2\":0.19896916666666672,\"rsi_avg_gain\":0.0006219285555193417,\"rsi_avg_loss\":0.000574699034399939,\"rsi\":52},{\"period_id\":\"120m209919\",\"size\":\"120m\",\"time\":1511416800000,\"open\":0.20352,\"high\":0.20488,\"low\":0.2016,\"close\":0.2027,\"volume\":783677.1050473005,\"close_time\":1511423997249,\"vwap\":0.20377829784481263,\"ema1\":0.2012096738307104,\"sma1\":0.19470703703703704,\"sma2\":0.1987408333333334,\"rsi_avg_gain\":0.0006697692136362142,\"rsi_avg_loss\":0.0005704451139691657,\"rsi\":54},{\"period_id\":\"120m209918\",\"size\":\"120m\",\"time\":1511409600000,\"open\":0.20235,\"high\":0.2044,\"low\":0.20158,\"close\":0.20182,\"volume\":332666.98047993996,\"close_time\":1511416739820,\"vwap\":0.20377911683408695,\"ema1\":0.20110689271558696,\"sma1\":0.19445148148148148,\"sma2\":0.19854850000000004,\"rsi_avg_gain\":0.0006535976146851543,\"rsi_avg_loss\":0.0006143255073514092,\"rsi\":52},{\"period_id\":\"120m209917\",\"size\":\"120m\",\"time\":1511402400000,\"open\":0.20245,\"high\":0.20319,\"low\":0.2015,\"close\":0.20245,\"volume\":94018.41895133,\"close_time\":1511409541858,\"vwap\":0.20380123261422084,\"ema1\":0.2010577129028688,\"sma1\":0.19421824074074076,\"sma2\":0.19830600000000007,\"rsi_avg_gain\":0.0007038743542763201,\"rsi_avg_loss\":0.0006131197771476722,\"rsi\":53},{\"period_id\":\"120m209916\",\"size\":\"120m\",\"time\":1511395200000,\"open\":0.20288,\"high\":0.20406,\"low\":0.2015,\"close\":0.20246,\"volume\":905025.8519175604,\"close_time\":1511402350399,\"vwap\":0.20380987776842763,\"ema1\":0.20096169310306666,\"sma1\":0.1939537962962963,\"sma2\":0.1980830000000001,\"rsi_avg_gain\":0.0007580185353744986,\"rsi_avg_loss\":0.0006595136061590309,\"rsi\":53},{\"period_id\":\"120m209915\",\"size\":\"120m\",\"time\":1511388000000,\"open\":0.20468,\"high\":0.205,\"low\":0.2016,\"close\":0.20332,\"volume\":1224339.8817371898,\"close_time\":1511395061474,\"vwap\":0.20402651777772135,\"ema1\":0.20085836159293333,\"sma1\":0.19366212962962964,\"sma2\":0.1979130000000001,\"rsi_avg_gain\":0.0008163276534802293,\"rsi_avg_loss\":0.0006440915758635717,\"rsi\":56},{\"period_id\":\"120m209914\",\"size\":\"120m\",\"time\":1511380800000,\"open\":0.20168,\"high\":0.20488,\"low\":0.20151,\"close\":0.2046,\"volume\":1173801.88607649,\"close_time\":1511387995458,\"vwap\":0.20435187664368962,\"ema1\":0.20068859342692874,\"sma1\":0.19336222222222224,\"sma2\":0.19770300000000005,\"rsi_avg_gain\":0.0008791220883633238,\"rsi_avg_loss\":0.0005951755432376923,\"rsi\":60},{\"period_id\":\"120m209913\",\"size\":\"120m\",\"time\":1511373600000,\"open\":0.2012,\"high\":0.20292,\"low\":0.2,\"close\":0.20168,\"volume\":813905.8158250905,\"close_time\":1511380776554,\"vwap\":0.20240684652489924,\"ema1\":0.20041884124947554,\"sma1\":0.1930805555555556,\"sma2\":0.19755000000000006,\"rsi_avg_gain\":0.0007221314797758867,\"rsi_avg_loss\":0.0006409582773328993,\"rsi\":53},{\"period_id\":\"120m209912\",\"size\":\"120m\",\"time\":1511366400000,\"open\":0.20163,\"high\":0.204,\"low\":0.20009,\"close\":0.20294,\"volume\":1788743.1193710098,\"close_time\":1511373588986,\"vwap\":0.20243214590462488,\"ema1\":0.20033186478392212,\"sma1\":0.192797962962963,\"sma2\":0.1973983333333334,\"rsi_avg_gain\":0.0007776800551432626,\"rsi_avg_loss\":0.000593339683281583,\"rsi\":57},{\"period_id\":\"120m209911\",\"size\":\"120m\",\"time\":1511359200000,\"open\":0.20138,\"high\":0.202,\"low\":0.2,\"close\":0.20124,\"volume\":1000537.6612222702,\"close_time\":1511366359171,\"vwap\":0.20240791795153557,\"ema1\":0.20015199338970985,\"sma1\":0.19253407407407414,\"sma2\":0.1972928333333334,\"rsi_avg_gain\":0.0007067323670773591,\"rsi_avg_loss\":0.0006389811973801663,\"rsi\":53},{\"period_id\":\"120m209910\",\"size\":\"120m\",\"time\":1511352000000,\"open\":0.20086,\"high\":0.20185,\"low\":0.2,\"close\":0.20141,\"volume\":970720.5860405697,\"close_time\":1511359173776,\"vwap\":0.2024829722677138,\"ema1\":0.20007695845106915,\"sma1\":0.19227620370370374,\"sma2\":0.19719100000000003,\"rsi_avg_gain\":0.0007610963953140791,\"rsi_avg_loss\":0.0006750566741017173,\"rsi\":53},{\"period_id\":\"120m209909\",\"size\":\"120m\",\"time\":1511344800000,\"open\":0.20004,\"high\":0.202,\"low\":0.2,\"close\":0.20086,\"volume\":752880.6238023305,\"close_time\":1511351996965,\"vwap\":0.20255295023247424,\"ema1\":0.1999850245511429,\"sma1\":0.19202620370370374,\"sma2\":0.1971566666666667,\"rsi_avg_gain\":0.0007773345795690085,\"rsi_avg_loss\":0.0007269841105710801,\"rsi\":52},{\"period_id\":\"120m209908\",\"size\":\"120m\",\"time\":1511337600000,\"open\":0.20198,\"high\":0.202,\"low\":0.19969,\"close\":0.20007,\"volume\":653744.4946405801,\"close_time\":1511344770041,\"vwap\":0.20260772438163638,\"ema1\":0.19992468141673894,\"sma1\":0.19176601851851857,\"sma2\":0.19703050000000003,\"rsi_avg_gain\":0.0007763603164589312,\"rsi_avg_loss\":0.000782905965230394,\"rsi\":50},{\"period_id\":\"120m209907\",\"size\":\"120m\",\"time\":1511330400000,\"open\":0.20033,\"high\":0.203,\"low\":0.2,\"close\":0.202,\"volume\":652858.3084820701,\"close_time\":1511337347406,\"vwap\":0.20266172908954308,\"ema1\":0.19991465944547956,\"sma1\":0.19146509259259265,\"sma2\":0.19679716666666672,\"rsi_avg_gain\":0.000836080340801926,\"rsi_avg_loss\":0.0006946679625558077,\"rsi\":55},{\"period_id\":\"120m209906\",\"size\":\"120m\",\"time\":1511323200000,\"open\":0.1992,\"high\":0.2008,\"low\":0.199,\"close\":0.20078,\"volume\":199170.53298643001,\"close_time\":1511330223591,\"vwap\":0.20268857340098595,\"ema1\":0.19977084285551264,\"sma1\":0.19120675925925928,\"sma2\":0.19668500000000003,\"rsi_avg_gain\":0.000806548059325149,\"rsi_avg_loss\":0.0007481039596754852,\"rsi\":52},{\"period_id\":\"120m209905\",\"size\":\"120m\",\"time\":1511316000000,\"open\":0.19768,\"high\":0.19949,\"low\":0.19766,\"close\":0.199,\"volume\":139487.97756473004,\"close_time\":1511323109528,\"vwap\":0.2026955573364448,\"ema1\":0.19970124581106524,\"sma1\":0.19096027777777783,\"sma2\":0.19655366666666668,\"rsi_avg_gain\":0.0007316671408117008,\"rsi_avg_loss\":0.000805650418112061,\"rsi\":48},{\"period_id\":\"120m209904\",\"size\":\"120m\",\"time\":1511308800000,\"open\":0.1983,\"high\":0.1995,\"low\":0.1976,\"close\":0.19772,\"volume\":297919.29636284005,\"close_time\":1511315945772,\"vwap\":0.20269936821560505,\"ema1\":0.19974960759113872,\"sma1\":0.1907093518518519,\"sma2\":0.19639733333333337,\"rsi_avg_gain\":0.0006894876901049082,\"rsi_avg_loss\":0.0008676235271976041,\"rsi\":44},{\"period_id\":\"120m209903\",\"size\":\"120m\",\"time\":1511301600000,\"open\":0.20021,\"high\":0.2013,\"low\":0.198,\"close\":0.19832,\"volume\":1570212.2911061011,\"close_time\":1511308760197,\"vwap\":0.20272831130992364,\"ema1\":0.19988958052845862,\"sma1\":0.19041935185185185,\"sma2\":0.19626366666666673,\"rsi_avg_gain\":0.0007425252047283627,\"rsi_avg_loss\":0.0008882099523666514,\"rsi\":46},{\"period_id\":\"120m209902\",\"size\":\"120m\",\"time\":1511294400000,\"open\":0.20067,\"high\":0.2013,\"low\":0.2,\"close\":0.2001,\"volume\":826936.2524366702,\"close_time\":1511301577901,\"vwap\":0.20306711839211772,\"ema1\":0.19999782746145578,\"sma1\":0.1901387962962963,\"sma2\":0.19630866666666674,\"rsi_avg_gain\":0.000799642528169006,\"rsi_avg_loss\":0.0008196107179333166,\"rsi\":49},{\"period_id\":\"120m209901\",\"size\":\"120m\",\"time\":1511287200000,\"open\":0.20198,\"high\":0.204,\"low\":0.2,\"close\":0.2,\"volume\":1658189.0110132692,\"close_time\":1511294393668,\"vwap\":0.20319059384306362,\"ema1\":0.1999907810794872,\"sma1\":0.18983324074074073,\"sma2\":0.19622533333333342,\"rsi_avg_gain\":0.0008534611841820073,\"rsi_avg_loss\":0.0008826576962358794,\"rsi\":49},{\"period_id\":\"120m209900\",\"size\":\"120m\",\"time\":1511280000000,\"open\":0.20109,\"high\":0.202,\"low\":0.2006,\"close\":0.20198,\"volume\":655194.4879848204,\"close_time\":1511287150410,\"vwap\":0.20350103496006441,\"ema1\":0.19999014529186562,\"sma1\":0.1895647222222222,\"sma2\":0.1961323333333334,\"rsi_avg_gain\":0.0009191120445037002,\"rsi_avg_loss\":0.000798246749792487,\"rsi\":54},{\"period_id\":\"120m209899\",\"size\":\"120m\",\"time\":1511272800000,\"open\":0.20318,\"high\":0.20318,\"low\":0.2004,\"close\":0.20199,\"volume\":1154399.37290013,\"close_time\":1511279988375,\"vwap\":0.20359364522893972,\"ema1\":0.19985291393268395,\"sma1\":0.18928194444444438,\"sma2\":0.1961825000000001,\"rsi_avg_gain\":0.000989812971003985,\"rsi_avg_loss\":0.0008588811151611391,\"rsi\":54},{\"period_id\":\"120m209898\",\"size\":\"120m\",\"time\":1511265600000,\"open\":0.203,\"high\":0.20351,\"low\":0.20104,\"close\":0.20282,\"volume\":722255.2621213497,\"close_time\":1511272705668,\"vwap\":0.20382249652644094,\"ema1\":0.19970552868666216,\"sma1\":0.18902351851851848,\"sma2\":0.19646883333333343,\"rsi_avg_gain\":0.0010659524303119837,\"rsi_avg_loss\":0.0008611027394043039,\"rsi\":55},{\"period_id\":\"120m209897\",\"size\":\"120m\",\"time\":1511258400000,\"open\":0.20344,\"high\":0.20371,\"low\":0.20164,\"close\":0.2021,\"volume\":1164843.6084483103,\"close_time\":1511265582357,\"vwap\":0.20389116506563398,\"ema1\":0.19949073756160438,\"sma1\":0.18876972222222219,\"sma2\":0.19605050000000007,\"rsi_avg_gain\":0.001092564155720598,\"rsi_avg_loss\":0.0009273414116661734,\"rsi\":54},{\"period_id\":\"120m209896\",\"size\":\"120m\",\"time\":1511251200000,\"open\":0.20227,\"high\":0.20492,\"low\":0.202,\"close\":0.20212,\"volume\":661131.9622503897,\"close_time\":1511258386621,\"vwap\":0.20400699785585882,\"ema1\":0.1993107884279219,\"sma1\":0.1884599074074074,\"sma2\":0.1956318333333334,\"rsi_avg_gain\":0.00117660755231449,\"rsi_avg_loss\":0.0009971369048712643,\"rsi\":54},{\"period_id\":\"120m209895\",\"size\":\"120m\",\"time\":1511244000000,\"open\":0.20199,\"high\":0.20549,\"low\":0.20093,\"close\":0.20225,\"volume\":1112220.7707674399,\"close_time\":1511251168939,\"vwap\":0.20405619651282955,\"ema1\":0.19911704969881308,\"sma1\":0.18814046296296288,\"sma2\":0.19523766666666673,\"rsi_avg_gain\":0.0012671158255694506,\"rsi_avg_loss\":0.001063839743707514,\"rsi\":54},{\"period_id\":\"120m209894\",\"size\":\"120m\",\"time\":1511236800000,\"open\":0.2,\"high\":0.20306,\"low\":0.197,\"close\":0.20249,\"volume\":767532.2100792999,\"close_time\":1511243992356,\"vwap\":0.20425068893454743,\"ema1\":0.19890098416080018,\"sma1\":0.18786722222222213,\"sma2\":0.19485366666666673,\"rsi_avg_gain\":0.0013645862736901776,\"rsi_avg_loss\":0.0011272120316850158,\"rsi\":55},{\"period_id\":\"120m209893\",\"size\":\"120m\",\"time\":1511229600000,\"open\":0.20572,\"high\":0.206,\"low\":0.2,\"close\":0.2,\"volume\":808537.5062438501,\"close_time\":1511236760328,\"vwap\":0.20464117856507424,\"ema1\":0.19865346582706225,\"sma1\":0.1875750925925925,\"sma2\":0.19448700000000005,\"rsi_avg_gain\":0.0012780159870509611,\"rsi_avg_loss\":0.00121392064950694,\"rsi\":51},{\"period_id\":\"120m209892\",\"size\":\"120m\",\"time\":1511222400000,\"open\":0.2,\"high\":0.20599,\"low\":0.2,\"close\":0.20586,\"volume\":658444.3325874807,\"close_time\":1511228996424,\"vwap\":0.20478390886277967,\"ema1\":0.1985606014013424,\"sma1\":0.18731314814814812,\"sma2\":0.19405600000000003,\"rsi_avg_gain\":0.0013763249091318043,\"rsi_avg_loss\":0.0008565299302382449,\"rsi\":62},{\"period_id\":\"120m209891\",\"size\":\"120m\",\"time\":1511215200000,\"open\":0.2075,\"high\":0.20788,\"low\":0.1992,\"close\":0.2,\"volume\":2154059.49515276,\"close_time\":1511222392685,\"vwap\":0.2048271212200264,\"ema1\":0.19805719460143498,\"sma1\":0.18704111111111102,\"sma2\":0.19368600000000005,\"rsi_avg_gain\":0.001031426825218868,\"rsi_avg_loss\":0.0009224168479488791,\"rsi\":53},{\"period_id\":\"120m209890\",\"size\":\"120m\",\"time\":1511208000000,\"open\":0.205,\"high\":0.2079,\"low\":0.204,\"close\":0.207,\"volume\":1726159.0560208398,\"close_time\":1511215187487,\"vwap\":0.20646846306295244,\"ema1\":0.1979232080222236,\"sma1\":0.18678259259259256,\"sma2\":0.19319733333333336,\"rsi_avg_gain\":0.001110767350235704,\"rsi_avg_loss\":0.00045491045163725607,\"rsi\":71},{\"period_id\":\"120m209889\",\"size\":\"120m\",\"time\":1511200800000,\"open\":0.205,\"high\":0.20791,\"low\":0.20401,\"close\":0.205,\"volume\":1288062.0671158903,\"close_time\":1511207996129,\"vwap\":0.20505591623197308,\"ema1\":0.19729722236858385,\"sma1\":0.186524537037037,\"sma2\":0.19271800000000003,\"rsi_avg_gain\":0.0010423648387153735,\"rsi_avg_loss\":0.0004899035633016604,\"rsi\":68},{\"period_id\":\"120m209888\",\"size\":\"120m\",\"time\":1511193600000,\"open\":0.2045,\"high\":0.205,\"low\":0.2012,\"close\":0.205,\"volume\":1174516.4974492008,\"close_time\":1511200734154,\"vwap\":0.1979174574172758,\"ema1\":0.1967659963250379,\"sma1\":0.18628749999999994,\"sma2\":0.19226016666666668,\"rsi_avg_gain\":0.0011225467493857868,\"rsi_avg_loss\":0.0005275884527864035,\"rsi\":68},{\"period_id\":\"120m209887\",\"size\":\"120m\",\"time\":1511186400000,\"open\":0.2017,\"high\":0.20486,\"low\":0.20116,\"close\":0.2045,\"volume\":1245355.5586386702,\"close_time\":1511193599796,\"vwap\":0.19731778939164307,\"ema1\":0.19619813400262673,\"sma1\":0.18600129629629628,\"sma2\":0.19182966666666668,\"rsi_avg_gain\":0.0011704349608770012,\"rsi_avg_loss\":0.0005681721799238192,\"rsi\":67},{\"period_id\":\"120m209886\",\"size\":\"120m\",\"time\":1511179200000,\"open\":0.20345,\"high\":0.20345,\"low\":0.1993,\"close\":0.2017,\"volume\":920490.0952195205,\"close_time\":1511186377172,\"vwap\":0.19675528383516144,\"ema1\":0.19562559152004927,\"sma1\":0.18574498444444443,\"sma2\":0.1914503333333334,\"rsi_avg_gain\":0.0010450838040213862,\"rsi_avg_loss\":0.0006118777322256514,\"rsi\":63},{\"period_id\":\"120m209885\",\"size\":\"120m\",\"time\":1511172000000,\"open\":0.1999,\"high\":0.20397,\"low\":0.1993,\"close\":0.20348,\"volume\":1839783.4880044202,\"close_time\":1511179183122,\"vwap\":0.1964912881084798,\"ema1\":0.19520666679729404,\"sma1\":0.18553609555555556,\"sma2\":0.1910556666666667,\"rsi_avg_gain\":0.0011254748658691852,\"rsi_avg_loss\":0.0005220221731660858,\"rsi\":68},{\"period_id\":\"120m209884\",\"size\":\"120m\",\"time\":1511164800000,\"open\":0.19989,\"high\":0.201,\"low\":0.199,\"close\":0.2,\"volume\":915706.22185213,\"close_time\":1511171992849,\"vwap\":0.19564680990624603,\"ema1\":0.19463609209365915,\"sma1\":0.18535091037037038,\"sma2\":0.19070833333333337,\"rsi_avg_gain\":0.0009443575478591237,\"rsi_avg_loss\":0.0005621777249480923,\"rsi\":63},{\"period_id\":\"120m209883\",\"size\":\"120m\",\"time\":1511157600000,\"open\":0.20058,\"high\":0.20097,\"low\":0.19501,\"close\":0.1995,\"volume\":831625.2586599299,\"close_time\":1511164735130,\"vwap\":0.19534874106267447,\"ema1\":0.19426616741046324,\"sma1\":0.18514146592592595,\"sma2\":0.19035000000000002,\"rsi_avg_gain\":0.0009785388976944409,\"rsi_avg_loss\":0.0006054221653287148,\"rsi\":62},{\"period_id\":\"120m209882\",\"size\":\"120m\",\"time\":1511150400000,\"open\":0.19996,\"high\":0.205,\"low\":0.19909,\"close\":0.201,\"volume\":1616283.4260598102,\"close_time\":1511157581859,\"vwap\":0.1951216022816873,\"ema1\":0.19390521343877104,\"sma1\":0.18488220666666672,\"sma2\":0.18994083333333336,\"rsi_avg_gain\":0.0010538111205940133,\"rsi_avg_loss\":0.0005366084857386159,\"rsi\":66},{\"period_id\":\"120m209881\",\"size\":\"120m\",\"time\":1511143200000,\"open\":0.19688,\"high\":0.2,\"low\":0.19686,\"close\":0.2,\"volume\":1187892.34910101,\"close_time\":1511150148973,\"vwap\":0.19422062802888918,\"ema1\":0.1934159178138587,\"sma1\":0.18466924370370372,\"sma2\":0.18954200000000002,\"rsi_avg_gain\":0.0010579504375627833,\"rsi_avg_loss\":0.0005778860615646633,\"rsi\":65},{\"period_id\":\"120m209880\",\"size\":\"120m\",\"time\":1511136000000,\"open\":0.195,\"high\":0.19686,\"low\":0.19494,\"close\":0.19686,\"volume\":818428.4982289891,\"close_time\":1511143199207,\"vwap\":0.1937622539612103,\"ema1\":0.19296184318033172,\"sma1\":0.18448785481481483,\"sma2\":0.18920450000000003,\"rsi_avg_gain\":0.0008977927789137664,\"rsi_avg_loss\":0.0006223388355311759,\"rsi\":59},{\"period_id\":\"120m209879\",\"size\":\"120m\",\"time\":1511128800000,\"open\":0.19498,\"high\":0.19587,\"low\":0.19353,\"close\":0.19499,\"volume\":774808.4024525699,\"close_time\":1511135815175,\"vwap\":0.19364040908591154,\"ema1\":0.19269300477897527,\"sma1\":0.1843316511111111,\"sma2\":0.188885,\"rsi_avg_gain\":0.0008230076080609784,\"rsi_avg_loss\":0.0006702110536489587,\"rsi\":55},{\"period_id\":\"120m209878\",\"size\":\"120m\",\"time\":1511121600000,\"open\":0.19592,\"high\":0.19595,\"low\":0.1938,\"close\":0.195,\"volume\":735082.8656450599,\"close_time\":1511128784054,\"vwap\":0.19362598217440447,\"ema1\":0.19253459131545633,\"sma1\":0.18414220666666664,\"sma2\":0.18856866666666666,\"rsi_avg_gain\":0.0008863158856041305,\"rsi_avg_loss\":0.0007209965193142625,\"rsi\":55},{\"period_id\":\"120m209877\",\"size\":\"120m\",\"time\":1511114400000,\"open\":0.19593,\"high\":0.19599,\"low\":0.19311,\"close\":0.19493,\"volume\":542808.07858512,\"close_time\":1511121526078,\"vwap\":0.19358733887332238,\"ema1\":0.19236456313031539,\"sma1\":0.18396822518518513,\"sma2\":0.1882625,\"rsi_avg_gain\":0.0009491094152659857,\"rsi_avg_loss\":0.0007764577900307443,\"rsi\":55},{\"period_id\":\"120m209876\",\"size\":\"120m\",\"time\":1511107200000,\"open\":0.195,\"high\":0.1975,\"low\":0.19462,\"close\":0.19593,\"volume\":736890.6753688401,\"close_time\":1511114338732,\"vwap\":0.19354925597988104,\"ema1\":0.19218763644964748,\"sma1\":0.1837876696296296,\"sma2\":0.18795900000000001,\"rsi_avg_gain\":0.0010221178318249077,\"rsi_avg_loss\":0.0007592622354177246,\"rsi\":57},{\"period_id\":\"120m209875\",\"size\":\"120m\",\"time\":1511100000000,\"open\":0.1949,\"high\":0.1969,\"low\":0.19441,\"close\":0.1955,\"volume\":602072.8910201305,\"close_time\":1511107180197,\"vwap\":0.19335533397266447,\"ema1\":0.19192954241169213,\"sma1\":0.183620077037037,\"sma2\":0.18766566666666668,\"rsi_avg_gain\":0.0010676653573499016,\"rsi_avg_loss\":0.0008176670227575496,\"rsi\":57},{\"period_id\":\"120m209874\",\"size\":\"120m\",\"time\":1511092800000,\"open\":0.19514,\"high\":0.19625,\"low\":0.19305,\"close\":0.1949,\"volume\":664404.7235030198,\"close_time\":1511099955847,\"vwap\":0.19321897931289728,\"ema1\":0.19168330395732608,\"sma1\":0.18350841037037036,\"sma2\":0.18735733333333332,\"rsi_avg_gain\":0.001103639615607585,\"rsi_avg_loss\":0.0008805644860465919,\"rsi\":56},{\"period_id\":\"120m209873\",\"size\":\"120m\",\"time\":1511085600000,\"open\":0.19348,\"high\":0.199,\"low\":0.19165,\"close\":0.19575,\"volume\":1621898.0825811503,\"close_time\":1511092680789,\"vwap\":0.19312469650082223,\"ema1\":0.19146146285093477,\"sma1\":0.18338970666666668,\"sma2\":0.18702149999999998,\"rsi_avg_gain\":0.0011885349706543223,\"rsi_avg_loss\":0.0008829156003578668,\"rsi\":57},{\"period_id\":\"120m209872\",\"size\":\"120m\",\"time\":1511078400000,\"open\":0.19096,\"high\":0.194,\"low\":0.18996,\"close\":0.19348,\"volume\":852182.0922368199,\"close_time\":1511085595664,\"vwap\":0.19197373677546156,\"ema1\":0.19116570166824062,\"sma1\":0.1833113733333333,\"sma2\":0.1867268333333333,\"rsi_avg_gain\":0.0011053453530123476,\"rsi_avg_loss\":0.0009508321850007796,\"rsi\":54},{\"period_id\":\"120m209871\",\"size\":\"120m\",\"time\":1511071200000,\"open\":0.19277,\"high\":0.19329,\"low\":0.19,\"close\":0.19086,\"volume\":458432.8250426699,\"close_time\":1511078362857,\"vwap\":0.19208538515152052,\"ema1\":0.19100609488673997,\"sma1\":0.18325933629629632,\"sma2\":0.18645166666666663,\"rsi_avg_gain\":0.0009888334570902196,\"rsi_avg_loss\":0.0010239731223085319,\"rsi\":49},{\"period_id\":\"120m209870\",\"size\":\"120m\",\"time\":1511064000000,\"open\":0.194,\"high\":0.19403,\"low\":0.1923,\"close\":0.19231,\"volume\":53869.48320576,\"close_time\":1511071090724,\"vwap\":0.19218165021865566,\"ema1\":0.19101617039617033,\"sma1\":0.18321554,\"sma2\":0.18617949999999997,\"rsi_avg_gain\":0.0010648975691740826,\"rsi_avg_loss\":0.0009912018240245722,\"rsi\":52},{\"period_id\":\"120m209869\",\"size\":\"120m\",\"time\":1511056800000,\"open\":0.19382,\"high\":0.19447,\"low\":0.19291,\"close\":0.1941,\"volume\":69829.77653239999,\"close_time\":1511063790758,\"vwap\":0.19218048742188287,\"ema1\":0.19092694076832,\"sma1\":0.18316304,\"sma2\":0.18588683333333325,\"rsi_avg_gain\":0.001146812766802858,\"rsi_avg_loss\":0.000929755810488002,\"rsi\":55},{\"period_id\":\"120m209868\",\"size\":\"120m\",\"time\":1511049600000,\"open\":0.193,\"high\":0.19444,\"low\":0.1925,\"close\":0.19271,\"volume\":124356.55947407,\"close_time\":1511056574457,\"vwap\":0.1921778592973942,\"ema1\":0.19070810909716968,\"sma1\":0.18311359555555548,\"sma2\":0.18559999999999993,\"rsi_avg_gain\":0.0011281060565569239,\"rsi_avg_loss\":0.0010012754882178483,\"rsi\":53},{\"period_id\":\"120m209867\",\"size\":\"120m\",\"time\":1511042400000,\"open\":0.1935,\"high\":0.19999,\"low\":0.19211,\"close\":0.193,\"volume\":1359178.4623398397,\"close_time\":1511049586357,\"vwap\":0.19217154954095472,\"ema1\":0.19057004765559518,\"sma1\":0.18301600296296291,\"sma2\":0.18527499999999997,\"rsi_avg_gain\":0.001214883445522841,\"rsi_avg_loss\":0.001055988987311528,\"rsi\":53},{\"period_id\":\"120m209866\",\"size\":\"120m\",\"time\":1511035200000,\"open\":0.19234,\"high\":0.1939,\"low\":0.19201,\"close\":0.19372,\"volume\":268536.1830867801,\"close_time\":1511042361722,\"vwap\":0.19130409195925324,\"ema1\":0.1904024647352914,\"sma1\":0.18298720666666662,\"sma2\":0.18491283333333325,\"rsi_avg_gain\":0.0013083360182553673,\"rsi_avg_loss\":0.0010818342940277996,\"rsi\":55},{\"period_id\":\"120m209865\",\"size\":\"120m\",\"time\":1511028000000,\"open\":0.1917,\"high\":0.1949,\"low\":0.1917,\"close\":0.19231,\"volume\":728270.7040220896,\"close_time\":1511035186530,\"vwap\":0.19125496701012606,\"ema1\":0.19017366919979425,\"sma1\":0.18295637333333328,\"sma2\":0.18457433333333328,\"rsi_avg_gain\":0.0013005157119673188,\"rsi_avg_loss\":0.0011650523166453226,\"rsi\":53},{\"period_id\":\"120m209864\",\"size\":\"120m\",\"time\":1511020800000,\"open\":0.19089,\"high\":0.1925,\"low\":0.19016,\"close\":0.19168,\"volume\":464501.62250984996,\"close_time\":1511027934129,\"vwap\":0.190848901093475,\"ema1\":0.19002633604115937,\"sma1\":0.18294803999999995,\"sma2\":0.1842546666666666,\"rsi_avg_gain\":0.0013520938436571111,\"rsi_avg_loss\":0.0012546717256180396,\"rsi\":52},{\"period_id\":\"120m209863\",\"size\":\"120m\",\"time\":1511013600000,\"open\":0.1919,\"high\":0.1919,\"low\":0.19,\"close\":0.19122,\"volume\":390100.3060764898,\"close_time\":1511020756298,\"vwap\":0.1907614037109992,\"ema1\":0.1899122902508945,\"sma1\":0.1829258177777777,\"sma2\":0.18395099999999995,\"rsi_avg_gain\":0.0014207164470153514,\"rsi_avg_loss\":0.0013511849352809656,\"rsi\":51},{\"period_id\":\"120m209862\",\"size\":\"120m\",\"time\":1511006400000,\"open\":0.1923,\"high\":0.19247,\"low\":0.191,\"close\":0.1918,\"volume\":337951.37589794997,\"close_time\":1511013473993,\"vwap\":0.19074696056759355,\"ema1\":0.18982210337164585,\"sma1\":0.1828822066666666,\"sma2\":0.1836383333333333,\"rsi_avg_gain\":0.001530002327554994,\"rsi_avg_loss\":0.0014105068533795016,\"rsi\":52},{\"period_id\":\"120m209861\",\"size\":\"120m\",\"time\":1510999200000,\"open\":0.19251,\"high\":0.19253,\"low\":0.19101,\"close\":0.1923,\"volume\":385301.98817009997,\"close_time\":1511006395926,\"vwap\":0.19066239769689397,\"ema1\":0.18968569670762142,\"sma1\":0.1828587807407407,\"sma2\":0.1833331666666666,\"rsi_avg_gain\":0.0016476948142899934,\"rsi_avg_loss\":0.0014805458421010018,\"rsi\":53},{\"period_id\":\"120m209860\",\"size\":\"120m\",\"time\":1510992000000,\"open\":0.18916,\"high\":0.194,\"low\":0.18914,\"close\":0.19254,\"volume\":803391.3881384006,\"close_time\":1510999159827,\"vwap\":0.19052954108294284,\"ema1\":0.1895053999288367,\"sma1\":0.1828586881481481,\"sma2\":0.1830156666666666,\"rsi_avg_gain\":0.0017744405692353775,\"rsi_avg_loss\":0.0015759724453395412,\"rsi\":53},{\"period_id\":\"120m209859\",\"size\":\"120m\",\"time\":1510984800000,\"open\":0.1897,\"high\":0.191,\"low\":0.188,\"close\":0.189,\"volume\":488820.45648977003,\"close_time\":1510991947134,\"vwap\":0.18973401177094762,\"ema1\":0.1892961171653082,\"sma1\":0.18288137333333326,\"sma2\":0.18267499999999998,\"rsi_avg_gain\":0.0016386283053304075,\"rsi_avg_loss\":0.0016972010949810443,\"rsi\":49},{\"period_id\":\"120m209858\",\"size\":\"120m\",\"time\":1510977600000,\"open\":0.1878,\"high\":0.19247,\"low\":0.18721,\"close\":0.19028,\"volume\":289907.14823640994,\"close_time\":1510984750372,\"vwap\":0.1898600716041318,\"ema1\":0.18931653903877774,\"sma1\":0.18287785481481475,\"sma2\":0.18232716666666662,\"rsi_avg_gain\":0.0017646766365096694,\"rsi_avg_loss\":0.0017292934869026627,\"rsi\":51},{\"period_id\":\"120m209857\",\"size\":\"120m\",\"time\":1510970400000,\"open\":0.1891,\"high\":0.192,\"low\":0.1879,\"close\":0.1879,\"volume\":234549.13786073995,\"close_time\":1510977539952,\"vwap\":0.18990266801825248,\"ema1\":0.18925009345524516,\"sma1\":0.18287776222222216,\"sma2\":0.18207549999999997,\"rsi_avg_gain\":0.0017173440700873367,\"rsi_avg_loss\":0.0018623160628182523,\"rsi\":48},{\"period_id\":\"120m209856\",\"size\":\"120m\",\"time\":1510963200000,\"open\":0.19112,\"high\":0.19277,\"low\":0.1889,\"close\":0.18908,\"volume\":926769.0720193102,\"close_time\":1510970297833,\"vwap\":0.19000575847419054,\"ema1\":0.18934320334871033,\"sma1\":0.18286554,\"sma2\":0.18172000833333335,\"rsi_avg_gain\":0.001849447460094055,\"rsi_avg_loss\":0.0019148019138042727,\"rsi\":49},{\"period_id\":\"120m209855\",\"size\":\"120m\",\"time\":1510956000000,\"open\":0.192,\"high\":0.19408,\"low\":0.191,\"close\":0.19312,\"volume\":428584.75338550995,\"close_time\":1510963099527,\"vwap\":0.1977693985289522,\"ema1\":0.1893613553037938,\"sma1\":0.18286479925925925,\"sma2\":0.18132634166666664,\"rsi_avg_gain\":0.001991712649332059,\"rsi_avg_loss\":0.001751325137943062,\"rsi\":53},{\"period_id\":\"120m209854\",\"size\":\"120m\",\"time\":1510948800000,\"open\":0.1925,\"high\":0.19408,\"low\":0.19061,\"close\":0.192,\"volume\":621065.0758878803,\"close_time\":1510955983115,\"vwap\":0.19778854591546094,\"ema1\":0.18910213842819337,\"sma1\":0.18281776222222218,\"sma2\":0.18091634166666665,\"rsi_avg_gain\":0.0020587674685114475,\"rsi_avg_loss\":0.0018860424562463743,\"rsi\":52},{\"period_id\":\"120m209853\",\"size\":\"120m\",\"time\":1510941600000,\"open\":0.19389,\"high\":0.19475,\"low\":0.19061,\"close\":0.1925,\"volume\":1033069.886988151,\"close_time\":1510948796268,\"vwap\":0.19784225929228177,\"ema1\":0.1889022859059998,\"sma1\":0.18272646592592587,\"sma2\":0.180541675,\"rsi_avg_gain\":0.002217134196858482,\"rsi_avg_loss\":0.0019926611067268645,\"rsi\":53},{\"period_id\":\"120m209852\",\"size\":\"120m\",\"time\":1510934400000,\"open\":0.19491,\"high\":0.196,\"low\":0.19103,\"close\":0.19384,\"volume\":1005591.6163256401,\"close_time\":1510941572001,\"vwap\":0.19793963588546354,\"ema1\":0.18865416769262047,\"sma1\":0.18259544740740735,\"sma2\":0.18014800833333336,\"rsi_avg_gain\":0.0023876829812322113,\"rsi_avg_loss\":0.002042865807244315,\"rsi\":54},{\"period_id\":\"120m209851\",\"size\":\"120m\",\"time\":1510927200000,\"open\":0.19521,\"high\":0.19796,\"low\":0.1946,\"close\":0.19491,\"volume\":960112.6958736299,\"close_time\":1510934385989,\"vwap\":0.19802072067667684,\"ema1\":0.188296524085215,\"sma1\":0.1824462807407407,\"sma2\":0.179732675,\"rsi_avg_gain\":0.002571350902865458,\"rsi_avg_loss\":0.0021177016385708013,\"rsi\":55},{\"period_id\":\"120m209850\",\"size\":\"120m\",\"time\":1510920000000,\"open\":0.1988,\"high\":0.199,\"low\":0.19422,\"close\":0.1953,\"volume\":1780399.7603614214,\"close_time\":1510927150967,\"vwap\":0.19807552365475256,\"ema1\":0.18784042229798845,\"sma1\":0.18227952148148144,\"sma2\":0.17931750833333332,\"rsi_avg_gain\":0.002769147126162801,\"rsi_avg_loss\":0.0022506017646147093,\"rsi\":55},{\"period_id\":\"120m209849\",\"size\":\"120m\",\"time\":1510912800000,\"open\":0.19248,\"high\":0.2,\"low\":0.1905,\"close\":0.1988,\"volume\":2745150.4320924804,\"close_time\":1510919995239,\"vwap\":0.19816239499806945,\"ema1\":0.18732596866336695,\"sma1\":0.18211100296296293,\"sma2\":0.1788875083333333,\"rsi_avg_gain\":0.0029821584435599396,\"rsi_avg_loss\":0.0021544942080466097,\"rsi\":58},{\"period_id\":\"120m209848\",\"size\":\"120m\",\"time\":1510905600000,\"open\":0.18905,\"high\":0.1943,\"low\":0.187,\"close\":0.1925,\"volume\":1784900.3421344298,\"close_time\":1510912797579,\"vwap\":0.19837232274448227,\"ema1\":0.18653465615739226,\"sma1\":0.18199248444444438,\"sma2\":0.17844600833333332,\"rsi_avg_gain\":0.0027269398622953196,\"rsi_avg_loss\":0.0023202245317425025,\"rsi\":54},{\"period_id\":\"120m209847\",\"size\":\"120m\",\"time\":1510898400000,\"open\":0.19545,\"high\":0.19594,\"low\":0.187,\"close\":0.188,\"volume\":1178642.750786331,\"close_time\":1510905535766,\"vwap\":0.19883860696796082,\"ema1\":0.18612325313376413,\"sma1\":0.18183091037037033,\"sma2\":0.177999675,\"rsi_avg_gain\":0.0025905506209334206,\"rsi_avg_loss\":0.002498703341876541,\"rsi\":51},{\"period_id\":\"120m209846\",\"size\":\"120m\",\"time\":1510891200000,\"open\":0.19199,\"high\":0.19689,\"low\":0.1894,\"close\":0.19405,\"volume\":956434.2075968998,\"close_time\":1510898331739,\"vwap\":0.19908388374427735,\"ema1\":0.18599382231540304,\"sma1\":0.18165322518518517,\"sma2\":0.17759884166666665,\"rsi_avg_gain\":0.0027898237456206072,\"rsi_avg_loss\":0.002225526675867044,\"rsi\":56},{\"period_id\":\"120m209845\",\"size\":\"120m\",\"time\":1510884000000,\"open\":0.187,\"high\":0.1955,\"low\":0.18683,\"close\":0.19112,\"volume\":924918.4014456196,\"close_time\":1510891162791,\"vwap\":0.19916241140761273,\"ema1\":0.18543822385439634,\"sma1\":0.18148841037037033,\"sma2\":0.17723384166666664,\"rsi_avg_gain\":0.0027790409568221935,\"rsi_avg_loss\":0.002396721035549124,\"rsi\":54},{\"period_id\":\"120m209844\",\"size\":\"120m\",\"time\":1510876800000,\"open\":0.19099,\"high\":0.1929,\"low\":0.185,\"close\":0.18834,\"volume\":1080509.2536917797,\"close_time\":1510883939814,\"vwap\":0.1992707690619905,\"ema1\":0.18504637722366507,\"sma1\":0.18135044740740738,\"sma2\":0.176999175,\"rsi_avg_gain\":0.002778967184270054,\"rsi_avg_loss\":0.002581084192129826,\"rsi\":52},{\"period_id\":\"120m209843\",\"size\":\"120m\",\"time\":1510869600000,\"open\":0.20252,\"high\":0.203,\"low\":0.19,\"close\":0.1903,\"volume\":3056503.1666262676,\"close_time\":1510876786878,\"vwap\":0.19969079942085274,\"ema1\":0.18481923082529714,\"sma1\":0.18111878074074073,\"sma2\":0.17677250833333333,\"rsi_avg_gain\":0.0029927338907523656,\"rsi_avg_loss\":0.002628859899216736,\"rsi\":53},{\"period_id\":\"120m209842\",\"size\":\"120m\",\"time\":1510862400000,\"open\":0.195,\"high\":0.209,\"low\":0.19241,\"close\":0.2028,\"volume\":5328767.228624752,\"close_time\":1510869597062,\"vwap\":0.20127023099120014,\"ema1\":0.18444124674428314,\"sma1\":0.18081313259259257,\"sma2\":0.17632550833333333,\"rsi_avg_gain\":0.003222944190041009,\"rsi_avg_loss\":0.001869541429925715,\"rsi\":63},{\"period_id\":\"120m209841\",\"size\":\"120m\",\"time\":1510855200000,\"open\":0.19512,\"high\":0.201,\"low\":0.1905,\"close\":0.195,\"volume\":3369777.689228698,\"close_time\":1510862391100,\"vwap\":0.19481057076078717,\"ema1\":0.18317512583009576,\"sma1\":0.18058378074074072,\"sma2\":0.1760255083333333,\"rsi_avg_gain\":0.0028708629738903174,\"rsi_avg_loss\":0.00201335230915077,\"rsi\":59},{\"period_id\":\"120m209840\",\"size\":\"120m\",\"time\":1510848000000,\"open\":0.2055,\"high\":0.2098,\"low\":0.195,\"close\":0.1964,\"volume\":6663655.530201383,\"close_time\":1510855198173,\"vwap\":0.19618568354735313,\"ema1\":0.1823596172666541,\"sma1\":0.18027998444444446,\"sma2\":0.17574217499999994,\"rsi_avg_gain\":0.0030916985872664958,\"rsi_avg_loss\":0.002060533256008523,\"rsi\":60},{\"period_id\":\"120m209839\",\"size\":\"120m\",\"time\":1510840800000,\"open\":0.22,\"high\":0.22,\"low\":0.194,\"close\":0.205,\"volume\":15617530.64268609,\"close_time\":1510847998500,\"vwap\":0.20685629889209364,\"ema1\":0.18139131500918196,\"sma1\":0.17989850296296292,\"sma2\":0.17520267499999995,\"rsi_avg_gain\":0.0033295215555177644,\"rsi_avg_loss\":0.0015574973526245634,\"rsi\":68},{\"period_id\":\"120m209838\",\"size\":\"120m\",\"time\":1510833600000,\"open\":0.17678,\"high\":0.22,\"low\":0.1757,\"close\":0.22,\"volume\":10349111.628457345,\"close_time\":1510840796412,\"vwap\":0.20508493030383365,\"ema1\":0.1797631298374014,\"sma1\":0.17952257703703703,\"sma2\":0.1743610083333333,\"rsi_avg_gain\":0.0035856385982499,\"rsi_avg_loss\":0.0005234586874418366,\"rsi\":87},{\"period_id\":\"120m209837\",\"size\":\"120m\",\"time\":1510826400000,\"open\":0.177,\"high\":0.1778,\"low\":0.17555,\"close\":0.177,\"volume\":1105490.1614706505,\"close_time\":1510833568077,\"vwap\":0.17712616750156407,\"ema1\":0.17698817327446356,\"sma1\":0.17950692888888892,\"sma2\":0.17427934166666662,\"rsi_avg_gain\":0.0005537646442691225,\"rsi_avg_loss\":0.0005637247403219779,\"rsi\":50},{\"period_id\":\"120m209836\",\"size\":\"120m\",\"time\":1510819200000,\"open\":0.1785,\"high\":0.17858,\"low\":0.176,\"close\":0.177,\"volume\":397588.30518430006,\"close_time\":1510826392504,\"vwap\":0.17713443248690247,\"ema1\":0.17698735763821966,\"sma1\":0.1794858177777778,\"sma2\":0.1743330083333333,\"rsi_avg_gain\":0.0005963619245975165,\"rsi_avg_loss\":0.000607088181885207,\"rsi\":50},{\"period_id\":\"120m209835\",\"size\":\"120m\",\"time\":1510812000000,\"open\":0.179,\"high\":0.17957,\"low\":0.1775,\"close\":0.1786,\"volume\":236250.85952177003,\"close_time\":1510819171050,\"vwap\":0.1771316319105103,\"ema1\":0.17698648575120032,\"sma1\":0.17944692888888894,\"sma2\":0.1743230083333333,\"rsi_avg_gain\":0.0006422359187973254,\"rsi_avg_loss\":0.0005307103497225292,\"rsi\":55},{\"period_id\":\"120m209834\",\"size\":\"120m\",\"time\":1510804800000,\"open\":0.17893,\"high\":0.1797,\"low\":0.17753,\"close\":0.17945,\"volume\":206948.74571139002,\"close_time\":1510811990052,\"vwap\":0.17712823787642243,\"ema1\":0.17687520890645553,\"sma1\":0.1794049844444445,\"sma2\":0.174257175,\"rsi_avg_gain\":0.0006916386817817352,\"rsi_avg_loss\":0.0005061496073934939,\"rsi\":58},{\"period_id\":\"120m209833\",\"size\":\"120m\",\"time\":1510797600000,\"open\":0.17994,\"high\":0.17997,\"low\":0.17603,\"close\":0.178,\"volume\":353774.0085576001,\"close_time\":1510804386630,\"vwap\":0.17712526406470305,\"ema1\":0.17669763710690073,\"sma1\":0.17935433629629635,\"sma2\":0.17422967499999995,\"rsi_avg_gain\":0.0006333031957649452,\"rsi_avg_loss\":0.0005450841925776088,\"rsi\":54},{\"period_id\":\"120m209832\",\"size\":\"120m\",\"time\":1510790400000,\"open\":0.1778,\"high\":0.1809,\"low\":0.17779,\"close\":0.18,\"volume\":1361998.4149140103,\"close_time\":1510797487097,\"vwap\":0.17711955268999818,\"ema1\":0.17660781897634217,\"sma1\":0.17930896592592596,\"sma2\":0.17417967499999998,\"rsi_avg_gain\":0.0006820188262084025,\"rsi_avg_loss\":0.0004331675920066556,\"rsi\":61},{\"period_id\":\"120m209831\",\"size\":\"120m\",\"time\":1510783200000,\"open\":0.17768,\"high\":0.1787,\"low\":0.175,\"close\":0.1778,\"volume\":1566869.6451750586,\"close_time\":1510790392691,\"vwap\":0.17692236963933192,\"ema1\":0.17637387545746921,\"sma1\":0.17929655851851856,\"sma2\":0.1741280083333333,\"rsi_avg_gain\":0.0005652510436090504,\"rsi_avg_loss\":0.0004664881760071676,\"rsi\":55},{\"period_id\":\"120m209830\",\"size\":\"120m\",\"time\":1510776000000,\"open\":0.1769,\"high\":0.17899,\"low\":0.17601,\"close\":0.17768,\"volume\":491676.01611941017,\"close_time\":1510783162699,\"vwap\":0.1768278715989352,\"ema1\":0.17627552204074295,\"sma1\":0.17929822518518523,\"sma2\":0.17407984166666662,\"rsi_avg_gain\":0.000599501123886669,\"rsi_avg_loss\":0.0005023718818538727,\"rsi\":54},{\"period_id\":\"120m209829\",\"size\":\"120m\",\"time\":1510768800000,\"open\":0.17759,\"high\":0.17889,\"low\":0.17601,\"close\":0.17624,\"volume\":977653.8880108004,\"close_time\":1510775927078,\"vwap\":0.1768040635944647,\"ema1\":0.17617866149182868,\"sma1\":0.1792899844444445,\"sma2\":0.17404934166666666,\"rsi_avg_gain\":0.0005348473641856439,\"rsi_avg_loss\":0.0005410158727657091,\"rsi\":50},{\"period_id\":\"120m209828\",\"size\":\"120m\",\"time\":1510761600000,\"open\":0.17791,\"high\":0.17813,\"low\":0.176,\"close\":0.17753,\"volume\":790866.41378568,\"close_time\":1510768797924,\"vwap\":0.17681345414568791,\"ema1\":0.17617443124988583,\"sma1\":0.1792887807407408,\"sma2\":0.174027175,\"rsi_avg_gain\":0.000575989469123001,\"rsi_avg_loss\":0.00048340170913230334,\"rsi\":54},{\"period_id\":\"120m209827\",\"size\":\"120m\",\"time\":1510754400000,\"open\":0.17899,\"high\":0.17936,\"low\":0.17741,\"close\":0.17867,\"volume\":501227.49448165024,\"close_time\":1510761592558,\"vwap\":0.17680229102601583,\"ema1\":0.17608094374987796,\"sma1\":0.17928933629629634,\"sma2\":0.174012675,\"rsi_avg_gain\":0.0006202963513632319,\"rsi_avg_loss\":0.0004328941482963265,\"rsi\":59},{\"period_id\":\"120m209826\",\"size\":\"120m\",\"time\":1510747200000,\"open\":0.17861,\"high\":0.18,\"low\":0.1775,\"close\":0.17894,\"volume\":1020662.5634295301,\"close_time\":1510754363661,\"vwap\":0.17675061525298583,\"ema1\":0.17590238814642126,\"sma1\":0.17928470666666668,\"sma2\":0.17395700833333333,\"rsi_avg_gain\":0.0006680114553142497,\"rsi_avg_loss\":0.0004454244673960445,\"rsi\":60},{\"period_id\":\"120m209825\",\"size\":\"120m\",\"time\":1510740000000,\"open\":0.17916,\"high\":0.18,\"low\":0.17772,\"close\":0.1798,\"volume\":839624.29586238,\"close_time\":1510747159672,\"vwap\":0.17658536360129906,\"ema1\":0.17569289767376065,\"sma1\":0.17928461407407412,\"sma2\":0.17403017499999998,\"rsi_avg_gain\":0.0007193969518768842,\"rsi_avg_loss\":0.00041353404181112484,\"rsi\":63},{\"period_id\":\"120m209824\",\"size\":\"120m\",\"time\":1510732800000,\"open\":0.178,\"high\":0.18,\"low\":0.17774,\"close\":0.17916,\"volume\":1371706.4441208409,\"close_time\":1510739987906,\"vwap\":0.17641795142849462,\"ema1\":0.17540964923746827,\"sma1\":0.1792250770370371,\"sma2\":0.17409917499999994,\"rsi_avg_gain\":0.0007255044097135697,\"rsi_avg_loss\":0.0004453443527196729,\"rsi\":62},{\"period_id\":\"120m209823\",\"size\":\"120m\",\"time\":1510725600000,\"open\":0.17647,\"high\":0.179,\"low\":0.17647,\"close\":0.178,\"volume\":594290.64150528,\"close_time\":1510732786046,\"vwap\":0.17586771379922855,\"ema1\":0.17515100435729367,\"sma1\":0.17916766962962966,\"sma2\":0.17420850833333326,\"rsi_avg_gain\":0.0006920816719992272,\"rsi_avg_loss\":0.0004796016106211862,\"rsi\":59},{\"period_id\":\"120m209822\",\"size\":\"120m\",\"time\":1510718400000,\"open\":0.17676,\"high\":0.17748,\"low\":0.17561,\"close\":0.17645,\"volume\":194388.95898348003,\"close_time\":1510725406545,\"vwap\":0.17577355596910063,\"ema1\":0.17495452189917599,\"sma1\":0.17912507703703712,\"sma2\":0.1743610083333333,\"rsi_avg_gain\":0.0006260879544607065,\"rsi_avg_loss\":0.0005164940422074313,\"rsi\":55},{\"period_id\":\"120m209821\",\"size\":\"120m\",\"time\":1510711200000,\"open\":0.17672,\"high\":0.17744,\"low\":0.176,\"close\":0.17607,\"volume\":154013.12588774003,\"close_time\":1510717437169,\"vwap\":0.17577089758106137,\"ema1\":0.17485138547842952,\"sma1\":0.17908285481481487,\"sma2\":0.17454400833333328,\"rsi_avg_gain\":0.0006450177971115308,\"rsi_avg_loss\":0.0005562243531464645,\"rsi\":54},{\"period_id\":\"120m209820\",\"size\":\"120m\",\"time\":1510704000000,\"open\":0.17563,\"high\":0.17746,\"low\":0.1754,\"close\":0.17661,\"volume\":330525.27986849006,\"close_time\":1510711129545,\"vwap\":0.17576950905282646,\"ema1\":0.17476734309763156,\"sma1\":0.17904081777777783,\"sma2\":0.17473817499999988,\"rsi_avg_gain\":0.0006946345507354947,\"rsi_avg_loss\":0.0005574723803115783,\"rsi\":55},{\"period_id\":\"120m209819\",\"size\":\"120m\",\"time\":1510696800000,\"open\":0.17597,\"high\":0.1761,\"low\":0.175,\"close\":0.17582,\"volume\":577026.2364562798,\"close_time\":1510703941720,\"vwap\":0.17575642430899313,\"ema1\":0.1746402633112613,\"sma1\":0.17901674370370377,\"sma2\":0.17493950833333327,\"rsi_avg_gain\":0.0006872987469459185,\"rsi_avg_loss\":0.0006003548711047766,\"rsi\":53},{\"period_id\":\"120m209818\",\"size\":\"120m\",\"time\":1510689600000,\"open\":0.17656,\"high\":0.1771,\"low\":0.1746,\"close\":0.17602,\"volume\":754846.95783339,\"close_time\":1510696790603,\"vwap\":0.17576791318094206,\"ema1\":0.1745589021603138,\"sma1\":0.17898000851851853,\"sma2\":0.1751435083333333,\"rsi_avg_gain\":0.0007401678813263737,\"rsi_avg_loss\":0.0006311513996512975,\"rsi\":54},{\"period_id\":\"120m209817\",\"size\":\"120m\",\"time\":1510682400000,\"open\":0.17774,\"high\":0.1785,\"low\":0.17451,\"close\":0.17656,\"volume\":873858.6678473103,\"close_time\":1510689575374,\"vwap\":0.175747600679315,\"ema1\":0.17445813679205957,\"sma1\":0.17891982333333337,\"sma2\":0.17536750833333326,\"rsi_avg_gain\":0.0007971038721976331,\"rsi_avg_loss\":0.0006381630457783215,\"rsi\":56},{\"period_id\":\"120m209816\",\"size\":\"120m\",\"time\":1510675200000,\"open\":0.17779,\"high\":0.17873,\"low\":0.177,\"close\":0.17772,\"volume\":601474.58078276,\"close_time\":1510682334312,\"vwap\":0.1757184803970018,\"ema1\":0.17431318070875335,\"sma1\":0.17886676777777777,\"sma2\":0.1755915083333333,\"rsi_avg_gain\":0.000858419554674374,\"rsi_avg_loss\":0.0005980217416074236,\"rsi\":59},{\"period_id\":\"120m209815\",\"size\":\"120m\",\"time\":1510668000000,\"open\":0.175,\"high\":0.179,\"low\":0.175,\"close\":0.1779,\"volume\":903691.211076629,\"close_time\":1510675183379,\"vwap\":0.17553374033315416,\"ema1\":0.1740782276541846,\"sma1\":0.17881121222222218,\"sma2\":0.17578050833333328,\"rsi_avg_gain\":0.0009244518281108643,\"rsi_avg_loss\":0.000630177260192609,\"rsi\":59},{\"period_id\":\"120m209814\",\"size\":\"120m\",\"time\":1510660800000,\"open\":0.17511,\"high\":0.17649,\"low\":0.1735,\"close\":0.1764,\"volume\":739101.4692513704,\"close_time\":1510667938280,\"vwap\":0.1750204354632453,\"ema1\":0.17381465714757663,\"sma1\":0.17879167518518516,\"sma2\":0.17596567499999993,\"rsi_avg_gain\":0.0008801788918116999,\"rsi_avg_loss\":0.000678652434053579,\"rsi\":56},{\"period_id\":\"120m209813\",\"size\":\"120m\",\"time\":1510653600000,\"open\":0.17595,\"high\":0.17699,\"low\":0.175,\"close\":0.1756,\"volume\":896831.7352713099,\"close_time\":1510660756249,\"vwap\":0.1748786471399887,\"ema1\":0.17363635764051294,\"sma1\":0.1787673233333333,\"sma2\":0.17616834166666662,\"rsi_avg_gain\":0.0008863464988741387,\"rsi_avg_loss\":0.0007308564674423159,\"rsi\":55},{\"period_id\":\"120m209812\",\"size\":\"120m\",\"time\":1510646400000,\"open\":0.17599,\"high\":0.17621,\"low\":0.17403,\"close\":0.1758,\"volume\":425112.28303541004,\"close_time\":1510653572451,\"vwap\":0.17449251596874873,\"ema1\":0.17350093402951383,\"sma1\":0.17875611962962965,\"sma2\":0.17634034166666665,\"rsi_avg_gain\":0.000954526998787534,\"rsi_avg_loss\":0.0007716915803224935,\"rsi\":55},{\"period_id\":\"120m209811\",\"size\":\"120m\",\"time\":1510639200000,\"open\":0.176,\"high\":0.1766,\"low\":0.17201,\"close\":0.17435,\"volume\":679307.6820065394,\"close_time\":1510646329094,\"vwap\":0.17438356829220594,\"ema1\":0.1733423777556872,\"sma1\":0.1787413048148148,\"sma2\":0.1766395083333333,\"rsi_avg_gain\":0.0009164136910019591,\"rsi_avg_loss\":0.0008310524711165315,\"rsi\":52},{\"period_id\":\"120m209810\",\"size\":\"120m\",\"time\":1510632000000,\"open\":0.1768,\"high\":0.1768,\"low\":0.175,\"close\":0.17598,\"volume\":429675.1602830501,\"close_time\":1510639183059,\"vwap\":0.174126174989423,\"ema1\":0.17327288656642426,\"sma1\":0.17872556407407408,\"sma2\":0.17687317500000002,\"rsi_avg_gain\":0.0009869070518482637,\"rsi_avg_loss\":0.0007695949688947268,\"rsi\":56},{\"period_id\":\"120m209809\",\"size\":\"120m\",\"time\":1510624800000,\"open\":0.17539,\"high\":0.178,\"low\":0.17465,\"close\":0.17654,\"volume\":586797.5998933498,\"close_time\":1510631991411,\"vwap\":0.17396524901775137,\"ema1\":0.1730861890882466,\"sma1\":0.17869852703703706,\"sma2\":0.17712250833333332,\"rsi_avg_gain\":0.0010628229789135149,\"rsi_avg_loss\":0.0007857176588097054,\"rsi\":57},{\"period_id\":\"120m209808\",\"size\":\"120m\",\"time\":1510617600000,\"open\":0.17346,\"high\":0.1755,\"low\":0.17214,\"close\":0.1755,\"volume\":764624.7999068601,\"close_time\":1510624784246,\"vwap\":0.1731050768246464,\"ema1\":0.1728479952322636,\"sma1\":0.17869111962962966,\"sma2\":0.17737250833333335,\"rsi_avg_gain\":0.001064578592676092,\"rsi_avg_loss\":0.0008461574787181442,\"rsi\":56},{\"period_id\":\"120m209807\",\"size\":\"120m\",\"time\":1510610400000,\"open\":0.17199,\"high\":0.1735,\"low\":0.1712,\"close\":0.1735,\"volume\":538034.5097671399,\"close_time\":1510617597826,\"vwap\":0.1721901253952466,\"ema1\":0.17266509835173005,\"sma1\":0.17870399000000003,\"sma2\":0.177619175,\"rsi_avg_gain\":0.000992623099805022,\"rsi_avg_loss\":0.0009112465155426168,\"rsi\":52},{\"period_id\":\"120m209806\",\"size\":\"120m\",\"time\":1510603200000,\"open\":0.17054,\"high\":0.17249,\"low\":0.1704,\"close\":0.17199,\"volume\":631139.0908938397,\"close_time\":1510610382134,\"vwap\":0.17187466824588446,\"ema1\":0.17260751892771142,\"sma1\":0.17872639740740745,\"sma2\":0.17783317499999998,\"rsi_avg_gain\":0.0009528248767131019,\"rsi_avg_loss\":0.0009813424013535874,\"rsi\":49},{\"period_id\":\"120m209805\",\"size\":\"120m\",\"time\":1510596000000,\"open\":0.17247,\"high\":0.1725,\"low\":0.17,\"close\":0.172,\"volume\":870330.9006816499,\"close_time\":1510603178336,\"vwap\":0.1684271845889028,\"ema1\":0.1726501064399674,\"sma1\":0.17875658259259264,\"sma2\":0.178046175,\"rsi_avg_gain\":0.001026119097998725,\"rsi_avg_loss\":0.001056061047611557,\"rsi\":49},{\"period_id\":\"120m209804\",\"size\":\"120m\",\"time\":1510588800000,\"open\":0.173,\"high\":0.17348,\"low\":0.17106,\"close\":0.1725,\"volume\":309292.22678649,\"close_time\":1510595941115,\"vwap\":0.16835031906875553,\"ema1\":0.1726949413668617,\"sma1\":0.17877991592592596,\"sma2\":0.17819934166666665,\"rsi_avg_gain\":0.0011050513363063193,\"rsi_avg_loss\":0.0010988349743509074,\"rsi\":50},{\"period_id\":\"120m209803\",\"size\":\"120m\",\"time\":1510581600000,\"open\":0.17303,\"high\":0.1735,\"low\":0.17,\"close\":0.173,\"volume\":635923.3682115899,\"close_time\":1510588750094,\"vwap\":0.16833989002606792,\"ema1\":0.17270838559905907,\"sma1\":0.17881482333333334,\"sma2\":0.17834684166666664,\"rsi_avg_gain\":0.0011900552852529592,\"rsi_avg_loss\":0.0011448992031471308,\"rsi\":51},{\"period_id\":\"120m209802\",\"size\":\"120m\",\"time\":1510574400000,\"open\":0.17399,\"high\":0.174,\"low\":0.165,\"close\":0.17304,\"volume\":1779330.7190665496,\"close_time\":1510581596236,\"vwap\":0.1683003483912852,\"ema1\":0.17268827426106315,\"sma1\":0.17885149000000003,\"sma2\":0.178471175,\"rsi_avg_gain\":0.001281597999503187,\"rsi_avg_loss\":0.001229891449543063,\"rsi\":51},{\"period_id\":\"120m209801\",\"size\":\"120m\",\"time\":1510567200000,\"open\":0.1739,\"high\":0.175,\"low\":0.17095,\"close\":0.17399,\"volume\":1125405.2639887903,\"close_time\":1510574391964,\"vwap\":0.16811368340810134,\"ema1\":0.17266401731355027,\"sma1\":0.17886871222222223,\"sma2\":0.17855467500000002,\"rsi_avg_gain\":0.0013801824610034322,\"rsi_avg_loss\":0.0012514215610463751,\"rsi\":52},{\"period_id\":\"120m209800\",\"size\":\"120m\",\"time\":1510560000000,\"open\":0.1685,\"high\":0.1739,\"low\":0.168,\"close\":0.17349,\"volume\":1034292.9793085196,\"close_time\":1510567185235,\"vwap\":0.16790674902368513,\"ema1\":0.17257257023172615,\"sma1\":0.17889504685185187,\"sma2\":0.17868650833333335,\"rsi_avg_gain\":0.0014478888041575425,\"rsi_avg_loss\":0.0013476847580499425,\"rsi\":52},{\"period_id\":\"120m209799\",\"size\":\"120m\",\"time\":1510552800000,\"open\":0.16969,\"high\":0.1705,\"low\":0.16809,\"close\":0.16856,\"volume\":70489.34351741005,\"close_time\":1510559923918,\"vwap\":0.1678314736485944,\"ema1\":0.1725092992132245,\"sma1\":0.17894949129629634,\"sma2\":0.17884384166666667,\"rsi_avg_gain\":0.0011800340967850445,\"rsi_avg_loss\":0.0014513528163614766,\"rsi\":45},{\"period_id\":\"120m209798\",\"size\":\"120m\",\"time\":1510545600000,\"open\":0.17278,\"high\":0.1729,\"low\":0.16771,\"close\":0.16941,\"volume\":232672.51672249002,\"close_time\":1510552749298,\"vwap\":0.167830932593303,\"ema1\":0.1727816646762055,\"sma1\":0.1789848616666667,\"sma2\":0.1789820083333333,\"rsi_avg_gain\":0.001270805950383894,\"rsi_avg_loss\":0.0014976107253123583,\"rsi\":46},{\"period_id\":\"120m209797\",\"size\":\"120m\",\"time\":1510538400000,\"open\":0.16775,\"high\":0.17287,\"low\":0.16714,\"close\":0.1728,\"volume\":317883.98797446996,\"close_time\":1510545349531,\"vwap\":0.16782913995092083,\"ema1\":0.17301419327456452,\"sma1\":0.1790229172222223,\"sma2\":0.17904850833333333,\"rsi_avg_gain\":0.001368560254259578,\"rsi_avg_loss\":0.0013520423195671546,\"rsi\":50},{\"period_id\":\"120m209796\",\"size\":\"120m\",\"time\":1510531200000,\"open\":0.16949,\"high\":0.1724,\"low\":0.16559,\"close\":0.1677505,\"volume\":521480.4175115699,\"close_time\":1510538326283,\"vwap\":0.16782258361798594,\"ema1\":0.17302896522453448,\"sma1\":0.17908402833333342,\"sma2\":0.17919049999999997,\"rsi_avg_gain\":0.0010854110430487754,\"rsi_avg_loss\":0.001456045574918474,\"rsi\":43},{\"period_id\":\"120m209795\",\"size\":\"120m\",\"time\":1510524000000,\"open\":0.1674,\"high\":0.16998,\"low\":0.165,\"close\":0.1695,\"volume\":1311093.4219952,\"close_time\":1510531050771,\"vwap\":0.16781016689005182,\"ema1\":0.17339299730898514,\"sma1\":0.17921384314814823,\"sma2\":0.17930783333333336,\"rsi_avg_gain\":0.0011689042002063735,\"rsi_avg_loss\":0.0014334721576045092,\"rsi\":45},{\"period_id\":\"120m209794\",\"size\":\"120m\",\"time\":1510516800000,\"open\":0.17,\"high\":0.171,\"low\":0.1655,\"close\":0.1674,\"volume\":930806.39173004,\"close_time\":1510523988470,\"vwap\":0.16789294032090135,\"ema1\":0.1736614798820186,\"sma1\":0.17935819500000005,\"sma2\":0.1794478333333334,\"rsi_avg_gain\":0.001097281446376093,\"rsi_avg_loss\":0.0015437392466510099,\"rsi\":42},{\"period_id\":\"120m209793\",\"size\":\"120m\",\"time\":1510509600000,\"open\":0.17021,\"high\":0.171,\"low\":0.1684,\"close\":0.17002,\"volume\":1081793.2557907307,\"close_time\":1510516799098,\"vwap\":0.16788392702140148,\"ema1\":0.1740933060807785,\"sma1\":0.17947856537037044,\"sma2\":0.17952533333333337,\"rsi_avg_gain\":0.0011816877114819463,\"rsi_avg_loss\":0.001460949957931856,\"rsi\":45},{\"period_id\":\"120m209792\",\"size\":\"120m\",\"time\":1510502400000,\"open\":0.16953,\"high\":0.173,\"low\":0.16717,\"close\":0.17022,\"volume\":1220729.4702502298,\"close_time\":1510509590715,\"vwap\":0.16781271129881767,\"ema1\":0.17437422374152184,\"sma1\":0.17956625055555564,\"sma2\":0.17962566666666674,\"rsi_avg_gain\":0.0012725867662113268,\"rsi_avg_loss\":0.0015579461085419982,\"rsi\":45},{\"period_id\":\"120m209791\",\"size\":\"120m\",\"time\":1510495200000,\"open\":0.16884,\"high\":0.17264,\"low\":0.1675,\"close\":0.16999,\"volume\":1416319.5101583297,\"close_time\":1510502384838,\"vwap\":0.16774093503076243,\"ema1\":0.17466072193059232,\"sma1\":0.1796653246296297,\"sma2\":0.17974183333333338,\"rsi_avg_gain\":0.0013527857482275821,\"rsi_avg_loss\":0.0016777881168913828,\"rsi\":45},{\"period_id\":\"120m209790\",\"size\":\"120m\",\"time\":1510488000000,\"open\":0.173,\"high\":0.1756,\"low\":0.1675,\"close\":0.17039,\"volume\":3313398.677564392,\"close_time\":1510495190490,\"vwap\":0.16761693122555507,\"ema1\":0.17498284068442627,\"sma1\":0.17967819500000004,\"sma2\":0.17984366666666673,\"rsi_avg_gain\":0.0014568461903989346,\"rsi_avg_loss\":0.0017760795104984112,\"rsi\":45},{\"period_id\":\"120m209789\",\"size\":\"120m\",\"time\":1510480800000,\"open\":0.16601,\"high\":0.1763,\"low\":0.165,\"close\":0.173,\"volume\":2580742.5473769414,\"close_time\":1510487985447,\"vwap\":0.16687385694109907,\"ema1\":0.17529958831783496,\"sma1\":0.1796714357407408,\"sma2\":0.17989550000000007,\"rsi_avg_gain\":0.0015689112819680835,\"rsi_avg_loss\":0.0017119317805367525,\"rsi\":48},{\"period_id\":\"120m209788\",\"size\":\"120m\",\"time\":1510473600000,\"open\":0.16596,\"high\":0.17146,\"low\":0.1611,\"close\":0.16601,\"volume\":2380649.9986581267,\"close_time\":1510480792987,\"vwap\":0.16541137963922717,\"ema1\":0.1754581806156167,\"sma1\":0.17971810240740746,\"sma2\":0.18005700000000008,\"rsi_avg_gain\":0.0011519044575040904,\"rsi_avg_loss\":0.001843618840578041,\"rsi\":38},{\"period_id\":\"120m209787\",\"size\":\"120m\",\"time\":1510466400000,\"open\":0.17,\"high\":0.17099,\"low\":0.161,\"close\":0.16122,\"volume\":3229527.0687472746,\"close_time\":1510473566212,\"vwap\":0.16539436207522185,\"ema1\":0.17610977927876267,\"sma1\":0.17976449129629626,\"sma2\":0.1802836666666667,\"rsi_avg_gain\":0.000872050954235175,\"rsi_avg_loss\":0.0019854356744686595,\"rsi\":31},{\"period_id\":\"120m209786\",\"size\":\"120m\",\"time\":1510459200000,\"open\":0.17066,\"high\":0.17355,\"low\":0.16823,\"close\":0.17,\"volume\":994724.1163038004,\"close_time\":1510466383975,\"vwap\":0.17110069297585773,\"ema1\":0.17713666060833252,\"sma1\":0.1797705098148148,\"sma2\":0.1803581666666667,\"rsi_avg_gain\":0.00093913179686865,\"rsi_avg_loss\":0.0014627768801970173,\"rsi\":39},{\"period_id\":\"120m209785\",\"size\":\"120m\",\"time\":1510452000000,\"open\":0.17445,\"high\":0.17445,\"low\":0.16902,\"close\":0.16922,\"volume\":1261435.8449201102,\"close_time\":1510459100083,\"vwap\":0.17147706873165003,\"ema1\":0.17762884409856236,\"sma1\":0.17979226907407408,\"sma2\":0.18044616666666669,\"rsi_avg_gain\":0.0009513727043200844,\"rsi_avg_loss\":0.0015752981786737112,\"rsi\":38},{\"period_id\":\"120m209784\",\"size\":\"120m\",\"time\":1510444800000,\"open\":0.17767,\"high\":0.1777,\"low\":0.17407,\"close\":0.17426,\"volume\":328023.63525571,\"close_time\":1510451999100,\"vwap\":0.17619886365804505,\"ema1\":0.17820876438122182,\"sma1\":0.17985986166666668,\"sma2\":0.18042516666666672,\"rsi_avg_gain\":0.001024555220037014,\"rsi_avg_loss\":0.0013087826539563052,\"rsi\":44},{\"period_id\":\"120m209783\",\"size\":\"120m\",\"time\":1510437600000,\"open\":0.17563,\"high\":0.1785,\"low\":0.17377,\"close\":0.1767,\"volume\":316327.0275906,\"close_time\":1510444746655,\"vwap\":0.17693499047249303,\"ema1\":0.17848109295923711,\"sma1\":0.17981625055555556,\"sma2\":0.1804106666666667,\"rsi_avg_gain\":0.0011033671600398612,\"rsi_avg_loss\":0.0012217659350298672,\"rsi\":47},{\"period_id\":\"120m209782\",\"size\":\"120m\",\"time\":1510430400000,\"open\":0.17608,\"high\":0.17998,\"low\":0.17214,\"close\":0.17598,\"volume\":1570101.0684755915,\"close_time\":1510437571913,\"vwap\":0.176560916956268,\"ema1\":0.17860392695642588,\"sma1\":0.17969606537037042,\"sma2\":0.1804196666666667,\"rsi_avg_gain\":0.001132856941581389,\"rsi_avg_loss\":0.0013157479300321647,\"rsi\":46},{\"period_id\":\"120m209781\",\"size\":\"120m\",\"time\":1510423200000,\"open\":0.179,\"high\":0.18004,\"low\":0.175,\"close\":0.177,\"volume\":1139440.0789324606,\"close_time\":1510430382442,\"vwap\":0.17656293245954388,\"ema1\":0.1787848874361794,\"sma1\":0.1795708801851852,\"sma2\":0.18036033333333334,\"rsi_avg_gain\":0.0012199997832414958,\"rsi_avg_loss\":0.0013384977708038703,\"rsi\":48},{\"period_id\":\"120m209780\",\"size\":\"120m\",\"time\":1510416000000,\"open\":0.1732,\"high\":0.1794,\"low\":0.17001,\"close\":0.1794,\"volume\":991466.1092300097,\"close_time\":1510423190096,\"vwap\":0.1765156542182364,\"ema1\":0.17890798312143316,\"sma1\":0.1794468061111111,\"sma2\":0.18033533333333335,\"rsi_avg_gain\":0.0013138459204139186,\"rsi_avg_loss\":0.0012568437531733979,\"rsi\":51},{\"period_id\":\"120m209779\",\"size\":\"120m\",\"time\":1510408800000,\"open\":0.16985,\"high\":0.17395,\"low\":0.167,\"close\":0.17263,\"volume\":974812.9391063203,\"close_time\":1510415941956,\"vwap\":0.1765100255510461,\"ema1\":0.1788740509229113,\"sma1\":0.17939625055555555,\"sma2\":0.1804,\"rsi_avg_gain\":0.0008941417604457588,\"rsi_avg_loss\":0.001353524041879044,\"rsi\":40},{\"period_id\":\"120m209778\",\"size\":\"120m\",\"time\":1510401600000,\"open\":0.175,\"high\":0.17576832,\"low\":0.16701,\"close\":0.1695,\"volume\":2442211.8787478986,\"close_time\":1510408777466,\"vwap\":0.17662660585307502,\"ema1\":0.1793046751244914,\"sma1\":0.17933904388888883,\"sma2\":0.1805331666666667,\"rsi_avg_gain\":0.0007221526650954329,\"rsi_avg_loss\":0.0014576412758697396,\"rsi\":33},{\"period_id\":\"120m209777\",\"size\":\"120m\",\"time\":1510394400000,\"open\":0.1805,\"high\":0.18141,\"low\":0.172,\"close\":0.1721,\"volume\":2079496.2112085498,\"close_time\":1510401587132,\"vwap\":0.1779418122164098,\"ema1\":0.17998085961583565,\"sma1\":0.17914080314814812,\"sma2\":0.18063316666666665,\"rsi_avg_gain\":0.0007777028701027739,\"rsi_avg_loss\":0.0013697675278597202,\"rsi\":36},{\"period_id\":\"120m209776\",\"size\":\"120m\",\"time\":1510387200000,\"open\":0.17744,\"high\":0.181,\"low\":0.17692,\"close\":0.18022,\"volume\":981048.3481494704,\"close_time\":1510394392419,\"vwap\":0.17838379844049065,\"ema1\":0.18052436717554846,\"sma1\":0.17894635870370368,\"sma2\":0.18052216666666665,\"rsi_avg_gain\":0.0008375261678029873,\"rsi_avg_loss\":0.0008505188761566227,\"rsi\":50},{\"period_id\":\"120m209775\",\"size\":\"120m\",\"time\":1510380000000,\"open\":0.17612,\"high\":0.17835,\"low\":0.17575,\"close\":0.178,\"volume\":270682.5348436299,\"close_time\":1510387170239,\"vwap\":0.17832285353898641,\"ema1\":0.18054535801524146,\"sma1\":0.1788060809259259,\"sma2\":0.18041383333333333,\"rsi_avg_gain\":0.0007311820268647556,\"rsi_avg_loss\":0.0009159434050917475,\"rsi\":44},{\"period_id\":\"120m209774\",\"size\":\"120m\",\"time\":1510372800000,\"open\":0.17598,\"high\":0.177,\"low\":0.175,\"close\":0.1755,\"volume\":131092.04912470002,\"close_time\":1510379912100,\"vwap\":0.1783273116470144,\"ema1\":0.18072089994732707,\"sma1\":0.17869237722222217,\"sma2\":0.18035716666666668,\"rsi_avg_gain\":0.000595119105854352,\"rsi_avg_loss\":0.000986400590098805,\"rsi\":38},{\"period_id\":\"120m209773\",\"size\":\"120m\",\"time\":1510365600000,\"open\":0.17698,\"high\":0.177,\"low\":0.1758,\"close\":0.17635,\"volume\":94690.41121102999,\"close_time\":1510372576835,\"vwap\":0.17833000379113986,\"ema1\":0.18108096201265997,\"sma1\":0.17860571055555552,\"sma2\":0.18028483333333334,\"rsi_avg_gain\":0.0006408974986123791,\"rsi_avg_loss\":0.000996892943183327,\"rsi\":39},{\"period_id\":\"120m209772\",\"size\":\"120m\",\"time\":1510358400000,\"open\":0.17466,\"high\":0.17727,\"low\":0.1735,\"close\":0.177,\"volume\":222966.58106674007,\"close_time\":1510365541592,\"vwap\":0.1783312616691006,\"ema1\":0.18140723525491237,\"sma1\":0.17850895129629624,\"sma2\":0.1801945,\"rsi_avg_gain\":0.0006901973061979467,\"rsi_avg_loss\":0.0010235770157358919,\"rsi\":40},{\"period_id\":\"120m209771\",\"size\":\"120m\",\"time\":1510351200000,\"open\":0.17467,\"high\":0.179,\"low\":0.17387,\"close\":0.1747,\"volume\":797093.3192915202,\"close_time\":1510358365250,\"vwap\":0.1783375177597549,\"ema1\":0.18171118251387183,\"sma1\":0.17839543277777775,\"sma2\":0.18016533333333332,\"rsi_avg_gain\":0.0005663663297516352,\"rsi_avg_loss\":0.0011023137092540374,\"rsi\":34},{\"period_id\":\"120m209770\",\"size\":\"120m\",\"time\":1510344000000,\"open\":0.17441,\"high\":0.17549,\"low\":0.171,\"close\":0.17479,\"volume\":1094468.96498331,\"close_time\":1510351192590,\"vwap\":0.17841254424775316,\"ema1\":0.18219471234241472,\"sma1\":0.1783408957407407,\"sma2\":0.18013771,\"rsi_avg_gain\":0.000609932970501761,\"rsi_avg_loss\":0.0011801839945812704,\"rsi\":34},{\"period_id\":\"120m209769\",\"size\":\"120m\",\"time\":1510336800000,\"open\":0.1761,\"high\":0.1772,\"low\":0.1715,\"close\":0.17441,\"volume\":1735605.7652716597,\"close_time\":1510343991423,\"vwap\":0.17870860365560975,\"ema1\":0.18270538215913298,\"sma1\":0.1782705253703703,\"sma2\":0.1800888766666667,\"rsi_avg_gain\":0.0006276201220788201,\"rsi_avg_loss\":0.0012709673787798296,\"rsi\":33},{\"period_id\":\"120m209768\",\"size\":\"120m\",\"time\":1510329600000,\"open\":0.1778,\"high\":0.178,\"low\":0.1752,\"close\":0.1762,\"volume\":1264054.9084802696,\"close_time\":1510336785873,\"vwap\":0.1795428941897386,\"ema1\":0.1832774774804525,\"sma1\":0.17821959944444443,\"sma2\":0.18001887666666672,\"rsi_avg_gain\":0.0006758985930079602,\"rsi_avg_loss\":0.0012310417925321252,\"rsi\":35},{\"period_id\":\"120m209767\",\"size\":\"120m\",\"time\":1510322400000,\"open\":0.17786,\"high\":0.1788,\"low\":0.175,\"close\":0.1778,\"volume\":1705075.3105860895,\"close_time\":1510329594861,\"vwap\":0.17975214464143532,\"ema1\":0.18376557937565613,\"sma1\":0.17816441425925925,\"sma2\":0.1799383766666667,\"rsi_avg_gain\":0.000727890792470111,\"rsi_avg_loss\":0.001202660391957672,\"rsi\":38},{\"period_id\":\"120m209766\",\"size\":\"120m\",\"time\":1510315200000,\"open\":0.183,\"high\":0.18419,\"low\":0.175,\"close\":0.1756,\"volume\":3142127.279473542,\"close_time\":1510322389977,\"vwap\":0.18034005047843513,\"ema1\":0.18417699864294276,\"sma1\":0.17804691425925925,\"sma2\":0.17987671000000008,\"rsi_avg_gain\":0.000614651622660119,\"rsi_avg_loss\":0.0012951727298005698,\"rsi\":32},{\"period_id\":\"120m209765\",\"size\":\"120m\",\"time\":1510308000000,\"open\":0.18448,\"high\":0.18618,\"low\":0.1828,\"close\":0.18419,\"volume\":1506359.236394429,\"close_time\":1510315192886,\"vwap\":0.18432748904064297,\"ema1\":0.18476851579073192,\"sma1\":0.17791543277777783,\"sma2\":0.1797035433333334,\"rsi_avg_gain\":0.0006619325167108974,\"rsi_avg_loss\":0.000734032170554461,\"rsi\":47},{\"period_id\":\"120m209764\",\"size\":\"120m\",\"time\":1510300800000,\"open\":0.184,\"high\":0.18554,\"low\":0.183,\"close\":0.1833,\"volume\":1503755.2062659115,\"close_time\":1510307961116,\"vwap\":0.18426979283576767,\"ema1\":0.18480841343147206,\"sma1\":0.17779617351851856,\"sma2\":0.1795332100000001,\"rsi_avg_gain\":0.0006443888641501971,\"rsi_avg_loss\":0.0007904961836740349,\"rsi\":45},{\"period_id\":\"120m209763\",\"size\":\"120m\",\"time\":1510293600000,\"open\":0.1856,\"high\":0.18767,\"low\":0.182,\"close\":0.18456,\"volume\":1486303.6773744512,\"close_time\":1510300710540,\"vwap\":0.18367932303606233,\"ema1\":0.18491244194398737,\"sma1\":0.1776452475925926,\"sma2\":0.17936287666666675,\"rsi_avg_gain\":0.0006939572383155969,\"rsi_avg_loss\":0.0007543805054951136,\"rsi\":48},{\"period_id\":\"120m209762\",\"size\":\"120m\",\"time\":1510286400000,\"open\":0.18779,\"high\":0.1893,\"low\":0.185,\"close\":0.1856,\"volume\":939146.5902925809,\"close_time\":1510293560736,\"vwap\":0.1882986101518267,\"ema1\":0.18493674828495202,\"sma1\":0.17748154388888893,\"sma2\":0.1791872100000001,\"rsi_avg_gain\":0.0007473385643398736,\"rsi_avg_loss\":0.000732409775148585,\"rsi\":51},{\"period_id\":\"120m209761\",\"size\":\"120m\",\"time\":1510279200000,\"open\":0.18826,\"high\":0.1888,\"low\":0.18701,\"close\":0.18705,\"volume\":339837.14506474993,\"close_time\":1510285951714,\"vwap\":0.1883515490763665,\"ema1\":0.1848910067873625,\"sma1\":0.17732413648148154,\"sma2\":0.17897471000000006,\"rsi_avg_gain\":0.0008048261462121716,\"rsi_avg_loss\":0.0006772105270830911,\"rsi\":54},{\"period_id\":\"120m209760\",\"size\":\"120m\",\"time\":1510272000000,\"open\":0.18789,\"high\":0.1891,\"low\":0.18751,\"close\":0.18826,\"volume\":345118.0852415101,\"close_time\":1510279161966,\"vwap\":0.1883538223446894,\"ema1\":0.18474211070373234,\"sma1\":0.17716571055555563,\"sma2\":0.17874387666666677,\"rsi_avg_gain\":0.0008667358497669541,\"rsi_avg_loss\":0.0006362267214740969,\"rsi\":58},{\"period_id\":\"120m209759\",\"size\":\"120m\",\"time\":1510264800000,\"open\":0.18834,\"high\":0.18945,\"low\":0.187,\"close\":0.1879,\"volume\":796401.9897196796,\"close_time\":1510271939436,\"vwap\":0.18835368410088638,\"ema1\":0.18449949764881732,\"sma1\":0.17701191425925933,\"sma2\":0.1784985433333334,\"rsi_avg_gain\":0.0009057155305182582,\"rsi_avg_loss\":0.0006851672385105659,\"rsi\":57},{\"period_id\":\"120m209758\",\"size\":\"120m\",\"time\":1510257600000,\"open\":0.18978,\"high\":0.19079,\"low\":0.188,\"close\":0.18826,\"volume\":1298007.2077193111,\"close_time\":1510264623260,\"vwap\":0.18836467019819822,\"ema1\":0.18426498024528748,\"sma1\":0.17684580314814824,\"sma2\":0.17826021000000009,\"rsi_avg_gain\":0.0009753859559427396,\"rsi_avg_loss\":0.0007101801030113786,\"rsi\":58},{\"period_id\":\"120m209757\",\"size\":\"120m\",\"time\":1510250400000,\"open\":0.19128,\"high\":0.19157,\"low\":0.189,\"close\":0.19,\"volume\":1405700.9650095599,\"close_time\":1510257580160,\"vwap\":0.1883168414167944,\"ema1\":0.1839894616415142,\"sma1\":0.17667126611111125,\"sma2\":0.1780185433333334,\"rsi_avg_gain\":0.001050415644861412,\"rsi_avg_loss\":0.0006309631878584084,\"rsi\":62},{\"period_id\":\"120m209756\",\"size\":\"120m\",\"time\":1510243200000,\"open\":0.18917,\"high\":0.1916,\"low\":0.189,\"close\":0.19116,\"volume\":1132757.5451497396,\"close_time\":1510250373928,\"vwap\":0.1882395207288858,\"ema1\":0.18357494175472208,\"sma1\":0.1765036735185187,\"sma2\":0.17775237666666677,\"rsi_avg_gain\":0.0011312168483122898,\"rsi_avg_loss\":0.0005902680484629018,\"rsi\":66},{\"period_id\":\"120m209755\",\"size\":\"120m\",\"time\":1510236000000,\"open\":0.18691,\"high\":0.1895,\"low\":0.186,\"close\":0.18924,\"volume\":1015144.8545400195,\"close_time\":1510243165747,\"vwap\":0.18815292646173684,\"ema1\":0.1830518342895305,\"sma1\":0.17636571055555572,\"sma2\":0.17752904333333344,\"rsi_avg_gain\":0.0010705412212593888,\"rsi_avg_loss\":0.0006356732829600481,\"rsi\":63},{\"period_id\":\"120m209754\",\"size\":\"120m\",\"time\":1510228800000,\"open\":0.18752,\"high\":0.18776,\"low\":0.185,\"close\":0.18751,\"volume\":1343139.0552525606,\"close_time\":1510235959442,\"vwap\":0.188149631645522,\"ema1\":0.1826250642405326,\"sma1\":0.1762457105555557,\"sma2\":0.17735404333333343,\"rsi_avg_gain\":0.0010198136228947278,\"rsi_avg_loss\":0.0006845712278031286,\"rsi\":60},{\"period_id\":\"120m209753\",\"size\":\"120m\",\"time\":1510221600000,\"open\":0.1869,\"high\":0.19,\"low\":0.1862,\"close\":0.18776,\"volume\":3008040.409756683,\"close_time\":1510228722468,\"vwap\":0.18822609310027014,\"ema1\":0.18228817211919002,\"sma1\":0.17610496981481497,\"sma2\":0.17714137666666677,\"rsi_avg_gain\":0.0010982608246558607,\"rsi_avg_loss\":0.0007179997837879846,\"rsi\":60},{\"period_id\":\"120m209752\",\"size\":\"120m\",\"time\":1510214400000,\"open\":0.1918,\"high\":0.19399,\"low\":0.18508,\"close\":0.18612,\"volume\":2349684.717258219,\"close_time\":1510221593570,\"vwap\":0.18815386813235319,\"ema1\":0.18191080467913415,\"sma1\":0.17592635870370388,\"sma2\":0.17697271000000006,\"rsi_avg_gain\":0.001056588580398619,\"rsi_avg_loss\":0.0007732305363870603,\"rsi\":58},{\"period_id\":\"120m209751\",\"size\":\"120m\",\"time\":1510207200000,\"open\":0.19,\"high\":0.19345,\"low\":0.18762,\"close\":0.1923,\"volume\":1760255.8831517405,\"close_time\":1510214387087,\"vwap\":0.18810398975330697,\"ema1\":0.18162051534666063,\"sma1\":0.17574978462962984,\"sma2\":0.17669971000000004,\"rsi_avg_gain\":0.0011378646250446666,\"rsi_avg_loss\":0.00035732519303221936,\"rsi\":76},{\"period_id\":\"120m209750\",\"size\":\"120m\",\"time\":1510200000000,\"open\":0.19149,\"high\":0.19209,\"low\":0.18817,\"close\":0.19,\"volume\":1028929.5947521498,\"close_time\":1510207189870,\"vwap\":0.18779068736116877,\"ema1\":0.1808839991636717,\"sma1\":0.17558172907407427,\"sma2\":0.1764783766666667,\"rsi_avg_gain\":0.0010484695962019491,\"rsi_avg_loss\":0.00038481174634239006,\"rsi\":73},{\"period_id\":\"120m209749\",\"size\":\"120m\",\"time\":1510192800000,\"open\":0.1904,\"high\":0.19199,\"low\":0.19,\"close\":0.1915,\"volume\":451503.23897744983,\"close_time\":1510199851179,\"vwap\":0.18768284519486075,\"ema1\":0.18025530945082147,\"sma1\":0.17541978462962982,\"sma2\":0.17619621,\"rsi_avg_gain\":0.0011291211036020992,\"rsi_avg_loss\":0.00029902803452257383,\"rsi\":79},{\"period_id\":\"120m209748\",\"size\":\"120m\",\"time\":1510185600000,\"open\":0.1883,\"high\":0.19145,\"low\":0.18762,\"close\":0.1905,\"volume\":1098934.3051002997,\"close_time\":1510192757308,\"vwap\":0.18764361488780645,\"ema1\":0.1794798135508781,\"sma1\":0.17525987722222236,\"sma2\":0.17593787666666666,\"rsi_avg_gain\":0.001139053496186876,\"rsi_avg_loss\":0.0003220301910243103,\"rsi\":78},{\"period_id\":\"120m209747\",\"size\":\"120m\",\"time\":1510178400000,\"open\":0.18594,\"high\":0.194,\"low\":0.18486,\"close\":0.1883,\"volume\":3605912.2368677803,\"close_time\":1510185592050,\"vwap\":0.18757266827235455,\"ema1\":0.17871980069231796,\"sma1\":0.17507932166666682,\"sma2\":0.17577454333333328,\"rsi_avg_gain\":0.001057442226662789,\"rsi_avg_loss\":0.0003468017441800265,\"rsi\":75},{\"period_id\":\"120m209746\",\"size\":\"120m\",\"time\":1510171200000,\"open\":0.18458,\"high\":0.189,\"low\":0.18392,\"close\":0.18483,\"volume\":2863643.826655647,\"close_time\":1510178396358,\"vwap\":0.18534870843540172,\"ema1\":0.17805909729178818,\"sma1\":0.17494774759259274,\"sma2\":0.17574237666666667,\"rsi_avg_gain\":0.0008718608594830033,\"rsi_avg_loss\":0.00037347880142464394,\"rsi\":70},{\"period_id\":\"120m209745\",\"size\":\"120m\",\"time\":1510164000000,\"open\":0.18168,\"high\":0.18489,\"low\":0.1812,\"close\":0.18478,\"volume\":1649316.9000354288,\"close_time\":1510171085680,\"vwap\":0.18346515239003017,\"ema1\":0.17759213848432528,\"sma1\":0.17485432166666684,\"sma2\":0.17572520999999994,\"rsi_avg_gain\":0.0009350809255970809,\"rsi_avg_loss\":0.00040220793999577037,\"rsi\":70},{\"period_id\":\"120m209744\",\"size\":\"120m\",\"time\":1510156800000,\"open\":0.18179,\"high\":0.18185,\"low\":0.18021,\"close\":0.18169,\"volume\":681920.6512323202,\"close_time\":1510163982490,\"vwap\":0.1772081406292334,\"ema1\":0.17709642389703736,\"sma1\":0.17479080314814832,\"sma2\":0.17573820999999995,\"rsi_avg_gain\":0.0007693179198737787,\"rsi_avg_loss\":0.00043314701230313734,\"rsi\":64},{\"period_id\":\"120m209743\",\"size\":\"120m\",\"time\":1510149600000,\"open\":0.1805,\"high\":0.18185,\"low\":0.17981,\"close\":0.18185,\"volume\":951725.1750221897,\"close_time\":1510156611388,\"vwap\":0.17714509475265644,\"ema1\":0.1767796255451089,\"sma1\":0.17472358092592605,\"sma2\":0.17568104333333331,\"rsi_avg_gain\":0.0008284962214025308,\"rsi_avg_loss\":0.0004541583209418386,\"rsi\":65},{\"period_id\":\"120m209742\",\"size\":\"120m\",\"time\":1510142400000,\"open\":0.17993,\"high\":0.18099,\"low\":0.17898,\"close\":0.1805,\"volume\":540792.8048310501,\"close_time\":1510149525975,\"vwap\":0.17701954964542838,\"ema1\":0.17642994454821986,\"sma1\":0.17467182166666678,\"sma2\":0.17562087666666662,\"rsi_avg_gain\":0.000788380546125801,\"rsi_avg_loss\":0.0004890935763989031,\"rsi\":62},{\"period_id\":\"120m209741\",\"size\":\"120m\",\"time\":1510135200000,\"open\":0.1814,\"high\":0.1818,\"low\":0.179,\"close\":0.179,\"volume\":783970.61652481,\"close_time\":1510142377261,\"vwap\":0.17696603762491137,\"ema1\":0.17614925106878676,\"sma1\":0.17461108092592603,\"sma2\":0.1755445433333333,\"rsi_avg_gain\":0.000733640588135478,\"rsi_avg_loss\":0.0005267161591988187,\"rsi\":58},{\"period_id\":\"120m209740\",\"size\":\"120m\",\"time\":1510128000000,\"open\":0.17791,\"high\":0.1815,\"low\":0.1779,\"close\":0.1814,\"volume\":1374943.94239282,\"close_time\":1510135187696,\"vwap\":0.17684948527603525,\"ema1\":0.17595264769422034,\"sma1\":0.17454858092592598,\"sma2\":0.17539120999999996,\"rsi_avg_gain\":0.0007900744795305148,\"rsi_avg_loss\":0.00038261740221411144,\"rsi\":67},{\"period_id\":\"120m209739\",\"size\":\"120m\",\"time\":1510120800000,\"open\":0.17764,\"high\":0.17849,\"low\":0.17652,\"close\":0.178,\"volume\":384621.52919080993,\"close_time\":1510127962156,\"vwap\":0.17630434846434523,\"ema1\":0.17557696822485622,\"sma1\":0.17450515500000008,\"sma2\":0.1753463766666666,\"rsi_avg_gain\":0.0005893109779559379,\"rsi_avg_loss\":0.0004120495100767354,\"rsi\":59},{\"period_id\":\"120m209738\",\"size\":\"120m\",\"time\":1510113600000,\"open\":0.1769,\"high\":0.1777,\"low\":0.17644,\"close\":0.1777,\"volume\":69522.52897796,\"close_time\":1510120779142,\"vwap\":0.1762837940831712,\"ema1\":0.17540986258519112,\"sma1\":0.17446256240740748,\"sma2\":0.1752628766666666,\"rsi_avg_gain\":0.0006115656685679335,\"rsi_avg_loss\":0.0004437456262364843,\"rsi\":58},{\"period_id\":\"120m209737\",\"size\":\"120m\",\"time\":1510106400000,\"open\":0.17604,\"high\":0.1777,\"low\":0.17601,\"close\":0.17679,\"volume\":48029.677979789994,\"close_time\":1510113047765,\"vwap\":0.17628315230775718,\"ema1\":0.17525192207382498,\"sma1\":0.17442145129629635,\"sma2\":0.1751333766666666,\"rsi_avg_gain\":0.0005886091815346981,\"rsi_avg_loss\":0.0004778799051777523,\"rsi\":55},{\"period_id\":\"120m209736\",\"size\":\"120m\",\"time\":1510099200000,\"open\":0.17749,\"high\":0.178,\"low\":0.17573,\"close\":0.17627,\"volume\":193680.65782711,\"close_time\":1510105724331,\"vwap\":0.1762830146215188,\"ema1\":0.17514584773408878,\"sma1\":0.17438404388888895,\"sma2\":0.1751413766666666,\"rsi_avg_gain\":0.0005938868108835216,\"rsi_avg_loss\":0.0005146398978837333,\"rsi\":54},{\"period_id\":\"120m209735\",\"size\":\"120m\",\"time\":1510092000000,\"open\":0.176,\"high\":0.17798,\"low\":0.17505,\"close\":0.17654,\"volume\":331983.7212767101,\"close_time\":1510099191438,\"vwap\":0.17628021174746644,\"ema1\":0.17506831999161215,\"sma1\":0.17434135870370374,\"sma2\":0.17506720999999995,\"rsi_avg_gain\":0.0006395704117207156,\"rsi_avg_loss\":0.000533458351567098,\"rsi\":55},{\"period_id\":\"120m209734\",\"size\":\"120m\",\"time\":1510084800000,\"open\":0.17462,\"high\":0.17599,\"low\":0.174,\"close\":0.1758,\"volume\":543890.8425675798,\"close_time\":1510091951730,\"vwap\":0.1762744813293033,\"ema1\":0.1749668248186199,\"sma1\":0.1743274698148148,\"sma2\":0.17486787666666662,\"rsi_avg_gain\":0.0006318450587761559,\"rsi_avg_loss\":0.0005744936093799517,\"rsi\":52},{\"period_id\":\"120m209733\",\"size\":\"120m\",\"time\":1510077600000,\"open\":0.176,\"high\":0.17623,\"low\":0.1742,\"close\":0.17467,\"volume\":298285.5914498901,\"close_time\":1510084781753,\"vwap\":0.1763036070063524,\"ema1\":0.17490936446128333,\"sma1\":0.17430265499999997,\"sma2\":0.17470687666666665,\"rsi_avg_gain\":0.0005935254479127818,\"rsi_avg_loss\":0.0006186854254861019,\"rsi\":49},{\"period_id\":\"120m209732\",\"size\":\"120m\",\"time\":1510070400000,\"open\":0.17696,\"high\":0.17699,\"low\":0.1741,\"close\":0.17624,\"volume\":616210.35768858,\"close_time\":1510077534651,\"vwap\":0.17631701248948523,\"ema1\":0.17492587235516494,\"sma1\":0.17427219203703703,\"sma2\":0.17451487666666665,\"rsi_avg_gain\":0.0006391812515983804,\"rsi_avg_loss\":0.0005455073812927238,\"rsi\":54},{\"period_id\":\"120m209731\",\"size\":\"120m\",\"time\":1510063200000,\"open\":0.1765,\"high\":0.1788,\"low\":0.175,\"close\":0.17696,\"volume\":484177.00953444996,\"close_time\":1510070388539,\"vwap\":0.17634769209708429,\"ema1\":0.1748352428624177,\"sma1\":0.1742154327777778,\"sma2\":0.17432304333333332,\"rsi_avg_gain\":0.0006883490401828712,\"rsi_avg_loss\":0.000532084872161395,\"rsi\":56},{\"period_id\":\"120m209730\",\"size\":\"120m\",\"time\":1510056000000,\"open\":0.17611,\"high\":0.1794,\"low\":0.17513,\"close\":0.1765,\"volume\":691270.1650262901,\"close_time\":1510063183951,\"vwap\":0.1763291151053019,\"ema1\":0.174688707887412,\"sma1\":0.17414691425925927,\"sma2\":0.17415170999999996,\"rsi_avg_gain\":0.0007059143509661678,\"rsi_avg_loss\":0.0005730144777122716,\"rsi\":55},{\"period_id\":\"120m209729\",\"size\":\"120m\",\"time\":1510048800000,\"open\":0.175,\"high\":0.17611,\"low\":0.1742,\"close\":0.17611,\"volume\":343346.65494068,\"close_time\":1510055978376,\"vwap\":0.17627389252578707,\"ema1\":0.17456379118999213,\"sma1\":0.17410311796296296,\"sma2\":0.17388320999999998,\"rsi_avg_gain\":0.0007302154548866421,\"rsi_avg_loss\":0.0006170925144593694,\"rsi\":54},{\"period_id\":\"120m209728\",\"size\":\"120m\",\"time\":1510041600000,\"open\":0.17482,\"high\":0.1763,\"low\":0.1744,\"close\":0.1757,\"volume\":580407.61852609,\"close_time\":1510048791024,\"vwap\":0.1762873024829153,\"ema1\":0.17445715609964677,\"sma1\":0.17407061796296294,\"sma2\":0.17356670999999996,\"rsi_avg_gain\":0.0007548474129548458,\"rsi_avg_loss\":0.0006645611694177824,\"rsi\":53},{\"period_id\":\"120m209727\",\"size\":\"120m\",\"time\":1510034400000,\"open\":0.1744,\"high\":0.17537,\"low\":0.17321,\"close\":0.17482,\"volume\":284289.22077732993,\"close_time\":1510041591397,\"vwap\":0.17630723248762015,\"ema1\":0.17437144272720861,\"sma1\":0.17405580314814817,\"sma2\":0.17330504333333335,\"rsi_avg_gain\":0.0007452202908744498,\"rsi_avg_loss\":0.0007156812593729964,\"rsi\":51},{\"period_id\":\"120m209726\",\"size\":\"120m\",\"time\":1510027200000,\"open\":0.17457,\"high\":0.17517,\"low\":0.17371,\"close\":0.17447,\"volume\":11673.709015010001,\"close_time\":1510034307242,\"vwap\":0.17632715637930496,\"ema1\":0.17434050774287818,\"sma1\":0.1740440438888889,\"sma2\":0.1730855433333333,\"rsi_avg_gain\":0.0007756218517109447,\"rsi_avg_loss\":0.00077073366394015,\"rsi\":50},{\"period_id\":\"120m209725\",\"size\":\"120m\",\"time\":1510020000000,\"open\":0.17377,\"high\":0.1745,\"low\":0.17302,\"close\":0.1745,\"volume\":20485.34577588,\"close_time\":1510026811994,\"vwap\":0.17632736864495324,\"ema1\":0.17433157724238701,\"sma1\":0.17401395129629627,\"sma2\":0.17288554333333334,\"rsi_avg_gain\":0.000835285071073325,\"rsi_avg_loss\":0.0008277131765509306,\"rsi\":50},{\"period_id\":\"120m209724\",\"size\":\"120m\",\"time\":1510012800000,\"open\":0.1752,\"high\":0.176,\"low\":0.173,\"close\":0.173,\"volume\":507745.65906769,\"close_time\":1510019694184,\"vwap\":0.17632763566135132,\"ema1\":0.174319961879793,\"sma1\":0.17397811796296297,\"sma2\":0.17275754333333332,\"rsi_avg_gain\":0.0007841531534635807,\"rsi_avg_loss\":0.0008913834209010021,\"rsi\":47},{\"period_id\":\"120m209723\",\"size\":\"120m\",\"time\":1510005600000,\"open\":0.176,\"high\":0.17736,\"low\":0.17508,\"close\":0.17583,\"volume\":321363.90848562,\"close_time\":1510012612990,\"vwap\":0.17637927042885876,\"ema1\":0.17441099373357183,\"sma1\":0.17393339574074074,\"sma2\":0.17256604333333334,\"rsi_avg_gain\":0.000844472626806933,\"rsi_avg_loss\":0.0007422590686626177,\"rsi\":53},{\"period_id\":\"120m209722\",\"size\":\"120m\",\"time\":1509998400000,\"open\":0.17397,\"high\":0.17917,\"low\":0.173,\"close\":0.17652,\"volume\":837215.3540747804,\"close_time\":1510005596259,\"vwap\":0.17638550038630982,\"ema1\":0.17431313123243886,\"sma1\":0.17388821055555553,\"sma2\":0.17239937666666666,\"rsi_avg_gain\":0.0009094320596382355,\"rsi_avg_loss\":0.0007462789970212788,\"rsi\":55},{\"period_id\":\"120m209721\",\"size\":\"120m\",\"time\":1509991200000,\"open\":0.1779,\"high\":0.178,\"low\":0.1725,\"close\":0.17344,\"volume\":831803.0782492501,\"close_time\":1509998371399,\"vwap\":0.1763728659891269,\"ema1\":0.17416093338640015,\"sma1\":0.17383654388888883,\"sma2\":0.17231671,\"rsi_avg_gain\":0.0007424652949950229,\"rsi_avg_loss\":0.0008036850737152233,\"rsi\":48},{\"period_id\":\"120m209720\",\"size\":\"120m\",\"time\":1509984000000,\"open\":0.17718,\"high\":0.178,\"low\":0.176,\"close\":0.1779,\"volume\":519464.5367089202,\"close_time\":1509991165784,\"vwap\":0.17655694252312815,\"ema1\":0.1742106529302898,\"sma1\":0.1737830253703703,\"sma2\":0.17218487666666665,\"rsi_avg_gain\":0.00079957800999464,\"rsi_avg_loss\":0.0005224300793856257,\"rsi\":60},{\"period_id\":\"120m209719\",\"size\":\"120m\",\"time\":1509976800000,\"open\":0.17746,\"high\":0.17942,\"low\":0.176,\"close\":0.17651,\"volume\":713613.6589118104,\"close_time\":1509983927143,\"vwap\":0.17651198797115353,\"ema1\":0.17395621520134427,\"sma1\":0.17373274759259252,\"sma2\":0.17211521,\"rsi_avg_gain\":0.0007541609338403814,\"rsi_avg_loss\":0.0005626170085691354,\"rsi\":57},{\"period_id\":\"120m209718\",\"size\":\"120m\",\"time\":1509969600000,\"open\":0.17809,\"high\":0.1795,\"low\":0.17611,\"close\":0.17749,\"volume\":1374767.8448534303,\"close_time\":1509976794806,\"vwap\":0.17645776386520048,\"ema1\":0.1737800921117818,\"sma1\":0.17368885870370365,\"sma2\":0.17200871,\"rsi_avg_gain\":0.0008121733133665646,\"rsi_avg_loss\":0.0005305106246129143,\"rsi\":60},{\"period_id\":\"120m209717\",\"size\":\"120m\",\"time\":1509962400000,\"open\":0.1735,\"high\":0.17999,\"low\":0.1725,\"close\":0.1781,\"volume\":2200216.881624569,\"close_time\":1509969590499,\"vwap\":0.17582682135873356,\"ema1\":0.17352423639535297,\"sma1\":0.17363922907407403,\"sma2\":0.17187354333333332,\"rsi_avg_gain\":0.0008746481836255311,\"rsi_avg_loss\":0.0005243960572754462,\"rsi\":63},{\"period_id\":\"120m209716\",\"size\":\"120m\",\"time\":1509955200000,\"open\":0.17255,\"high\":0.17357,\"low\":0.17148,\"close\":0.17356,\"volume\":335989.29328549025,\"close_time\":1509962384294,\"vwap\":0.17264799639179712,\"ema1\":0.1732086664915842,\"sma1\":0.17365006240740738,\"sma2\":0.17183271,\"rsi_avg_gain\":0.0005926980439044169,\"rsi_avg_loss\":0.0005647342155274037,\"rsi\":51},{\"period_id\":\"120m209715\",\"size\":\"120m\",\"time\":1509948000000,\"open\":0.1721,\"high\":0.1728,\"low\":0.1715,\"close\":0.1715,\"volume\":202010.55558656997,\"close_time\":1509955028898,\"vwap\":0.17258660130857495,\"ema1\":0.17318443659445207,\"sma1\":0.1736625624074074,\"sma2\":0.17182771000000002,\"rsi_avg_gain\":0.0004798286626662968,\"rsi_avg_loss\":0.0006081753090295116,\"rsi\":44},{\"period_id\":\"120m209714\",\"size\":\"120m\",\"time\":1509940800000,\"open\":0.17246,\"high\":0.17288,\"low\":0.17201,\"close\":0.1721,\"volume\":23604.53356389,\"close_time\":1509947976027,\"vwap\":0.17259630514354163,\"ema1\":0.17330060463544877,\"sma1\":0.173670155,\"sma2\":0.17180604333333335,\"rsi_avg_gain\":0.0005167385597944735,\"rsi_avg_loss\":0.0006088041789548594,\"rsi\":46},{\"period_id\":\"120m209713\",\"size\":\"120m\",\"time\":1509933600000,\"open\":0.17205,\"high\":0.17288,\"low\":0.17157,\"close\":0.17201,\"volume\":19736.135164620002,\"close_time\":1509939281965,\"vwap\":0.17259654836304095,\"ema1\":0.1733834049551349,\"sma1\":0.17367598833333334,\"sma2\":0.17177304333333335,\"rsi_avg_gain\":0.0005495646028555863,\"rsi_avg_loss\":0.0006556352696436946,\"rsi\":46},{\"period_id\":\"120m209712\",\"size\":\"120m\",\"time\":1509926400000,\"open\":0.17216,\"high\":0.17292,\"low\":0.1715,\"close\":0.17158,\"volume\":121462.81296058,\"close_time\":1509933007327,\"vwap\":0.172596599833927,\"ema1\":0.17347812253824765,\"sma1\":0.17368969203703702,\"sma2\":0.17177604333333335,\"rsi_avg_gain\":0.0005587618799983248,\"rsi_avg_loss\":0.0007060687519239788,\"rsi\":44},{\"period_id\":\"120m209711\",\"size\":\"120m\",\"time\":1509919200000,\"open\":0.1731326,\"high\":0.1735,\"low\":0.17202,\"close\":0.17295,\"volume\":141936.93398588,\"close_time\":1509926340359,\"vwap\":0.1726036287135266,\"ema1\":0.17360902754088542,\"sma1\":0.1737000624074074,\"sma2\":0.17174754333333336,\"rsi_avg_gain\":0.000601743563075119,\"rsi_avg_loss\":0.000654997117456594,\"rsi\":48},{\"period_id\":\"120m209710\",\"size\":\"120m\",\"time\":1509912000000,\"open\":0.1715,\"high\":0.1731326,\"low\":0.17102,\"close\":0.1731326,\"volume\":453581.5936299202,\"close_time\":1509919033486,\"vwap\":0.1725990940384622,\"ema1\":0.1736544777161189,\"sma1\":0.17371383462962958,\"sma2\":0.17172933333333337,\"rsi_avg_gain\":0.0006480315294655129,\"rsi_avg_loss\":0.000691335357260947,\"rsi\":48},{\"period_id\":\"120m209709\",\"size\":\"120m\",\"time\":1509904800000,\"open\":0.17196,\"high\":0.172,\"low\":0.171,\"close\":0.17148,\"volume\":278209.07779125,\"close_time\":1509911957273,\"vwap\":0.17271075343023604,\"ema1\":0.17369046928274778,\"sma1\":0.17373939018518517,\"sma2\":0.17174900000000007,\"rsi_avg_gain\":0.0005707570317320904,\"rsi_avg_loss\":0.0007445150001271737,\"rsi\":43},{\"period_id\":\"120m209708\",\"size\":\"120m\",\"time\":1509897600000,\"open\":0.17288,\"high\":0.173,\"low\":0.17115,\"close\":0.172,\"volume\":375641.9879333099,\"close_time\":1509904684190,\"vwap\":0.17283037800383533,\"ema1\":0.17384291544017866,\"sma1\":0.1737573531481481,\"sma2\":0.1717490000000001,\"rsi_avg_gain\":0.0006146614187884051,\"rsi_avg_loss\":0.0007617853847523415,\"rsi\":45},{\"period_id\":\"120m209707\",\"size\":\"120m\",\"time\":1509890400000,\"open\":0.17179,\"high\":0.173,\"low\":0.171,\"close\":0.17297,\"volume\":292718.31836345984,\"close_time\":1509897404974,\"vwap\":0.17296546673897062,\"ema1\":0.1739700130567427,\"sma1\":0.17377401981481477,\"sma2\":0.1717578333333334,\"rsi_avg_gain\":0.0006619430663875132,\"rsi_avg_loss\":0.000745768875887135,\"rsi\":47},{\"period_id\":\"120m209706\",\"size\":\"120m\",\"time\":1509883200000,\"open\":0.17341,\"high\":0.17438,\"low\":0.1713,\"close\":0.1719,\"volume\":480094.5933641599,\"close_time\":1509890180175,\"vwap\":0.1731022452503913,\"ema1\":0.1740389794744491,\"sma1\":0.1737765198148148,\"sma2\":0.1718028333333334,\"rsi_avg_gain\":0.0006305540714942438,\"rsi_avg_loss\":0.0008031357124938377,\"rsi\":44},{\"period_id\":\"120m209705\",\"size\":\"120m\",\"time\":1509876000000,\"open\":0.1735,\"high\":0.17436,\"low\":0.172,\"close\":0.1738,\"volume\":282879.70329523,\"close_time\":1509882934323,\"vwap\":0.17367944885888292,\"ema1\":0.17418649530027316,\"sma1\":0.1737778161111111,\"sma2\":0.17181316666666674,\"rsi_avg_gain\":0.0006790582308399549,\"rsi_avg_loss\":0.0007187615365318242,\"rsi\":49},{\"period_id\":\"120m209704\",\"size\":\"120m\",\"time\":1509868800000,\"open\":0.175,\"high\":0.175,\"low\":0.17224,\"close\":0.17308,\"volume\":192083.89489337002,\"close_time\":1509875951637,\"vwap\":0.1737657090836261,\"ema1\":0.17421315014856786,\"sma1\":0.17377744574074072,\"sma2\":0.17184000000000005,\"rsi_avg_gain\":0.00067590886398149,\"rsi_avg_loss\":0.0007740508854958108,\"rsi\":47},{\"period_id\":\"120m209703\",\"size\":\"120m\",\"time\":1509861600000,\"open\":0.17477,\"high\":0.175,\"low\":0.17412,\"close\":0.17434,\"volume\":22891.058959859998,\"close_time\":1509868062594,\"vwap\":0.17376230882034208,\"ema1\":0.174291298434676,\"sma1\":0.17377559388888886,\"sma2\":0.17183783333333338,\"rsi_avg_gain\":0.0007279018535185276,\"rsi_avg_loss\":0.0007366701843801053,\"rsi\":50},{\"period_id\":\"120m209702\",\"size\":\"120m\",\"time\":1509854400000,\"open\":0.1743,\"high\":0.1751,\"low\":0.17386,\"close\":0.17506,\"volume\":45456.856648160014,\"close_time\":1509861577221,\"vwap\":0.1737564093378445,\"ema1\":0.17428793970603296,\"sma1\":0.17376874203703696,\"sma2\":0.17181833333333338,\"rsi_avg_gain\":0.0007838943037891836,\"rsi_avg_loss\":0.0007379525062554982,\"rsi\":52},{\"period_id\":\"120m209701\",\"size\":\"120m\",\"time\":1509847200000,\"open\":0.17441,\"high\":0.17508,\"low\":0.17233,\"close\":0.1743,\"volume\":87526.60253024001,\"close_time\":1509854298552,\"vwap\":0.17374425112534134,\"ema1\":0.174234694168518,\"sma1\":0.17375633462962958,\"sma2\":0.17181566666666673,\"rsi_avg_gain\":0.0007857323271575837,\"rsi_avg_loss\":0.0007947180836597673,\"rsi\":50},{\"period_id\":\"120m209700\",\"size\":\"120m\",\"time\":1509840000000,\"open\":0.1732,\"high\":0.1747,\"low\":0.17234,\"close\":0.17441,\"volume\":220942.73585190997,\"close_time\":1509847131823,\"vwap\":0.1737411085080375,\"ema1\":0.17423019031807097,\"sma1\":0.1737498531481481,\"sma2\":0.1718096666666667,\"rsi_avg_gain\":0.0008461732754004748,\"rsi_avg_loss\":0.0008473887054797495,\"rsi\":50},{\"period_id\":\"120m209699\",\"size\":\"120m\",\"time\":1509832800000,\"open\":0.17397,\"high\":0.17489,\"low\":0.17309,\"close\":0.17318,\"volume\":70737.93909811002,\"close_time\":1509839832787,\"vwap\":0.17387024507517398,\"ema1\":0.17421778965035173,\"sma1\":0.17374290870370365,\"sma2\":0.17182766666666668,\"rsi_avg_gain\":0.0008166481427389721,\"rsi_avg_loss\":0.0009125724520551149,\"rsi\":47},{\"period_id\":\"120m209698\",\"size\":\"120m\",\"time\":1509825600000,\"open\":0.1747,\"high\":0.17491,\"low\":0.173,\"close\":0.17396,\"volume\":312704.62396786007,\"close_time\":1509832781004,\"vwap\":0.1738664420875736,\"ema1\":0.17428936135037598,\"sma1\":0.17373327907407404,\"sma2\":0.17182000000000003,\"rsi_avg_gain\":0.0008794672306419699,\"rsi_avg_loss\":0.0009227703329824312,\"rsi\":49},{\"period_id\":\"120m209697\",\"size\":\"120m\",\"time\":1509818400000,\"open\":0.17519,\"high\":0.17576,\"low\":0.1746,\"close\":0.1755,\"volume\":115412.53669688001,\"close_time\":1509825521375,\"vwap\":0.17526488600518347,\"ema1\":0.174312075926264,\"sma1\":0.17372003833333327,\"sma2\":0.17180766666666666,\"rsi_avg_gain\":0.0009471185560759677,\"rsi_avg_loss\":0.0008752911278272346,\"rsi\":52},{\"period_id\":\"120m209696\",\"size\":\"120m\",\"time\":1509811200000,\"open\":0.17544,\"high\":0.176,\"low\":0.17461,\"close\":0.17519,\"volume\":265530.03636954,\"close_time\":1509818399443,\"vwap\":0.17850771145357078,\"ema1\":0.1742301501280753,\"sma1\":0.17369772351851848,\"sma2\":0.17177116666666667,\"rsi_avg_gain\":0.0009961276757741208,\"rsi_avg_loss\":0.0009426212145831758,\"rsi\":51},{\"period_id\":\"120m209695\",\"size\":\"120m\",\"time\":1509804000000,\"open\":0.17701,\"high\":0.17727,\"low\":0.1754,\"close\":0.17584,\"volume\":400965.41010697023,\"close_time\":1509811145225,\"vwap\":0.17852065296639974,\"ema1\":0.17416395358518394,\"sma1\":0.17367207537037033,\"sma2\":0.17174766666666663,\"rsi_avg_gain\":0.0010727528816028994,\"rsi_avg_loss\":0.0009651305387818828,\"rsi\":53},{\"period_id\":\"120m209694\",\"size\":\"120m\",\"time\":1509796800000,\"open\":0.17545,\"high\":0.17796,\"low\":0.175,\"close\":0.17701,\"volume\":519384.7214879097,\"close_time\":1509803994909,\"vwap\":0.1785312151986388,\"ema1\":0.1740483641772656,\"sma1\":0.17365281611111102,\"sma2\":0.17170333333333332,\"rsi_avg_gain\":0.0011552723340338916,\"rsi_avg_loss\":0.000949371349457412,\"rsi\":55},{\"period_id\":\"120m209693\",\"size\":\"120m\",\"time\":1509789600000,\"open\":0.17463,\"high\":0.17686,\"low\":0.1742,\"close\":0.175,\"volume\":276182.54125248006,\"close_time\":1509796634780,\"vwap\":0.17855088011081036,\"ema1\":0.1738441134308701,\"sma1\":0.17364151981481477,\"sma2\":0.1717033333333333,\"rsi_avg_gain\":0.0010895240520364976,\"rsi_avg_loss\":0.0010223999148002898,\"rsi\":52},{\"period_id\":\"120m209692\",\"size\":\"120m\",\"time\":1509782400000,\"open\":0.17584,\"high\":0.17674414,\"low\":0.17422,\"close\":0.176,\"volume\":457462.7664928798,\"close_time\":1509789508359,\"vwap\":0.17856212219624276,\"ema1\":0.1737643971157577,\"sma1\":0.17362379629629623,\"sma2\":0.1716633333333333,\"rsi_avg_gain\":0.0011733335945008437,\"rsi_avg_loss\":0.0010241229851695427,\"rsi\":53},{\"period_id\":\"120m209691\",\"size\":\"120m\",\"time\":1509775200000,\"open\":0.17575,\"high\":0.17638,\"low\":0.17486,\"close\":0.17592,\"volume\":205233.37796132002,\"close_time\":1509782377457,\"vwap\":0.17858494048291465,\"ema1\":0.1736102176064996,\"sma1\":0.17359712962962956,\"sma2\":0.17161466666666664,\"rsi_avg_gain\":0.0012574361786932165,\"rsi_avg_loss\":0.0011029016763364305,\"rsi\":53},{\"period_id\":\"120m209690\",\"size\":\"120m\",\"time\":1509768000000,\"open\":0.17459,\"high\":0.17672,\"low\":0.17359,\"close\":0.17672,\"volume\":408079.27570876,\"close_time\":1509775092431,\"vwap\":0.1785908201041022,\"ema1\":0.17345092226901682,\"sma1\":0.17356851851851848,\"sma2\":0.17155416666666665,\"rsi_avg_gain\":0.0013541620385926947,\"rsi_avg_loss\":0.001126201805285387,\"rsi\":55},{\"period_id\":\"120m209689\",\"size\":\"120m\",\"time\":1509760800000,\"open\":0.17535,\"high\":0.17698,\"low\":0.17202,\"close\":0.17457,\"volume\":1521247.5292743105,\"close_time\":1509767699486,\"vwap\":0.17859915263452808,\"ema1\":0.1732254686323973,\"sma1\":0.17353731481481477,\"sma2\":0.17152916666666662,\"rsi_avg_gain\":0.001292943733869057,\"rsi_avg_loss\":0.001212832713384263,\"rsi\":52},{\"period_id\":\"120m209688\",\"size\":\"120m\",\"time\":1509753600000,\"open\":0.1785,\"high\":0.179,\"low\":0.175,\"close\":0.175,\"volume\":451997.22231772024,\"close_time\":1509760617905,\"vwap\":0.17870220966755024,\"ema1\":0.1731327423311833,\"sma1\":0.17348388888888883,\"sma2\":0.17149466666666663,\"rsi_avg_gain\":0.0013924009441666767,\"rsi_avg_loss\":0.0012730506144138227,\"rsi\":52},{\"period_id\":\"120m209687\",\"size\":\"120m\",\"time\":1509746400000,\"open\":0.1829,\"high\":0.184,\"low\":0.1785,\"close\":0.1785,\"volume\":575165.06890172,\"close_time\":1509753593833,\"vwap\":0.17872124128824868,\"ema1\":0.17300396594023043,\"sma1\":0.1733971296296296,\"sma2\":0.17139216666666662,\"rsi_avg_gain\":0.001499508709102575,\"rsi_avg_loss\":0.001101746815522578,\"rsi\":58},{\"period_id\":\"120m209686\",\"size\":\"120m\",\"time\":1509739200000,\"open\":0.1832,\"high\":0.18659,\"low\":0.182,\"close\":0.1829,\"volume\":2008075.9797360403,\"close_time\":1509746386140,\"vwap\":0.17868639292221958,\"ema1\":0.17262492910852217,\"sma1\":0.17327666666666663,\"sma2\":0.17122716666666665,\"rsi_avg_gain\":0.001614855532879696,\"rsi_avg_loss\":0.0008480350321012367,\"rsi\":66},{\"period_id\":\"120m209685\",\"size\":\"120m\",\"time\":1509732000000,\"open\":0.18246,\"high\":0.184,\"low\":0.17948,\"close\":0.18375,\"volume\":1677742.2580434396,\"close_time\":1509739152792,\"vwap\":0.17778818381070466,\"ema1\":0.17191630352979956,\"sma1\":0.17316833333333334,\"sma2\":0.17103883333333328,\"rsi_avg_gain\":0.0017390751892550572,\"rsi_avg_loss\":0.0008478838807244095,\"rsi\":67},{\"period_id\":\"120m209684\",\"size\":\"120m\",\"time\":1509724800000,\"open\":0.17841,\"high\":0.18247,\"low\":0.17841,\"close\":0.18247,\"volume\":1072665.8394164399,\"close_time\":1509731987799,\"vwap\":0.177272360069462,\"ema1\":0.17110018653185471,\"sma1\":0.17307925925925924,\"sma2\":0.17086349999999997,\"rsi_avg_gain\":0.0017743886653515998,\"rsi_avg_loss\":0.0009131057177032102,\"rsi\":66},{\"period_id\":\"120m209683\",\"size\":\"120m\",\"time\":1509717600000,\"open\":0.1768,\"high\":0.18334,\"low\":0.17621,\"close\":0.17842,\"volume\":2248575.3095276006,\"close_time\":1509724727590,\"vwap\":0.17710865470937262,\"ema1\":0.17031606146508607,\"sma1\":0.17300240740740738,\"sma2\":0.17076766666666668,\"rsi_avg_gain\":0.0015993416396094151,\"rsi_avg_loss\":0.0009833446190649956,\"rsi\":62},{\"period_id\":\"120m209682\",\"size\":\"120m\",\"time\":1509710400000,\"open\":0.17437,\"high\":0.17699,\"low\":0.173,\"close\":0.17689,\"volume\":661699.4675666498,\"close_time\":1509717577659,\"vwap\":0.1761124352989698,\"ema1\":0.16975716915233338,\"sma1\":0.17297009259259258,\"sma2\":0.17068616666666667,\"rsi_avg_gain\":0.0016046756118870621,\"rsi_avg_loss\":0.001058986512839226,\"rsi\":60},{\"period_id\":\"120m209681\",\"size\":\"120m\",\"time\":1509703200000,\"open\":0.1745,\"high\":0.17557,\"low\":0.17226,\"close\":0.17442,\"volume\":781881.1833836805,\"close_time\":1509710384632,\"vwap\":0.17612551973773838,\"ema1\":0.16926524978352878,\"sma1\":0.17297185185185182,\"sma2\":0.17061966666666664,\"rsi_avg_gain\":0.0015381121974168362,\"rsi_avg_loss\":0.0011404470138268587,\"rsi\":57},{\"period_id\":\"120m209680\",\"size\":\"120m\",\"time\":1509696000000,\"open\":0.1749,\"high\":0.1765,\"low\":0.1721,\"close\":0.1722,\"volume\":1284360.5497725192,\"close_time\":1509703193194,\"vwap\":0.17625700382993523,\"ema1\":0.16890974976859974,\"sma1\":0.17297555555555555,\"sma2\":0.17060466666666665,\"rsi_avg_gain\":0.0014856592895258237,\"rsi_avg_loss\":0.0012281737071981554,\"rsi\":55},{\"period_id\":\"120m209679\",\"size\":\"120m\",\"time\":1509688800000,\"open\":0.1717,\"high\":0.176,\"low\":0.17,\"close\":0.17531,\"volume\":935123.9349501398,\"close_time\":1509695910104,\"vwap\":0.17633967917486892,\"ema1\":0.16868283595953765,\"sma1\":0.17298472222222222,\"sma2\":0.1705553333333333,\"rsi_avg_gain\":0.0015999407733355024,\"rsi_avg_loss\":0.0010834178385210904,\"rsi\":60},{\"period_id\":\"120m209678\",\"size\":\"120m\",\"time\":1509681600000,\"open\":0.16914,\"high\":0.1742,\"low\":0.1675,\"close\":0.17269,\"volume\":434158.1058708002,\"close_time\":1509688744339,\"vwap\":0.17651678723662229,\"ema1\":0.1682257901636437,\"sma1\":0.17300138888888889,\"sma2\":0.17056599999999997,\"rsi_avg_gain\":0.0015214746789766961,\"rsi_avg_loss\":0.0011667576722534819,\"rsi\":57},{\"period_id\":\"120m209677\",\"size\":\"120m\",\"time\":1509674400000,\"open\":0.17603,\"high\":0.1768,\"low\":0.16835,\"close\":0.16902,\"volume\":791394.3819360004,\"close_time\":1509681430051,\"vwap\":0.1766275281003757,\"ema1\":0.16791791362320532,\"sma1\":0.17298111111111109,\"sma2\":0.170591,\"rsi_avg_gain\":0.0013562035004364415,\"rsi_avg_loss\":0.0012565082624268267,\"rsi\":52},{\"period_id\":\"120m209676\",\"size\":\"120m\",\"time\":1509667200000,\"open\":0.17103,\"high\":0.185,\"low\":0.17103,\"close\":0.17675,\"volume\":2884382.1256436,\"close_time\":1509674369734,\"vwap\":0.17686922589392973,\"ema1\":0.167841907666185,\"sma1\":0.17289240740740736,\"sma2\":0.17049533333333333,\"rsi_avg_gain\":0.0014605268466238602,\"rsi_avg_loss\":0.0007585473595365838,\"rsi\":66},{\"period_id\":\"120m209675\",\"size\":\"120m\",\"time\":1509660000000,\"open\":0.1639,\"high\":0.17379,\"low\":0.16262,\"close\":0.17209,\"volume\":1265909.4986710113,\"close_time\":1509667170394,\"vwap\":0.16828478772310673,\"ema1\":0.1672275564707495,\"sma1\":0.17293324074074073,\"sma2\":0.17048883333333337,\"rsi_avg_gain\":0.001214413527133388,\"rsi_avg_loss\":0.0008168971564240133,\"rsi\":60},{\"period_id\":\"120m209674\",\"size\":\"120m\",\"time\":1509652800000,\"open\":0.16502,\"high\":0.167,\"low\":0.16261,\"close\":0.16384,\"volume\":418199.62917654985,\"close_time\":1509659976821,\"vwap\":0.16488793477927424,\"ema1\":0.16689221553769773,\"sma1\":0.1730593518518518,\"sma2\":0.17062050000000004,\"rsi_avg_gain\":0.0006732145676821118,\"rsi_avg_loss\":0.0008797353992258605,\"rsi\":43},{\"period_id\":\"120m209673\",\"size\":\"120m\",\"time\":1509645600000,\"open\":0.16471,\"high\":0.16652,\"low\":0.1632,\"close\":0.16501,\"volume\":525454.1958027601,\"close_time\":1509652741055,\"vwap\":0.1653894417436787,\"ema1\":0.16710271316098724,\"sma1\":0.1732121296296296,\"sma2\":0.17072883333333333,\"rsi_avg_gain\":0.000725000303657659,\"rsi_avg_loss\":0.0008574073530124669,\"rsi\":46},{\"period_id\":\"120m209672\",\"size\":\"120m\",\"time\":1509638400000,\"open\":0.165,\"high\":0.166,\"low\":0.1635,\"close\":0.16472,\"volume\":405931.72862551996,\"close_time\":1509645579170,\"vwap\":0.16511525252199427,\"ema1\":0.16724703820657258,\"sma1\":0.1733718518518518,\"sma2\":0.1708496666666667,\"rsi_avg_gain\":0.00075846186547748,\"rsi_avg_loss\":0.0009233617647826567,\"rsi\":45},{\"period_id\":\"120m209671\",\"size\":\"120m\",\"time\":1509631200000,\"open\":0.164,\"high\":0.16849,\"low\":0.161,\"close\":0.16545,\"volume\":756164.8164522602,\"close_time\":1509638384550,\"vwap\":0.16476590282894873,\"ema1\":0.16742131670357757,\"sma1\":0.17352925925925924,\"sma2\":0.17095050000000003,\"rsi_avg_gain\":0.0008168050858988247,\"rsi_avg_loss\":0.0009382357466890143,\"rsi\":47},{\"period_id\":\"120m209670\",\"size\":\"120m\",\"time\":1509624000000,\"open\":0.16,\"high\":0.16959,\"low\":0.16,\"close\":0.16622,\"volume\":1455371.3556724899,\"close_time\":1509631193720,\"vwap\":0.16474925517613365,\"ema1\":0.16755726957968636,\"sma1\":0.17366268518518518,\"sma2\":0.1710575,\"rsi_avg_gain\":0.0008796362463525804,\"rsi_avg_loss\":0.0009511769579727851,\"rsi\":48},{\"period_id\":\"120m209669\",\"size\":\"120m\",\"time\":1509616800000,\"open\":0.15797,\"high\":0.16,\"low\":0.15464,\"close\":0.16,\"volume\":1654988.6244434293,\"close_time\":1509623991381,\"vwap\":0.1647667188725513,\"ema1\":0.1676494950679406,\"sma1\":0.17384509259259254,\"sma2\":0.17127416666666667,\"rsi_avg_gain\":0.0004688390345335479,\"rsi_avg_loss\":0.0010243444162783839,\"rsi\":31},{\"period_id\":\"120m209668\",\"size\":\"120m\",\"time\":1509609600000,\"open\":0.1595,\"high\":0.16,\"low\":0.15671,\"close\":0.15671,\"volume\":1721066.7197427999,\"close_time\":1509616786625,\"vwap\":0.1654690373297144,\"ema1\":0.1681770464519365,\"sma1\":0.17403027777777774,\"sma2\":0.171569,\"rsi_avg_gain\":0.00025182665257458895,\"rsi_avg_loss\":0.0011031401406074903,\"rsi\":19},{\"period_id\":\"120m209667\",\"size\":\"120m\",\"time\":1509602400000,\"open\":0.16123,\"high\":0.1632,\"low\":0.159,\"close\":0.15912,\"volume\":2334769.7164794793,\"close_time\":1509609597998,\"vwap\":0.16649848165499787,\"ema1\":0.16896787724172524,\"sma1\":0.17413944444444443,\"sma2\":0.17181533333333335,\"rsi_avg_gain\":0.000271197933541865,\"rsi_avg_loss\":0.001002612459115757,\"rsi\":21},{\"period_id\":\"120m209666\",\"size\":\"120m\",\"time\":1509595200000,\"open\":0.16241,\"high\":0.16472,\"low\":0.1613,\"close\":0.1613,\"volume\":345673.34816585,\"close_time\":1509602353291,\"vwap\":0.16939927404817948,\"ema1\":0.16964704118943041,\"sma1\":0.17423435185185185,\"sma2\":0.172018,\"rsi_avg_gain\":0.0002920593130450854,\"rsi_avg_loss\":0.0009120441867400469,\"rsi\":24},{\"period_id\":\"120m209665\",\"size\":\"120m\",\"time\":1509588000000,\"open\":0.16263,\"high\":0.16764,\"low\":0.1625,\"close\":0.1625,\"volume\":320289.0119792702,\"close_time\":1509595172195,\"vwap\":0.16949705543773586,\"ema1\":0.17022269920249458,\"sma1\":0.1743186111111111,\"sma2\":0.17220133333333335,\"rsi_avg_gain\":0.00031452541404855354,\"rsi_avg_loss\":0.0008898937395662038,\"rsi\":26},{\"period_id\":\"120m209664\",\"size\":\"120m\",\"time\":1509580800000,\"open\":0.16522,\"high\":0.16682,\"low\":0.1616,\"close\":0.16532,\"volume\":505396.63836847997,\"close_time\":1509587956753,\"vwap\":0.16958141681102698,\"ema1\":0.1707552991474942,\"sma1\":0.17435518518518517,\"sma2\":0.172343,\"rsi_avg_gain\":0.00033871967666767303,\"rsi_avg_loss\":0.0007414240272251434,\"rsi\":31},{\"period_id\":\"120m209663\",\"size\":\"120m\",\"time\":1509573600000,\"open\":0.1661,\"high\":0.16674,\"low\":0.16434,\"close\":0.16434,\"volume\":906775.1022949998,\"close_time\":1509580719608,\"vwap\":0.16980750366291983,\"ema1\":0.17113014736456278,\"sma1\":0.1743622222222222,\"sma2\":0.172498,\"rsi_avg_gain\":0.0002893904210267262,\"rsi_avg_loss\":0.0007984566447040006,\"rsi\":27},{\"period_id\":\"120m209662\",\"size\":\"120m\",\"time\":1509566400000,\"open\":0.16845,\"high\":0.1696,\"low\":0.16561,\"close\":0.16652,\"volume\":670029.5995432002,\"close_time\":1509573596127,\"vwap\":0.1703182394239936,\"ema1\":0.17159843338970504,\"sma1\":0.17431277777777776,\"sma2\":0.17262266666666667,\"rsi_avg_gain\":0.0003116512226441667,\"rsi_avg_loss\":0.0006921840789120016,\"rsi\":31},{\"period_id\":\"120m209661\",\"size\":\"120m\",\"time\":1509559200000,\"open\":0.16934,\"high\":0.1696,\"low\":0.16704,\"close\":0.16848,\"volume\":1189879.2806359415,\"close_time\":1509566397604,\"vwap\":0.17056030399139643,\"ema1\":0.17194867017520193,\"sma1\":0.17425148148148148,\"sma2\":0.17270366666666664,\"rsi_avg_gain\":0.0003356243936167949,\"rsi_avg_loss\":0.0005946597772898487,\"rsi\":36},{\"period_id\":\"120m209660\",\"size\":\"120m\",\"time\":1509552000000,\"open\":0.1725,\"high\":0.1725,\"low\":0.1694,\"close\":0.16999,\"volume\":917226.6054635601,\"close_time\":1509559199863,\"vwap\":0.17099748189697056,\"ema1\":0.17218788880797448,\"sma1\":0.17415425925925923,\"sma2\":0.17278266666666664,\"rsi_avg_gain\":0.0003614416546642406,\"rsi_avg_loss\":0.0005242489909275285,\"rsi\":41},{\"period_id\":\"120m209659\",\"size\":\"120m\",\"time\":1509544800000,\"open\":0.17109,\"high\":0.17284,\"low\":0.17,\"close\":0.17233,\"volume\":898158.8843483297,\"close_time\":1509551988199,\"vwap\":0.1710872451835749,\"ema1\":0.17233946734645547,\"sma1\":0.1740608333333333,\"sma2\":0.17281766666666665,\"rsi_avg_gain\":0.0003892448588691822,\"rsi_avg_loss\":0.00038457583638349155,\"rsi\":50},{\"period_id\":\"120m209658\",\"size\":\"120m\",\"time\":1509537600000,\"open\":0.1695,\"high\":0.1715,\"low\":0.169,\"close\":0.1711,\"volume\":1039009.0422977093,\"close_time\":1509544792007,\"vwap\":0.17097144166431408,\"ema1\":0.17234012026690068,\"sma1\":0.17401046296296294,\"sma2\":0.17285966666666663,\"rsi_avg_gain\":0.00032457138647450323,\"rsi_avg_loss\":0.0004141585930283755,\"rsi\":44},{\"period_id\":\"120m209657\",\"size\":\"120m\",\"time\":1509530400000,\"open\":0.1701,\"high\":0.17198,\"low\":0.1693,\"close\":0.16999,\"volume\":1167024.7693240494,\"close_time\":1509537595423,\"vwap\":0.17124622458992073,\"ema1\":0.17242564580254902,\"sma1\":0.1739659259259259,\"sma2\":0.1729228333333333,\"rsi_avg_gain\":0.0002641538008186958,\"rsi_avg_loss\":0.0004460169463382506,\"rsi\":37},{\"period_id\":\"120m209656\",\"size\":\"120m\",\"time\":1509523200000,\"open\":0.1712,\"high\":0.17266,\"low\":0.17,\"close\":0.17111,\"volume\":802673.6112538003,\"close_time\":1509530399245,\"vwap\":0.1718271102965593,\"ema1\":0.1725936213751386,\"sma1\":0.17391759259259257,\"sma2\":0.17297166666666663,\"rsi_avg_gain\":0.0002844733239585955,\"rsi_avg_loss\":0.0003941720960565768,\"rsi\":42},{\"period_id\":\"120m209655\",\"size\":\"120m\",\"time\":1509516000000,\"open\":0.1705,\"high\":0.17137,\"low\":0.17,\"close\":0.1712,\"volume\":486476.40899357,\"close_time\":1509523129373,\"vwap\":0.1720758671169733,\"ema1\":0.17269594009066538,\"sma1\":0.1738958333333333,\"sma2\":0.17301683333333331,\"rsi_avg_gain\":0.0003063558873400259,\"rsi_avg_loss\":0.000417569949599392,\"rsi\":42},{\"period_id\":\"120m209654\",\"size\":\"120m\",\"time\":1509508800000,\"open\":0.17086,\"high\":0.17162,\"low\":0.17,\"close\":0.1708,\"volume\":148063.88553533,\"close_time\":1509515159721,\"vwap\":0.17224541878860378,\"ema1\":0.17279910837278023,\"sma1\":0.17388787037037032,\"sma2\":0.17305449999999997,\"rsi_avg_gain\":0.0002991524940584907,\"rsi_avg_loss\":0.00044969071495319136,\"rsi\":40},{\"period_id\":\"120m209653\",\"size\":\"120m\",\"time\":1509501600000,\"open\":0.17165,\"high\":0.1718,\"low\":0.17,\"close\":0.17003,\"volume\":275252.1988088,\"close_time\":1509507850388,\"vwap\":0.17226323026364992,\"ema1\":0.1729369779157306,\"sma1\":0.1738791666666666,\"sma2\":0.17310949999999994,\"rsi_avg_gain\":0.00026293345513991146,\"rsi_avg_loss\":0.00048428230841112915,\"rsi\":35},{\"period_id\":\"120m209652\",\"size\":\"120m\",\"time\":1509494400000,\"open\":0.17124,\"high\":0.17199,\"low\":0.17101,\"close\":0.17176,\"volume\":125338.60549834,\"close_time\":1509501336761,\"vwap\":0.1723642805949137,\"ema1\":0.17313745915129822,\"sma1\":0.17387574074074072,\"sma2\":0.1731351666666666,\"rsi_avg_gain\":0.0002831591055352893,\"rsi_avg_loss\":0.00038845787059659995,\"rsi\":42},{\"period_id\":\"120m209651\",\"size\":\"120m\",\"time\":1509487200000,\"open\":0.17205,\"high\":0.17284,\"low\":0.17123,\"close\":0.17124,\"volume\":778377.35267301,\"close_time\":1509494388372,\"vwap\":0.17237843793175,\"ema1\":0.17323245633414638,\"sma1\":0.17386796296296295,\"sma2\":0.17318166666666662,\"rsi_avg_gain\":0.00026494057519185055,\"rsi_avg_loss\":0.0004183392452578769,\"rsi\":39},{\"period_id\":\"120m209650\",\"size\":\"120m\",\"time\":1509480000000,\"open\":0.17263,\"high\":0.17285,\"low\":0.17204,\"close\":0.17204,\"volume\":368952.1699852,\"close_time\":1509487161380,\"vwap\":0.1727633928444015,\"ema1\":0.17336986711581165,\"sma1\":0.17385775509259258,\"sma2\":0.17320599999999994,\"rsi_avg_gain\":0.0002853206194373775,\"rsi_avg_loss\":0.00038898072566232936,\"rsi\":42},{\"period_id\":\"120m209649\",\"size\":\"120m\",\"time\":1509472800000,\"open\":0.172,\"high\":0.17272,\"low\":0.172,\"close\":0.17266,\"volume\":380343.36523268017,\"close_time\":1509479891306,\"vwap\":0.1727991020499342,\"ema1\":0.1734615820893159,\"sma1\":0.17385108842592592,\"sma2\":0.1732198333333333,\"rsi_avg_gain\":0.00030726835939409887,\"rsi_avg_loss\":0.0003712100122517386,\"rsi\":45},{\"period_id\":\"120m209648\",\"size\":\"120m\",\"time\":1509465600000,\"open\":0.17243,\"high\":0.1735,\"low\":0.172,\"close\":0.172,\"volume\":559983.7519757701,\"close_time\":1509472774896,\"vwap\":0.17290013823007164,\"ema1\":0.17351686361271698,\"sma1\":0.17384090324074072,\"sma2\":0.17323649999999996,\"rsi_avg_gain\":0.00028013515627056635,\"rsi_avg_loss\":0.0003997646285787954,\"rsi\":41},{\"period_id\":\"120m209647\",\"size\":\"120m\",\"time\":1509458400000,\"open\":0.17458,\"high\":0.1746,\"low\":0.172,\"close\":0.1735,\"volume\":938086.8382250599,\"close_time\":1509465517913,\"vwap\":0.17304363075562854,\"ema1\":0.17362147489635263,\"sma1\":0.17384284768518515,\"sma2\":0.1732311666666666,\"rsi_avg_gain\":0.0003016840144452253,\"rsi_avg_loss\":0.0003151311384694719,\"rsi\":49},{\"period_id\":\"120m209646\",\"size\":\"120m\",\"time\":1509451200000,\"open\":0.174,\"high\":0.1748,\"low\":0.1734,\"close\":0.1746,\"volume\":533246.7497322498,\"close_time\":1509458354825,\"vwap\":0.17330552423037812,\"ema1\":0.17362985247541143,\"sma1\":0.17382377361111112,\"sma2\":0.17322466666666664,\"rsi_avg_gain\":0.000324890477094858,\"rsi_avg_loss\":0.00025475661065942995,\"rsi\":56},{\"period_id\":\"120m209645\",\"size\":\"120m\",\"time\":1509444000000,\"open\":0.17467,\"high\":0.1748,\"low\":0.1735,\"close\":0.17442,\"volume\":691011.48796204,\"close_time\":1509451147678,\"vwap\":0.17328195110832692,\"ema1\":0.17356294574957773,\"sma1\":0.17379312546296297,\"sma2\":0.17324049999999996,\"rsi_avg_gain\":0.0003360358984098461,\"rsi_avg_loss\":0.00027435327301784766,\"rsi\":55},{\"period_id\":\"120m209644\",\"size\":\"120m\",\"time\":1509436800000,\"open\":0.1737,\"high\":0.1747,\"low\":0.1735,\"close\":0.17469,\"volume\":471611.4616469602,\"close_time\":1509443995806,\"vwap\":0.17324814347631637,\"ema1\":0.17350383855989343,\"sma1\":0.17379136620370372,\"sma2\":0.1732378333333333,\"rsi_avg_gain\":0.0003618848136721419,\"rsi_avg_loss\":0.00027468814017306514,\"rsi\":57},{\"period_id\":\"120m209643\",\"size\":\"120m\",\"time\":1509429600000,\"open\":0.17395,\"high\":0.17438,\"low\":0.1734,\"close\":0.17421,\"volume\":201060.23830178005,\"close_time\":1509436795149,\"vwap\":0.17321788208584374,\"ema1\":0.1734220343226447,\"sma1\":0.17380164398148154,\"sma2\":0.1732258333333333,\"rsi_avg_gain\":0.0003527990301084599,\"rsi_avg_loss\":0.00029581799710945477,\"rsi\":54},{\"period_id\":\"120m209642\",\"size\":\"120m\",\"time\":1509422400000,\"open\":0.17384,\"high\":0.17394,\"low\":0.17325,\"close\":0.17389,\"volume\":70472.03757481,\"close_time\":1509429450403,\"vwap\":0.17321485716390528,\"ema1\":0.17336769186213744,\"sma1\":0.17380118101851855,\"sma2\":0.17321099999999995,\"rsi_avg_gain\":0.0003553220324244941,\"rsi_avg_loss\":0.0003185732276563359,\"rsi\":53},{\"period_id\":\"120m209641\",\"size\":\"120m\",\"time\":1509415200000,\"open\":0.17395,\"high\":0.1745,\"low\":0.173,\"close\":0.17414,\"volume\":542700.20779527,\"close_time\":1509422089182,\"vwap\":0.1732146284762069,\"ema1\":0.17333167061125035,\"sma1\":0.17383423657407415,\"sma2\":0.1732,\"rsi_avg_gain\":0.00038265449645714754,\"rsi_avg_loss\":0.00032384809132220783,\"rsi\":54},{\"period_id\":\"120m209640\",\"size\":\"120m\",\"time\":1509408000000,\"open\":0.17418,\"high\":0.17418,\"low\":0.1735,\"close\":0.17405,\"volume\":45452.97159424001,\"close_time\":1509414427483,\"vwap\":0.17319105115535666,\"ema1\":0.17327592375685383,\"sma1\":0.1738871995370371,\"sma2\":0.1731608333333333,\"rsi_avg_gain\":0.00040516638080000664,\"rsi_avg_loss\":0.0003487594829623777,\"rsi\":54},{\"period_id\":\"120m209639\",\"size\":\"120m\",\"time\":1509400800000,\"open\":0.1735,\"high\":0.1745,\"low\":0.173,\"close\":0.17426,\"volume\":272719.8336484401,\"close_time\":1509407506948,\"vwap\":0.17319082415878478,\"ema1\":0.173222539188361,\"sma1\":0.17391960694444453,\"sma2\":0.17312666666666662,\"rsi_avg_gain\":0.0004363330254769302,\"rsi_avg_loss\":0.0003594332893441,\"rsi\":55},{\"period_id\":\"120m209638\",\"size\":\"120m\",\"time\":1509393600000,\"open\":0.17476,\"high\":0.17479,\"low\":0.1735,\"close\":0.1735,\"volume\":359921.3454896399,\"close_time\":1509400749257,\"vwap\":0.17318058099182826,\"ema1\":0.17315099016686866,\"sma1\":0.17390303287037043,\"sma2\":0.1730918333333333,\"rsi_avg_gain\":0.0004114355658982317,\"rsi_avg_loss\":0.0003870820039090308,\"rsi\":52},{\"period_id\":\"120m209637\",\"size\":\"120m\",\"time\":1509386400000,\"open\":0.1732,\"high\":0.1748,\"low\":0.173,\"close\":0.17476,\"volume\":427867.7588550901,\"close_time\":1509393559979,\"vwap\":0.17315926775174534,\"ema1\":0.17312692052320444,\"sma1\":0.17388349583333337,\"sma2\":0.17302416666666662,\"rsi_avg_gain\":0.000443084455582711,\"rsi_avg_loss\":0.0003199344657481862,\"rsi\":58},{\"period_id\":\"120m209636\",\"size\":\"120m\",\"time\":1509379200000,\"open\":0.17459,\"high\":0.17499,\"low\":0.173,\"close\":0.173,\"volume\":390086.82031326013,\"close_time\":1509386390303,\"vwap\":0.1731378603977082,\"ema1\":0.17301429435239096,\"sma1\":0.17385618101851855,\"sma2\":0.172985,\"rsi_avg_gain\":0.00034178325985830324,\"rsi_avg_loss\":0.00034454480926727744,\"rsi\":50},{\"period_id\":\"120m209635\",\"size\":\"120m\",\"time\":1509372000000,\"open\":0.17434,\"high\":0.17459,\"low\":0.17318,\"close\":0.17443,\"volume\":639290.63311668,\"close_time\":1509379077038,\"vwap\":0.17311839579435284,\"ema1\":0.17301528016979723,\"sma1\":0.17385618101851855,\"sma2\":0.17294400000000001,\"rsi_avg_gain\":0.00036807427984740347,\"rsi_avg_loss\":0.00026104825613399,\"rsi\":59},{\"period_id\":\"120m209634\",\"size\":\"120m\",\"time\":1509364800000,\"open\":0.17501,\"high\":0.1754,\"low\":0.17389,\"close\":0.17435,\"volume\":761219.5413139507,\"close_time\":1509371994662,\"vwap\":0.17306866156580133,\"ema1\":0.17291771328495564,\"sma1\":0.17383655138888887,\"sma2\":0.17291183333333332,\"rsi_avg_gain\":0.00039023383983566556,\"rsi_avg_loss\":0.00028112889122122,\"rsi\":58},{\"period_id\":\"120m209633\",\"size\":\"120m\",\"time\":1509357600000,\"open\":0.1736,\"high\":0.17524,\"low\":0.17295,\"close\":0.175,\"volume\":685731.3475932502,\"close_time\":1509364785467,\"vwap\":0.17296334632225785,\"ema1\":0.17281893489081465,\"sma1\":0.17381581064814813,\"sma2\":0.1728491666666666,\"rsi_avg_gain\":0.00042025182751533215,\"rsi_avg_loss\":0.00025275419054593043,\"rsi\":62},{\"period_id\":\"120m209632\",\"size\":\"120m\",\"time\":1509350400000,\"open\":0.17301,\"high\":0.17475,\"low\":0.17201,\"close\":0.1736,\"volume\":982754.7806384695,\"close_time\":1509357384770,\"vwap\":0.1728327206934568,\"ema1\":0.17266851660742255,\"sma1\":0.17380886620370367,\"sma2\":0.17284249999999998,\"rsi_avg_gain\":0.00034488658347805117,\"rsi_avg_loss\":0.0002721968205879251,\"rsi\":56},{\"period_id\":\"120m209631\",\"size\":\"120m\",\"time\":1509343200000,\"open\":0.17307,\"high\":0.1738,\"low\":0.17202,\"close\":0.173,\"volume\":284271.7854024,\"close_time\":1509350362054,\"vwap\":0.17263538956546265,\"ema1\":0.1726042763734517,\"sma1\":0.17381895879629627,\"sma2\":0.1728925,\"rsi_avg_gain\":0.00032526247451482304,\"rsi_avg_loss\":0.000293135037556227,\"rsi\":53},{\"period_id\":\"120m209630\",\"size\":\"120m\",\"time\":1509336000000,\"open\":0.17272,\"high\":0.1731,\"low\":0.17253,\"close\":0.17309,\"volume\":89463.18058985996,\"close_time\":1509343190680,\"vwap\":0.17262609075798474,\"ema1\":0.17257698508886216,\"sma1\":0.1738348847222222,\"sma2\":0.17291766666666666,\"rsi_avg_gain\":0.0003502826648621171,\"rsi_avg_loss\":0.0003087608096759362,\"rsi\":53},{\"period_id\":\"120m209629\",\"size\":\"120m\",\"time\":1509328800000,\"open\":0.17251,\"high\":0.17326,\"low\":0.1722,\"close\":0.17307,\"volume\":43252.373609710005,\"close_time\":1509335998032,\"vwap\":0.17262523216060705,\"ema1\":0.172541604750163,\"sma1\":0.17385914398148147,\"sma2\":0.1729425,\"rsi_avg_gain\":0.00037568902369766516,\"rsi_avg_loss\":0.0003325116411894698,\"rsi\":53},{\"period_id\":\"120m209628\",\"size\":\"120m\",\"time\":1509321600000,\"open\":0.17312,\"high\":0.17396,\"low\":0.172,\"close\":0.17293,\"volume\":83955.8920413,\"close_time\":1509328440473,\"vwap\":0.17262502918436423,\"ema1\":0.17250516369845012,\"sma1\":0.17389673657407403,\"sma2\":0.17291566666666663,\"rsi_avg_gain\":0.00039381894859748544,\"rsi_avg_loss\":0.00035808945974250597,\"rsi\":52},{\"period_id\":\"120m209627\",\"size\":\"120m\",\"time\":1509314400000,\"open\":0.173,\"high\":0.17337,\"low\":0.17201,\"close\":0.17235,\"volume\":684796.3868457904,\"close_time\":1509321591148,\"vwap\":0.1726253118768537,\"ema1\":0.17247586464317083,\"sma1\":0.17393673657407402,\"sma2\":0.1729558333333333,\"rsi_avg_gain\":0.00037949732925883067,\"rsi_avg_loss\":0.0003856348027996218,\"rsi\":50},{\"period_id\":\"120m209626\",\"size\":\"120m\",\"time\":1509307200000,\"open\":0.173,\"high\":0.17449,\"low\":0.1725,\"close\":0.173,\"volume\":476348.78848239995,\"close_time\":1509314385786,\"vwap\":0.17262848560213462,\"ema1\":0.1724845449633895,\"sma1\":0.17397201435185178,\"sma2\":0.1729875,\"rsi_avg_gain\":0.00040868943150950993,\"rsi_avg_loss\":0.00036529901839959394,\"rsi\":53},{\"period_id\":\"120m209625\",\"size\":\"120m\",\"time\":1509300000000,\"open\":0.1723,\"high\":0.17355,\"low\":0.17175,\"close\":0.17245,\"volume\":496058.7864573899,\"close_time\":1509307039172,\"vwap\":0.17257795232839293,\"ema1\":0.172448996340175,\"sma1\":0.1740316439814814,\"sma2\":0.17309499999999997,\"rsi_avg_gain\":0.00039781938777947264,\"rsi_avg_loss\":0.0003933989428918704,\"rsi\":50},{\"period_id\":\"120m209624\",\"size\":\"120m\",\"time\":1509292800000,\"open\":0.172688,\"high\":0.1737,\"low\":0.1715,\"close\":0.17195,\"volume\":516118.92092936015,\"close_time\":1509299984287,\"vwap\":0.1725593921192902,\"ema1\":0.172448927122256,\"sma1\":0.17409460694444437,\"sma2\":0.17324583333333327,\"rsi_avg_gain\":0.00038995934068558586,\"rsi_avg_loss\":0.0004236604000373989,\"rsi\":48},{\"period_id\":\"120m209623\",\"size\":\"120m\",\"time\":1509285600000,\"open\":0.172,\"high\":0.17267,\"low\":0.1715,\"close\":0.17267,\"volume\":282293.62723150995,\"close_time\":1509292684374,\"vwap\":0.1725650569373393,\"ema1\":0.17248333588930814,\"sma1\":0.17419849583333327,\"sma2\":0.17338099999999995,\"rsi_avg_gain\":0.0004199562130460156,\"rsi_avg_loss\":0.000400865046194122,\"rsi\":51},{\"period_id\":\"120m209622\",\"size\":\"120m\",\"time\":1509278400000,\"open\":0.1704,\"high\":0.172,\"low\":0.17,\"close\":0.172,\"volume\":507396.67994656984,\"close_time\":1509285544604,\"vwap\":0.1725734288845341,\"ema1\":0.17247046250236386,\"sma1\":0.17431423657407402,\"sma2\":0.17353799999999994,\"rsi_avg_gain\":0.0004007220755880165,\"rsi_avg_loss\":0.00043170081897828523,\"rsi\":48},{\"period_id\":\"120m209621\",\"size\":\"120m\",\"time\":1509271200000,\"open\":0.1713,\"high\":0.17138,\"low\":0.1692,\"close\":0.17043,\"volume\":708191.5313493701,\"close_time\":1509278199257,\"vwap\":0.1726200314346427,\"ema1\":0.17250290819218206,\"sma1\":0.1744398847222222,\"sma2\":0.1736661666666666,\"rsi_avg_gain\":0.0003107776198640187,\"rsi_avg_loss\":0.00046490857428430716,\"rsi\":40},{\"period_id\":\"120m209620\",\"size\":\"120m\",\"time\":1509264000000,\"open\":0.172,\"high\":0.17279,\"low\":0.17051,\"close\":0.1713,\"volume\":463339.66160280985,\"close_time\":1509271123701,\"vwap\":0.1730665195882603,\"ema1\":0.1726458673778498,\"sma1\":0.1745539587962963,\"sma2\":0.1737781666666666,\"rsi_avg_gain\":0.0003346835906227894,\"rsi_avg_loss\":0.0004337476953830993,\"rsi\":44},{\"period_id\":\"120m209619\",\"size\":\"120m\",\"time\":1509256800000,\"open\":0.17201,\"high\":0.17377,\"low\":0.17132,\"close\":0.17235,\"volume\":285626.02688529,\"close_time\":1509263966493,\"vwap\":0.17319814603392467,\"ema1\":0.1727386858177015,\"sma1\":0.174675625462963,\"sma2\":0.1738056666666666,\"rsi_avg_gain\":0.0003604284822091578,\"rsi_avg_loss\":0.0003863436719510304,\"rsi\":48},{\"period_id\":\"120m209618\",\"size\":\"120m\",\"time\":1509249600000,\"open\":0.17113,\"high\":0.1739,\"low\":0.17112,\"close\":0.17333,\"volume\":186683.95922460998,\"close_time\":1509256796594,\"vwap\":0.17321673662350406,\"ema1\":0.17276549173616368,\"sma1\":0.17482081064814817,\"sma2\":0.17382133333333324,\"rsi_avg_gain\":0.0003881537500714007,\"rsi_avg_loss\":0.0003406778005626475,\"rsi\":53},{\"period_id\":\"120m209617\",\"size\":\"120m\",\"time\":1509242400000,\"open\":0.17101,\"high\":0.17125,\"low\":0.1701,\"close\":0.17052,\"volume\":109812.33446858004,\"close_time\":1509249464890,\"vwap\":0.17322224197074274,\"ema1\":0.1727265601317612,\"sma1\":0.17494460694444444,\"sma2\":0.17380366666666663,\"rsi_avg_gain\":0.0002018578846922771,\"rsi_avg_loss\":0.00036688378522131264,\"rsi\":35},{\"period_id\":\"120m209616\",\"size\":\"120m\",\"time\":1509235200000,\"open\":0.17161,\"high\":0.17213,\"low\":0.171,\"close\":0.17101,\"volume\":250380.80532811998,\"close_time\":1509242351608,\"vwap\":0.17324051390131112,\"ema1\":0.1728787366925723,\"sma1\":0.17504710694444447,\"sma2\":0.17378683333333328,\"rsi_avg_gain\":0.00021738541428399072,\"rsi_avg_loss\":0.00035741330716141436,\"rsi\":38},{\"period_id\":\"120m209615\",\"size\":\"120m\",\"time\":1509228000000,\"open\":0.17176,\"high\":0.17253,\"low\":0.171,\"close\":0.1717,\"volume\":726369.6006439498,\"close_time\":1509235161837,\"vwap\":0.17329645232862467,\"ema1\":0.1730076150851635,\"sma1\":0.17514858842592596,\"sma2\":0.17365849999999997,\"rsi_avg_gain\":0.0002341073692289131,\"rsi_avg_loss\":0.00033182971540460037,\"rsi\":41},{\"period_id\":\"120m209614\",\"size\":\"120m\",\"time\":1509220800000,\"open\":0.17152,\"high\":0.17429,\"low\":0.1715,\"close\":0.17174,\"volume\":507071.4701850402,\"close_time\":1509227774235,\"vwap\":0.17340797786019285,\"ema1\":0.17309779543586443,\"sma1\":0.1752459032407407,\"sma2\":0.1735018333333333,\"rsi_avg_gain\":0.00025211562840036795,\"rsi_avg_loss\":0.0003542781550511072,\"rsi\":42},{\"period_id\":\"120m209613\",\"size\":\"120m\",\"time\":1509213600000,\"open\":0.17186,\"high\":0.17242,\"low\":0.1715,\"close\":0.17151,\"volume\":296945.9798627102,\"close_time\":1509220576896,\"vwap\":0.17348203562925768,\"ema1\":0.1731914365004068,\"sma1\":0.17536701435185187,\"sma2\":0.17335166666666663,\"rsi_avg_gain\":0.000253816830585011,\"rsi_avg_loss\":0.00038153032082426927,\"rsi\":40},{\"period_id\":\"120m209612\",\"size\":\"120m\",\"time\":1509206400000,\"open\":0.17174,\"high\":0.17222,\"low\":0.17121,\"close\":0.17197,\"volume\":204456.1067420499,\"close_time\":1509213416725,\"vwap\":0.17352077489654658,\"ema1\":0.1733073976383659,\"sma1\":0.17557238472222222,\"sma2\":0.1731738333333333,\"rsi_avg_gain\":0.0002733412021684734,\"rsi_avg_loss\":0.00037549419165690414,\"rsi\":42},{\"period_id\":\"120m209611\",\"size\":\"120m\",\"time\":1509199200000,\"open\":0.17264,\"high\":0.17399,\"low\":0.1715,\"close\":0.1715,\"volume\":632198.5747353298,\"close_time\":1509206384934,\"vwap\":0.17356769704942804,\"ema1\":0.1733996319582532,\"sma1\":0.1757669217592593,\"sma2\":0.1729988333333333,\"rsi_avg_gain\":0.0002582136023352792,\"rsi_avg_loss\":0.0004043783602458968,\"rsi\":39},{\"period_id\":\"120m209610\",\"size\":\"120m\",\"time\":1509192000000,\"open\":0.17303,\"high\":0.17476,\"low\":0.1726,\"close\":0.17264,\"volume\":355098.94472750014,\"close_time\":1509199187198,\"vwap\":0.17375507337258547,\"ema1\":0.17353064105882238,\"sma1\":0.17581071805555556,\"sma2\":0.17282083333333328,\"rsi_avg_gain\":0.00027807618713030066,\"rsi_avg_loss\":0.0003477920802648139,\"rsi\":44},{\"period_id\":\"120m209609\",\"size\":\"120m\",\"time\":1509184800000,\"open\":0.1743,\"high\":0.17463,\"low\":0.173,\"close\":0.173,\"volume\":394166.51534412993,\"close_time\":1509191863970,\"vwap\":0.17378217671064802,\"ema1\":0.17359206458012047,\"sma1\":0.17585719953703707,\"sma2\":0.17268799999999998,\"rsi_avg_gain\":0.0002994666630634007,\"rsi_avg_loss\":0.00034685300951595356,\"rsi\":46},{\"period_id\":\"120m209608\",\"size\":\"120m\",\"time\":1509177600000,\"open\":0.17404,\"high\":0.17474,\"low\":0.17315,\"close\":0.1744,\"volume\":351321.72328474006,\"close_time\":1509184281479,\"vwap\":0.1738096516220048,\"ema1\":0.1736328966201288,\"sma1\":0.17591710694444448,\"sma2\":0.17254716666666664,\"rsi_avg_gain\":0.00032250256022212386,\"rsi_avg_loss\":0.0002658417025556414,\"rsi\":55},{\"period_id\":\"120m209607\",\"size\":\"120m\",\"time\":1509170400000,\"open\":0.17389,\"high\":0.17415,\"low\":0.17305,\"close\":0.1739,\"volume\":208398.77150217,\"close_time\":1509177443699,\"vwap\":0.17379031026993175,\"ema1\":0.17357999293875837,\"sma1\":0.17601460694444448,\"sma2\":0.17241599999999999,\"rsi_avg_gain\":0.000308848911008441,\"rsi_avg_loss\":0.0002862910642906907,\"rsi\":52},{\"period_id\":\"120m209606\",\"size\":\"120m\",\"time\":1509163200000,\"open\":0.17309,\"high\":0.1737,\"low\":0.1728,\"close\":0.17346,\"volume\":26886.12837723,\"close_time\":1509170236953,\"vwap\":0.17379081193129378,\"ema1\":0.17355792348625895,\"sma1\":0.1761046995370371,\"sma2\":0.17234349999999996,\"rsi_avg_gain\":0.00029876036570139833,\"rsi_avg_loss\":0.00030831345385151307,\"rsi\":49},{\"period_id\":\"120m209605\",\"size\":\"120m\",\"time\":1509156000000,\"open\":0.17327,\"high\":0.17351,\"low\":0.17257,\"close\":0.1735,\"volume\":22004.55199932,\"close_time\":1509162219469,\"vwap\":0.17379114642685725,\"ema1\":0.17356467683013888,\"sma1\":0.17621414398148155,\"sma2\":0.17229233333333333,\"rsi_avg_gain\":0.00032174193229381356,\"rsi_avg_loss\":0.00032895295030163066,\"rsi\":49},{\"period_id\":\"120m209604\",\"size\":\"120m\",\"time\":1509148800000,\"open\":0.17395,\"high\":0.1744,\"low\":0.17346,\"close\":0.17382,\"volume\":127167.2383359,\"close_time\":1509154797074,\"vwap\":0.1737918259468882,\"ema1\":0.17356913730118292,\"sma1\":0.1763208106481482,\"sma2\":0.17224233333333333,\"rsi_avg_gain\":0.00034649131170102994,\"rsi_avg_loss\":0.0003296416387863703,\"rsi\":51},{\"period_id\":\"120m209603\",\"size\":\"120m\",\"time\":1509141600000,\"open\":0.17364,\"high\":0.17462,\"low\":0.17364,\"close\":0.17364,\"volume\":245967.77557432003,\"close_time\":1509148469738,\"vwap\":0.17379056038610405,\"ema1\":0.17355183642540245,\"sma1\":0.1764455328703704,\"sma2\":0.1721943333333333,\"rsi_avg_gain\":0.0003592983356780312,\"rsi_avg_loss\":0.00035499868792378335,\"rsi\":50},{\"period_id\":\"120m209602\",\"size\":\"120m\",\"time\":1509134400000,\"open\":0.17335,\"high\":0.17462,\"low\":0.17293,\"close\":0.174,\"volume\":265180.97041563,\"close_time\":1509141551587,\"vwap\":0.17378638486133277,\"ema1\":0.1735457561788785,\"sma1\":0.17654368101851856,\"sma2\":0.17214866666666667,\"rsi_avg_gain\":0.0003869366691917259,\"rsi_avg_loss\":0.00035461397161022824,\"rsi\":52},{\"period_id\":\"120m209601\",\"size\":\"120m\",\"time\":1509127200000,\"open\":0.17475,\"high\":0.17476,\"low\":0.1728,\"close\":0.17334,\"volume\":507189.33349982,\"close_time\":1509134343110,\"vwap\":0.17377763563932494,\"ema1\":0.17351442901880115,\"sma1\":0.17661025509259265,\"sma2\":0.17209299999999997,\"rsi_avg_gain\":0.00036593179759108986,\"rsi_avg_loss\":0.00038189196942639965,\"rsi\":49},{\"period_id\":\"120m209600\",\"size\":\"120m\",\"time\":1509120000000,\"open\":0.17441,\"high\":0.17494,\"low\":0.17372,\"close\":0.17473,\"volume\":413137.98772199015,\"close_time\":1509127174200,\"vwap\":0.17383700671666202,\"ema1\":0.1735264586063047,\"sma1\":0.17674858842592597,\"sma2\":0.17203516666666668,\"rsi_avg_gain\":0.0003940803974057891,\"rsi_avg_loss\":0.00030434519784381487,\"rsi\":56},{\"period_id\":\"120m209599\",\"size\":\"120m\",\"time\":1509112800000,\"open\":0.17453,\"high\":0.1748,\"low\":0.1735,\"close\":0.17443,\"volume\":270804.7546261601,\"close_time\":1509119994189,\"vwap\":0.17376890311410068,\"ema1\":0.17344345575156708,\"sma1\":0.17688821805555557,\"sma2\":0.1720013333333333,\"rsi_avg_gain\":0.00040131735105238865,\"rsi_avg_loss\":0.00032775636690872374,\"rsi\":55},{\"period_id\":\"120m209598\",\"size\":\"120m\",\"time\":1509105600000,\"open\":0.17335,\"high\":0.17465,\"low\":0.173,\"close\":0.17362,\"volume\":509927.8083225598,\"close_time\":1509112788348,\"vwap\":0.1737424587351739,\"ema1\":0.1733754182171924,\"sma1\":0.17708229212962967,\"sma2\":0.17197866666666664,\"rsi_avg_gain\":0.00036988022421026434,\"rsi_avg_loss\":0.0003529683951324717,\"rsi\":51},{\"period_id\":\"120m209597\",\"size\":\"120m\",\"time\":1509098400000,\"open\":0.17369,\"high\":0.1745,\"low\":0.173,\"close\":0.17378,\"volume\":532383.4747534199,\"close_time\":1509105581778,\"vwap\":0.17360078161835676,\"ema1\":0.17335855050803325,\"sma1\":0.17729877361111115,\"sma2\":0.17190849999999994,\"rsi_avg_gain\":0.00039833254914951546,\"rsi_avg_loss\":0.00036781211783497005,\"rsi\":52},{\"period_id\":\"120m209596\",\"size\":\"120m\",\"time\":1509091200000,\"open\":0.17391,\"high\":0.17496,\"low\":0.173,\"close\":0.17404,\"volume\":482855.3375114401,\"close_time\":1509098375789,\"vwap\":0.17357901738125822,\"ema1\":0.17332948502582865,\"sma1\":0.17747247731481483,\"sma2\":0.17186549999999998,\"rsi_avg_gain\":0.000428973514468709,\"rsi_avg_loss\":0.0003761053576684285,\"rsi\":53},{\"period_id\":\"120m209595\",\"size\":\"120m\",\"time\":1509084000000,\"open\":0.17261,\"high\":0.1748,\"low\":0.17222,\"close\":0.17391,\"volume\":393510.9533228197,\"close_time\":1509091196781,\"vwap\":0.17329154648464273,\"ema1\":0.17328048399312718,\"sma1\":0.17769627361111107,\"sma2\":0.17186816666666663,\"rsi_avg_gain\":0.0004519714771201488,\"rsi_avg_loss\":0.0004050365390275384,\"rsi\":53},{\"period_id\":\"120m209594\",\"size\":\"120m\",\"time\":1509076800000,\"open\":0.1732,\"high\":0.17436,\"low\":0.17225,\"close\":0.17306,\"volume\":279280.6725509501,\"close_time\":1509083949504,\"vwap\":0.17326886804464267,\"ema1\":0.17323706909610145,\"sma1\":0.17794090324074072,\"sma2\":0.17187666666666662,\"rsi_avg_gain\":0.000421353898437082,\"rsi_avg_loss\":0.00043619319587581056,\"rsi\":49},{\"period_id\":\"120m209593\",\"size\":\"120m\",\"time\":1509069600000,\"open\":0.1733,\"high\":0.17374,\"low\":0.173,\"close\":0.17333,\"volume\":26224.47779756,\"close_time\":1509076527404,\"vwap\":0.1734094636150356,\"ema1\":0.17324928075790155,\"sma1\":0.1781771069444444,\"sma2\":0.17185266666666663,\"rsi_avg_gain\":0.00045376573677839607,\"rsi_avg_loss\":0.000448977287866256,\"rsi\":50},{\"period_id\":\"120m209592\",\"size\":\"120m\",\"time\":1509062400000,\"open\":0.174,\"high\":0.174,\"low\":0.17302,\"close\":0.1733,\"volume\":65117.73086698,\"close_time\":1509069539140,\"vwap\":0.1734105708902701,\"ema1\":0.1732437139136189,\"sma1\":0.17841581064814813,\"sma2\":0.17193016666666663,\"rsi_avg_gain\":0.00048636310114596483,\"rsi_avg_loss\":0.0004835140023175064,\"rsi\":50},{\"period_id\":\"120m209591\",\"size\":\"120m\",\"time\":1509055200000,\"open\":0.1735,\"high\":0.17414,\"low\":0.17286,\"close\":0.17403,\"volume\":277183.36005777994,\"close_time\":1509062233010,\"vwap\":0.17340751455623823,\"ema1\":0.17323983211455812,\"sma1\":0.1786058106481481,\"sma2\":0.1719963333333333,\"rsi_avg_gain\":0.0005237756473879621,\"rsi_avg_loss\":0.0004645535409573161,\"rsi\":53},{\"period_id\":\"120m209590\",\"size\":\"120m\",\"time\":1509048000000,\"open\":0.17345,\"high\":0.17387,\"low\":0.1725,\"close\":0.1735,\"volume\":387891.0964343199,\"close_time\":1509055115817,\"vwap\":0.1732850425126667,\"ema1\":0.1731853377776311,\"sma1\":0.1788905328703703,\"sma2\":0.1719713333333333,\"rsi_avg_gain\":0.0005232968510331898,\"rsi_avg_loss\":0.0005002884287232635,\"rsi\":51},{\"period_id\":\"120m209589\",\"size\":\"120m\",\"time\":1509040800000,\"open\":0.17298,\"high\":0.17433,\"low\":0.17214,\"close\":0.17349,\"volume\":391377.44248398015,\"close_time\":1509047942645,\"vwap\":0.1785578044609017,\"ema1\":0.1731636369347091,\"sma1\":0.17921599583333325,\"sma2\":0.17192066666666664,\"rsi_avg_gain\":0.0005627812241895903,\"rsi_avg_loss\":0.0005387721540096684,\"rsi\":51},{\"period_id\":\"120m209588\",\"size\":\"120m\",\"time\":1509033600000,\"open\":0.17315,\"high\":0.17359,\"low\":0.172,\"close\":0.173,\"volume\":462815.97802780016,\"close_time\":1509040586507,\"vwap\":0.17859801958047822,\"ema1\":0.17314112913710283,\"sma1\":0.17958090324074066,\"sma2\":0.17188566666666666,\"rsi_avg_gain\":0.0005683797798964804,\"rsi_avg_loss\":0.0005802161658565659,\"rsi\":49},{\"period_id\":\"120m209587\",\"size\":\"120m\",\"time\":1509026400000,\"open\":0.17423,\"high\":0.1745,\"low\":0.17318,\"close\":0.17318,\"volume\":536308.6854404302,\"close_time\":1509033597034,\"vwap\":0.17865450236452865,\"ema1\":0.17315086218104095,\"sma1\":0.17998831064814808,\"sma2\":0.17186566666666664,\"rsi_avg_gain\":0.000612101301426979,\"rsi_avg_loss\":0.0006110020247686084,\"rsi\":50},{\"period_id\":\"120m209586\",\"size\":\"120m\",\"time\":1509019200000,\"open\":0.17535,\"high\":0.17588,\"low\":0.17377,\"close\":0.17421,\"volume\":552158.98963798,\"close_time\":1509026340279,\"vwap\":0.17871989172086883,\"ema1\":0.17314885267628516,\"sma1\":0.18040331064814807,\"sma2\":0.17184549999999996,\"rsi_avg_gain\":0.000659186016921362,\"rsi_avg_loss\":0.0005787714112892703,\"rsi\":53},{\"period_id\":\"120m209585\",\"size\":\"120m\",\"time\":1509012000000,\"open\":0.17453,\"high\":0.17564,\"low\":0.17332,\"close\":0.17537,\"volume\":638825.14961212,\"close_time\":1509019193338,\"vwap\":0.17877549422183867,\"ema1\":0.17307567010223585,\"sma1\":0.18082701435185178,\"sma2\":0.17178933333333332,\"rsi_avg_gain\":0.0007098926336076206,\"rsi_avg_loss\":0.0005340615198499839,\"rsi\":57},{\"period_id\":\"120m209584\",\"size\":\"120m\",\"time\":1509004800000,\"open\":0.1735,\"high\":0.17483,\"low\":0.17231,\"close\":0.17453,\"volume\":545484.1022664,\"close_time\":1509011988439,\"vwap\":0.17884563185115612,\"ema1\":0.17291744045411417,\"sma1\":0.18128219953703695,\"sma2\":0.17174766666666663,\"rsi_avg_gain\":0.0006998843746543602,\"rsi_avg_loss\":0.0005751431752230596,\"rsi\":55},{\"period_id\":\"120m209583\",\"size\":\"120m\",\"time\":1508997600000,\"open\":0.1728,\"high\":0.1735,\"low\":0.17155,\"close\":0.17349,\"volume\":247787.35630792996,\"close_time\":1509004772097,\"vwap\":0.1789253250331657,\"ema1\":0.17280622945094962,\"sma1\":0.18172192175925922,\"sma2\":0.17175416666666662,\"rsi_avg_gain\":0.0006737216342431583,\"rsi_avg_loss\":0.0006193849579325257,\"rsi\":52},{\"period_id\":\"120m209582\",\"size\":\"120m\",\"time\":1508990400000,\"open\":0.17349,\"high\":0.17363,\"low\":0.17232,\"close\":0.173,\"volume\":203349.75248238,\"close_time\":1508997556850,\"vwap\":0.17895908036458272,\"ema1\":0.17275907286135994,\"sma1\":0.18218812546296292,\"sma2\":0.17177049999999996,\"rsi_avg_gain\":0.0006878540676464767,\"rsi_avg_loss\":0.0006670299546965661,\"rsi\":51},{\"period_id\":\"120m209581\",\"size\":\"120m\",\"time\":1508983200000,\"open\":0.17188,\"high\":0.17361,\"low\":0.1718,\"close\":0.17348,\"volume\":65074.96547798002,\"close_time\":1508990308256,\"vwap\":0.17896864933131634,\"ema1\":0.17274245719662615,\"sma1\":0.18263016249999997,\"sma2\":0.17176249999999996,\"rsi_avg_gain\":0.000740765919003898,\"rsi_avg_loss\":0.0006814168742886091,\"rsi\":52},{\"period_id\":\"120m209580\",\"size\":\"120m\",\"time\":1508976000000,\"open\":0.17214,\"high\":0.17323,\"low\":0.17072,\"close\":0.1717,\"volume\":152100.50329952006,\"close_time\":1508983070436,\"vwap\":0.17897015338108738,\"ema1\":0.17269159217570382,\"sma1\":0.18310599583333337,\"sma2\":0.1718233333333333,\"rsi_avg_gain\":0.0006608248358503515,\"rsi_avg_loss\":0.0007338335569261944,\"rsi\":47},{\"period_id\":\"120m209579\",\"size\":\"120m\",\"time\":1508968800000,\"open\":0.17132,\"high\":0.17463,\"low\":0.1709,\"close\":0.17221,\"volume\":327021.46813437995,\"close_time\":1508975990039,\"vwap\":0.17898066928858036,\"ema1\":0.17275997784299374,\"sma1\":0.18351960694444447,\"sma2\":0.171895,\"rsi_avg_gain\":0.0007116575155311477,\"rsi_avg_loss\":0.0007510515228435933,\"rsi\":49},{\"period_id\":\"120m209578\",\"size\":\"120m\",\"time\":1508961600000,\"open\":0.1707,\"high\":0.17358,\"low\":0.17062,\"close\":0.17141,\"volume\":541845.9698597101,\"close_time\":1508968736961,\"vwap\":0.17901254915851733,\"ema1\":0.17279790734940711,\"sma1\":0.1840079402777778,\"sma2\":0.1719715,\"rsi_avg_gain\":0.0007048619398027749,\"rsi_avg_loss\":0.000808824716908485,\"rsi\":47},{\"period_id\":\"120m209577\",\"size\":\"120m\",\"time\":1508954400000,\"open\":0.17124,\"high\":0.1723,\"low\":0.17,\"close\":0.1707,\"volume\":849917.9403358107,\"close_time\":1508961587149,\"vwap\":0.17912357688756808,\"ema1\":0.17289362509764208,\"sma1\":0.1845916439814815,\"sma2\":0.17208616666666668,\"rsi_avg_gain\":0.0007044667044029871,\"rsi_avg_loss\":0.0008710420028245223,\"rsi\":45},{\"period_id\":\"120m209576\",\"size\":\"120m\",\"time\":1508947200000,\"open\":0.17211,\"high\":0.17285,\"low\":0.17065,\"close\":0.17065,\"volume\":397940.7244818399,\"close_time\":1508954194635,\"vwap\":0.17944843542128597,\"ema1\":0.17304490958713464,\"sma1\":0.18521340324074076,\"sma2\":0.17222016666666665,\"rsi_avg_gain\":0.0007548102970493711,\"rsi_avg_loss\":0.000938045233811024,\"rsi\":45},{\"period_id\":\"120m209575\",\"size\":\"120m\",\"time\":1508940000000,\"open\":0.17242,\"high\":0.17504,\"low\":0.1705,\"close\":0.17197,\"volume\":1294814.2538945102,\"close_time\":1508947190837,\"vwap\":0.17954479286895614,\"ema1\":0.17321007576555772,\"sma1\":0.18589358842592596,\"sma2\":0.17236233333333334,\"rsi_avg_gain\":0.0008128726275916303,\"rsi_avg_loss\":0.0009086640979503324,\"rsi\":47},{\"period_id\":\"120m209574\",\"size\":\"120m\",\"time\":1508932800000,\"open\":0.17124,\"high\":0.1735,\"low\":0.17004,\"close\":0.17242,\"volume\":698543.0479591705,\"close_time\":1508939995535,\"vwap\":0.1797823546663704,\"ema1\":0.1732955982321479,\"sma1\":0.1866009958333333,\"sma2\":0.17255349999999997,\"rsi_avg_gain\":0.0008754012912525249,\"rsi_avg_loss\":0.0009439459516388212,\"rsi\":48},{\"period_id\":\"120m209573\",\"size\":\"120m\",\"time\":1508925600000,\"open\":0.1735,\"high\":0.17576,\"low\":0.17002,\"close\":0.17124,\"volume\":776842.12237437,\"close_time\":1508932775447,\"vwap\":0.18001273744203045,\"ema1\":0.17335598431712362,\"sma1\":0.18716803287037037,\"sma2\":0.17277449999999997,\"rsi_avg_gain\":0.0008519706213488739,\"rsi_avg_loss\":0.0010165571786879613,\"rsi\":46},{\"period_id\":\"120m209572\",\"size\":\"120m\",\"time\":1508918400000,\"open\":0.176,\"high\":0.1769,\"low\":0.173,\"close\":0.1732,\"volume\":853693.2410544899,\"close_time\":1508925593807,\"vwap\":0.18037367310623922,\"ema1\":0.1735019142700287,\"sma1\":0.18770599583333333,\"sma2\":0.17294899999999996,\"rsi_avg_gain\":0.000917506822991095,\"rsi_avg_loss\":0.0009439846539716516,\"rsi\":49},{\"period_id\":\"120m209571\",\"size\":\"120m\",\"time\":1508911200000,\"open\":0.1746,\"high\":0.17699,\"low\":0.1745,\"close\":0.176,\"volume\":812787.1982533699,\"close_time\":1508918396597,\"vwap\":0.18084320648692567,\"ema1\":0.17352273594382378,\"sma1\":0.18826164398148149,\"sma2\":0.17308216666666662,\"rsi_avg_gain\":0.000988084270913487,\"rsi_avg_loss\":0.000801214242738702,\"rsi\":55},{\"period_id\":\"120m209570\",\"size\":\"120m\",\"time\":1508904000000,\"open\":0.17459,\"high\":0.176,\"low\":0.17217,\"close\":0.1746,\"volume\":332293.24866345007,\"close_time\":1508911125306,\"vwap\":0.1810627457647664,\"ema1\":0.1733518901468461,\"sma1\":0.18871534768518522,\"sma2\":0.1732638333333333,\"rsi_avg_gain\":0.0009563984455991409,\"rsi_avg_loss\":0.000862846107564756,\"rsi\":53},{\"period_id\":\"120m209569\",\"size\":\"120m\",\"time\":1508896800000,\"open\":0.17102,\"high\":0.17461,\"low\":0.1705,\"close\":0.17456,\"volume\":238526.89042274005,\"close_time\":1508903964165,\"vwap\":0.18115055489676882,\"ema1\":0.17326581360524929,\"sma1\":0.18915219953703705,\"sma2\":0.17343149999999996,\"rsi_avg_gain\":0.0010268906337221508,\"rsi_avg_loss\":0.0009292188850697373,\"rsi\":52},{\"period_id\":\"120m209568\",\"size\":\"120m\",\"time\":1508889600000,\"open\":0.1751,\"high\":0.17542,\"low\":0.17101,\"close\":0.17132,\"volume\":315972.07897068013,\"close_time\":1508896758337,\"vwap\":0.18117890086392086,\"ema1\":0.17317655937112855,\"sma1\":0.18959488472222222,\"sma2\":0.17362883333333332,\"rsi_avg_gain\":0.0008566514517007785,\"rsi_avg_loss\":0.0010006972608443325,\"rsi\":46},{\"period_id\":\"120m209567\",\"size\":\"120m\",\"time\":1508882400000,\"open\":0.17488,\"high\":0.1782,\"low\":0.17324,\"close\":0.17476,\"volume\":779646.11099317,\"close_time\":1508889386052,\"vwap\":0.18125338645647263,\"ema1\":0.17330459794844777,\"sma1\":0.19001988472222225,\"sma2\":0.17375549999999998,\"rsi_avg_gain\":0.0009225477172162231,\"rsi_avg_loss\":0.0008130585886015889,\"rsi\":53},{\"period_id\":\"120m209566\",\"size\":\"120m\",\"time\":1508875200000,\"open\":0.17901,\"high\":0.18062,\"low\":0.1724,\"close\":0.1749,\"volume\":980719.45796823,\"close_time\":1508882374988,\"vwap\":0.1814239011483021,\"ema1\":0.1732042253931683,\"sma1\":0.19042247731481485,\"sma2\":0.17387549999999996,\"rsi_avg_gain\":0.0009935129262328556,\"rsi_avg_loss\":0.0008648323261863264,\"rsi\":53},{\"period_id\":\"120m209565\",\"size\":\"120m\",\"time\":1508868000000,\"open\":0.18111,\"high\":0.18302,\"low\":0.17853,\"close\":0.1789,\"volume\":870281.0234227607,\"close_time\":1508875170112,\"vwap\":0.1819171642034391,\"ema1\":0.17308727542028335,\"sma1\":0.19084358842592597,\"sma2\":0.17396999999999993,\"rsi_avg_gain\":0.0010699369974815367,\"rsi_avg_loss\":0.0006236655820468127,\"rsi\":63},{\"period_id\":\"120m209564\",\"size\":\"120m\",\"time\":1508860800000,\"open\":0.18079,\"high\":0.18325,\"low\":0.176,\"close\":0.181,\"volume\":2010800.5246071485,\"close_time\":1508867957444,\"vwap\":0.1820054237388955,\"ema1\":0.1726863978630615,\"sma1\":0.19124775509259262,\"sma2\":0.17399416666666664,\"rsi_avg_gain\":0.0011522398434416548,\"rsi_avg_loss\":0.0005101013960504145,\"rsi\":69},{\"period_id\":\"120m209563\",\"size\":\"120m\",\"time\":1508853600000,\"open\":0.18248,\"high\":0.18549,\"low\":0.1806,\"close\":0.18078,\"volume\":2048497.8937628616,\"close_time\":1508860796305,\"vwap\":0.1830641207494445,\"ema1\":0.1721130459915485,\"sma1\":0.19157655138888893,\"sma2\":0.1741811666666666,\"rsi_avg_gain\":0.0012239506006294747,\"rsi_avg_loss\":0.0005493399649773694,\"rsi\":69},{\"period_id\":\"120m209562\",\"size\":\"120m\",\"time\":1508846400000,\"open\":0.17812,\"high\":0.184,\"low\":0.178,\"close\":0.18142,\"volume\":2121593.591426679,\"close_time\":1508853596365,\"vwap\":0.18252987853750713,\"ema1\":0.1715153250254484,\"sma1\":0.19187951435185188,\"sma2\":0.17409866666666662,\"rsi_avg_gain\":0.001318100646831742,\"rsi_avg_loss\":0.0005423661161294747,\"rsi\":71},{\"period_id\":\"120m209561\",\"size\":\"120m\",\"time\":1508839200000,\"open\":0.17708,\"high\":0.1797,\"low\":0.1755,\"close\":0.17812,\"volume\":1405572.9367635408,\"close_time\":1508846399653,\"vwap\":0.16849344361009255,\"ema1\":0.1708322439927207,\"sma1\":0.19219895879629634,\"sma2\":0.1740983333333333,\"rsi_avg_gain\":0.0011656468504341838,\"rsi_avg_loss\":0.0005840865866009728,\"rsi\":67},{\"period_id\":\"120m209560\",\"size\":\"120m\",\"time\":1508832000000,\"open\":0.1749,\"high\":0.18,\"low\":0.174,\"close\":0.17802,\"volume\":2817885.18563076,\"close_time\":1508839193802,\"vwap\":0.16779461485705202,\"ema1\":0.17032964013014973,\"sma1\":0.1925582180555556,\"sma2\":0.1740965,\"rsi_avg_gain\":0.001247619685082968,\"rsi_avg_loss\":0.0006290163240318168,\"rsi\":66},{\"period_id\":\"120m209559\",\"size\":\"120m\",\"time\":1508824800000,\"open\":0.17427,\"high\":0.17499,\"low\":0.17004,\"close\":0.174,\"volume\":2599126.4352685795,\"close_time\":1508831953470,\"vwap\":0.16530284492568226,\"ema1\":0.16979927048395316,\"sma1\":0.19295618101851855,\"sma2\":0.17417716666666663,\"rsi_avg_gain\":0.001034359660858579,\"rsi_avg_loss\":0.0006774021951111873,\"rsi\":60},{\"period_id\":\"120m209558\",\"size\":\"120m\",\"time\":1508817600000,\"open\":0.16942,\"high\":0.17497,\"low\":0.16851,\"close\":0.17427,\"volume\":940349.9307694802,\"close_time\":1508824766056,\"vwap\":0.1640443016501711,\"ema1\":0.16950956500008785,\"sma1\":0.19336229212962963,\"sma2\":0.17429766666666663,\"rsi_avg_gain\":0.001113925788616931,\"rsi_avg_loss\":0.000708740825504354,\"rsi\":61},{\"period_id\":\"120m209557\",\"size\":\"120m\",\"time\":1508810400000,\"open\":0.17017,\"high\":0.17674,\"low\":0.16831,\"close\":0.16946,\"volume\":1315534.0875811498,\"close_time\":1508817487442,\"vwap\":0.163856850359519,\"ema1\":0.16918125913802495,\"sma1\":0.19376164398148155,\"sma2\":0.1744541666666667,\"rsi_avg_gain\":0.0008296123877413098,\"rsi_avg_loss\":0.0007632593505431505,\"rsi\":52},{\"period_id\":\"120m209556\",\"size\":\"120m\",\"time\":1508803200000,\"open\":0.164,\"high\":0.17077,\"low\":0.1571,\"close\":0.17,\"volume\":1711814.2027050385,\"close_time\":1508810383599,\"vwap\":0.16332549299189564,\"ema1\":0.16916203563030255,\"sma1\":0.19423127361111112,\"sma2\":0.17466399999999999,\"rsi_avg_gain\":0.0008934287252598722,\"rsi_avg_loss\":0.0007804331467387764,\"rsi\":53},{\"period_id\":\"120m209555\",\"size\":\"120m\",\"time\":1508796000000,\"open\":0.16292,\"high\":0.1675,\"low\":0.16182,\"close\":0.164,\"volume\":807403.1018157998,\"close_time\":1508803132515,\"vwap\":0.16352686718444834,\"ema1\":0.16910424498411653,\"sma1\":0.19472201435185188,\"sma2\":0.17501649999999996,\"rsi_avg_gain\":0.000500615550279862,\"rsi_avg_loss\":0.0008404664657186823,\"rsi\":37},{\"period_id\":\"120m209554\",\"size\":\"120m\",\"time\":1508788800000,\"open\":0.1625,\"high\":0.16426,\"low\":0.16121,\"close\":0.16234,\"volume\":1314971.7257595595,\"close_time\":1508795898047,\"vwap\":0.16347869494152367,\"ema1\":0.16945626187957283,\"sma1\":0.19523812546296299,\"sma2\":0.17539533333333332,\"rsi_avg_gain\":0.000411432131070621,\"rsi_avg_loss\":0.000905117732312427,\"rsi\":31},{\"period_id\":\"120m209553\",\"size\":\"120m\",\"time\":1508781600000,\"open\":0.16131,\"high\":0.16298,\"low\":0.16,\"close\":0.1625,\"volume\":1229418.5161516913,\"close_time\":1508788795861,\"vwap\":0.1635686058417837,\"ema1\":0.16994703856092266,\"sma1\":0.19576608842592597,\"sma2\":0.1756808333333333,\"rsi_avg_gain\":0.0004430807565375918,\"rsi_avg_loss\":0.0009624344809518449,\"rsi\":32},{\"period_id\":\"120m209552\",\"size\":\"120m\",\"time\":1508774400000,\"open\":0.16147,\"high\":0.162,\"low\":0.16,\"close\":0.1613,\"volume\":1277560.5058609694,\"close_time\":1508781568333,\"vwap\":0.16379329859114886,\"ema1\":0.1704606274271932,\"sma1\":0.1962793291666667,\"sma2\":0.1760008333333333,\"rsi_avg_gain\":0.0003848561993481752,\"rsi_avg_loss\":0.0010364679025635253,\"rsi\":27},{\"period_id\":\"120m209551\",\"size\":\"120m\",\"time\":1508767200000,\"open\":0.16191,\"high\":0.16275,\"low\":0.16,\"close\":0.161,\"volume\":1546121.7464910003,\"close_time\":1508774327749,\"vwap\":0.16414559992734276,\"ema1\":0.17109239483596514,\"sma1\":0.196790625462963,\"sma2\":0.17646749999999997,\"rsi_avg_gain\":0.0003913835992980352,\"rsi_avg_loss\":0.0011161962027607195,\"rsi\":26},{\"period_id\":\"120m209550\",\"size\":\"120m\",\"time\":1508760000000,\"open\":0.16606,\"high\":0.16606,\"low\":0.16034,\"close\":0.16196,\"volume\":1831406.5661778909,\"close_time\":1508767191577,\"vwap\":0.16495911038573718,\"ema1\":0.1717884220660317,\"sma1\":0.1972896069444445,\"sma2\":0.17690150000000002,\"rsi_avg_gain\":0.0004214900300132687,\"rsi_avg_loss\":0.0011282112952807758,\"rsi\":27},{\"period_id\":\"120m209549\",\"size\":\"120m\",\"time\":1508752800000,\"open\":0.16547,\"high\":0.16717,\"low\":0.165,\"close\":0.16503,\"volume\":1181269.23281257,\"close_time\":1508759985903,\"vwap\":0.16589972127557306,\"ema1\":0.17246624427748217,\"sma1\":0.19780469953703705,\"sma2\":0.17738233333333334,\"rsi_avg_gain\":0.00045391234001428935,\"rsi_avg_loss\":0.0009788429333792957,\"rsi\":32},{\"period_id\":\"120m209548\",\"size\":\"120m\",\"time\":1508745600000,\"open\":0.16604,\"high\":0.16744,\"low\":0.165,\"close\":0.16595,\"volume\":2203820.4107049895,\"close_time\":1508752793340,\"vwap\":0.16592959027796275,\"ema1\":0.17297908871041198,\"sma1\":0.19832636620370378,\"sma2\":0.1778451666666667,\"rsi_avg_gain\":0.0004888286738615424,\"rsi_avg_loss\":0.0009833693128700124,\"rsi\":33},{\"period_id\":\"120m209547\",\"size\":\"120m\",\"time\":1508738400000,\"open\":0.169,\"high\":0.16902,\"low\":0.165,\"close\":0.16603,\"volume\":1644274.9669853388,\"close_time\":1508745581675,\"vwap\":0.16642266972119507,\"ema1\":0.1734638534490611,\"sma1\":0.1987886810185186,\"sma2\":0.17827800000000002,\"rsi_avg_gain\":0.0005264308795431995,\"rsi_avg_loss\":0.0010528592600138576,\"rsi\":33},{\"period_id\":\"120m209546\",\"size\":\"120m\",\"time\":1508731200000,\"open\":0.17068,\"high\":0.17076,\"low\":0.169,\"close\":0.16911,\"volume\":319551.91773119004,\"close_time\":1508738356463,\"vwap\":0.17457735452905537,\"ema1\":0.1739765329972722,\"sma1\":0.19927849583333337,\"sma2\":0.17875950000000002,\"rsi_avg_gain\":0.000566925562584984,\"rsi_avg_loss\":0.0008969253569380006,\"rsi\":39},{\"period_id\":\"120m209545\",\"size\":\"120m\",\"time\":1508724000000,\"open\":0.1708,\"high\":0.17086,\"low\":0.17003,\"close\":0.17043,\"volume\":87114,\"close_time\":1508730294918,\"vwap\":0.17459343806067237,\"ema1\":0.1743121559626013,\"sma1\":0.19976868101851858,\"sma2\":0.17916900000000002,\"rsi_avg_gain\":0.0006105352212453675,\"rsi_avg_loss\":0.00086438115362554,\"rsi\":41},{\"period_id\":\"120m209544\",\"size\":\"120m\",\"time\":1508716800000,\"open\":0.17162,\"high\":0.17162,\"low\":0.1707,\"close\":0.17082,\"volume\":115057.60277177,\"close_time\":1508723544199,\"vwap\":0.1745943716979933,\"ema1\":0.1745798908565738,\"sma1\":0.20022951435185188,\"sma2\":0.1796456666666667,\"rsi_avg_gain\":0.0006574994690334726,\"rsi_avg_loss\":0.0009008720115967352,\"rsi\":42},{\"period_id\":\"120m209543\",\"size\":\"120m\",\"time\":1508709600000,\"open\":0.1705,\"high\":0.172,\"low\":0.17017,\"close\":0.17076,\"volume\":97633.11608365999,\"close_time\":1508716762892,\"vwap\":0.1745955320583856,\"ema1\":0.17483919367426853,\"sma1\":0.2006646995370371,\"sma2\":0.18004133333333336,\"rsi_avg_gain\":0.0007034609666514317,\"rsi_avg_loss\":0.0009701698586426379,\"rsi\":42},{\"period_id\":\"120m209542\",\"size\":\"120m\",\"time\":1508702400000,\"open\":0.17,\"high\":0.17174755,\"low\":0.16966,\"close\":0.17126,\"volume\":279349.66166889,\"close_time\":1508709197711,\"vwap\":0.1745977982721158,\"ema1\":0.17512051737594223,\"sma1\":0.2010894444444445,\"sma2\":0.18033200000000002,\"rsi_avg_gain\":0.0007575733487015418,\"rsi_avg_loss\":0.0010063367708459177,\"rsi\":43},{\"period_id\":\"120m209541\",\"size\":\"120m\",\"time\":1508695200000,\"open\":0.171,\"high\":0.172,\"low\":0.1698,\"close\":0.17,\"volume\":534286.93589556,\"close_time\":1508702389820,\"vwap\":0.17460475730042482,\"ema1\":0.1753867599535934,\"sma1\":0.20157314814814822,\"sma2\":0.18085700000000002,\"rsi_avg_gain\":0.0007189251447555079,\"rsi_avg_loss\":0.0010837472916802192,\"rsi\":40},{\"period_id\":\"120m209540\",\"size\":\"120m\",\"time\":1508688000000,\"open\":0.1724,\"high\":0.1724,\"low\":0.171,\"close\":0.17126,\"volume\":149310.91431348005,\"close_time\":1508694856926,\"vwap\":0.174655239068314,\"ema1\":0.17575826064004813,\"sma2\":0.1814685,\"rsi_avg_gain\":0.0007742270789674701,\"rsi_avg_loss\":0.0010701893910402373,\"rsi\":42},{\"period_id\":\"120m209539\",\"size\":\"120m\",\"time\":1508680800000,\"open\":0.1723,\"high\":0.17481,\"low\":0.17121,\"close\":0.1724,\"volume\":597489.0677834799,\"close_time\":1508687927557,\"vwap\":0.17466080614144064,\"ema1\":0.1760684855117756,\"sma2\":0.18213633333333334,\"rsi_avg_gain\":0.0008337830081188139,\"rsi_avg_loss\":0.0010648193441971786,\"rsi\":44},{\"period_id\":\"120m209538\",\"size\":\"120m\",\"time\":1508673600000,\"open\":0.17057,\"high\":0.17274,\"low\":0.16958,\"close\":0.17226,\"volume\":357371.2148454699,\"close_time\":1508680784545,\"vwap\":0.17468444835671215,\"ema1\":0.1763214845125877,\"sma2\":0.1828766666666667,\"rsi_avg_gain\":0.0008871509318202611,\"rsi_avg_loss\":0.0011467285245200384,\"rsi\":44},{\"period_id\":\"120m209537\",\"size\":\"120m\",\"time\":1508666400000,\"open\":0.17146,\"high\":0.17149,\"low\":0.168,\"close\":0.16957,\"volume\":718263.7104258008,\"close_time\":1508673584125,\"vwap\":0.17470250722049427,\"ema1\":0.17660158689276617,\"sma2\":0.18363383333333336,\"rsi_avg_gain\":0.0007484702342679736,\"rsi_avg_loss\":0.0012349384110215797,\"rsi\":38},{\"period_id\":\"120m209536\",\"size\":\"120m\",\"time\":1508659200000,\"open\":0.17333,\"high\":0.17451,\"low\":0.16901,\"close\":0.17146,\"volume\":777359.1669491098,\"close_time\":1508666395877,\"vwap\":0.17484087162211362,\"ema1\":0.1770865239198535,\"sma2\":0.18446883333333336,\"rsi_avg_gain\":0.0008060448676732024,\"rsi_avg_loss\":0.0011845490580232394,\"rsi\":40},{\"period_id\":\"120m209535\",\"size\":\"120m\",\"time\":1508652000000,\"open\":0.173,\"high\":0.17549,\"low\":0.17237,\"close\":0.17407,\"volume\":368189.59224220994,\"close_time\":1508659091496,\"vwap\":0.17493009151662278,\"ema1\":0.17747456005225717,\"sma2\":0.185208,\"rsi_avg_gain\":0.0008680483190326796,\"rsi_avg_loss\":0.0010748989855634886,\"rsi\":45},{\"period_id\":\"120m209534\",\"size\":\"120m\",\"time\":1508644800000,\"open\":0.17198,\"high\":0.17389,\"low\":0.17066,\"close\":0.17357,\"volume\":259884.95235785996,\"close_time\":1508651645538,\"vwap\":0.17493326692757902,\"ema1\":0.17770935729724044,\"sma2\":0.185956,\"rsi_avg_gain\":0.0008963597281890396,\"rsi_avg_loss\":0.0011575835229145261,\"rsi\":44},{\"period_id\":\"120m209533\",\"size\":\"120m\",\"time\":1508637600000,\"open\":0.17799,\"high\":0.17807,\"low\":0.1715,\"close\":0.17189,\"volume\":233140.33999584996,\"close_time\":1508644438052,\"vwap\":0.1749386101938405,\"ema1\":0.1779948302142915,\"sma2\":0.18673033333333333,\"rsi_avg_gain\":0.000836079707280503,\"rsi_avg_loss\":0.0012466284092925667,\"rsi\":40},{\"period_id\":\"120m209532\",\"size\":\"120m\",\"time\":1508630400000,\"open\":0.17794,\"high\":0.1799,\"low\":0.17573,\"close\":0.17795,\"volume\":324073.30858867,\"close_time\":1508637572755,\"vwap\":0.17494877084757998,\"ema1\":0.17841585298769091,\"sma2\":0.18743116666666668,\"rsi_avg_gain\":0.0009003935309174648,\"rsi_avg_loss\":0.0008763690561612251,\"rsi\":51},{\"period_id\":\"120m209531\",\"size\":\"120m\",\"time\":1508623200000,\"open\":0.17182,\"high\":0.178,\"low\":0.17131,\"close\":0.178,\"volume\":579369.1544701199,\"close_time\":1508630360880,\"vwap\":0.17493003951116928,\"ema1\":0.17844798077994548,\"sma2\":0.188096,\"rsi_avg_gain\":0.0009696545717572698,\"rsi_avg_loss\":0.0009399359066351658,\"rsi\":51},{\"period_id\":\"120m209530\",\"size\":\"120m\",\"time\":1508616000000,\"open\":0.17,\"high\":0.173,\"low\":0.16948,\"close\":0.172,\"volume\":437613.7920166499,\"close_time\":1508623105179,\"vwap\":0.1749133969183334,\"ema1\":0.17847887600614862,\"sma2\":0.18881266666666668,\"rsi_avg_gain\":0.0005827049234309055,\"rsi_avg_loss\":0.0010122386686840248,\"rsi\":37},{\"period_id\":\"120m209529\",\"size\":\"120m\",\"time\":1508608800000,\"open\":0.171,\"high\":0.17269,\"low\":0.17,\"close\":0.17045,\"volume\":521011.0137024398,\"close_time\":1508615996024,\"vwap\":0.17495000822540963,\"ema1\":0.17892569504105543,\"sma2\":0.18962850000000003,\"rsi_avg_gain\":0.0005082976098486679,\"rsi_avg_loss\":0.001090103181659719,\"rsi\":32},{\"period_id\":\"120m209528\",\"size\":\"120m\",\"time\":1508601600000,\"open\":0.17174,\"high\":0.17204,\"low\":0.168,\"close\":0.1709,\"volume\":676697.5788278899,\"close_time\":1508608747958,\"vwap\":0.17501220724155303,\"ema1\":0.17951022573354203,\"sma2\":0.19065016666666673,\"rsi_avg_gain\":0.0005473974259908731,\"rsi_avg_loss\":0.0011393418879412354,\"rsi\":32},{\"period_id\":\"120m209527\",\"size\":\"120m\",\"time\":1508594400000,\"open\":0.17297,\"high\":0.17459,\"low\":0.1709,\"close\":0.17198,\"volume\":648114.2900651698,\"close_time\":1508601565921,\"vwap\":0.17516799560861618,\"ema1\":0.18010403440482078,\"sma2\":0.19176050000000003,\"rsi_avg_gain\":0.0005895049202978633,\"rsi_avg_loss\":0.0011439066485521,\"rsi\":34},{\"period_id\":\"120m209526\",\"size\":\"120m\",\"time\":1508587200000,\"open\":0.172,\"high\":0.17328,\"low\":0.16928,\"close\":0.173,\"volume\":2639942.211716732,\"close_time\":1508594339385,\"vwap\":0.17523957467492993,\"ema1\":0.180664312639636,\"sma2\":0.19300483333333335,\"rsi_avg_gain\":0.0006348514526284682,\"rsi_avg_loss\":0.0011534379292099544,\"rsi\":36},{\"period_id\":\"120m209525\",\"size\":\"120m\",\"time\":1508580000000,\"open\":0.17203,\"high\":0.173,\"low\":0.171,\"close\":0.172,\"volume\":729710.4042586304,\"close_time\":1508587194952,\"vwap\":0.17731425731300082,\"ema1\":0.18119288592512814,\"sma2\":0.19406316666666668,\"rsi_avg_gain\":0.000606763102830658,\"rsi_avg_loss\":0.0012421639237645663,\"rsi\":33},{\"period_id\":\"120m209524\",\"size\":\"120m\",\"time\":1508572800000,\"open\":0.17382,\"high\":0.174,\"low\":0.172,\"close\":0.17203,\"volume\":599489.1881081001,\"close_time\":1508579993090,\"vwap\":0.17753330027962377,\"ema1\":0.1818268780578956,\"sma2\":0.195087,\"rsi_avg_gain\":0.0006534371876637856,\"rsi_avg_loss\":0.0013354073025156866,\"rsi\":33},{\"period_id\":\"120m209523\",\"size\":\"120m\",\"time\":1508565600000,\"open\":0.174,\"high\":0.17489,\"low\":0.17141,\"close\":0.17388,\"volume\":803000.1573551196,\"close_time\":1508572738039,\"vwap\":0.1776915643975655,\"ema1\":0.1825025248205091,\"sma2\":0.1961053333333334,\"rsi_avg_gain\":0.0007037015867148461,\"rsi_avg_loss\":0.0012958232488630456,\"rsi\":35},{\"period_id\":\"120m209522\",\"size\":\"120m\",\"time\":1508558400000,\"open\":0.17331,\"high\":0.17482,\"low\":0.17153,\"close\":0.17398,\"volume\":328946.48005890014,\"close_time\":1508565586485,\"vwap\":0.1778982947786441,\"ema1\":0.18309718170468214,\"sma2\":0.19690200000000008,\"rsi_avg_gain\":0.0007578324780006036,\"rsi_avg_loss\":0.001387809652621742,\"rsi\":35},{\"period_id\":\"120m209521\",\"size\":\"120m\",\"time\":1508551200000,\"open\":0.175,\"high\":0.17588,\"low\":0.173,\"close\":0.173,\"volume\":369652.91754784994,\"close_time\":1508558005497,\"vwap\":0.17796491346205312,\"ema1\":0.18372595285672919,\"sma2\":0.19768533333333338,\"rsi_avg_gain\":0.000740742668616034,\"rsi_avg_loss\":0.001494564241284953,\"rsi\":33},{\"period_id\":\"120m209520\",\"size\":\"120m\",\"time\":1508544000000,\"open\":0.17635,\"high\":0.17802,\"low\":0.17464,\"close\":0.17535,\"volume\":470922.95569517004,\"close_time\":1508551167572,\"vwap\":0.17801697094463548,\"ema1\":0.18446567374340017,\"sma2\":0.1984418333333334,\"rsi_avg_gain\":0.0007977228738941905,\"rsi_avg_loss\":0.0014287614906145635,\"rsi\":36},{\"period_id\":\"120m209519\",\"size\":\"120m\",\"time\":1508536800000,\"open\":0.176,\"high\":0.17769,\"low\":0.1746,\"close\":0.17651,\"volume\":1082256.3462099694,\"close_time\":1508543841892,\"vwap\":0.1780499004915212,\"ema1\":0.18509434089811744,\"sma2\":0.19921666666666674,\"rsi_avg_gain\":0.0008590861718860513,\"rsi_avg_loss\":0.0014494354514310687,\"rsi\":37},{\"period_id\":\"120m209518\",\"size\":\"120m\",\"time\":1508529600000,\"open\":0.177,\"high\":0.1783,\"low\":0.175,\"close\":0.176,\"volume\":2969300.322570631,\"close_time\":1508536792880,\"vwap\":0.17833318627331293,\"ema1\":0.18568636440833244,\"sma2\":0.20000683333333338,\"rsi_avg_gain\":0.0008859389543388236,\"rsi_avg_loss\":0.0015609304861565357,\"rsi\":36},{\"period_id\":\"120m209517\",\"size\":\"120m\",\"time\":1508522400000,\"open\":0.1785,\"high\":0.17999,\"low\":0.1771,\"close\":0.17758,\"volume\":913124.6028473194,\"close_time\":1508529579456,\"vwap\":0.17995485543576048,\"ema1\":0.18635438953994157,\"sma2\":0.20077866666666674,\"rsi_avg_gain\":0.0009540881046725794,\"rsi_avg_loss\":0.0015594636004762695,\"rsi\":38},{\"period_id\":\"120m209516\",\"size\":\"120m\",\"time\":1508515200000,\"open\":0.1805,\"high\":0.1805,\"low\":0.1765,\"close\":0.17869,\"volume\":854731.4552997001,\"close_time\":1508522351206,\"vwap\":0.1802175229189822,\"ema1\":0.186959519853041,\"sma2\":0.20156716666666677,\"rsi_avg_gain\":0.0010274794973397009,\"rsi_avg_loss\":0.0015940377235898287,\"rsi\":39},{\"period_id\":\"120m209515\",\"size\":\"120m\",\"time\":1508508000000,\"open\":0.18251,\"high\":0.18389,\"low\":0.1754,\"close\":0.1805,\"volume\":2255473.1624895213,\"close_time\":1508515181054,\"vwap\":0.18046720345835457,\"ema1\":0.1875298315670438,\"sma2\":0.2022330000000001,\"rsi_avg_gain\":0.001106516381750447,\"rsi_avg_loss\":0.0015774252407890457,\"rsi\":41},{\"period_id\":\"120m209514\",\"size\":\"120m\",\"time\":1508500800000,\"open\":0.1827,\"high\":0.1845,\"low\":0.182,\"close\":0.18389,\"volume\":741604.6409471899,\"close_time\":1508507951218,\"vwap\":0.18343464730352366,\"ema1\":0.18801464753718475,\"sma2\":0.20273350000000007,\"rsi_avg_gain\":0.0011916330265004816,\"rsi_avg_loss\":0.0014379964131574336,\"rsi\":45},{\"period_id\":\"120m209513\",\"size\":\"120m\",\"time\":1508493600000,\"open\":0.18325,\"high\":0.18495,\"low\":0.18194,\"close\":0.1845,\"volume\":672749.5059062601,\"close_time\":1508500751369,\"vwap\":0.1835782210927653,\"ema1\":0.18829910598802507,\"sma2\":0.2032285,\"rsi_avg_gain\":0.0012832971054620571,\"rsi_avg_loss\":0.0015016884449387746,\"rsi\":46},{\"period_id\":\"120m209512\",\"size\":\"120m\",\"time\":1508486400000,\"open\":0.18398,\"high\":0.18511,\"low\":0.1825,\"close\":0.18367,\"volume\":750380.9981659299,\"close_time\":1508493594948,\"vwap\":0.18212467692523135,\"ema1\":0.18856111329754405,\"sma2\":0.20373400000000003,\"rsi_avg_gain\":0.0013181661135745234,\"rsi_avg_loss\":0.0016172029407032957,\"rsi\":45},{\"period_id\":\"120m209511\",\"size\":\"120m\",\"time\":1508479200000,\"open\":0.18556,\"high\":0.18691,\"low\":0.1833,\"close\":0.18399,\"volume\":934216.4546398703,\"close_time\":1508486356945,\"vwap\":0.18210738364534101,\"ema1\":0.18889843145599536,\"sma2\":0.2042835000000001,\"rsi_avg_gain\":0.0014195635069264097,\"rsi_avg_loss\":0.0017169877822958578,\"rsi\":45},{\"period_id\":\"120m209510\",\"size\":\"120m\",\"time\":1508472000000,\"open\":0.18476,\"high\":0.18958,\"low\":0.18476,\"close\":0.1855,\"volume\":854452.3424677192,\"close_time\":1508479192400,\"vwap\":0.18205648543073866,\"ema1\":0.18923694397020194,\"sma2\":0.20478850000000007,\"rsi_avg_gain\":0.0015287606997669027,\"rsi_avg_loss\":0.0017329099193955381,\"rsi\":47},{\"period_id\":\"120m209509\",\"size\":\"120m\",\"time\":1508464800000,\"open\":0.18316,\"high\":0.18462,\"low\":0.18193,\"close\":0.18462,\"volume\":229724.49574185,\"close_time\":1508471909974,\"vwap\":0.1819856663916001,\"ema1\":0.18949466424400896,\"sma2\":0.2053445,\"rsi_avg_gain\":0.0015786653689797419,\"rsi_avg_loss\":0.0018662106824259641,\"rsi\":46},{\"period_id\":\"120m209508\",\"size\":\"120m\",\"time\":1508457600000,\"open\":0.18186,\"high\":0.1832,\"low\":0.17975,\"close\":0.18316,\"volume\":430995.58608996,\"close_time\":1508464770516,\"vwap\":0.18198387703722463,\"ema1\":0.1898308479849751,\"sma2\":0.2058828333333334,\"rsi_avg_gain\":0.0015877934742858744,\"rsi_avg_loss\":0.0020097653503048842,\"rsi\":44},{\"period_id\":\"120m209507\",\"size\":\"120m\",\"time\":1508450400000,\"open\":0.18245,\"high\":0.18349,\"low\":0.18,\"close\":0.18236,\"volume\":266705.26839337003,\"close_time\":1508457396244,\"vwap\":0.18198228303882116,\"ema1\":0.19029090646669752,\"sma2\":0.20643350000000005,\"rsi_avg_gain\":0.001648392972307865,\"rsi_avg_loss\":0.0021643626849437215,\"rsi\":43},{\"period_id\":\"120m209506\",\"size\":\"120m\",\"time\":1508443200000,\"open\":0.18448,\"high\":0.1848,\"low\":0.18011,\"close\":0.1821,\"volume\":694507.9420249896,\"close_time\":1508450386343,\"vwap\":0.18198523602630992,\"ema1\":0.19083786553336632,\"sma2\":0.2070623333333334,\"rsi_avg_gain\":0.0017551924317161635,\"rsi_avg_loss\":0.002330852122247085,\"rsi\":43},{\"period_id\":\"120m209505\",\"size\":\"120m\",\"time\":1508436000000,\"open\":0.1825,\"high\":0.1855,\"low\":0.181,\"close\":0.18457,\"volume\":949255.9928773206,\"close_time\":1508443191375,\"vwap\":0.181980648710871,\"ema1\":0.19144047694946054,\"sma2\":0.20762316666666672,\"rsi_avg_gain\":0.0018902072341558684,\"rsi_avg_loss\":0.0023201484393430144,\"rsi\":45},{\"period_id\":\"120m209504\",\"size\":\"120m\",\"time\":1508428800000,\"open\":0.191,\"high\":0.1944,\"low\":0.1821,\"close\":0.18245,\"volume\":2695444.7140950765,\"close_time\":1508435969412,\"vwap\":0.18195030072059132,\"ema1\":0.19191430294597506,\"sma2\":0.20817400000000008,\"rsi_avg_gain\":0.0018725308675524729,\"rsi_avg_loss\":0.0024986213962155538,\"rsi\":43},{\"period_id\":\"120m209503\",\"size\":\"120m\",\"time\":1508421600000,\"open\":0.17647,\"high\":0.195,\"low\":0.175,\"close\":0.192,\"volume\":3989608.8784541055,\"close_time\":1508428794391,\"vwap\":0.18118523277849183,\"ema1\":0.19256701349397334,\"sma2\":0.20857266666666677,\"rsi_avg_gain\":0.0020165717035180476,\"rsi_avg_loss\":0.0019562076574629037,\"rsi\":51},{\"period_id\":\"120m209502\",\"size\":\"120m\",\"time\":1508414400000,\"open\":0.1781,\"high\":0.17949,\"low\":0.1764,\"close\":0.17647,\"volume\":1041090.1481537899,\"close_time\":1508421587204,\"vwap\":0.17887048199095404,\"ema1\":0.19260611787286805,\"sma2\":0.20924816666666676,\"rsi_avg_gain\":0.0009770772191732807,\"rsi_avg_loss\":0.0021066851695754345,\"rsi\":32},{\"period_id\":\"120m209501\",\"size\":\"120m\",\"time\":1508407200000,\"open\":0.17791,\"high\":0.17965,\"low\":0.1752,\"close\":0.1781,\"volume\":1684302.6253727605,\"close_time\":1508414397667,\"vwap\":0.1789428734212237,\"ema1\":0.19371895358823826,\"sma2\":0.20992083333333342,\"rsi_avg_gain\":0.001052237005263533,\"rsi_avg_loss\":0.002143353259542774,\"rsi\":33},{\"period_id\":\"120m209500\",\"size\":\"120m\",\"time\":1508400000000,\"open\":0.17884,\"high\":0.18121,\"low\":0.17727,\"close\":0.17791,\"volume\":1148991.7105682401,\"close_time\":1508407195358,\"vwap\":0.17906867617558184,\"ema1\":0.19479612280122022,\"sma2\":0.21065433333333342,\"rsi_avg_gain\":0.0011185629287453435,\"rsi_avg_loss\":0.0023082265871999107,\"rsi\":33},{\"period_id\":\"120m209499\",\"size\":\"120m\",\"time\":1508392800000,\"open\":0.1826,\"high\":0.18468,\"low\":0.17801,\"close\":0.17884,\"volume\":1068540.03475697,\"close_time\":1508399998814,\"vwap\":0.17905205811593516,\"ema1\":0.1959606829944078,\"sma2\":0.21129866666666672,\"rsi_avg_gain\":0.0012046062309565239,\"rsi_avg_loss\":0.0024142440169845204,\"rsi\":33},{\"period_id\":\"120m209498\",\"size\":\"120m\",\"time\":1508385600000,\"open\":0.17834,\"high\":0.18343,\"low\":0.1763,\"close\":0.1815,\"volume\":1083815.3835733393,\"close_time\":1508392791657,\"vwap\":0.17897187432385842,\"ema1\":0.19714141975264282,\"sma2\":0.21190716666666673,\"rsi_avg_gain\":0.0012972682487224104,\"rsi_avg_loss\":0.0023953397105987147,\"rsi\":35},{\"period_id\":\"120m209497\",\"size\":\"120m\",\"time\":1508378400000,\"open\":0.1835,\"high\":0.18533,\"low\":0.17843,\"close\":0.17885,\"volume\":555617.9518499903,\"close_time\":1508385595765,\"vwap\":0.17890783669155563,\"ema1\":0.19822013835627336,\"sma2\":0.2126013333333334,\"rsi_avg_gain\":0.0011932119601625968,\"rsi_avg_loss\":0.0025795966114140006,\"rsi\":32},{\"period_id\":\"120m209496\",\"size\":\"120m\",\"time\":1508371200000,\"open\":0.18414,\"high\":0.18592,\"low\":0.18112,\"close\":0.18259,\"volume\":481808.72188413964,\"close_time\":1508378329705,\"vwap\":0.17888034520399693,\"ema1\":0.19955600996705083,\"sma2\":0.2132453333333334,\"rsi_avg_gain\":0.0012849974955597195,\"rsi_avg_loss\":0.0024903348122920013,\"rsi\":34},{\"period_id\":\"120m209495\",\"size\":\"120m\",\"time\":1508364000000,\"open\":0.185,\"high\":0.18809,\"low\":0.1836,\"close\":0.18515,\"volume\":1333017.9636087907,\"close_time\":1508371192259,\"vwap\":0.17884072446852128,\"ema1\":0.2007260796199509,\"sma2\":0.21378633333333338,\"rsi_avg_gain\":0.001383843456756621,\"rsi_avg_loss\":0.0024849759516990776,\"rsi\":36},{\"period_id\":\"120m209494\",\"size\":\"120m\",\"time\":1508356800000,\"open\":0.17963,\"high\":0.18522,\"low\":0.17531,\"close\":0.18507,\"volume\":2839118.2283753585,\"close_time\":1508363988420,\"vwap\":0.17830319253677956,\"ema1\":0.20180029200753372,\"sma2\":0.21429333333333342,\"rsi_avg_gain\":0.0014841391072763614,\"rsi_avg_loss\":0.002676127947983622,\"rsi\":36},{\"period_id\":\"120m209493\",\"size\":\"120m\",\"time\":1508349600000,\"open\":0.1817,\"high\":0.18195,\"low\":0.17057,\"close\":0.17963,\"volume\":4148635.5413661683,\"close_time\":1508356790881,\"vwap\":0.17711916680185433,\"ema1\":0.20295410524943258,\"sma2\":0.21491200000000005,\"rsi_avg_gain\":0.0011798421155283891,\"rsi_avg_loss\":0.002881983943982362,\"rsi\":29},{\"period_id\":\"120m209492\",\"size\":\"120m\",\"time\":1508342400000,\"open\":0.189,\"high\":0.18988,\"low\":0.18,\"close\":0.1805,\"volume\":2751641.340932761,\"close_time\":1508349586855,\"vwap\":0.1907625541783567,\"ema1\":0.20456266423215208,\"rsi_avg_gain\":0.0012705992013382651,\"rsi_avg_loss\":0.0030367519396733147,\"rsi\":29},{\"period_id\":\"120m209491\",\"size\":\"120m\",\"time\":1508335200000,\"open\":0.1888,\"high\":0.18988,\"low\":0.1853,\"close\":0.189,\"volume\":1497489.5640848696,\"close_time\":1508342398064,\"vwap\":0.19175136303212229,\"ema1\":0.2062221583171281,\"rsi_avg_gain\":0.0013683376014412088,\"rsi_avg_loss\":0.0026165020888789534,\"rsi\":34},{\"period_id\":\"120m209490\",\"size\":\"120m\",\"time\":1508328000000,\"open\":0.193,\"high\":0.19561,\"low\":0.188,\"close\":0.188,\"volume\":1372659.4788467903,\"close_time\":1508335190916,\"vwap\":0.19192523938351208,\"ema1\":0.20740989337348176,\"rsi_avg_gain\":0.0013966712630905326,\"rsi_avg_loss\":0.002817771480331181,\"rsi\":33},{\"period_id\":\"120m209489\",\"size\":\"120m\",\"time\":1508320800000,\"open\":0.19372,\"high\":0.19788,\"low\":0.19,\"close\":0.19388,\"volume\":1368834.8061775295,\"close_time\":1508327989073,\"vwap\":0.1919296721688136,\"ema1\":0.20874850670958395,\"rsi_avg_gain\":0.0015041075140974967,\"rsi_avg_loss\":0.0025822154403566566,\"rsi\":37},{\"period_id\":\"120m209488\",\"size\":\"120m\",\"time\":1508313600000,\"open\":0.1895,\"high\":0.19372,\"low\":0.18551,\"close\":0.19372,\"volume\":1762878.7035395007,\"close_time\":1508320794514,\"vwap\":0.19188090972854352,\"ema1\":0.20977392096541733,\"rsi_avg_gain\":0.0016075003997973048,\"rsi_avg_loss\":0.002780847397307169,\"rsi\":37},{\"period_id\":\"120m209487\",\"size\":\"120m\",\"time\":1508306400000,\"open\":0.19807,\"high\":0.19897,\"low\":0.18551,\"close\":0.192,\"volume\":1783411.5423043596,\"close_time\":1508313540957,\"vwap\":0.1919054765817349,\"ema1\":0.21088108792854957,\"rsi_avg_gain\":0.0015988465843970977,\"rsi_avg_loss\":0.0029947587355615662,\"rsi\":35},{\"period_id\":\"120m209486\",\"size\":\"120m\",\"time\":1508299200000,\"open\":0.19455,\"high\":0.20078,\"low\":0.19428,\"close\":0.198,\"volume\":1296323.113122249,\"close_time\":1508306398847,\"vwap\":0.19194273701476947,\"ema1\":0.21218323192362196,\"rsi_avg_gain\":0.0017218347831968743,\"rsi_avg_loss\":0.0027635863306047634,\"rsi\":38},{\"period_id\":\"120m209485\",\"size\":\"120m\",\"time\":1508292000000,\"open\":0.19707,\"high\":0.19925,\"low\":0.193,\"close\":0.195,\"volume\":376664.22766547016,\"close_time\":1508299009432,\"vwap\":0.19177751896011153,\"ema1\":0.21316138584938898,\"rsi_avg_gain\":0.001623514381904326,\"rsi_avg_loss\":0.0029761698944974374,\"rsi\":35},{\"period_id\":\"120m209484\",\"size\":\"120m\",\"time\":1508284800000,\"open\":0.19449,\"high\":0.19978,\"low\":0.19075,\"close\":0.19942,\"volume\":743392.9868329304,\"close_time\":1508291986653,\"vwap\":0.19177054852123804,\"ema1\":0.21441389521831236,\"rsi_avg_gain\":0.0017484001035892743,\"rsi_avg_loss\":0.002865106040228011,\"rsi\":38},{\"period_id\":\"120m209483\",\"size\":\"120m\",\"time\":1508277600000,\"open\":0.191,\"high\":0.19466,\"low\":0.1888,\"close\":0.1945,\"volume\":2467112.42037417,\"close_time\":1508284788370,\"vwap\":0.1917216266095209,\"ema1\":0.21544795695750632,\"rsi_avg_gain\":0.0015044308807884506,\"rsi_avg_loss\":0.003085498812553243,\"rsi\":33},{\"period_id\":\"120m209482\",\"size\":\"120m\",\"time\":1508270400000,\"open\":0.2015,\"high\":0.20462,\"low\":0.18501,\"close\":0.1887,\"volume\":8168424.322204548,\"close_time\":1508277590165,\"vwap\":0.19181008253654971,\"ema1\":0.2168926436442309,\"rsi_avg_gain\":0.0011740024870029468,\"rsi_avg_loss\":0.003322844875057339,\"rsi\":26},{\"period_id\":\"120m209481\",\"size\":\"120m\",\"time\":1508263200000,\"open\":0.20795,\"high\":0.20948,\"low\":0.198,\"close\":0.2015,\"volume\":4465280.972445613,\"close_time\":1508270392738,\"vwap\":0.20169454972713535,\"ema1\":0.21883696389555715,\"rsi_avg_gain\":0.001264310370618558,\"rsi_avg_loss\":0.0025938329423694415,\"rsi\":33},{\"period_id\":\"120m209480\",\"size\":\"120m\",\"time\":1508256000000,\"open\":0.21216,\"high\":0.213,\"low\":0.2,\"close\":0.20795,\"volume\":4123265.899420519,\"close_time\":1508263196262,\"vwap\":0.21267283013605567,\"ema1\":0.22003261657800938,\"rsi_avg_gain\":0.0013615650145122934,\"rsi_avg_loss\":0.002297204707167092,\"rsi\":37},{\"period_id\":\"120m209479\",\"size\":\"120m\",\"time\":1508248800000,\"open\":0.21667,\"high\":0.2185,\"low\":0.21126,\"close\":0.21247,\"volume\":1350323.3272897,\"close_time\":1508255977182,\"vwap\":0.21773572456562365,\"ema1\":0.22086590047994106,\"rsi_avg_gain\":0.001466300784859393,\"rsi_avg_loss\":0.002126220453872253,\"rsi\":41},{\"period_id\":\"120m209478\",\"size\":\"120m\",\"time\":1508241600000,\"open\":0.21483,\"high\":0.2207,\"low\":0.2145,\"close\":0.21668,\"volume\":1476930.5860650714,\"close_time\":1508248766827,\"vwap\":0.21817342170102655,\"ema1\":0.22144492809924735,\"rsi_avg_gain\":0.0015790931529255001,\"rsi_avg_loss\":0.0019659297195547326,\"rsi\":45},{\"period_id\":\"120m209477\",\"size\":\"120m\",\"time\":1508234400000,\"open\":0.2214,\"high\":0.2214,\"low\":0.21483,\"close\":0.215,\"volume\":1546725.3390792508,\"close_time\":1508241589452,\"vwap\":0.21850893220355536,\"ema1\":0.22177354383022993,\"rsi_avg_gain\":0.001571331087765922,\"rsi_avg_loss\":0.002117155082597404,\"rsi\":43},{\"period_id\":\"120m209476\",\"size\":\"120m\",\"time\":1508227200000,\"open\":0.21815,\"high\":0.22399,\"low\":0.2162,\"close\":0.22156,\"volume\":1788883.6854261511,\"close_time\":1508234398358,\"vwap\":0.21876011930345776,\"ema1\":0.22224068478403888,\"rsi_avg_gain\":0.0016922027099017622,\"rsi_avg_loss\":0.001775397781258742,\"rsi\":49},{\"period_id\":\"120m209475\",\"size\":\"120m\",\"time\":1508220000000,\"open\":0.21901,\"high\":0.22099,\"low\":0.215,\"close\":0.21842,\"volume\":1724554.0755199182,\"close_time\":1508227139321,\"vwap\":0.2179934642769748,\"ema1\":0.22228762856224846,\"rsi_avg_gain\":0.0015808336875865127,\"rsi_avg_loss\":0.0019119668413555683,\"rsi\":45},{\"period_id\":\"120m209474\",\"size\":\"120m\",\"time\":1508212800000,\"open\":0.218,\"high\":0.22398,\"low\":0.218,\"close\":0.21845,\"volume\":604386.24432186,\"close_time\":1508219872202,\"vwap\":0.2180666539538579,\"ema1\":0.22255436156654146,\"rsi_avg_gain\":0.0017024362789393214,\"rsi_avg_loss\":0.0020567335214598426,\"rsi\":45},{\"period_id\":\"120m209473\",\"size\":\"120m\",\"time\":1508205600000,\"open\":0.22012,\"high\":0.22135,\"low\":0.218,\"close\":0.21835,\"volume\":278872.58491949004,\"close_time\":1508212763910,\"vwap\":0.21796764719727502,\"ema1\":0.22283742098492362,\"rsi_avg_gain\":0.0018257006080884986,\"rsi_avg_loss\":0.0022149437923413688,\"rsi\":45},{\"period_id\":\"120m209472\",\"size\":\"120m\",\"time\":1508198400000,\"open\":0.2172,\"high\":0.22462,\"low\":0.2165,\"close\":0.22,\"volume\":526781.0521477099,\"close_time\":1508204356283,\"vwap\":0.21795316741190238,\"ema1\":0.2231468982942287,\"rsi_avg_gain\":0.0019661391164029983,\"rsi_avg_loss\":0.0022584010071368577,\"rsi\":47},{\"period_id\":\"120m209471\",\"size\":\"120m\",\"time\":1508191200000,\"open\":0.215,\"high\":0.2193,\"low\":0.21384,\"close\":0.21789,\"volume\":1527821.7633719281,\"close_time\":1508198371974,\"vwap\":0.21785255746573648,\"ema1\":0.2233639257627962,\"rsi_avg_gain\":0.0019550728945878443,\"rsi_avg_loss\":0.0024321241615320004,\"rsi\":45},{\"period_id\":\"120m209470\",\"size\":\"120m\",\"time\":1508184000000,\"open\":0.21977,\"high\":0.22632,\"low\":0.215,\"close\":0.215,\"volume\":3312468.6553416625,\"close_time\":1508191198043,\"vwap\":0.21796594580331638,\"ema1\":0.22374143788436834,\"rsi_avg_gain\":0.0018831554249407554,\"rsi_avg_loss\":0.0026192106354960003,\"rsi\":42},{\"period_id\":\"120m209469\",\"size\":\"120m\",\"time\":1508176800000,\"open\":0.2322,\"high\":0.23534,\"low\":0.215,\"close\":0.2194,\"volume\":7587043.2554451395,\"close_time\":1508183998207,\"vwap\":0.23190215708735673,\"ema1\":0.2243442956694972,\"rsi_avg_gain\":0.0020280135345515826,\"rsi_avg_loss\":0.0024822268382264606,\"rsi\":45},{\"period_id\":\"120m209468\",\"size\":\"120m\",\"time\":1508169600000,\"open\":0.23909,\"high\":0.24,\"low\":0.22711,\"close\":0.2322,\"volume\":5271921.541000183,\"close_time\":1508176794364,\"vwap\":0.23933778433115224,\"ema1\":0.2246852815777384,\"rsi_avg_gain\":0.002184014575670935,\"rsi_avg_loss\":0.0016885519796284974,\"rsi\":56},{\"period_id\":\"120m209467\",\"size\":\"120m\",\"time\":1508162400000,\"open\":0.2485,\"high\":0.2485,\"low\":0.2386,\"close\":0.2386,\"volume\":4005236.0432454455,\"close_time\":1508169595100,\"vwap\":0.2417573046901453,\"ema1\":0.2241670251348238,\"rsi_avg_gain\":0.0023520156968763915,\"rsi_avg_loss\":0.0013261329011383803,\"rsi\":64},{\"period_id\":\"120m209466\",\"size\":\"120m\",\"time\":1508155200000,\"open\":0.2355,\"high\":0.2499,\"low\":0.235,\"close\":0.24766,\"volume\":5009323.550827344,\"close_time\":1508162398862,\"vwap\":0.24113625448118928,\"ema1\":0.2231716475579151,\"rsi_avg_gain\":0.0025329399812514986,\"rsi_avg_loss\":0.0007312200473797956,\"rsi\":78},{\"period_id\":\"120m209465\",\"size\":\"120m\",\"time\":1508148000000,\"open\":0.2334,\"high\":0.237,\"low\":0.23101,\"close\":0.2355,\"volume\":1623158.6642044901,\"close_time\":1508155184120,\"vwap\":0.23258254914318638,\"ema1\":0.22148279566535753,\"rsi_avg_gain\":0.0017923969028862292,\"rsi_avg_loss\":0.0007874677433320875,\"rsi\":69},{\"period_id\":\"120m209464\",\"size\":\"120m\",\"time\":1508140800000,\"open\":0.23496,\"high\":0.235,\"low\":0.224,\"close\":0.23346,\"volume\":2284854.99099831,\"close_time\":1508147985967,\"vwap\":0.23139932184768042,\"ema1\":0.2205160919181408,\"rsi_avg_gain\":0.0017733505108005556,\"rsi_avg_loss\":0.0008480421851268634,\"rsi\":68},{\"period_id\":\"120m209463\",\"size\":\"120m\",\"time\":1508133600000,\"open\":0.22176,\"high\":0.237,\"low\":0.22174,\"close\":0.23498,\"volume\":3742457.9514594693,\"close_time\":1508140777463,\"vwap\":0.22559778364303731,\"ema1\":0.21962340860215052,\"rsi_avg_gain\":0.0019097620885544443,\"rsi_avg_loss\":0.0007963531224443149,\"rsi\":71},{\"period_id\":\"120m209462\",\"size\":\"120m\",\"time\":1508126400000,\"open\":0.22,\"high\":0.225,\"low\":0.21921,\"close\":0.22178,\"volume\":491233.2354765498,\"close_time\":1508133596710,\"vwap\":0.22176359825105568,\"rsi_avg_gain\":0.0010412822492124796,\"rsi_avg_loss\":0.0008576110549400315,\"rsi\":55},{\"period_id\":\"120m209461\",\"size\":\"120m\",\"time\":1508119200000,\"open\":0.22154,\"high\":0.22179,\"low\":0.21931,\"close\":0.22,\"volume\":231878.15689234002,\"close_time\":1508126390334,\"vwap\":0.22175316010546167,\"rsi_avg_gain\":0.0009844578068442084,\"rsi_avg_loss\":0.0009235811360892647,\"rsi\":52},{\"period_id\":\"120m209460\",\"size\":\"120m\",\"time\":1508112000000,\"open\":0.22323,\"high\":0.22323,\"low\":0.2203,\"close\":0.22074,\"volume\":253917.69177766997,\"close_time\":1508119056912,\"vwap\":0.2217603046785566,\"rsi_avg_gain\":0.0010601853304476091,\"rsi_avg_loss\":0.0009377027619422857,\"rsi\":53},{\"period_id\":\"120m209459\",\"size\":\"120m\",\"time\":1508104800000,\"open\":0.2238,\"high\":0.2241,\"low\":0.22,\"close\":0.223,\"volume\":679377.8068433397,\"close_time\":1508111891597,\"vwap\":0.22176118564645014,\"rsi_avg_gain\":0.0011417380481743484,\"rsi_avg_loss\":0.0008359875897839991,\"rsi\":58},{\"period_id\":\"120m209458\",\"size\":\"120m\",\"time\":1508097600000,\"open\":0.2235,\"high\":0.2241,\"low\":0.222,\"close\":0.22341,\"volume\":879567.2457431995,\"close_time\":1508104786549,\"vwap\":0.22176445331587818,\"rsi_avg_gain\":0.0012295640518800676,\"rsi_avg_loss\":0.0008687558659212304,\"rsi\":59},{\"period_id\":\"120m209457\",\"size\":\"120m\",\"time\":1508090400000,\"open\":0.22601,\"high\":0.2285,\"low\":0.2235,\"close\":0.22389,\"volume\":2245693.797248608,\"close_time\":1508097595388,\"vwap\":0.2216932681743624,\"rsi_avg_gain\":0.0013241459020246881,\"rsi_avg_loss\":0.0008986601632997859,\"rsi\":60},{\"period_id\":\"120m209456\",\"size\":\"120m\",\"time\":1508083200000,\"open\":0.22045,\"high\":0.2269,\"low\":0.22011,\"close\":0.226,\"volume\":2726038.296152591,\"close_time\":1508090396748,\"vwap\":0.22042487468594213,\"rsi_avg_gain\":0.0014260032791035102,\"rsi_avg_loss\":0.0008054801758613078,\"rsi\":64},{\"period_id\":\"120m209455\",\"size\":\"120m\",\"time\":1508076000000,\"open\":0.21396,\"high\":0.221,\"low\":0.21354,\"close\":0.22045,\"volume\":1708637.0210549808,\"close_time\":1508083195777,\"vwap\":0.21691781748599892,\"rsi_avg_gain\":0.0011087727621114727,\"rsi_avg_loss\":0.0008674401893891007,\"rsi\":56},{\"period_id\":\"120m209454\",\"size\":\"120m\",\"time\":1508068800000,\"open\":0.21396,\"high\":0.21672,\"low\":0.21275,\"close\":0.21392,\"volume\":435710.61404684,\"close_time\":1508075872850,\"vwap\":0.21564518282418196,\"rsi_avg_gain\":0.000691755282273893,\"rsi_avg_loss\":0.0009341663578036469,\"rsi\":43},{\"period_id\":\"120m209453\",\"size\":\"120m\",\"time\":1508061600000,\"open\":0.214,\"high\":0.2142,\"low\":0.21012,\"close\":0.2142,\"volume\":850332.3362540897,\"close_time\":1508068743727,\"vwap\":0.21569695450698292,\"rsi_avg_gain\":0.0007449672270641925,\"rsi_avg_loss\":0.0009844868468654657,\"rsi\":43},{\"period_id\":\"120m209452\",\"size\":\"120m\",\"time\":1508054400000,\"open\":0.21693,\"high\":0.2188,\"low\":0.214,\"close\":0.214,\"volume\":607334.2370174906,\"close_time\":1508061599703,\"vwap\":0.21641235921183133,\"rsi_avg_gain\":0.0007868877829922069,\"rsi_avg_loss\":0.0010602166043166554,\"rsi\":43},{\"period_id\":\"120m209451\",\"size\":\"120m\",\"time\":1508047200000,\"open\":0.21579,\"high\":0.21797,\"low\":0.21503,\"close\":0.21696,\"volume\":394691.07658418996,\"close_time\":1508054359089,\"vwap\":0.21651449029006495,\"rsi_avg_gain\":0.0008474176124531459,\"rsi_avg_loss\":0.0009140794200333221,\"rsi\":48},{\"period_id\":\"120m209450\",\"size\":\"120m\",\"time\":1508040000000,\"open\":0.21822,\"high\":0.21883,\"low\":0.21504,\"close\":0.2158,\"volume\":171068.74766762997,\"close_time\":1508047123237,\"vwap\":0.21651061994146562,\"rsi_avg_gain\":0.0008233728134110806,\"rsi_avg_loss\":0.0009843932215743468,\"rsi\":46},{\"period_id\":\"120m209449\",\"size\":\"120m\",\"time\":1508032800000,\"open\":0.21515,\"high\":0.21987,\"low\":0.215,\"close\":0.21798,\"volume\":220571.05850644,\"close_time\":1508039650535,\"vwap\":0.21651320304654115,\"rsi_avg_gain\":0.0008867091836734714,\"rsi_avg_loss\":0.000892423469387757,\"rsi\":50},{\"period_id\":\"120m209448\",\"size\":\"120m\",\"time\":1508025600000,\"open\":0.21536,\"high\":0.22149,\"low\":0.21386,\"close\":0.21546,\"volume\":707964.3870707101,\"close_time\":1508032798119,\"vwap\":0.21650390032466355,\"rsi_avg_gain\":0.000761071428571431,\"rsi_avg_loss\":0.0009610714285714307,\"rsi\":44},{\"period_id\":\"120m209447\",\"size\":\"120m\",\"time\":1508018400000,\"open\":0.21973,\"high\":0.2205,\"low\":0.2154,\"close\":0.2154,\"volume\":838005.9117413496,\"close_time\":1508025538461,\"vwap\":0.2164420876813041,\"rsi_avg_gain\":0.0008150000000000022,\"rsi_avg_loss\":0.0010350000000000023,\"rsi\":44},{\"period_id\":\"120m209446\",\"size\":\"120m\",\"time\":1508011200000,\"open\":0.21822,\"high\":0.22,\"low\":0.21704,\"close\":0.21983,\"volume\":575111.9319556504,\"close_time\":1508018298035,\"vwap\":0.21639362339406273},{\"period_id\":\"120m209445\",\"size\":\"120m\",\"time\":1508004000000,\"open\":0.2155,\"high\":0.22,\"low\":0.21526,\"close\":0.21822,\"volume\":489996.45826562005,\"close_time\":1508010985727,\"vwap\":0.2157026313726763},{\"period_id\":\"120m209444\",\"size\":\"120m\",\"time\":1507996800000,\"open\":0.216,\"high\":0.21743,\"low\":0.212,\"close\":0.2155,\"volume\":1021218.8540847708,\"close_time\":1508003893718,\"vwap\":0.21517927310467588},{\"period_id\":\"120m209443\",\"size\":\"120m\",\"time\":1507989600000,\"open\":0.21681,\"high\":0.21797,\"low\":0.215,\"close\":0.21592,\"volume\":713933.1875201706,\"close_time\":1507996716287,\"vwap\":0.21576159824119892},{\"period_id\":\"120m209442\",\"size\":\"120m\",\"time\":1507982400000,\"open\":0.21846,\"high\":0.21995,\"low\":0.2161,\"close\":0.217,\"volume\":510351.39443468006,\"close_time\":1507989592659},{\"period_id\":\"120m209441\",\"size\":\"120m\",\"time\":1507975200000,\"open\":0.2218,\"high\":0.2228,\"low\":0.2158,\"close\":0.21846,\"volume\":713020.0319770401,\"close_time\":1507982378829},{\"period_id\":\"120m209440\",\"size\":\"120m\",\"time\":1507968000000,\"open\":0.2176,\"high\":0.22378,\"low\":0.21651,\"close\":0.22192,\"volume\":1198865.3822558406,\"close_time\":1507975185432},{\"period_id\":\"120m209439\",\"size\":\"120m\",\"time\":1507960800000,\"open\":0.218,\"high\":0.21895,\"low\":0.215,\"close\":0.2175,\"volume\":647635.7473931103,\"close_time\":1507967986898},{\"period_id\":\"120m209438\",\"size\":\"120m\",\"time\":1507953600000,\"open\":0.21942,\"high\":0.22366,\"low\":0.21801,\"close\":0.21801,\"volume\":153208.56479699002,\"close_time\":1507960794466},{\"period_id\":\"120m209437\",\"size\":\"120m\",\"time\":1507946400000,\"open\":0.22138,\"high\":0.2238,\"low\":0.21948,\"close\":0.2205,\"volume\":371646.62039033975,\"close_time\":1507953503013},{\"period_id\":\"120m209436\",\"size\":\"120m\",\"time\":1507939200000,\"open\":0.2183,\"high\":0.22139,\"low\":0.21761,\"close\":0.22123,\"volume\":335889.88883946976,\"close_time\":1507946329960},{\"period_id\":\"120m209435\",\"size\":\"120m\",\"time\":1507932000000,\"open\":0.21462,\"high\":0.219,\"low\":0.2146,\"close\":0.21761,\"volume\":342086.37947635003,\"close_time\":1507939166270},{\"period_id\":\"120m209434\",\"size\":\"120m\",\"time\":1507924800000,\"open\":0.217,\"high\":0.21762,\"low\":0.211,\"close\":0.21549,\"volume\":806460.19144003,\"close_time\":1507931994857}];\nvar trades = [{\"time\":1508744057470,\"execution_time\":20513271,\"slippage\":0.0004500000000000549,\"type\":\"buy\",\"size\":\"4100.59171598\",\"fee\":6.679518072288,\"price\":\"0.16907605\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1508752332962,\"execution_time\":6751287,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4126.33908434\",\"fee\":1.102061652324147,\"price\":\"0.16692485\",\"order_type\":\"maker\"},{\"time\":1508862823754,\"execution_time\":9227389,\"slippage\":0.0004499999999999381,\"type\":\"buy\",\"size\":\"3750.14688851\",\"fee\":6.033755887663999,\"price\":\"0.18008100\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509567002437,\"execution_time\":159495489,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3768.67642800\",\"fee\":1.0607817154478438,\"price\":\"0.17592080\",\"order_type\":\"maker\"},{\"time\":1509671719179,\"execution_time\":4548785,\"slippage\":0.00045000000000006276,\"type\":\"buy\",\"size\":\"3848.08763848\",\"fee\":5.753206436544,\"price\":\"0.17107695\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509877509431,\"execution_time\":44728427,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3591.78757252\",\"fee\":1.0052479550714624,\"price\":\"0.17492125\",\"order_type\":\"maker\"},{\"time\":1509971478859,\"execution_time\":1888360,\"slippage\":0.0004500000000000853,\"type\":\"buy\",\"size\":\"3785.45671205\",\"fee\":6.022704162080001,\"price\":\"0.17707965\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510307860202,\"execution_time\":7149662,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3756.50359889\",\"fee\":1.1174324000677007,\"price\":\"0.18591630\",\"order_type\":\"maker\"},{\"time\":1510627469334,\"execution_time\":2685088,\"slippage\":0.00044999999999991087,\"type\":\"buy\",\"size\":\"4025.48865794\",\"fee\":6.403977384976,\"price\":\"0.17407830\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511623783181,\"execution_time\":5389376,\"slippage\":0.0004500000000000276,\"type\":\"buy\",\"size\":\"52.49532303\",\"fee\":0.08236947304,\"price\":\"0.20309135\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511985716807,\"execution_time\":117843,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4044.57067101\",\"fee\":1.2936801965465745,\"price\":\"0.19991000\",\"order_type\":\"maker\"},{\"time\":1512145199428,\"execution_time\":1213697,\"slippage\":0.0004500000000000411,\"type\":\"buy\",\"size\":\"3862.26885230\",\"fee\":6.120494946799999,\"price\":\"0.20709315\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512502194808,\"execution_time\":5404923,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3821.44266504\",\"fee\":1.25286914919576,\"price\":\"0.20490775\",\"order_type\":\"maker\"},{\"time\":1512699360458,\"execution_time\":995610,\"slippage\":0.0004500000000000276,\"type\":\"buy\",\"size\":\"3887.62901644\",\"fee\":6.3452357012,\"price\":\"0.20309135\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512851444171,\"execution_time\":1864903,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3958.04723342\",\"fee\":1.259675130113323,\"price\":\"0.19891045\",\"order_type\":\"maker\"},{\"time\":1512869814441,\"execution_time\":5823423,\"slippage\":0.00045000000000000985,\"type\":\"buy\",\"size\":\"3888.91760785\",\"fee\":6.317995375216,\"price\":\"0.19808910\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512881477014,\"execution_time\":3087977,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3942.58529533\",\"fee\":1.2106171797341496,\"price\":\"0.19191360\",\"order_type\":\"maker\"},{\"time\":1513010709320,\"execution_time\":9923255,\"slippage\":0.0004500000000000206,\"type\":\"buy\",\"size\":\"3698.97926300\",\"fee\":5.860057788080001,\"price\":\"0.20109045\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"price\":0.3935,\"size\":\"3696.50015365\",\"type\":\"sell\",\"time\":1513173600000}];\n\nwithData(data, trades)\n  </script>\n  <pre><code>{\n  \"asset_capital\": 0,\n  \"avg_slippage_pct\": 0.045,\n  \"buy_pct\": 99,\n  \"buy_stop_pct\": 0,\n  \"currency_capital\": 700,\n  \"days\": 60,\n  \"emalen1\": 30,\n  \"filename\": \"simulations/vwapmax10000.html\",\n  \"markdown_buy_pct\": 0.5,\n  \"markup_sell_pct\": 0.5,\n  \"max_sell_loss_pct\": 25,\n  \"max_slippage_pct\": \"100\",\n  \"min_periods\": 1,\n  \"mode\": \"sim\",\n  \"order_adjust_time\": 5000,\n  \"order_type\": \"maker\",\n  \"period\": \"120m\",\n  \"profit_stop_enable_pct\": 0,\n  \"profit_stop_pct\": 1,\n  \"rsi_periods\": 14,\n  \"selector\": \"kraken.XXRP-ZEUR\",\n  \"sell_pct\": 99,\n  \"sell_stop_pct\": 0,\n  \"show_options\": true,\n  \"smalen1\": 108,\n  \"smalen2\": 60,\n  \"start\": 1507939200000,\n  \"stats\": false,\n  \"strategy\": \"crossover_vwap\",\n  \"verbose\": false,\n  \"vwap_length\": 10,\n  \"vwap_max\": 10000\n}\nend balance: 1469.07665511 (109.87%)\nbuy hold: 1261.79569400 (80.26%)\nvs. buy hold: 16.43%\n19 trades over 62 days (avg 0.31 trades/day)\nwin/loss: 3/6\nerror rate: 66.67%</pre></code>\n</body>\n</html>"
  },
  {
    "path": "extensions/strategies/crossover_vwap/example_sims/vwapmax20000.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>kraken.XXRP-ZEUR - zenbot 4.0.5 sim result</title>\n  <link href=\"main.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n  <div class=\"ticker-graph\"></div>\n  <script src=\"https://code.jquery.com/jquery-3.0.0.slim.min.js\"></script>\n  <script src=\"https://d3js.org/d3.v4.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/techan.js/0.8.0/techan.min.js\"></script>\n  <script>\n    var withData = function (data, trades) {\n      var dim = {\n          width: 1280, height: 520,\n          margin: { top: 20, right: 50, bottom: 20, left: 50 },\n          ohlc: { height: 450 }\n      };\n      dim.plot = {\n          width: dim.width - dim.margin.left - dim.margin.right,\n          height: dim.height - dim.margin.top - dim.margin.bottom\n      };\n\n      var yInit, yPercentInit, zoomableInit;\n\n      var x = techan.scale.financetime()\n              .range([0, dim.plot.width]);\n\n      var y = d3.scaleLinear()\n              .range([dim.ohlc.height, 0]);\n\n      var zoom = d3.zoom()\n              .on(\"zoom\", zoomed);\n\n      var yPercent = y.copy();   // Same as y at this stage, will get a different domain later\n\n      var yVolume = d3.scaleLinear()\n              .range([y(0), y(1)]);\n\n      var candlestick = techan.plot.candlestick()\n              .xScale(x)\n              .yScale(y);\n\n      var tradearrow = techan.plot.tradearrow()\n              .xScale(x)\n              .yScale(y)\n              .y(function(d) {\n                  // Display the buy and sell arrows a bit above and below the price, so the price is still visible\n                  if(d.type === 'buy') return y(d.price);\n                  if(d.type === 'sell') return y(d.price);\n                  else \n                    return y(d.price);\n              });\n\n      var ema2 = techan.plot.ema()\n        .xScale(x)\n        .yScale(y);\n\n      var sma0 = techan.plot.sma()\n              .xScale(x)\n              .yScale(y);\n    \n      var sma1 = techan.plot.sma()\n              .xScale(x)\n              .yScale(y);\n    \n      var adx1 = techan.plot.adx()\n              .xScale(x)\n              .yScale(y);\n  \n      var volume = techan.plot.volume()\n              .accessor(candlestick.accessor())   // Set the accessor to a ohlc accessor so we get highlighted bars\n              .xScale(x)\n              .yScale(yVolume);\n\n      var xAxis = d3.axisBottom(x);\n\n      var timeAnnotation = techan.plot.axisannotation()\n              .axis(xAxis)\n              .orient('bottom')\n              .format(d3.timeFormat('%c'))\n              .width(140)\n              .translate([0, dim.plot.height]);\n\n      var yAxis = d3.axisRight(y);\n\n      var ohlcAnnotation = techan.plot.axisannotation()\n              .axis(yAxis)\n              .orient('right')\n              .format(d3.format(',.8f'))\n              .translate([x(1), 0]);\n\n      var percentAxis = d3.axisLeft(yPercent)\n              .tickFormat(d3.format('+.1%'));\n\n      var percentAnnotation = techan.plot.axisannotation()\n              .axis(percentAxis)\n              .orient('left');\n\n      var volumeAxis = d3.axisRight(yVolume)\n              .ticks(3)\n              .tickFormat(d3.format(\",.3s\"));\n\n      var volumeAnnotation = techan.plot.axisannotation()\n              .axis(volumeAxis)\n              .orient(\"right\")\n              .width(35);\n\n      var ohlcCrosshair = techan.plot.crosshair()\n              .xScale(timeAnnotation.axis().scale())\n              .yScale(ohlcAnnotation.axis().scale())\n              .xAnnotation(timeAnnotation)\n              .yAnnotation([ohlcAnnotation, percentAnnotation, volumeAnnotation])\n              .verticalWireRange([0, dim.plot.height]);\n\n      var svg = d3.select(\"body\").append(\"svg\")\n              .attr(\"viewBox\", \"0 0 \" + dim.width + \" \" + dim.height)\n              .attr(\"width\", dim.width)\n              .attr(\"height\", dim.height);\n\n      var defs = svg.append(\"defs\");\n\n      defs.append(\"clipPath\")\n              .attr(\"id\", \"ohlcClip\")\n          .append(\"rect\")\n              .attr(\"x\", 0)\n              .attr(\"y\", 0)\n              .attr(\"width\", dim.plot.width)\n              .attr(\"height\", dim.ohlc.height);\n\n      svg = svg.append(\"g\")\n              .attr(\"transform\", \"translate(\" + dim.margin.left + \",\" + dim.margin.top + \")\");\n\n      svg.append('text')\n              .attr(\"class\", \"symbol\")\n              .attr(\"x\", 50)\n              .text(\"kraken.XXRP-ZEUR - zenbot 4.0.5\");\n\n      svg.append(\"g\")\n              .attr(\"class\", \"x axis\")\n              .attr(\"transform\", \"translate(0,\" + (dim.plot.height - 30) + \")\");\n\n      var ohlcSelection = svg.append(\"g\")\n              .attr(\"class\", \"ohlc\")\n              .attr(\"transform\", \"translate(0,0)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"axis\")\n              .attr(\"transform\", \"translate(\" + x(1) + \",0)\")\n          .append(\"text\")\n              .attr(\"transform\", \"rotate(-90)\")\n              .attr(\"y\", -12)\n              .attr(\"dy\", \".71em\")\n              .style(\"text-anchor\", \"end\")\n              .text(\"Price\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"close annotation up\")\n              .attr(\"font-weight\", \"900\")\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"volume\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"candlestick\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator ema ma-2\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator sma sma-0\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator sma sma-1\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator adx adx-1\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line1\")\n                .attr(\"class\", \"indicator ema ma-2\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line2\")\n                .attr(\"class\", \"indicator sma sma-0\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line3\")\n                .attr(\"class\", \"indicator sma sma-1\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n            \n      svg.append(\"g\")\n                .attr(\"id\", \"data_line4\")\n                .attr(\"class\", \"indicator indicator4\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"percent axis\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"volume axis\");\n\n      // Add trendlines and other interactions last to be above zoom pane\n      svg.append('g')\n              .attr(\"class\", \"crosshair ohlc\");\n\n      svg.append(\"g\")\n              .attr(\"class\", \"tradearrow\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      var accessor = candlestick.accessor();\n\n      data = data.map(function (d) {\n        d.date = new Date(d.time)\n        return d\n      })\n      data.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n      trades = trades.map(function (t) {\n        t.date = new Date(t.time)\n        return t\n      })\n      trades.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n\n      //$('body').css('backgroundColor', '#1f2d35')\n      x.domain(techan.scale.plot.time(data).domain());\n      y.domain(techan.scale.plot.ohlc(data).domain());\n      yPercent.domain(techan.scale.plot.percent(y, accessor(data[0])).domain());\n      yVolume.domain(techan.scale.plot.volume(data).domain());\n\n      svg.select(\"g.candlestick\").datum(data)\n      var last = data[data.length-1]\n      if (!last) {\n        return\n      }\n  \n      var parseQueryString = function(url) {\n        var urlParams = {};\n        url.replace(\n          new RegExp(\"([^?=&]+)(=([^&]*))?\", \"g\"),\n          function($0, $1, $2, $3) {\n            urlParams[$1] = $3;\n          }\n        );\n\n        return urlParams;\n      }\n  \n      var urlToParse = location.search;  \n      var qParams = parseQueryString(urlToParse ); \n  \n      var tperiod = qParams.period;\n  \n      svg.select(\"g.volume\").datum(data)\n  \n      // svg.select(\"g.ema.ma-2\").datum(techan.indicator.ema().period(tperiod*2)(data)).call(ema2);\n      // svg.select(\"g.sma.sma-0\").datum(techan.indicator.sma().period(tperiod*2)(data)).call(sma0);\n      // svg.select(\"g.sma.sma-1\").datum(techan.indicator.sma().period(tperiod)(data)).call(sma1);\n  \n      // svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1);\n      // svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2);\n      // svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3);\n      //\n  \n        \n      var plotLine1 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.ema1); });\n\n      var plotLine2 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.sma1); });\n\n      var plotLine3 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.sma2); });\n          \n      var plotLine4 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2) && !isNaN(d.vwap); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.vwap); });\n        \n        \n      svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1);\n      svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2);\n      svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3);\n      svg.select(\"g#data_line4 path\").datum(data).attr(\"d\", plotLine4);\n      //svg.select(\"g.adx.adx-1\").datum(techan.indicator.adx().period(tperiod)(data)).call(adx1);\n  \n      svg.select(\"g.tradearrow\").datum(trades).call(tradearrow);\n  \n      // Stash for zooming\n      zoomableInit = x.zoomable().domain([0, data.length]).copy(); // Zoom in a little to hide indicator preroll\n      yInit = y.copy();\n      yPercentInit = yPercent.copy();\n\n      draw();\n\n      function draw() {\n        svg.select(\"g.x.axis\").call(xAxis);\n        svg.select(\"g.ohlc .axis\").call(yAxis);\n        svg.select(\"g.volume.axis\").call(volumeAxis);\n        svg.select(\"g.percent.axis\").call(percentAxis);\n        svg.select(\"g.candlestick\").call(candlestick);\n        svg.select(\"g.volume\").call(volume);\n        svg.select(\"g.crosshair.ohlc\").call(ohlcCrosshair).call(zoom);\n        svg.select(\"g.tradearrow\").call(tradearrow);\n        // svg.select(\"g .ema.ma-2\").call(ema2.refresh).call(zoom);\n        // svg.select(\"g .sma.sma-0\").call(sma0.refresh).call(zoom);\n        // svg.select(\"g .sma.sma-1\").call(sma1.refresh).call(zoom);\n        // svg.select(\"g .adx.adx-1\").call(adx1.refresh).call(zoom);\n    \n        svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1).call(zoom);\n        svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2).call(zoom);\n        svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3).call(zoom);\n        svg.select(\"g#data_line4 path\").datum(data).attr(\"d\", plotLine4).call(zoom);\n      }\n\n\n      function zoomed() {\n        x.zoomable().domain(d3.event.transform.rescaleX(zoomableInit).domain());\n        y.domain(d3.event.transform.rescaleY(yInit).domain());\n        yPercent.domain(d3.event.transform.rescaleY(yPercentInit).domain());\n\n        draw();\n      }\n  \n      if(!qParams.static)\n        setTimeout(function(){ window.location.reload(1); }, 10000);\n    }\n  </script>\n  <script>\nvar data = [{\"period_id\":\"120m210163\",\"size\":\"120m\",\"time\":1513173600000,\"open\":0.3875,\"high\":0.399,\"low\":0.3812,\"close\":0.3935,\"volume\":1394606.5288537226,\"close_time\":1513174686001,\"vwap\":0.3886923558602496,\"ema1\":0.27287274681999496,\"sma1\":0.2141562685185185,\"sma2\":0.22013291666666668},{\"period_id\":\"120m210162\",\"size\":\"120m\",\"time\":1513166400000,\"open\":0.38999,\"high\":0.395,\"low\":0.371,\"close\":0.3875,\"volume\":2764537.296713162,\"close_time\":1513173592543,\"vwap\":0.38864834946560356,\"ema1\":0.2645536259110291,\"sma1\":0.21242386111111108,\"sma2\":0.21690791666666667,\"rsi_avg_gain\":0.009856092175262298,\"rsi_avg_loss\":0.000811144798512558,\"rsi\":92},{\"period_id\":\"120m210161\",\"size\":\"120m\",\"time\":1513159200000,\"open\":0.37499,\"high\":0.39,\"low\":0.35,\"close\":0.38331,\"volume\":4774045.706226606,\"close_time\":1513166399125,\"vwap\":0.38897044234905287,\"ema1\":0.2560745656290311,\"sma1\":0.21074265740740744,\"sma2\":0.21373625000000002,\"rsi_avg_gain\":0.010291945419513242,\"rsi_avg_loss\":0.0008735405522442933,\"rsi\":92},{\"period_id\":\"120m210160\",\"size\":\"120m\",\"time\":1513152000000,\"open\":0.365,\"high\":0.43,\"low\":0.362,\"close\":0.37037,\"volume\":10615001.811561493,\"close_time\":1513159196158,\"vwap\":0.39212037992905896,\"ema1\":0.24729970808620566,\"sma1\":0.20869450925925928,\"sma2\":0.21075141666666672,\"rsi_avg_gain\":0.010088248913321952,\"rsi_avg_loss\":0.0009407359793400081,\"rsi\":91},{\"period_id\":\"120m210159\",\"size\":\"120m\",\"time\":1513144800000,\"open\":0.31155,\"high\":0.3799,\"low\":0.30039,\"close\":0.36201,\"volume\":7383654.496617741,\"close_time\":1513151997966,\"vwap\":0.3642340167209734,\"ema1\":0.23881210174732329,\"sma1\":0.20709302777777777,\"sma2\":0.2079064166666667,\"rsi_avg_gain\":0.010221191137423641,\"rsi_avg_loss\":0.0010131002854430857,\"rsi\":91},{\"period_id\":\"120m210158\",\"size\":\"120m\",\"time\":1513137600000,\"open\":0.28467,\"high\":0.319,\"low\":0.28201,\"close\":0.3084,\"volume\":1939410.0138247905,\"close_time\":1513144797985,\"vwap\":0.2768517330025233,\"ema1\":0.2303156949712766,\"sma1\":0.2060463611111111,\"sma2\":0.2061830833333334,\"rsi_avg_gain\":0.006883590455686998,\"rsi_avg_loss\":0.0010910310766310155,\"rsi\":86},{\"period_id\":\"120m210157\",\"size\":\"120m\",\"time\":1513130400000,\"open\":0.2981,\"high\":0.3,\"low\":0.27671,\"close\":0.28923,\"volume\":1470804.7478552302,\"close_time\":1513137551841,\"vwap\":0.276404530335733,\"ema1\":0.22493057048653706,\"sma1\":0.20516673148148146,\"sma2\":0.20477208333333338,\"rsi_avg_gain\":0.005938482029201381,\"rsi_avg_loss\":0.0011749565440641705,\"rsi\":83},{\"period_id\":\"120m210156\",\"size\":\"120m\",\"time\":1513123200000,\"open\":0.27601,\"high\":0.29897,\"low\":0.27,\"close\":0.298,\"volume\":3115674.8552143956,\"close_time\":1513130393652,\"vwap\":0.27633845210206,\"ema1\":0.22049612707181548,\"sma1\":0.20430552777777777,\"sma2\":0.20283875000000007,\"rsi_avg_gain\":0.006395288339139949,\"rsi_avg_loss\":0.0005907224320691066,\"rsi\":92},{\"period_id\":\"120m210155\",\"size\":\"120m\",\"time\":1513116000000,\"open\":0.272,\"high\":0.32956,\"low\":0.272,\"close\":0.27601,\"volume\":15006128.73051956,\"close_time\":1513123194998,\"vwap\":0.2759069674369494,\"ema1\":0.2151510323871131,\"sma1\":0.2032051574074074,\"sma2\":0.20133858333333338,\"rsi_avg_gain\":0.005195695134458405,\"rsi_avg_loss\":0.0006361626191513457,\"rsi\":89},{\"period_id\":\"120m210154\",\"size\":\"120m\",\"time\":1513108800000,\"open\":0.22885,\"high\":0.271965,\"low\":0.2287,\"close\":0.271965,\"volume\":13060193.335544836,\"close_time\":1513115999358,\"vwap\":0.2517954914016601,\"ema1\":0.210953862206914,\"sma1\":0.20263140740740743,\"sma2\":0.19982250000000004,\"rsi_avg_gain\":0.005284210144801362,\"rsi_avg_loss\":0.0006850982052399108,\"rsi\":89},{\"period_id\":\"120m210153\",\"size\":\"120m\",\"time\":1513101600000,\"open\":0.226,\"high\":0.22885,\"low\":0.222,\"close\":0.22885,\"volume\":2796097.9907069877,\"close_time\":1513108799425,\"vwap\":0.22498272512033707,\"ema1\":0.20674619753152876,\"sma1\":0.20245687037037038,\"sma2\":0.19904166666666667,\"rsi_avg_gain\":0.0023741493867091576,\"rsi_avg_loss\":0.0007377980671814424,\"rsi\":76},{\"period_id\":\"120m210152\",\"size\":\"120m\",\"time\":1513094400000,\"open\":0.21948,\"high\":0.228,\"low\":0.2161,\"close\":0.22503,\"volume\":6439607.943355674,\"close_time\":1513101587721,\"vwap\":0.22409924599030073,\"ema1\":0.20522179736128937,\"sma1\":0.2023068703703704,\"sma2\":0.19840783333333334,\"rsi_avg_gain\":0.002262930108763709,\"rsi_avg_loss\":0.0007945517646569379,\"rsi\":74},{\"period_id\":\"120m210151\",\"size\":\"120m\",\"time\":1513087200000,\"open\":0.2171,\"high\":0.2199,\"low\":0.21,\"close\":0.21989,\"volume\":2382252.81933436,\"close_time\":1513094394487,\"vwap\":0.20683992963667777,\"ema1\":0.20385571442068864,\"sma1\":0.20224298148148154,\"sma2\":0.19788466666666665,\"rsi_avg_gain\":0.002041617040207071,\"rsi_avg_loss\":0.0008556711311690101,\"rsi\":70},{\"period_id\":\"120m210150\",\"size\":\"120m\",\"time\":1513080000000,\"open\":0.2199,\"high\":0.22,\"low\":0.21203,\"close\":0.2171,\"volume\":2916612.944391042,\"close_time\":1513087188989,\"vwap\":0.20600212451972344,\"ema1\":0.20274990162211545,\"sma1\":0.20214483333333336,\"sma2\":0.19739133333333334,\"rsi_avg_gain\":0.0019840491202229985,\"rsi_avg_loss\":0.0009214919874127801,\"rsi\":68},{\"period_id\":\"120m210149\",\"size\":\"120m\",\"time\":1513072800000,\"open\":0.21318,\"high\":0.2199,\"low\":0.21048,\"close\":0.2199,\"volume\":2803692.7908667373,\"close_time\":1513079996977,\"vwap\":0.2042621646914528,\"ema1\":0.20176023966501996,\"sma1\":0.20203464814814817,\"sma2\":0.19681183333333332,\"rsi_avg_gain\":0.0021366682833170755,\"rsi_avg_loss\":0.0007769913710599151,\"rsi\":73},{\"period_id\":\"120m210148\",\"size\":\"120m\",\"time\":1513065600000,\"open\":0.20682,\"high\":0.2147,\"low\":0.20681,\"close\":0.2139,\"volume\":2409213.2365118363,\"close_time\":1513072781584,\"vwap\":0.20237691422469087,\"ema1\":0.2005092217108834,\"sma1\":0.20197261111111112,\"sma2\":0.19634699999999997,\"rsi_avg_gain\":0.0018394889204953115,\"rsi_avg_loss\":0.000836759938064524,\"rsi\":69},{\"period_id\":\"120m210147\",\"size\":\"120m\",\"time\":1513058400000,\"open\":0.209,\"high\":0.2099,\"low\":0.205,\"close\":0.20682,\"volume\":761639.33327307,\"close_time\":1513065594627,\"vwap\":0.20098852303218623,\"ema1\":0.19958571975990982,\"sma1\":0.201949,\"sma2\":0.1961045,\"rsi_avg_gain\":0.0014363726836103352,\"rsi_avg_loss\":0.0009011260871464106,\"rsi\":61},{\"period_id\":\"120m210146\",\"size\":\"120m\",\"time\":1513051200000,\"open\":0.2013,\"high\":0.21124,\"low\":0.19611,\"close\":0.20898,\"volume\":2402623.3937815027,\"close_time\":1513058363795,\"vwap\":0.20078070530150055,\"ema1\":0.19908680388128291,\"sma1\":0.20189224074074075,\"sma2\":0.19572866666666663,\"rsi_avg_gain\":0.0015468628900418995,\"rsi_avg_loss\":0.0008042896323115195,\"rsi\":66},{\"period_id\":\"120m210145\",\"size\":\"120m\",\"time\":1513044000000,\"open\":0.20056,\"high\":0.2015,\"low\":0.19804,\"close\":0.20129,\"volume\":182878.24229903996,\"close_time\":1513051003700,\"vwap\":0.19907431693730931,\"ema1\":0.19840451449378518,\"sma1\":0.20193853703703699,\"sma2\":0.19548216666666668,\"rsi_avg_gain\":0.001074313881583584,\"rsi_avg_loss\":0.0008661580655662517,\"rsi\":55},{\"period_id\":\"120m210144\",\"size\":\"120m\",\"time\":1513036800000,\"open\":0.2018,\"high\":0.203,\"low\":0.1961,\"close\":0.19999,\"volume\":1030371.8747069496,\"close_time\":1513043937932,\"vwap\":0.1990747023548593,\"ema1\":0.19820551549335658,\"sma1\":0.2019912222222222,\"sma2\":0.19529933333333332,\"rsi_avg_gain\":0.0010569534109361677,\"rsi_avg_loss\":0.0009327856090713479,\"rsi\":53},{\"period_id\":\"120m210143\",\"size\":\"120m\",\"time\":1513029600000,\"open\":0.20101,\"high\":0.202,\"low\":0.2,\"close\":0.2018,\"volume\":1521322.558584841,\"close_time\":1513036796088,\"vwap\":0.19904093492352132,\"ema1\":0.1980824475963467,\"sma1\":0.20204677777777771,\"sma2\":0.19518599999999997,\"rsi_avg_gain\":0.0011382575194697191,\"rsi_avg_loss\":0.0008653075789999126,\"rsi\":57},{\"period_id\":\"120m210142\",\"size\":\"120m\",\"time\":1513022400000,\"open\":0.202,\"high\":0.202,\"low\":0.2,\"close\":0.20119,\"volume\":978930.4729250503,\"close_time\":1513029582354,\"vwap\":0.19886804964171073,\"ema1\":0.1978260646719568,\"sma1\":0.20209788888888885,\"sma2\":0.19512699999999997,\"rsi_avg_gain\":0.0011788927132750822,\"rsi_avg_loss\":0.0009318697004614445,\"rsi\":56},{\"period_id\":\"120m210141\",\"size\":\"120m\",\"time\":1513015200000,\"open\":0.203,\"high\":0.20773,\"low\":0.20001,\"close\":0.202,\"volume\":1492537.8041972315,\"close_time\":1513022380076,\"vwap\":0.19877417595794056,\"ema1\":0.19759406913209174,\"sma1\":0.20210038888888884,\"sma2\":0.1950686666666666,\"rsi_avg_gain\":0.0012695767681423962,\"rsi_avg_loss\":0.0009412442928046321,\"rsi\":57},{\"period_id\":\"120m210140\",\"size\":\"120m\",\"time\":1513008000000,\"open\":0.20474,\"high\":0.206,\"low\":0.2021,\"close\":0.204,\"volume\":1342877.567555539,\"close_time\":1513015199565,\"vwap\":0.19831370385257527,\"ema1\":0.19729021183085668,\"sma1\":0.20212631481481477,\"sma2\":0.19500033333333328,\"rsi_avg_gain\":0.001367236519537965,\"rsi_avg_loss\":0.0008598015460972981,\"rsi\":61},{\"period_id\":\"120m210139\",\"size\":\"120m\",\"time\":1513000800000,\"open\":0.20238,\"high\":0.2049,\"low\":0.20083,\"close\":0.20486,\"volume\":1091793.7951348608,\"close_time\":1513007991071,\"vwap\":0.19772346753394615,\"ema1\":0.19682746781919164,\"sma1\":0.20216798148148143,\"sma2\":0.1948854999999999,\"rsi_avg_gain\":0.0014724085595024237,\"rsi_avg_loss\":0.0008597862804124749,\"rsi\":63},{\"period_id\":\"120m210138\",\"size\":\"120m\",\"time\":1512993600000,\"open\":0.20099,\"high\":0.205,\"low\":0.2003984,\"close\":0.20214,\"volume\":2245705.2988893474,\"close_time\":1513000786065,\"vwap\":0.1972130411162551,\"ema1\":0.19627350008258415,\"sma1\":0.20222353703703697,\"sma2\":0.1948279999999999,\"rsi_avg_gain\":0.0013764399871564563,\"rsi_avg_loss\":0.0009259236865980498,\"rsi\":60},{\"period_id\":\"120m210137\",\"size\":\"120m\",\"time\":1512986400000,\"open\":0.20054,\"high\":0.2025,\"low\":0.1996,\"close\":0.201,\"volume\":1180345.4121488596,\"close_time\":1512993538146,\"vwap\":0.19546175082532705,\"ema1\":0.19586891388138306,\"sma1\":0.20230224074074066,\"sma2\":0.1947621666666666,\"rsi_avg_gain\":0.0013946276784761857,\"rsi_avg_loss\":0.0009971485855671306,\"rsi\":58},{\"period_id\":\"120m210136\",\"size\":\"120m\",\"time\":1512979200000,\"open\":0.19841,\"high\":0.202,\"low\":0.19696,\"close\":0.2012,\"volume\":1455140.9476323111,\"close_time\":1512986398978,\"vwap\":0.19489985499213217,\"ema1\":0.19551504587320256,\"sma1\":0.20237622222222212,\"sma2\":0.1947051666666666,\"rsi_avg_gain\":0.0015019067306666614,\"rsi_avg_loss\":0.0010584677075338347,\"rsi\":59},{\"period_id\":\"120m210135\",\"size\":\"120m\",\"time\":1512972000000,\"open\":0.1955,\"high\":0.199,\"low\":0.19447,\"close\":0.19841,\"volume\":600052.8410154001,\"close_time\":1512978995397,\"vwap\":0.19391514767312312,\"ema1\":0.19512298007135448,\"sma1\":0.20247418518518506,\"sma2\":0.1947016666666666,\"rsi_avg_gain\":0.0014028226330256362,\"rsi_avg_loss\":0.0011398883004210528,\"rsi\":55},{\"period_id\":\"120m210134\",\"size\":\"120m\",\"time\":1512964800000,\"open\":0.19194,\"high\":0.19676,\"low\":0.19102,\"close\":0.19601,\"volume\":539611.00519656,\"close_time\":1512971904794,\"vwap\":0.19382588532518905,\"ema1\":0.1948962890417927,\"sma1\":0.2025927037037036,\"sma2\":0.1948064999999999,\"rsi_avg_gain\":0.001326116681719915,\"rsi_avg_loss\":0.0012275720158380567,\"rsi\":52},{\"period_id\":\"120m210133\",\"size\":\"120m\",\"time\":1512957600000,\"open\":0.1897,\"high\":0.19214,\"low\":0.1895,\"close\":0.19205,\"volume\":441306.56720423984,\"close_time\":1512964362686,\"vwap\":0.19379913941384283,\"ema1\":0.19481948138950256,\"sma1\":0.20278214814814804,\"sma2\":0.19496699999999995,\"rsi_avg_gain\":0.0011235102726214474,\"rsi_avg_loss\":0.0013220006324409842,\"rsi\":46},{\"period_id\":\"120m210132\",\"size\":\"120m\",\"time\":1512950400000,\"open\":0.18952,\"high\":0.19378,\"low\":0.18952,\"close\":0.18971,\"volume\":431192.4742363398,\"close_time\":1512957565944,\"vwap\":0.19383715051965592,\"ema1\":0.19501048010601998,\"sma1\":0.2029786296296295,\"sma2\":0.19519916666666662,\"rsi_avg_gain\":0.0010299341397461733,\"rsi_avg_loss\":0.0014236929887825984,\"rsi\":42},{\"period_id\":\"120m210131\",\"size\":\"120m\",\"time\":1512943200000,\"open\":0.19185,\"high\":0.19429,\"low\":0.18951,\"close\":0.18952,\"volume\":784356.8331573796,\"close_time\":1512950356364,\"vwap\":0.19391874721378582,\"ema1\":0.1953760304581593,\"sma1\":0.20314594444444437,\"sma2\":0.1954546666666666,\"rsi_avg_gain\":0.001094544458188187,\"rsi_avg_loss\":0.0015332078340735676,\"rsi\":42},{\"period_id\":\"120m210130\",\"size\":\"120m\",\"time\":1512936000000,\"open\":0.1948,\"high\":0.1949,\"low\":0.19,\"close\":0.19004,\"volume\":1233056.1801976203,\"close_time\":1512943196487,\"vwap\":0.19422113845283692,\"ema1\":0.19577989462768752,\"sma1\":0.20328575925925915,\"sma2\":0.19568766666666662,\"rsi_avg_gain\":0.0011787401857411247,\"rsi_avg_loss\":0.0016111468982330734,\"rsi\":42},{\"period_id\":\"120m210129\",\"size\":\"120m\",\"time\":1512928800000,\"open\":0.1935,\"high\":0.19676,\"low\":0.19301,\"close\":0.19439,\"volume\":387426.0634739798,\"close_time\":1512935995196,\"vwap\":0.19478127047180713,\"ema1\":0.196175749429597,\"sma1\":0.20342687037037027,\"sma2\":0.19583466666666666,\"rsi_avg_gain\":0.0012694125077212111,\"rsi_avg_loss\":0.0014004658904048465,\"rsi\":48},{\"period_id\":\"120m210128\",\"size\":\"120m\",\"time\":1512921600000,\"open\":0.1925,\"high\":0.19867,\"low\":0.192,\"close\":0.1935,\"volume\":746355.7882153098,\"close_time\":1512928784644,\"vwap\":0.19479958083175622,\"ema1\":0.19629890456267265,\"sma1\":0.2035315925925925,\"sma2\":0.19602466666666665,\"rsi_avg_gain\":0.001298598085238227,\"rsi_avg_loss\":0.0015081940358206037,\"rsi\":46},{\"period_id\":\"120m210127\",\"size\":\"120m\",\"time\":1512914400000,\"open\":0.19889,\"high\":0.2,\"low\":0.192,\"close\":0.1925,\"volume\":1304227.7168578205,\"close_time\":1512921590443,\"vwap\":0.19500743162454406,\"ema1\":0.19649193246354663,\"sma1\":0.20368807407407397,\"sma2\":0.19624249999999996,\"rsi_avg_gain\":0.0013215671687180906,\"rsi_avg_loss\":0.0016242089616529576,\"rsi\":45},{\"period_id\":\"120m210126\",\"size\":\"120m\",\"time\":1512907200000,\"open\":0.19353,\"high\":0.19949,\"low\":0.1917,\"close\":0.19868,\"volume\":650525.0708087999,\"close_time\":1512914393147,\"vwap\":0.19487456782660403,\"ema1\":0.19676723815068778,\"sma1\":0.203757611111111,\"sma2\":0.19633949999999994,\"rsi_avg_gain\":0.0014232261816964052,\"rsi_avg_loss\":0.0012737634971647243,\"rsi\":53},{\"period_id\":\"120m210125\",\"size\":\"120m\",\"time\":1512900000000,\"open\":0.19333,\"high\":0.19902,\"low\":0.19,\"close\":0.19385,\"volume\":978565.5069178501,\"close_time\":1512907196740,\"vwap\":0.1946470546349939,\"ema1\":0.19663532354039037,\"sma1\":0.20378575925925915,\"sma2\":0.19652599999999995,\"rsi_avg_gain\":0.0011611666572115132,\"rsi_avg_loss\":0.0013717453046389338,\"rsi\":46},{\"period_id\":\"120m210124\",\"size\":\"120m\",\"time\":1512892800000,\"open\":0.19131,\"high\":0.194,\"low\":0.19,\"close\":0.19341,\"volume\":531661.3797847299,\"close_time\":1512899982936,\"vwap\":0.1956603127724651,\"ema1\":0.19682741481903798,\"sma1\":0.20383964814814806,\"sma2\":0.19673416666666668,\"rsi_avg_gain\":0.0012166410154585531,\"rsi_avg_loss\":0.001477264174226544,\"rsi\":45},{\"period_id\":\"120m210122\",\"size\":\"120m\",\"time\":1512878400000,\"open\":0.191,\"high\":0.19313,\"low\":0.1895,\"close\":0.19301,\"volume\":391477.15581255,\"close_time\":1512882237255,\"vwap\":0.19629598105359927,\"ema1\":0.19706309859966128,\"sma1\":0.2039214999999999,\"sma2\":0.19693149999999998,\"rsi_avg_gain\":0.00127945955510921,\"rsi_avg_loss\":0.0015908998799362784,\"rsi\":45},{\"period_id\":\"120m210121\",\"size\":\"120m\",\"time\":1512871200000,\"open\":0.195,\"high\":0.19843,\"low\":0.191,\"close\":0.191,\"volume\":822354.6339335999,\"close_time\":1512878389037,\"vwap\":0.1968567919508387,\"ema1\":0.19734262264101723,\"sma1\":0.20394529629629618,\"sma2\":0.19716733333333333,\"rsi_avg_gain\":0.0012232641362714583,\"rsi_avg_loss\":0.0017132767937775306,\"rsi\":42},{\"period_id\":\"120m210120\",\"size\":\"120m\",\"time\":1512864000000,\"open\":0.19926,\"high\":0.19928,\"low\":0.195,\"close\":0.195,\"volume\":575411.43770943,\"close_time\":1512871187661,\"vwap\":0.1978295350266114,\"ema1\":0.19778004489212186,\"sma1\":0.20398992592592582,\"sma2\":0.1973611666666667,\"rsi_avg_gain\":0.001317361377523109,\"rsi_avg_loss\":0.0015373750086834941,\"rsi\":46},{\"period_id\":\"120m210119\",\"size\":\"120m\",\"time\":1512856800000,\"open\":0.2,\"high\":0.20254,\"low\":0.19733,\"close\":0.19929,\"volume\":680314.7565415404,\"close_time\":1512863991018,\"vwap\":0.19813271350010409,\"ema1\":0.1979717721260613,\"sma1\":0.20402974074074068,\"sma2\":0.1975107666666667,\"rsi_avg_gain\":0.0014186968681018097,\"rsi_avg_loss\":0.0013256346247360717,\"rsi\":52},{\"period_id\":\"120m210118\",\"size\":\"120m\",\"time\":1512849600000,\"open\":0.19851,\"high\":0.2,\"low\":0.1953,\"close\":0.2,\"volume\":352961.11425362,\"close_time\":1512856793108,\"vwap\":0.19736809324979585,\"ema1\":0.19788085985889312,\"sma1\":0.2040714074074073,\"sma2\":0.19762693333333337,\"rsi_avg_gain\":0.0015278273964173337,\"rsi_avg_loss\":0.001372991134331153,\"rsi\":53},{\"period_id\":\"120m210117\",\"size\":\"120m\",\"time\":1512842400000,\"open\":0.19541,\"high\":0.19867,\"low\":0.19486,\"close\":0.19799,\"volume\":926232.5305575604,\"close_time\":1512849579268,\"vwap\":0.19699516993089514,\"ema1\":0.19773471226295472,\"sma1\":0.20412631481481475,\"sma2\":0.19777710000000004,\"rsi_avg_gain\":0.001490737196141743,\"rsi_avg_loss\":0.001478605836972011,\"rsi\":50},{\"period_id\":\"120m210116\",\"size\":\"120m\",\"time\":1512835200000,\"open\":0.2025,\"high\":0.2027,\"low\":0.19541,\"close\":0.19541,\"volume\":641413.0257922799,\"close_time\":1512842398360,\"vwap\":0.19267270685006874,\"ema1\":0.19771710621212402,\"sma1\":0.20409103703703693,\"sma2\":0.1979792666666667,\"rsi_avg_gain\":0.001406947749691108,\"rsi_avg_loss\":0.0015923447475083194,\"rsi\":47},{\"period_id\":\"120m210115\",\"size\":\"120m\",\"time\":1512828000000,\"open\":0.2029,\"high\":0.203,\"low\":0.19926,\"close\":0.2025,\"volume\":759955.0663505401,\"close_time\":1512835181045,\"vwap\":0.19264382574803188,\"ema1\":0.19787621698537394,\"sma1\":0.20402622222222214,\"sma2\":0.19804026666666671,\"rsi_avg_gain\":0.001515174499667347,\"rsi_avg_loss\":0.001169448189624343,\"rsi\":56},{\"period_id\":\"120m210114\",\"size\":\"120m\",\"time\":1512820800000,\"open\":0.19915,\"high\":0.203,\"low\":0.1964,\"close\":0.20288,\"volume\":1060196.08788046,\"close_time\":1512827997733,\"vwap\":0.19256544016001498,\"ema1\":0.19755733539815834,\"sma1\":0.2040447407407406,\"sma2\":0.19809226666666674,\"rsi_avg_gain\":0.0016317263842571428,\"rsi_avg_loss\":0.0012301749734416009,\"rsi\":57},{\"period_id\":\"120m210113\",\"size\":\"120m\",\"time\":1512813600000,\"open\":0.19899,\"high\":0.2,\"low\":0.196,\"close\":0.199,\"volume\":1697599.1494401302,\"close_time\":1512820796071,\"vwap\":0.1924454172410022,\"ema1\":0.19719025508078994,\"sma1\":0.20412427777777767,\"sma2\":0.1982202666666667,\"rsi_avg_gain\":0.001458782259969231,\"rsi_avg_loss\":0.0013248038175524934,\"rsi\":52},{\"period_id\":\"120m210112\",\"size\":\"120m\",\"time\":1512806400000,\"open\":0.2015,\"high\":0.20181,\"low\":0.196,\"close\":0.198,\"volume\":1049080.849649,\"close_time\":1512813598514,\"vwap\":0.1923092697154591,\"ema1\":0.19706544508636165,\"sma1\":0.20420474074074063,\"sma2\":0.1983702666666667,\"rsi_avg_gain\":0.0014940732030437874,\"rsi_avg_loss\":0.0014267118035180698,\"rsi\":51},{\"period_id\":\"120m210111\",\"size\":\"120m\",\"time\":1512799200000,\"open\":0.201,\"high\":0.203,\"low\":0.19911,\"close\":0.19931,\"volume\":611834.19321072,\"close_time\":1512806227310,\"vwap\":0.19222650460043203,\"ema1\":0.1970009930233521,\"sma1\":0.20425103703703693,\"sma2\":0.1985104333333334,\"rsi_avg_gain\":0.0016090019109702325,\"rsi_avg_loss\":0.001435689634557923,\"rsi\":53},{\"period_id\":\"120m210110\",\"size\":\"120m\",\"time\":1512792000000,\"open\":0.20095,\"high\":0.20189,\"low\":0.19933,\"close\":0.2018,\"volume\":327272.42923343997,\"close_time\":1512799199401,\"vwap\":0.1921859907918492,\"ema1\":0.19684175116289362,\"sma1\":0.20433437037037028,\"sma2\":0.19856810000000003,\"rsi_avg_gain\":0.0017327712887371734,\"rsi_avg_loss\":0.001354588837216223,\"rsi\":56},{\"period_id\":\"120m210109\",\"size\":\"120m\",\"time\":1512784800000,\"open\":0.199,\"high\":0.20181,\"low\":0.199,\"close\":0.20148,\"volume\":97245.56367083998,\"close_time\":1512791938779,\"vwap\":0.19217660230203054,\"ema1\":0.1964998029672311,\"sma1\":0.20441020370370364,\"sma2\":0.19864193333333333,\"rsi_avg_gain\":0.0018414460032554164,\"rsi_avg_loss\":0.0014587879785405479,\"rsi\":56},{\"period_id\":\"120m210108\",\"size\":\"120m\",\"time\":1512777600000,\"open\":0.2,\"high\":0.20181,\"low\":0.19801,\"close\":0.19981,\"volume\":403268.47447363014,\"close_time\":1512784528415,\"vwap\":0.19217424857014911,\"ema1\":0.1961563411029022,\"sma1\":0.2044859444444444,\"sma2\":0.19872843333333334,\"rsi_avg_gain\":0.0018546341573519864,\"rsi_avg_loss\":0.0015710024384282821,\"rsi\":54},{\"period_id\":\"120m210107\",\"size\":\"120m\",\"time\":1512770400000,\"open\":0.19995,\"high\":0.20194,\"low\":0.19811,\"close\":0.2,\"volume\":1030570.62235018,\"close_time\":1512777589000,\"vwap\":0.1921529041530584,\"ema1\":0.19590436462724028,\"sma1\":0.20456057407407402,\"sma2\":0.19878193333333335,\"rsi_avg_gain\":0.001997298323302139,\"rsi_avg_loss\":0.001677233395230456,\"rsi\":54},{\"period_id\":\"120m210106\",\"size\":\"120m\",\"time\":1512763200000,\"open\":0.20056,\"high\":0.2029,\"low\":0.19882,\"close\":0.20195,\"volume\":687992.28091057,\"close_time\":1512770355398,\"vwap\":0.1920729830488192,\"ema1\":0.1956219070153258,\"sma1\":0.2046263148148148,\"sma2\":0.19878443333333337,\"rsi_avg_gain\":0.002150936655863842,\"rsi_avg_loss\":0.0016562513487097233,\"rsi\":56},{\"period_id\":\"120m210105\",\"size\":\"120m\",\"time\":1512756000000,\"open\":0.2,\"high\":0.204,\"low\":0.199,\"close\":0.20292,\"volume\":1842953.0237013297,\"close_time\":1512763170809,\"vwap\":0.1920109159030006,\"ema1\":0.19518548680948622,\"sma1\":0.20477048148148147,\"sma2\":0.1988857666666667,\"rsi_avg_gain\":0.002316393321699522,\"rsi_avg_loss\":0.0017090399139950867,\"rsi\":58},{\"period_id\":\"120m210104\",\"size\":\"120m\",\"time\":1512748800000,\"open\":0.196,\"high\":0.20086,\"low\":0.196,\"close\":0.2,\"volume\":1102251.6171724405,\"close_time\":1512755976994,\"vwap\":0.19156158595406192,\"ema1\":0.19465207210669216,\"sma1\":0.20497548148148148,\"sma2\":0.19904876666666674,\"rsi_avg_gain\":0.0022699620387533334,\"rsi_avg_loss\":0.0018405045227639395,\"rsi\":55},{\"period_id\":\"120m210103\",\"size\":\"120m\",\"time\":1512741600000,\"open\":0.20001,\"high\":0.20182,\"low\":0.19001,\"close\":0.196,\"volume\":1809689.6471748506,\"close_time\":1512748783413,\"vwap\":0.19143303768236036,\"ema1\":0.1942832494933606,\"sma1\":0.2052364074074074,\"sma2\":0.1992737666666667,\"rsi_avg_gain\":0.0021368821955805124,\"rsi_avg_loss\":0.001982081793745781,\"rsi\":52},{\"period_id\":\"120m210102\",\"size\":\"120m\",\"time\":1512734400000,\"open\":0.19362,\"high\":0.20199,\"low\":0.193,\"close\":0.20182,\"volume\":1979923.9914177093,\"close_time\":1512741577584,\"vwap\":0.1911812831333463,\"ema1\":0.1941648529066958,\"sma1\":0.20548446296296297,\"sma2\":0.19942676666666675,\"rsi_avg_gain\":0.0023012577490867056,\"rsi_avg_loss\":0.0016868573163416108,\"rsi\":58},{\"period_id\":\"120m210101\",\"size\":\"120m\",\"time\":1512727200000,\"open\":0.1931,\"high\":0.19999,\"low\":0.19,\"close\":0.194,\"volume\":1792191.8218561397,\"close_time\":1512734388888,\"vwap\":0.19089538200522124,\"ema1\":0.19363691172784725,\"sma1\":0.2057149259259259,\"sma2\":0.1996746,\"rsi_avg_gain\":0.0018767391144010677,\"rsi_avg_loss\":0.0018166155714448118,\"rsi\":51},{\"period_id\":\"120m210100\",\"size\":\"120m\",\"time\":1512720000000,\"open\":0.19009,\"high\":0.2,\"low\":0.18955,\"close\":0.19301,\"volume\":1800915.4518014311,\"close_time\":1512727186604,\"vwap\":0.19064237314925592,\"ema1\":0.19361187115735395,\"sma1\":0.20594529629629627,\"sma2\":0.1999061,\"rsi_avg_gain\":0.0019449498155088409,\"rsi_avg_loss\":0.0019563552307867204,\"rsi\":50},{\"period_id\":\"120m210099\",\"size\":\"120m\",\"time\":1512712800000,\"open\":0.191,\"high\":0.19649,\"low\":0.18501,\"close\":0.19128,\"volume\":1533508.5199854106,\"close_time\":1512719994835,\"vwap\":0.19050436493253142,\"ema1\":0.19365337951303355,\"sma1\":0.2061701111111111,\"sma2\":0.20016993333333336,\"rsi_avg_gain\":0.00196148441670183,\"rsi_avg_loss\":0.0021068440946933912,\"rsi\":48},{\"period_id\":\"120m210098\",\"size\":\"120m\",\"time\":1512705600000,\"open\":0.203,\"high\":0.20687,\"low\":0.19021,\"close\":0.19131,\"volume\":824094.35925791,\"close_time\":1512712790789,\"vwap\":0.1906010337970381,\"ema1\":0.19381706085876,\"sma1\":0.20631177777777776,\"sma2\":0.20040060000000004,\"rsi_avg_gain\":0.002112367833371202,\"rsi_avg_loss\":0.002266601332746729,\"rsi\":48},{\"period_id\":\"120m210097\",\"size\":\"120m\",\"time\":1512698400000,\"open\":0.20457,\"high\":0.208,\"low\":0.19155,\"close\":0.205,\"volume\":1802558.6234344696,\"close_time\":1512705589882,\"vwap\":0.19051782179652885,\"ema1\":0.19398996160763998,\"sma1\":0.20649585185185182,\"sma2\":0.20039776666666667,\"rsi_avg_gain\":0.0022748576667074483,\"rsi_avg_loss\":0.0013878783583426326,\"rsi\":62},{\"period_id\":\"120m210096\",\"size\":\"120m\",\"time\":1512691200000,\"open\":0.18264,\"high\":0.21,\"low\":0.18,\"close\":0.20457,\"volume\":5069064.234255623,\"close_time\":1512698364848,\"vwap\":0.19012107787761284,\"ema1\":0.19323064861506342,\"sma1\":0.2067273333333333,\"sma2\":0.20039026666666665,\"rsi_avg_gain\":0.0024167697949157145,\"rsi_avg_loss\":0.0014946382320612968,\"rsi\":62},{\"period_id\":\"120m210095\",\"size\":\"120m\",\"time\":1512684000000,\"open\":0.18631,\"high\":0.18699,\"low\":0.18,\"close\":0.182,\"volume\":2887392.7136900085,\"close_time\":1512691099048,\"vwap\":0.18561761018084544,\"ema1\":0.19244862438161953,\"sma1\":0.20717187037037035,\"sma2\":0.20079026666666666,\"rsi_avg_gain\":0.0008665213176015379,\"rsi_avg_loss\":0.0016096104037583196,\"rsi\":35},{\"period_id\":\"120m210094\",\"size\":\"120m\",\"time\":1512676800000,\"open\":0.18049,\"high\":0.186,\"low\":0.18007,\"close\":0.186,\"volume\":1397581.4726467493,\"close_time\":1512683999964,\"vwap\":0.18678364865139382,\"ema1\":0.1931692191665588,\"sma1\":0.2075561296296296,\"sma2\":0.20114843333333327,\"rsi_avg_gain\":0.000933176803570887,\"rsi_avg_loss\":0.0014257342809704976,\"rsi\":40},{\"period_id\":\"120m210093\",\"size\":\"120m\",\"time\":1512669600000,\"open\":0.182,\"high\":0.18889,\"low\":0.18004,\"close\":0.181,\"volume\":1519254.1145062689,\"close_time\":1512676772537,\"vwap\":0.18694369170922193,\"ema1\":0.19366364807459735,\"sma1\":0.2078807592592592,\"sma2\":0.20157693333333332,\"rsi_avg_gain\":0.0006203442499994165,\"rsi_avg_loss\":0.001535406148737459,\"rsi\":29},{\"period_id\":\"120m210092\",\"size\":\"120m\",\"time\":1512662400000,\"open\":0.18434,\"high\":0.18959,\"low\":0.18,\"close\":0.182,\"volume\":1880239.514088659,\"close_time\":1512669591339,\"vwap\":0.18733117915556263,\"ema1\":0.19453700311422475,\"sma1\":0.208233537037037,\"sma2\":0.20199393333333326,\"rsi_avg_gain\":0.0006680630384609101,\"rsi_avg_loss\":0.0015765912371018787,\"rsi\":30},{\"period_id\":\"120m210091\",\"size\":\"120m\",\"time\":1512655200000,\"open\":0.1885,\"high\":0.18995,\"low\":0.18301,\"close\":0.187,\"volume\":1319921.42306792,\"close_time\":1512662369202,\"vwap\":0.18819841376521385,\"ema1\":0.19540162401865405,\"sma1\":0.20853307407407404,\"sma2\":0.20230944066666665,\"rsi_avg_gain\":0.0007194525029579033,\"rsi_avg_loss\":0.0013132521014943305,\"rsi\":35},{\"period_id\":\"120m210090\",\"size\":\"120m\",\"time\":1512648000000,\"open\":0.1875,\"high\":0.19,\"low\":0.1875,\"close\":0.1885,\"volume\":1411372.0180265396,\"close_time\":1512655194555,\"vwap\":0.1883327571182175,\"ema1\":0.19598104636476812,\"sma1\":0.2088013148148148,\"sma2\":0.2026461073333333,\"rsi_avg_gain\":0.0007747950031854342,\"rsi_avg_loss\":0.0012988868785323558,\"rsi\":37},{\"period_id\":\"120m210089\",\"size\":\"120m\",\"time\":1512640800000,\"open\":0.18521,\"high\":0.18979,\"low\":0.181,\"close\":0.1875,\"volume\":2092077.3675429292,\"close_time\":1512647973104,\"vwap\":0.1882438165205216,\"ema1\":0.1964969805968211,\"sma1\":0.20908057407407407,\"sma2\":0.20298944066666663,\"rsi_avg_gain\":0.000757471541892006,\"rsi_avg_loss\":0.0013988012538040755,\"rsi\":35},{\"period_id\":\"120m210088\",\"size\":\"120m\",\"time\":1512633600000,\"open\":0.1872,\"high\":0.18979,\"low\":0.18513,\"close\":0.18513,\"volume\":1129966.4392239994,\"close_time\":1512640768505,\"vwap\":0.18937174324104192,\"ema1\":0.19711746201729152,\"sma1\":0.20934177777777777,\"sma2\":0.20340394066666662,\"rsi_avg_gain\":0.0006334308912683133,\"rsi_avg_loss\":0.0015064013502505429,\"rsi\":30},{\"period_id\":\"120m210087\",\"size\":\"120m\",\"time\":1512626400000,\"open\":0.19225,\"high\":0.19231,\"low\":0.1852,\"close\":0.18601,\"volume\":1170682.04228123,\"close_time\":1512633583210,\"vwap\":0.18965287667391525,\"ema1\":0.19794418353572543,\"sma1\":0.20957705555555553,\"sma2\":0.20378977399999998,\"rsi_avg_gain\":0.0006821563444427989,\"rsi_avg_loss\":0.001554586069500583,\"rsi\":30},{\"period_id\":\"120m210086\",\"size\":\"120m\",\"time\":1512619200000,\"open\":0.1855,\"high\":0.19288,\"low\":0.18373,\"close\":0.19227,\"volume\":312959.47167122003,\"close_time\":1512626260601,\"vwap\":0.18986975283409008,\"ema1\":0.1987672306761203,\"sma1\":0.20980964814814815,\"sma2\":0.2040286073333333,\"rsi_avg_gain\":0.0007346299093999373,\"rsi_avg_loss\":0.0011926311517698597,\"rsi\":38},{\"period_id\":\"120m210085\",\"size\":\"120m\",\"time\":1512612000000,\"open\":0.18694,\"high\":0.19286,\"low\":0.18393,\"close\":0.18643,\"volume\":1313166.93189536,\"close_time\":1512619169443,\"vwap\":0.18988053174106834,\"ema1\":0.19921531555033548,\"sma1\":0.21004325925925926,\"sma2\":0.20440660733333332,\"rsi_avg_gain\":0.0003419091331999337,\"rsi_avg_loss\":0.0012843720095983104,\"rsi\":21},{\"period_id\":\"120m210084\",\"size\":\"120m\",\"time\":1512604800000,\"open\":0.18902,\"high\":0.1927,\"low\":0.1865,\"close\":0.1865,\"volume\":1847827.2706492287,\"close_time\":1512611942664,\"vwap\":0.19054774336146874,\"ema1\":0.2000970614503586,\"sma1\":0.21020344444444447,\"sma2\":0.20478094066666663,\"rsi_avg_gain\":0.00036820983575377476,\"rsi_avg_loss\":0.0013777852411058738,\"rsi\":21},{\"period_id\":\"120m210083\",\"size\":\"120m\",\"time\":1512597600000,\"open\":0.19498,\"high\":0.196,\"low\":0.189,\"close\":0.18902,\"volume\":2480005.0900642066,\"close_time\":1512604794901,\"vwap\":0.19103252913538252,\"ema1\":0.2010347898262454,\"sma1\":0.21030066666666666,\"sma2\":0.2051734406666666,\"rsi_avg_gain\":0.00039653366927329593,\"rsi_avg_loss\":0.0012899225673447877,\"rsi\":24},{\"period_id\":\"120m210082\",\"size\":\"120m\",\"time\":1512590400000,\"open\":0.19679,\"high\":0.19775,\"low\":0.192,\"close\":0.195,\"volume\":1901877.715855151,\"close_time\":1512597582829,\"vwap\":0.1938309226667684,\"ema1\":0.20186339602115888,\"sma1\":0.21038816666666663,\"sma2\":0.20546277399999993,\"rsi_avg_gain\":0.00042703625921739564,\"rsi_avg_loss\":0.0009291473802174625,\"rsi\":31},{\"period_id\":\"120m210081\",\"size\":\"120m\",\"time\":1512583200000,\"open\":0.1985,\"high\":0.20003,\"low\":0.19615,\"close\":0.19765,\"volume\":1159402.1994188598,\"close_time\":1512590389470,\"vwap\":0.2029254430444972,\"ema1\":0.20233673367779054,\"sma1\":0.2104573333333333,\"sma2\":0.20566194066666663,\"rsi_avg_gain\":0.0004598852022341184,\"rsi_avg_loss\":0.000796774101772653,\"rsi\":37},{\"period_id\":\"120m210080\",\"size\":\"120m\",\"time\":1512576000000,\"open\":0.1999,\"high\":0.20198,\"low\":0.1978,\"close\":0.1985,\"volume\":1149012.43157479,\"close_time\":1512583187057,\"vwap\":0.20305584308533306,\"ema1\":0.20265995669005196,\"sma1\":0.2104941851851852,\"sma2\":0.20582710733333334,\"rsi_avg_gain\":0.0004952609870213583,\"rsi_avg_loss\":0.0007926798019090096,\"rsi\":38},{\"period_id\":\"120m210079\",\"size\":\"120m\",\"time\":1512568800000,\"open\":0.197,\"high\":0.19997,\"low\":0.196,\"close\":0.1999,\"volume\":1754763.5733593802,\"close_time\":1512575983189,\"vwap\":0.20312057279819426,\"ema1\":0.20294685025488313,\"sma1\":0.21054724074074074,\"sma2\":0.205974774,\"rsi_avg_gain\":0.0005333579860230012,\"rsi_avg_loss\":0.0007459628635943192,\"rsi\":42},{\"period_id\":\"120m210078\",\"size\":\"120m\",\"time\":1512561600000,\"open\":0.19867,\"high\":0.19869,\"low\":0.196,\"close\":0.19797,\"volume\":1356577.2933801496,\"close_time\":1512568782682,\"vwap\":0.20329688763909526,\"ema1\":0.20315697785866818,\"sma1\":0.21060566666666666,\"sma2\":0.2061669406666667,\"rsi_avg_gain\":0.00042592398494784847,\"rsi_avg_loss\":0.0008033446223323438,\"rsi\":35},{\"period_id\":\"120m210077\",\"size\":\"120m\",\"time\":1512554400000,\"open\":0.19707,\"high\":0.2,\"low\":0.196,\"close\":0.19869,\"volume\":2110134.6971577206,\"close_time\":1512561542485,\"vwap\":0.20351343022637283,\"ema1\":0.20351470046961082,\"sma1\":0.21065168518518515,\"sma2\":0.206231774,\"rsi_avg_gain\":0.00045868736840537527,\"rsi_avg_loss\":0.0008097557471271396,\"rsi\":36},{\"period_id\":\"120m210076\",\"size\":\"120m\",\"time\":1512547200000,\"open\":0.19606,\"high\":0.20158,\"low\":0.1953,\"close\":0.19705,\"volume\":2170755.0190411303,\"close_time\":1512554398487,\"vwap\":0.20403950822459277,\"ema1\":0.20384743843303224,\"sma1\":0.21068798148148143,\"sma2\":0.20631527400000002,\"rsi_avg_gain\":0.0003678171659750193,\"rsi_avg_loss\":0.0008720446507523041,\"rsi\":30},{\"period_id\":\"120m210075\",\"size\":\"120m\",\"time\":1512540000000,\"open\":0.19901,\"high\":0.20293,\"low\":0.195,\"close\":0.19778,\"volume\":2231629.5649462496,\"close_time\":1512547191564,\"vwap\":0.20454620160139736,\"ema1\":0.20431622729048274,\"sma1\":0.21071270370370368,\"sma2\":0.2063039406666667,\"rsi_avg_gain\":0.0003961107941269439,\"rsi_avg_loss\":0.0008829711623486346,\"rsi\":31},{\"period_id\":\"120m210074\",\"size\":\"120m\",\"time\":1512532800000,\"open\":0.201,\"high\":0.20466,\"low\":0.1981,\"close\":0.1982,\"volume\":1667986.7979470093,\"close_time\":1512539956524,\"vwap\":0.20569822239631785,\"ema1\":0.2047670015863781,\"sma1\":0.2107149259259259,\"sma2\":0.20629227400000003,\"rsi_avg_gain\":0.0004265808552136319,\"rsi_avg_loss\":0.0009185843286831468,\"rsi\":32},{\"period_id\":\"120m210073\",\"size\":\"120m\",\"time\":1512525600000,\"open\":0.20164,\"high\":0.204,\"low\":0.2,\"close\":0.2023,\"volume\":1055209.2105613104,\"close_time\":1512532718975,\"vwap\":0.2060120961910959,\"ema1\":0.2052198982475076,\"sma1\":0.21071520370370364,\"sma2\":0.2062139406666667,\"rsi_avg_gain\":0.0004593947671531421,\"rsi_avg_loss\":0.0006738600462741566,\"rsi\":41},{\"period_id\":\"120m210072\",\"size\":\"120m\",\"time\":1512518400000,\"open\":0.20532,\"high\":0.20635,\"low\":0.20011,\"close\":0.20168,\"volume\":1645813.257506141,\"close_time\":1512525583549,\"vwap\":0.20626846776218707,\"ema1\":0.20542127054043918,\"sma1\":0.210693074074074,\"sma2\":0.2061879406666667,\"rsi_avg_gain\":0.00044704051847261386,\"rsi_avg_loss\":0.0007256954344490918,\"rsi\":38},{\"period_id\":\"120m210071\",\"size\":\"120m\",\"time\":1512511200000,\"open\":0.20402,\"high\":0.2055,\"low\":0.203,\"close\":0.20364,\"volume\":2130364.2691354603,\"close_time\":1512518349788,\"vwap\":0.20656012146085834,\"ema1\":0.2056792891984005,\"sma1\":0.2106879814814814,\"sma2\":0.2061706073333334,\"rsi_avg_gain\":0.00048142825066281494,\"rsi_avg_loss\":0.0006307489294067151,\"rsi\":43},{\"period_id\":\"120m210070\",\"size\":\"120m\",\"time\":1512504000000,\"open\":0.20498,\"high\":0.20535,\"low\":0.203,\"close\":0.20485,\"volume\":1083083.8736538694,\"close_time\":1512511198657,\"vwap\":0.20674333983491042,\"ema1\":0.20581992983277295,\"sma1\":0.2106761296296296,\"sma2\":0.20612977400000004,\"rsi_avg_gain\":0.000518461193021493,\"rsi_avg_loss\":0.0005861911547456919,\"rsi\":47},{\"period_id\":\"120m210069\",\"size\":\"120m\",\"time\":1512496800000,\"open\":0.204,\"high\":0.20538,\"low\":0.203,\"close\":0.20402,\"volume\":860057.4203535096,\"close_time\":1512503859014,\"vwap\":0.2068679738206398,\"ema1\":0.205886821545378,\"sma1\":0.21067344444444439,\"sma2\":0.20612777400000007,\"rsi_avg_gain\":0.0004944966694077618,\"rsi_avg_loss\":0.000631282782033822,\"rsi\":44},{\"period_id\":\"120m210068\",\"size\":\"120m\",\"time\":1512489600000,\"open\":0.20488,\"high\":0.2055,\"low\":0.203,\"close\":0.20321,\"volume\":1296081.3617274298,\"close_time\":1512496789885,\"vwap\":0.20697691964721115,\"ema1\":0.20601556785885233,\"sma1\":0.21067437037037032,\"sma2\":0.20602427400000006,\"rsi_avg_gain\":0.0004702271824391278,\"rsi_avg_loss\":0.0006798429960364236,\"rsi\":41},{\"period_id\":\"120m210067\",\"size\":\"120m\",\"time\":1512482400000,\"open\":0.20556,\"high\":0.20556,\"low\":0.2035,\"close\":0.2049,\"volume\":1402909.4253659002,\"close_time\":1512489590218,\"vwap\":0.20720494057537647,\"ema1\":0.20620905529739386,\"sma1\":0.21067501851851847,\"sma2\":0.20583277400000005,\"rsi_avg_gain\":0.0005063985041652146,\"rsi_avg_loss\":0.0006021386111161488,\"rsi\":46},{\"period_id\":\"120m210066\",\"size\":\"120m\",\"time\":1512475200000,\"open\":0.2045,\"high\":0.20646,\"low\":0.204,\"close\":0.20557,\"volume\":905663.6345902705,\"close_time\":1512482395799,\"vwap\":0.20744173932939536,\"ema1\":0.2062993349730762,\"sma1\":0.21066798148148144,\"sma2\":0.20567327400000004,\"rsi_avg_gain\":0.0005453522352548466,\"rsi_avg_loss\":0.0005969185042789293,\"rsi\":48},{\"period_id\":\"120m210065\",\"size\":\"120m\",\"time\":1512468000000,\"open\":0.20576,\"high\":0.20643,\"low\":0.2043,\"close\":0.2045,\"volume\":1058386.8217710692,\"close_time\":1512475196068,\"vwap\":0.20755547775339062,\"ema1\":0.20634963393673664,\"sma1\":0.21066835185185184,\"sma2\":0.20562027400000008,\"rsi_avg_gain\":0.0005049947148898336,\"rsi_avg_loss\":0.0006428353123003853,\"rsi\":44},{\"period_id\":\"120m210064\",\"size\":\"120m\",\"time\":1512460800000,\"open\":0.2057,\"high\":0.2082,\"low\":0.205,\"close\":0.20504,\"volume\":1827906.7326850519,\"close_time\":1512467894122,\"vwap\":0.2076950054431853,\"ema1\":0.2064771948978909,\"sma1\":0.2106489074074074,\"sma2\":0.20565610733333337,\"rsi_avg_gain\":0.0005438404621890515,\"rsi_avg_loss\":0.0006507457209388755,\"rsi\":46},{\"period_id\":\"120m210063\",\"size\":\"120m\",\"time\":1512453600000,\"open\":0.20508,\"high\":0.2071,\"low\":0.20415,\"close\":0.2059,\"volume\":616188.42400966,\"close_time\":1512460761594,\"vwap\":0.20788141617751557,\"ema1\":0.20657631178740063,\"sma1\":0.2106420555555555,\"sma2\":0.20565777400000004,\"rsi_avg_gain\":0.0005856743438959017,\"rsi_avg_loss\":0.0006346492379341736,\"rsi\":48},{\"period_id\":\"120m210062\",\"size\":\"120m\",\"time\":1512446400000,\"open\":0.20531,\"high\":0.20798,\"low\":0.2045,\"close\":0.20485,\"volume\":407359.59938782,\"close_time\":1512453554144,\"vwap\":0.20793693937424068,\"ema1\":0.20662295397963515,\"sma1\":0.21062381481481476,\"sma2\":0.20570827400000002,\"rsi_avg_gain\":0.0005499569857340483,\"rsi_avg_loss\":0.0006834684100829562,\"rsi\":45},{\"period_id\":\"120m210061\",\"size\":\"120m\",\"time\":1512439200000,\"open\":0.20663,\"high\":0.20663,\"low\":0.205,\"close\":0.20515,\"volume\":595110.5549349199,\"close_time\":1512446369424,\"vwap\":0.20795276597579632,\"ema1\":0.20674522666788586,\"sma1\":0.21061353703703697,\"sma2\":0.20577927400000004,\"rsi_avg_gain\":0.000592261369252052,\"rsi_avg_loss\":0.0007129659800893379,\"rsi\":45},{\"period_id\":\"120m210060\",\"size\":\"120m\",\"time\":1512432000000,\"open\":0.20764,\"high\":0.208266,\"low\":0.2062,\"close\":0.20663,\"volume\":508934.48698234,\"close_time\":1512439024419,\"vwap\":0.20798814301666646,\"ema1\":0.20685524230015384,\"sma1\":0.21060366666666663,\"sma2\":0.20583510733333338,\"rsi_avg_gain\":0.0006378199361175944,\"rsi_avg_loss\":0.0006539633631731324,\"rsi\":49},{\"period_id\":\"120m210059\",\"size\":\"120m\",\"time\":1512424800000,\"open\":0.20697,\"high\":0.208266,\"low\":0.206,\"close\":0.208266,\"volume\":918199.0655971197,\"close_time\":1512431956920,\"vwap\":0.20799752517325312,\"ema1\":0.2068707762518886,\"sma1\":0.21060120370370367,\"sma2\":0.2057148406666667,\"rsi_avg_gain\":0.0006868830081266401,\"rsi_avg_loss\":0.0005784220834172196,\"rsi\":54},{\"period_id\":\"120m210058\",\"size\":\"120m\",\"time\":1512417600000,\"open\":0.2069,\"high\":0.2075,\"low\":0.2055,\"close\":0.20697,\"volume\":632957.20665359,\"close_time\":1512424783756,\"vwap\":0.20799987739633335,\"ema1\":0.20677455392443264,\"sma1\":0.2106058333333333,\"sma2\":0.2056783406666667,\"rsi_avg_gain\":0.000640027854905611,\"rsi_avg_loss\":0.0006229160898339288,\"rsi\":51},{\"period_id\":\"120m210057\",\"size\":\"120m\",\"time\":1512410400000,\"open\":0.20754,\"high\":0.20769,\"low\":0.20562,\"close\":0.207,\"volume\":703081.9222192308,\"close_time\":1512417597662,\"vwap\":0.20804980535019707,\"ema1\":0.20676107488473836,\"sma1\":0.21060870370370366,\"sma2\":0.2055448406666667,\"rsi_avg_gain\":0.0006892607668214271,\"rsi_avg_loss\":0.0006685250198211538,\"rsi\":51},{\"period_id\":\"120m210056\",\"size\":\"120m\",\"time\":1512403200000,\"open\":0.20617,\"high\":0.20754,\"low\":0.205,\"close\":0.20754,\"volume\":614650.2980817601,\"close_time\":1512410370625,\"vwap\":0.20809584997347738,\"ema1\":0.20674459729058237,\"sma1\":0.21061759259259252,\"sma2\":0.2056858406666667,\"rsi_avg_gain\":0.0007422808258076908,\"rsi_avg_loss\":0.0006784115598073954,\"rsi\":52},{\"period_id\":\"120m210055\",\"size\":\"120m\",\"time\":1512396000000,\"open\":0.206,\"high\":0.20778,\"low\":0.20474,\"close\":0.20616,\"volume\":555274.1970127601,\"close_time\":1512403151943,\"vwap\":0.2081505013803769,\"ema1\":0.20668974193131218,\"sma1\":0.21062888888888884,\"sma2\":0.20588317400000006,\"rsi_avg_gain\":0.0006932255047159753,\"rsi_avg_loss\":0.0007305970644079642,\"rsi\":49},{\"period_id\":\"120m210054\",\"size\":\"120m\",\"time\":1512388800000,\"open\":0.20601,\"high\":0.2078,\"low\":0.20311,\"close\":0.206,\"volume\":1058620.9446994702,\"close_time\":1512395944827,\"vwap\":0.2082272522149281,\"ema1\":0.20672627585760955,\"sma1\":0.21061685185185178,\"sma2\":0.20624967400000005,\"rsi_avg_gain\":0.0007342428512325871,\"rsi_avg_loss\":0.0007867968385931923,\"rsi\":48},{\"period_id\":\"120m210053\",\"size\":\"120m\",\"time\":1512381600000,\"open\":0.20655,\"high\":0.2079,\"low\":0.205,\"close\":0.20668,\"volume\":937889.2512387097,\"close_time\":1512388797198,\"vwap\":0.20849215902765178,\"ema1\":0.20677636384778952,\"sma1\":0.21058537037037028,\"sma2\":0.20651200733333339,\"rsi_avg_gain\":0.0007907230705581706,\"rsi_avg_loss\":0.0007950119800234367,\"rsi\":50},{\"period_id\":\"120m210052\",\"size\":\"120m\",\"time\":1512374400000,\"open\":0.2073,\"high\":0.20843,\"low\":0.20567,\"close\":0.207,\"volume\":846062.6015024798,\"close_time\":1512381483617,\"vwap\":0.20864256894517877,\"ema1\":0.2067830096303957,\"sma1\":0.21054712962962954,\"sma2\":0.20679367400000004,\"rsi_avg_gain\":0.0008515479221395684,\"rsi_avg_loss\":0.0008315513631021637,\"rsi\":51},{\"period_id\":\"120m210051\",\"size\":\"120m\",\"time\":1512367200000,\"open\":0.20506,\"high\":0.2088,\"low\":0.20506,\"close\":0.20772,\"volume\":369815.74117833993,\"close_time\":1512374346573,\"vwap\":0.20871088337902405,\"ema1\":0.20676804477731953,\"sma1\":0.21051166666666657,\"sma2\":0.20700667400000003,\"rsi_avg_gain\":0.0009170516084579968,\"rsi_avg_loss\":0.0008401322371869457,\"rsi\":52},{\"period_id\":\"120m210050\",\"size\":\"120m\",\"time\":1512360000000,\"open\":0.20511,\"high\":0.20694,\"low\":0.205,\"close\":0.20526,\"volume\":148488.14376757,\"close_time\":1512367074218,\"vwap\":0.20872333754124883,\"ema1\":0.20670239269299673,\"sma1\":0.21049361111111103,\"sma2\":0.207210674,\"rsi_avg_gain\":0.0007983632706470742,\"rsi_avg_loss\":0.0009047577938936338,\"rsi\":47},{\"period_id\":\"120m210049\",\"size\":\"120m\",\"time\":1512352800000,\"open\":0.20479,\"high\":0.20596,\"low\":0.20479,\"close\":0.20591,\"volume\":112455.98687227,\"close_time\":1512359645187,\"vwap\":0.20873328558256193,\"ema1\":0.20680186805113443,\"sma1\":0.2104800925925925,\"sma2\":0.20744550733333336,\"rsi_avg_gain\":0.0008597758299276184,\"rsi_avg_loss\":0.0009243545472700663,\"rsi\":48},{\"period_id\":\"120m210048\",\"size\":\"120m\",\"time\":1512345600000,\"open\":0.2025,\"high\":0.205,\"low\":0.2022,\"close\":0.205,\"volume\":244383.31424754005,\"close_time\":1512352788800,\"vwap\":0.20873743202113482,\"ema1\":0.20686337619259199,\"sma1\":0.21046666666666655,\"sma2\":0.207812174,\"rsi_avg_gain\":0.0008559124322297413,\"rsi_avg_loss\":0.0009954587432139176,\"rsi\":46},{\"period_id\":\"120m210047\",\"size\":\"120m\",\"time\":1512338400000,\"open\":0.203,\"high\":0.20596,\"low\":0.201,\"close\":0.20321,\"volume\":1016917.7492541395,\"close_time\":1512345595739,\"vwap\":0.20876892877741474,\"ema1\":0.20699188489552936,\"sma1\":0.21043925925925913,\"sma2\":0.2083210073333333,\"rsi_avg_gain\":0.000784059542401261,\"rsi_avg_loss\":0.0010720324926919112,\"rsi\":42},{\"period_id\":\"120m210046\",\"size\":\"120m\",\"time\":1512331200000,\"open\":0.20927755,\"high\":0.21072,\"low\":0.2021,\"close\":0.2021,\"volume\":1914351.5573701388,\"close_time\":1512338396781,\"vwap\":0.2093533711368998,\"ema1\":0.2072527045434969,\"sma1\":0.21036685185185175,\"sma2\":0.20871917399999998,\"rsi_avg_gain\":0.0007589871995090503,\"rsi_avg_loss\":0.001154496530591289,\"rsi\":40},{\"period_id\":\"120m210045\",\"size\":\"120m\",\"time\":1512324000000,\"open\":0.20861,\"high\":0.21,\"low\":0.20824,\"close\":0.209,\"volume\":407974.7964288199,\"close_time\":1512331113146,\"vwap\":0.21093251986251746,\"ema1\":0.20760806347753116,\"sma1\":0.21029731481481473,\"sma2\":0.20892100733333333,\"rsi_avg_gain\":0.0008173708302405158,\"rsi_avg_loss\":0.0007125347252521584,\"rsi\":53},{\"period_id\":\"120m210044\",\"size\":\"120m\",\"time\":1512316800000,\"open\":0.20906,\"high\":0.21,\"low\":0.2084,\"close\":0.20978,\"volume\":615420.8094476499,\"close_time\":1512323994319,\"vwap\":0.21099129897630522,\"ema1\":0.20751206785529194,\"sma1\":0.21023064814814807,\"sma2\":0.20914134066666665,\"rsi_avg_gain\":0.0008802455094897862,\"rsi_avg_loss\":0.0007073450887330933,\"rsi\":55},{\"period_id\":\"120m210043\",\"size\":\"120m\",\"time\":1512309600000,\"open\":0.211,\"high\":0.2118,\"low\":0.208,\"close\":0.2095,\"volume\":1208601.3046583012,\"close_time\":1512316768941,\"vwap\":0.21110457417549144,\"ema1\":0.2073556587418638,\"sma1\":0.21014851851851843,\"sma2\":0.20935467399999996,\"rsi_avg_gain\":0.0009264182409890003,\"rsi_avg_loss\":0.0007617562494048696,\"rsi\":55},{\"period_id\":\"120m210042\",\"size\":\"120m\",\"time\":1512302400000,\"open\":0.2093,\"high\":0.213,\"low\":0.20887,\"close\":0.211,\"volume\":2451547.833988342,\"close_time\":1512309491987,\"vwap\":0.2115755393604127,\"ema1\":0.2072077731378544,\"sma1\":0.21005694444444434,\"sma2\":0.20939200733333332,\"rsi_avg_gain\":0.0009976811826035387,\"rsi_avg_loss\":0.0007049682685898595,\"rsi\":59},{\"period_id\":\"120m210041\",\"size\":\"120m\",\"time\":1512295200000,\"open\":0.207,\"high\":0.2094,\"low\":0.20601,\"close\":0.20887,\"volume\":657082.7732712004,\"close_time\":1512302385755,\"vwap\":0.20838583134524094,\"ema1\":0.20694624025080988,\"sma1\":0.2099976851851851,\"sma2\":0.20954367399999996,\"rsi_avg_gain\":0.0009105797351115036,\"rsi_avg_loss\":0.0007591965969429255,\"rsi\":55},{\"period_id\":\"120m210040\",\"size\":\"120m\",\"time\":1512288000000,\"open\":0.20712,\"high\":0.208,\"low\":0.20605,\"close\":0.2069,\"volume\":404712.48956450995,\"close_time\":1512295180202,\"vwap\":0.2023697321338618,\"ema1\":0.20681356716465885,\"sma1\":0.20997175925925918,\"sma2\":0.20967867399999998,\"rsi_avg_gain\":0.0008290858685816192,\"rsi_avg_loss\":0.0008175963351693044,\"rsi\":50},{\"period_id\":\"120m210039\",\"size\":\"120m\",\"time\":1512280800000,\"open\":0.2053,\"high\":0.208,\"low\":0.20519,\"close\":0.20711,\"volume\":91034.59465931001,\"close_time\":1512287925924,\"vwap\":0.20235633409105128,\"ema1\":0.2068076062794629,\"sma1\":0.2099518518518518,\"sma2\":0.209827174,\"rsi_avg_gain\":0.0008928617046263591,\"rsi_avg_loss\":0.0008643345147977134,\"rsi\":51},{\"period_id\":\"120m210038\",\"size\":\"120m\",\"time\":1512273600000,\"open\":0.20466,\"high\":0.20735,\"low\":0.20465,\"close\":0.20515,\"volume\":341844.85708863003,\"close_time\":1512280257377,\"vwap\":0.2023554116031187,\"ema1\":0.20678675154011553,\"sma1\":0.20992879629629627,\"sma2\":0.20995800733333334,\"rsi_avg_gain\":0.0008107741434437722,\"rsi_avg_loss\":0.0009308217851667682,\"rsi\":47},{\"period_id\":\"120m210037\",\"size\":\"120m\",\"time\":1512266400000,\"open\":0.20416,\"high\":0.20511,\"low\":0.204,\"close\":0.20483,\"volume\":44043.33960736001,\"close_time\":1512273462247,\"vwap\":0.20235139526775117,\"ema1\":0.2068996309566752,\"sma1\":0.20995537037037032,\"sma2\":0.21014017399999999,\"rsi_avg_gain\":0.0008485260006317557,\"rsi_avg_loss\":0.0010024234609488272,\"rsi\":46},{\"period_id\":\"120m210036\",\"size\":\"120m\",\"time\":1512259200000,\"open\":0.2061,\"high\":0.2065,\"low\":0.204,\"close\":0.20412,\"volume\":437910.88185003994,\"close_time\":1512266341154,\"vwap\":0.20235125485631408,\"ema1\":0.20704236412610108,\"sma1\":0.20996101851851845,\"sma2\":0.210238174,\"rsi_avg_gain\":0.0008591818468341972,\"rsi_avg_loss\":0.001079532957944891,\"rsi\":44},{\"period_id\":\"120m210035\",\"size\":\"120m\",\"time\":1512252000000,\"open\":0.2075,\"high\":0.20869,\"low\":0.205,\"close\":0.206,\"volume\":627978.90874285,\"close_time\":1512259172274,\"vwap\":0.2023465763686952,\"ema1\":0.2072439064796253,\"sma1\":0.20996851851851847,\"sma2\":0.21022150733333334,\"rsi_avg_gain\":0.0009252727581291354,\"rsi_avg_loss\":0.0010179585700944985,\"rsi\":48},{\"period_id\":\"120m210034\",\"size\":\"120m\",\"time\":1512244800000,\"open\":0.20626,\"high\":0.208,\"low\":0.20587,\"close\":0.20749,\"volume\":375143.7825295599,\"close_time\":1512251968347,\"vwap\":0.20233376184867558,\"ema1\":0.20732969313339256,\"sma1\":0.20998703703703697,\"sma2\":0.21019650733333337,\"rsi_avg_gain\":0.0009964475856775305,\"rsi_avg_loss\":0.000981647690870997,\"rsi\":50},{\"period_id\":\"120m210033\",\"size\":\"120m\",\"time\":1512237600000,\"open\":0.20752,\"high\":0.20752,\"low\":0.2055,\"close\":0.20671,\"volume\":269664.32342694,\"close_time\":1512244785524,\"vwap\":0.20232625991189113,\"ema1\":0.20731863748741963,\"sma1\":0.20999425925925921,\"sma2\":0.21019750733333334,\"rsi_avg_gain\":0.0010130973999604171,\"rsi_avg_loss\":0.0010571590517072275,\"rsi\":49},{\"period_id\":\"120m210032\",\"size\":\"120m\",\"time\":1512230400000,\"open\":0.20577,\"high\":0.208,\"low\":0.2043,\"close\":0.20702,\"volume\":548313.6903024999,\"close_time\":1512237578495,\"vwap\":0.20232249780785158,\"ema1\":0.20736061248655202,\"sma1\":0.20999425925925921,\"sma2\":0.2101738406666667,\"rsi_avg_gain\":0.0010910279691881415,\"rsi_avg_loss\":0.0011146328249154753,\"rsi\":49},{\"period_id\":\"120m210031\",\"size\":\"120m\",\"time\":1512223200000,\"open\":0.2088,\"high\":0.2088,\"low\":0.205,\"close\":0.20593044,\"volume\":507990.8551120195,\"close_time\":1512230394515,\"vwap\":0.20230646147457346,\"ema1\":0.20738410300286594,\"sma1\":0.20994981481481473,\"sma2\":0.21013533333333337,\"rsi_avg_gain\":0.0010911408898949203,\"rsi_avg_loss\":0.0012003738114474349,\"rsi\":48},{\"period_id\":\"120m210030\",\"size\":\"120m\",\"time\":1512216000000,\"open\":0.2081,\"high\":0.2094,\"low\":0.207,\"close\":0.2087,\"volume\":644599.4130293902,\"close_time\":1512223178420,\"vwap\":0.20228789600669841,\"ema1\":0.20748435562375325,\"sma1\":0.209906574074074,\"sma2\":0.21007350000000002,\"rsi_avg_gain\":0.001175074804502222,\"rsi_avg_loss\":0.0010796671815587757,\"rsi\":52},{\"period_id\":\"120m210029\",\"size\":\"120m\",\"time\":1512208800000,\"open\":0.21,\"high\":0.211,\"low\":0.2061,\"close\":0.2081,\"volume\":1036579.6382968901,\"close_time\":1512215967286,\"vwap\":0.20225838646359406,\"ema1\":0.2074005180805638,\"sma1\":0.20983249999999992,\"sma2\":0.21001350000000005,\"rsi_avg_gain\":0.0012193113279254707,\"rsi_avg_loss\":0.0011627185032171432,\"rsi\":51},{\"period_id\":\"120m210028\",\"size\":\"120m\",\"time\":1512201600000,\"open\":0.2091,\"high\":0.211,\"low\":0.2075,\"close\":0.21,\"volume\":843859.35179703,\"close_time\":1512208772992,\"vwap\":0.20219526959815967,\"ema1\":0.2073522779481889,\"sma1\":0.20976287037037025,\"sma2\":0.20992100000000005,\"rsi_avg_gain\":0.0013131045069966609,\"rsi_avg_loss\":0.0011060045419261553,\"rsi\":54},{\"period_id\":\"120m210027\",\"size\":\"120m\",\"time\":1512194400000,\"open\":0.20701,\"high\":0.20999,\"low\":0.20612,\"close\":0.20916,\"volume\":324696.8229079299,\"close_time\":1512201587493,\"vwap\":0.20213763408833424,\"ema1\":0.20716967642737433,\"sma1\":0.20971555555555546,\"sma2\":0.20984833333333336,\"rsi_avg_gain\":0.001349497161381021,\"rsi_avg_loss\":0.0011910818143820133,\"rsi\":53},{\"period_id\":\"120m210026\",\"size\":\"120m\",\"time\":1512187200000,\"open\":0.20948,\"high\":0.20958,\"low\":0.2065,\"close\":0.2066,\"volume\":423074.3872495901,\"close_time\":1512194238488,\"vwap\":0.20212855496990256,\"ema1\":0.20703241273271047,\"sma1\":0.20966759259259252,\"sma2\":0.20982000000000006,\"rsi_avg_gain\":0.0012563815584103297,\"rsi_avg_loss\":0.001282703492411399,\"rsi\":49},{\"period_id\":\"120m210025\",\"size\":\"120m\",\"time\":1512180000000,\"open\":0.20896,\"high\":0.20956,\"low\":0.207,\"close\":0.20911,\"volume\":97823.74024907005,\"close_time\":1512186828813,\"vwap\":0.20212007208178212,\"ema1\":0.20706223430048362,\"sma1\":0.20960861111111107,\"sma2\":0.2097263333333334,\"rsi_avg_gain\":0.0013530262936726628,\"rsi_avg_loss\":0.0011882960687507385,\"rsi\":53},{\"period_id\":\"120m210024\",\"size\":\"120m\",\"time\":1512172800000,\"open\":0.21257,\"high\":0.2126,\"low\":0.20706,\"close\":0.20896,\"volume\":1319666.9405931998,\"close_time\":1512179990311,\"vwap\":0.20211869858433448,\"ema1\":0.20692100907982733,\"sma1\":0.20952953703703697,\"sma2\":0.20963566666666678,\"rsi_avg_gain\":0.0014455667778013304,\"rsi_avg_loss\":0.0012797034586546415,\"rsi\":53},{\"period_id\":\"120m210023\",\"size\":\"120m\",\"time\":1512165600000,\"open\":0.21203,\"high\":0.215,\"low\":0.21065,\"close\":0.21257,\"volume\":2184093.836138379,\"close_time\":1512172768309,\"vwap\":0.20200016301130908,\"ema1\":0.20678038901636714,\"sma1\":0.20943694444444438,\"sma2\":0.20948033333333343,\"rsi_avg_gain\":0.0015567642222475864,\"rsi_avg_loss\":0.001100449878551152,\"rsi\":59},{\"period_id\":\"120m210022\",\"size\":\"120m\",\"time\":1512158400000,\"open\":0.2096,\"high\":0.21236,\"low\":0.20813,\"close\":0.21236,\"volume\":1072673.46061336,\"close_time\":1512165578647,\"vwap\":0.20163144508732125,\"ema1\":0.20638110550025454,\"sma1\":0.20936768518518514,\"sma2\":0.20931766666666674,\"rsi_avg_gain\":0.001660361470112784,\"rsi_avg_loss\":0.001185099869208933,\"rsi\":58},{\"period_id\":\"120m210021\",\"size\":\"120m\",\"time\":1512151200000,\"open\":0.20898,\"high\":0.21,\"low\":0.2071,\"close\":0.2096,\"volume\":906369.1453939505,\"close_time\":1512158399931,\"vwap\":0.20151706165906888,\"ema1\":0.20596876794854796,\"sma1\":0.20930212962962957,\"sma2\":0.20919100000000007,\"rsi_avg_gain\":0.0015757738908906914,\"rsi_avg_loss\":0.00127626139760962,\"rsi\":55},{\"period_id\":\"120m210020\",\"size\":\"120m\",\"time\":1512144000000,\"open\":0.20799,\"high\":0.212,\"low\":0.20799,\"close\":0.20841,\"volume\":1272584.15052845,\"close_time\":1512151168203,\"vwap\":0.20144535101235797,\"ema1\":0.20571833815189608,\"sma1\":0.2092280555555555,\"sma2\":0.20910916666666676,\"rsi_avg_gain\":0.001605448805574591,\"rsi_avg_loss\":0.0013744353512718985,\"rsi\":54},{\"period_id\":\"120m210019\",\"size\":\"120m\",\"time\":1512136800000,\"open\":0.20921,\"high\":0.20998,\"low\":0.207,\"close\":0.20876,\"volume\":1429491.255365281,\"close_time\":1512143985731,\"vwap\":0.20126484057675703,\"ema1\":0.2055327063003027,\"sma1\":0.2091541666666666,\"sma2\":0.20902983333333341,\"rsi_avg_gain\":0.0017289448675418674,\"rsi_avg_loss\":0.001453238070600507,\"rsi\":54},{\"period_id\":\"120m210018\",\"size\":\"120m\",\"time\":1512129600000,\"open\":0.20256,\"high\":0.2169,\"low\":0.20121,\"close\":0.2095,\"volume\":2799926.6295868102,\"close_time\":1512136798511,\"vwap\":0.20109352607343955,\"ema1\":0.20531013432101325,\"sma1\":0.20901481481481474,\"sma2\":0.2089548333333334,\"rsi_avg_gain\":0.0018619406265835494,\"rsi_avg_loss\":0.0015081025375697774,\"rsi\":55},{\"period_id\":\"120m210017\",\"size\":\"120m\",\"time\":1512122400000,\"open\":0.202104,\"high\":0.207,\"low\":0.201,\"close\":0.20258,\"volume\":1291062.32261302,\"close_time\":1512129593960,\"vwap\":0.20041357271480492,\"ema1\":0.20502117806729003,\"sma1\":0.2089685185185185,\"sma2\":0.20900850000000007,\"rsi_avg_gain\":0.0014728591363207468,\"rsi_avg_loss\":0.0016241104250751448,\"rsi\":48},{\"period_id\":\"120m210016\",\"size\":\"120m\",\"time\":1512115200000,\"open\":0.19814,\"high\":0.20206,\"low\":0.196,\"close\":0.20206,\"volume\":713837.5213206597,\"close_time\":1512122388374,\"vwap\":0.20033971033812334,\"ema1\":0.205189535175379,\"sma1\":0.20896796296296294,\"sma2\":0.2090548333333334,\"rsi_avg_gain\":0.0015461559929608026,\"rsi_avg_loss\":0.0017490419962347713,\"rsi\":47},{\"period_id\":\"120m210015\",\"size\":\"120m\",\"time\":1512108000000,\"open\":0.19743,\"high\":0.19982,\"low\":0.1961,\"close\":0.1971,\"volume\":557649.4492912301,\"close_time\":1512115180599,\"vwap\":0.20034275776752308,\"ema1\":0.2054053651874741,\"sma1\":0.20899740740740735,\"sma2\":0.2091865000000001,\"rsi_avg_gain\":0.0012835526078039418,\"rsi_avg_loss\":0.0018835836882528307,\"rsi\":41},{\"period_id\":\"120m210014\",\"size\":\"120m\",\"time\":1512100800000,\"open\":0.199,\"high\":0.20197,\"low\":0.19702,\"close\":0.1975,\"volume\":635311.7339892703,\"close_time\":1512107990517,\"vwap\":0.20035860203121417,\"ema1\":0.2059781489935068,\"sma1\":0.20898657407407406,\"sma2\":0.20932833333333345,\"rsi_avg_gain\":0.0013822874237888606,\"rsi_avg_loss\":0.0019977055104261243,\"rsi\":41},{\"period_id\":\"120m210013\",\"size\":\"120m\",\"time\":1512093600000,\"open\":0.20012,\"high\":0.201,\"low\":0.19722,\"close\":0.1976,\"volume\":236566.50866583994,\"close_time\":1512100510000,\"vwap\":0.20036772955136137,\"ema1\":0.2065628489240935,\"sma1\":0.20897259259259257,\"sma2\":0.20943650000000008,\"rsi_avg_gain\":0.001488617225618773,\"rsi_avg_loss\":0.002143682857381981,\"rsi\":41},{\"period_id\":\"120m210012\",\"size\":\"120m\",\"time\":1512086400000,\"open\":0.20222,\"high\":0.2041,\"low\":0.198,\"close\":0.20012,\"volume\":698903.8259039099,\"close_time\":1512093589718,\"vwap\":0.20036985127533688,\"ema1\":0.20718097643609992,\"sma1\":0.20892999999999995,\"sma2\":0.20950633333333343,\"rsi_avg_gain\":0.0016031262429740633,\"rsi_avg_loss\":0.002114735384872903,\"rsi\":43},{\"period_id\":\"120m210011\",\"size\":\"120m\",\"time\":1512079200000,\"open\":0.20296,\"high\":0.20684,\"low\":0.20112,\"close\":0.2026,\"volume\":1227702.9432458305,\"close_time\":1512086391967,\"vwap\":0.20037046394820907,\"ema1\":0.20766794032824476,\"sma1\":0.20887870370370368,\"sma2\":0.20958883333333342,\"rsi_avg_gain\":0.0017264436462797604,\"rsi_avg_loss\":0.0020866381067862027,\"rsi\":45},{\"period_id\":\"120m210010\",\"size\":\"120m\",\"time\":1512072000000,\"open\":0.2039,\"high\":0.2045,\"low\":0.19901,\"close\":0.2024,\"volume\":1258077.1042229799,\"close_time\":1512079169720,\"vwap\":0.2003083047661122,\"ema1\":0.20801745345433062,\"sma1\":0.20884907407407405,\"sma2\":0.20968183333333337,\"rsi_avg_gain\":0.0018438623883012802,\"rsi_avg_loss\":0.0022471487303851417,\"rsi\":45},{\"period_id\":\"120m210009\",\"size\":\"120m\",\"time\":1512064800000,\"open\":0.19698,\"high\":0.2046,\"low\":0.19566,\"close\":0.2039,\"volume\":1647673.1437247903,\"close_time\":1512071867725,\"vwap\":0.20028599752032147,\"ema1\":0.2084048640373879,\"sma1\":0.2088435185185185,\"sma2\":0.20974683333333338,\"rsi_avg_gain\":0.001985697956632148,\"rsi_avg_loss\":0.0023046217096455374,\"rsi\":46},{\"period_id\":\"120m210008\",\"size\":\"120m\",\"time\":1512057600000,\"open\":0.19378,\"high\":0.19889,\"low\":0.19002,\"close\":0.197,\"volume\":1298684.4076519401,\"close_time\":1512064799932,\"vwap\":0.20022289272471777,\"ema1\":0.20871554431582845,\"sma1\":0.20887231481481483,\"sma2\":0.20992133333333338,\"rsi_avg_gain\":0.0016076747225269295,\"rsi_avg_loss\":0.0024819003026951944,\"rsi\":39},{\"period_id\":\"120m210007\",\"size\":\"120m\",\"time\":1512050400000,\"open\":0.1957,\"high\":0.196,\"low\":0.19,\"close\":0.19341,\"volume\":3496820.0965343695,\"close_time\":1512057579478,\"vwap\":0.20040244420598916,\"ema1\":0.20952351288933385,\"sma1\":0.20893879629629628,\"sma2\":0.21015883333333338,\"rsi_avg_gain\":0.001455188162721308,\"rsi_avg_loss\":0.002672815710594825,\"rsi\":35},{\"period_id\":\"120m210006\",\"size\":\"120m\",\"time\":1512043200000,\"open\":0.201,\"high\":0.205,\"low\":0.1957,\"close\":0.196,\"volume\":2207844.756551129,\"close_time\":1512050392604,\"vwap\":0.20191292470084074,\"ema1\":0.2106347896403224,\"sma1\":0.208925,\"sma2\":0.2103088333333334,\"rsi_avg_gain\":0.0015671257136998702,\"rsi_avg_loss\":0.0026791861498713493,\"rsi\":37},{\"period_id\":\"120m210005\",\"size\":\"120m\",\"time\":1512036000000,\"open\":0.20723,\"high\":0.20859,\"low\":0.2,\"close\":0.20132,\"volume\":1182444.4129667808,\"close_time\":1512043188497,\"vwap\":0.20210689007391489,\"ema1\":0.211644085477586,\"sma1\":0.20887981481481482,\"sma2\":0.21035600000000004,\"rsi_avg_gain\":0.001687673845522937,\"rsi_avg_loss\":0.002476046622938377,\"rsi\":41},{\"period_id\":\"120m210004\",\"size\":\"120m\",\"time\":1512028800000,\"open\":0.206,\"high\":0.2105,\"low\":0.206,\"close\":0.20719,\"volume\":1239318.2030057004,\"close_time\":1512035986958,\"vwap\":0.20209954023152282,\"ema1\":0.21235609137259193,\"sma1\":0.20882814814814818,\"sma2\":0.21028283333333336,\"rsi_avg_gain\":0.001817494910563163,\"rsi_avg_loss\":0.0022149732862413282,\"rsi\":45},{\"period_id\":\"120m210003\",\"size\":\"120m\",\"time\":1512021600000,\"open\":0.2058,\"high\":0.208,\"low\":0.20034,\"close\":0.206,\"volume\":1034005.3892385698,\"close_time\":1512028795858,\"vwap\":0.2018948123007768,\"ema1\":0.21271237353621897,\"sma1\":0.20880490740740745,\"sma2\":0.21024950000000003,\"rsi_avg_gain\":0.0018657637498372508,\"rsi_avg_loss\":0.0023853558467214304,\"rsi\":44},{\"period_id\":\"120m210002\",\"size\":\"120m\",\"time\":1512014400000,\"open\":0.20938,\"high\":0.21089,\"low\":0.205,\"close\":0.20788,\"volume\":707748.94552877,\"close_time\":1512021589204,\"vwap\":0.20183683681781506,\"ema1\":0.21317529584906167,\"sma1\":0.20873240740740742,\"sma2\":0.21019433333333337,\"rsi_avg_gain\":0.00200928403828627,\"rsi_avg_loss\":0.002424229373392308,\"rsi\":45},{\"period_id\":\"120m210001\",\"size\":\"120m\",\"time\":1512007200000,\"open\":0.20915,\"high\":0.21,\"low\":0.20531,\"close\":0.20941,\"volume\":290501.8359916002,\"close_time\":1512014340616,\"vwap\":0.20175138572266038,\"ema1\":0.21354048866623834,\"sma1\":0.2086953703703704,\"sma2\":0.2100956666666667,\"rsi_avg_gain\":0.0021638443489236754,\"rsi_avg_loss\":0.0024930162482686394,\"rsi\":46},{\"period_id\":\"120m210000\",\"size\":\"120m\",\"time\":1512000000000,\"open\":0.201,\"high\":0.20999,\"low\":0.2,\"close\":0.20998,\"volume\":1165564.5829144393,\"close_time\":1512007030383,\"vwap\":0.20173596322186296,\"ema1\":0.2138253499535651,\"sma1\":0.20865833333333336,\"sma2\":0.2099876666666667,\"rsi_avg_gain\":0.0023302939142254967,\"rsi_avg_loss\":0.002640940575058536,\"rsi\":47},{\"period_id\":\"120m209999\",\"size\":\"120m\",\"time\":1511992800000,\"open\":0.20395,\"high\":0.21,\"low\":0.2,\"close\":0.20105,\"volume\":1814667.9738222098,\"close_time\":1511999980364,\"vwap\":0.201651824810015,\"ema1\":0.21409054650208684,\"sma1\":0.20863870370370372,\"sma2\":0.2100181666666667,\"rsi_avg_gain\":0.001822624215319766,\"rsi_avg_loss\":0.002844089850063039,\"rsi\":39},{\"period_id\":\"120m209998\",\"size\":\"120m\",\"time\":1511985600000,\"open\":0.1959,\"high\":0.21,\"low\":0.191,\"close\":0.20478,\"volume\":4757349.276058303,\"close_time\":1511992776919,\"vwap\":0.20141340440181127,\"ema1\":0.21498989453671352,\"sma1\":0.20861925925925925,\"sma2\":0.20996150000000005,\"rsi_avg_gain\":0.0019628260780366713,\"rsi_avg_loss\":0.0027759429154525046,\"rsi\":41},{\"period_id\":\"120m209997\",\"size\":\"120m\",\"time\":1511978400000,\"open\":0.21606,\"high\":0.21957,\"low\":0.192,\"close\":0.19899,\"volume\":4420248.183224255,\"close_time\":1511985598964,\"vwap\":0.20146819970795318,\"ema1\":0.2156940251944179,\"sma1\":0.2085112962962963,\"sma2\":0.21001166666666674,\"rsi_avg_gain\":0.0016684280840394933,\"rsi_avg_loss\":0.002989476985871928,\"rsi\":36},{\"period_id\":\"120m209996\",\"size\":\"120m\",\"time\":1511971200000,\"open\":0.21998,\"high\":0.223,\"low\":0.216,\"close\":0.216,\"volume\":2351105.5345271663,\"close_time\":1511978391883,\"vwap\":0.22171233271872884,\"ema1\":0.21684602693196398,\"sma1\":0.20834462962962963,\"sma2\":0.20977833333333334,\"rsi_avg_gain\":0.001796768705888685,\"rsi_avg_loss\":0.0019109752155543843,\"rsi\":48},{\"period_id\":\"120m209995\",\"size\":\"120m\",\"time\":1511964000000,\"open\":0.22841,\"high\":0.23,\"low\":0.218,\"close\":0.218,\"volume\":4281064.854303387,\"close_time\":1511971197605,\"vwap\":0.22181424165737318,\"ema1\":0.21690437361692702,\"sma1\":0.20811185185185188,\"sma2\":0.20949500000000004,\"rsi_avg_gain\":0.0019349816832647377,\"rsi_avg_loss\":0.001904127155212414,\"rsi\":50},{\"period_id\":\"120m209994\",\"size\":\"120m\",\"time\":1511956800000,\"open\":0.22286,\"high\":0.22878,\"low\":0.22169,\"close\":0.22799,\"volume\":3263738.472919323,\"close_time\":1511963974595,\"vwap\":0.22164675307843992,\"ema1\":0.2168288131767151,\"sma1\":0.20787731481481483,\"sma2\":0.20903600000000006,\"rsi_avg_gain\":0.002083826428131256,\"rsi_avg_loss\":0.0012821369363825996,\"rsi\":62},{\"period_id\":\"120m209993\",\"size\":\"120m\",\"time\":1511949600000,\"open\":0.22398,\"high\":0.22488,\"low\":0.22111,\"close\":0.22242,\"volume\":2361820.0209971713,\"close_time\":1511956799508,\"vwap\":0.22137040254985707,\"ema1\":0.21605907615441958,\"sma1\":0.20768370370370373,\"sma2\":0.20868383333333335,\"rsi_avg_gain\":0.0018156592302951999,\"rsi_avg_loss\":0.0013807628545658764,\"rsi\":57},{\"period_id\":\"120m209992\",\"size\":\"120m\",\"time\":1511942400000,\"open\":0.2195,\"high\":0.22488,\"low\":0.2177,\"close\":0.2239,\"volume\":2649396.6815256095,\"close_time\":1511949549969,\"vwap\":0.2212622891374979,\"ema1\":0.2156203917512761,\"sma1\":0.20746259259259267,\"sma2\":0.20830200000000007,\"rsi_avg_gain\":0.001955325324933292,\"rsi_avg_loss\":0.0013731292279940222,\"rsi\":59},{\"period_id\":\"120m209991\",\"size\":\"120m\",\"time\":1511935200000,\"open\":0.2175,\"high\":0.22077,\"low\":0.214,\"close\":0.2205,\"volume\":2973725.5863664374,\"close_time\":1511942396778,\"vwap\":0.22117234024168414,\"ema1\":0.21504938428584686,\"sma1\":0.20727925925925936,\"sma2\":0.2079796666666667,\"rsi_avg_gain\":0.0018441965037743157,\"rsi_avg_loss\":0.0014787545532243315,\"rsi\":55},{\"period_id\":\"120m209990\",\"size\":\"120m\",\"time\":1511928000000,\"open\":0.22001,\"high\":0.22217,\"low\":0.2151,\"close\":0.2175,\"volume\":1326236.08597484,\"close_time\":1511935186922,\"vwap\":0.22164543889285446,\"ema1\":0.2146734797538363,\"sma1\":0.20712027777777783,\"sma2\":0.2077513333333334,\"rsi_avg_gain\":0.001755288542526186,\"rsi_avg_loss\":0.001592504903472357,\"rsi\":52},{\"period_id\":\"120m209989\",\"size\":\"120m\",\"time\":1511920800000,\"open\":0.22788,\"high\":0.22788,\"low\":0.22,\"close\":0.22,\"volume\":579065.919381,\"close_time\":1511926770791,\"vwap\":0.2217352910944273,\"ema1\":0.2144785473230664,\"sma1\":0.2068621296296297,\"sma2\":0.20747766666666675,\"rsi_avg_gain\":0.0018903107381051233,\"rsi_avg_loss\":0.0015226975883548457,\"rsi\":55},{\"period_id\":\"120m209988\",\"size\":\"120m\",\"time\":1511913600000,\"open\":0.23498,\"high\":0.235,\"low\":0.22137,\"close\":0.227,\"volume\":1532362.66207104,\"close_time\":1511920523754,\"vwap\":0.22173849453929825,\"ema1\":0.21409775748327786,\"sma1\":0.20650898148148156,\"sma2\":0.20706983333333343,\"rsi_avg_gain\":0.002035719256420902,\"rsi_avg_loss\":0.0011013666336129103,\"rsi\":65},{\"period_id\":\"120m209987\",\"size\":\"120m\",\"time\":1511906400000,\"open\":0.22599,\"high\":0.235,\"low\":0.22402,\"close\":0.23374,\"volume\":5473626.6050023865,\"close_time\":1511913591464,\"vwap\":0.2215050030760679,\"ema1\":0.2132079476545384,\"sma1\":0.20614666666666673,\"sma2\":0.2065958333333334,\"rsi_avg_gain\":0.002192313045376356,\"rsi_avg_loss\":0.0006676256054292884,\"rsi\":77},{\"period_id\":\"120m209986\",\"size\":\"120m\",\"time\":1511899200000,\"open\":0.22344,\"high\":0.2275,\"low\":0.221,\"close\":0.22599,\"volume\":1912175.8815506604,\"close_time\":1511906390069,\"vwap\":0.21812242967771733,\"ema1\":0.21179194404450657,\"sma1\":0.2058545370370371,\"sma2\":0.20629600000000006,\"rsi_avg_gain\":0.0017647986642514598,\"rsi_avg_loss\":0.0007189814212315414,\"rsi\":71},{\"period_id\":\"120m209985\",\"size\":\"120m\",\"time\":1511892000000,\"open\":0.22245,\"high\":0.22395,\"low\":0.22021,\"close\":0.22111,\"volume\":1405796.5932471403,\"close_time\":1511899189317,\"vwap\":0.21764475626790053,\"ema1\":0.21081276777171393,\"sma1\":0.20559564814814818,\"sma2\":0.2060825,\"rsi_avg_gain\":0.0015251677922708032,\"rsi_avg_loss\":0.0007742876844031984,\"rsi\":66},{\"period_id\":\"120m209984\",\"size\":\"120m\",\"time\":1511884800000,\"open\":0.2223,\"high\":0.22769,\"low\":0.2201,\"close\":0.223,\"volume\":3903963.718945954,\"close_time\":1511891998498,\"vwap\":0.2173649629245219,\"ema1\":0.21010261382493559,\"sma1\":0.20531611111111112,\"sma2\":0.20581599999999997,\"rsi_avg_gain\":0.0016424883916762495,\"rsi_avg_loss\":0.0006884636601265212,\"rsi\":70},{\"period_id\":\"120m209983\",\"size\":\"120m\",\"time\":1511877600000,\"open\":0.21498,\"high\":0.2223,\"low\":0.21382,\"close\":0.2223,\"volume\":3476791.268732116,\"close_time\":1511884789277,\"vwap\":0.21515855192240757,\"ema1\":0.20921313891631046,\"sma1\":0.20508092592592592,\"sma2\":0.20551100000000003,\"rsi_avg_gain\":0.0017149874987282682,\"rsi_avg_loss\":0.0007414224032131767,\"rsi\":70},{\"period_id\":\"120m209982\",\"size\":\"120m\",\"time\":1511870400000,\"open\":0.21701,\"high\":0.21897,\"low\":0.21,\"close\":0.21324,\"volume\":1580030.8104449601,\"close_time\":1511877576662,\"vwap\":0.21352727442951344,\"ema1\":0.20831059677260774,\"sma1\":0.20487055555555556,\"sma2\":0.20535616666666667,\"rsi_avg_gain\":0.0011499865370919824,\"rsi_avg_loss\":0.0007984548957680363,\"rsi\":59},{\"period_id\":\"120m209981\",\"size\":\"120m\",\"time\":1511863200000,\"open\":0.2144,\"high\":0.21995,\"low\":0.21399,\"close\":0.21797,\"volume\":2105043.1876786407,\"close_time\":1511870399364,\"vwap\":0.213484607848232,\"ema1\":0.2079706379293393,\"sma1\":0.20467657407407408,\"sma2\":0.2050981666666667,\"rsi_avg_gain\":0.0012384470399452118,\"rsi_avg_loss\":0.0004960283492886556,\"rsi\":71},{\"period_id\":\"120m209980\",\"size\":\"120m\",\"time\":1511856000000,\"open\":0.21703,\"high\":0.218,\"low\":0.20949,\"close\":0.215,\"volume\":1955352.6909786584,\"close_time\":1511863185135,\"vwap\":0.21248197372144556,\"ema1\":0.20728102675205237,\"sma1\":0.20445435185185185,\"sma2\":0.2048826666666667,\"rsi_avg_gain\":0.0011052506584025357,\"rsi_avg_loss\":0.0005341843761570138,\"rsi\":67},{\"period_id\":\"120m209979\",\"size\":\"120m\",\"time\":1511848800000,\"open\":0.2126,\"high\":0.21772,\"low\":0.2101,\"close\":0.21602,\"volume\":1171198.8276388498,\"close_time\":1511855966678,\"vwap\":0.21219460198994544,\"ema1\":0.20674868376943528,\"sma1\":0.20422814814814816,\"sma2\":0.2046606666666667,\"rsi_avg_gain\":0.0011902699398181154,\"rsi_avg_loss\":0.0004968139435537077,\"rsi\":71},{\"period_id\":\"120m209978\",\"size\":\"120m\",\"time\":1511841600000,\"open\":0.21568,\"high\":0.218,\"low\":0.2126,\"close\":0.213,\"volume\":1039125.3916204604,\"close_time\":1511848787131,\"vwap\":0.2119138918603576,\"ema1\":0.206109282650086,\"sma1\":0.20400620370370373,\"sma2\":0.20447433333333334,\"rsi_avg_gain\":0.0010495214736502786,\"rsi_avg_loss\":0.0005350304007501469,\"rsi\":66},{\"period_id\":\"120m209977\",\"size\":\"120m\",\"time\":1511834400000,\"open\":0.21,\"high\":0.21809,\"low\":0.20801,\"close\":0.21576,\"volume\":3468057.7474857005,\"close_time\":1511841578393,\"vwap\":0.2117259175641797,\"ema1\":0.20563406076388502,\"sma1\":0.2037875,\"sma2\":0.20425250000000003,\"rsi_avg_gain\":0.0011302538947003,\"rsi_avg_loss\":0.00036387889311554185,\"rsi\":76},{\"period_id\":\"120m209976\",\"size\":\"120m\",\"time\":1511827200000,\"open\":0.205,\"high\":0.21,\"low\":0.205,\"close\":0.21,\"volume\":1558481.138053661,\"close_time\":1511834380900,\"vwap\":0.20748034350377423,\"ema1\":0.20493572012691158,\"sma1\":0.2036434259259259,\"sma2\":0.20412683333333337,\"rsi_avg_gain\":0.0007741195789080145,\"rsi_avg_loss\":0.0003918695772013528,\"rsi\":66},{\"period_id\":\"120m209975\",\"size\":\"120m\",\"time\":1511820000000,\"open\":0.20599,\"high\":0.2065,\"low\":0.2048,\"close\":0.205,\"volume\":389789.4495868001,\"close_time\":1511827185105,\"vwap\":0.20638313036268227,\"ema1\":0.20458645944600892,\"sma1\":0.20358314814814815,\"sma2\":0.2040988333333334,\"rsi_avg_gain\":0.0004490518542086307,\"rsi_avg_loss\":0.00042201339083222607,\"rsi\":52},{\"period_id\":\"120m209974\",\"size\":\"120m\",\"time\":1511812800000,\"open\":0.20676,\"high\":0.2072,\"low\":0.205,\"close\":0.20599,\"volume\":1422752.5999248598,\"close_time\":1511819964513,\"vwap\":0.206428182138049,\"ema1\":0.20455793940780265,\"sma1\":0.20345999999999995,\"sma2\":0.20407566666666666,\"rsi_avg_gain\":0.00048359430453237155,\"rsi_avg_loss\":0.00037832211320393435,\"rsi\":56},{\"period_id\":\"120m209973\",\"size\":\"120m\",\"time\":1511805600000,\"open\":0.2056,\"high\":0.2075,\"low\":0.20438,\"close\":0.20677,\"volume\":1196450.54110655,\"close_time\":1511812798973,\"vwap\":0.20655975326189968,\"ema1\":0.20445917660834076,\"sma1\":0.2033433333333333,\"sma2\":0.20399083333333332,\"rsi_avg_gain\":0.000520793866419477,\"rsi_avg_loss\":0.00034742381421962133,\"rsi\":60},{\"period_id\":\"120m209972\",\"size\":\"120m\",\"time\":1511798400000,\"open\":0.20379,\"high\":0.20596,\"low\":0.2036,\"close\":0.2056,\"volume\":1021665.5822057405,\"close_time\":1511805533503,\"vwap\":0.20423091180750808,\"ema1\":0.2042998094778815,\"sma1\":0.20321870370370365,\"sma2\":0.20394649999999998,\"rsi_avg_gain\":0.0004708549330671288,\"rsi_avg_loss\":0.000374148723005746,\"rsi\":56},{\"period_id\":\"120m209971\",\"size\":\"120m\",\"time\":1511791200000,\"open\":0.20492,\"high\":0.2057,\"low\":0.20361,\"close\":0.20362,\"volume\":1156598.33650544,\"close_time\":1511798339155,\"vwap\":0.2042123241023144,\"ema1\":0.20421014116601127,\"sma1\":0.2030909259259259,\"sma2\":0.20390683333333334,\"rsi_avg_gain\":0.00035476685099536875,\"rsi_avg_loss\":0.00040292939400618803,\"rsi\":47},{\"period_id\":\"120m209970\",\"size\":\"120m\",\"time\":1511784000000,\"open\":0.20488,\"high\":0.205,\"low\":0.203,\"close\":0.20499,\"volume\":1106405.0097936601,\"close_time\":1511791177277,\"vwap\":0.2041933500814366,\"ema1\":0.20425084055677067,\"sma1\":0.20297490740740737,\"sma2\":0.20384716666666666,\"rsi_avg_gain\":0.00038205660876424325,\"rsi_avg_loss\":0.00032853934739127865,\"rsi\":54},{\"period_id\":\"120m209969\",\"size\":\"120m\",\"time\":1511776800000,\"open\":0.2043,\"high\":0.20497,\"low\":0.20151,\"close\":0.2045,\"volume\":1162813.67094193,\"close_time\":1511783982966,\"vwap\":0.20418818718116089,\"ema1\":0.2041998640434445,\"sma1\":0.20285972222222218,\"sma2\":0.2037865,\"rsi_avg_gain\":0.0003737532709768759,\"rsi_avg_loss\":0.00035381160488291545,\"rsi\":51},{\"period_id\":\"120m209968\",\"size\":\"120m\",\"time\":1511769600000,\"open\":0.2048,\"high\":0.2055,\"low\":0.202,\"close\":0.20445,\"volume\":1043370.4015265596,\"close_time\":1511776708321,\"vwap\":0.2041986377425391,\"ema1\":0.20417916501195793,\"sma1\":0.20275324074074075,\"sma2\":0.20371350000000002,\"rsi_avg_gain\":0.0003986573687443283,\"rsi_avg_loss\":0.00038102788218160124,\"rsi\":51},{\"period_id\":\"120m209967\",\"size\":\"120m\",\"time\":1511762400000,\"open\":0.204,\"high\":0.2056,\"low\":0.2035,\"close\":0.2048,\"volume\":727163.5247073199,\"close_time\":1511769598414,\"vwap\":0.20419748834593543,\"ema1\":0.20416048673692055,\"sma1\":0.20261805555555554,\"sma2\":0.20366683333333338,\"rsi_avg_gain\":0.0004293233201861998,\"rsi_avg_loss\":0.00038341464234941546,\"rsi\":53},{\"period_id\":\"120m209966\",\"size\":\"120m\",\"time\":1511755200000,\"open\":0.20399,\"high\":0.2049,\"low\":0.2035,\"close\":0.2049,\"volume\":169624.14325531002,\"close_time\":1511762296420,\"vwap\":0.20419261797698895,\"ema1\":0.20411638237394955,\"sma1\":0.20250296296296297,\"sma2\":0.2035981666666667,\"rsi_avg_gain\":0.0004623481909697536,\"rsi_avg_loss\":0.00040521576868398674,\"rsi\":53},{\"period_id\":\"120m209965\",\"size\":\"120m\",\"time\":1511748000000,\"open\":0.20393,\"high\":0.20403,\"low\":0.20161,\"close\":0.20349,\"volume\":152512.01532671004,\"close_time\":1511754632407,\"vwap\":0.2041927535914524,\"ema1\":0.20406233977904953,\"sma1\":0.20239157407407407,\"sma2\":0.2035233333333334,\"rsi_avg_gain\":0.0003894518979674274,\"rsi_avg_loss\":0.0004363862124289088,\"rsi\":47},{\"period_id\":\"120m209964\",\"size\":\"120m\",\"time\":1511740800000,\"open\":0.20231,\"high\":0.20396,\"low\":0.2013,\"close\":0.20352,\"volume\":209917.99183870008,\"close_time\":1511747968177,\"vwap\":0.20419403448772588,\"ema1\":0.2041018114879495,\"sma1\":0.20228796296296295,\"sma2\":0.2034266666666667,\"rsi_avg_gain\":0.00041940973627261415,\"rsi_avg_loss\":0.0004676466903080555,\"rsi\":47},{\"period_id\":\"120m209963\",\"size\":\"120m\",\"time\":1511733600000,\"open\":0.2026,\"high\":0.20495,\"low\":0.201,\"close\":0.20325,\"volume\":635724.2675824101,\"close_time\":1511740746473,\"vwap\":0.20419590797243126,\"ema1\":0.20414193641815293,\"sma1\":0.20218731481481478,\"sma2\":0.20334450000000007,\"rsi_avg_gain\":0.00043090279290896753,\"rsi_avg_loss\":0.0005036195126394444,\"rsi\":46},{\"period_id\":\"120m209962\",\"size\":\"120m\",\"time\":1511726400000,\"open\":0.202,\"high\":0.20407,\"low\":0.201,\"close\":0.2026,\"volume\":465787.79993479024,\"close_time\":1511733598819,\"vwap\":0.20421320685789,\"ema1\":0.20420344927457726,\"sma1\":0.20209481481481475,\"sma2\":0.20330283333333338,\"rsi_avg_gain\":0.000414049161594274,\"rsi_avg_loss\":0.0005423594751501709,\"rsi\":43},{\"period_id\":\"120m209961\",\"size\":\"120m\",\"time\":1511719200000,\"open\":0.2035,\"high\":0.20509,\"low\":0.2011,\"close\":0.202,\"volume\":861816.7927144095,\"close_time\":1511726348696,\"vwap\":0.20422858508034406,\"ema1\":0.2043140319831688,\"sma1\":0.201999074074074,\"sma2\":0.20326950000000005,\"rsi_avg_gain\":0.00039974525094768046,\"rsi_avg_loss\":0.0005840794347771072,\"rsi\":41},{\"period_id\":\"120m209960\",\"size\":\"120m\",\"time\":1511712000000,\"open\":0.20403,\"high\":0.2056,\"low\":0.203,\"close\":0.2035,\"volume\":878007.2638635704,\"close_time\":1511719170255,\"vwap\":0.2042573292189649,\"ema1\":0.20447362039580114,\"sma1\":0.20191018518518516,\"sma2\":0.20324416666666673,\"rsi_avg_gain\":0.00043049488563596356,\"rsi_avg_loss\":0.0005136240066830405,\"rsi\":46},{\"period_id\":\"120m209959\",\"size\":\"120m\",\"time\":1511704800000,\"open\":0.20491,\"high\":0.20563,\"low\":0.204,\"close\":0.204,\"volume\":516405.63428572,\"close_time\":1511711912210,\"vwap\":0.2042651213906179,\"ema1\":0.20454076662999432,\"sma1\":0.2018391666666666,\"sma2\":0.2032106666666667,\"rsi_avg_gain\":0.00046360987683873,\"rsi_avg_loss\":0.0005146720071971205,\"rsi\":47},{\"period_id\":\"120m209958\",\"size\":\"120m\",\"time\":1511697600000,\"open\":0.20503,\"high\":0.2057,\"low\":0.2039,\"close\":0.205,\"volume\":523334.76196654997,\"close_time\":1511704792409,\"vwap\":0.2042620006149782,\"ema1\":0.20457806088033875,\"sma1\":0.20177712962962957,\"sma2\":0.20317433333333337,\"rsi_avg_gain\":0.0004992721750570939,\"rsi_avg_loss\":0.000477339084673822,\"rsi\":51},{\"period_id\":\"120m209957\",\"size\":\"120m\",\"time\":1511690400000,\"open\":0.2046,\"high\":0.20647,\"low\":0.2034,\"close\":0.2058,\"volume\":814346.0664185897,\"close_time\":1511697529865,\"vwap\":0.204257529474092,\"ema1\":0.20454896163070693,\"sma1\":0.20171722222222216,\"sma2\":0.2031126666666667,\"rsi_avg_gain\":0.0005376777269845626,\"rsi_avg_loss\":0.00045251901426411427,\"rsi\":54},{\"period_id\":\"120m209956\",\"size\":\"120m\",\"time\":1511683200000,\"open\":0.20497,\"high\":0.2061,\"low\":0.203,\"close\":0.20484,\"volume\":532312.11396432,\"close_time\":1511690345924,\"vwap\":0.2042468377112702,\"ema1\":0.2044626831224798,\"sma1\":0.2016079629629629,\"sma2\":0.20306733333333335,\"rsi_avg_gain\":0.0005051913982910661,\"rsi_avg_loss\":0.00048732816920750763,\"rsi\":51},{\"period_id\":\"120m209955\",\"size\":\"120m\",\"time\":1511676000000,\"open\":0.20519,\"high\":0.20636,\"low\":0.20321,\"close\":0.205,\"volume\":265488.4841529699,\"close_time\":1511683195091,\"vwap\":0.20424297411326167,\"ema1\":0.20443666126885773,\"sma1\":0.2015114814814814,\"sma2\":0.20302150000000005,\"rsi_avg_gain\":0.0005440522750826866,\"rsi_avg_loss\":0.0005125072591465471,\"rsi\":51},{\"period_id\":\"120m209954\",\"size\":\"120m\",\"time\":1511668800000,\"open\":0.20465,\"high\":0.20601,\"low\":0.20355,\"close\":0.20601,\"volume\":185167.23776778998,\"close_time\":1511675783840,\"vwap\":0.20424254362273223,\"ema1\":0.2043978103218824,\"sma1\":0.201427037037037,\"sma2\":0.20296283333333337,\"rsi_avg_gain\":0.0005859024500890471,\"rsi_avg_loss\":0.0004742385867732038,\"rsi\":55},{\"period_id\":\"120m209953\",\"size\":\"120m\",\"time\":1511661600000,\"open\":0.204,\"high\":0.20552,\"low\":0.2036,\"close\":0.20409,\"volume\":169137.82431805995,\"close_time\":1511668637151,\"vwap\":0.20424231444370242,\"ema1\":0.2042866248268398,\"sma1\":0.20133425925925919,\"sma2\":0.2028946666666667,\"rsi_avg_gain\":0.000483279561634358,\"rsi_avg_loss\":0.0005107184780634502,\"rsi\":49},{\"period_id\":\"120m209952\",\"size\":\"120m\",\"time\":1511654400000,\"open\":0.2072,\"high\":0.2072,\"low\":0.2036,\"close\":0.20431,\"volume\":606910.1181575202,\"close_time\":1511661581796,\"vwap\":0.2042422518572072,\"ema1\":0.20430018515972528,\"sma1\":0.2012018518518518,\"sma2\":0.2029205,\"rsi_avg_gain\":0.0005204549125293086,\"rsi_avg_loss\":0.000533081437914485,\"rsi\":49},{\"period_id\":\"120m209951\",\"size\":\"120m\",\"time\":1511647200000,\"open\":0.20798,\"high\":0.208,\"low\":0.2062,\"close\":0.20755,\"volume\":640851.1185827403,\"close_time\":1511654269926,\"vwap\":0.20423681919136963,\"ema1\":0.2042995082741891,\"sma1\":0.20115555555555548,\"sma2\":0.20279466666666665,\"rsi_avg_gain\":0.0005604899058007939,\"rsi_avg_loss\":0.00032485693313867456,\"rsi\":63},{\"period_id\":\"120m209950\",\"size\":\"120m\",\"time\":1511640000000,\"open\":0.2078,\"high\":0.208,\"low\":0.207,\"close\":0.20798,\"volume\":583376.7692860903,\"close_time\":1511647194817,\"vwap\":0.2042103588619171,\"ema1\":0.20407533643102974,\"sma1\":0.2011648148148147,\"sma2\":0.20277833333333334,\"rsi_avg_gain\":0.0006036045139393165,\"rsi_avg_loss\":0.0003167690049185737,\"rsi\":66},{\"period_id\":\"120m209949\",\"size\":\"120m\",\"time\":1511632800000,\"open\":0.20704,\"high\":0.208,\"low\":0.20698,\"close\":0.2078,\"volume\":693878.2040950699,\"close_time\":1511639923044,\"vwap\":0.2041718054773512,\"ema1\":0.20380604928834212,\"sma1\":0.20109999999999992,\"sma2\":0.2027316666666667,\"rsi_avg_gain\":0.0006361894765500344,\"rsi_avg_loss\":0.00034113585145077166,\"rsi\":65},{\"period_id\":\"120m209948\",\"size\":\"120m\",\"time\":1511625600000,\"open\":0.20765,\"high\":0.2085,\"low\":0.20601,\"close\":0.20747,\"volume\":1253601.6867732797,\"close_time\":1511632705865,\"vwap\":0.20412817297321556,\"ema1\":0.20353060441167606,\"sma1\":0.20111203703703695,\"sma2\":0.20269050000000002,\"rsi_avg_gain\":0.0006597425132077275,\"rsi_avg_loss\":0.0003673770707931387,\"rsi\":64},{\"period_id\":\"120m209947\",\"size\":\"120m\",\"time\":1511618400000,\"open\":0.20502,\"high\":0.209,\"low\":0.20309,\"close\":0.20766,\"volume\":2273022.4174963282,\"close_time\":1511625590556,\"vwap\":0.2040287213501266,\"ema1\":0.20325892195730888,\"sma1\":0.2012138888888888,\"sma2\":0.20263783333333332,\"rsi_avg_gain\":0.0007104919373006295,\"rsi_avg_loss\":0.0003810214608541476,\"rsi\":65},{\"period_id\":\"120m209946\",\"size\":\"120m\",\"time\":1511611200000,\"open\":0.204,\"high\":0.2065,\"low\":0.20301,\"close\":0.205,\"volume\":1099203.7551069506,\"close_time\":1511618393805,\"vwap\":0.20374035967334625,\"ema1\":0.202955399333675,\"sma1\":0.20133888888888882,\"sma2\":0.20258283333333332,\"rsi_avg_gain\":0.0005605297786314454,\"rsi_avg_loss\":0.00041033080399677436,\"rsi\":58},{\"period_id\":\"120m209945\",\"size\":\"120m\",\"time\":1511604000000,\"open\":0.20388,\"high\":0.2045,\"low\":0.20223,\"close\":0.20415,\"volume\":416695.1976930502,\"close_time\":1511611180381,\"vwap\":0.2036954879928779,\"ema1\":0.20281439239116986,\"sma1\":0.2010916666666666,\"sma2\":0.20257166666666668,\"rsi_avg_gain\":0.0005382628385261727,\"rsi_avg_loss\":0.0004418947119965262,\"rsi\":55},{\"period_id\":\"120m209944\",\"size\":\"120m\",\"time\":1511596800000,\"open\":0.204,\"high\":0.2043,\"low\":0.2,\"close\":0.2028,\"volume\":499000.01411457005,\"close_time\":1511603793654,\"vwap\":0.203693774026311,\"ema1\":0.20272228152159535,\"sma1\":0.20085351851851846,\"sma2\":0.202525,\"rsi_avg_gain\":0.00047582151841280213,\"rsi_avg_loss\":0.0004758866129193359,\"rsi\":50},{\"period_id\":\"120m209943\",\"size\":\"120m\",\"time\":1511589600000,\"open\":0.20457,\"high\":0.20497,\"low\":0.202,\"close\":0.204,\"volume\":533388.0454640301,\"close_time\":1511596780677,\"vwap\":0.20370113628675693,\"ema1\":0.20271692162653296,\"sma1\":0.2006183333333333,\"sma2\":0.20245,\"rsi_avg_gain\":0.0005124231736753253,\"rsi_avg_loss\":0.0004201855831439018,\"rsi\":55},{\"period_id\":\"120m209942\",\"size\":\"120m\",\"time\":1511582400000,\"open\":0.20222,\"high\":0.20499,\"low\":0.20222,\"close\":0.20457,\"volume\":236988.47305102003,\"close_time\":1511589387547,\"vwap\":0.20370030626899435,\"ema1\":0.20262843346284556,\"sma1\":0.2003841666666666,\"sma2\":0.2023905,\"rsi_avg_gain\":0.0005518403408811196,\"rsi_avg_loss\":0.00040866139723189315,\"rsi\":57},{\"period_id\":\"120m209941\",\"size\":\"120m\",\"time\":1511575200000,\"open\":0.20348,\"high\":0.2045,\"low\":0.2016,\"close\":0.20349,\"volume\":265972.30650534004,\"close_time\":1511581116624,\"vwap\":0.2036997025235356,\"ema1\":0.20249453232235215,\"sma1\":0.20015703703703697,\"sma2\":0.20233233333333328,\"rsi_avg_gain\":0.000511212674795052,\"rsi_avg_loss\":0.00044009688932665416,\"rsi\":54},{\"period_id\":\"120m209940\",\"size\":\"120m\",\"time\":1511568000000,\"open\":0.20287,\"high\":0.20355,\"low\":0.2,\"close\":0.2035,\"volume\":868469.9902756196,\"close_time\":1511575142890,\"vwap\":0.20370079534186772,\"ema1\":0.2024258793790661,\"sma1\":0.19994731481481476,\"sma2\":0.20222166666666663,\"rsi_avg_gain\":0.0005505367267023637,\"rsi_avg_loss\":0.00047318126542870585,\"rsi\":54},{\"period_id\":\"120m209939\",\"size\":\"120m\",\"time\":1511560800000,\"open\":0.20138,\"high\":0.203,\"low\":0.2001,\"close\":0.20288,\"volume\":814359.5293872693,\"close_time\":1511567995794,\"vwap\":0.20372453997038567,\"ema1\":0.20235180209486375,\"sma1\":0.19972231481481478,\"sma2\":0.20209016666666665,\"rsi_avg_gain\":0.0005451933979871622,\"rsi_avg_loss\":0.0005095798243078371,\"rsi\":52},{\"period_id\":\"120m209938\",\"size\":\"120m\",\"time\":1511553600000,\"open\":0.202,\"high\":0.2029,\"low\":0.20001,\"close\":0.20138,\"volume\":909864.2336225205,\"close_time\":1511560780503,\"vwap\":0.2037602248947652,\"ema1\":0.2023153746531302,\"sma1\":0.1995009259259259,\"sma2\":0.2019838333333333,\"rsi_avg_gain\":0.00047174673629386696,\"rsi_avg_loss\":0.0005487782723315168,\"rsi\":46},{\"period_id\":\"120m209937\",\"size\":\"120m\",\"time\":1511546400000,\"open\":0.202,\"high\":0.20249,\"low\":0.20015,\"close\":0.202,\"volume\":696364.2606540502,\"close_time\":1511553569847,\"vwap\":0.20382594236009757,\"ema1\":0.2023798832498978,\"sma1\":0.19928240740740738,\"sma2\":0.20186599999999996,\"rsi_avg_gain\":0.0005080349467780106,\"rsi_avg_loss\":0.0005432996778954789,\"rsi\":48},{\"period_id\":\"120m209936\",\"size\":\"120m\",\"time\":1511539200000,\"open\":0.20135,\"high\":0.2028,\"low\":0.1999,\"close\":0.202,\"volume\":838008.0614882995,\"close_time\":1511546341797,\"vwap\":0.20386278045694972,\"ema1\":0.20240608209471833,\"sma1\":0.19905398148148143,\"sma2\":0.2017648333333333,\"rsi_avg_gain\":0.0005471145580686268,\"rsi_avg_loss\":0.0005850919608105158,\"rsi\":48},{\"period_id\":\"120m209935\",\"size\":\"120m\",\"time\":1511532000000,\"open\":0.20116,\"high\":0.20293,\"low\":0.199,\"close\":0.201,\"volume\":1265678.3266009598,\"close_time\":1511539137387,\"vwap\":0.20391308808272388,\"ema1\":0.20243408775642305,\"sma1\":0.19883574074074073,\"sma2\":0.20167316666666663,\"rsi_avg_gain\":0.0005122772163815981,\"rsi_avg_loss\":0.0006300990347190171,\"rsi\":45},{\"period_id\":\"120m209934\",\"size\":\"120m\",\"time\":1511524800000,\"open\":0.20247,\"high\":0.20311,\"low\":0.20045,\"close\":0.20045,\"volume\":1051248.8631149305,\"close_time\":1511531987163,\"vwap\":0.20407393285568537,\"ema1\":0.2025329903603143,\"sma1\":0.1986217592592592,\"sma2\":0.20158066666666663,\"rsi_avg_gain\":0.0005093754637955655,\"rsi_avg_loss\":0.0006785681912358645,\"rsi\":43},{\"period_id\":\"120m209933\",\"size\":\"120m\",\"time\":1511517600000,\"open\":0.20097,\"high\":0.203,\"low\":0.2,\"close\":0.20129,\"volume\":847409.5129088698,\"close_time\":1511524791332,\"vwap\":0.20420200089371993,\"ema1\":0.2026766448679222,\"sma1\":0.1984087962962962,\"sma2\":0.20148833333333335,\"rsi_avg_gain\":0.0005485581917798397,\"rsi_avg_loss\":0.0006661503597924688,\"rsi\":45},{\"period_id\":\"120m209932\",\"size\":\"120m\",\"time\":1511510400000,\"open\":0.2011,\"high\":0.2052,\"low\":0.198,\"close\":0.20099,\"volume\":2117724.14763733,\"close_time\":1511517580684,\"vwap\":0.20429840854000866,\"ema1\":0.20277227554846855,\"sma1\":0.1981754629629629,\"sma2\":0.20136316666666668,\"rsi_avg_gain\":0.0005676780526859816,\"rsi_avg_loss\":0.0007173926951611203,\"rsi\":44},{\"period_id\":\"120m209931\",\"size\":\"120m\",\"time\":1511503200000,\"open\":0.2038,\"high\":0.20585,\"low\":0.20116,\"close\":0.20116,\"volume\":970807.4843226504,\"close_time\":1511510399395,\"vwap\":0.20536497739331636,\"ema1\":0.20289519110353535,\"sma1\":0.1979268518518518,\"sma2\":0.20119150000000005,\"rsi_avg_gain\":0.0006113455952002879,\"rsi_avg_loss\":0.0007594998255581292,\"rsi\":45},{\"period_id\":\"120m209930\",\"size\":\"120m\",\"time\":1511496000000,\"open\":0.20358,\"high\":0.20486,\"low\":0.20251,\"close\":0.2038,\"volume\":746805.5528653798,\"close_time\":1511503045501,\"vwap\":0.2054808729710321,\"ema1\":0.2030148594555033,\"sma1\":0.1976733333333333,\"sma2\":0.20100000000000004,\"rsi_avg_gain\":0.0006583721794464639,\"rsi_avg_loss\":0.0006148459659856773,\"rsi\":52},{\"period_id\":\"120m209929\",\"size\":\"120m\",\"time\":1511488800000,\"open\":0.20201,\"high\":0.20798,\"low\":0.20201,\"close\":0.20358,\"volume\":230578.55803913996,\"close_time\":1511495740182,\"vwap\":0.2055151559363828,\"ema1\":0.2029607118317449,\"sma1\":0.19739055555555549,\"sma2\":0.20084200000000008,\"rsi_avg_gain\":0.0006920931163269614,\"rsi_avg_loss\":0.0006621418095230372,\"rsi\":51},{\"period_id\":\"120m209928\",\"size\":\"120m\",\"time\":1511481600000,\"open\":0.2052,\"high\":0.20711,\"low\":0.20201,\"close\":0.20253,\"volume\":1199177.8151506893,\"close_time\":1511488793439,\"vwap\":0.2055188704957124,\"ema1\":0.20291800230289972,\"sma1\":0.19711601851851843,\"sma2\":0.2006783333333334,\"rsi_avg_gain\":0.0006645618175828797,\"rsi_avg_loss\":0.0007130757948709632,\"rsi\":48},{\"period_id\":\"120m209927\",\"size\":\"120m\",\"time\":1511474400000,\"open\":0.2079,\"high\":0.2095,\"low\":0.2053,\"close\":0.2053,\"volume\":1323081.9437753898,\"close_time\":1511481589039,\"vwap\":0.2056549481946214,\"ema1\":0.20294476108241005,\"sma1\":0.1968067592592592,\"sma2\":0.2004733333333334,\"rsi_avg_gain\":0.0007156819573969473,\"rsi_avg_loss\":0.0005548508560148817,\"rsi\":56},{\"period_id\":\"120m209926\",\"size\":\"120m\",\"time\":1511467200000,\"open\":0.2083,\"high\":0.21,\"low\":0.20729,\"close\":0.208,\"volume\":1275330.9965464398,\"close_time\":1511474376676,\"vwap\":0.2055999532653429,\"ema1\":0.20278233081223143,\"sma1\":0.19650212962962957,\"sma2\":0.20023533333333343,\"rsi_avg_gain\":0.000770734415658251,\"rsi_avg_loss\":0.00038983938340064327,\"rsi\":66},{\"period_id\":\"120m209925\",\"size\":\"120m\",\"time\":1511460000000,\"open\":0.20701,\"high\":0.2083,\"low\":0.20646,\"close\":0.2083,\"volume\":1232249.5481780006,\"close_time\":1511467164713,\"vwap\":0.20510595430314682,\"ema1\":0.20242249155790257,\"sma1\":0.1962262037037037,\"sma2\":0.19996883333333343,\"rsi_avg_gain\":0.0008300216784011934,\"rsi_avg_loss\":0.00039675010520069106,\"rsi\":68},{\"period_id\":\"120m209924\",\"size\":\"120m\",\"time\":1511452800000,\"open\":0.204,\"high\":0.208,\"low\":0.20257,\"close\":0.20701,\"volume\":3353333.3538510166,\"close_time\":1511459973168,\"vwap\":0.2048321319715723,\"ema1\":0.20201714614810273,\"sma1\":0.19595518518518512,\"sma2\":0.1997133333333334,\"rsi_avg_gain\":0.0007946387305858996,\"rsi_avg_loss\":0.0004272693440622827,\"rsi\":65},{\"period_id\":\"120m209923\",\"size\":\"120m\",\"time\":1511445600000,\"open\":0.2038,\"high\":0.204,\"low\":0.20277,\"close\":0.204,\"volume\":1068651.5517517899,\"close_time\":1511452787259,\"vwap\":0.2030928103659485,\"ema1\":0.20167281139969603,\"sma1\":0.1957237037037037,\"sma2\":0.1995003333333334,\"rsi_avg_gain\":0.0006242263252463525,\"rsi_avg_loss\":0.0004601362166824583,\"rsi\":58},{\"period_id\":\"120m209922\",\"size\":\"120m\",\"time\":1511438400000,\"open\":0.2015,\"high\":0.20473,\"low\":0.20108,\"close\":0.20395,\"volume\":1206952.5871110403,\"close_time\":1511445599875,\"vwap\":0.2030013561647507,\"ema1\":0.20151231563415783,\"sma1\":0.19546222222222218,\"sma2\":0.19929783333333342,\"rsi_avg_gain\":0.0006683975810345339,\"rsi_avg_loss\":0.0004955313102734167,\"rsi\":57},{\"period_id\":\"120m209921\",\"size\":\"120m\",\"time\":1511431200000,\"open\":0.20205,\"high\":0.203,\"low\":0.2004,\"close\":0.20249,\"volume\":1267427.7514401998,\"close_time\":1511438314499,\"vwap\":0.2028096364156205,\"ema1\":0.2013441994709963,\"sma1\":0.19522138888888882,\"sma2\":0.19912800000000005,\"rsi_avg_gain\":0.0006075050872679604,\"rsi_avg_loss\":0.0005336491033713719,\"rsi\":53},{\"period_id\":\"120m209920\",\"size\":\"120m\",\"time\":1511424000000,\"open\":0.20271,\"high\":0.20348,\"low\":0.201,\"close\":0.20207,\"volume\":1254282.6533809998,\"close_time\":1511431188336,\"vwap\":0.2031720458672729,\"ema1\":0.2012651787448581,\"sma1\":0.19496888888888883,\"sma2\":0.19896916666666672,\"rsi_avg_gain\":0.0006219285555193417,\"rsi_avg_loss\":0.000574699034399939,\"rsi\":52},{\"period_id\":\"120m209919\",\"size\":\"120m\",\"time\":1511416800000,\"open\":0.20352,\"high\":0.20488,\"low\":0.2016,\"close\":0.2027,\"volume\":783677.1050473005,\"close_time\":1511423997249,\"vwap\":0.20377783821759418,\"ema1\":0.2012096738307104,\"sma1\":0.19470703703703704,\"sma2\":0.1987408333333334,\"rsi_avg_gain\":0.0006697692136362142,\"rsi_avg_loss\":0.0005704451139691657,\"rsi\":54},{\"period_id\":\"120m209918\",\"size\":\"120m\",\"time\":1511409600000,\"open\":0.20235,\"high\":0.2044,\"low\":0.20158,\"close\":0.20182,\"volume\":332666.98047993996,\"close_time\":1511416739820,\"vwap\":0.2037785499852695,\"ema1\":0.20110689271558696,\"sma1\":0.19445148148148148,\"sma2\":0.19854850000000004,\"rsi_avg_gain\":0.0006535976146851543,\"rsi_avg_loss\":0.0006143255073514092,\"rsi\":52},{\"period_id\":\"120m209917\",\"size\":\"120m\",\"time\":1511402400000,\"open\":0.20245,\"high\":0.20319,\"low\":0.2015,\"close\":0.20245,\"volume\":94018.41895133,\"close_time\":1511409541858,\"vwap\":0.20380030747280709,\"ema1\":0.2010577129028688,\"sma1\":0.19421824074074076,\"sma2\":0.19830600000000007,\"rsi_avg_gain\":0.0007038743542763201,\"rsi_avg_loss\":0.0006131197771476722,\"rsi\":53},{\"period_id\":\"120m209916\",\"size\":\"120m\",\"time\":1511395200000,\"open\":0.20288,\"high\":0.20406,\"low\":0.2015,\"close\":0.20246,\"volume\":905025.8519175604,\"close_time\":1511402350399,\"vwap\":0.2038088152751512,\"ema1\":0.20096169310306666,\"sma1\":0.1939537962962963,\"sma2\":0.1980830000000001,\"rsi_avg_gain\":0.0007580185353744986,\"rsi_avg_loss\":0.0006595136061590309,\"rsi\":53},{\"period_id\":\"120m209915\",\"size\":\"120m\",\"time\":1511388000000,\"open\":0.20468,\"high\":0.205,\"low\":0.2016,\"close\":0.20332,\"volume\":1224339.8817371898,\"close_time\":1511395061474,\"vwap\":0.20402133545365475,\"ema1\":0.20085836159293333,\"sma1\":0.19366212962962964,\"sma2\":0.1979130000000001,\"rsi_avg_gain\":0.0008163276534802293,\"rsi_avg_loss\":0.0006440915758635717,\"rsi\":56},{\"period_id\":\"120m209914\",\"size\":\"120m\",\"time\":1511380800000,\"open\":0.20168,\"high\":0.20488,\"low\":0.20151,\"close\":0.2046,\"volume\":1173801.88607649,\"close_time\":1511387995458,\"vwap\":0.2043193705101295,\"ema1\":0.20068859342692874,\"sma1\":0.19336222222222224,\"sma2\":0.19770300000000005,\"rsi_avg_gain\":0.0008791220883633238,\"rsi_avg_loss\":0.0005951755432376923,\"rsi\":60},{\"period_id\":\"120m209913\",\"size\":\"120m\",\"time\":1511373600000,\"open\":0.2012,\"high\":0.20292,\"low\":0.2,\"close\":0.20168,\"volume\":813905.8158250905,\"close_time\":1511380776554,\"vwap\":0.2004688881749438,\"ema1\":0.20041884124947554,\"sma1\":0.1930805555555556,\"sma2\":0.19755000000000006,\"rsi_avg_gain\":0.0007221314797758867,\"rsi_avg_loss\":0.0006409582773328993,\"rsi\":53},{\"period_id\":\"120m209912\",\"size\":\"120m\",\"time\":1511366400000,\"open\":0.20163,\"high\":0.204,\"low\":0.20009,\"close\":0.20294,\"volume\":1788743.1193710098,\"close_time\":1511373588986,\"vwap\":0.20044686564167674,\"ema1\":0.20033186478392212,\"sma1\":0.192797962962963,\"sma2\":0.1973983333333334,\"rsi_avg_gain\":0.0007776800551432626,\"rsi_avg_loss\":0.000593339683281583,\"rsi\":57},{\"period_id\":\"120m209911\",\"size\":\"120m\",\"time\":1511359200000,\"open\":0.20138,\"high\":0.202,\"low\":0.2,\"close\":0.20124,\"volume\":1000537.6612222702,\"close_time\":1511366359171,\"vwap\":0.20033238670321768,\"ema1\":0.20015199338970985,\"sma1\":0.19253407407407414,\"sma2\":0.1972928333333334,\"rsi_avg_gain\":0.0007067323670773591,\"rsi_avg_loss\":0.0006389811973801663,\"rsi\":53},{\"period_id\":\"120m209910\",\"size\":\"120m\",\"time\":1511352000000,\"open\":0.20086,\"high\":0.20185,\"low\":0.2,\"close\":0.20141,\"volume\":970720.5860405697,\"close_time\":1511359173776,\"vwap\":0.2003149024740098,\"ema1\":0.20007695845106915,\"sma1\":0.19227620370370374,\"sma2\":0.19719100000000003,\"rsi_avg_gain\":0.0007610963953140791,\"rsi_avg_loss\":0.0006750566741017173,\"rsi\":53},{\"period_id\":\"120m209909\",\"size\":\"120m\",\"time\":1511344800000,\"open\":0.20004,\"high\":0.202,\"low\":0.2,\"close\":0.20086,\"volume\":752880.6238023305,\"close_time\":1511351996965,\"vwap\":0.20030604060156307,\"ema1\":0.1999850245511429,\"sma1\":0.19202620370370374,\"sma2\":0.1971566666666667,\"rsi_avg_gain\":0.0007773345795690085,\"rsi_avg_loss\":0.0007269841105710801,\"rsi\":52},{\"period_id\":\"120m209908\",\"size\":\"120m\",\"time\":1511337600000,\"open\":0.20198,\"high\":0.202,\"low\":0.19969,\"close\":0.20007,\"volume\":653744.4946405801,\"close_time\":1511344770041,\"vwap\":0.200288980194514,\"ema1\":0.19992468141673894,\"sma1\":0.19176601851851857,\"sma2\":0.19703050000000003,\"rsi_avg_gain\":0.0007763603164589312,\"rsi_avg_loss\":0.000782905965230394,\"rsi\":50},{\"period_id\":\"120m209907\",\"size\":\"120m\",\"time\":1511330400000,\"open\":0.20033,\"high\":0.203,\"low\":0.2,\"close\":0.202,\"volume\":652858.3084820701,\"close_time\":1511337347406,\"vwap\":0.20027645753536186,\"ema1\":0.19991465944547956,\"sma1\":0.19146509259259265,\"sma2\":0.19679716666666672,\"rsi_avg_gain\":0.000836080340801926,\"rsi_avg_loss\":0.0006946679625558077,\"rsi\":55},{\"period_id\":\"120m209906\",\"size\":\"120m\",\"time\":1511323200000,\"open\":0.1992,\"high\":0.2008,\"low\":0.199,\"close\":0.20078,\"volume\":199170.53298643001,\"close_time\":1511330223591,\"vwap\":0.20025952838229177,\"ema1\":0.19977084285551264,\"sma1\":0.19120675925925928,\"sma2\":0.19668500000000003,\"rsi_avg_gain\":0.000806548059325149,\"rsi_avg_loss\":0.0007481039596754852,\"rsi\":52},{\"period_id\":\"120m209905\",\"size\":\"120m\",\"time\":1511316000000,\"open\":0.19768,\"high\":0.19949,\"low\":0.19766,\"close\":0.199,\"volume\":139487.97756473004,\"close_time\":1511323109528,\"vwap\":0.2002592138070891,\"ema1\":0.19970124581106524,\"sma1\":0.19096027777777783,\"sma2\":0.19655366666666668,\"rsi_avg_gain\":0.0007316671408117008,\"rsi_avg_loss\":0.000805650418112061,\"rsi\":48},{\"period_id\":\"120m209904\",\"size\":\"120m\",\"time\":1511308800000,\"open\":0.1983,\"high\":0.1995,\"low\":0.1976,\"close\":0.19772,\"volume\":297919.29636284005,\"close_time\":1511315945772,\"vwap\":0.20025973481279405,\"ema1\":0.19974960759113872,\"sma1\":0.1907093518518519,\"sma2\":0.19639733333333337,\"rsi_avg_gain\":0.0006894876901049082,\"rsi_avg_loss\":0.0008676235271976041,\"rsi\":44},{\"period_id\":\"120m209903\",\"size\":\"120m\",\"time\":1511301600000,\"open\":0.20021,\"high\":0.2013,\"low\":0.198,\"close\":0.19832,\"volume\":1570212.2911061011,\"close_time\":1511308760197,\"vwap\":0.2002654178028115,\"ema1\":0.19988958052845862,\"sma1\":0.19041935185185185,\"sma2\":0.19626366666666673,\"rsi_avg_gain\":0.0007425252047283627,\"rsi_avg_loss\":0.0008882099523666514,\"rsi\":46},{\"period_id\":\"120m209902\",\"size\":\"120m\",\"time\":1511294400000,\"open\":0.20067,\"high\":0.2013,\"low\":0.2,\"close\":0.2001,\"volume\":826936.2524366702,\"close_time\":1511301577901,\"vwap\":0.20030808422653484,\"ema1\":0.19999782746145578,\"sma1\":0.1901387962962963,\"sma2\":0.19630866666666674,\"rsi_avg_gain\":0.000799642528169006,\"rsi_avg_loss\":0.0008196107179333166,\"rsi\":49},{\"period_id\":\"120m209901\",\"size\":\"120m\",\"time\":1511287200000,\"open\":0.20198,\"high\":0.204,\"low\":0.2,\"close\":0.2,\"volume\":1658189.0110132692,\"close_time\":1511294393668,\"vwap\":0.20030094846514165,\"ema1\":0.1999907810794872,\"sma1\":0.18983324074074073,\"sma2\":0.19622533333333342,\"rsi_avg_gain\":0.0008534611841820073,\"rsi_avg_loss\":0.0008826576962358794,\"rsi\":49},{\"period_id\":\"120m209900\",\"size\":\"120m\",\"time\":1511280000000,\"open\":0.20109,\"high\":0.202,\"low\":0.2006,\"close\":0.20198,\"volume\":655194.4879848204,\"close_time\":1511287150410,\"vwap\":0.20025587304366657,\"ema1\":0.19999014529186562,\"sma1\":0.1895647222222222,\"sma2\":0.1961323333333334,\"rsi_avg_gain\":0.0009191120445037002,\"rsi_avg_loss\":0.000798246749792487,\"rsi\":54},{\"period_id\":\"120m209899\",\"size\":\"120m\",\"time\":1511272800000,\"open\":0.20318,\"high\":0.20318,\"low\":0.2004,\"close\":0.20199,\"volume\":1154399.37290013,\"close_time\":1511279988375,\"vwap\":0.20023247691311047,\"ema1\":0.19985291393268395,\"sma1\":0.18928194444444438,\"sma2\":0.1961825000000001,\"rsi_avg_gain\":0.000989812971003985,\"rsi_avg_loss\":0.0008588811151611391,\"rsi\":54},{\"period_id\":\"120m209898\",\"size\":\"120m\",\"time\":1511265600000,\"open\":0.203,\"high\":0.20351,\"low\":0.20104,\"close\":0.20282,\"volume\":722255.2621213497,\"close_time\":1511272705668,\"vwap\":0.20016967299131538,\"ema1\":0.19970552868666216,\"sma1\":0.18902351851851848,\"sma2\":0.19646883333333343,\"rsi_avg_gain\":0.0010659524303119837,\"rsi_avg_loss\":0.0008611027394043039,\"rsi\":55},{\"period_id\":\"120m209897\",\"size\":\"120m\",\"time\":1511258400000,\"open\":0.20344,\"high\":0.20371,\"low\":0.20164,\"close\":0.2021,\"volume\":1164843.6084483103,\"close_time\":1511265582357,\"vwap\":0.20012328988910966,\"ema1\":0.19949073756160438,\"sma1\":0.18876972222222219,\"sma2\":0.19605050000000007,\"rsi_avg_gain\":0.001092564155720598,\"rsi_avg_loss\":0.0009273414116661734,\"rsi\":54},{\"period_id\":\"120m209896\",\"size\":\"120m\",\"time\":1511251200000,\"open\":0.20227,\"high\":0.20492,\"low\":0.202,\"close\":0.20212,\"volume\":661131.9622503897,\"close_time\":1511258386621,\"vwap\":0.19999069262311756,\"ema1\":0.1993107884279219,\"sma1\":0.1884599074074074,\"sma2\":0.1956318333333334,\"rsi_avg_gain\":0.00117660755231449,\"rsi_avg_loss\":0.0009971369048712643,\"rsi\":54},{\"period_id\":\"120m209895\",\"size\":\"120m\",\"time\":1511244000000,\"open\":0.20199,\"high\":0.20549,\"low\":0.20093,\"close\":0.20225,\"volume\":1112220.7707674399,\"close_time\":1511251168939,\"vwap\":0.19993449854490206,\"ema1\":0.19911704969881308,\"sma1\":0.18814046296296288,\"sma2\":0.19523766666666673,\"rsi_avg_gain\":0.0012671158255694506,\"rsi_avg_loss\":0.001063839743707514,\"rsi\":54},{\"period_id\":\"120m209894\",\"size\":\"120m\",\"time\":1511236800000,\"open\":0.2,\"high\":0.20306,\"low\":0.197,\"close\":0.20249,\"volume\":767532.2100792999,\"close_time\":1511243992356,\"vwap\":0.19982937284068195,\"ema1\":0.19890098416080018,\"sma1\":0.18786722222222213,\"sma2\":0.19485366666666673,\"rsi_avg_gain\":0.0013645862736901776,\"rsi_avg_loss\":0.0011272120316850158,\"rsi\":55},{\"period_id\":\"120m209893\",\"size\":\"120m\",\"time\":1511229600000,\"open\":0.20572,\"high\":0.206,\"low\":0.2,\"close\":0.2,\"volume\":808537.5062438501,\"close_time\":1511236760328,\"vwap\":0.19985024605240748,\"ema1\":0.19865346582706225,\"sma1\":0.1875750925925925,\"sma2\":0.19448700000000005,\"rsi_avg_gain\":0.0012780159870509611,\"rsi_avg_loss\":0.00121392064950694,\"rsi\":51},{\"period_id\":\"120m209892\",\"size\":\"120m\",\"time\":1511222400000,\"open\":0.2,\"high\":0.20599,\"low\":0.2,\"close\":0.20586,\"volume\":658444.3325874807,\"close_time\":1511228996424,\"vwap\":0.19983684823530345,\"ema1\":0.1985606014013424,\"sma1\":0.18731314814814812,\"sma2\":0.19405600000000003,\"rsi_avg_gain\":0.0013763249091318043,\"rsi_avg_loss\":0.0008565299302382449,\"rsi\":62},{\"period_id\":\"120m209891\",\"size\":\"120m\",\"time\":1511215200000,\"open\":0.2075,\"high\":0.20788,\"low\":0.1992,\"close\":0.2,\"volume\":2154059.49515276,\"close_time\":1511222392685,\"vwap\":0.19979473423872304,\"ema1\":0.19805719460143498,\"sma1\":0.18704111111111102,\"sma2\":0.19368600000000005,\"rsi_avg_gain\":0.001031426825218868,\"rsi_avg_loss\":0.0009224168479488791,\"rsi\":53},{\"period_id\":\"120m209890\",\"size\":\"120m\",\"time\":1511208000000,\"open\":0.205,\"high\":0.2079,\"low\":0.204,\"close\":0.207,\"volume\":1726159.0560208398,\"close_time\":1511215187487,\"vwap\":0.19951963414307736,\"ema1\":0.1979232080222236,\"sma1\":0.18678259259259256,\"sma2\":0.19319733333333336,\"rsi_avg_gain\":0.001110767350235704,\"rsi_avg_loss\":0.00045491045163725607,\"rsi\":71},{\"period_id\":\"120m209889\",\"size\":\"120m\",\"time\":1511200800000,\"open\":0.205,\"high\":0.20791,\"low\":0.20401,\"close\":0.205,\"volume\":1288062.0671158903,\"close_time\":1511207996129,\"vwap\":0.19853893732689834,\"ema1\":0.19729722236858385,\"sma1\":0.186524537037037,\"sma2\":0.19271800000000003,\"rsi_avg_gain\":0.0010423648387153735,\"rsi_avg_loss\":0.0004899035633016604,\"rsi\":68},{\"period_id\":\"120m209888\",\"size\":\"120m\",\"time\":1511193600000,\"open\":0.2045,\"high\":0.205,\"low\":0.2012,\"close\":0.205,\"volume\":1174516.4974492008,\"close_time\":1511200734154,\"vwap\":0.1979114416009558,\"ema1\":0.1967659963250379,\"sma1\":0.18628749999999994,\"sma2\":0.19226016666666668,\"rsi_avg_gain\":0.0011225467493857868,\"rsi_avg_loss\":0.0005275884527864035,\"rsi\":68},{\"period_id\":\"120m209887\",\"size\":\"120m\",\"time\":1511186400000,\"open\":0.2017,\"high\":0.20486,\"low\":0.20116,\"close\":0.2045,\"volume\":1245355.5586386702,\"close_time\":1511193599796,\"vwap\":0.19731173221715873,\"ema1\":0.19619813400262673,\"sma1\":0.18600129629629628,\"sma2\":0.19182966666666668,\"rsi_avg_gain\":0.0011704349608770012,\"rsi_avg_loss\":0.0005681721799238192,\"rsi\":67},{\"period_id\":\"120m209886\",\"size\":\"120m\",\"time\":1511179200000,\"open\":0.20345,\"high\":0.20345,\"low\":0.1993,\"close\":0.2017,\"volume\":920490.0952195205,\"close_time\":1511186377172,\"vwap\":0.19674920772602114,\"ema1\":0.19562559152004927,\"sma1\":0.18574498444444443,\"sma2\":0.1914503333333334,\"rsi_avg_gain\":0.0010450838040213862,\"rsi_avg_loss\":0.0006118777322256514,\"rsi\":63},{\"period_id\":\"120m209885\",\"size\":\"120m\",\"time\":1511172000000,\"open\":0.1999,\"high\":0.20397,\"low\":0.1993,\"close\":0.20348,\"volume\":1839783.4880044202,\"close_time\":1511179183122,\"vwap\":0.1964851192791807,\"ema1\":0.19520666679729404,\"sma1\":0.18553609555555556,\"sma2\":0.1910556666666667,\"rsi_avg_gain\":0.0011254748658691852,\"rsi_avg_loss\":0.0005220221731660858,\"rsi\":68},{\"period_id\":\"120m209884\",\"size\":\"120m\",\"time\":1511164800000,\"open\":0.19989,\"high\":0.201,\"low\":0.199,\"close\":0.2,\"volume\":915706.22185213,\"close_time\":1511171992849,\"vwap\":0.19564066153017085,\"ema1\":0.19463609209365915,\"sma1\":0.18535091037037038,\"sma2\":0.19070833333333337,\"rsi_avg_gain\":0.0009443575478591237,\"rsi_avg_loss\":0.0005621777249480923,\"rsi\":63},{\"period_id\":\"120m209883\",\"size\":\"120m\",\"time\":1511157600000,\"open\":0.20058,\"high\":0.20097,\"low\":0.19501,\"close\":0.1995,\"volume\":831625.2586599299,\"close_time\":1511164735130,\"vwap\":0.1953425185008321,\"ema1\":0.19426616741046324,\"sma1\":0.18514146592592595,\"sma2\":0.19035000000000002,\"rsi_avg_gain\":0.0009785388976944409,\"rsi_avg_loss\":0.0006054221653287148,\"rsi\":62},{\"period_id\":\"120m209882\",\"size\":\"120m\",\"time\":1511150400000,\"open\":0.19996,\"high\":0.205,\"low\":0.19909,\"close\":0.201,\"volume\":1616283.4260598102,\"close_time\":1511157581859,\"vwap\":0.19511527919620986,\"ema1\":0.19390521343877104,\"sma1\":0.18488220666666672,\"sma2\":0.18994083333333336,\"rsi_avg_gain\":0.0010538111205940133,\"rsi_avg_loss\":0.0005366084857386159,\"rsi\":66},{\"period_id\":\"120m209881\",\"size\":\"120m\",\"time\":1511143200000,\"open\":0.19688,\"high\":0.2,\"low\":0.19686,\"close\":0.2,\"volume\":1187892.34910101,\"close_time\":1511150148973,\"vwap\":0.1942146592581622,\"ema1\":0.1934159178138587,\"sma1\":0.18466924370370372,\"sma2\":0.18954200000000002,\"rsi_avg_gain\":0.0010579504375627833,\"rsi_avg_loss\":0.0005778860615646633,\"rsi\":65},{\"period_id\":\"120m209880\",\"size\":\"120m\",\"time\":1511136000000,\"open\":0.195,\"high\":0.19686,\"low\":0.19494,\"close\":0.19686,\"volume\":818428.4982289891,\"close_time\":1511143199207,\"vwap\":0.19375641731403026,\"ema1\":0.19296184318033172,\"sma1\":0.18448785481481483,\"sma2\":0.18920450000000003,\"rsi_avg_gain\":0.0008977927789137664,\"rsi_avg_loss\":0.0006223388355311759,\"rsi\":59},{\"period_id\":\"120m209879\",\"size\":\"120m\",\"time\":1511128800000,\"open\":0.19498,\"high\":0.19587,\"low\":0.19353,\"close\":0.19499,\"volume\":774808.4024525699,\"close_time\":1511135815175,\"vwap\":0.19363445782010758,\"ema1\":0.19269300477897527,\"sma1\":0.1843316511111111,\"sma2\":0.188885,\"rsi_avg_gain\":0.0008230076080609784,\"rsi_avg_loss\":0.0006702110536489587,\"rsi\":55},{\"period_id\":\"120m209878\",\"size\":\"120m\",\"time\":1511121600000,\"open\":0.19592,\"high\":0.19595,\"low\":0.1938,\"close\":0.195,\"volume\":735082.8656450599,\"close_time\":1511128784054,\"vwap\":0.1936199148495427,\"ema1\":0.19253459131545633,\"sma1\":0.18414220666666664,\"sma2\":0.18856866666666666,\"rsi_avg_gain\":0.0008863158856041305,\"rsi_avg_loss\":0.0007209965193142625,\"rsi\":55},{\"period_id\":\"120m209877\",\"size\":\"120m\",\"time\":1511114400000,\"open\":0.19593,\"high\":0.19599,\"low\":0.19311,\"close\":0.19493,\"volume\":542808.07858512,\"close_time\":1511121526078,\"vwap\":0.1935810677945259,\"ema1\":0.19236456313031539,\"sma1\":0.18396822518518513,\"sma2\":0.1882625,\"rsi_avg_gain\":0.0009491094152659857,\"rsi_avg_loss\":0.0007764577900307443,\"rsi\":55},{\"period_id\":\"120m209876\",\"size\":\"120m\",\"time\":1511107200000,\"open\":0.195,\"high\":0.1975,\"low\":0.19462,\"close\":0.19593,\"volume\":736890.6753688401,\"close_time\":1511114338732,\"vwap\":0.19354283506417064,\"ema1\":0.19218763644964748,\"sma1\":0.1837876696296296,\"sma2\":0.18795900000000001,\"rsi_avg_gain\":0.0010221178318249077,\"rsi_avg_loss\":0.0007592622354177246,\"rsi\":57},{\"period_id\":\"120m209875\",\"size\":\"120m\",\"time\":1511100000000,\"open\":0.1949,\"high\":0.1969,\"low\":0.19441,\"close\":0.1955,\"volume\":602072.8910201305,\"close_time\":1511107180197,\"vwap\":0.1933488069521776,\"ema1\":0.19192954241169213,\"sma1\":0.183620077037037,\"sma2\":0.18766566666666668,\"rsi_avg_gain\":0.0010676653573499016,\"rsi_avg_loss\":0.0008176670227575496,\"rsi\":57},{\"period_id\":\"120m209874\",\"size\":\"120m\",\"time\":1511092800000,\"open\":0.19514,\"high\":0.19625,\"low\":0.19305,\"close\":0.1949,\"volume\":664404.7235030198,\"close_time\":1511099955847,\"vwap\":0.19321235534719328,\"ema1\":0.19168330395732608,\"sma1\":0.18350841037037036,\"sma2\":0.18735733333333332,\"rsi_avg_gain\":0.001103639615607585,\"rsi_avg_loss\":0.0008805644860465919,\"rsi\":56},{\"period_id\":\"120m209873\",\"size\":\"120m\",\"time\":1511085600000,\"open\":0.19348,\"high\":0.199,\"low\":0.19165,\"close\":0.19575,\"volume\":1621898.0825811503,\"close_time\":1511092680789,\"vwap\":0.19311787716267226,\"ema1\":0.19146146285093477,\"sma1\":0.18338970666666668,\"sma2\":0.18702149999999998,\"rsi_avg_gain\":0.0011885349706543223,\"rsi_avg_loss\":0.0008829156003578668,\"rsi\":57},{\"period_id\":\"120m209872\",\"size\":\"120m\",\"time\":1511078400000,\"open\":0.19096,\"high\":0.194,\"low\":0.18996,\"close\":0.19348,\"volume\":852182.0922368199,\"close_time\":1511085595664,\"vwap\":0.19196804055220557,\"ema1\":0.19116570166824062,\"sma1\":0.1833113733333333,\"sma2\":0.1867268333333333,\"rsi_avg_gain\":0.0011053453530123476,\"rsi_avg_loss\":0.0009508321850007796,\"rsi\":54},{\"period_id\":\"120m209871\",\"size\":\"120m\",\"time\":1511071200000,\"open\":0.19277,\"high\":0.19329,\"low\":0.19,\"close\":0.19086,\"volume\":458432.8250426699,\"close_time\":1511078362857,\"vwap\":0.19207828756820539,\"ema1\":0.19100609488673997,\"sma1\":0.18325933629629632,\"sma2\":0.18645166666666663,\"rsi_avg_gain\":0.0009888334570902196,\"rsi_avg_loss\":0.0010239731223085319,\"rsi\":49},{\"period_id\":\"120m209870\",\"size\":\"120m\",\"time\":1511064000000,\"open\":0.194,\"high\":0.19403,\"low\":0.1923,\"close\":0.19231,\"volume\":53869.48320576,\"close_time\":1511071090724,\"vwap\":0.19217368854698752,\"ema1\":0.19101617039617033,\"sma1\":0.18321554,\"sma2\":0.18617949999999997,\"rsi_avg_gain\":0.0010648975691740826,\"rsi_avg_loss\":0.0009912018240245722,\"rsi\":52},{\"period_id\":\"120m209869\",\"size\":\"120m\",\"time\":1511056800000,\"open\":0.19382,\"high\":0.19447,\"low\":0.19291,\"close\":0.1941,\"volume\":69829.77653239999,\"close_time\":1511063790758,\"vwap\":0.19217251857375953,\"ema1\":0.19092694076832,\"sma1\":0.18316304,\"sma2\":0.18588683333333325,\"rsi_avg_gain\":0.001146812766802858,\"rsi_avg_loss\":0.000929755810488002,\"rsi\":55},{\"period_id\":\"120m209868\",\"size\":\"120m\",\"time\":1511049600000,\"open\":0.193,\"high\":0.19444,\"low\":0.1925,\"close\":0.19271,\"volume\":124356.55947407,\"close_time\":1511056574457,\"vwap\":0.19216988459418535,\"ema1\":0.19070810909716968,\"sma1\":0.18311359555555548,\"sma2\":0.18559999999999993,\"rsi_avg_gain\":0.0011281060565569239,\"rsi_avg_loss\":0.0010012754882178483,\"rsi\":53},{\"period_id\":\"120m209867\",\"size\":\"120m\",\"time\":1511042400000,\"open\":0.1935,\"high\":0.19999,\"low\":0.19211,\"close\":0.193,\"volume\":1359178.4623398397,\"close_time\":1511049586357,\"vwap\":0.19216354867318428,\"ema1\":0.19057004765559518,\"sma1\":0.18301600296296291,\"sma2\":0.18527499999999997,\"rsi_avg_gain\":0.001214883445522841,\"rsi_avg_loss\":0.001055988987311528,\"rsi\":53},{\"period_id\":\"120m209866\",\"size\":\"120m\",\"time\":1511035200000,\"open\":0.19234,\"high\":0.1939,\"low\":0.19201,\"close\":0.19372,\"volume\":268536.1830867801,\"close_time\":1511042361722,\"vwap\":0.19129737459859575,\"ema1\":0.1904024647352914,\"sma1\":0.18298720666666662,\"sma2\":0.18491283333333325,\"rsi_avg_gain\":0.0013083360182553673,\"rsi_avg_loss\":0.0010818342940277996,\"rsi\":55},{\"period_id\":\"120m209865\",\"size\":\"120m\",\"time\":1511028000000,\"open\":0.1917,\"high\":0.1949,\"low\":0.1917,\"close\":0.19231,\"volume\":728270.7040220896,\"close_time\":1511035186530,\"vwap\":0.1912483527583453,\"ema1\":0.19017366919979425,\"sma1\":0.18295637333333328,\"sma2\":0.18457433333333328,\"rsi_avg_gain\":0.0013005157119673188,\"rsi_avg_loss\":0.0011650523166453226,\"rsi\":53},{\"period_id\":\"120m209864\",\"size\":\"120m\",\"time\":1511020800000,\"open\":0.19089,\"high\":0.1925,\"low\":0.19016,\"close\":0.19168,\"volume\":464501.62250984996,\"close_time\":1511027934129,\"vwap\":0.190843574403332,\"ema1\":0.19002633604115937,\"sma1\":0.18294803999999995,\"sma2\":0.1842546666666666,\"rsi_avg_gain\":0.0013520938436571111,\"rsi_avg_loss\":0.0012546717256180396,\"rsi\":52},{\"period_id\":\"120m209863\",\"size\":\"120m\",\"time\":1511013600000,\"open\":0.1919,\"high\":0.1919,\"low\":0.19,\"close\":0.19122,\"volume\":390100.3060764898,\"close_time\":1511020756298,\"vwap\":0.19075612750922852,\"ema1\":0.1899122902508945,\"sma1\":0.1829258177777777,\"sma2\":0.18395099999999995,\"rsi_avg_gain\":0.0014207164470153514,\"rsi_avg_loss\":0.0013511849352809656,\"rsi\":51},{\"period_id\":\"120m209862\",\"size\":\"120m\",\"time\":1511006400000,\"open\":0.1923,\"high\":0.19247,\"low\":0.191,\"close\":0.1918,\"volume\":337951.37589794997,\"close_time\":1511013473993,\"vwap\":0.19074140661437783,\"ema1\":0.18982210337164585,\"sma1\":0.1828822066666666,\"sma2\":0.1836383333333333,\"rsi_avg_gain\":0.001530002327554994,\"rsi_avg_loss\":0.0014105068533795016,\"rsi\":52},{\"period_id\":\"120m209861\",\"size\":\"120m\",\"time\":1510999200000,\"open\":0.19251,\"high\":0.19253,\"low\":0.19101,\"close\":0.1923,\"volume\":385301.98817009997,\"close_time\":1511006395926,\"vwap\":0.19065701018106967,\"ema1\":0.18968569670762142,\"sma1\":0.1828587807407407,\"sma2\":0.1833331666666666,\"rsi_avg_gain\":0.0016476948142899934,\"rsi_avg_loss\":0.0014805458421010018,\"rsi\":53},{\"period_id\":\"120m209860\",\"size\":\"120m\",\"time\":1510992000000,\"open\":0.18916,\"high\":0.194,\"low\":0.18914,\"close\":0.19254,\"volume\":803391.3881384006,\"close_time\":1510999159827,\"vwap\":0.19052486176243338,\"ema1\":0.1895053999288367,\"sma1\":0.1828586881481481,\"sma2\":0.1830156666666666,\"rsi_avg_gain\":0.0017744405692353775,\"rsi_avg_loss\":0.0015759724453395412,\"rsi\":53},{\"period_id\":\"120m209859\",\"size\":\"120m\",\"time\":1510984800000,\"open\":0.1897,\"high\":0.191,\"low\":0.188,\"close\":0.189,\"volume\":488820.45648977003,\"close_time\":1510991947134,\"vwap\":0.1897374245992959,\"ema1\":0.1892961171653082,\"sma1\":0.18288137333333326,\"sma2\":0.18267499999999998,\"rsi_avg_gain\":0.0016386283053304075,\"rsi_avg_loss\":0.0016972010949810443,\"rsi\":49},{\"period_id\":\"120m209858\",\"size\":\"120m\",\"time\":1510977600000,\"open\":0.1878,\"high\":0.19247,\"low\":0.18721,\"close\":0.19028,\"volume\":289907.14823640994,\"close_time\":1510984750372,\"vwap\":0.1898622011334501,\"ema1\":0.18931653903877774,\"sma1\":0.18287785481481475,\"sma2\":0.18232716666666662,\"rsi_avg_gain\":0.0017646766365096694,\"rsi_avg_loss\":0.0017292934869026627,\"rsi\":51},{\"period_id\":\"120m209857\",\"size\":\"120m\",\"time\":1510970400000,\"open\":0.1891,\"high\":0.192,\"low\":0.1879,\"close\":0.1879,\"volume\":234549.13786073995,\"close_time\":1510977539952,\"vwap\":0.1899042778666425,\"ema1\":0.18925009345524516,\"sma1\":0.18287776222222216,\"sma2\":0.18207549999999997,\"rsi_avg_gain\":0.0017173440700873367,\"rsi_avg_loss\":0.0018623160628182523,\"rsi\":48},{\"period_id\":\"120m209856\",\"size\":\"120m\",\"time\":1510963200000,\"open\":0.19112,\"high\":0.19277,\"low\":0.1889,\"close\":0.18908,\"volume\":926769.0720193102,\"close_time\":1510970297833,\"vwap\":0.1900056971982926,\"ema1\":0.18934320334871033,\"sma1\":0.18286554,\"sma2\":0.18172000833333335,\"rsi_avg_gain\":0.001849447460094055,\"rsi_avg_loss\":0.0019148019138042727,\"rsi\":49},{\"period_id\":\"120m209855\",\"size\":\"120m\",\"time\":1510956000000,\"open\":0.192,\"high\":0.19408,\"low\":0.191,\"close\":0.19312,\"volume\":428584.75338550995,\"close_time\":1510963099527,\"vwap\":0.20461811142729985,\"ema1\":0.1893613553037938,\"sma1\":0.18286479925925925,\"sma2\":0.18132634166666664,\"rsi_avg_gain\":0.001991712649332059,\"rsi_avg_loss\":0.001751325137943062,\"rsi\":53},{\"period_id\":\"120m209854\",\"size\":\"120m\",\"time\":1510948800000,\"open\":0.1925,\"high\":0.19408,\"low\":0.19061,\"close\":0.192,\"volume\":621065.0758878803,\"close_time\":1510955983115,\"vwap\":0.20462481574229555,\"ema1\":0.18910213842819337,\"sma1\":0.18281776222222218,\"sma2\":0.18091634166666665,\"rsi_avg_gain\":0.0020587674685114475,\"rsi_avg_loss\":0.0018860424562463743,\"rsi\":52},{\"period_id\":\"120m209853\",\"size\":\"120m\",\"time\":1510941600000,\"open\":0.19389,\"high\":0.19475,\"low\":0.19061,\"close\":0.1925,\"volume\":1033069.886988151,\"close_time\":1510948796268,\"vwap\":0.20464494309554587,\"ema1\":0.1889022859059998,\"sma1\":0.18272646592592587,\"sma2\":0.180541675,\"rsi_avg_gain\":0.002217134196858482,\"rsi_avg_loss\":0.0019926611067268645,\"rsi\":53},{\"period_id\":\"120m209852\",\"size\":\"120m\",\"time\":1510934400000,\"open\":0.19491,\"high\":0.196,\"low\":0.19103,\"close\":0.19384,\"volume\":1005591.6163256401,\"close_time\":1510941572001,\"vwap\":0.20468369047685234,\"ema1\":0.18865416769262047,\"sma1\":0.18259544740740735,\"sma2\":0.18014800833333336,\"rsi_avg_gain\":0.0023876829812322113,\"rsi_avg_loss\":0.002042865807244315,\"rsi\":54},{\"period_id\":\"120m209851\",\"size\":\"120m\",\"time\":1510927200000,\"open\":0.19521,\"high\":0.19796,\"low\":0.1946,\"close\":0.19491,\"volume\":960112.6958736299,\"close_time\":1510934385989,\"vwap\":0.20471741337340232,\"ema1\":0.188296524085215,\"sma1\":0.1824462807407407,\"sma2\":0.179732675,\"rsi_avg_gain\":0.002571350902865458,\"rsi_avg_loss\":0.0021177016385708013,\"rsi\":55},{\"period_id\":\"120m209850\",\"size\":\"120m\",\"time\":1510920000000,\"open\":0.1988,\"high\":0.199,\"low\":0.19422,\"close\":0.1953,\"volume\":1780399.7603614214,\"close_time\":1510927150967,\"vwap\":0.2047484522903546,\"ema1\":0.18784042229798845,\"sma1\":0.18227952148148144,\"sma2\":0.17931750833333332,\"rsi_avg_gain\":0.002769147126162801,\"rsi_avg_loss\":0.0022506017646147093,\"rsi\":55},{\"period_id\":\"120m209849\",\"size\":\"120m\",\"time\":1510912800000,\"open\":0.19248,\"high\":0.2,\"low\":0.1905,\"close\":0.1988,\"volume\":2745150.4320924804,\"close_time\":1510919995239,\"vwap\":0.20482309925260403,\"ema1\":0.18732596866336695,\"sma1\":0.18211100296296293,\"sma2\":0.1788875083333333,\"rsi_avg_gain\":0.0029821584435599396,\"rsi_avg_loss\":0.0021544942080466097,\"rsi\":58},{\"period_id\":\"120m209848\",\"size\":\"120m\",\"time\":1510905600000,\"open\":0.18905,\"high\":0.1943,\"low\":0.187,\"close\":0.1925,\"volume\":1784900.3421344298,\"close_time\":1510912797579,\"vwap\":0.20495306308269695,\"ema1\":0.18653465615739226,\"sma1\":0.18199248444444438,\"sma2\":0.17844600833333332,\"rsi_avg_gain\":0.0027269398622953196,\"rsi_avg_loss\":0.0023202245317425025,\"rsi\":54},{\"period_id\":\"120m209847\",\"size\":\"120m\",\"time\":1510898400000,\"open\":0.19545,\"high\":0.19594,\"low\":0.187,\"close\":0.188,\"volume\":1178642.750786331,\"close_time\":1510905535766,\"vwap\":0.2050674090017578,\"ema1\":0.18612325313376413,\"sma1\":0.18183091037037033,\"sma2\":0.177999675,\"rsi_avg_gain\":0.0025905506209334206,\"rsi_avg_loss\":0.002498703341876541,\"rsi\":51},{\"period_id\":\"120m209846\",\"size\":\"120m\",\"time\":1510891200000,\"open\":0.19199,\"high\":0.19689,\"low\":0.1894,\"close\":0.19405,\"volume\":956434.2075968998,\"close_time\":1510898331739,\"vwap\":0.20511610938432254,\"ema1\":0.18599382231540304,\"sma1\":0.18165322518518517,\"sma2\":0.17759884166666665,\"rsi_avg_gain\":0.0027898237456206072,\"rsi_avg_loss\":0.002225526675867044,\"rsi\":56},{\"period_id\":\"120m209845\",\"size\":\"120m\",\"time\":1510884000000,\"open\":0.187,\"high\":0.1955,\"low\":0.18683,\"close\":0.19112,\"volume\":924918.4014456196,\"close_time\":1510891162791,\"vwap\":0.20513720882506378,\"ema1\":0.18543822385439634,\"sma1\":0.18148841037037033,\"sma2\":0.17723384166666664,\"rsi_avg_gain\":0.0027790409568221935,\"rsi_avg_loss\":0.002396721035549124,\"rsi\":54},{\"period_id\":\"120m209844\",\"size\":\"120m\",\"time\":1510876800000,\"open\":0.19099,\"high\":0.1929,\"low\":0.185,\"close\":0.18834,\"volume\":1080509.2536917797,\"close_time\":1510883939814,\"vwap\":0.20516171378727519,\"ema1\":0.18504637722366507,\"sma1\":0.18135044740740738,\"sma2\":0.176999175,\"rsi_avg_gain\":0.002778967184270054,\"rsi_avg_loss\":0.002581084192129826,\"rsi\":52},{\"period_id\":\"120m209843\",\"size\":\"120m\",\"time\":1510869600000,\"open\":0.20252,\"high\":0.203,\"low\":0.19,\"close\":0.1903,\"volume\":3056503.1666262676,\"close_time\":1510876786878,\"vwap\":0.20523170022952106,\"ema1\":0.18481923082529714,\"sma1\":0.18111878074074073,\"sma2\":0.17677250833333333,\"rsi_avg_gain\":0.0029927338907523656,\"rsi_avg_loss\":0.002628859899216736,\"rsi\":53},{\"period_id\":\"120m209842\",\"size\":\"120m\",\"time\":1510862400000,\"open\":0.195,\"high\":0.209,\"low\":0.19241,\"close\":0.2028,\"volume\":5328767.228624752,\"close_time\":1510869597062,\"vwap\":0.20550766233881274,\"ema1\":0.18444124674428314,\"sma1\":0.18081313259259257,\"sma2\":0.17632550833333333,\"rsi_avg_gain\":0.003222944190041009,\"rsi_avg_loss\":0.001869541429925715,\"rsi\":63},{\"period_id\":\"120m209841\",\"size\":\"120m\",\"time\":1510855200000,\"open\":0.19512,\"high\":0.201,\"low\":0.1905,\"close\":0.195,\"volume\":3369777.689228698,\"close_time\":1510862391100,\"vwap\":0.20552263406638085,\"ema1\":0.18317512583009576,\"sma1\":0.18058378074074072,\"sma2\":0.1760255083333333,\"rsi_avg_gain\":0.0028708629738903174,\"rsi_avg_loss\":0.00201335230915077,\"rsi\":59},{\"period_id\":\"120m209840\",\"size\":\"120m\",\"time\":1510848000000,\"open\":0.2055,\"high\":0.2098,\"low\":0.195,\"close\":0.1964,\"volume\":6663655.530201383,\"close_time\":1510855198173,\"vwap\":0.2059079877839663,\"ema1\":0.1823596172666541,\"sma1\":0.18027998444444446,\"sma2\":0.17574217499999994,\"rsi_avg_gain\":0.0030916985872664958,\"rsi_avg_loss\":0.002060533256008523,\"rsi\":60},{\"period_id\":\"120m209839\",\"size\":\"120m\",\"time\":1510840800000,\"open\":0.22,\"high\":0.22,\"low\":0.194,\"close\":0.205,\"volume\":15617530.64268609,\"close_time\":1510847998500,\"vwap\":0.206851407853923,\"ema1\":0.18139131500918196,\"sma1\":0.17989850296296292,\"sma2\":0.17520267499999995,\"rsi_avg_gain\":0.0033295215555177644,\"rsi_avg_loss\":0.0015574973526245634,\"rsi\":68},{\"period_id\":\"120m209838\",\"size\":\"120m\",\"time\":1510833600000,\"open\":0.17678,\"high\":0.22,\"low\":0.1757,\"close\":0.22,\"volume\":10349111.628457345,\"close_time\":1510840796412,\"vwap\":0.20507035625627795,\"ema1\":0.1797631298374014,\"sma1\":0.17952257703703703,\"sma2\":0.1743610083333333,\"rsi_avg_gain\":0.0035856385982499,\"rsi_avg_loss\":0.0005234586874418366,\"rsi\":87},{\"period_id\":\"120m209837\",\"size\":\"120m\",\"time\":1510826400000,\"open\":0.177,\"high\":0.1778,\"low\":0.17555,\"close\":0.177,\"volume\":1105490.1614706505,\"close_time\":1510833568077,\"vwap\":0.17121179470374942,\"ema1\":0.17698817327446356,\"sma1\":0.17950692888888892,\"sma2\":0.17427934166666662,\"rsi_avg_gain\":0.0005537646442691225,\"rsi_avg_loss\":0.0005637247403219779,\"rsi\":50},{\"period_id\":\"120m209836\",\"size\":\"120m\",\"time\":1510819200000,\"open\":0.1785,\"high\":0.17858,\"low\":0.176,\"close\":0.177,\"volume\":397588.30518430006,\"close_time\":1510826392504,\"vwap\":0.17112620433401007,\"ema1\":0.17698735763821966,\"sma1\":0.1794858177777778,\"sma2\":0.1743330083333333,\"rsi_avg_gain\":0.0005963619245975165,\"rsi_avg_loss\":0.000607088181885207,\"rsi\":50},{\"period_id\":\"120m209835\",\"size\":\"120m\",\"time\":1510812000000,\"open\":0.179,\"high\":0.17957,\"low\":0.1775,\"close\":0.1786,\"volume\":236250.85952177003,\"close_time\":1510819171050,\"vwap\":0.17109747125733846,\"ema1\":0.17698648575120032,\"sma1\":0.17944692888888894,\"sma2\":0.1743230083333333,\"rsi_avg_gain\":0.0006422359187973254,\"rsi_avg_loss\":0.0005307103497225292,\"rsi\":55},{\"period_id\":\"120m209834\",\"size\":\"120m\",\"time\":1510804800000,\"open\":0.17893,\"high\":0.1797,\"low\":0.17753,\"close\":0.17945,\"volume\":206948.74571139002,\"close_time\":1510811990052,\"vwap\":0.17108912857905112,\"ema1\":0.17687520890645553,\"sma1\":0.1794049844444445,\"sma2\":0.174257175,\"rsi_avg_gain\":0.0006916386817817352,\"rsi_avg_loss\":0.0005061496073934939,\"rsi\":58},{\"period_id\":\"120m209833\",\"size\":\"120m\",\"time\":1510797600000,\"open\":0.17994,\"high\":0.17997,\"low\":0.17603,\"close\":0.178,\"volume\":353774.0085576001,\"close_time\":1510804386630,\"vwap\":0.17108424359193802,\"ema1\":0.17669763710690073,\"sma1\":0.17935433629629635,\"sma2\":0.17422967499999995,\"rsi_avg_gain\":0.0006333031957649452,\"rsi_avg_loss\":0.0005450841925776088,\"rsi\":54},{\"period_id\":\"120m209832\",\"size\":\"120m\",\"time\":1510790400000,\"open\":0.1778,\"high\":0.1809,\"low\":0.17779,\"close\":0.18,\"volume\":1361998.4149140103,\"close_time\":1510797487097,\"vwap\":0.17107234319388165,\"ema1\":0.17660781897634217,\"sma1\":0.17930896592592596,\"sma2\":0.17417967499999998,\"rsi_avg_gain\":0.0006820188262084025,\"rsi_avg_loss\":0.0004331675920066556,\"rsi\":61},{\"period_id\":\"120m209831\",\"size\":\"120m\",\"time\":1510783200000,\"open\":0.17768,\"high\":0.1787,\"low\":0.175,\"close\":0.1778,\"volume\":1566869.6451750586,\"close_time\":1510790392691,\"vwap\":0.17089069728294914,\"ema1\":0.17637387545746921,\"sma1\":0.17929655851851856,\"sma2\":0.1741280083333333,\"rsi_avg_gain\":0.0005652510436090504,\"rsi_avg_loss\":0.0004664881760071676,\"rsi\":55},{\"period_id\":\"120m209830\",\"size\":\"120m\",\"time\":1510776000000,\"open\":0.1769,\"high\":0.17899,\"low\":0.17601,\"close\":0.17768,\"volume\":491676.01611941017,\"close_time\":1510783162699,\"vwap\":0.17056748219865647,\"ema1\":0.17627552204074295,\"sma1\":0.17929822518518523,\"sma2\":0.17407984166666662,\"rsi_avg_gain\":0.000599501123886669,\"rsi_avg_loss\":0.0005023718818538727,\"rsi\":54},{\"period_id\":\"120m209829\",\"size\":\"120m\",\"time\":1510768800000,\"open\":0.17759,\"high\":0.17889,\"low\":0.17601,\"close\":0.17624,\"volume\":977653.8880108004,\"close_time\":1510775927078,\"vwap\":0.1705148398116533,\"ema1\":0.17617866149182868,\"sma1\":0.1792899844444445,\"sma2\":0.17404934166666666,\"rsi_avg_gain\":0.0005348473641856439,\"rsi_avg_loss\":0.0005410158727657091,\"rsi\":50},{\"period_id\":\"120m209828\",\"size\":\"120m\",\"time\":1510761600000,\"open\":0.17791,\"high\":0.17813,\"low\":0.176,\"close\":0.17753,\"volume\":790866.41378568,\"close_time\":1510768797924,\"vwap\":0.17043076619546185,\"ema1\":0.17617443124988583,\"sma1\":0.1792887807407408,\"sma2\":0.174027175,\"rsi_avg_gain\":0.000575989469123001,\"rsi_avg_loss\":0.00048340170913230334,\"rsi\":54},{\"period_id\":\"120m209827\",\"size\":\"120m\",\"time\":1510754400000,\"open\":0.17899,\"high\":0.17936,\"low\":0.17741,\"close\":0.17867,\"volume\":501227.49448165024,\"close_time\":1510761592558,\"vwap\":0.17034531244690174,\"ema1\":0.17608094374987796,\"sma1\":0.17928933629629634,\"sma2\":0.174012675,\"rsi_avg_gain\":0.0006202963513632319,\"rsi_avg_loss\":0.0004328941482963265,\"rsi\":59},{\"period_id\":\"120m209826\",\"size\":\"120m\",\"time\":1510747200000,\"open\":0.17861,\"high\":0.18,\"low\":0.1775,\"close\":0.17894,\"volume\":1020662.5634295301,\"close_time\":1510754363661,\"vwap\":0.1702886794253907,\"ema1\":0.17590238814642126,\"sma1\":0.17928470666666668,\"sma2\":0.17395700833333333,\"rsi_avg_gain\":0.0006680114553142497,\"rsi_avg_loss\":0.0004454244673960445,\"rsi\":60},{\"period_id\":\"120m209825\",\"size\":\"120m\",\"time\":1510740000000,\"open\":0.17916,\"high\":0.18,\"low\":0.17772,\"close\":0.1798,\"volume\":839624.29586238,\"close_time\":1510747159672,\"vwap\":0.17011910383144044,\"ema1\":0.17569289767376065,\"sma1\":0.17928461407407412,\"sma2\":0.17403017499999998,\"rsi_avg_gain\":0.0007193969518768842,\"rsi_avg_loss\":0.00041353404181112484,\"rsi\":63},{\"period_id\":\"120m209824\",\"size\":\"120m\",\"time\":1510732800000,\"open\":0.178,\"high\":0.18,\"low\":0.17774,\"close\":0.17916,\"volume\":1371706.4441208409,\"close_time\":1510739987906,\"vwap\":0.16999932971620169,\"ema1\":0.17540964923746827,\"sma1\":0.1792250770370371,\"sma2\":0.17409917499999994,\"rsi_avg_gain\":0.0007255044097135697,\"rsi_avg_loss\":0.0004453443527196729,\"rsi\":62},{\"period_id\":\"120m209823\",\"size\":\"120m\",\"time\":1510725600000,\"open\":0.17647,\"high\":0.179,\"low\":0.17647,\"close\":0.178,\"volume\":594290.64150528,\"close_time\":1510732786046,\"vwap\":0.16969818697879513,\"ema1\":0.17515100435729367,\"sma1\":0.17916766962962966,\"sma2\":0.17420850833333326,\"rsi_avg_gain\":0.0006920816719992272,\"rsi_avg_loss\":0.0004796016106211862,\"rsi\":59},{\"period_id\":\"120m209822\",\"size\":\"120m\",\"time\":1510718400000,\"open\":0.17676,\"high\":0.17748,\"low\":0.17561,\"close\":0.17645,\"volume\":194388.95898348003,\"close_time\":1510725406545,\"vwap\":0.16964229981531448,\"ema1\":0.17495452189917599,\"sma1\":0.17912507703703712,\"sma2\":0.1743610083333333,\"rsi_avg_gain\":0.0006260879544607065,\"rsi_avg_loss\":0.0005164940422074313,\"rsi\":55},{\"period_id\":\"120m209821\",\"size\":\"120m\",\"time\":1510711200000,\"open\":0.17672,\"high\":0.17744,\"low\":0.176,\"close\":0.17607,\"volume\":154013.12588774003,\"close_time\":1510717437169,\"vwap\":0.16963830314016026,\"ema1\":0.17485138547842952,\"sma1\":0.17908285481481487,\"sma2\":0.17454400833333328,\"rsi_avg_gain\":0.0006450177971115308,\"rsi_avg_loss\":0.0005562243531464645,\"rsi\":54},{\"period_id\":\"120m209820\",\"size\":\"120m\",\"time\":1510704000000,\"open\":0.17563,\"high\":0.17746,\"low\":0.1754,\"close\":0.17661,\"volume\":330525.27986849006,\"close_time\":1510711129545,\"vwap\":0.16963517524642074,\"ema1\":0.17476734309763156,\"sma1\":0.17904081777777783,\"sma2\":0.17473817499999988,\"rsi_avg_gain\":0.0006946345507354947,\"rsi_avg_loss\":0.0005574723803115783,\"rsi\":55},{\"period_id\":\"120m209819\",\"size\":\"120m\",\"time\":1510696800000,\"open\":0.17597,\"high\":0.1761,\"low\":0.175,\"close\":0.17582,\"volume\":577026.2364562798,\"close_time\":1510703941720,\"vwap\":0.1696203329057267,\"ema1\":0.1746402633112613,\"sma1\":0.17901674370370377,\"sma2\":0.17493950833333327,\"rsi_avg_gain\":0.0006872987469459185,\"rsi_avg_loss\":0.0006003548711047766,\"rsi\":53},{\"period_id\":\"120m209818\",\"size\":\"120m\",\"time\":1510689600000,\"open\":0.17656,\"high\":0.1771,\"low\":0.1746,\"close\":0.17602,\"volume\":754846.95783339,\"close_time\":1510696790603,\"vwap\":0.1695844127275895,\"ema1\":0.1745589021603138,\"sma1\":0.17898000851851853,\"sma2\":0.1751435083333333,\"rsi_avg_gain\":0.0007401678813263737,\"rsi_avg_loss\":0.0006311513996512975,\"rsi\":54},{\"period_id\":\"120m209817\",\"size\":\"120m\",\"time\":1510682400000,\"open\":0.17774,\"high\":0.1785,\"low\":0.17451,\"close\":0.17656,\"volume\":873858.6678473103,\"close_time\":1510689575374,\"vwap\":0.1695125021611896,\"ema1\":0.17445813679205957,\"sma1\":0.17891982333333337,\"sma2\":0.17536750833333326,\"rsi_avg_gain\":0.0007971038721976331,\"rsi_avg_loss\":0.0006381630457783215,\"rsi\":56},{\"period_id\":\"120m209816\",\"size\":\"120m\",\"time\":1510675200000,\"open\":0.17779,\"high\":0.17873,\"low\":0.177,\"close\":0.17772,\"volume\":601474.58078276,\"close_time\":1510682334312,\"vwap\":0.16939337295313253,\"ema1\":0.17431318070875335,\"sma1\":0.17886676777777777,\"sma2\":0.1755915083333333,\"rsi_avg_gain\":0.000858419554674374,\"rsi_avg_loss\":0.0005980217416074236,\"rsi\":59},{\"period_id\":\"120m209815\",\"size\":\"120m\",\"time\":1510668000000,\"open\":0.175,\"high\":0.179,\"low\":0.175,\"close\":0.1779,\"volume\":903691.211076629,\"close_time\":1510675183379,\"vwap\":0.16930850791211532,\"ema1\":0.1740782276541846,\"sma1\":0.17881121222222218,\"sma2\":0.17578050833333328,\"rsi_avg_gain\":0.0009244518281108643,\"rsi_avg_loss\":0.000630177260192609,\"rsi\":59},{\"period_id\":\"120m209814\",\"size\":\"120m\",\"time\":1510660800000,\"open\":0.17511,\"high\":0.17649,\"low\":0.1735,\"close\":0.1764,\"volume\":739101.4692513704,\"close_time\":1510667938280,\"vwap\":0.16907339140734712,\"ema1\":0.17381465714757663,\"sma1\":0.17879167518518516,\"sma2\":0.17596567499999993,\"rsi_avg_gain\":0.0008801788918116999,\"rsi_avg_loss\":0.000678652434053579,\"rsi\":56},{\"period_id\":\"120m209813\",\"size\":\"120m\",\"time\":1510653600000,\"open\":0.17595,\"high\":0.17699,\"low\":0.175,\"close\":0.1756,\"volume\":896831.7352713099,\"close_time\":1510660756249,\"vwap\":0.16893349274770256,\"ema1\":0.17363635764051294,\"sma1\":0.1787673233333333,\"sma2\":0.17616834166666662,\"rsi_avg_gain\":0.0008863464988741387,\"rsi_avg_loss\":0.0007308564674423159,\"rsi\":55},{\"period_id\":\"120m209812\",\"size\":\"120m\",\"time\":1510646400000,\"open\":0.17599,\"high\":0.17621,\"low\":0.17403,\"close\":0.1758,\"volume\":425112.28303541004,\"close_time\":1510653572451,\"vwap\":0.16880693893096987,\"ema1\":0.17350093402951383,\"sma1\":0.17875611962962965,\"sma2\":0.17634034166666665,\"rsi_avg_gain\":0.000954526998787534,\"rsi_avg_loss\":0.0007716915803224935,\"rsi\":55},{\"period_id\":\"120m209811\",\"size\":\"120m\",\"time\":1510639200000,\"open\":0.176,\"high\":0.1766,\"low\":0.17201,\"close\":0.17435,\"volume\":679307.6820065394,\"close_time\":1510646329094,\"vwap\":0.16876492346954758,\"ema1\":0.1733423777556872,\"sma1\":0.1787413048148148,\"sma2\":0.1766395083333333,\"rsi_avg_gain\":0.0009164136910019591,\"rsi_avg_loss\":0.0008310524711165315,\"rsi\":52},{\"period_id\":\"120m209810\",\"size\":\"120m\",\"time\":1510632000000,\"open\":0.1768,\"high\":0.1768,\"low\":0.175,\"close\":0.17598,\"volume\":429675.1602830501,\"close_time\":1510639183059,\"vwap\":0.16867728568790105,\"ema1\":0.17327288656642426,\"sma1\":0.17872556407407408,\"sma2\":0.17687317500000002,\"rsi_avg_gain\":0.0009869070518482637,\"rsi_avg_loss\":0.0007695949688947268,\"rsi\":56},{\"period_id\":\"120m209809\",\"size\":\"120m\",\"time\":1510624800000,\"open\":0.17539,\"high\":0.178,\"low\":0.17465,\"close\":0.17654,\"volume\":586797.5998933498,\"close_time\":1510631991411,\"vwap\":0.16864974081732065,\"ema1\":0.1730861890882466,\"sma1\":0.17869852703703706,\"sma2\":0.17712250833333332,\"rsi_avg_gain\":0.0010628229789135149,\"rsi_avg_loss\":0.0007857176588097054,\"rsi\":57},{\"period_id\":\"120m209808\",\"size\":\"120m\",\"time\":1510617600000,\"open\":0.17346,\"high\":0.1755,\"low\":0.17214,\"close\":0.1755,\"volume\":764624.7999068601,\"close_time\":1510624784246,\"vwap\":0.16857432921478988,\"ema1\":0.1728479952322636,\"sma1\":0.17869111962962966,\"sma2\":0.17737250833333335,\"rsi_avg_gain\":0.001064578592676092,\"rsi_avg_loss\":0.0008461574787181442,\"rsi\":56},{\"period_id\":\"120m209807\",\"size\":\"120m\",\"time\":1510610400000,\"open\":0.17199,\"high\":0.1735,\"low\":0.1712,\"close\":0.1735,\"volume\":538034.5097671399,\"close_time\":1510617597826,\"vwap\":0.168504242954582,\"ema1\":0.17266509835173005,\"sma1\":0.17870399000000003,\"sma2\":0.177619175,\"rsi_avg_gain\":0.000992623099805022,\"rsi_avg_loss\":0.0009112465155426168,\"rsi\":52},{\"period_id\":\"120m209806\",\"size\":\"120m\",\"time\":1510603200000,\"open\":0.17054,\"high\":0.17249,\"low\":0.1704,\"close\":0.17199,\"volume\":631139.0908938397,\"close_time\":1510610382134,\"vwap\":0.16846541842418172,\"ema1\":0.17260751892771142,\"sma1\":0.17872639740740745,\"sma2\":0.17783317499999998,\"rsi_avg_gain\":0.0009528248767131019,\"rsi_avg_loss\":0.0009813424013535874,\"rsi\":49},{\"period_id\":\"120m209805\",\"size\":\"120m\",\"time\":1510596000000,\"open\":0.17247,\"high\":0.1725,\"low\":0.17,\"close\":0.172,\"volume\":870330.9006816499,\"close_time\":1510603178336,\"vwap\":0.1684279994177339,\"ema1\":0.1726501064399674,\"sma1\":0.17875658259259264,\"sma2\":0.178046175,\"rsi_avg_gain\":0.001026119097998725,\"rsi_avg_loss\":0.001056061047611557,\"rsi\":49},{\"period_id\":\"120m209804\",\"size\":\"120m\",\"time\":1510588800000,\"open\":0.173,\"high\":0.17348,\"low\":0.17106,\"close\":0.1725,\"volume\":309292.22678649,\"close_time\":1510595941115,\"vwap\":0.16835116316977264,\"ema1\":0.1726949413668617,\"sma1\":0.17877991592592596,\"sma2\":0.17819934166666665,\"rsi_avg_gain\":0.0011050513363063193,\"rsi_avg_loss\":0.0010988349743509074,\"rsi\":50},{\"period_id\":\"120m209803\",\"size\":\"120m\",\"time\":1510581600000,\"open\":0.17303,\"high\":0.1735,\"low\":0.17,\"close\":0.173,\"volume\":635923.3682115899,\"close_time\":1510588750094,\"vwap\":0.16834073785647702,\"ema1\":0.17270838559905907,\"sma1\":0.17881482333333334,\"sma2\":0.17834684166666664,\"rsi_avg_gain\":0.0011900552852529592,\"rsi_avg_loss\":0.0011448992031471308,\"rsi\":51},{\"period_id\":\"120m209802\",\"size\":\"120m\",\"time\":1510574400000,\"open\":0.17399,\"high\":0.174,\"low\":0.165,\"close\":0.17304,\"volume\":1779330.7190665496,\"close_time\":1510581596236,\"vwap\":0.16830120890621333,\"ema1\":0.17268827426106315,\"sma1\":0.17885149000000003,\"sma2\":0.178471175,\"rsi_avg_gain\":0.001281597999503187,\"rsi_avg_loss\":0.001229891449543063,\"rsi\":51},{\"period_id\":\"120m209801\",\"size\":\"120m\",\"time\":1510567200000,\"open\":0.1739,\"high\":0.175,\"low\":0.17095,\"close\":0.17399,\"volume\":1125405.2639887903,\"close_time\":1510574391964,\"vwap\":0.16811463091553616,\"ema1\":0.17266401731355027,\"sma1\":0.17886871222222223,\"sma2\":0.17855467500000002,\"rsi_avg_gain\":0.0013801824610034322,\"rsi_avg_loss\":0.0012514215610463751,\"rsi\":52},{\"period_id\":\"120m209800\",\"size\":\"120m\",\"time\":1510560000000,\"open\":0.1685,\"high\":0.1739,\"low\":0.168,\"close\":0.17349,\"volume\":1034292.9793085196,\"close_time\":1510567185235,\"vwap\":0.16790775948705894,\"ema1\":0.17257257023172615,\"sma1\":0.17889504685185187,\"sma2\":0.17868650833333335,\"rsi_avg_gain\":0.0014478888041575425,\"rsi_avg_loss\":0.0013476847580499425,\"rsi\":52},{\"period_id\":\"120m209799\",\"size\":\"120m\",\"time\":1510552800000,\"open\":0.16969,\"high\":0.1705,\"low\":0.16809,\"close\":0.16856,\"volume\":70489.34351741005,\"close_time\":1510559923918,\"vwap\":0.1678325145086839,\"ema1\":0.1725092992132245,\"sma1\":0.17894949129629634,\"sma2\":0.17884384166666667,\"rsi_avg_gain\":0.0011800340967850445,\"rsi_avg_loss\":0.0014513528163614766,\"rsi\":45},{\"period_id\":\"120m209798\",\"size\":\"120m\",\"time\":1510545600000,\"open\":0.17278,\"high\":0.1729,\"low\":0.16771,\"close\":0.16941,\"volume\":232672.51672249002,\"close_time\":1510552749298,\"vwap\":0.16783197392710014,\"ema1\":0.1727816646762055,\"sma1\":0.1789848616666667,\"sma2\":0.1789820083333333,\"rsi_avg_gain\":0.001270805950383894,\"rsi_avg_loss\":0.0014976107253123583,\"rsi\":46},{\"period_id\":\"120m209797\",\"size\":\"120m\",\"time\":1510538400000,\"open\":0.16775,\"high\":0.17287,\"low\":0.16714,\"close\":0.1728,\"volume\":317883.98797446996,\"close_time\":1510545349531,\"vwap\":0.16783018311043305,\"ema1\":0.17301419327456452,\"sma1\":0.1790229172222223,\"sma2\":0.17904850833333333,\"rsi_avg_gain\":0.001368560254259578,\"rsi_avg_loss\":0.0013520423195671546,\"rsi\":50},{\"period_id\":\"120m209796\",\"size\":\"120m\",\"time\":1510531200000,\"open\":0.16949,\"high\":0.1724,\"low\":0.16559,\"close\":0.1677505,\"volume\":521480.4175115699,\"close_time\":1510538326283,\"vwap\":0.16782363020969593,\"ema1\":0.17302896522453448,\"sma1\":0.17908402833333342,\"sma2\":0.17919049999999997,\"rsi_avg_gain\":0.0010854110430487754,\"rsi_avg_loss\":0.001456045574918474,\"rsi\":43},{\"period_id\":\"120m209795\",\"size\":\"120m\",\"time\":1510524000000,\"open\":0.1674,\"high\":0.16998,\"low\":0.165,\"close\":0.1695,\"volume\":1311093.4219952,\"close_time\":1510531050771,\"vwap\":0.16781122594006032,\"ema1\":0.17339299730898514,\"sma1\":0.17921384314814823,\"sma2\":0.17930783333333336,\"rsi_avg_gain\":0.0011689042002063735,\"rsi_avg_loss\":0.0014334721576045092,\"rsi\":45},{\"period_id\":\"120m209794\",\"size\":\"120m\",\"time\":1510516800000,\"open\":0.17,\"high\":0.171,\"low\":0.1655,\"close\":0.1674,\"volume\":930806.39173004,\"close_time\":1510523988470,\"vwap\":0.16789403479423914,\"ema1\":0.1736614798820186,\"sma1\":0.17935819500000005,\"sma2\":0.1794478333333334,\"rsi_avg_gain\":0.001097281446376093,\"rsi_avg_loss\":0.0015437392466510099,\"rsi\":42},{\"period_id\":\"120m209793\",\"size\":\"120m\",\"time\":1510509600000,\"open\":0.17021,\"high\":0.171,\"low\":0.1684,\"close\":0.17002,\"volume\":1081793.2557907307,\"close_time\":1510516799098,\"vwap\":0.16788504892656897,\"ema1\":0.1740933060807785,\"sma1\":0.17947856537037044,\"sma2\":0.17952533333333337,\"rsi_avg_gain\":0.0011816877114819463,\"rsi_avg_loss\":0.001460949957931856,\"rsi\":45},{\"period_id\":\"120m209792\",\"size\":\"120m\",\"time\":1510502400000,\"open\":0.16953,\"high\":0.173,\"low\":0.16717,\"close\":0.17022,\"volume\":1220729.4702502298,\"close_time\":1510509590715,\"vwap\":0.16781387866474803,\"ema1\":0.17437422374152184,\"sma1\":0.17956625055555564,\"sma2\":0.17962566666666674,\"rsi_avg_gain\":0.0012725867662113268,\"rsi_avg_loss\":0.0015579461085419982,\"rsi\":45},{\"period_id\":\"120m209791\",\"size\":\"120m\",\"time\":1510495200000,\"open\":0.16884,\"high\":0.17264,\"low\":0.1675,\"close\":0.16999,\"volume\":1416319.5101583297,\"close_time\":1510502384838,\"vwap\":0.16774218177804573,\"ema1\":0.17466072193059232,\"sma1\":0.1796653246296297,\"sma2\":0.17974183333333338,\"rsi_avg_gain\":0.0013527857482275821,\"rsi_avg_loss\":0.0016777881168913828,\"rsi\":45},{\"period_id\":\"120m209790\",\"size\":\"120m\",\"time\":1510488000000,\"open\":0.173,\"high\":0.1756,\"low\":0.1675,\"close\":0.17039,\"volume\":3313398.677564392,\"close_time\":1510495190490,\"vwap\":0.16761831111184916,\"ema1\":0.17498284068442627,\"sma1\":0.17967819500000004,\"sma2\":0.17984366666666673,\"rsi_avg_gain\":0.0014568461903989346,\"rsi_avg_loss\":0.0017760795104984112,\"rsi\":45},{\"period_id\":\"120m209789\",\"size\":\"120m\",\"time\":1510480800000,\"open\":0.16601,\"high\":0.1763,\"low\":0.165,\"close\":0.173,\"volume\":2580742.5473769414,\"close_time\":1510487985447,\"vwap\":0.16687575726102577,\"ema1\":0.17529958831783496,\"sma1\":0.1796714357407408,\"sma2\":0.17989550000000007,\"rsi_avg_gain\":0.0015689112819680835,\"rsi_avg_loss\":0.0017119317805367525,\"rsi\":48},{\"period_id\":\"120m209788\",\"size\":\"120m\",\"time\":1510473600000,\"open\":0.16596,\"high\":0.17146,\"low\":0.1611,\"close\":0.16601,\"volume\":2380649.9986581267,\"close_time\":1510480792987,\"vwap\":0.16541426268731868,\"ema1\":0.1754581806156167,\"sma1\":0.17971810240740746,\"sma2\":0.18005700000000008,\"rsi_avg_gain\":0.0011519044575040904,\"rsi_avg_loss\":0.001843618840578041,\"rsi\":38},{\"period_id\":\"120m209787\",\"size\":\"120m\",\"time\":1510466400000,\"open\":0.17,\"high\":0.17099,\"low\":0.161,\"close\":0.16122,\"volume\":3229527.0687472746,\"close_time\":1510473566212,\"vwap\":0.16539884442817618,\"ema1\":0.17610977927876267,\"sma1\":0.17976449129629626,\"sma2\":0.1802836666666667,\"rsi_avg_gain\":0.000872050954235175,\"rsi_avg_loss\":0.0019854356744686595,\"rsi\":31},{\"period_id\":\"120m209786\",\"size\":\"120m\",\"time\":1510459200000,\"open\":0.17066,\"high\":0.17355,\"low\":0.16823,\"close\":0.17,\"volume\":994724.1163038004,\"close_time\":1510466383975,\"vwap\":0.17110915330119597,\"ema1\":0.17713666060833252,\"sma1\":0.1797705098148148,\"sma2\":0.1803581666666667,\"rsi_avg_gain\":0.00093913179686865,\"rsi_avg_loss\":0.0014627768801970173,\"rsi\":39},{\"period_id\":\"120m209785\",\"size\":\"120m\",\"time\":1510452000000,\"open\":0.17445,\"high\":0.17445,\"low\":0.16902,\"close\":0.16922,\"volume\":1261435.8449201102,\"close_time\":1510459100083,\"vwap\":0.17148780221349638,\"ema1\":0.17762884409856236,\"sma1\":0.17979226907407408,\"sma2\":0.18044616666666669,\"rsi_avg_gain\":0.0009513727043200844,\"rsi_avg_loss\":0.0015752981786737112,\"rsi\":38},{\"period_id\":\"120m209784\",\"size\":\"120m\",\"time\":1510444800000,\"open\":0.17767,\"high\":0.1777,\"low\":0.17407,\"close\":0.17426,\"volume\":328023.63525571,\"close_time\":1510451999100,\"vwap\":0.1761860114144726,\"ema1\":0.17820876438122182,\"sma1\":0.17985986166666668,\"sma2\":0.18042516666666672,\"rsi_avg_gain\":0.001024555220037014,\"rsi_avg_loss\":0.0013087826539563052,\"rsi\":44},{\"period_id\":\"120m209783\",\"size\":\"120m\",\"time\":1510437600000,\"open\":0.17563,\"high\":0.1785,\"low\":0.17377,\"close\":0.1767,\"volume\":316327.0275906,\"close_time\":1510444746655,\"vwap\":0.1768918535604213,\"ema1\":0.17848109295923711,\"sma1\":0.17981625055555556,\"sma2\":0.1804106666666667,\"rsi_avg_gain\":0.0011033671600398612,\"rsi_avg_loss\":0.0012217659350298672,\"rsi\":47},{\"period_id\":\"120m209782\",\"size\":\"120m\",\"time\":1510430400000,\"open\":0.17608,\"high\":0.17998,\"low\":0.17214,\"close\":0.17598,\"volume\":1570101.0684755915,\"close_time\":1510437571913,\"vwap\":0.18264679850657037,\"ema1\":0.17860392695642588,\"sma1\":0.17969606537037042,\"sma2\":0.1804196666666667,\"rsi_avg_gain\":0.001132856941581389,\"rsi_avg_loss\":0.0013157479300321647,\"rsi\":46},{\"period_id\":\"120m209781\",\"size\":\"120m\",\"time\":1510423200000,\"open\":0.179,\"high\":0.18004,\"low\":0.175,\"close\":0.177,\"volume\":1139440.0789324606,\"close_time\":1510430382442,\"vwap\":0.1827833915048301,\"ema1\":0.1787848874361794,\"sma1\":0.1795708801851852,\"sma2\":0.18036033333333334,\"rsi_avg_gain\":0.0012199997832414958,\"rsi_avg_loss\":0.0013384977708038703,\"rsi\":48},{\"period_id\":\"120m209780\",\"size\":\"120m\",\"time\":1510416000000,\"open\":0.1732,\"high\":0.1794,\"low\":0.17001,\"close\":0.1794,\"volume\":991466.1092300097,\"close_time\":1510423190096,\"vwap\":0.18289021058238128,\"ema1\":0.17890798312143316,\"sma1\":0.1794468061111111,\"sma2\":0.18033533333333335,\"rsi_avg_gain\":0.0013138459204139186,\"rsi_avg_loss\":0.0012568437531733979,\"rsi\":51},{\"period_id\":\"120m209779\",\"size\":\"120m\",\"time\":1510408800000,\"open\":0.16985,\"high\":0.17395,\"low\":0.167,\"close\":0.17263,\"volume\":974812.9391063203,\"close_time\":1510415941956,\"vwap\":0.1829764209616077,\"ema1\":0.1788740509229113,\"sma1\":0.17939625055555555,\"sma2\":0.1804,\"rsi_avg_gain\":0.0008941417604457588,\"rsi_avg_loss\":0.001353524041879044,\"rsi\":40},{\"period_id\":\"120m209778\",\"size\":\"120m\",\"time\":1510401600000,\"open\":0.175,\"high\":0.17576832,\"low\":0.16701,\"close\":0.1695,\"volume\":2442211.8787478986,\"close_time\":1510408777466,\"vwap\":0.18310761083963295,\"ema1\":0.1793046751244914,\"sma1\":0.17933904388888883,\"sma2\":0.1805331666666667,\"rsi_avg_gain\":0.0007221526650954329,\"rsi_avg_loss\":0.0014576412758697396,\"rsi\":33},{\"period_id\":\"120m209777\",\"size\":\"120m\",\"time\":1510394400000,\"open\":0.1805,\"high\":0.18141,\"low\":0.172,\"close\":0.1721,\"volume\":2079496.2112085498,\"close_time\":1510401587132,\"vwap\":0.18414797301372962,\"ema1\":0.17998085961583565,\"sma1\":0.17914080314814812,\"sma2\":0.18063316666666665,\"rsi_avg_gain\":0.0007777028701027739,\"rsi_avg_loss\":0.0013697675278597202,\"rsi\":36},{\"period_id\":\"120m209776\",\"size\":\"120m\",\"time\":1510387200000,\"open\":0.17744,\"high\":0.181,\"low\":0.17692,\"close\":0.18022,\"volume\":981048.3481494704,\"close_time\":1510394392419,\"vwap\":0.18460785833081889,\"ema1\":0.18052436717554846,\"sma1\":0.17894635870370368,\"sma2\":0.18052216666666665,\"rsi_avg_gain\":0.0008375261678029873,\"rsi_avg_loss\":0.0008505188761566227,\"rsi\":50},{\"period_id\":\"120m209775\",\"size\":\"120m\",\"time\":1510380000000,\"open\":0.17612,\"high\":0.17835,\"low\":0.17575,\"close\":0.178,\"volume\":270682.5348436299,\"close_time\":1510387170239,\"vwap\":0.1846611672874664,\"ema1\":0.18054535801524146,\"sma1\":0.1788060809259259,\"sma2\":0.18041383333333333,\"rsi_avg_gain\":0.0007311820268647556,\"rsi_avg_loss\":0.0009159434050917475,\"rsi\":44},{\"period_id\":\"120m209774\",\"size\":\"120m\",\"time\":1510372800000,\"open\":0.17598,\"high\":0.177,\"low\":0.175,\"close\":0.1755,\"volume\":131092.04912470002,\"close_time\":1510379912100,\"vwap\":0.1846736435152928,\"ema1\":0.18072089994732707,\"sma1\":0.17869237722222217,\"sma2\":0.18035716666666668,\"rsi_avg_gain\":0.000595119105854352,\"rsi_avg_loss\":0.000986400590098805,\"rsi\":38},{\"period_id\":\"120m209773\",\"size\":\"120m\",\"time\":1510365600000,\"open\":0.17698,\"high\":0.177,\"low\":0.1758,\"close\":0.17635,\"volume\":94690.41121102999,\"close_time\":1510372576835,\"vwap\":0.1846766949206596,\"ema1\":0.18108096201265997,\"sma1\":0.17860571055555552,\"sma2\":0.18028483333333334,\"rsi_avg_gain\":0.0006408974986123791,\"rsi_avg_loss\":0.000996892943183327,\"rsi\":39},{\"period_id\":\"120m209772\",\"size\":\"120m\",\"time\":1510358400000,\"open\":0.17466,\"high\":0.17727,\"low\":0.1735,\"close\":0.177,\"volume\":222966.58106674007,\"close_time\":1510365541592,\"vwap\":0.18467868378051377,\"ema1\":0.18140723525491237,\"sma1\":0.17850895129629624,\"sma2\":0.1801945,\"rsi_avg_gain\":0.0006901973061979467,\"rsi_avg_loss\":0.0010235770157358919,\"rsi\":40},{\"period_id\":\"120m209771\",\"size\":\"120m\",\"time\":1510351200000,\"open\":0.17467,\"high\":0.179,\"low\":0.17387,\"close\":0.1747,\"volume\":797093.3192915202,\"close_time\":1510358365250,\"vwap\":0.18468818022764408,\"ema1\":0.18171118251387183,\"sma1\":0.17839543277777775,\"sma2\":0.18016533333333332,\"rsi_avg_gain\":0.0005663663297516352,\"rsi_avg_loss\":0.0011023137092540374,\"rsi\":34},{\"period_id\":\"120m209770\",\"size\":\"120m\",\"time\":1510344000000,\"open\":0.17441,\"high\":0.17549,\"low\":0.171,\"close\":0.17479,\"volume\":1094468.96498331,\"close_time\":1510351192590,\"vwap\":0.18478824846907152,\"ema1\":0.18219471234241472,\"sma1\":0.1783408957407407,\"sma2\":0.18013771,\"rsi_avg_gain\":0.000609932970501761,\"rsi_avg_loss\":0.0011801839945812704,\"rsi\":34},{\"period_id\":\"120m209769\",\"size\":\"120m\",\"time\":1510336800000,\"open\":0.1761,\"high\":0.1772,\"low\":0.1715,\"close\":0.17441,\"volume\":1735605.7652716597,\"close_time\":1510343991423,\"vwap\":0.18501327857213046,\"ema1\":0.18270538215913298,\"sma1\":0.1782705253703703,\"sma2\":0.1800888766666667,\"rsi_avg_gain\":0.0006276201220788201,\"rsi_avg_loss\":0.0012709673787798296,\"rsi\":33},{\"period_id\":\"120m209768\",\"size\":\"120m\",\"time\":1510329600000,\"open\":0.1778,\"high\":0.178,\"low\":0.1752,\"close\":0.1762,\"volume\":1264054.9084802696,\"close_time\":1510336785873,\"vwap\":0.18556832142446145,\"ema1\":0.1832774774804525,\"sma1\":0.17821959944444443,\"sma2\":0.18001887666666672,\"rsi_avg_gain\":0.0006758985930079602,\"rsi_avg_loss\":0.0012310417925321252,\"rsi\":35},{\"period_id\":\"120m209767\",\"size\":\"120m\",\"time\":1510322400000,\"open\":0.17786,\"high\":0.1788,\"low\":0.175,\"close\":0.1778,\"volume\":1705075.3105860895,\"close_time\":1510329594861,\"vwap\":0.18577978655244032,\"ema1\":0.18376557937565613,\"sma1\":0.17816441425925925,\"sma2\":0.1799383766666667,\"rsi_avg_gain\":0.000727890792470111,\"rsi_avg_loss\":0.001202660391957672,\"rsi\":38},{\"period_id\":\"120m209766\",\"size\":\"120m\",\"time\":1510315200000,\"open\":0.183,\"high\":0.18419,\"low\":0.175,\"close\":0.1756,\"volume\":3142127.279473542,\"close_time\":1510322389977,\"vwap\":0.1862185048900093,\"ema1\":0.18417699864294276,\"sma1\":0.17804691425925925,\"sma2\":0.17987671000000008,\"rsi_avg_gain\":0.000614651622660119,\"rsi_avg_loss\":0.0012951727298005698,\"rsi\":32},{\"period_id\":\"120m209765\",\"size\":\"120m\",\"time\":1510308000000,\"open\":0.18448,\"high\":0.18618,\"low\":0.1828,\"close\":0.18419,\"volume\":1506359.236394429,\"close_time\":1510315192886,\"vwap\":0.18778711437481407,\"ema1\":0.18476851579073192,\"sma1\":0.17791543277777783,\"sma2\":0.1797035433333334,\"rsi_avg_gain\":0.0006619325167108974,\"rsi_avg_loss\":0.000734032170554461,\"rsi\":47},{\"period_id\":\"120m209764\",\"size\":\"120m\",\"time\":1510300800000,\"open\":0.184,\"high\":0.18554,\"low\":0.183,\"close\":0.1833,\"volume\":1503755.2062659115,\"close_time\":1510307961116,\"vwap\":0.18793074779398153,\"ema1\":0.18480841343147206,\"sma1\":0.17779617351851856,\"sma2\":0.1795332100000001,\"rsi_avg_gain\":0.0006443888641501971,\"rsi_avg_loss\":0.0007904961836740349,\"rsi\":45},{\"period_id\":\"120m209763\",\"size\":\"120m\",\"time\":1510293600000,\"open\":0.1856,\"high\":0.18767,\"low\":0.182,\"close\":0.18456,\"volume\":1486303.6773744512,\"close_time\":1510300710540,\"vwap\":0.1880778486189127,\"ema1\":0.18491244194398737,\"sma1\":0.1776452475925926,\"sma2\":0.17936287666666675,\"rsi_avg_gain\":0.0006939572383155969,\"rsi_avg_loss\":0.0007543805054951136,\"rsi\":48},{\"period_id\":\"120m209762\",\"size\":\"120m\",\"time\":1510286400000,\"open\":0.18779,\"high\":0.1893,\"low\":0.185,\"close\":0.1856,\"volume\":939146.5902925809,\"close_time\":1510293560736,\"vwap\":0.1882975320587882,\"ema1\":0.18493674828495202,\"sma1\":0.17748154388888893,\"sma2\":0.1791872100000001,\"rsi_avg_gain\":0.0007473385643398736,\"rsi_avg_loss\":0.000732409775148585,\"rsi\":51},{\"period_id\":\"120m209761\",\"size\":\"120m\",\"time\":1510279200000,\"open\":0.18826,\"high\":0.1888,\"low\":0.18701,\"close\":0.18705,\"volume\":339837.14506474993,\"close_time\":1510285951714,\"vwap\":0.1883504356108337,\"ema1\":0.1848910067873625,\"sma1\":0.17732413648148154,\"sma2\":0.17897471000000006,\"rsi_avg_gain\":0.0008048261462121716,\"rsi_avg_loss\":0.0006772105270830911,\"rsi\":54},{\"period_id\":\"120m209760\",\"size\":\"120m\",\"time\":1510272000000,\"open\":0.18789,\"high\":0.1891,\"low\":0.18751,\"close\":0.18826,\"volume\":345118.0852415101,\"close_time\":1510279161966,\"vwap\":0.18835270485911618,\"ema1\":0.18474211070373234,\"sma1\":0.17716571055555563,\"sma2\":0.17874387666666677,\"rsi_avg_gain\":0.0008667358497669541,\"rsi_avg_loss\":0.0006362267214740969,\"rsi\":58},{\"period_id\":\"120m209759\",\"size\":\"120m\",\"time\":1510264800000,\"open\":0.18834,\"high\":0.18945,\"low\":0.187,\"close\":0.1879,\"volume\":796401.9897196796,\"close_time\":1510271939436,\"vwap\":0.18835256347181825,\"ema1\":0.18449949764881732,\"sma1\":0.17701191425925933,\"sma2\":0.1784985433333334,\"rsi_avg_gain\":0.0009057155305182582,\"rsi_avg_loss\":0.0006851672385105659,\"rsi\":57},{\"period_id\":\"120m209758\",\"size\":\"120m\",\"time\":1510257600000,\"open\":0.18978,\"high\":0.19079,\"low\":0.188,\"close\":0.18826,\"volume\":1298007.2077193111,\"close_time\":1510264623260,\"vwap\":0.18836352821991503,\"ema1\":0.18426498024528748,\"sma1\":0.17684580314814824,\"sma2\":0.17826021000000009,\"rsi_avg_gain\":0.0009753859559427396,\"rsi_avg_loss\":0.0007101801030113786,\"rsi\":58},{\"period_id\":\"120m209757\",\"size\":\"120m\",\"time\":1510250400000,\"open\":0.19128,\"high\":0.19157,\"low\":0.189,\"close\":0.19,\"volume\":1405700.9650095599,\"close_time\":1510257580160,\"vwap\":0.18831566010696454,\"ema1\":0.1839894616415142,\"sma1\":0.17667126611111125,\"sma2\":0.1780185433333334,\"rsi_avg_gain\":0.001050415644861412,\"rsi_avg_loss\":0.0006309631878584084,\"rsi\":62},{\"period_id\":\"120m209756\",\"size\":\"120m\",\"time\":1510243200000,\"open\":0.18917,\"high\":0.1916,\"low\":0.189,\"close\":0.19116,\"volume\":1132757.5451497396,\"close_time\":1510250373928,\"vwap\":0.18823830768775424,\"ema1\":0.18357494175472208,\"sma1\":0.1765036735185187,\"sma2\":0.17775237666666677,\"rsi_avg_gain\":0.0011312168483122898,\"rsi_avg_loss\":0.0005902680484629018,\"rsi\":66},{\"period_id\":\"120m209755\",\"size\":\"120m\",\"time\":1510236000000,\"open\":0.18691,\"high\":0.1895,\"low\":0.186,\"close\":0.18924,\"volume\":1015144.8545400195,\"close_time\":1510243165747,\"vwap\":0.188151693866055,\"ema1\":0.1830518342895305,\"sma1\":0.17636571055555572,\"sma2\":0.17752904333333344,\"rsi_avg_gain\":0.0010705412212593888,\"rsi_avg_loss\":0.0006356732829600481,\"rsi\":63},{\"period_id\":\"120m209754\",\"size\":\"120m\",\"time\":1510228800000,\"open\":0.18752,\"high\":0.18776,\"low\":0.185,\"close\":0.18751,\"volume\":1343139.0552525606,\"close_time\":1510235959442,\"vwap\":0.18814836612512784,\"ema1\":0.1826250642405326,\"sma1\":0.1762457105555557,\"sma2\":0.17735404333333343,\"rsi_avg_gain\":0.0010198136228947278,\"rsi_avg_loss\":0.0006845712278031286,\"rsi\":60},{\"period_id\":\"120m209753\",\"size\":\"120m\",\"time\":1510221600000,\"open\":0.1869,\"high\":0.19,\"low\":0.1862,\"close\":0.18776,\"volume\":3008040.409756683,\"close_time\":1510228722468,\"vwap\":0.1882247496525154,\"ema1\":0.18228817211919002,\"sma1\":0.17610496981481497,\"sma2\":0.17714137666666677,\"rsi_avg_gain\":0.0010982608246558607,\"rsi_avg_loss\":0.0007179997837879846,\"rsi\":60},{\"period_id\":\"120m209752\",\"size\":\"120m\",\"time\":1510214400000,\"open\":0.1918,\"high\":0.19399,\"low\":0.18508,\"close\":0.18612,\"volume\":2349684.717258219,\"close_time\":1510221593570,\"vwap\":0.18815230654743692,\"ema1\":0.18191080467913415,\"sma1\":0.17592635870370388,\"sma2\":0.17697271000000006,\"rsi_avg_gain\":0.001056588580398619,\"rsi_avg_loss\":0.0007732305363870603,\"rsi\":58},{\"period_id\":\"120m209751\",\"size\":\"120m\",\"time\":1510207200000,\"open\":0.19,\"high\":0.19345,\"low\":0.18762,\"close\":0.1923,\"volume\":1760255.8831517405,\"close_time\":1510214387087,\"vwap\":0.1881021441272482,\"ema1\":0.18162051534666063,\"sma1\":0.17574978462962984,\"sma2\":0.17669971000000004,\"rsi_avg_gain\":0.0011378646250446666,\"rsi_avg_loss\":0.00035732519303221936,\"rsi\":76},{\"period_id\":\"120m209750\",\"size\":\"120m\",\"time\":1510200000000,\"open\":0.19149,\"high\":0.19209,\"low\":0.18817,\"close\":0.19,\"volume\":1028929.5947521498,\"close_time\":1510207189870,\"vwap\":0.18778873425941697,\"ema1\":0.1808839991636717,\"sma1\":0.17558172907407427,\"sma2\":0.1764783766666667,\"rsi_avg_gain\":0.0010484695962019491,\"rsi_avg_loss\":0.00038481174634239006,\"rsi\":73},{\"period_id\":\"120m209749\",\"size\":\"120m\",\"time\":1510192800000,\"open\":0.1904,\"high\":0.19199,\"low\":0.19,\"close\":0.1915,\"volume\":451503.23897744983,\"close_time\":1510199851179,\"vwap\":0.1876808416667237,\"ema1\":0.18025530945082147,\"sma1\":0.17541978462962982,\"sma2\":0.17619621,\"rsi_avg_gain\":0.0011291211036020992,\"rsi_avg_loss\":0.00029902803452257383,\"rsi\":79},{\"period_id\":\"120m209748\",\"size\":\"120m\",\"time\":1510185600000,\"open\":0.1883,\"high\":0.19145,\"low\":0.18762,\"close\":0.1905,\"volume\":1098934.3051002997,\"close_time\":1510192757308,\"vwap\":0.18764160380063327,\"ema1\":0.1794798135508781,\"sma1\":0.17525987722222236,\"sma2\":0.17593787666666666,\"rsi_avg_gain\":0.001139053496186876,\"rsi_avg_loss\":0.0003220301910243103,\"rsi\":78},{\"period_id\":\"120m209747\",\"size\":\"120m\",\"time\":1510178400000,\"open\":0.18594,\"high\":0.194,\"low\":0.18486,\"close\":0.1883,\"volume\":3605912.2368677803,\"close_time\":1510185592050,\"vwap\":0.18757060063157252,\"ema1\":0.17871980069231796,\"sma1\":0.17507932166666682,\"sma2\":0.17577454333333328,\"rsi_avg_gain\":0.001057442226662789,\"rsi_avg_loss\":0.0003468017441800265,\"rsi\":75},{\"period_id\":\"120m209746\",\"size\":\"120m\",\"time\":1510171200000,\"open\":0.18458,\"high\":0.189,\"low\":0.18392,\"close\":0.18483,\"volume\":2863643.826655647,\"close_time\":1510178396358,\"vwap\":0.18534618975178263,\"ema1\":0.17805909729178818,\"sma1\":0.17494774759259274,\"sma2\":0.17574237666666667,\"rsi_avg_gain\":0.0008718608594830033,\"rsi_avg_loss\":0.00037347880142464394,\"rsi\":70},{\"period_id\":\"120m209745\",\"size\":\"120m\",\"time\":1510164000000,\"open\":0.18168,\"high\":0.18489,\"low\":0.1812,\"close\":0.18478,\"volume\":1649316.9000354288,\"close_time\":1510171085680,\"vwap\":0.18346214708068612,\"ema1\":0.17759213848432528,\"sma1\":0.17485432166666684,\"sma2\":0.17572520999999994,\"rsi_avg_gain\":0.0009350809255970809,\"rsi_avg_loss\":0.00040220793999577037,\"rsi\":70},{\"period_id\":\"120m209744\",\"size\":\"120m\",\"time\":1510156800000,\"open\":0.18179,\"high\":0.18185,\"low\":0.18021,\"close\":0.18169,\"volume\":681920.6512323202,\"close_time\":1510163982490,\"vwap\":0.1780481740129535,\"ema1\":0.17709642389703736,\"sma1\":0.17479080314814832,\"sma2\":0.17573820999999995,\"rsi_avg_gain\":0.0007693179198737787,\"rsi_avg_loss\":0.00043314701230313734,\"rsi\":64},{\"period_id\":\"120m209743\",\"size\":\"120m\",\"time\":1510149600000,\"open\":0.1805,\"high\":0.18185,\"low\":0.17981,\"close\":0.18185,\"volume\":951725.1750221897,\"close_time\":1510156611388,\"vwap\":0.17803083711580103,\"ema1\":0.1767796255451089,\"sma1\":0.17472358092592605,\"sma2\":0.17568104333333331,\"rsi_avg_gain\":0.0008284962214025308,\"rsi_avg_loss\":0.0004541583209418386,\"rsi\":65},{\"period_id\":\"120m209742\",\"size\":\"120m\",\"time\":1510142400000,\"open\":0.17993,\"high\":0.18099,\"low\":0.17898,\"close\":0.1805,\"volume\":540792.8048310501,\"close_time\":1510149525975,\"vwap\":0.17799864413898983,\"ema1\":0.17642994454821986,\"sma1\":0.17467182166666678,\"sma2\":0.17562087666666662,\"rsi_avg_gain\":0.000788380546125801,\"rsi_avg_loss\":0.0004890935763989031,\"rsi\":62},{\"period_id\":\"120m209741\",\"size\":\"120m\",\"time\":1510135200000,\"open\":0.1814,\"high\":0.1818,\"low\":0.179,\"close\":0.179,\"volume\":783970.61652481,\"close_time\":1510142377261,\"vwap\":0.17798592179001355,\"ema1\":0.17614925106878676,\"sma1\":0.17461108092592603,\"sma2\":0.1755445433333333,\"rsi_avg_gain\":0.000733640588135478,\"rsi_avg_loss\":0.0005267161591988187,\"rsi\":58},{\"period_id\":\"120m209740\",\"size\":\"120m\",\"time\":1510128000000,\"open\":0.17791,\"high\":0.1815,\"low\":0.1779,\"close\":0.1814,\"volume\":1374943.94239282,\"close_time\":1510135187696,\"vwap\":0.17795842927370964,\"ema1\":0.17595264769422034,\"sma1\":0.17454858092592598,\"sma2\":0.17539120999999996,\"rsi_avg_gain\":0.0007900744795305148,\"rsi_avg_loss\":0.00038261740221411144,\"rsi\":67},{\"period_id\":\"120m209739\",\"size\":\"120m\",\"time\":1510120800000,\"open\":0.17764,\"high\":0.17849,\"low\":0.17652,\"close\":0.178,\"volume\":384621.52919080993,\"close_time\":1510127962156,\"vwap\":0.17785349603620584,\"ema1\":0.17557696822485622,\"sma1\":0.17450515500000008,\"sma2\":0.1753463766666666,\"rsi_avg_gain\":0.0005893109779559379,\"rsi_avg_loss\":0.0004120495100767354,\"rsi\":59},{\"period_id\":\"120m209738\",\"size\":\"120m\",\"time\":1510113600000,\"open\":0.1769,\"high\":0.1777,\"low\":0.17644,\"close\":0.1777,\"volume\":69522.52897796,\"close_time\":1510120779142,\"vwap\":0.177853312785054,\"ema1\":0.17540986258519112,\"sma1\":0.17446256240740748,\"sma2\":0.1752628766666666,\"rsi_avg_gain\":0.0006115656685679335,\"rsi_avg_loss\":0.0004437456262364843,\"rsi\":58},{\"period_id\":\"120m209737\",\"size\":\"120m\",\"time\":1510106400000,\"open\":0.17604,\"high\":0.1777,\"low\":0.17601,\"close\":0.17679,\"volume\":48029.677979789994,\"close_time\":1510113047765,\"vwap\":0.17785347063161105,\"ema1\":0.17525192207382498,\"sma1\":0.17442145129629635,\"sma2\":0.1751333766666666,\"rsi_avg_gain\":0.0005886091815346981,\"rsi_avg_loss\":0.0004778799051777523,\"rsi\":55},{\"period_id\":\"120m209736\",\"size\":\"120m\",\"time\":1510099200000,\"open\":0.17749,\"high\":0.178,\"low\":0.17573,\"close\":0.17627,\"volume\":193680.65782711,\"close_time\":1510105724331,\"vwap\":0.1778535055736441,\"ema1\":0.17514584773408878,\"sma1\":0.17438404388888895,\"sma2\":0.1751413766666666,\"rsi_avg_gain\":0.0005938868108835216,\"rsi_avg_loss\":0.0005146398978837333,\"rsi\":54},{\"period_id\":\"120m209735\",\"size\":\"120m\",\"time\":1510092000000,\"open\":0.176,\"high\":0.17798,\"low\":0.17505,\"close\":0.17654,\"volume\":331983.7212767101,\"close_time\":1510099191438,\"vwap\":0.17785459560637412,\"ema1\":0.17506831999161215,\"sma1\":0.17434135870370374,\"sma2\":0.17506720999999995,\"rsi_avg_gain\":0.0006395704117207156,\"rsi_avg_loss\":0.000533458351567098,\"rsi\":55},{\"period_id\":\"120m209734\",\"size\":\"120m\",\"time\":1510084800000,\"open\":0.17462,\"high\":0.17599,\"low\":0.174,\"close\":0.1758,\"volume\":543890.8425675798,\"close_time\":1510091951730,\"vwap\":0.17786052832804786,\"ema1\":0.1749668248186199,\"sma1\":0.1743274698148148,\"sma2\":0.17486787666666662,\"rsi_avg_gain\":0.0006318450587761559,\"rsi_avg_loss\":0.0005744936093799517,\"rsi\":52},{\"period_id\":\"120m209733\",\"size\":\"120m\",\"time\":1510077600000,\"open\":0.176,\"high\":0.17623,\"low\":0.1742,\"close\":0.17467,\"volume\":298285.5914498901,\"close_time\":1510084781753,\"vwap\":0.1778801537025728,\"ema1\":0.17490936446128333,\"sma1\":0.17430265499999997,\"sma2\":0.17470687666666665,\"rsi_avg_gain\":0.0005935254479127818,\"rsi_avg_loss\":0.0006186854254861019,\"rsi\":49},{\"period_id\":\"120m209732\",\"size\":\"120m\",\"time\":1510070400000,\"open\":0.17696,\"high\":0.17699,\"low\":0.1741,\"close\":0.17624,\"volume\":616210.35768858,\"close_time\":1510077534651,\"vwap\":0.17788815160123073,\"ema1\":0.17492587235516494,\"sma1\":0.17427219203703703,\"sma2\":0.17451487666666665,\"rsi_avg_gain\":0.0006391812515983804,\"rsi_avg_loss\":0.0005455073812927238,\"rsi\":54},{\"period_id\":\"120m209731\",\"size\":\"120m\",\"time\":1510063200000,\"open\":0.1765,\"high\":0.1788,\"low\":0.175,\"close\":0.17696,\"volume\":484177.00953444996,\"close_time\":1510070388539,\"vwap\":0.17790928483750598,\"ema1\":0.1748352428624177,\"sma1\":0.1742154327777778,\"sma2\":0.17432304333333332,\"rsi_avg_gain\":0.0006883490401828712,\"rsi_avg_loss\":0.000532084872161395,\"rsi\":56},{\"period_id\":\"120m209730\",\"size\":\"120m\",\"time\":1510056000000,\"open\":0.17611,\"high\":0.1794,\"low\":0.17513,\"close\":0.1765,\"volume\":691270.1650262901,\"close_time\":1510063183951,\"vwap\":0.17791583990269808,\"ema1\":0.174688707887412,\"sma1\":0.17414691425925927,\"sma2\":0.17415170999999996,\"rsi_avg_gain\":0.0007059143509661678,\"rsi_avg_loss\":0.0005730144777122716,\"rsi\":55},{\"period_id\":\"120m209729\",\"size\":\"120m\",\"time\":1510048800000,\"open\":0.175,\"high\":0.17611,\"low\":0.1742,\"close\":0.17611,\"volume\":343346.65494068,\"close_time\":1510055978376,\"vwap\":0.17792392781998673,\"ema1\":0.17456379118999213,\"sma1\":0.17410311796296296,\"sma2\":0.17388320999999998,\"rsi_avg_gain\":0.0007302154548866421,\"rsi_avg_loss\":0.0006170925144593694,\"rsi\":54},{\"period_id\":\"120m209728\",\"size\":\"120m\",\"time\":1510041600000,\"open\":0.17482,\"high\":0.1763,\"low\":0.1744,\"close\":0.1757,\"volume\":580407.61852609,\"close_time\":1510048791024,\"vwap\":0.17793401024544825,\"ema1\":0.17445715609964677,\"sma1\":0.17407061796296294,\"sma2\":0.17356670999999996,\"rsi_avg_gain\":0.0007548474129548458,\"rsi_avg_loss\":0.0006645611694177824,\"rsi\":53},{\"period_id\":\"120m209727\",\"size\":\"120m\",\"time\":1510034400000,\"open\":0.1744,\"high\":0.17537,\"low\":0.17321,\"close\":0.17482,\"volume\":284289.22077732993,\"close_time\":1510041591397,\"vwap\":0.17795374386759563,\"ema1\":0.17437144272720861,\"sma1\":0.17405580314814817,\"sma2\":0.17330504333333335,\"rsi_avg_gain\":0.0007452202908744498,\"rsi_avg_loss\":0.0007156812593729964,\"rsi\":51},{\"period_id\":\"120m209726\",\"size\":\"120m\",\"time\":1510027200000,\"open\":0.17457,\"high\":0.17517,\"low\":0.17371,\"close\":0.17447,\"volume\":11673.709015010001,\"close_time\":1510034307242,\"vwap\":0.1779629844357947,\"ema1\":0.17434050774287818,\"sma1\":0.1740440438888889,\"sma2\":0.1730855433333333,\"rsi_avg_gain\":0.0007756218517109447,\"rsi_avg_loss\":0.00077073366394015,\"rsi\":50},{\"period_id\":\"120m209725\",\"size\":\"120m\",\"time\":1510020000000,\"open\":0.17377,\"high\":0.1745,\"low\":0.17302,\"close\":0.1745,\"volume\":20485.34577588,\"close_time\":1510026811994,\"vwap\":0.17796308179063156,\"ema1\":0.17433157724238701,\"sma1\":0.17401395129629627,\"sma2\":0.17288554333333334,\"rsi_avg_gain\":0.000835285071073325,\"rsi_avg_loss\":0.0008277131765509306,\"rsi\":50},{\"period_id\":\"120m209724\",\"size\":\"120m\",\"time\":1510012800000,\"open\":0.1752,\"high\":0.176,\"low\":0.173,\"close\":0.173,\"volume\":507745.65906769,\"close_time\":1510019694184,\"vwap\":0.17796319734769908,\"ema1\":0.174319961879793,\"sma1\":0.17397811796296297,\"sma2\":0.17275754333333332,\"rsi_avg_gain\":0.0007841531534635807,\"rsi_avg_loss\":0.0008913834209010021,\"rsi\":47},{\"period_id\":\"120m209723\",\"size\":\"120m\",\"time\":1510005600000,\"open\":0.176,\"high\":0.17736,\"low\":0.17508,\"close\":0.17583,\"volume\":321363.90848562,\"close_time\":1510012612990,\"vwap\":0.17798551293385612,\"ema1\":0.17441099373357183,\"sma1\":0.17393339574074074,\"sma2\":0.17256604333333334,\"rsi_avg_gain\":0.000844472626806933,\"rsi_avg_loss\":0.0007422590686626177,\"rsi\":53},{\"period_id\":\"120m209722\",\"size\":\"120m\",\"time\":1509998400000,\"open\":0.17397,\"high\":0.17917,\"low\":0.173,\"close\":0.17652,\"volume\":837215.3540747804,\"close_time\":1510005596259,\"vwap\":0.1779930078406059,\"ema1\":0.17431313123243886,\"sma1\":0.17388821055555553,\"sma2\":0.17239937666666666,\"rsi_avg_gain\":0.0009094320596382355,\"rsi_avg_loss\":0.0007462789970212788,\"rsi\":55},{\"period_id\":\"120m209721\",\"size\":\"120m\",\"time\":1509991200000,\"open\":0.1779,\"high\":0.178,\"low\":0.1725,\"close\":0.17344,\"volume\":831803.0782492501,\"close_time\":1509998371399,\"vwap\":0.1780235405586302,\"ema1\":0.17416093338640015,\"sma1\":0.17383654388888883,\"sma2\":0.17231671,\"rsi_avg_gain\":0.0007424652949950229,\"rsi_avg_loss\":0.0008036850737152233,\"rsi\":48},{\"period_id\":\"120m209720\",\"size\":\"120m\",\"time\":1509984000000,\"open\":0.17718,\"high\":0.178,\"low\":0.176,\"close\":0.1779,\"volume\":519464.5367089202,\"close_time\":1509991165784,\"vwap\":0.17809143148724535,\"ema1\":0.1742106529302898,\"sma1\":0.1737830253703703,\"sma2\":0.17218487666666665,\"rsi_avg_gain\":0.00079957800999464,\"rsi_avg_loss\":0.0005224300793856257,\"rsi\":60},{\"period_id\":\"120m209719\",\"size\":\"120m\",\"time\":1509976800000,\"open\":0.17746,\"high\":0.17942,\"low\":0.176,\"close\":0.17651,\"volume\":713613.6589118104,\"close_time\":1509983927143,\"vwap\":0.1780952280430637,\"ema1\":0.17395621520134427,\"sma1\":0.17373274759259252,\"sma2\":0.17211521,\"rsi_avg_gain\":0.0007541609338403814,\"rsi_avg_loss\":0.0005626170085691354,\"rsi\":57},{\"period_id\":\"120m209718\",\"size\":\"120m\",\"time\":1509969600000,\"open\":0.17809,\"high\":0.1795,\"low\":0.17611,\"close\":0.17749,\"volume\":1374767.8448534303,\"close_time\":1509976794806,\"vwap\":0.1781078962088466,\"ema1\":0.1737800921117818,\"sma1\":0.17368885870370365,\"sma2\":0.17200871,\"rsi_avg_gain\":0.0008121733133665646,\"rsi_avg_loss\":0.0005305106246129143,\"rsi\":60},{\"period_id\":\"120m209717\",\"size\":\"120m\",\"time\":1509962400000,\"open\":0.1735,\"high\":0.17999,\"low\":0.1725,\"close\":0.1781,\"volume\":2200216.881624569,\"close_time\":1509969590499,\"vwap\":0.17810587718099866,\"ema1\":0.17352423639535297,\"sma1\":0.17363922907407403,\"sma2\":0.17187354333333332,\"rsi_avg_gain\":0.0008746481836255311,\"rsi_avg_loss\":0.0005243960572754462,\"rsi\":63},{\"period_id\":\"120m209716\",\"size\":\"120m\",\"time\":1509955200000,\"open\":0.17255,\"high\":0.17357,\"low\":0.17148,\"close\":0.17356,\"volume\":335989.29328549025,\"close_time\":1509962384294,\"vwap\":0.17814268717999834,\"ema1\":0.1732086664915842,\"sma1\":0.17365006240740738,\"sma2\":0.17183271,\"rsi_avg_gain\":0.0005926980439044169,\"rsi_avg_loss\":0.0005647342155274037,\"rsi\":51},{\"period_id\":\"120m209715\",\"size\":\"120m\",\"time\":1509948000000,\"open\":0.1721,\"high\":0.1728,\"low\":0.1715,\"close\":0.1715,\"volume\":202010.55558656997,\"close_time\":1509955028898,\"vwap\":0.17817962346722827,\"ema1\":0.17318443659445207,\"sma1\":0.1736625624074074,\"sma2\":0.17182771000000002,\"rsi_avg_gain\":0.0004798286626662968,\"rsi_avg_loss\":0.0006081753090295116,\"rsi\":44},{\"period_id\":\"120m209714\",\"size\":\"120m\",\"time\":1509940800000,\"open\":0.17246,\"high\":0.17288,\"low\":0.17201,\"close\":0.1721,\"volume\":23604.53356389,\"close_time\":1509947976027,\"vwap\":0.17819002935153158,\"ema1\":0.17330060463544877,\"sma1\":0.173670155,\"sma2\":0.17180604333333335,\"rsi_avg_gain\":0.0005167385597944735,\"rsi_avg_loss\":0.0006088041789548594,\"rsi\":46},{\"period_id\":\"120m209713\",\"size\":\"120m\",\"time\":1509933600000,\"open\":0.17205,\"high\":0.17288,\"low\":0.17157,\"close\":0.17201,\"volume\":19736.135164620002,\"close_time\":1509939281965,\"vwap\":0.17819036950847061,\"ema1\":0.1733834049551349,\"sma1\":0.17367598833333334,\"sma2\":0.17177304333333335,\"rsi_avg_gain\":0.0005495646028555863,\"rsi_avg_loss\":0.0006556352696436946,\"rsi\":46},{\"period_id\":\"120m209712\",\"size\":\"120m\",\"time\":1509926400000,\"open\":0.17216,\"high\":0.17292,\"low\":0.1715,\"close\":0.17158,\"volume\":121462.81296058,\"close_time\":1509933007327,\"vwap\":0.17819054464186113,\"ema1\":0.17347812253824765,\"sma1\":0.17368969203703702,\"sma2\":0.17177604333333335,\"rsi_avg_gain\":0.0005587618799983248,\"rsi_avg_loss\":0.0007060687519239788,\"rsi\":44},{\"period_id\":\"120m209711\",\"size\":\"120m\",\"time\":1509919200000,\"open\":0.1731326,\"high\":0.1735,\"low\":0.17202,\"close\":0.17295,\"volume\":141936.93398588,\"close_time\":1509926340359,\"vwap\":0.17819437173740893,\"ema1\":0.17360902754088542,\"sma1\":0.1737000624074074,\"sma2\":0.17174754333333336,\"rsi_avg_gain\":0.000601743563075119,\"rsi_avg_loss\":0.000654997117456594,\"rsi\":48},{\"period_id\":\"120m209710\",\"size\":\"120m\",\"time\":1509912000000,\"open\":0.1715,\"high\":0.1731326,\"low\":0.17102,\"close\":0.1731326,\"volume\":453581.5936299202,\"close_time\":1509919033486,\"vwap\":0.17820107567180246,\"ema1\":0.1736544777161189,\"sma1\":0.17371383462962958,\"sma2\":0.17172933333333337,\"rsi_avg_gain\":0.0006480315294655129,\"rsi_avg_loss\":0.000691335357260947,\"rsi\":48},{\"period_id\":\"120m209709\",\"size\":\"120m\",\"time\":1509904800000,\"open\":0.17196,\"high\":0.172,\"low\":0.171,\"close\":0.17148,\"volume\":278209.07779125,\"close_time\":1509911957273,\"vwap\":0.1782588334029127,\"ema1\":0.17369046928274778,\"sma1\":0.17373939018518517,\"sma2\":0.17174900000000007,\"rsi_avg_gain\":0.0005707570317320904,\"rsi_avg_loss\":0.0007445150001271737,\"rsi\":43},{\"period_id\":\"120m209708\",\"size\":\"120m\",\"time\":1509897600000,\"open\":0.17288,\"high\":0.173,\"low\":0.17115,\"close\":0.172,\"volume\":375641.9879333099,\"close_time\":1509904684190,\"vwap\":0.1782846119495183,\"ema1\":0.17384291544017866,\"sma1\":0.1737573531481481,\"sma2\":0.1717490000000001,\"rsi_avg_gain\":0.0006146614187884051,\"rsi_avg_loss\":0.0007617853847523415,\"rsi\":45},{\"period_id\":\"120m209707\",\"size\":\"120m\",\"time\":1509890400000,\"open\":0.17179,\"high\":0.173,\"low\":0.171,\"close\":0.17297,\"volume\":292718.31836345984,\"close_time\":1509897404974,\"vwap\":0.1783264436079684,\"ema1\":0.1739700130567427,\"sma1\":0.17377401981481477,\"sma2\":0.1717578333333334,\"rsi_avg_gain\":0.0006619430663875132,\"rsi_avg_loss\":0.000745768875887135,\"rsi\":47},{\"period_id\":\"120m209706\",\"size\":\"120m\",\"time\":1509883200000,\"open\":0.17341,\"high\":0.17438,\"low\":0.1713,\"close\":0.1719,\"volume\":480094.5933641599,\"close_time\":1509890180175,\"vwap\":0.17836020615192072,\"ema1\":0.1740389794744491,\"sma1\":0.1737765198148148,\"sma2\":0.1718028333333334,\"rsi_avg_gain\":0.0006305540714942438,\"rsi_avg_loss\":0.0008031357124938377,\"rsi\":44},{\"period_id\":\"120m209705\",\"size\":\"120m\",\"time\":1509876000000,\"open\":0.1735,\"high\":0.17436,\"low\":0.172,\"close\":0.1738,\"volume\":282879.70329523,\"close_time\":1509882934323,\"vwap\":0.1784358988822435,\"ema1\":0.17418649530027316,\"sma1\":0.1737778161111111,\"sma2\":0.17181316666666674,\"rsi_avg_gain\":0.0006790582308399549,\"rsi_avg_loss\":0.0007187615365318242,\"rsi\":49},{\"period_id\":\"120m209704\",\"size\":\"120m\",\"time\":1509868800000,\"open\":0.175,\"high\":0.175,\"low\":0.17224,\"close\":0.17308,\"volume\":192083.89489337002,\"close_time\":1509875951637,\"vwap\":0.17845437704110648,\"ema1\":0.17421315014856786,\"sma1\":0.17377744574074072,\"sma2\":0.17184000000000005,\"rsi_avg_gain\":0.00067590886398149,\"rsi_avg_loss\":0.0007740508854958108,\"rsi\":47},{\"period_id\":\"120m209703\",\"size\":\"120m\",\"time\":1509861600000,\"open\":0.17477,\"high\":0.175,\"low\":0.17412,\"close\":0.17434,\"volume\":22891.058959859998,\"close_time\":1509868062594,\"vwap\":0.178462397416929,\"ema1\":0.174291298434676,\"sma1\":0.17377559388888886,\"sma2\":0.17183783333333338,\"rsi_avg_gain\":0.0007279018535185276,\"rsi_avg_loss\":0.0007366701843801053,\"rsi\":50},{\"period_id\":\"120m209702\",\"size\":\"120m\",\"time\":1509854400000,\"open\":0.1743,\"high\":0.1751,\"low\":0.17386,\"close\":0.17506,\"volume\":45456.856648160014,\"close_time\":1509861577221,\"vwap\":0.17846261473819097,\"ema1\":0.17428793970603296,\"sma1\":0.17376874203703696,\"sma2\":0.17181833333333338,\"rsi_avg_gain\":0.0007838943037891836,\"rsi_avg_loss\":0.0007379525062554982,\"rsi\":52},{\"period_id\":\"120m209701\",\"size\":\"120m\",\"time\":1509847200000,\"open\":0.17441,\"high\":0.17508,\"low\":0.17233,\"close\":0.1743,\"volume\":87526.60253024001,\"close_time\":1509854298552,\"vwap\":0.1784632124349135,\"ema1\":0.174234694168518,\"sma1\":0.17375633462962958,\"sma2\":0.17181566666666673,\"rsi_avg_gain\":0.0007857323271575837,\"rsi_avg_loss\":0.0007947180836597673,\"rsi\":50},{\"period_id\":\"120m209700\",\"size\":\"120m\",\"time\":1509840000000,\"open\":0.1732,\"high\":0.1747,\"low\":0.17234,\"close\":0.17441,\"volume\":220942.73585190997,\"close_time\":1509847131823,\"vwap\":0.17846521808274862,\"ema1\":0.17423019031807097,\"sma1\":0.1737498531481481,\"sma2\":0.1718096666666667,\"rsi_avg_gain\":0.0008461732754004748,\"rsi_avg_loss\":0.0008473887054797495,\"rsi\":50},{\"period_id\":\"120m209699\",\"size\":\"120m\",\"time\":1509832800000,\"open\":0.17397,\"high\":0.17489,\"low\":0.17309,\"close\":0.17318,\"volume\":70737.93909811002,\"close_time\":1509839832787,\"vwap\":0.17847678677463588,\"ema1\":0.17421778965035173,\"sma1\":0.17374290870370365,\"sma2\":0.17182766666666668,\"rsi_avg_gain\":0.0008166481427389721,\"rsi_avg_loss\":0.0009125724520551149,\"rsi\":47},{\"period_id\":\"120m209698\",\"size\":\"120m\",\"time\":1509825600000,\"open\":0.1747,\"high\":0.17491,\"low\":0.173,\"close\":0.17396,\"volume\":312704.62396786007,\"close_time\":1509832781004,\"vwap\":0.1784782129681791,\"ema1\":0.17428936135037598,\"sma1\":0.17373327907407404,\"sma2\":0.17182000000000003,\"rsi_avg_gain\":0.0008794672306419699,\"rsi_avg_loss\":0.0009227703329824312,\"rsi\":49},{\"period_id\":\"120m209697\",\"size\":\"120m\",\"time\":1509818400000,\"open\":0.17519,\"high\":0.17576,\"low\":0.1746,\"close\":0.1755,\"volume\":115412.53669688001,\"close_time\":1509825521375,\"vwap\":0.17850225987981566,\"ema1\":0.174312075926264,\"sma1\":0.17372003833333327,\"sma2\":0.17180766666666666,\"rsi_avg_gain\":0.0009471185560759677,\"rsi_avg_loss\":0.0008752911278272346,\"rsi\":52},{\"period_id\":\"120m209696\",\"size\":\"120m\",\"time\":1509811200000,\"open\":0.17544,\"high\":0.176,\"low\":0.17461,\"close\":0.17519,\"volume\":265530.03636954,\"close_time\":1509818399443,\"vwap\":0.17850559339448926,\"ema1\":0.1742301501280753,\"sma1\":0.17369772351851848,\"sma2\":0.17177116666666667,\"rsi_avg_gain\":0.0009961276757741208,\"rsi_avg_loss\":0.0009426212145831758,\"rsi\":51},{\"period_id\":\"120m209695\",\"size\":\"120m\",\"time\":1509804000000,\"open\":0.17701,\"high\":0.17727,\"low\":0.1754,\"close\":0.17584,\"volume\":400965.41010697023,\"close_time\":1509811145225,\"vwap\":0.17851852448476518,\"ema1\":0.17416395358518394,\"sma1\":0.17367207537037033,\"sma2\":0.17174766666666663,\"rsi_avg_gain\":0.0010727528816028994,\"rsi_avg_loss\":0.0009651305387818828,\"rsi\":53},{\"period_id\":\"120m209694\",\"size\":\"120m\",\"time\":1509796800000,\"open\":0.17545,\"high\":0.17796,\"low\":0.175,\"close\":0.17701,\"volume\":519384.7214879097,\"close_time\":1509803994909,\"vwap\":0.1785290767130123,\"ema1\":0.1740483641772656,\"sma1\":0.17365281611111102,\"sma2\":0.17170333333333332,\"rsi_avg_gain\":0.0011552723340338916,\"rsi_avg_loss\":0.000949371349457412,\"rsi\":55},{\"period_id\":\"120m209693\",\"size\":\"120m\",\"time\":1509789600000,\"open\":0.17463,\"high\":0.17686,\"low\":0.1742,\"close\":0.175,\"volume\":276182.54125248006,\"close_time\":1509796634780,\"vwap\":0.17854871516906917,\"ema1\":0.1738441134308701,\"sma1\":0.17364151981481477,\"sma2\":0.1717033333333333,\"rsi_avg_gain\":0.0010895240520364976,\"rsi_avg_loss\":0.0010223999148002898,\"rsi\":52},{\"period_id\":\"120m209692\",\"size\":\"120m\",\"time\":1509782400000,\"open\":0.17584,\"high\":0.17674414,\"low\":0.17422,\"close\":0.176,\"volume\":457462.7664928798,\"close_time\":1509789508359,\"vwap\":0.17855994800834968,\"ema1\":0.1737643971157577,\"sma1\":0.17362379629629623,\"sma2\":0.1716633333333333,\"rsi_avg_gain\":0.0011733335945008437,\"rsi_avg_loss\":0.0010241229851695427,\"rsi\":53},{\"period_id\":\"120m209691\",\"size\":\"120m\",\"time\":1509775200000,\"open\":0.17575,\"high\":0.17638,\"low\":0.17486,\"close\":0.17592,\"volume\":205233.37796132002,\"close_time\":1509782377457,\"vwap\":0.17858274459868828,\"ema1\":0.1736102176064996,\"sma1\":0.17359712962962956,\"sma2\":0.17161466666666664,\"rsi_avg_gain\":0.0012574361786932165,\"rsi_avg_loss\":0.0011029016763364305,\"rsi\":53},{\"period_id\":\"120m209690\",\"size\":\"120m\",\"time\":1509768000000,\"open\":0.17459,\"high\":0.17672,\"low\":0.17359,\"close\":0.17672,\"volume\":408079.27570876,\"close_time\":1509775092431,\"vwap\":0.17858861860613026,\"ema1\":0.17345092226901682,\"sma1\":0.17356851851851848,\"sma2\":0.17155416666666665,\"rsi_avg_gain\":0.0013541620385926947,\"rsi_avg_loss\":0.001126201805285387,\"rsi\":55},{\"period_id\":\"120m209689\",\"size\":\"120m\",\"time\":1509760800000,\"open\":0.17535,\"high\":0.17698,\"low\":0.17202,\"close\":0.17457,\"volume\":1521247.5292743105,\"close_time\":1509767699486,\"vwap\":0.17859694397273349,\"ema1\":0.1732254686323973,\"sma1\":0.17353731481481477,\"sma2\":0.17152916666666662,\"rsi_avg_gain\":0.001292943733869057,\"rsi_avg_loss\":0.001212832713384263,\"rsi\":52},{\"period_id\":\"120m209688\",\"size\":\"120m\",\"time\":1509753600000,\"open\":0.1785,\"high\":0.179,\"low\":0.175,\"close\":0.175,\"volume\":451997.22231772024,\"close_time\":1509760617905,\"vwap\":0.17869993388998257,\"ema1\":0.1731327423311833,\"sma1\":0.17348388888888883,\"sma2\":0.17149466666666663,\"rsi_avg_gain\":0.0013924009441666767,\"rsi_avg_loss\":0.0012730506144138227,\"rsi\":52},{\"period_id\":\"120m209687\",\"size\":\"120m\",\"time\":1509746400000,\"open\":0.1829,\"high\":0.184,\"low\":0.1785,\"close\":0.1785,\"volume\":575165.06890172,\"close_time\":1509753593833,\"vwap\":0.178718946495395,\"ema1\":0.17300396594023043,\"sma1\":0.1733971296296296,\"sma2\":0.17139216666666662,\"rsi_avg_gain\":0.001499508709102575,\"rsi_avg_loss\":0.001101746815522578,\"rsi\":58},{\"period_id\":\"120m209686\",\"size\":\"120m\",\"time\":1509739200000,\"open\":0.1832,\"high\":0.18659,\"low\":0.182,\"close\":0.1829,\"volume\":2008075.9797360403,\"close_time\":1509746386140,\"vwap\":0.17868405816667854,\"ema1\":0.17262492910852217,\"sma1\":0.17327666666666663,\"sma2\":0.17122716666666665,\"rsi_avg_gain\":0.001614855532879696,\"rsi_avg_loss\":0.0008480350321012367,\"rsi\":66},{\"period_id\":\"120m209685\",\"size\":\"120m\",\"time\":1509732000000,\"open\":0.18246,\"high\":0.184,\"low\":0.17948,\"close\":0.18375,\"volume\":1677742.2580434396,\"close_time\":1509739152792,\"vwap\":0.17778562983435456,\"ema1\":0.17191630352979956,\"sma1\":0.17316833333333334,\"sma2\":0.17103883333333328,\"rsi_avg_gain\":0.0017390751892550572,\"rsi_avg_loss\":0.0008478838807244095,\"rsi\":67},{\"period_id\":\"120m209684\",\"size\":\"120m\",\"time\":1509724800000,\"open\":0.17841,\"high\":0.18247,\"low\":0.17841,\"close\":0.18247,\"volume\":1072665.8394164399,\"close_time\":1509731987799,\"vwap\":0.17726962499044302,\"ema1\":0.17110018653185471,\"sma1\":0.17307925925925924,\"sma2\":0.17086349999999997,\"rsi_avg_gain\":0.0017743886653515998,\"rsi_avg_loss\":0.0009131057177032102,\"rsi\":66},{\"period_id\":\"120m209683\",\"size\":\"120m\",\"time\":1509717600000,\"open\":0.1768,\"high\":0.18334,\"low\":0.17621,\"close\":0.17842,\"volume\":2248575.3095276006,\"close_time\":1509724727590,\"vwap\":0.1771058213357753,\"ema1\":0.17031606146508607,\"sma1\":0.17300240740740738,\"sma2\":0.17076766666666668,\"rsi_avg_gain\":0.0015993416396094151,\"rsi_avg_loss\":0.0009833446190649956,\"rsi\":62},{\"period_id\":\"120m209682\",\"size\":\"120m\",\"time\":1509710400000,\"open\":0.17437,\"high\":0.17699,\"low\":0.173,\"close\":0.17689,\"volume\":661699.4675666498,\"close_time\":1509717577659,\"vwap\":0.17610904718965908,\"ema1\":0.16975716915233338,\"sma1\":0.17297009259259258,\"sma2\":0.17068616666666667,\"rsi_avg_gain\":0.0016046756118870621,\"rsi_avg_loss\":0.001058986512839226,\"rsi\":60},{\"period_id\":\"120m209681\",\"size\":\"120m\",\"time\":1509703200000,\"open\":0.1745,\"high\":0.17557,\"low\":0.17226,\"close\":0.17442,\"volume\":781881.1833836805,\"close_time\":1509710384632,\"vwap\":0.17612201233344596,\"ema1\":0.16926524978352878,\"sma1\":0.17297185185185182,\"sma2\":0.17061966666666664,\"rsi_avg_gain\":0.0015381121974168362,\"rsi_avg_loss\":0.0011404470138268587,\"rsi\":57},{\"period_id\":\"120m209680\",\"size\":\"120m\",\"time\":1509696000000,\"open\":0.1749,\"high\":0.1765,\"low\":0.1721,\"close\":0.1722,\"volume\":1284360.5497725192,\"close_time\":1509703193194,\"vwap\":0.17625321375539948,\"ema1\":0.16890974976859974,\"sma1\":0.17297555555555555,\"sma2\":0.17060466666666665,\"rsi_avg_gain\":0.0014856592895258237,\"rsi_avg_loss\":0.0012281737071981554,\"rsi\":55},{\"period_id\":\"120m209679\",\"size\":\"120m\",\"time\":1509688800000,\"open\":0.1717,\"high\":0.176,\"low\":0.17,\"close\":0.17531,\"volume\":935123.9349501398,\"close_time\":1509695910104,\"vwap\":0.17633536868824268,\"ema1\":0.16868283595953765,\"sma1\":0.17298472222222222,\"sma2\":0.1705553333333333,\"rsi_avg_gain\":0.0015999407733355024,\"rsi_avg_loss\":0.0010834178385210904,\"rsi\":60},{\"period_id\":\"120m209678\",\"size\":\"120m\",\"time\":1509681600000,\"open\":0.16914,\"high\":0.1742,\"low\":0.1675,\"close\":0.17269,\"volume\":434158.1058708002,\"close_time\":1509688744339,\"vwap\":0.17651211497058028,\"ema1\":0.1682257901636437,\"sma1\":0.17300138888888889,\"sma2\":0.17056599999999997,\"rsi_avg_gain\":0.0015214746789766961,\"rsi_avg_loss\":0.0011667576722534819,\"rsi\":57},{\"period_id\":\"120m209677\",\"size\":\"120m\",\"time\":1509674400000,\"open\":0.17603,\"high\":0.1768,\"low\":0.16835,\"close\":0.16902,\"volume\":791394.3819360004,\"close_time\":1509681430051,\"vwap\":0.17662271188834552,\"ema1\":0.16791791362320532,\"sma1\":0.17298111111111109,\"sma2\":0.170591,\"rsi_avg_gain\":0.0013562035004364415,\"rsi_avg_loss\":0.0012565082624268267,\"rsi\":52},{\"period_id\":\"120m209676\",\"size\":\"120m\",\"time\":1509667200000,\"open\":0.17103,\"high\":0.185,\"low\":0.17103,\"close\":0.17675,\"volume\":2884382.1256436,\"close_time\":1509674369734,\"vwap\":0.17686408577602855,\"ema1\":0.167841907666185,\"sma1\":0.17289240740740736,\"sma2\":0.17049533333333333,\"rsi_avg_gain\":0.0014605268466238602,\"rsi_avg_loss\":0.0007585473595365838,\"rsi\":66},{\"period_id\":\"120m209675\",\"size\":\"120m\",\"time\":1509660000000,\"open\":0.1639,\"high\":0.17379,\"low\":0.16262,\"close\":0.17209,\"volume\":1265909.4986710113,\"close_time\":1509667170394,\"vwap\":0.1682797778001878,\"ema1\":0.1672275564707495,\"sma1\":0.17293324074074073,\"sma2\":0.17048883333333337,\"rsi_avg_gain\":0.001214413527133388,\"rsi_avg_loss\":0.0008168971564240133,\"rsi\":60},{\"period_id\":\"120m209674\",\"size\":\"120m\",\"time\":1509652800000,\"open\":0.16502,\"high\":0.167,\"low\":0.16261,\"close\":0.16384,\"volume\":418199.62917654985,\"close_time\":1509659976821,\"vwap\":0.1648924941639833,\"ema1\":0.16689221553769773,\"sma1\":0.1730593518518518,\"sma2\":0.17062050000000004,\"rsi_avg_gain\":0.0006732145676821118,\"rsi_avg_loss\":0.0008797353992258605,\"rsi\":43},{\"period_id\":\"120m209673\",\"size\":\"120m\",\"time\":1509645600000,\"open\":0.16471,\"high\":0.16652,\"low\":0.1632,\"close\":0.16501,\"volume\":525454.1958027601,\"close_time\":1509652741055,\"vwap\":0.16539223564701547,\"ema1\":0.16710271316098724,\"sma1\":0.1732121296296296,\"sma2\":0.17072883333333333,\"rsi_avg_gain\":0.000725000303657659,\"rsi_avg_loss\":0.0008574073530124669,\"rsi\":46},{\"period_id\":\"120m209672\",\"size\":\"120m\",\"time\":1509638400000,\"open\":0.165,\"high\":0.166,\"low\":0.1635,\"close\":0.16472,\"volume\":405931.72862551996,\"close_time\":1509645579170,\"vwap\":0.16513393800198808,\"ema1\":0.16724703820657258,\"sma1\":0.1733718518518518,\"sma2\":0.1708496666666667,\"rsi_avg_gain\":0.00075846186547748,\"rsi_avg_loss\":0.0009233617647826567,\"rsi\":45},{\"period_id\":\"120m209671\",\"size\":\"120m\",\"time\":1509631200000,\"open\":0.164,\"high\":0.16849,\"low\":0.161,\"close\":0.16545,\"volume\":756164.8164522602,\"close_time\":1509638384550,\"vwap\":0.1675189817314989,\"ema1\":0.16742131670357757,\"sma1\":0.17352925925925924,\"sma2\":0.17095050000000003,\"rsi_avg_gain\":0.0008168050858988247,\"rsi_avg_loss\":0.0009382357466890143,\"rsi\":47},{\"period_id\":\"120m209670\",\"size\":\"120m\",\"time\":1509624000000,\"open\":0.16,\"high\":0.16959,\"low\":0.16,\"close\":0.16622,\"volume\":1455371.3556724899,\"close_time\":1509631193720,\"vwap\":0.16756644874541737,\"ema1\":0.16755726957968636,\"sma1\":0.17366268518518518,\"sma2\":0.1710575,\"rsi_avg_gain\":0.0008796362463525804,\"rsi_avg_loss\":0.0009511769579727851,\"rsi\":48},{\"period_id\":\"120m209669\",\"size\":\"120m\",\"time\":1509616800000,\"open\":0.15797,\"high\":0.16,\"low\":0.15464,\"close\":0.16,\"volume\":1654988.6244434293,\"close_time\":1509623991381,\"vwap\":0.16771567087209505,\"ema1\":0.1676494950679406,\"sma1\":0.17384509259259254,\"sma2\":0.17127416666666667,\"rsi_avg_gain\":0.0004688390345335479,\"rsi_avg_loss\":0.0010243444162783839,\"rsi\":31},{\"period_id\":\"120m209668\",\"size\":\"120m\",\"time\":1509609600000,\"open\":0.1595,\"high\":0.16,\"low\":0.15671,\"close\":0.15671,\"volume\":1721066.7197427999,\"close_time\":1509616786625,\"vwap\":0.16832567839848106,\"ema1\":0.1681770464519365,\"sma1\":0.17403027777777774,\"sma2\":0.171569,\"rsi_avg_gain\":0.00025182665257458895,\"rsi_avg_loss\":0.0011031401406074903,\"rsi\":19},{\"period_id\":\"120m209667\",\"size\":\"120m\",\"time\":1509602400000,\"open\":0.16123,\"high\":0.1632,\"low\":0.159,\"close\":0.15912,\"volume\":2334769.7164794793,\"close_time\":1509609597998,\"vwap\":0.16920214165898714,\"ema1\":0.16896787724172524,\"sma1\":0.17413944444444443,\"sma2\":0.17181533333333335,\"rsi_avg_gain\":0.000271197933541865,\"rsi_avg_loss\":0.001002612459115757,\"rsi\":21},{\"period_id\":\"120m209666\",\"size\":\"120m\",\"time\":1509595200000,\"open\":0.16241,\"high\":0.16472,\"low\":0.1613,\"close\":0.1613,\"volume\":345673.34816585,\"close_time\":1509602353291,\"vwap\":0.17131334470047363,\"ema1\":0.16964704118943041,\"sma1\":0.17423435185185185,\"sma2\":0.172018,\"rsi_avg_gain\":0.0002920593130450854,\"rsi_avg_loss\":0.0009120441867400469,\"rsi\":24},{\"period_id\":\"120m209665\",\"size\":\"120m\",\"time\":1509588000000,\"open\":0.16263,\"high\":0.16764,\"low\":0.1625,\"close\":0.1625,\"volume\":320289.0119792702,\"close_time\":1509595172195,\"vwap\":0.17137621830872088,\"ema1\":0.17022269920249458,\"sma1\":0.1743186111111111,\"sma2\":0.17220133333333335,\"rsi_avg_gain\":0.00031452541404855354,\"rsi_avg_loss\":0.0008898937395662038,\"rsi\":26},{\"period_id\":\"120m209664\",\"size\":\"120m\",\"time\":1509580800000,\"open\":0.16522,\"high\":0.16682,\"low\":0.1616,\"close\":0.16532,\"volume\":505396.63836847997,\"close_time\":1509587956753,\"vwap\":0.171432563159597,\"ema1\":0.1707552991474942,\"sma1\":0.17435518518518517,\"sma2\":0.172343,\"rsi_avg_gain\":0.00033871967666767303,\"rsi_avg_loss\":0.0007414240272251434,\"rsi\":31},{\"period_id\":\"120m209663\",\"size\":\"120m\",\"time\":1509573600000,\"open\":0.1661,\"high\":0.16674,\"low\":0.16434,\"close\":0.16434,\"volume\":906775.1022949998,\"close_time\":1509580719608,\"vwap\":0.17157785123862315,\"ema1\":0.17113014736456278,\"sma1\":0.1743622222222222,\"sma2\":0.172498,\"rsi_avg_gain\":0.0002893904210267262,\"rsi_avg_loss\":0.0007984566447040006,\"rsi\":27},{\"period_id\":\"120m209662\",\"size\":\"120m\",\"time\":1509566400000,\"open\":0.16845,\"high\":0.1696,\"low\":0.16561,\"close\":0.16652,\"volume\":670029.5995432002,\"close_time\":1509573596127,\"vwap\":0.1719077902160368,\"ema1\":0.17159843338970504,\"sma1\":0.17431277777777776,\"sma2\":0.17262266666666667,\"rsi_avg_gain\":0.0003116512226441667,\"rsi_avg_loss\":0.0006921840789120016,\"rsi\":31},{\"period_id\":\"120m209661\",\"size\":\"120m\",\"time\":1509559200000,\"open\":0.16934,\"high\":0.1696,\"low\":0.16704,\"close\":0.16848,\"volume\":1189879.2806359415,\"close_time\":1509566397604,\"vwap\":0.17206777615408447,\"ema1\":0.17194867017520193,\"sma1\":0.17425148148148148,\"sma2\":0.17270366666666664,\"rsi_avg_gain\":0.0003356243936167949,\"rsi_avg_loss\":0.0005946597772898487,\"rsi\":36},{\"period_id\":\"120m209660\",\"size\":\"120m\",\"time\":1509552000000,\"open\":0.1725,\"high\":0.1725,\"low\":0.1694,\"close\":0.16999,\"volume\":917226.6054635601,\"close_time\":1509559199863,\"vwap\":0.1723770717798619,\"ema1\":0.17218788880797448,\"sma1\":0.17415425925925923,\"sma2\":0.17278266666666664,\"rsi_avg_gain\":0.0003614416546642406,\"rsi_avg_loss\":0.0005242489909275285,\"rsi\":41},{\"period_id\":\"120m209659\",\"size\":\"120m\",\"time\":1509544800000,\"open\":0.17109,\"high\":0.17284,\"low\":0.17,\"close\":0.17233,\"volume\":898158.8843483297,\"close_time\":1509551988199,\"vwap\":0.17247190091643375,\"ema1\":0.17233946734645547,\"sma1\":0.1740608333333333,\"sma2\":0.17281766666666665,\"rsi_avg_gain\":0.0003892448588691822,\"rsi_avg_loss\":0.00038457583638349155,\"rsi\":50},{\"period_id\":\"120m209658\",\"size\":\"120m\",\"time\":1509537600000,\"open\":0.1695,\"high\":0.1715,\"low\":0.169,\"close\":0.1711,\"volume\":1039009.0422977093,\"close_time\":1509544792007,\"vwap\":0.17251485729171223,\"ema1\":0.17234012026690068,\"sma1\":0.17401046296296294,\"sma2\":0.17285966666666663,\"rsi_avg_gain\":0.00032457138647450323,\"rsi_avg_loss\":0.0004141585930283755,\"rsi\":44},{\"period_id\":\"120m209657\",\"size\":\"120m\",\"time\":1509530400000,\"open\":0.1701,\"high\":0.17198,\"low\":0.1693,\"close\":0.16999,\"volume\":1167024.7693240494,\"close_time\":1509537595423,\"vwap\":0.17271142067487547,\"ema1\":0.17242564580254902,\"sma1\":0.1739659259259259,\"sma2\":0.1729228333333333,\"rsi_avg_gain\":0.0002641538008186958,\"rsi_avg_loss\":0.0004460169463382506,\"rsi\":37},{\"period_id\":\"120m209656\",\"size\":\"120m\",\"time\":1509523200000,\"open\":0.1712,\"high\":0.17266,\"low\":0.17,\"close\":0.17111,\"volume\":802673.6112538003,\"close_time\":1509530399245,\"vwap\":0.1729953034890663,\"ema1\":0.1725936213751386,\"sma1\":0.17391759259259257,\"sma2\":0.17297166666666663,\"rsi_avg_gain\":0.0002844733239585955,\"rsi_avg_loss\":0.0003941720960565768,\"rsi\":42},{\"period_id\":\"120m209655\",\"size\":\"120m\",\"time\":1509516000000,\"open\":0.1705,\"high\":0.17137,\"low\":0.17,\"close\":0.1712,\"volume\":486476.40899357,\"close_time\":1509523129373,\"vwap\":0.17309216020818297,\"ema1\":0.17269594009066538,\"sma1\":0.1738958333333333,\"sma2\":0.17301683333333331,\"rsi_avg_gain\":0.0003063558873400259,\"rsi_avg_loss\":0.000417569949599392,\"rsi\":42},{\"period_id\":\"120m209654\",\"size\":\"120m\",\"time\":1509508800000,\"open\":0.17086,\"high\":0.17162,\"low\":0.17,\"close\":0.1708,\"volume\":148063.88553533,\"close_time\":1509515159721,\"vwap\":0.17313772487193219,\"ema1\":0.17279910837278023,\"sma1\":0.17388787037037032,\"sma2\":0.17305449999999997,\"rsi_avg_gain\":0.0002991524940584907,\"rsi_avg_loss\":0.00044969071495319136,\"rsi\":40},{\"period_id\":\"120m209653\",\"size\":\"120m\",\"time\":1509501600000,\"open\":0.17165,\"high\":0.1718,\"low\":0.17,\"close\":0.17003,\"volume\":275252.1988088,\"close_time\":1509507850388,\"vwap\":0.17314194338445515,\"ema1\":0.1729369779157306,\"sma1\":0.1738791666666666,\"sma2\":0.17310949999999994,\"rsi_avg_gain\":0.00026293345513991146,\"rsi_avg_loss\":0.00048428230841112915,\"rsi\":35},{\"period_id\":\"120m209652\",\"size\":\"120m\",\"time\":1509494400000,\"open\":0.17124,\"high\":0.17199,\"low\":0.17101,\"close\":0.17176,\"volume\":125338.60549834,\"close_time\":1509501336761,\"vwap\":0.17316460718474988,\"ema1\":0.17313745915129822,\"sma1\":0.17387574074074072,\"sma2\":0.1731351666666666,\"rsi_avg_gain\":0.0002831591055352893,\"rsi_avg_loss\":0.00038845787059659995,\"rsi\":42},{\"period_id\":\"120m209651\",\"size\":\"120m\",\"time\":1509487200000,\"open\":0.17205,\"high\":0.17284,\"low\":0.17123,\"close\":0.17124,\"volume\":778377.35267301,\"close_time\":1509494388372,\"vwap\":0.17316860845241877,\"ema1\":0.17323245633414638,\"sma1\":0.17386796296296295,\"sma2\":0.17318166666666662,\"rsi_avg_gain\":0.00026494057519185055,\"rsi_avg_loss\":0.0004183392452578769,\"rsi\":39},{\"period_id\":\"120m209650\",\"size\":\"120m\",\"time\":1509480000000,\"open\":0.17263,\"high\":0.17285,\"low\":0.17204,\"close\":0.17204,\"volume\":368952.1699852,\"close_time\":1509487161380,\"vwap\":0.1732540320311796,\"ema1\":0.17336986711581165,\"sma1\":0.17385775509259258,\"sma2\":0.17320599999999994,\"rsi_avg_gain\":0.0002853206194373775,\"rsi_avg_loss\":0.00038898072566232936,\"rsi\":42},{\"period_id\":\"120m209649\",\"size\":\"120m\",\"time\":1509472800000,\"open\":0.172,\"high\":0.17272,\"low\":0.172,\"close\":0.17266,\"volume\":380343.36523268017,\"close_time\":1509479891306,\"vwap\":0.17326200887841567,\"ema1\":0.1734615820893159,\"sma1\":0.17385108842592592,\"sma2\":0.1732198333333333,\"rsi_avg_gain\":0.00030726835939409887,\"rsi_avg_loss\":0.0003712100122517386,\"rsi\":45},{\"period_id\":\"120m209648\",\"size\":\"120m\",\"time\":1509465600000,\"open\":0.17243,\"high\":0.1735,\"low\":0.172,\"close\":0.172,\"volume\":559983.7519757701,\"close_time\":1509472774896,\"vwap\":0.17327705375885183,\"ema1\":0.17351686361271698,\"sma1\":0.17384090324074072,\"sma2\":0.17323649999999996,\"rsi_avg_gain\":0.00028013515627056635,\"rsi_avg_loss\":0.0003997646285787954,\"rsi\":41},{\"period_id\":\"120m209647\",\"size\":\"120m\",\"time\":1509458400000,\"open\":0.17458,\"high\":0.1746,\"low\":0.172,\"close\":0.1735,\"volume\":938086.8382250599,\"close_time\":1509465517913,\"vwap\":0.1732925203741086,\"ema1\":0.17362147489635263,\"sma1\":0.17384284768518515,\"sma2\":0.1732311666666666,\"rsi_avg_gain\":0.0003016840144452253,\"rsi_avg_loss\":0.0003151311384694719,\"rsi\":49},{\"period_id\":\"120m209646\",\"size\":\"120m\",\"time\":1509451200000,\"open\":0.174,\"high\":0.1748,\"low\":0.1734,\"close\":0.1746,\"volume\":533246.7497322498,\"close_time\":1509458354825,\"vwap\":0.1733055177769542,\"ema1\":0.17362985247541143,\"sma1\":0.17382377361111112,\"sma2\":0.17322466666666664,\"rsi_avg_gain\":0.000324890477094858,\"rsi_avg_loss\":0.00025475661065942995,\"rsi\":56},{\"period_id\":\"120m209645\",\"size\":\"120m\",\"time\":1509444000000,\"open\":0.17467,\"high\":0.1748,\"low\":0.1735,\"close\":0.17442,\"volume\":691011.48796204,\"close_time\":1509451147678,\"vwap\":0.17328194922990403,\"ema1\":0.17356294574957773,\"sma1\":0.17379312546296297,\"sma2\":0.17324049999999996,\"rsi_avg_gain\":0.0003360358984098461,\"rsi_avg_loss\":0.00027435327301784766,\"rsi\":55},{\"period_id\":\"120m209644\",\"size\":\"120m\",\"time\":1509436800000,\"open\":0.1737,\"high\":0.1747,\"low\":0.1735,\"close\":0.17469,\"volume\":471611.4616469602,\"close_time\":1509443995806,\"vwap\":0.1732481487454738,\"ema1\":0.17350383855989343,\"sma1\":0.17379136620370372,\"sma2\":0.1732378333333333,\"rsi_avg_gain\":0.0003618848136721419,\"rsi_avg_loss\":0.00027468814017306514,\"rsi\":57},{\"period_id\":\"120m209643\",\"size\":\"120m\",\"time\":1509429600000,\"open\":0.17395,\"high\":0.17438,\"low\":0.1734,\"close\":0.17421,\"volume\":201060.23830178005,\"close_time\":1509436795149,\"vwap\":0.17321789419158676,\"ema1\":0.1734220343226447,\"sma1\":0.17380164398148154,\"sma2\":0.1732258333333333,\"rsi_avg_gain\":0.0003527990301084599,\"rsi_avg_loss\":0.00029581799710945477,\"rsi\":54},{\"period_id\":\"120m209642\",\"size\":\"120m\",\"time\":1509422400000,\"open\":0.17384,\"high\":0.17394,\"low\":0.17325,\"close\":0.17389,\"volume\":70472.03757481,\"close_time\":1509429450403,\"vwap\":0.1732148699878925,\"ema1\":0.17336769186213744,\"sma1\":0.17380118101851855,\"sma2\":0.17321099999999995,\"rsi_avg_gain\":0.0003553220324244941,\"rsi_avg_loss\":0.0003185732276563359,\"rsi\":53},{\"period_id\":\"120m209641\",\"size\":\"120m\",\"time\":1509415200000,\"open\":0.17395,\"high\":0.1745,\"low\":0.173,\"close\":0.17414,\"volume\":542700.20779527,\"close_time\":1509422089182,\"vwap\":0.17321464135703937,\"ema1\":0.17333167061125035,\"sma1\":0.17383423657407415,\"sma2\":0.1732,\"rsi_avg_gain\":0.00038265449645714754,\"rsi_avg_loss\":0.00032384809132220783,\"rsi\":54},{\"period_id\":\"120m209640\",\"size\":\"120m\",\"time\":1509408000000,\"open\":0.17418,\"high\":0.17418,\"low\":0.1735,\"close\":0.17405,\"volume\":45452.97159424001,\"close_time\":1509414427483,\"vwap\":0.17319106970152384,\"ema1\":0.17327592375685383,\"sma1\":0.1738871995370371,\"sma2\":0.1731608333333333,\"rsi_avg_gain\":0.00040516638080000664,\"rsi_avg_loss\":0.0003487594829623777,\"rsi\":54},{\"period_id\":\"120m209639\",\"size\":\"120m\",\"time\":1509400800000,\"open\":0.1735,\"high\":0.1745,\"low\":0.173,\"close\":0.17426,\"volume\":272719.8336484401,\"close_time\":1509407506948,\"vwap\":0.17319084276475635,\"ema1\":0.173222539188361,\"sma1\":0.17391960694444453,\"sma2\":0.17312666666666662,\"rsi_avg_gain\":0.0004363330254769302,\"rsi_avg_loss\":0.0003594332893441,\"rsi\":55},{\"period_id\":\"120m209638\",\"size\":\"120m\",\"time\":1509393600000,\"open\":0.17476,\"high\":0.17479,\"low\":0.1735,\"close\":0.1735,\"volume\":359921.3454896399,\"close_time\":1509400749257,\"vwap\":0.17318060214038636,\"ema1\":0.17315099016686866,\"sma1\":0.17390303287037043,\"sma2\":0.1730918333333333,\"rsi_avg_gain\":0.0004114355658982317,\"rsi_avg_loss\":0.0003870820039090308,\"rsi\":52},{\"period_id\":\"120m209637\",\"size\":\"120m\",\"time\":1509386400000,\"open\":0.1732,\"high\":0.1748,\"low\":0.173,\"close\":0.17476,\"volume\":427867.7588550901,\"close_time\":1509393559979,\"vwap\":0.1731592944151915,\"ema1\":0.17312692052320444,\"sma1\":0.17388349583333337,\"sma2\":0.17302416666666662,\"rsi_avg_gain\":0.000443084455582711,\"rsi_avg_loss\":0.0003199344657481862,\"rsi\":58},{\"period_id\":\"120m209636\",\"size\":\"120m\",\"time\":1509379200000,\"open\":0.17459,\"high\":0.17499,\"low\":0.173,\"close\":0.173,\"volume\":390086.82031326013,\"close_time\":1509386390303,\"vwap\":0.17313789264797064,\"ema1\":0.17301429435239096,\"sma1\":0.17385618101851855,\"sma2\":0.172985,\"rsi_avg_gain\":0.00034178325985830324,\"rsi_avg_loss\":0.00034454480926727744,\"rsi\":50},{\"period_id\":\"120m209635\",\"size\":\"120m\",\"time\":1509372000000,\"open\":0.17434,\"high\":0.17459,\"low\":0.17318,\"close\":0.17443,\"volume\":639290.63311668,\"close_time\":1509379077038,\"vwap\":0.1731184336024602,\"ema1\":0.17301528016979723,\"sma1\":0.17385618101851855,\"sma2\":0.17294400000000001,\"rsi_avg_gain\":0.00036807427984740347,\"rsi_avg_loss\":0.00026104825613399,\"rsi\":59},{\"period_id\":\"120m209634\",\"size\":\"120m\",\"time\":1509364800000,\"open\":0.17501,\"high\":0.1754,\"low\":0.17389,\"close\":0.17435,\"volume\":761219.5413139507,\"close_time\":1509371994662,\"vwap\":0.17306871430285026,\"ema1\":0.17291771328495564,\"sma1\":0.17383655138888887,\"sma2\":0.17291183333333332,\"rsi_avg_gain\":0.00039023383983566556,\"rsi_avg_loss\":0.00028112889122122,\"rsi\":58},{\"period_id\":\"120m209633\",\"size\":\"120m\",\"time\":1509357600000,\"open\":0.1736,\"high\":0.17524,\"low\":0.17295,\"close\":0.175,\"volume\":685731.3475932502,\"close_time\":1509364785467,\"vwap\":0.17296343237236483,\"ema1\":0.17281893489081465,\"sma1\":0.17381581064814813,\"sma2\":0.1728491666666666,\"rsi_avg_gain\":0.00042025182751533215,\"rsi_avg_loss\":0.00025275419054593043,\"rsi\":62},{\"period_id\":\"120m209632\",\"size\":\"120m\",\"time\":1509350400000,\"open\":0.17301,\"high\":0.17475,\"low\":0.17201,\"close\":0.1736,\"volume\":982754.7806384695,\"close_time\":1509357384770,\"vwap\":0.17283285315667068,\"ema1\":0.17266851660742255,\"sma1\":0.17380886620370367,\"sma2\":0.17284249999999998,\"rsi_avg_gain\":0.00034488658347805117,\"rsi_avg_loss\":0.0002721968205879251,\"rsi\":56},{\"period_id\":\"120m209631\",\"size\":\"120m\",\"time\":1509343200000,\"open\":0.17307,\"high\":0.1738,\"low\":0.17202,\"close\":0.173,\"volume\":284271.7854024,\"close_time\":1509350362054,\"vwap\":0.17263561576046157,\"ema1\":0.1726042763734517,\"sma1\":0.17381895879629627,\"sma2\":0.1728925,\"rsi_avg_gain\":0.00032526247451482304,\"rsi_avg_loss\":0.000293135037556227,\"rsi\":53},{\"period_id\":\"120m209630\",\"size\":\"120m\",\"time\":1509336000000,\"open\":0.17272,\"high\":0.1731,\"low\":0.17253,\"close\":0.17309,\"volume\":89463.18058985996,\"close_time\":1509343190680,\"vwap\":0.17262632407234935,\"ema1\":0.17257698508886216,\"sma1\":0.1738348847222222,\"sma2\":0.17291766666666666,\"rsi_avg_gain\":0.0003502826648621171,\"rsi_avg_loss\":0.0003087608096759362,\"rsi\":53},{\"period_id\":\"120m209629\",\"size\":\"120m\",\"time\":1509328800000,\"open\":0.17251,\"high\":0.17326,\"low\":0.1722,\"close\":0.17307,\"volume\":43252.373609710005,\"close_time\":1509335998032,\"vwap\":0.17262546632013068,\"ema1\":0.172541604750163,\"sma1\":0.17385914398148147,\"sma2\":0.1729425,\"rsi_avg_gain\":0.00037568902369766516,\"rsi_avg_loss\":0.0003325116411894698,\"rsi\":53},{\"period_id\":\"120m209628\",\"size\":\"120m\",\"time\":1509321600000,\"open\":0.17312,\"high\":0.17396,\"low\":0.172,\"close\":0.17293,\"volume\":83955.8920413,\"close_time\":1509328440473,\"vwap\":0.1726252636015843,\"ema1\":0.17250516369845012,\"sma1\":0.17389673657407403,\"sma2\":0.17291566666666663,\"rsi_avg_gain\":0.00039381894859748544,\"rsi_avg_loss\":0.00035808945974250597,\"rsi\":52},{\"period_id\":\"120m209627\",\"size\":\"120m\",\"time\":1509314400000,\"open\":0.173,\"high\":0.17337,\"low\":0.17201,\"close\":0.17235,\"volume\":684796.3868457904,\"close_time\":1509321591148,\"vwap\":0.17262554675804692,\"ema1\":0.17247586464317083,\"sma1\":0.17393673657407402,\"sma2\":0.1729558333333333,\"rsi_avg_gain\":0.00037949732925883067,\"rsi_avg_loss\":0.0003856348027996218,\"rsi\":50},{\"period_id\":\"120m209626\",\"size\":\"120m\",\"time\":1509307200000,\"open\":0.173,\"high\":0.17449,\"low\":0.1725,\"close\":0.173,\"volume\":476348.78848239995,\"close_time\":1509314385786,\"vwap\":0.17262873619358518,\"ema1\":0.1724845449633895,\"sma1\":0.17397201435185178,\"sma2\":0.1729875,\"rsi_avg_gain\":0.00040868943150950993,\"rsi_avg_loss\":0.00036529901839959394,\"rsi\":53},{\"period_id\":\"120m209625\",\"size\":\"120m\",\"time\":1509300000000,\"open\":0.1723,\"high\":0.17355,\"low\":0.17175,\"close\":0.17245,\"volume\":496058.7864573899,\"close_time\":1509307039172,\"vwap\":0.1725782374193433,\"ema1\":0.172448996340175,\"sma1\":0.1740316439814814,\"sma2\":0.17309499999999997,\"rsi_avg_gain\":0.00039781938777947264,\"rsi_avg_loss\":0.0003933989428918704,\"rsi\":50},{\"period_id\":\"120m209624\",\"size\":\"120m\",\"time\":1509292800000,\"open\":0.172688,\"high\":0.1737,\"low\":0.1715,\"close\":0.17195,\"volume\":516118.92092936015,\"close_time\":1509299984287,\"vwap\":0.17255970079499755,\"ema1\":0.172448927122256,\"sma1\":0.17409460694444437,\"sma2\":0.17324583333333327,\"rsi_avg_gain\":0.00038995934068558586,\"rsi_avg_loss\":0.0004236604000373989,\"rsi\":48},{\"period_id\":\"120m209623\",\"size\":\"120m\",\"time\":1509285600000,\"open\":0.172,\"high\":0.17267,\"low\":0.1715,\"close\":0.17267,\"volume\":282293.62723150995,\"close_time\":1509292684374,\"vwap\":0.1725653835231406,\"ema1\":0.17248333588930814,\"sma1\":0.17419849583333327,\"sma2\":0.17338099999999995,\"rsi_avg_gain\":0.0004199562130460156,\"rsi_avg_loss\":0.000400865046194122,\"rsi\":51},{\"period_id\":\"120m209622\",\"size\":\"120m\",\"time\":1509278400000,\"open\":0.1704,\"high\":0.172,\"low\":0.17,\"close\":0.172,\"volume\":507396.67994656984,\"close_time\":1509285544604,\"vwap\":0.17257375850303092,\"ema1\":0.17247046250236386,\"sma1\":0.17431423657407402,\"sma2\":0.17353799999999994,\"rsi_avg_gain\":0.0004007220755880165,\"rsi_avg_loss\":0.00043170081897828523,\"rsi\":48},{\"period_id\":\"120m209621\",\"size\":\"120m\",\"time\":1509271200000,\"open\":0.1713,\"high\":0.17138,\"low\":0.1692,\"close\":0.17043,\"volume\":708191.5313493701,\"close_time\":1509278199257,\"vwap\":0.17262035283857782,\"ema1\":0.17250290819218206,\"sma1\":0.1744398847222222,\"sma2\":0.1736661666666666,\"rsi_avg_gain\":0.0003107776198640187,\"rsi_avg_loss\":0.00046490857428430716,\"rsi\":40},{\"period_id\":\"120m209620\",\"size\":\"120m\",\"time\":1509264000000,\"open\":0.172,\"high\":0.17279,\"low\":0.17051,\"close\":0.1713,\"volume\":463339.66160280985,\"close_time\":1509271123701,\"vwap\":0.17306663893265584,\"ema1\":0.1726458673778498,\"sma1\":0.1745539587962963,\"sma2\":0.1737781666666666,\"rsi_avg_gain\":0.0003346835906227894,\"rsi_avg_loss\":0.0004337476953830993,\"rsi\":44},{\"period_id\":\"120m209619\",\"size\":\"120m\",\"time\":1509256800000,\"open\":0.17201,\"high\":0.17377,\"low\":0.17132,\"close\":0.17235,\"volume\":285626.02688529,\"close_time\":1509263966493,\"vwap\":0.173198192680204,\"ema1\":0.1727386858177015,\"sma1\":0.174675625462963,\"sma2\":0.1738056666666666,\"rsi_avg_gain\":0.0003604284822091578,\"rsi_avg_loss\":0.0003863436719510304,\"rsi\":48},{\"period_id\":\"120m209618\",\"size\":\"120m\",\"time\":1509249600000,\"open\":0.17113,\"high\":0.1739,\"low\":0.17112,\"close\":0.17333,\"volume\":186683.95922460998,\"close_time\":1509256796594,\"vwap\":0.1732167722931943,\"ema1\":0.17276549173616368,\"sma1\":0.17482081064814817,\"sma2\":0.17382133333333324,\"rsi_avg_gain\":0.0003881537500714007,\"rsi_avg_loss\":0.0003406778005626475,\"rsi\":53},{\"period_id\":\"120m209617\",\"size\":\"120m\",\"time\":1509242400000,\"open\":0.17101,\"high\":0.17125,\"low\":0.1701,\"close\":0.17052,\"volume\":109812.33446858004,\"close_time\":1509249464890,\"vwap\":0.17322227439258212,\"ema1\":0.1727265601317612,\"sma1\":0.17494460694444444,\"sma2\":0.17380366666666663,\"rsi_avg_gain\":0.0002018578846922771,\"rsi_avg_loss\":0.00036688378522131264,\"rsi\":35},{\"period_id\":\"120m209616\",\"size\":\"120m\",\"time\":1509235200000,\"open\":0.17161,\"high\":0.17213,\"low\":0.171,\"close\":0.17101,\"volume\":250380.80532811998,\"close_time\":1509242351608,\"vwap\":0.17324053472578155,\"ema1\":0.1728787366925723,\"sma1\":0.17504710694444447,\"sma2\":0.17378683333333328,\"rsi_avg_gain\":0.00021738541428399072,\"rsi_avg_loss\":0.00035741330716141436,\"rsi\":38},{\"period_id\":\"120m209615\",\"size\":\"120m\",\"time\":1509228000000,\"open\":0.17176,\"high\":0.17253,\"low\":0.171,\"close\":0.1717,\"volume\":726369.6006439498,\"close_time\":1509235161837,\"vwap\":0.1732964365634878,\"ema1\":0.1730076150851635,\"sma1\":0.17514858842592596,\"sma2\":0.17365849999999997,\"rsi_avg_gain\":0.0002341073692289131,\"rsi_avg_loss\":0.00033182971540460037,\"rsi\":41},{\"period_id\":\"120m209614\",\"size\":\"120m\",\"time\":1509220800000,\"open\":0.17152,\"high\":0.17429,\"low\":0.1715,\"close\":0.17174,\"volume\":507071.4701850402,\"close_time\":1509227774235,\"vwap\":0.17340788243011745,\"ema1\":0.17309779543586443,\"sma1\":0.1752459032407407,\"sma2\":0.1735018333333333,\"rsi_avg_gain\":0.00025211562840036795,\"rsi_avg_loss\":0.0003542781550511072,\"rsi\":42},{\"period_id\":\"120m209613\",\"size\":\"120m\",\"time\":1509213600000,\"open\":0.17186,\"high\":0.17242,\"low\":0.1715,\"close\":0.17151,\"volume\":296945.9798627102,\"close_time\":1509220576896,\"vwap\":0.17348187918899846,\"ema1\":0.1731914365004068,\"sma1\":0.17536701435185187,\"sma2\":0.17335166666666663,\"rsi_avg_gain\":0.000253816830585011,\"rsi_avg_loss\":0.00038153032082426927,\"rsi\":40},{\"period_id\":\"120m209612\",\"size\":\"120m\",\"time\":1509206400000,\"open\":0.17174,\"high\":0.17222,\"low\":0.17121,\"close\":0.17197,\"volume\":204456.1067420499,\"close_time\":1509213416725,\"vwap\":0.17352058522791772,\"ema1\":0.1733073976383659,\"sma1\":0.17557238472222222,\"sma2\":0.1731738333333333,\"rsi_avg_gain\":0.0002733412021684734,\"rsi_avg_loss\":0.00037549419165690414,\"rsi\":42},{\"period_id\":\"120m209611\",\"size\":\"120m\",\"time\":1509199200000,\"open\":0.17264,\"high\":0.17399,\"low\":0.1715,\"close\":0.1715,\"volume\":632198.5747353298,\"close_time\":1509206384934,\"vwap\":0.1735674655871246,\"ema1\":0.1733996319582532,\"sma1\":0.1757669217592593,\"sma2\":0.1729988333333333,\"rsi_avg_gain\":0.0002582136023352792,\"rsi_avg_loss\":0.0004043783602458968,\"rsi\":39},{\"period_id\":\"120m209610\",\"size\":\"120m\",\"time\":1509192000000,\"open\":0.17303,\"high\":0.17476,\"low\":0.1726,\"close\":0.17264,\"volume\":355098.94472750014,\"close_time\":1509199187198,\"vwap\":0.1737546376039166,\"ema1\":0.17353064105882238,\"sma1\":0.17581071805555556,\"sma2\":0.17282083333333328,\"rsi_avg_gain\":0.00027807618713030066,\"rsi_avg_loss\":0.0003477920802648139,\"rsi\":44},{\"period_id\":\"120m209609\",\"size\":\"120m\",\"time\":1509184800000,\"open\":0.1743,\"high\":0.17463,\"low\":0.173,\"close\":0.173,\"volume\":394166.51534412993,\"close_time\":1509191863970,\"vwap\":0.17378169681053832,\"ema1\":0.17359206458012047,\"sma1\":0.17585719953703707,\"sma2\":0.17268799999999998,\"rsi_avg_gain\":0.0002994666630634007,\"rsi_avg_loss\":0.00034685300951595356,\"rsi\":46},{\"period_id\":\"120m209608\",\"size\":\"120m\",\"time\":1509177600000,\"open\":0.17404,\"high\":0.17474,\"low\":0.17315,\"close\":0.1744,\"volume\":351321.72328474006,\"close_time\":1509184281479,\"vwap\":0.17380910896401758,\"ema1\":0.1736328966201288,\"sma1\":0.17591710694444448,\"sma2\":0.17254716666666664,\"rsi_avg_gain\":0.00032250256022212386,\"rsi_avg_loss\":0.0002658417025556414,\"rsi\":55},{\"period_id\":\"120m209607\",\"size\":\"120m\",\"time\":1509170400000,\"open\":0.17389,\"high\":0.17415,\"low\":0.17305,\"close\":0.1739,\"volume\":208398.77150217,\"close_time\":1509177443699,\"vwap\":0.17378976299603022,\"ema1\":0.17357999293875837,\"sma1\":0.17601460694444448,\"sma2\":0.17241599999999999,\"rsi_avg_gain\":0.000308848911008441,\"rsi_avg_loss\":0.0002862910642906907,\"rsi\":52},{\"period_id\":\"120m209606\",\"size\":\"120m\",\"time\":1509163200000,\"open\":0.17309,\"high\":0.1737,\"low\":0.1728,\"close\":0.17346,\"volume\":26886.12837723,\"close_time\":1509170236953,\"vwap\":0.17379025838688528,\"ema1\":0.17355792348625895,\"sma1\":0.1761046995370371,\"sma2\":0.17234349999999996,\"rsi_avg_gain\":0.00029876036570139833,\"rsi_avg_loss\":0.00030831345385151307,\"rsi\":49},{\"period_id\":\"120m209605\",\"size\":\"120m\",\"time\":1509156000000,\"open\":0.17327,\"high\":0.17351,\"low\":0.17257,\"close\":0.1735,\"volume\":22004.55199932,\"close_time\":1509162219469,\"vwap\":0.17379059200308714,\"ema1\":0.17356467683013888,\"sma1\":0.17621414398148155,\"sma2\":0.17229233333333333,\"rsi_avg_gain\":0.00032174193229381356,\"rsi_avg_loss\":0.00032895295030163066,\"rsi\":49},{\"period_id\":\"120m209604\",\"size\":\"120m\",\"time\":1509148800000,\"open\":0.17395,\"high\":0.1744,\"low\":0.17346,\"close\":0.17382,\"volume\":127167.2383359,\"close_time\":1509154797074,\"vwap\":0.17379127036598777,\"ema1\":0.17356913730118292,\"sma1\":0.1763208106481482,\"sma2\":0.17224233333333333,\"rsi_avg_gain\":0.00034649131170102994,\"rsi_avg_loss\":0.0003296416387863703,\"rsi\":51},{\"period_id\":\"120m209603\",\"size\":\"120m\",\"time\":1509141600000,\"open\":0.17364,\"high\":0.17462,\"low\":0.17364,\"close\":0.17364,\"volume\":245967.77557432003,\"close_time\":1509148469738,\"vwap\":0.17378999926652008,\"ema1\":0.17355183642540245,\"sma1\":0.1764455328703704,\"sma2\":0.1721943333333333,\"rsi_avg_gain\":0.0003592983356780312,\"rsi_avg_loss\":0.00035499868792378335,\"rsi\":50},{\"period_id\":\"120m209602\",\"size\":\"120m\",\"time\":1509134400000,\"open\":0.17335,\"high\":0.17462,\"low\":0.17293,\"close\":0.174,\"volume\":265180.97041563,\"close_time\":1509141551587,\"vwap\":0.17378582066462908,\"ema1\":0.1735457561788785,\"sma1\":0.17654368101851856,\"sma2\":0.17214866666666667,\"rsi_avg_gain\":0.0003869366691917259,\"rsi_avg_loss\":0.00035461397161022824,\"rsi\":52},{\"period_id\":\"120m209601\",\"size\":\"120m\",\"time\":1509127200000,\"open\":0.17475,\"high\":0.17476,\"low\":0.1728,\"close\":0.17334,\"volume\":507189.33349982,\"close_time\":1509134343110,\"vwap\":0.1737770630712257,\"ema1\":0.17351442901880115,\"sma1\":0.17661025509259265,\"sma2\":0.17209299999999997,\"rsi_avg_gain\":0.00036593179759108986,\"rsi_avg_loss\":0.00038189196942639965,\"rsi\":49},{\"period_id\":\"120m209600\",\"size\":\"120m\",\"time\":1509120000000,\"open\":0.17441,\"high\":0.17494,\"low\":0.17372,\"close\":0.17473,\"volume\":413137.98772199015,\"close_time\":1509127174200,\"vwap\":0.17383627790687076,\"ema1\":0.1735264586063047,\"sma1\":0.17674858842592597,\"sma2\":0.17203516666666668,\"rsi_avg_gain\":0.0003940803974057891,\"rsi_avg_loss\":0.00030434519784381487,\"rsi\":56},{\"period_id\":\"120m209599\",\"size\":\"120m\",\"time\":1509112800000,\"open\":0.17453,\"high\":0.1748,\"low\":0.1735,\"close\":0.17443,\"volume\":270804.7546261601,\"close_time\":1509119994189,\"vwap\":0.1737682041424039,\"ema1\":0.17344345575156708,\"sma1\":0.17688821805555557,\"sma2\":0.1720013333333333,\"rsi_avg_gain\":0.00040131735105238865,\"rsi_avg_loss\":0.00032775636690872374,\"rsi\":55},{\"period_id\":\"120m209598\",\"size\":\"120m\",\"time\":1509105600000,\"open\":0.17335,\"high\":0.17465,\"low\":0.173,\"close\":0.17362,\"volume\":509927.8083225598,\"close_time\":1509112788348,\"vwap\":0.1737417429162071,\"ema1\":0.1733754182171924,\"sma1\":0.17708229212962967,\"sma2\":0.17197866666666664,\"rsi_avg_gain\":0.00036988022421026434,\"rsi_avg_loss\":0.0003529683951324717,\"rsi\":51},{\"period_id\":\"120m209597\",\"size\":\"120m\",\"time\":1509098400000,\"open\":0.17369,\"high\":0.1745,\"low\":0.173,\"close\":0.17378,\"volume\":532383.4747534199,\"close_time\":1509105581778,\"vwap\":0.17360007082898152,\"ema1\":0.17335855050803325,\"sma1\":0.17729877361111115,\"sma2\":0.17190849999999994,\"rsi_avg_gain\":0.00039833254914951546,\"rsi_avg_loss\":0.00036781211783497005,\"rsi\":52},{\"period_id\":\"120m209596\",\"size\":\"120m\",\"time\":1509091200000,\"open\":0.17391,\"high\":0.17496,\"low\":0.173,\"close\":0.17404,\"volume\":482855.3375114401,\"close_time\":1509098375789,\"vwap\":0.17357807191709762,\"ema1\":0.17332948502582865,\"sma1\":0.17747247731481483,\"sma2\":0.17186549999999998,\"rsi_avg_gain\":0.000428973514468709,\"rsi_avg_loss\":0.0003761053576684285,\"rsi\":53},{\"period_id\":\"120m209595\",\"size\":\"120m\",\"time\":1509084000000,\"open\":0.17261,\"high\":0.1748,\"low\":0.17222,\"close\":0.17391,\"volume\":393510.9533228197,\"close_time\":1509091196781,\"vwap\":0.17329145393703838,\"ema1\":0.17328048399312718,\"sma1\":0.17769627361111107,\"sma2\":0.17186816666666663,\"rsi_avg_gain\":0.0004519714771201488,\"rsi_avg_loss\":0.0004050365390275384,\"rsi\":53},{\"period_id\":\"120m209594\",\"size\":\"120m\",\"time\":1509076800000,\"open\":0.1732,\"high\":0.17436,\"low\":0.17225,\"close\":0.17306,\"volume\":279280.6725509501,\"close_time\":1509083949504,\"vwap\":0.17326890045236723,\"ema1\":0.17323706909610145,\"sma1\":0.17794090324074072,\"sma2\":0.17187666666666662,\"rsi_avg_gain\":0.000421353898437082,\"rsi_avg_loss\":0.00043619319587581056,\"rsi\":49},{\"period_id\":\"120m209593\",\"size\":\"120m\",\"time\":1509069600000,\"open\":0.1733,\"high\":0.17374,\"low\":0.173,\"close\":0.17333,\"volume\":26224.47779756,\"close_time\":1509076527404,\"vwap\":0.1734079423957715,\"ema1\":0.17324928075790155,\"sma1\":0.1781771069444444,\"sma2\":0.17185266666666663,\"rsi_avg_gain\":0.00045376573677839607,\"rsi_avg_loss\":0.000448977287866256,\"rsi\":50},{\"period_id\":\"120m209592\",\"size\":\"120m\",\"time\":1509062400000,\"open\":0.174,\"high\":0.174,\"low\":0.17302,\"close\":0.1733,\"volume\":65117.73086698,\"close_time\":1509069539140,\"vwap\":0.17340902436758868,\"ema1\":0.1732437139136189,\"sma1\":0.17841581064814813,\"sma2\":0.17193016666666663,\"rsi_avg_gain\":0.00048636310114596483,\"rsi_avg_loss\":0.0004835140023175064,\"rsi\":50},{\"period_id\":\"120m209591\",\"size\":\"120m\",\"time\":1509055200000,\"open\":0.1735,\"high\":0.17414,\"low\":0.17286,\"close\":0.17403,\"volume\":277183.36005777994,\"close_time\":1509062233010,\"vwap\":0.1734059731784672,\"ema1\":0.17323983211455812,\"sma1\":0.1786058106481481,\"sma2\":0.1719963333333333,\"rsi_avg_gain\":0.0005237756473879621,\"rsi_avg_loss\":0.0004645535409573161,\"rsi\":53},{\"period_id\":\"120m209590\",\"size\":\"120m\",\"time\":1509048000000,\"open\":0.17345,\"high\":0.17387,\"low\":0.1725,\"close\":0.1735,\"volume\":387891.0964343199,\"close_time\":1509055115817,\"vwap\":0.17328483970509373,\"ema1\":0.1731853377776311,\"sma1\":0.1788905328703703,\"sma2\":0.1719713333333333,\"rsi_avg_gain\":0.0005232968510331898,\"rsi_avg_loss\":0.0005002884287232635,\"rsi\":51},{\"period_id\":\"120m209589\",\"size\":\"120m\",\"time\":1509040800000,\"open\":0.17298,\"high\":0.17433,\"low\":0.17214,\"close\":0.17349,\"volume\":391377.44248398015,\"close_time\":1509047942645,\"vwap\":0.1725890249693786,\"ema1\":0.1731636369347091,\"sma1\":0.17921599583333325,\"sma2\":0.17192066666666664,\"rsi_avg_gain\":0.0005627812241895903,\"rsi_avg_loss\":0.0005387721540096684,\"rsi\":51},{\"period_id\":\"120m209588\",\"size\":\"120m\",\"time\":1509033600000,\"open\":0.17315,\"high\":0.17359,\"low\":0.172,\"close\":0.173,\"volume\":462815.97802780016,\"close_time\":1509040586507,\"vwap\":0.17258604429561242,\"ema1\":0.17314112913710283,\"sma1\":0.17958090324074066,\"sma2\":0.17188566666666666,\"rsi_avg_gain\":0.0005683797798964804,\"rsi_avg_loss\":0.0005802161658565659,\"rsi\":49},{\"period_id\":\"120m209587\",\"size\":\"120m\",\"time\":1509026400000,\"open\":0.17423,\"high\":0.1745,\"low\":0.17318,\"close\":0.17318,\"volume\":536308.6854404302,\"close_time\":1509033597034,\"vwap\":0.1725850032208015,\"ema1\":0.17315086218104095,\"sma1\":0.17998831064814808,\"sma2\":0.17186566666666664,\"rsi_avg_gain\":0.000612101301426979,\"rsi_avg_loss\":0.0006110020247686084,\"rsi\":50},{\"period_id\":\"120m209586\",\"size\":\"120m\",\"time\":1509019200000,\"open\":0.17535,\"high\":0.17588,\"low\":0.17377,\"close\":0.17421,\"volume\":552158.98963798,\"close_time\":1509026340279,\"vwap\":0.17257904711439695,\"ema1\":0.17314885267628516,\"sma1\":0.18040331064814807,\"sma2\":0.17184549999999996,\"rsi_avg_gain\":0.000659186016921362,\"rsi_avg_loss\":0.0005787714112892703,\"rsi\":53},{\"period_id\":\"120m209585\",\"size\":\"120m\",\"time\":1509012000000,\"open\":0.17453,\"high\":0.17564,\"low\":0.17332,\"close\":0.17537,\"volume\":638825.14961212,\"close_time\":1509019193338,\"vwap\":0.17257052522536848,\"ema1\":0.17307567010223585,\"sma1\":0.18082701435185178,\"sma2\":0.17178933333333332,\"rsi_avg_gain\":0.0007098926336076206,\"rsi_avg_loss\":0.0005340615198499839,\"rsi\":57},{\"period_id\":\"120m209584\",\"size\":\"120m\",\"time\":1509004800000,\"open\":0.1735,\"high\":0.17483,\"low\":0.17231,\"close\":0.17453,\"volume\":545484.1022664,\"close_time\":1509011988439,\"vwap\":0.1725548739183648,\"ema1\":0.17291744045411417,\"sma1\":0.18128219953703695,\"sma2\":0.17174766666666663,\"rsi_avg_gain\":0.0006998843746543602,\"rsi_avg_loss\":0.0005751431752230596,\"rsi\":55},{\"period_id\":\"120m209583\",\"size\":\"120m\",\"time\":1508997600000,\"open\":0.1728,\"high\":0.1735,\"low\":0.17155,\"close\":0.17349,\"volume\":247787.35630792996,\"close_time\":1509004772097,\"vwap\":0.1725471124783962,\"ema1\":0.17280622945094962,\"sma1\":0.18172192175925922,\"sma2\":0.17175416666666662,\"rsi_avg_gain\":0.0006737216342431583,\"rsi_avg_loss\":0.0006193849579325257,\"rsi\":52},{\"period_id\":\"120m209582\",\"size\":\"120m\",\"time\":1508990400000,\"open\":0.17349,\"high\":0.17363,\"low\":0.17232,\"close\":0.173,\"volume\":203349.75248238,\"close_time\":1508997556850,\"vwap\":0.1725460511287552,\"ema1\":0.17275907286135994,\"sma1\":0.18218812546296292,\"sma2\":0.17177049999999996,\"rsi_avg_gain\":0.0006878540676464767,\"rsi_avg_loss\":0.0006670299546965661,\"rsi\":51},{\"period_id\":\"120m209581\",\"size\":\"120m\",\"time\":1508983200000,\"open\":0.17188,\"high\":0.17361,\"low\":0.1718,\"close\":0.17348,\"volume\":65074.96547798002,\"close_time\":1508990308256,\"vwap\":0.17254581996162055,\"ema1\":0.17274245719662615,\"sma1\":0.18263016249999997,\"sma2\":0.17176249999999996,\"rsi_avg_gain\":0.000740765919003898,\"rsi_avg_loss\":0.0006814168742886091,\"rsi\":52},{\"period_id\":\"120m209580\",\"size\":\"120m\",\"time\":1508976000000,\"open\":0.17214,\"high\":0.17323,\"low\":0.17072,\"close\":0.1717,\"volume\":152100.50329952006,\"close_time\":1508983070436,\"vwap\":0.17254578268502455,\"ema1\":0.17269159217570382,\"sma1\":0.18310599583333337,\"sma2\":0.1718233333333333,\"rsi_avg_gain\":0.0006608248358503515,\"rsi_avg_loss\":0.0007338335569261944,\"rsi\":47},{\"period_id\":\"120m209579\",\"size\":\"120m\",\"time\":1508968800000,\"open\":0.17132,\"high\":0.17463,\"low\":0.1709,\"close\":0.17221,\"volume\":327021.46813437995,\"close_time\":1508975990039,\"vwap\":0.17254637791831348,\"ema1\":0.17275997784299374,\"sma1\":0.18351960694444447,\"sma2\":0.171895,\"rsi_avg_gain\":0.0007116575155311477,\"rsi_avg_loss\":0.0007510515228435933,\"rsi\":49},{\"period_id\":\"120m209578\",\"size\":\"120m\",\"time\":1508961600000,\"open\":0.1707,\"high\":0.17358,\"low\":0.17062,\"close\":0.17141,\"volume\":541845.9698597101,\"close_time\":1508968736961,\"vwap\":0.1725461653270771,\"ema1\":0.17279790734940711,\"sma1\":0.1840079402777778,\"sma2\":0.1719715,\"rsi_avg_gain\":0.0007048619398027749,\"rsi_avg_loss\":0.000808824716908485,\"rsi\":47},{\"period_id\":\"120m209577\",\"size\":\"120m\",\"time\":1508954400000,\"open\":0.17124,\"high\":0.1723,\"low\":0.17,\"close\":0.1707,\"volume\":849917.9403358107,\"close_time\":1508961587149,\"vwap\":0.17254948394051955,\"ema1\":0.17289362509764208,\"sma1\":0.1845916439814815,\"sma2\":0.17208616666666668,\"rsi_avg_gain\":0.0007044667044029871,\"rsi_avg_loss\":0.0008710420028245223,\"rsi\":45},{\"period_id\":\"120m209576\",\"size\":\"120m\",\"time\":1508947200000,\"open\":0.17211,\"high\":0.17285,\"low\":0.17065,\"close\":0.17065,\"volume\":397940.7244818399,\"close_time\":1508954194635,\"vwap\":0.17257575914814283,\"ema1\":0.17304490958713464,\"sma1\":0.18521340324074076,\"sma2\":0.17222016666666665,\"rsi_avg_gain\":0.0007548102970493711,\"rsi_avg_loss\":0.000938045233811024,\"rsi\":45},{\"period_id\":\"120m209575\",\"size\":\"120m\",\"time\":1508940000000,\"open\":0.17242,\"high\":0.17504,\"low\":0.1705,\"close\":0.17197,\"volume\":1294814.2538945102,\"close_time\":1508947190837,\"vwap\":0.17258062607083677,\"ema1\":0.17321007576555772,\"sma1\":0.18589358842592596,\"sma2\":0.17236233333333334,\"rsi_avg_gain\":0.0008128726275916303,\"rsi_avg_loss\":0.0009086640979503324,\"rsi\":47},{\"period_id\":\"120m209574\",\"size\":\"120m\",\"time\":1508932800000,\"open\":0.17124,\"high\":0.1735,\"low\":0.17004,\"close\":0.17242,\"volume\":698543.0479591705,\"close_time\":1508939995535,\"vwap\":0.17258188901672433,\"ema1\":0.1732955982321479,\"sma1\":0.1866009958333333,\"sma2\":0.17255349999999997,\"rsi_avg_gain\":0.0008754012912525249,\"rsi_avg_loss\":0.0009439459516388212,\"rsi\":48},{\"period_id\":\"120m209573\",\"size\":\"120m\",\"time\":1508925600000,\"open\":0.1735,\"high\":0.17576,\"low\":0.17002,\"close\":0.17124,\"volume\":776842.12237437,\"close_time\":1508932775447,\"vwap\":0.1725847247703521,\"ema1\":0.17335598431712362,\"sma1\":0.18716803287037037,\"sma2\":0.17277449999999997,\"rsi_avg_gain\":0.0008519706213488739,\"rsi_avg_loss\":0.0010165571786879613,\"rsi\":46},{\"period_id\":\"120m209572\",\"size\":\"120m\",\"time\":1508918400000,\"open\":0.176,\"high\":0.1769,\"low\":0.173,\"close\":0.1732,\"volume\":853693.2410544899,\"close_time\":1508925593807,\"vwap\":0.1726036252462269,\"ema1\":0.1735019142700287,\"sma1\":0.18770599583333333,\"sma2\":0.17294899999999996,\"rsi_avg_gain\":0.000917506822991095,\"rsi_avg_loss\":0.0009439846539716516,\"rsi\":49},{\"period_id\":\"120m209571\",\"size\":\"120m\",\"time\":1508911200000,\"open\":0.1746,\"high\":0.17699,\"low\":0.1745,\"close\":0.176,\"volume\":812787.1982533699,\"close_time\":1508918396597,\"vwap\":0.172535758485955,\"ema1\":0.17352273594382378,\"sma1\":0.18826164398148149,\"sma2\":0.17308216666666662,\"rsi_avg_gain\":0.000988084270913487,\"rsi_avg_loss\":0.000801214242738702,\"rsi\":55},{\"period_id\":\"120m209570\",\"size\":\"120m\",\"time\":1508904000000,\"open\":0.17459,\"high\":0.176,\"low\":0.17217,\"close\":0.1746,\"volume\":332293.24866345007,\"close_time\":1508911125306,\"vwap\":0.17249724770921146,\"ema1\":0.1733518901468461,\"sma1\":0.18871534768518522,\"sma2\":0.1732638333333333,\"rsi_avg_gain\":0.0009563984455991409,\"rsi_avg_loss\":0.000862846107564756,\"rsi\":53},{\"period_id\":\"120m209569\",\"size\":\"120m\",\"time\":1508896800000,\"open\":0.17102,\"high\":0.17461,\"low\":0.1705,\"close\":0.17456,\"volume\":238526.89042274005,\"close_time\":1508903964165,\"vwap\":0.17249183393109643,\"ema1\":0.17326581360524929,\"sma1\":0.18915219953703705,\"sma2\":0.17343149999999996,\"rsi_avg_gain\":0.0010268906337221508,\"rsi_avg_loss\":0.0009292188850697373,\"rsi\":52},{\"period_id\":\"120m209568\",\"size\":\"120m\",\"time\":1508889600000,\"open\":0.1751,\"high\":0.17542,\"low\":0.17101,\"close\":0.17132,\"volume\":315972.07897068013,\"close_time\":1508896758337,\"vwap\":0.17249156624642736,\"ema1\":0.17317655937112855,\"sma1\":0.18959488472222222,\"sma2\":0.17362883333333332,\"rsi_avg_gain\":0.0008566514517007785,\"rsi_avg_loss\":0.0010006972608443325,\"rsi\":46},{\"period_id\":\"120m209567\",\"size\":\"120m\",\"time\":1508882400000,\"open\":0.17488,\"high\":0.1782,\"low\":0.17324,\"close\":0.17476,\"volume\":779646.11099317,\"close_time\":1508889386052,\"vwap\":0.17249201117378374,\"ema1\":0.17330459794844777,\"sma1\":0.19001988472222225,\"sma2\":0.17375549999999998,\"rsi_avg_gain\":0.0009225477172162231,\"rsi_avg_loss\":0.0008130585886015889,\"rsi\":53},{\"period_id\":\"120m209566\",\"size\":\"120m\",\"time\":1508875200000,\"open\":0.17901,\"high\":0.18062,\"low\":0.1724,\"close\":0.1749,\"volume\":980719.45796823,\"close_time\":1508882374988,\"vwap\":0.1724588669107845,\"ema1\":0.1732042253931683,\"sma1\":0.19042247731481485,\"sma2\":0.17387549999999996,\"rsi_avg_gain\":0.0009935129262328556,\"rsi_avg_loss\":0.0008648323261863264,\"rsi\":53},{\"period_id\":\"120m209565\",\"size\":\"120m\",\"time\":1508868000000,\"open\":0.18111,\"high\":0.18302,\"low\":0.17853,\"close\":0.1789,\"volume\":870281.0234227607,\"close_time\":1508875170112,\"vwap\":0.1724044599818286,\"ema1\":0.17308727542028335,\"sma1\":0.19084358842592597,\"sma2\":0.17396999999999993,\"rsi_avg_gain\":0.0010699369974815367,\"rsi_avg_loss\":0.0006236655820468127,\"rsi\":63},{\"period_id\":\"120m209564\",\"size\":\"120m\",\"time\":1508860800000,\"open\":0.18079,\"high\":0.18325,\"low\":0.176,\"close\":0.181,\"volume\":2010800.5246071485,\"close_time\":1508867957444,\"vwap\":0.17223291863768653,\"ema1\":0.1726863978630615,\"sma1\":0.19124775509259262,\"sma2\":0.17399416666666664,\"rsi_avg_gain\":0.0011522398434416548,\"rsi_avg_loss\":0.0005101013960504145,\"rsi\":69},{\"period_id\":\"120m209563\",\"size\":\"120m\",\"time\":1508853600000,\"open\":0.18248,\"high\":0.18549,\"low\":0.1806,\"close\":0.18078,\"volume\":2048497.8937628616,\"close_time\":1508860796305,\"vwap\":0.1716263812176652,\"ema1\":0.1721130459915485,\"sma1\":0.19157655138888893,\"sma2\":0.1741811666666666,\"rsi_avg_gain\":0.0012239506006294747,\"rsi_avg_loss\":0.0005493399649773694,\"rsi\":69},{\"period_id\":\"120m209562\",\"size\":\"120m\",\"time\":1508846400000,\"open\":0.17812,\"high\":0.184,\"low\":0.178,\"close\":0.18142,\"volume\":2121593.591426679,\"close_time\":1508853596365,\"vwap\":0.17016832091692252,\"ema1\":0.1715153250254484,\"sma1\":0.19187951435185188,\"sma2\":0.17409866666666662,\"rsi_avg_gain\":0.001318100646831742,\"rsi_avg_loss\":0.0005423661161294747,\"rsi\":71},{\"period_id\":\"120m209561\",\"size\":\"120m\",\"time\":1508839200000,\"open\":0.17708,\"high\":0.1797,\"low\":0.1755,\"close\":0.17812,\"volume\":1405572.9367635408,\"close_time\":1508846399653,\"vwap\":0.16849307154700088,\"ema1\":0.1708322439927207,\"sma1\":0.19219895879629634,\"sma2\":0.1740983333333333,\"rsi_avg_gain\":0.0011656468504341838,\"rsi_avg_loss\":0.0005840865866009728,\"rsi\":67},{\"period_id\":\"120m209560\",\"size\":\"120m\",\"time\":1508832000000,\"open\":0.1749,\"high\":0.18,\"low\":0.174,\"close\":0.17802,\"volume\":2817885.18563076,\"close_time\":1508839193802,\"vwap\":0.16779437776374204,\"ema1\":0.17032964013014973,\"sma1\":0.1925582180555556,\"sma2\":0.1740965,\"rsi_avg_gain\":0.001247619685082968,\"rsi_avg_loss\":0.0006290163240318168,\"rsi\":66},{\"period_id\":\"120m209559\",\"size\":\"120m\",\"time\":1508824800000,\"open\":0.17427,\"high\":0.17499,\"low\":0.17004,\"close\":0.174,\"volume\":2599126.4352685795,\"close_time\":1508831953470,\"vwap\":0.1653032758160736,\"ema1\":0.16979927048395316,\"sma1\":0.19295618101851855,\"sma2\":0.17417716666666663,\"rsi_avg_gain\":0.001034359660858579,\"rsi_avg_loss\":0.0006774021951111873,\"rsi\":60},{\"period_id\":\"120m209558\",\"size\":\"120m\",\"time\":1508817600000,\"open\":0.16942,\"high\":0.17497,\"low\":0.16851,\"close\":0.17427,\"volume\":940349.9307694802,\"close_time\":1508824766056,\"vwap\":0.16404523430385592,\"ema1\":0.16950956500008785,\"sma1\":0.19336229212962963,\"sma2\":0.17429766666666663,\"rsi_avg_gain\":0.001113925788616931,\"rsi_avg_loss\":0.000708740825504354,\"rsi\":61},{\"period_id\":\"120m209557\",\"size\":\"120m\",\"time\":1508810400000,\"open\":0.17017,\"high\":0.17674,\"low\":0.16831,\"close\":0.16946,\"volume\":1315534.0875811498,\"close_time\":1508817487442,\"vwap\":0.16385786860184084,\"ema1\":0.16918125913802495,\"sma1\":0.19376164398148155,\"sma2\":0.1744541666666667,\"rsi_avg_gain\":0.0008296123877413098,\"rsi_avg_loss\":0.0007632593505431505,\"rsi\":52},{\"period_id\":\"120m209556\",\"size\":\"120m\",\"time\":1508803200000,\"open\":0.164,\"high\":0.17077,\"low\":0.1571,\"close\":0.17,\"volume\":1711814.2027050385,\"close_time\":1508810383599,\"vwap\":0.16332678930186642,\"ema1\":0.16916203563030255,\"sma1\":0.19423127361111112,\"sma2\":0.17466399999999999,\"rsi_avg_gain\":0.0008934287252598722,\"rsi_avg_loss\":0.0007804331467387764,\"rsi\":53},{\"period_id\":\"120m209555\",\"size\":\"120m\",\"time\":1508796000000,\"open\":0.16292,\"high\":0.1675,\"low\":0.16182,\"close\":0.164,\"volume\":807403.1018157998,\"close_time\":1508803132515,\"vwap\":0.16352828041943665,\"ema1\":0.16910424498411653,\"sma1\":0.19472201435185188,\"sma2\":0.17501649999999996,\"rsi_avg_gain\":0.000500615550279862,\"rsi_avg_loss\":0.0008404664657186823,\"rsi\":37},{\"period_id\":\"120m209554\",\"size\":\"120m\",\"time\":1508788800000,\"open\":0.1625,\"high\":0.16426,\"low\":0.16121,\"close\":0.16234,\"volume\":1314971.7257595595,\"close_time\":1508795898047,\"vwap\":0.16348016646669425,\"ema1\":0.16945626187957283,\"sma1\":0.19523812546296299,\"sma2\":0.17539533333333332,\"rsi_avg_gain\":0.000411432131070621,\"rsi_avg_loss\":0.000905117732312427,\"rsi\":31},{\"period_id\":\"120m209553\",\"size\":\"120m\",\"time\":1508781600000,\"open\":0.16131,\"high\":0.16298,\"low\":0.16,\"close\":0.1625,\"volume\":1229418.5161516913,\"close_time\":1508788795861,\"vwap\":0.16357018341746907,\"ema1\":0.16994703856092266,\"sma1\":0.19576608842592597,\"sma2\":0.1756808333333333,\"rsi_avg_gain\":0.0004430807565375918,\"rsi_avg_loss\":0.0009624344809518449,\"rsi\":32},{\"period_id\":\"120m209552\",\"size\":\"120m\",\"time\":1508774400000,\"open\":0.16147,\"high\":0.162,\"low\":0.16,\"close\":0.1613,\"volume\":1277560.5058609694,\"close_time\":1508781568333,\"vwap\":0.16379491955208694,\"ema1\":0.1704606274271932,\"sma1\":0.1962793291666667,\"sma2\":0.1760008333333333,\"rsi_avg_gain\":0.0003848561993481752,\"rsi_avg_loss\":0.0010364679025635253,\"rsi\":27},{\"period_id\":\"120m209551\",\"size\":\"120m\",\"time\":1508767200000,\"open\":0.16191,\"high\":0.16275,\"low\":0.16,\"close\":0.161,\"volume\":1546121.7464910003,\"close_time\":1508774327749,\"vwap\":0.1641472127848181,\"ema1\":0.17109239483596514,\"sma1\":0.196790625462963,\"sma2\":0.17646749999999997,\"rsi_avg_gain\":0.0003913835992980352,\"rsi_avg_loss\":0.0011161962027607195,\"rsi\":26},{\"period_id\":\"120m209550\",\"size\":\"120m\",\"time\":1508760000000,\"open\":0.16606,\"high\":0.16606,\"low\":0.16034,\"close\":0.16196,\"volume\":1831406.5661778909,\"close_time\":1508767191577,\"vwap\":0.16496050544996924,\"ema1\":0.1717884220660317,\"sma1\":0.1972896069444445,\"sma2\":0.17690150000000002,\"rsi_avg_gain\":0.0004214900300132687,\"rsi_avg_loss\":0.0011282112952807758,\"rsi\":27},{\"period_id\":\"120m209549\",\"size\":\"120m\",\"time\":1508752800000,\"open\":0.16547,\"high\":0.16717,\"low\":0.165,\"close\":0.16503,\"volume\":1181269.23281257,\"close_time\":1508759985903,\"vwap\":0.16590062928050747,\"ema1\":0.17246624427748217,\"sma1\":0.19780469953703705,\"sma2\":0.17738233333333334,\"rsi_avg_gain\":0.00045391234001428935,\"rsi_avg_loss\":0.0009788429333792957,\"rsi\":32},{\"period_id\":\"120m209548\",\"size\":\"120m\",\"time\":1508745600000,\"open\":0.16604,\"high\":0.16744,\"low\":0.165,\"close\":0.16595,\"volume\":2203820.4107049895,\"close_time\":1508752793340,\"vwap\":0.16593068528097016,\"ema1\":0.17297908871041198,\"sma1\":0.19832636620370378,\"sma2\":0.1778451666666667,\"rsi_avg_gain\":0.0004888286738615424,\"rsi_avg_loss\":0.0009833693128700124,\"rsi\":33},{\"period_id\":\"120m209547\",\"size\":\"120m\",\"time\":1508738400000,\"open\":0.169,\"high\":0.16902,\"low\":0.165,\"close\":0.16603,\"volume\":1644274.9669853388,\"close_time\":1508745581675,\"vwap\":0.16642402037369639,\"ema1\":0.1734638534490611,\"sma1\":0.1987886810185186,\"sma2\":0.17827800000000002,\"rsi_avg_gain\":0.0005264308795431995,\"rsi_avg_loss\":0.0010528592600138576,\"rsi\":33},{\"period_id\":\"120m209546\",\"size\":\"120m\",\"time\":1508731200000,\"open\":0.17068,\"high\":0.17076,\"low\":0.169,\"close\":0.16911,\"volume\":319551.91773119004,\"close_time\":1508738356463,\"vwap\":0.17965983394964935,\"ema1\":0.1739765329972722,\"sma1\":0.19927849583333337,\"sma2\":0.17875950000000002,\"rsi_avg_gain\":0.000566925562584984,\"rsi_avg_loss\":0.0008969253569380006,\"rsi\":39},{\"period_id\":\"120m209545\",\"size\":\"120m\",\"time\":1508724000000,\"open\":0.1708,\"high\":0.17086,\"low\":0.17003,\"close\":0.17043,\"volume\":87114,\"close_time\":1508730294918,\"vwap\":0.17967030528009567,\"ema1\":0.1743121559626013,\"sma1\":0.19976868101851858,\"sma2\":0.17916900000000002,\"rsi_avg_gain\":0.0006105352212453675,\"rsi_avg_loss\":0.00086438115362554,\"rsi\":41},{\"period_id\":\"120m209544\",\"size\":\"120m\",\"time\":1508716800000,\"open\":0.17162,\"high\":0.17162,\"low\":0.1707,\"close\":0.17082,\"volume\":115057.60277177,\"close_time\":1508723544199,\"vwap\":0.17967097835463533,\"ema1\":0.1745798908565738,\"sma1\":0.20022951435185188,\"sma2\":0.1796456666666667,\"rsi_avg_gain\":0.0006574994690334726,\"rsi_avg_loss\":0.0009008720115967352,\"rsi\":42},{\"period_id\":\"120m209543\",\"size\":\"120m\",\"time\":1508709600000,\"open\":0.1705,\"high\":0.172,\"low\":0.17017,\"close\":0.17076,\"volume\":97633.11608365999,\"close_time\":1508716762892,\"vwap\":0.17967187762378758,\"ema1\":0.17483919367426853,\"sma1\":0.2006646995370371,\"sma2\":0.18004133333333336,\"rsi_avg_gain\":0.0007034609666514317,\"rsi_avg_loss\":0.0009701698586426379,\"rsi\":42},{\"period_id\":\"120m209542\",\"size\":\"120m\",\"time\":1508702400000,\"open\":0.17,\"high\":0.17174755,\"low\":0.16966,\"close\":0.17126,\"volume\":279349.66166889,\"close_time\":1508709197711,\"vwap\":0.17967370662554624,\"ema1\":0.17512051737594223,\"sma1\":0.2010894444444445,\"sma2\":0.18033200000000002,\"rsi_avg_gain\":0.0007575733487015418,\"rsi_avg_loss\":0.0010063367708459177,\"rsi\":43},{\"period_id\":\"120m209541\",\"size\":\"120m\",\"time\":1508695200000,\"open\":0.171,\"high\":0.172,\"low\":0.1698,\"close\":0.17,\"volume\":534286.93589556,\"close_time\":1508702389820,\"vwap\":0.1796792332785979,\"ema1\":0.1753867599535934,\"sma1\":0.20157314814814822,\"sma2\":0.18085700000000002,\"rsi_avg_gain\":0.0007189251447555079,\"rsi_avg_loss\":0.0010837472916802192,\"rsi\":40},{\"period_id\":\"120m209540\",\"size\":\"120m\",\"time\":1508688000000,\"open\":0.1724,\"high\":0.1724,\"low\":0.171,\"close\":0.17126,\"volume\":149310.91431348005,\"close_time\":1508694856926,\"vwap\":0.17971516078806132,\"ema1\":0.17575826064004813,\"sma2\":0.1814685,\"rsi_avg_gain\":0.0007742270789674701,\"rsi_avg_loss\":0.0010701893910402373,\"rsi\":42},{\"period_id\":\"120m209539\",\"size\":\"120m\",\"time\":1508680800000,\"open\":0.1723,\"high\":0.17481,\"low\":0.17121,\"close\":0.1724,\"volume\":597489.0677834799,\"close_time\":1508687927557,\"vwap\":0.1797200696203767,\"ema1\":0.1760684855117756,\"sma2\":0.18213633333333334,\"rsi_avg_gain\":0.0008337830081188139,\"rsi_avg_loss\":0.0010648193441971786,\"rsi\":44},{\"period_id\":\"120m209538\",\"size\":\"120m\",\"time\":1508673600000,\"open\":0.17057,\"high\":0.17274,\"low\":0.16958,\"close\":0.17226,\"volume\":357371.2148454699,\"close_time\":1508680784545,\"vwap\":0.1797509417358388,\"ema1\":0.1763214845125877,\"sma2\":0.1828766666666667,\"rsi_avg_gain\":0.0008871509318202611,\"rsi_avg_loss\":0.0011467285245200384,\"rsi\":44},{\"period_id\":\"120m209537\",\"size\":\"120m\",\"time\":1508666400000,\"open\":0.17146,\"high\":0.17149,\"low\":0.168,\"close\":0.16957,\"volume\":718263.7104258008,\"close_time\":1508673584125,\"vwap\":0.179767057053598,\"ema1\":0.17660158689276617,\"sma2\":0.18363383333333336,\"rsi_avg_gain\":0.0007484702342679736,\"rsi_avg_loss\":0.0012349384110215797,\"rsi\":38},{\"period_id\":\"120m209536\",\"size\":\"120m\",\"time\":1508659200000,\"open\":0.17333,\"high\":0.17451,\"low\":0.16901,\"close\":0.17146,\"volume\":777359.1669491098,\"close_time\":1508666395877,\"vwap\":0.17984887516837994,\"ema1\":0.1770865239198535,\"sma2\":0.18446883333333336,\"rsi_avg_gain\":0.0008060448676732024,\"rsi_avg_loss\":0.0011845490580232394,\"rsi\":40},{\"period_id\":\"120m209535\",\"size\":\"120m\",\"time\":1508652000000,\"open\":0.173,\"high\":0.17549,\"low\":0.17237,\"close\":0.17407,\"volume\":368189.59224220994,\"close_time\":1508659091496,\"vwap\":0.17990871449361628,\"ema1\":0.17747456005225717,\"sma2\":0.185208,\"rsi_avg_gain\":0.0008680483190326796,\"rsi_avg_loss\":0.0010748989855634886,\"rsi\":45},{\"period_id\":\"120m209534\",\"size\":\"120m\",\"time\":1508644800000,\"open\":0.17198,\"high\":0.17389,\"low\":0.17066,\"close\":0.17357,\"volume\":259884.95235785996,\"close_time\":1508651645538,\"vwap\":0.1799207554198186,\"ema1\":0.17770935729724044,\"sma2\":0.185956,\"rsi_avg_gain\":0.0008963597281890396,\"rsi_avg_loss\":0.0011575835229145261,\"rsi\":44},{\"period_id\":\"120m209533\",\"size\":\"120m\",\"time\":1508637600000,\"open\":0.17799,\"high\":0.17807,\"low\":0.1715,\"close\":0.17189,\"volume\":233140.33999584996,\"close_time\":1508644438052,\"vwap\":0.17992611127735467,\"ema1\":0.1779948302142915,\"sma2\":0.18673033333333333,\"rsi_avg_gain\":0.000836079707280503,\"rsi_avg_loss\":0.0012466284092925667,\"rsi\":40},{\"period_id\":\"120m209532\",\"size\":\"120m\",\"time\":1508630400000,\"open\":0.17794,\"high\":0.1799,\"low\":0.17573,\"close\":0.17795,\"volume\":324073.30858867,\"close_time\":1508637572755,\"vwap\":0.179938572170829,\"ema1\":0.17841585298769091,\"sma2\":0.18743116666666668,\"rsi_avg_gain\":0.0009003935309174648,\"rsi_avg_loss\":0.0008763690561612251,\"rsi\":51},{\"period_id\":\"120m209531\",\"size\":\"120m\",\"time\":1508623200000,\"open\":0.17182,\"high\":0.178,\"low\":0.17131,\"close\":0.178,\"volume\":579369.1544701199,\"close_time\":1508630360880,\"vwap\":0.17994232749870026,\"ema1\":0.17844798077994548,\"sma2\":0.188096,\"rsi_avg_gain\":0.0009696545717572698,\"rsi_avg_loss\":0.0009399359066351658,\"rsi\":51},{\"period_id\":\"120m209530\",\"size\":\"120m\",\"time\":1508616000000,\"open\":0.17,\"high\":0.173,\"low\":0.16948,\"close\":0.172,\"volume\":437613.7920166499,\"close_time\":1508623105179,\"vwap\":0.17997483234638703,\"ema1\":0.17847887600614862,\"sma2\":0.18881266666666668,\"rsi_avg_gain\":0.0005827049234309055,\"rsi_avg_loss\":0.0010122386686840248,\"rsi\":37},{\"period_id\":\"120m209529\",\"size\":\"120m\",\"time\":1508608800000,\"open\":0.171,\"high\":0.17269,\"low\":0.17,\"close\":0.17045,\"volume\":521011.0137024398,\"close_time\":1508615996024,\"vwap\":0.1800023631346798,\"ema1\":0.17892569504105543,\"sma2\":0.18962850000000003,\"rsi_avg_gain\":0.0005082976098486679,\"rsi_avg_loss\":0.001090103181659719,\"rsi\":32},{\"period_id\":\"120m209528\",\"size\":\"120m\",\"time\":1508601600000,\"open\":0.17174,\"high\":0.17204,\"low\":0.168,\"close\":0.1709,\"volume\":676697.5788278899,\"close_time\":1508608747958,\"vwap\":0.18004369364133505,\"ema1\":0.17951022573354203,\"sma2\":0.19065016666666673,\"rsi_avg_gain\":0.0005473974259908731,\"rsi_avg_loss\":0.0011393418879412354,\"rsi\":32},{\"period_id\":\"120m209527\",\"size\":\"120m\",\"time\":1508594400000,\"open\":0.17297,\"high\":0.17459,\"low\":0.1709,\"close\":0.17198,\"volume\":648114.2900651698,\"close_time\":1508601565921,\"vwap\":0.1801300135825369,\"ema1\":0.18010403440482078,\"sma2\":0.19176050000000003,\"rsi_avg_gain\":0.0005895049202978633,\"rsi_avg_loss\":0.0011439066485521,\"rsi\":34},{\"period_id\":\"120m209526\",\"size\":\"120m\",\"time\":1508587200000,\"open\":0.172,\"high\":0.17328,\"low\":0.16928,\"close\":0.173,\"volume\":2639942.211716732,\"close_time\":1508594339385,\"vwap\":0.18018408842442057,\"ema1\":0.180664312639636,\"sma2\":0.19300483333333335,\"rsi_avg_gain\":0.0006348514526284682,\"rsi_avg_loss\":0.0011534379292099544,\"rsi\":36},{\"period_id\":\"120m209525\",\"size\":\"120m\",\"time\":1508580000000,\"open\":0.17203,\"high\":0.173,\"low\":0.171,\"close\":0.172,\"volume\":729710.4042586304,\"close_time\":1508587194952,\"vwap\":0.18109060393353898,\"ema1\":0.18119288592512814,\"sma2\":0.19406316666666668,\"rsi_avg_gain\":0.000606763102830658,\"rsi_avg_loss\":0.0012421639237645663,\"rsi\":33},{\"period_id\":\"120m209524\",\"size\":\"120m\",\"time\":1508572800000,\"open\":0.17382,\"high\":0.174,\"low\":0.172,\"close\":0.17203,\"volume\":599489.1881081001,\"close_time\":1508579993090,\"vwap\":0.18116747857351695,\"ema1\":0.1818268780578956,\"sma2\":0.195087,\"rsi_avg_gain\":0.0006534371876637856,\"rsi_avg_loss\":0.0013354073025156866,\"rsi\":33},{\"period_id\":\"120m209523\",\"size\":\"120m\",\"time\":1508565600000,\"open\":0.174,\"high\":0.17489,\"low\":0.17141,\"close\":0.17388,\"volume\":803000.1573551196,\"close_time\":1508572738039,\"vwap\":0.18122312147130118,\"ema1\":0.1825025248205091,\"sma2\":0.1961053333333334,\"rsi_avg_gain\":0.0007037015867148461,\"rsi_avg_loss\":0.0012958232488630456,\"rsi\":35},{\"period_id\":\"120m209522\",\"size\":\"120m\",\"time\":1508558400000,\"open\":0.17331,\"high\":0.17482,\"low\":0.17153,\"close\":0.17398,\"volume\":328946.48005890014,\"close_time\":1508565586485,\"vwap\":0.18129570970869108,\"ema1\":0.18309718170468214,\"sma2\":0.19690200000000008,\"rsi_avg_gain\":0.0007578324780006036,\"rsi_avg_loss\":0.001387809652621742,\"rsi\":35},{\"period_id\":\"120m209521\",\"size\":\"120m\",\"time\":1508551200000,\"open\":0.175,\"high\":0.17588,\"low\":0.173,\"close\":0.173,\"volume\":369652.91754784994,\"close_time\":1508558005497,\"vwap\":0.1813170860282307,\"ema1\":0.18372595285672919,\"sma2\":0.19768533333333338,\"rsi_avg_gain\":0.000740742668616034,\"rsi_avg_loss\":0.001494564241284953,\"rsi\":33},{\"period_id\":\"120m209520\",\"size\":\"120m\",\"time\":1508544000000,\"open\":0.17635,\"high\":0.17802,\"low\":0.17464,\"close\":0.17535,\"volume\":470922.95569517004,\"close_time\":1508551167572,\"vwap\":0.18133531217756796,\"ema1\":0.18446567374340017,\"sma2\":0.1984418333333334,\"rsi_avg_gain\":0.0007977228738941905,\"rsi_avg_loss\":0.0014287614906145635,\"rsi\":36},{\"period_id\":\"120m209519\",\"size\":\"120m\",\"time\":1508536800000,\"open\":0.176,\"high\":0.17769,\"low\":0.1746,\"close\":0.17651,\"volume\":1082256.3462099694,\"close_time\":1508543841892,\"vwap\":0.18135135551568476,\"ema1\":0.18509434089811744,\"sma2\":0.19921666666666674,\"rsi_avg_gain\":0.0008590861718860513,\"rsi_avg_loss\":0.0014494354514310687,\"rsi\":37},{\"period_id\":\"120m209518\",\"size\":\"120m\",\"time\":1508529600000,\"open\":0.177,\"high\":0.1783,\"low\":0.175,\"close\":0.176,\"volume\":2969300.322570631,\"close_time\":1508536792880,\"vwap\":0.18146014355367818,\"ema1\":0.18568636440833244,\"sma2\":0.20000683333333338,\"rsi_avg_gain\":0.0008859389543388236,\"rsi_avg_loss\":0.0015609304861565357,\"rsi\":36},{\"period_id\":\"120m209517\",\"size\":\"120m\",\"time\":1508522400000,\"open\":0.1785,\"high\":0.17999,\"low\":0.1771,\"close\":0.17758,\"volume\":913124.6028473194,\"close_time\":1508529579456,\"vwap\":0.18187674008513563,\"ema1\":0.18635438953994157,\"sma2\":0.20077866666666674,\"rsi_avg_gain\":0.0009540881046725794,\"rsi_avg_loss\":0.0015594636004762695,\"rsi\":38},{\"period_id\":\"120m209516\",\"size\":\"120m\",\"time\":1508515200000,\"open\":0.1805,\"high\":0.1805,\"low\":0.1765,\"close\":0.17869,\"volume\":854731.4552997001,\"close_time\":1508522351206,\"vwap\":0.1819383792977541,\"ema1\":0.186959519853041,\"sma2\":0.20156716666666677,\"rsi_avg_gain\":0.0010274794973397009,\"rsi_avg_loss\":0.0015940377235898287,\"rsi\":39},{\"period_id\":\"120m209515\",\"size\":\"120m\",\"time\":1508508000000,\"open\":0.18251,\"high\":0.18389,\"low\":0.1754,\"close\":0.1805,\"volume\":2255473.1624895213,\"close_time\":1508515181054,\"vwap\":0.18198269959640676,\"ema1\":0.1875298315670438,\"sma2\":0.2022330000000001,\"rsi_avg_gain\":0.001106516381750447,\"rsi_avg_loss\":0.0015774252407890457,\"rsi\":41},{\"period_id\":\"120m209514\",\"size\":\"120m\",\"time\":1508500800000,\"open\":0.1827,\"high\":0.1845,\"low\":0.182,\"close\":0.18389,\"volume\":741604.6409471899,\"close_time\":1508507951218,\"vwap\":0.1821486440874379,\"ema1\":0.18801464753718475,\"sma2\":0.20273350000000007,\"rsi_avg_gain\":0.0011916330265004816,\"rsi_avg_loss\":0.0014379964131574336,\"rsi\":45},{\"period_id\":\"120m209513\",\"size\":\"120m\",\"time\":1508493600000,\"open\":0.18325,\"high\":0.18495,\"low\":0.18194,\"close\":0.1845,\"volume\":672749.5059062601,\"close_time\":1508500751369,\"vwap\":0.1821360149750963,\"ema1\":0.18829910598802507,\"sma2\":0.2032285,\"rsi_avg_gain\":0.0012832971054620571,\"rsi_avg_loss\":0.0015016884449387746,\"rsi\":46},{\"period_id\":\"120m209512\",\"size\":\"120m\",\"time\":1508486400000,\"open\":0.18398,\"high\":0.18511,\"low\":0.1825,\"close\":0.18367,\"volume\":750380.9981659299,\"close_time\":1508493594948,\"vwap\":0.18212090556019758,\"ema1\":0.18856111329754405,\"sma2\":0.20373400000000003,\"rsi_avg_gain\":0.0013181661135745234,\"rsi_avg_loss\":0.0016172029407032957,\"rsi\":45},{\"period_id\":\"120m209511\",\"size\":\"120m\",\"time\":1508479200000,\"open\":0.18556,\"high\":0.18691,\"low\":0.1833,\"close\":0.18399,\"volume\":934216.4546398703,\"close_time\":1508486356945,\"vwap\":0.1821035699737364,\"ema1\":0.18889843145599536,\"sma2\":0.2042835000000001,\"rsi_avg_gain\":0.0014195635069264097,\"rsi_avg_loss\":0.0017169877822958578,\"rsi\":45},{\"period_id\":\"120m209510\",\"size\":\"120m\",\"time\":1508472000000,\"open\":0.18476,\"high\":0.18958,\"low\":0.18476,\"close\":0.1855,\"volume\":854452.3424677192,\"close_time\":1508479192400,\"vwap\":0.1820526185172293,\"ema1\":0.18923694397020194,\"sma2\":0.20478850000000007,\"rsi_avg_gain\":0.0015287606997669027,\"rsi_avg_loss\":0.0017329099193955381,\"rsi\":47},{\"period_id\":\"120m209509\",\"size\":\"120m\",\"time\":1508464800000,\"open\":0.18316,\"high\":0.18462,\"low\":0.18193,\"close\":0.18462,\"volume\":229724.49574185,\"close_time\":1508471909974,\"vwap\":0.18198176958284834,\"ema1\":0.18949466424400896,\"sma2\":0.2053445,\"rsi_avg_gain\":0.0015786653689797419,\"rsi_avg_loss\":0.0018662106824259641,\"rsi\":46},{\"period_id\":\"120m209508\",\"size\":\"120m\",\"time\":1508457600000,\"open\":0.18186,\"high\":0.1832,\"low\":0.17975,\"close\":0.18316,\"volume\":430995.58608996,\"close_time\":1508464770516,\"vwap\":0.18197997630165197,\"ema1\":0.1898308479849751,\"sma2\":0.2058828333333334,\"rsi_avg_gain\":0.0015877934742858744,\"rsi_avg_loss\":0.0020097653503048842,\"rsi\":44},{\"period_id\":\"120m209507\",\"size\":\"120m\",\"time\":1508450400000,\"open\":0.18245,\"high\":0.18349,\"low\":0.18,\"close\":0.18236,\"volume\":266705.26839337003,\"close_time\":1508457396244,\"vwap\":0.18197836991997607,\"ema1\":0.19029090646669752,\"sma2\":0.20643350000000005,\"rsi_avg_gain\":0.001648392972307865,\"rsi_avg_loss\":0.0021643626849437215,\"rsi\":43},{\"period_id\":\"120m209506\",\"size\":\"120m\",\"time\":1508443200000,\"open\":0.18448,\"high\":0.1848,\"low\":0.18011,\"close\":0.1821,\"volume\":694507.9420249896,\"close_time\":1508450386343,\"vwap\":0.18198131185811825,\"ema1\":0.19083786553336632,\"sma2\":0.2070623333333334,\"rsi_avg_gain\":0.0017551924317161635,\"rsi_avg_loss\":0.002330852122247085,\"rsi\":43},{\"period_id\":\"120m209505\",\"size\":\"120m\",\"time\":1508436000000,\"open\":0.1825,\"high\":0.1855,\"low\":0.181,\"close\":0.18457,\"volume\":949255.9928773206,\"close_time\":1508443191375,\"vwap\":0.18197668139807602,\"ema1\":0.19144047694946054,\"sma2\":0.20762316666666672,\"rsi_avg_gain\":0.0018902072341558684,\"rsi_avg_loss\":0.0023201484393430144,\"rsi\":45},{\"period_id\":\"120m209504\",\"size\":\"120m\",\"time\":1508428800000,\"open\":0.191,\"high\":0.1944,\"low\":0.1821,\"close\":0.18245,\"volume\":2695444.7140950765,\"close_time\":1508435969412,\"vwap\":0.18194624644340635,\"ema1\":0.19191430294597506,\"sma2\":0.20817400000000008,\"rsi_avg_gain\":0.0018725308675524729,\"rsi_avg_loss\":0.0024986213962155538,\"rsi\":43},{\"period_id\":\"120m209503\",\"size\":\"120m\",\"time\":1508421600000,\"open\":0.17647,\"high\":0.195,\"low\":0.175,\"close\":0.192,\"volume\":3989608.8784541055,\"close_time\":1508428794391,\"vwap\":0.18118087072014807,\"ema1\":0.19256701349397334,\"sma2\":0.20857266666666677,\"rsi_avg_gain\":0.0020165717035180476,\"rsi_avg_loss\":0.0019562076574629037,\"rsi\":51},{\"period_id\":\"120m209502\",\"size\":\"120m\",\"time\":1508414400000,\"open\":0.1781,\"high\":0.17949,\"low\":0.1764,\"close\":0.17647,\"volume\":1041090.1481537899,\"close_time\":1508421587204,\"vwap\":0.17886560539962768,\"ema1\":0.19260611787286805,\"sma2\":0.20924816666666676,\"rsi_avg_gain\":0.0009770772191732807,\"rsi_avg_loss\":0.0021066851695754345,\"rsi\":32},{\"period_id\":\"120m209501\",\"size\":\"120m\",\"time\":1508407200000,\"open\":0.17791,\"high\":0.17965,\"low\":0.1752,\"close\":0.1781,\"volume\":1684302.6253727605,\"close_time\":1508414397667,\"vwap\":0.17893770888547744,\"ema1\":0.19371895358823826,\"sma2\":0.20992083333333342,\"rsi_avg_gain\":0.001052237005263533,\"rsi_avg_loss\":0.002143353259542774,\"rsi\":33},{\"period_id\":\"120m209500\",\"size\":\"120m\",\"time\":1508400000000,\"open\":0.17884,\"high\":0.18121,\"low\":0.17727,\"close\":0.17791,\"volume\":1148991.7105682401,\"close_time\":1508407195358,\"vwap\":0.17906283741994608,\"ema1\":0.19479612280122022,\"sma2\":0.21065433333333342,\"rsi_avg_gain\":0.0011185629287453435,\"rsi_avg_loss\":0.0023082265871999107,\"rsi\":33},{\"period_id\":\"120m209499\",\"size\":\"120m\",\"time\":1508392800000,\"open\":0.1826,\"high\":0.18468,\"low\":0.17801,\"close\":0.17884,\"volume\":1068540.03475697,\"close_time\":1508399998814,\"vwap\":0.1790458356431112,\"ema1\":0.1959606829944078,\"sma2\":0.21129866666666672,\"rsi_avg_gain\":0.0012046062309565239,\"rsi_avg_loss\":0.0024142440169845204,\"rsi\":33},{\"period_id\":\"120m209498\",\"size\":\"120m\",\"time\":1508385600000,\"open\":0.17834,\"high\":0.18343,\"low\":0.1763,\"close\":0.1815,\"volume\":1083815.3835733393,\"close_time\":1508392791657,\"vwap\":0.17896537239636,\"ema1\":0.19714141975264282,\"sma2\":0.21190716666666673,\"rsi_avg_gain\":0.0012972682487224104,\"rsi_avg_loss\":0.0023953397105987147,\"rsi\":35},{\"period_id\":\"120m209497\",\"size\":\"120m\",\"time\":1508378400000,\"open\":0.1835,\"high\":0.18533,\"low\":0.17843,\"close\":0.17885,\"volume\":555617.9518499903,\"close_time\":1508385595765,\"vwap\":0.1789011076009306,\"ema1\":0.19822013835627336,\"sma2\":0.2126013333333334,\"rsi_avg_gain\":0.0011932119601625968,\"rsi_avg_loss\":0.0025795966114140006,\"rsi\":32},{\"period_id\":\"120m209496\",\"size\":\"120m\",\"time\":1508371200000,\"open\":0.18414,\"high\":0.18592,\"low\":0.18112,\"close\":0.18259,\"volume\":481808.72188413964,\"close_time\":1508378329705,\"vwap\":0.17887353804479458,\"ema1\":0.19955600996705083,\"sma2\":0.2132453333333334,\"rsi_avg_gain\":0.0012849974955597195,\"rsi_avg_loss\":0.0024903348122920013,\"rsi\":34},{\"period_id\":\"120m209495\",\"size\":\"120m\",\"time\":1508364000000,\"open\":0.185,\"high\":0.18809,\"low\":0.1836,\"close\":0.18515,\"volume\":1333017.9636087907,\"close_time\":1508371192259,\"vwap\":0.1788338947683461,\"ema1\":0.2007260796199509,\"sma2\":0.21378633333333338,\"rsi_avg_gain\":0.001383843456756621,\"rsi_avg_loss\":0.0024849759516990776,\"rsi\":36},{\"period_id\":\"120m209494\",\"size\":\"120m\",\"time\":1508356800000,\"open\":0.17963,\"high\":0.18522,\"low\":0.17531,\"close\":0.18507,\"volume\":2839118.2283753585,\"close_time\":1508363988420,\"vwap\":0.17829630881393485,\"ema1\":0.20180029200753372,\"sma2\":0.21429333333333342,\"rsi_avg_gain\":0.0014841391072763614,\"rsi_avg_loss\":0.002676127947983622,\"rsi\":36},{\"period_id\":\"120m209493\",\"size\":\"120m\",\"time\":1508349600000,\"open\":0.1817,\"high\":0.18195,\"low\":0.17057,\"close\":0.17963,\"volume\":4148635.5413661683,\"close_time\":1508356790881,\"vwap\":0.17711070815661603,\"ema1\":0.20295410524943258,\"sma2\":0.21491200000000005,\"rsi_avg_gain\":0.0011798421155283891,\"rsi_avg_loss\":0.002881983943982362,\"rsi\":29},{\"period_id\":\"120m209492\",\"size\":\"120m\",\"time\":1508342400000,\"open\":0.189,\"high\":0.18988,\"low\":0.18,\"close\":0.1805,\"volume\":2751641.340932761,\"close_time\":1508349586855,\"vwap\":0.19920107326620387,\"ema1\":0.20456266423215208,\"rsi_avg_gain\":0.0012705992013382651,\"rsi_avg_loss\":0.0030367519396733147,\"rsi\":29},{\"period_id\":\"120m209491\",\"size\":\"120m\",\"time\":1508335200000,\"open\":0.1888,\"high\":0.18988,\"low\":0.1853,\"close\":0.189,\"volume\":1497489.5640848696,\"close_time\":1508342398064,\"vwap\":0.2002699280339732,\"ema1\":0.2062221583171281,\"rsi_avg_gain\":0.0013683376014412088,\"rsi_avg_loss\":0.0026165020888789534,\"rsi\":34},{\"period_id\":\"120m209490\",\"size\":\"120m\",\"time\":1508328000000,\"open\":0.193,\"high\":0.19561,\"low\":0.188,\"close\":0.188,\"volume\":1372659.4788467903,\"close_time\":1508335190916,\"vwap\":0.2005224128249133,\"ema1\":0.20740989337348176,\"rsi_avg_gain\":0.0013966712630905326,\"rsi_avg_loss\":0.002817771480331181,\"rsi\":33},{\"period_id\":\"120m209489\",\"size\":\"120m\",\"time\":1508320800000,\"open\":0.19372,\"high\":0.19788,\"low\":0.19,\"close\":0.19388,\"volume\":1368834.8061775295,\"close_time\":1508327989073,\"vwap\":0.20063990796939044,\"ema1\":0.20874850670958395,\"rsi_avg_gain\":0.0015041075140974967,\"rsi_avg_loss\":0.0025822154403566566,\"rsi\":37},{\"period_id\":\"120m209488\",\"size\":\"120m\",\"time\":1508313600000,\"open\":0.1895,\"high\":0.19372,\"low\":0.18551,\"close\":0.19372,\"volume\":1762878.7035395007,\"close_time\":1508320794514,\"vwap\":0.20075981269449975,\"ema1\":0.20977392096541733,\"rsi_avg_gain\":0.0016075003997973048,\"rsi_avg_loss\":0.002780847397307169,\"rsi\":37},{\"period_id\":\"120m209487\",\"size\":\"120m\",\"time\":1508306400000,\"open\":0.19807,\"high\":0.19897,\"low\":0.18551,\"close\":0.192,\"volume\":1783411.5423043596,\"close_time\":1508313540957,\"vwap\":0.2009848512020281,\"ema1\":0.21088108792854957,\"rsi_avg_gain\":0.0015988465843970977,\"rsi_avg_loss\":0.0029947587355615662,\"rsi\":35},{\"period_id\":\"120m209486\",\"size\":\"120m\",\"time\":1508299200000,\"open\":0.19455,\"high\":0.20078,\"low\":0.19428,\"close\":0.198,\"volume\":1296323.113122249,\"close_time\":1508306398847,\"vwap\":0.20126406737661753,\"ema1\":0.21218323192362196,\"rsi_avg_gain\":0.0017218347831968743,\"rsi_avg_loss\":0.0027635863306047634,\"rsi\":38},{\"period_id\":\"120m209485\",\"size\":\"120m\",\"time\":1508292000000,\"open\":0.19707,\"high\":0.19925,\"low\":0.193,\"close\":0.195,\"volume\":376664.22766547016,\"close_time\":1508299009432,\"vwap\":0.2013053563073313,\"ema1\":0.21316138584938898,\"rsi_avg_gain\":0.001623514381904326,\"rsi_avg_loss\":0.0029761698944974374,\"rsi\":35},{\"period_id\":\"120m209484\",\"size\":\"120m\",\"time\":1508284800000,\"open\":0.19449,\"high\":0.19978,\"low\":0.19075,\"close\":0.19942,\"volume\":743392.9868329304,\"close_time\":1508291986653,\"vwap\":0.201314230544153,\"ema1\":0.21441389521831236,\"rsi_avg_gain\":0.0017484001035892743,\"rsi_avg_loss\":0.002865106040228011,\"rsi\":38},{\"period_id\":\"120m209483\",\"size\":\"120m\",\"time\":1508277600000,\"open\":0.191,\"high\":0.19466,\"low\":0.1888,\"close\":0.1945,\"volume\":2467112.42037417,\"close_time\":1508284788370,\"vwap\":0.20132625291101605,\"ema1\":0.21544795695750632,\"rsi_avg_gain\":0.0015044308807884506,\"rsi_avg_loss\":0.003085498812553243,\"rsi\":33},{\"period_id\":\"120m209482\",\"size\":\"120m\",\"time\":1508270400000,\"open\":0.2015,\"high\":0.20462,\"low\":0.18501,\"close\":0.1887,\"volume\":8168424.322204548,\"close_time\":1508277590165,\"vwap\":0.2017718372581726,\"ema1\":0.2168926436442309,\"rsi_avg_gain\":0.0011740024870029468,\"rsi_avg_loss\":0.003322844875057339,\"rsi\":26},{\"period_id\":\"120m209481\",\"size\":\"120m\",\"time\":1508263200000,\"open\":0.20795,\"high\":0.20948,\"low\":0.198,\"close\":0.2015,\"volume\":4465280.972445613,\"close_time\":1508270392738,\"vwap\":0.2099119884330824,\"ema1\":0.21883696389555715,\"rsi_avg_gain\":0.001264310370618558,\"rsi_avg_loss\":0.0025938329423694415,\"rsi\":33},{\"period_id\":\"120m209480\",\"size\":\"120m\",\"time\":1508256000000,\"open\":0.21216,\"high\":0.213,\"low\":0.2,\"close\":0.20795,\"volume\":4123265.899420519,\"close_time\":1508263196262,\"vwap\":0.21267382739425209,\"ema1\":0.22003261657800938,\"rsi_avg_gain\":0.0013615650145122934,\"rsi_avg_loss\":0.002297204707167092,\"rsi\":37},{\"period_id\":\"120m209479\",\"size\":\"120m\",\"time\":1508248800000,\"open\":0.21667,\"high\":0.2185,\"low\":0.21126,\"close\":0.21247,\"volume\":1350323.3272897,\"close_time\":1508255977182,\"vwap\":0.217736526272056,\"ema1\":0.22086590047994106,\"rsi_avg_gain\":0.001466300784859393,\"rsi_avg_loss\":0.002126220453872253,\"rsi\":41},{\"period_id\":\"120m209478\",\"size\":\"120m\",\"time\":1508241600000,\"open\":0.21483,\"high\":0.2207,\"low\":0.2145,\"close\":0.21668,\"volume\":1476930.5860650714,\"close_time\":1508248766827,\"vwap\":0.21817422942758363,\"ema1\":0.22144492809924735,\"rsi_avg_gain\":0.0015790931529255001,\"rsi_avg_loss\":0.0019659297195547326,\"rsi\":45},{\"period_id\":\"120m209477\",\"size\":\"120m\",\"time\":1508234400000,\"open\":0.2214,\"high\":0.2214,\"low\":0.21483,\"close\":0.215,\"volume\":1546725.3390792508,\"close_time\":1508241589452,\"vwap\":0.2185097915019996,\"ema1\":0.22177354383022993,\"rsi_avg_gain\":0.001571331087765922,\"rsi_avg_loss\":0.002117155082597404,\"rsi\":43},{\"period_id\":\"120m209476\",\"size\":\"120m\",\"time\":1508227200000,\"open\":0.21815,\"high\":0.22399,\"low\":0.2162,\"close\":0.22156,\"volume\":1788883.6854261511,\"close_time\":1508234398358,\"vwap\":0.21876103831893612,\"ema1\":0.22224068478403888,\"rsi_avg_gain\":0.0016922027099017622,\"rsi_avg_loss\":0.001775397781258742,\"rsi\":49},{\"period_id\":\"120m209475\",\"size\":\"120m\",\"time\":1508220000000,\"open\":0.21901,\"high\":0.22099,\"low\":0.215,\"close\":0.21842,\"volume\":1724554.0755199182,\"close_time\":1508227139321,\"vwap\":0.21799488178960466,\"ema1\":0.22228762856224846,\"rsi_avg_gain\":0.0015808336875865127,\"rsi_avg_loss\":0.0019119668413555683,\"rsi\":45},{\"period_id\":\"120m209474\",\"size\":\"120m\",\"time\":1508212800000,\"open\":0.218,\"high\":0.22398,\"low\":0.218,\"close\":0.21845,\"volume\":604386.24432186,\"close_time\":1508219872202,\"vwap\":0.21806833965368194,\"ema1\":0.22255436156654146,\"rsi_avg_gain\":0.0017024362789393214,\"rsi_avg_loss\":0.0020567335214598426,\"rsi\":45},{\"period_id\":\"120m209473\",\"size\":\"120m\",\"time\":1508205600000,\"open\":0.22012,\"high\":0.22135,\"low\":0.218,\"close\":0.21835,\"volume\":278872.58491949004,\"close_time\":1508212763910,\"vwap\":0.21796943807693228,\"ema1\":0.22283742098492362,\"rsi_avg_gain\":0.0018257006080884986,\"rsi_avg_loss\":0.0022149437923413688,\"rsi\":45},{\"period_id\":\"120m209472\",\"size\":\"120m\",\"time\":1508198400000,\"open\":0.2172,\"high\":0.22462,\"low\":0.2165,\"close\":0.22,\"volume\":526781.0521477099,\"close_time\":1508204356283,\"vwap\":0.21795498412152325,\"ema1\":0.2231468982942287,\"rsi_avg_gain\":0.0019661391164029983,\"rsi_avg_loss\":0.0022584010071368577,\"rsi\":47},{\"period_id\":\"120m209471\",\"size\":\"120m\",\"time\":1508191200000,\"open\":0.215,\"high\":0.2193,\"low\":0.21384,\"close\":0.21789,\"volume\":1527821.7633719281,\"close_time\":1508198371974,\"vwap\":0.21785446963585178,\"ema1\":0.2233639257627962,\"rsi_avg_gain\":0.0019550728945878443,\"rsi_avg_loss\":0.0024321241615320004,\"rsi\":45},{\"period_id\":\"120m209470\",\"size\":\"120m\",\"time\":1508184000000,\"open\":0.21977,\"high\":0.22632,\"low\":0.215,\"close\":0.215,\"volume\":3312468.6553416625,\"close_time\":1508191198043,\"vwap\":0.21796832395829205,\"ema1\":0.22374143788436834,\"rsi_avg_gain\":0.0018831554249407554,\"rsi_avg_loss\":0.0026192106354960003,\"rsi\":42},{\"period_id\":\"120m209469\",\"size\":\"120m\",\"time\":1508176800000,\"open\":0.2322,\"high\":0.23534,\"low\":0.215,\"close\":0.2194,\"volume\":7587043.2554451395,\"close_time\":1508183998207,\"vwap\":0.2303619331163362,\"ema1\":0.2243442956694972,\"rsi_avg_gain\":0.0020280135345515826,\"rsi_avg_loss\":0.0024822268382264606,\"rsi\":45},{\"period_id\":\"120m209468\",\"size\":\"120m\",\"time\":1508169600000,\"open\":0.23909,\"high\":0.24,\"low\":0.22711,\"close\":0.2322,\"volume\":5271921.541000183,\"close_time\":1508176794364,\"vwap\":0.23460081074966171,\"ema1\":0.2246852815777384,\"rsi_avg_gain\":0.002184014575670935,\"rsi_avg_loss\":0.0016885519796284974,\"rsi\":56},{\"period_id\":\"120m209467\",\"size\":\"120m\",\"time\":1508162400000,\"open\":0.2485,\"high\":0.2485,\"low\":0.2386,\"close\":0.2386,\"volume\":4005236.0432454455,\"close_time\":1508169595100,\"vwap\":0.23466414011320635,\"ema1\":0.2241670251348238,\"rsi_avg_gain\":0.0023520156968763915,\"rsi_avg_loss\":0.0013261329011383803,\"rsi\":64},{\"period_id\":\"120m209466\",\"size\":\"120m\",\"time\":1508155200000,\"open\":0.2355,\"high\":0.2499,\"low\":0.235,\"close\":0.24766,\"volume\":5009323.550827344,\"close_time\":1508162398862,\"vwap\":0.23263491622974544,\"ema1\":0.2231716475579151,\"rsi_avg_gain\":0.0025329399812514986,\"rsi_avg_loss\":0.0007312200473797956,\"rsi\":78},{\"period_id\":\"120m209465\",\"size\":\"120m\",\"time\":1508148000000,\"open\":0.2334,\"high\":0.237,\"low\":0.23101,\"close\":0.2355,\"volume\":1623158.6642044901,\"close_time\":1508155184120,\"vwap\":0.2270669880771553,\"ema1\":0.22148279566535753,\"rsi_avg_gain\":0.0017923969028862292,\"rsi_avg_loss\":0.0007874677433320875,\"rsi\":69},{\"period_id\":\"120m209464\",\"size\":\"120m\",\"time\":1508140800000,\"open\":0.23496,\"high\":0.235,\"low\":0.224,\"close\":0.23346,\"volume\":2284854.99099831,\"close_time\":1508147985967,\"vwap\":0.226515037006516,\"ema1\":0.2205160919181408,\"rsi_avg_gain\":0.0017733505108005556,\"rsi_avg_loss\":0.0008480421851268634,\"rsi\":68},{\"period_id\":\"120m209463\",\"size\":\"120m\",\"time\":1508133600000,\"open\":0.22176,\"high\":0.237,\"low\":0.22174,\"close\":0.23498,\"volume\":3742457.9514594693,\"close_time\":1508140777463,\"vwap\":0.22559778364303731,\"ema1\":0.21962340860215052,\"rsi_avg_gain\":0.0019097620885544443,\"rsi_avg_loss\":0.0007963531224443149,\"rsi\":71},{\"period_id\":\"120m209462\",\"size\":\"120m\",\"time\":1508126400000,\"open\":0.22,\"high\":0.225,\"low\":0.21921,\"close\":0.22178,\"volume\":491233.2354765498,\"close_time\":1508133596710,\"vwap\":0.22176359825105568,\"rsi_avg_gain\":0.0010412822492124796,\"rsi_avg_loss\":0.0008576110549400315,\"rsi\":55},{\"period_id\":\"120m209461\",\"size\":\"120m\",\"time\":1508119200000,\"open\":0.22154,\"high\":0.22179,\"low\":0.21931,\"close\":0.22,\"volume\":231878.15689234002,\"close_time\":1508126390334,\"vwap\":0.22175316010546167,\"rsi_avg_gain\":0.0009844578068442084,\"rsi_avg_loss\":0.0009235811360892647,\"rsi\":52},{\"period_id\":\"120m209460\",\"size\":\"120m\",\"time\":1508112000000,\"open\":0.22323,\"high\":0.22323,\"low\":0.2203,\"close\":0.22074,\"volume\":253917.69177766997,\"close_time\":1508119056912,\"vwap\":0.2217603046785566,\"rsi_avg_gain\":0.0010601853304476091,\"rsi_avg_loss\":0.0009377027619422857,\"rsi\":53},{\"period_id\":\"120m209459\",\"size\":\"120m\",\"time\":1508104800000,\"open\":0.2238,\"high\":0.2241,\"low\":0.22,\"close\":0.223,\"volume\":679377.8068433397,\"close_time\":1508111891597,\"vwap\":0.22176118564645014,\"rsi_avg_gain\":0.0011417380481743484,\"rsi_avg_loss\":0.0008359875897839991,\"rsi\":58},{\"period_id\":\"120m209458\",\"size\":\"120m\",\"time\":1508097600000,\"open\":0.2235,\"high\":0.2241,\"low\":0.222,\"close\":0.22341,\"volume\":879567.2457431995,\"close_time\":1508104786549,\"vwap\":0.22176445331587818,\"rsi_avg_gain\":0.0012295640518800676,\"rsi_avg_loss\":0.0008687558659212304,\"rsi\":59},{\"period_id\":\"120m209457\",\"size\":\"120m\",\"time\":1508090400000,\"open\":0.22601,\"high\":0.2285,\"low\":0.2235,\"close\":0.22389,\"volume\":2245693.797248608,\"close_time\":1508097595388,\"vwap\":0.2216932681743624,\"rsi_avg_gain\":0.0013241459020246881,\"rsi_avg_loss\":0.0008986601632997859,\"rsi\":60},{\"period_id\":\"120m209456\",\"size\":\"120m\",\"time\":1508083200000,\"open\":0.22045,\"high\":0.2269,\"low\":0.22011,\"close\":0.226,\"volume\":2726038.296152591,\"close_time\":1508090396748,\"vwap\":0.22042487468594213,\"rsi_avg_gain\":0.0014260032791035102,\"rsi_avg_loss\":0.0008054801758613078,\"rsi\":64},{\"period_id\":\"120m209455\",\"size\":\"120m\",\"time\":1508076000000,\"open\":0.21396,\"high\":0.221,\"low\":0.21354,\"close\":0.22045,\"volume\":1708637.0210549808,\"close_time\":1508083195777,\"vwap\":0.21691781748599892,\"rsi_avg_gain\":0.0011087727621114727,\"rsi_avg_loss\":0.0008674401893891007,\"rsi\":56},{\"period_id\":\"120m209454\",\"size\":\"120m\",\"time\":1508068800000,\"open\":0.21396,\"high\":0.21672,\"low\":0.21275,\"close\":0.21392,\"volume\":435710.61404684,\"close_time\":1508075872850,\"vwap\":0.21564518282418196,\"rsi_avg_gain\":0.000691755282273893,\"rsi_avg_loss\":0.0009341663578036469,\"rsi\":43},{\"period_id\":\"120m209453\",\"size\":\"120m\",\"time\":1508061600000,\"open\":0.214,\"high\":0.2142,\"low\":0.21012,\"close\":0.2142,\"volume\":850332.3362540897,\"close_time\":1508068743727,\"vwap\":0.21569695450698292,\"rsi_avg_gain\":0.0007449672270641925,\"rsi_avg_loss\":0.0009844868468654657,\"rsi\":43},{\"period_id\":\"120m209452\",\"size\":\"120m\",\"time\":1508054400000,\"open\":0.21693,\"high\":0.2188,\"low\":0.214,\"close\":0.214,\"volume\":607334.2370174906,\"close_time\":1508061599703,\"vwap\":0.21641235921183133,\"rsi_avg_gain\":0.0007868877829922069,\"rsi_avg_loss\":0.0010602166043166554,\"rsi\":43},{\"period_id\":\"120m209451\",\"size\":\"120m\",\"time\":1508047200000,\"open\":0.21579,\"high\":0.21797,\"low\":0.21503,\"close\":0.21696,\"volume\":394691.07658418996,\"close_time\":1508054359089,\"vwap\":0.21651449029006495,\"rsi_avg_gain\":0.0008474176124531459,\"rsi_avg_loss\":0.0009140794200333221,\"rsi\":48},{\"period_id\":\"120m209450\",\"size\":\"120m\",\"time\":1508040000000,\"open\":0.21822,\"high\":0.21883,\"low\":0.21504,\"close\":0.2158,\"volume\":171068.74766762997,\"close_time\":1508047123237,\"vwap\":0.21651061994146562,\"rsi_avg_gain\":0.0008233728134110806,\"rsi_avg_loss\":0.0009843932215743468,\"rsi\":46},{\"period_id\":\"120m209449\",\"size\":\"120m\",\"time\":1508032800000,\"open\":0.21515,\"high\":0.21987,\"low\":0.215,\"close\":0.21798,\"volume\":220571.05850644,\"close_time\":1508039650535,\"vwap\":0.21651320304654115,\"rsi_avg_gain\":0.0008867091836734714,\"rsi_avg_loss\":0.000892423469387757,\"rsi\":50},{\"period_id\":\"120m209448\",\"size\":\"120m\",\"time\":1508025600000,\"open\":0.21536,\"high\":0.22149,\"low\":0.21386,\"close\":0.21546,\"volume\":707964.3870707101,\"close_time\":1508032798119,\"vwap\":0.21650390032466355,\"rsi_avg_gain\":0.000761071428571431,\"rsi_avg_loss\":0.0009610714285714307,\"rsi\":44},{\"period_id\":\"120m209447\",\"size\":\"120m\",\"time\":1508018400000,\"open\":0.21973,\"high\":0.2205,\"low\":0.2154,\"close\":0.2154,\"volume\":838005.9117413496,\"close_time\":1508025538461,\"vwap\":0.2164420876813041,\"rsi_avg_gain\":0.0008150000000000022,\"rsi_avg_loss\":0.0010350000000000023,\"rsi\":44},{\"period_id\":\"120m209446\",\"size\":\"120m\",\"time\":1508011200000,\"open\":0.21822,\"high\":0.22,\"low\":0.21704,\"close\":0.21983,\"volume\":575111.9319556504,\"close_time\":1508018298035,\"vwap\":0.21639362339406273},{\"period_id\":\"120m209445\",\"size\":\"120m\",\"time\":1508004000000,\"open\":0.2155,\"high\":0.22,\"low\":0.21526,\"close\":0.21822,\"volume\":489996.45826562005,\"close_time\":1508010985727,\"vwap\":0.2157026313726763},{\"period_id\":\"120m209444\",\"size\":\"120m\",\"time\":1507996800000,\"open\":0.216,\"high\":0.21743,\"low\":0.212,\"close\":0.2155,\"volume\":1021218.8540847708,\"close_time\":1508003893718,\"vwap\":0.21517927310467588},{\"period_id\":\"120m209443\",\"size\":\"120m\",\"time\":1507989600000,\"open\":0.21681,\"high\":0.21797,\"low\":0.215,\"close\":0.21592,\"volume\":713933.1875201706,\"close_time\":1507996716287,\"vwap\":0.21576159824119892},{\"period_id\":\"120m209442\",\"size\":\"120m\",\"time\":1507982400000,\"open\":0.21846,\"high\":0.21995,\"low\":0.2161,\"close\":0.217,\"volume\":510351.39443468006,\"close_time\":1507989592659},{\"period_id\":\"120m209441\",\"size\":\"120m\",\"time\":1507975200000,\"open\":0.2218,\"high\":0.2228,\"low\":0.2158,\"close\":0.21846,\"volume\":713020.0319770401,\"close_time\":1507982378829},{\"period_id\":\"120m209440\",\"size\":\"120m\",\"time\":1507968000000,\"open\":0.2176,\"high\":0.22378,\"low\":0.21651,\"close\":0.22192,\"volume\":1198865.3822558406,\"close_time\":1507975185432},{\"period_id\":\"120m209439\",\"size\":\"120m\",\"time\":1507960800000,\"open\":0.218,\"high\":0.21895,\"low\":0.215,\"close\":0.2175,\"volume\":647635.7473931103,\"close_time\":1507967986898},{\"period_id\":\"120m209438\",\"size\":\"120m\",\"time\":1507953600000,\"open\":0.21942,\"high\":0.22366,\"low\":0.21801,\"close\":0.21801,\"volume\":153208.56479699002,\"close_time\":1507960794466},{\"period_id\":\"120m209437\",\"size\":\"120m\",\"time\":1507946400000,\"open\":0.22138,\"high\":0.2238,\"low\":0.21948,\"close\":0.2205,\"volume\":371646.62039033975,\"close_time\":1507953503013},{\"period_id\":\"120m209436\",\"size\":\"120m\",\"time\":1507939200000,\"open\":0.2183,\"high\":0.22139,\"low\":0.21761,\"close\":0.22123,\"volume\":335889.88883946976,\"close_time\":1507946329960},{\"period_id\":\"120m209435\",\"size\":\"120m\",\"time\":1507932000000,\"open\":0.21462,\"high\":0.219,\"low\":0.2146,\"close\":0.21761,\"volume\":342086.37947635003,\"close_time\":1507939166270},{\"period_id\":\"120m209434\",\"size\":\"120m\",\"time\":1507924800000,\"open\":0.217,\"high\":0.21762,\"low\":0.211,\"close\":0.21549,\"volume\":806460.19144003,\"close_time\":1507931994857}];\nvar trades = [{\"time\":1508744057470,\"execution_time\":41667650,\"slippage\":0.0004500000000000549,\"type\":\"buy\",\"size\":\"4100.59171598\",\"fee\":6.679518072288,\"price\":\"0.16907605\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1508752332962,\"execution_time\":6751287,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4126.33908434\",\"fee\":1.102061652324147,\"price\":\"0.16692485\",\"order_type\":\"maker\"},{\"time\":1509308060275,\"execution_time\":252944458,\"slippage\":0.0004499999999999014,\"type\":\"buy\",\"size\":\"3924.57232518\",\"fee\":6.243019097632001,\"price\":\"0.17207740\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509552654477,\"execution_time\":51317716,\"slippage\":0.0004499999999998917,\"type\":\"buy\",\"size\":\"60.67144990\",\"fee\":0.096506633744,\"price\":\"0.17007650\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509654146933,\"execution_time\":8567763,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3957.56880666\",\"fee\":1.050657266425124,\"price\":\"0.16592530\",\"order_type\":\"maker\"},{\"time\":1509671719179,\"execution_time\":4548785,\"slippage\":0.00045000000000006276,\"type\":\"buy\",\"size\":\"3796.56327351\",\"fee\":5.676173287616,\"price\":\"0.17107695\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510456783536,\"execution_time\":12036881,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3546.08849822\",\"fee\":1.0094715375911238,\"price\":\"0.17791990\",\"order_type\":\"maker\"},{\"time\":1510840937071,\"execution_time\":140659,\"slippage\":0.00044999999999994534,\"type\":\"buy\",\"size\":\"3082.47058877\",\"fee\":4.954680835776001,\"price\":\"0.21809810\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511692806879,\"execution_time\":38536953,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3096.26451809\",\"fee\":1.0349249289646139,\"price\":\"0.20890595\",\"order_type\":\"maker\"},{\"time\":1511736528331,\"execution_time\":2929512,\"slippage\":0.0004500000000000206,\"type\":\"buy\",\"size\":\"3197.45549852\",\"fee\":5.06552555824,\"price\":\"0.20109045\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511839450454,\"execution_time\":26651481,\"slippage\":0.00045000000000003436,\"type\":\"buy\",\"size\":\"60.54622702\",\"fee\":0.093235504528,\"price\":\"0.20509225\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511985716807,\"execution_time\":117843,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3217.83887932\",\"fee\":1.029245072583778,\"price\":\"0.19991000\",\"order_type\":\"maker\"},{\"time\":1512333998772,\"execution_time\":31613017,\"slippage\":0.0004500000000000411,\"type\":\"buy\",\"size\":\"3074.42874248\",\"fee\":4.94296504616,\"price\":\"0.20709315\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512563531961,\"execution_time\":1989476,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3085.74447570\",\"fee\":0.986993885019499,\"price\":\"0.19991000\",\"order_type\":\"maker\"},{\"time\":1512582585917,\"execution_time\":13803235,\"slippage\":0.00045000000000000254,\"type\":\"buy\",\"size\":\"3126.25538149\",\"fee\":4.9266014453919995,\"price\":\"0.19608820\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512598034738,\"execution_time\":451909,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3074.31475366\",\"fee\":0.9636712594497396,\"price\":\"0.19591180\",\"order_type\":\"maker\"},{\"time\":1512869814441,\"execution_time\":5823423,\"slippage\":0.00045000000000000985,\"type\":\"buy\",\"size\":\"3082.43009395\",\"fee\":5.00776335264,\"price\":\"0.19808910\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512881477014,\"execution_time\":3087977,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3124.33903627\",\"fee\":0.95936504331377,\"price\":\"0.19191360\",\"order_type\":\"maker\"},{\"time\":1513010709320,\"execution_time\":9923255,\"slippage\":0.0004500000000000206,\"type\":\"buy\",\"size\":\"2931.28765621\",\"fee\":4.643852759792,\"price\":\"0.20109045\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"price\":0.3935,\"size\":\"2929.32310227\",\"type\":\"sell\",\"time\":1513173600000}];\n\nwithData(data, trades)\n  </script>\n  <pre><code>{\n  \"asset_capital\": 0,\n  \"avg_slippage_pct\": 0.045,\n  \"buy_pct\": 99,\n  \"buy_stop_pct\": 0,\n  \"currency_capital\": 700,\n  \"days\": 60,\n  \"emalen1\": 30,\n  \"filename\": \"simulations/vwapmax20000.html\",\n  \"markdown_buy_pct\": 0.5,\n  \"markup_sell_pct\": 0.5,\n  \"max_sell_loss_pct\": 25,\n  \"max_slippage_pct\": \"100\",\n  \"min_periods\": 1,\n  \"mode\": \"sim\",\n  \"order_adjust_time\": 5000,\n  \"order_type\": \"maker\",\n  \"period\": \"120m\",\n  \"profit_stop_enable_pct\": 0,\n  \"profit_stop_pct\": 1,\n  \"rsi_periods\": 14,\n  \"selector\": \"kraken.XXRP-ZEUR\",\n  \"sell_pct\": 99,\n  \"sell_stop_pct\": 0,\n  \"show_options\": true,\n  \"smalen1\": 108,\n  \"smalen2\": 60,\n  \"start\": 1507939200000,\n  \"stats\": false,\n  \"strategy\": \"crossover_vwap\",\n  \"verbose\": false,\n  \"vwap_length\": 10,\n  \"vwap_max\": 20000\n}\nend balance: 1164.18233610 (66.31%)\nbuy hold: 1261.79569400 (80.26%)\nvs. buy hold: -7.74%\n20 trades over 62 days (avg 0.32 trades/day)\nwin/loss: 2/7\nerror rate: 77.78%</pre></code>\n</body>\n</html>"
  },
  {
    "path": "extensions/strategies/crossover_vwap/example_sims/vwapmax500.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>kraken.XXRP-ZEUR - zenbot 4.0.5 sim result</title>\n  <link href=\"main.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n  <div class=\"ticker-graph\"></div>\n  <script src=\"https://code.jquery.com/jquery-3.0.0.slim.min.js\"></script>\n  <script src=\"https://d3js.org/d3.v4.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/techan.js/0.8.0/techan.min.js\"></script>\n  <script>\n    var withData = function (data, trades) {\n      var dim = {\n          width: 1280, height: 520,\n          margin: { top: 20, right: 50, bottom: 20, left: 50 },\n          ohlc: { height: 450 }\n      };\n      dim.plot = {\n          width: dim.width - dim.margin.left - dim.margin.right,\n          height: dim.height - dim.margin.top - dim.margin.bottom\n      };\n\n      var yInit, yPercentInit, zoomableInit;\n\n      var x = techan.scale.financetime()\n              .range([0, dim.plot.width]);\n\n      var y = d3.scaleLinear()\n              .range([dim.ohlc.height, 0]);\n\n      var zoom = d3.zoom()\n              .on(\"zoom\", zoomed);\n\n      var yPercent = y.copy();   // Same as y at this stage, will get a different domain later\n\n      var yVolume = d3.scaleLinear()\n              .range([y(0), y(1)]);\n\n      var candlestick = techan.plot.candlestick()\n              .xScale(x)\n              .yScale(y);\n\n      var tradearrow = techan.plot.tradearrow()\n              .xScale(x)\n              .yScale(y)\n              .y(function(d) {\n                  // Display the buy and sell arrows a bit above and below the price, so the price is still visible\n                  if(d.type === 'buy') return y(d.price);\n                  if(d.type === 'sell') return y(d.price);\n                  else \n                    return y(d.price);\n              });\n\n      var ema2 = techan.plot.ema()\n        .xScale(x)\n        .yScale(y);\n\n      var sma0 = techan.plot.sma()\n              .xScale(x)\n              .yScale(y);\n    \n      var sma1 = techan.plot.sma()\n              .xScale(x)\n              .yScale(y);\n    \n      var adx1 = techan.plot.adx()\n              .xScale(x)\n              .yScale(y);\n  \n      var volume = techan.plot.volume()\n              .accessor(candlestick.accessor())   // Set the accessor to a ohlc accessor so we get highlighted bars\n              .xScale(x)\n              .yScale(yVolume);\n\n      var xAxis = d3.axisBottom(x);\n\n      var timeAnnotation = techan.plot.axisannotation()\n              .axis(xAxis)\n              .orient('bottom')\n              .format(d3.timeFormat('%c'))\n              .width(140)\n              .translate([0, dim.plot.height]);\n\n      var yAxis = d3.axisRight(y);\n\n      var ohlcAnnotation = techan.plot.axisannotation()\n              .axis(yAxis)\n              .orient('right')\n              .format(d3.format(',.8f'))\n              .translate([x(1), 0]);\n\n      var percentAxis = d3.axisLeft(yPercent)\n              .tickFormat(d3.format('+.1%'));\n\n      var percentAnnotation = techan.plot.axisannotation()\n              .axis(percentAxis)\n              .orient('left');\n\n      var volumeAxis = d3.axisRight(yVolume)\n              .ticks(3)\n              .tickFormat(d3.format(\",.3s\"));\n\n      var volumeAnnotation = techan.plot.axisannotation()\n              .axis(volumeAxis)\n              .orient(\"right\")\n              .width(35);\n\n      var ohlcCrosshair = techan.plot.crosshair()\n              .xScale(timeAnnotation.axis().scale())\n              .yScale(ohlcAnnotation.axis().scale())\n              .xAnnotation(timeAnnotation)\n              .yAnnotation([ohlcAnnotation, percentAnnotation, volumeAnnotation])\n              .verticalWireRange([0, dim.plot.height]);\n\n      var svg = d3.select(\"body\").append(\"svg\")\n              .attr(\"viewBox\", \"0 0 \" + dim.width + \" \" + dim.height)\n              .attr(\"width\", dim.width)\n              .attr(\"height\", dim.height);\n\n      var defs = svg.append(\"defs\");\n\n      defs.append(\"clipPath\")\n              .attr(\"id\", \"ohlcClip\")\n          .append(\"rect\")\n              .attr(\"x\", 0)\n              .attr(\"y\", 0)\n              .attr(\"width\", dim.plot.width)\n              .attr(\"height\", dim.ohlc.height);\n\n      svg = svg.append(\"g\")\n              .attr(\"transform\", \"translate(\" + dim.margin.left + \",\" + dim.margin.top + \")\");\n\n      svg.append('text')\n              .attr(\"class\", \"symbol\")\n              .attr(\"x\", 50)\n              .text(\"kraken.XXRP-ZEUR - zenbot 4.0.5\");\n\n      svg.append(\"g\")\n              .attr(\"class\", \"x axis\")\n              .attr(\"transform\", \"translate(0,\" + (dim.plot.height - 30) + \")\");\n\n      var ohlcSelection = svg.append(\"g\")\n              .attr(\"class\", \"ohlc\")\n              .attr(\"transform\", \"translate(0,0)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"axis\")\n              .attr(\"transform\", \"translate(\" + x(1) + \",0)\")\n          .append(\"text\")\n              .attr(\"transform\", \"rotate(-90)\")\n              .attr(\"y\", -12)\n              .attr(\"dy\", \".71em\")\n              .style(\"text-anchor\", \"end\")\n              .text(\"Price\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"close annotation up\")\n              .attr(\"font-weight\", \"900\")\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"volume\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"candlestick\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator ema ma-2\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator sma sma-0\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator sma sma-1\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator adx adx-1\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line1\")\n                .attr(\"class\", \"indicator ema ma-2\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line2\")\n                .attr(\"class\", \"indicator sma sma-0\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line3\")\n                .attr(\"class\", \"indicator sma sma-1\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n            \n      svg.append(\"g\")\n                .attr(\"id\", \"data_line4\")\n                .attr(\"class\", \"indicator indicator4\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"percent axis\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"volume axis\");\n\n      // Add trendlines and other interactions last to be above zoom pane\n      svg.append('g')\n              .attr(\"class\", \"crosshair ohlc\");\n\n      svg.append(\"g\")\n              .attr(\"class\", \"tradearrow\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      var accessor = candlestick.accessor();\n\n      data = data.map(function (d) {\n        d.date = new Date(d.time)\n        return d\n      })\n      data.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n      trades = trades.map(function (t) {\n        t.date = new Date(t.time)\n        return t\n      })\n      trades.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n\n      //$('body').css('backgroundColor', '#1f2d35')\n      x.domain(techan.scale.plot.time(data).domain());\n      y.domain(techan.scale.plot.ohlc(data).domain());\n      yPercent.domain(techan.scale.plot.percent(y, accessor(data[0])).domain());\n      yVolume.domain(techan.scale.plot.volume(data).domain());\n\n      svg.select(\"g.candlestick\").datum(data)\n      var last = data[data.length-1]\n      if (!last) {\n        return\n      }\n  \n      var parseQueryString = function(url) {\n        var urlParams = {};\n        url.replace(\n          new RegExp(\"([^?=&]+)(=([^&]*))?\", \"g\"),\n          function($0, $1, $2, $3) {\n            urlParams[$1] = $3;\n          }\n        );\n\n        return urlParams;\n      }\n  \n      var urlToParse = location.search;  \n      var qParams = parseQueryString(urlToParse ); \n  \n      var tperiod = qParams.period;\n  \n      svg.select(\"g.volume\").datum(data)\n  \n      // svg.select(\"g.ema.ma-2\").datum(techan.indicator.ema().period(tperiod*2)(data)).call(ema2);\n      // svg.select(\"g.sma.sma-0\").datum(techan.indicator.sma().period(tperiod*2)(data)).call(sma0);\n      // svg.select(\"g.sma.sma-1\").datum(techan.indicator.sma().period(tperiod)(data)).call(sma1);\n  \n      // svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1);\n      // svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2);\n      // svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3);\n      //\n  \n        \n      var plotLine1 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.ema1); });\n\n      var plotLine2 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.sma1); });\n\n      var plotLine3 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.sma2); });\n          \n      var plotLine4 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2) && !isNaN(d.vwap); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.vwap); });\n        \n        \n      svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1);\n      svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2);\n      svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3);\n      svg.select(\"g#data_line4 path\").datum(data).attr(\"d\", plotLine4);\n      //svg.select(\"g.adx.adx-1\").datum(techan.indicator.adx().period(tperiod)(data)).call(adx1);\n  \n      svg.select(\"g.tradearrow\").datum(trades).call(tradearrow);\n  \n      // Stash for zooming\n      zoomableInit = x.zoomable().domain([0, data.length]).copy(); // Zoom in a little to hide indicator preroll\n      yInit = y.copy();\n      yPercentInit = yPercent.copy();\n\n      draw();\n\n      function draw() {\n        svg.select(\"g.x.axis\").call(xAxis);\n        svg.select(\"g.ohlc .axis\").call(yAxis);\n        svg.select(\"g.volume.axis\").call(volumeAxis);\n        svg.select(\"g.percent.axis\").call(percentAxis);\n        svg.select(\"g.candlestick\").call(candlestick);\n        svg.select(\"g.volume\").call(volume);\n        svg.select(\"g.crosshair.ohlc\").call(ohlcCrosshair).call(zoom);\n        svg.select(\"g.tradearrow\").call(tradearrow);\n        // svg.select(\"g .ema.ma-2\").call(ema2.refresh).call(zoom);\n        // svg.select(\"g .sma.sma-0\").call(sma0.refresh).call(zoom);\n        // svg.select(\"g .sma.sma-1\").call(sma1.refresh).call(zoom);\n        // svg.select(\"g .adx.adx-1\").call(adx1.refresh).call(zoom);\n    \n        svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1).call(zoom);\n        svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2).call(zoom);\n        svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3).call(zoom);\n        svg.select(\"g#data_line4 path\").datum(data).attr(\"d\", plotLine4).call(zoom);\n      }\n\n\n      function zoomed() {\n        x.zoomable().domain(d3.event.transform.rescaleX(zoomableInit).domain());\n        y.domain(d3.event.transform.rescaleY(yInit).domain());\n        yPercent.domain(d3.event.transform.rescaleY(yPercentInit).domain());\n\n        draw();\n      }\n  \n      if(!qParams.static)\n        setTimeout(function(){ window.location.reload(1); }, 10000);\n    }\n  </script>\n  <script>\nvar data = [{\"period_id\":\"120m210163\",\"size\":\"120m\",\"time\":1513173600000,\"open\":0.3875,\"high\":0.399,\"low\":0.3812,\"close\":0.3935,\"volume\":1394606.5288537226,\"close_time\":1513174686001,\"vwap\":0.3926062365853981,\"ema1\":0.27287274681999496,\"sma1\":0.2141562685185185,\"sma2\":0.22013291666666668},{\"period_id\":\"120m210162\",\"size\":\"120m\",\"time\":1513166400000,\"open\":0.38999,\"high\":0.395,\"low\":0.371,\"close\":0.3875,\"volume\":2764537.296713162,\"close_time\":1513173592543,\"vwap\":0.38447945024477426,\"ema1\":0.2645536259110291,\"sma1\":0.21242386111111108,\"sma2\":0.21690791666666667,\"rsi_avg_gain\":0.009856092175262298,\"rsi_avg_loss\":0.000811144798512558,\"rsi\":92},{\"period_id\":\"120m210161\",\"size\":\"120m\",\"time\":1513159200000,\"open\":0.37499,\"high\":0.39,\"low\":0.35,\"close\":0.38331,\"volume\":4774045.706226606,\"close_time\":1513166399125,\"vwap\":0.38883364339484805,\"ema1\":0.2560745656290311,\"sma1\":0.21074265740740744,\"sma2\":0.21373625000000002,\"rsi_avg_gain\":0.010291945419513242,\"rsi_avg_loss\":0.0008735405522442933,\"rsi\":92},{\"period_id\":\"120m210160\",\"size\":\"120m\",\"time\":1513152000000,\"open\":0.365,\"high\":0.43,\"low\":0.362,\"close\":0.37037,\"volume\":10615001.811561493,\"close_time\":1513159196158,\"vwap\":0.3731104957956859,\"ema1\":0.24729970808620566,\"sma1\":0.20869450925925928,\"sma2\":0.21075141666666672,\"rsi_avg_gain\":0.010088248913321952,\"rsi_avg_loss\":0.0009407359793400081,\"rsi\":91},{\"period_id\":\"120m210159\",\"size\":\"120m\",\"time\":1513144800000,\"open\":0.31155,\"high\":0.3799,\"low\":0.30039,\"close\":0.36201,\"volume\":7383654.496617741,\"close_time\":1513151997966,\"vwap\":0.3599308520676952,\"ema1\":0.23881210174732329,\"sma1\":0.20709302777777777,\"sma2\":0.2079064166666667,\"rsi_avg_gain\":0.010221191137423641,\"rsi_avg_loss\":0.0010131002854430857,\"rsi\":91},{\"period_id\":\"120m210158\",\"size\":\"120m\",\"time\":1513137600000,\"open\":0.28467,\"high\":0.319,\"low\":0.28201,\"close\":0.3084,\"volume\":1939410.0138247905,\"close_time\":1513144797985,\"vwap\":0.31308055377731664,\"ema1\":0.2303156949712766,\"sma1\":0.2060463611111111,\"sma2\":0.2061830833333334,\"rsi_avg_gain\":0.006883590455686998,\"rsi_avg_loss\":0.0010910310766310155,\"rsi\":86},{\"period_id\":\"120m210157\",\"size\":\"120m\",\"time\":1513130400000,\"open\":0.2981,\"high\":0.3,\"low\":0.27671,\"close\":0.28923,\"volume\":1470804.7478552302,\"close_time\":1513137551841,\"vwap\":0.28306379426444983,\"ema1\":0.22493057048653706,\"sma1\":0.20516673148148146,\"sma2\":0.20477208333333338,\"rsi_avg_gain\":0.005938482029201381,\"rsi_avg_loss\":0.0011749565440641705,\"rsi\":83},{\"period_id\":\"120m210156\",\"size\":\"120m\",\"time\":1513123200000,\"open\":0.27601,\"high\":0.29897,\"low\":0.27,\"close\":0.298,\"volume\":3115674.8552143956,\"close_time\":1513130393652,\"vwap\":0.29724540890172774,\"ema1\":0.22049612707181548,\"sma1\":0.20430552777777777,\"sma2\":0.20283875000000007,\"rsi_avg_gain\":0.006395288339139949,\"rsi_avg_loss\":0.0005907224320691066,\"rsi\":92},{\"period_id\":\"120m210155\",\"size\":\"120m\",\"time\":1513116000000,\"open\":0.272,\"high\":0.32956,\"low\":0.272,\"close\":0.27601,\"volume\":15006128.73051956,\"close_time\":1513123194998,\"vwap\":0.27961939380589207,\"ema1\":0.2151510323871131,\"sma1\":0.2032051574074074,\"sma2\":0.20133858333333338,\"rsi_avg_gain\":0.005195695134458405,\"rsi_avg_loss\":0.0006361626191513457,\"rsi\":89},{\"period_id\":\"120m210154\",\"size\":\"120m\",\"time\":1513108800000,\"open\":0.22885,\"high\":0.271965,\"low\":0.2287,\"close\":0.271965,\"volume\":13060193.335544836,\"close_time\":1513115999358,\"vwap\":0.2700489373745419,\"ema1\":0.210953862206914,\"sma1\":0.20263140740740743,\"sma2\":0.19982250000000004,\"rsi_avg_gain\":0.005284210144801362,\"rsi_avg_loss\":0.0006850982052399108,\"rsi\":89},{\"period_id\":\"120m210153\",\"size\":\"120m\",\"time\":1513101600000,\"open\":0.226,\"high\":0.22885,\"low\":0.222,\"close\":0.22885,\"volume\":2796097.9907069877,\"close_time\":1513108799425,\"vwap\":0.2275223284019172,\"ema1\":0.20674619753152876,\"sma1\":0.20245687037037038,\"sma2\":0.19904166666666667,\"rsi_avg_gain\":0.0023741493867091576,\"rsi_avg_loss\":0.0007377980671814424,\"rsi\":76},{\"period_id\":\"120m210152\",\"size\":\"120m\",\"time\":1513094400000,\"open\":0.21948,\"high\":0.228,\"low\":0.2161,\"close\":0.22503,\"volume\":6439607.943355674,\"close_time\":1513101587721,\"vwap\":0.22458857661005519,\"ema1\":0.20522179736128937,\"sma1\":0.2023068703703704,\"sma2\":0.19840783333333334,\"rsi_avg_gain\":0.002262930108763709,\"rsi_avg_loss\":0.0007945517646569379,\"rsi\":74},{\"period_id\":\"120m210151\",\"size\":\"120m\",\"time\":1513087200000,\"open\":0.2171,\"high\":0.2199,\"low\":0.21,\"close\":0.21989,\"volume\":2382252.81933436,\"close_time\":1513094394487,\"vwap\":0.21824387168866605,\"ema1\":0.20385571442068864,\"sma1\":0.20224298148148154,\"sma2\":0.19788466666666665,\"rsi_avg_gain\":0.002041617040207071,\"rsi_avg_loss\":0.0008556711311690101,\"rsi\":70},{\"period_id\":\"120m210150\",\"size\":\"120m\",\"time\":1513080000000,\"open\":0.2199,\"high\":0.22,\"low\":0.21203,\"close\":0.2171,\"volume\":2916612.944391042,\"close_time\":1513087188989,\"vwap\":0.21730802369556718,\"ema1\":0.20274990162211545,\"sma1\":0.20214483333333336,\"sma2\":0.19739133333333334,\"rsi_avg_gain\":0.0019840491202229985,\"rsi_avg_loss\":0.0009214919874127801,\"rsi\":68},{\"period_id\":\"120m210149\",\"size\":\"120m\",\"time\":1513072800000,\"open\":0.21318,\"high\":0.2199,\"low\":0.21048,\"close\":0.2199,\"volume\":2803692.7908667373,\"close_time\":1513079996977,\"vwap\":0.2192696642810583,\"ema1\":0.20176023966501996,\"sma1\":0.20203464814814817,\"sma2\":0.19681183333333332,\"rsi_avg_gain\":0.0021366682833170755,\"rsi_avg_loss\":0.0007769913710599151,\"rsi\":73},{\"period_id\":\"120m210148\",\"size\":\"120m\",\"time\":1513065600000,\"open\":0.20682,\"high\":0.2147,\"low\":0.20681,\"close\":0.2139,\"volume\":2409213.2365118363,\"close_time\":1513072781584,\"vwap\":0.21320419575079702,\"ema1\":0.2005092217108834,\"sma1\":0.20197261111111112,\"sma2\":0.19634699999999997,\"rsi_avg_gain\":0.0018394889204953115,\"rsi_avg_loss\":0.000836759938064524,\"rsi\":69},{\"period_id\":\"120m210147\",\"size\":\"120m\",\"time\":1513058400000,\"open\":0.209,\"high\":0.2099,\"low\":0.205,\"close\":0.20682,\"volume\":761639.33327307,\"close_time\":1513065594627,\"vwap\":0.20828026297507596,\"ema1\":0.19958571975990982,\"sma1\":0.201949,\"sma2\":0.1961045,\"rsi_avg_gain\":0.0014363726836103352,\"rsi_avg_loss\":0.0009011260871464106,\"rsi\":61},{\"period_id\":\"120m210146\",\"size\":\"120m\",\"time\":1513051200000,\"open\":0.2013,\"high\":0.21124,\"low\":0.19611,\"close\":0.20898,\"volume\":2402623.3937815027,\"close_time\":1513058363795,\"vwap\":0.21021234985439752,\"ema1\":0.19908680388128291,\"sma1\":0.20189224074074075,\"sma2\":0.19572866666666663,\"rsi_avg_gain\":0.0015468628900418995,\"rsi_avg_loss\":0.0008042896323115195,\"rsi\":66},{\"period_id\":\"120m210145\",\"size\":\"120m\",\"time\":1513044000000,\"open\":0.20056,\"high\":0.2015,\"low\":0.19804,\"close\":0.20129,\"volume\":182878.24229903996,\"close_time\":1513051003700,\"vwap\":0.19887891500027077,\"ema1\":0.19840451449378518,\"sma1\":0.20193853703703699,\"sma2\":0.19548216666666668,\"rsi_avg_gain\":0.001074313881583584,\"rsi_avg_loss\":0.0008661580655662517,\"rsi\":55},{\"period_id\":\"120m210144\",\"size\":\"120m\",\"time\":1513036800000,\"open\":0.2018,\"high\":0.203,\"low\":0.1961,\"close\":0.19999,\"volume\":1030371.8747069496,\"close_time\":1513043937932,\"vwap\":0.20002236025295766,\"ema1\":0.19820551549335658,\"sma1\":0.2019912222222222,\"sma2\":0.19529933333333332,\"rsi_avg_gain\":0.0010569534109361677,\"rsi_avg_loss\":0.0009327856090713479,\"rsi\":53},{\"period_id\":\"120m210143\",\"size\":\"120m\",\"time\":1513029600000,\"open\":0.20101,\"high\":0.202,\"low\":0.2,\"close\":0.2018,\"volume\":1521322.558584841,\"close_time\":1513036796088,\"vwap\":0.2011260331526482,\"ema1\":0.1980824475963467,\"sma1\":0.20204677777777771,\"sma2\":0.19518599999999997,\"rsi_avg_gain\":0.0011382575194697191,\"rsi_avg_loss\":0.0008653075789999126,\"rsi\":57},{\"period_id\":\"120m210142\",\"size\":\"120m\",\"time\":1513022400000,\"open\":0.202,\"high\":0.202,\"low\":0.2,\"close\":0.20119,\"volume\":978930.4729250503,\"close_time\":1513029582354,\"vwap\":0.20137128889008143,\"ema1\":0.1978260646719568,\"sma1\":0.20209788888888885,\"sma2\":0.19512699999999997,\"rsi_avg_gain\":0.0011788927132750822,\"rsi_avg_loss\":0.0009318697004614445,\"rsi\":56},{\"period_id\":\"120m210141\",\"size\":\"120m\",\"time\":1513015200000,\"open\":0.203,\"high\":0.20773,\"low\":0.20001,\"close\":0.202,\"volume\":1492537.8041972315,\"close_time\":1513022380076,\"vwap\":0.20239981244539393,\"ema1\":0.19759406913209174,\"sma1\":0.20210038888888884,\"sma2\":0.1950686666666666,\"rsi_avg_gain\":0.0012695767681423962,\"rsi_avg_loss\":0.0009412442928046321,\"rsi\":57},{\"period_id\":\"120m210140\",\"size\":\"120m\",\"time\":1513008000000,\"open\":0.20474,\"high\":0.206,\"low\":0.2021,\"close\":0.204,\"volume\":1342877.567555539,\"close_time\":1513015199565,\"vwap\":0.2037771840416643,\"ema1\":0.19729021183085668,\"sma1\":0.20212631481481477,\"sma2\":0.19500033333333328,\"rsi_avg_gain\":0.001367236519537965,\"rsi_avg_loss\":0.0008598015460972981,\"rsi\":61},{\"period_id\":\"120m210139\",\"size\":\"120m\",\"time\":1513000800000,\"open\":0.20238,\"high\":0.2049,\"low\":0.20083,\"close\":0.20486,\"volume\":1091793.7951348608,\"close_time\":1513007991071,\"vwap\":0.20351462156922226,\"ema1\":0.19682746781919164,\"sma1\":0.20216798148148143,\"sma2\":0.1948854999999999,\"rsi_avg_gain\":0.0014724085595024237,\"rsi_avg_loss\":0.0008597862804124749,\"rsi\":63},{\"period_id\":\"120m210138\",\"size\":\"120m\",\"time\":1512993600000,\"open\":0.20099,\"high\":0.205,\"low\":0.2003984,\"close\":0.20214,\"volume\":2245705.2988893474,\"close_time\":1513000786065,\"vwap\":0.20264337166555593,\"ema1\":0.19627350008258415,\"sma1\":0.20222353703703697,\"sma2\":0.1948279999999999,\"rsi_avg_gain\":0.0013764399871564563,\"rsi_avg_loss\":0.0009259236865980498,\"rsi\":60},{\"period_id\":\"120m210137\",\"size\":\"120m\",\"time\":1512986400000,\"open\":0.20054,\"high\":0.2025,\"low\":0.1996,\"close\":0.201,\"volume\":1180345.4121488596,\"close_time\":1512993538146,\"vwap\":0.20157161189232625,\"ema1\":0.19586891388138306,\"sma1\":0.20230224074074066,\"sma2\":0.1947621666666666,\"rsi_avg_gain\":0.0013946276784761857,\"rsi_avg_loss\":0.0009971485855671306,\"rsi\":58},{\"period_id\":\"120m210136\",\"size\":\"120m\",\"time\":1512979200000,\"open\":0.19841,\"high\":0.202,\"low\":0.19696,\"close\":0.2012,\"volume\":1455140.9476323111,\"close_time\":1512986398978,\"vwap\":0.20018145142573673,\"ema1\":0.19551504587320256,\"sma1\":0.20237622222222212,\"sma2\":0.1947051666666666,\"rsi_avg_gain\":0.0015019067306666614,\"rsi_avg_loss\":0.0010584677075338347,\"rsi\":59},{\"period_id\":\"120m210135\",\"size\":\"120m\",\"time\":1512972000000,\"open\":0.1955,\"high\":0.199,\"low\":0.19447,\"close\":0.19841,\"volume\":600052.8410154001,\"close_time\":1512978995397,\"vwap\":0.1973188419500954,\"ema1\":0.19512298007135448,\"sma1\":0.20247418518518506,\"sma2\":0.1947016666666666,\"rsi_avg_gain\":0.0014028226330256362,\"rsi_avg_loss\":0.0011398883004210528,\"rsi\":55},{\"period_id\":\"120m210134\",\"size\":\"120m\",\"time\":1512964800000,\"open\":0.19194,\"high\":0.19676,\"low\":0.19102,\"close\":0.19601,\"volume\":539611.00519656,\"close_time\":1512971904794,\"vwap\":0.19356761355999635,\"ema1\":0.1948962890417927,\"sma1\":0.2025927037037036,\"sma2\":0.1948064999999999,\"rsi_avg_gain\":0.001326116681719915,\"rsi_avg_loss\":0.0012275720158380567,\"rsi\":52},{\"period_id\":\"120m210133\",\"size\":\"120m\",\"time\":1512957600000,\"open\":0.1897,\"high\":0.19214,\"low\":0.1895,\"close\":0.19205,\"volume\":441306.56720423984,\"close_time\":1512964362686,\"vwap\":0.191010008528686,\"ema1\":0.19481948138950256,\"sma1\":0.20278214814814804,\"sma2\":0.19496699999999995,\"rsi_avg_gain\":0.0011235102726214474,\"rsi_avg_loss\":0.0013220006324409842,\"rsi\":46},{\"period_id\":\"120m210132\",\"size\":\"120m\",\"time\":1512950400000,\"open\":0.18952,\"high\":0.19378,\"low\":0.18952,\"close\":0.18971,\"volume\":431192.4742363398,\"close_time\":1512957565944,\"vwap\":0.19105850382613795,\"ema1\":0.19501048010601998,\"sma1\":0.2029786296296295,\"sma2\":0.19519916666666662,\"rsi_avg_gain\":0.0010299341397461733,\"rsi_avg_loss\":0.0014236929887825984,\"rsi\":42},{\"period_id\":\"120m210131\",\"size\":\"120m\",\"time\":1512943200000,\"open\":0.19185,\"high\":0.19429,\"low\":0.18951,\"close\":0.18952,\"volume\":784356.8331573796,\"close_time\":1512950356364,\"vwap\":0.19122596442797474,\"ema1\":0.1953760304581593,\"sma1\":0.20314594444444437,\"sma2\":0.1954546666666666,\"rsi_avg_gain\":0.001094544458188187,\"rsi_avg_loss\":0.0015332078340735676,\"rsi\":42},{\"period_id\":\"120m210130\",\"size\":\"120m\",\"time\":1512936000000,\"open\":0.1948,\"high\":0.1949,\"low\":0.19,\"close\":0.19004,\"volume\":1233056.1801976203,\"close_time\":1512943196487,\"vwap\":0.1905768868632836,\"ema1\":0.19577989462768752,\"sma1\":0.20328575925925915,\"sma2\":0.19568766666666662,\"rsi_avg_gain\":0.0011787401857411247,\"rsi_avg_loss\":0.0016111468982330734,\"rsi\":42},{\"period_id\":\"120m210129\",\"size\":\"120m\",\"time\":1512928800000,\"open\":0.1935,\"high\":0.19676,\"low\":0.19301,\"close\":0.19439,\"volume\":387426.0634739798,\"close_time\":1512935995196,\"vwap\":0.19410264135278224,\"ema1\":0.196175749429597,\"sma1\":0.20342687037037027,\"sma2\":0.19583466666666666,\"rsi_avg_gain\":0.0012694125077212111,\"rsi_avg_loss\":0.0014004658904048465,\"rsi\":48},{\"period_id\":\"120m210128\",\"size\":\"120m\",\"time\":1512921600000,\"open\":0.1925,\"high\":0.19867,\"low\":0.192,\"close\":0.1935,\"volume\":746355.7882153098,\"close_time\":1512928784644,\"vwap\":0.1935327802059641,\"ema1\":0.19629890456267265,\"sma1\":0.2035315925925925,\"sma2\":0.19602466666666665,\"rsi_avg_gain\":0.001298598085238227,\"rsi_avg_loss\":0.0015081940358206037,\"rsi\":46},{\"period_id\":\"120m210127\",\"size\":\"120m\",\"time\":1512914400000,\"open\":0.19889,\"high\":0.2,\"low\":0.192,\"close\":0.1925,\"volume\":1304227.7168578205,\"close_time\":1512921590443,\"vwap\":0.1947145071822744,\"ema1\":0.19649193246354663,\"sma1\":0.20368807407407397,\"sma2\":0.19624249999999996,\"rsi_avg_gain\":0.0013215671687180906,\"rsi_avg_loss\":0.0016242089616529576,\"rsi\":45},{\"period_id\":\"120m210126\",\"size\":\"120m\",\"time\":1512907200000,\"open\":0.19353,\"high\":0.19949,\"low\":0.1917,\"close\":0.19868,\"volume\":650525.0708087999,\"close_time\":1512914393147,\"vwap\":0.1970334882897406,\"ema1\":0.19676723815068778,\"sma1\":0.203757611111111,\"sma2\":0.19633949999999994,\"rsi_avg_gain\":0.0014232261816964052,\"rsi_avg_loss\":0.0012737634971647243,\"rsi\":53},{\"period_id\":\"120m210125\",\"size\":\"120m\",\"time\":1512900000000,\"open\":0.19333,\"high\":0.19902,\"low\":0.19,\"close\":0.19385,\"volume\":978565.5069178501,\"close_time\":1512907196740,\"vwap\":0.1924809612656455,\"ema1\":0.19663532354039037,\"sma1\":0.20378575925925915,\"sma2\":0.19652599999999995,\"rsi_avg_gain\":0.0011611666572115132,\"rsi_avg_loss\":0.0013717453046389338,\"rsi\":46},{\"period_id\":\"120m210124\",\"size\":\"120m\",\"time\":1512892800000,\"open\":0.19131,\"high\":0.194,\"low\":0.19,\"close\":0.19341,\"volume\":531661.3797847299,\"close_time\":1512899982936,\"vwap\":0.19266982538072236,\"ema1\":0.19682741481903798,\"sma1\":0.20383964814814806,\"sma2\":0.19673416666666668,\"rsi_avg_gain\":0.0012166410154585531,\"rsi_avg_loss\":0.001477264174226544,\"rsi\":45},{\"period_id\":\"120m210122\",\"size\":\"120m\",\"time\":1512878400000,\"open\":0.191,\"high\":0.19313,\"low\":0.1895,\"close\":0.19301,\"volume\":391477.15581255,\"close_time\":1512882237255,\"vwap\":0.19140041690580767,\"ema1\":0.19706309859966128,\"sma1\":0.2039214999999999,\"sma2\":0.19693149999999998,\"rsi_avg_gain\":0.00127945955510921,\"rsi_avg_loss\":0.0015908998799362784,\"rsi\":45},{\"period_id\":\"120m210121\",\"size\":\"120m\",\"time\":1512871200000,\"open\":0.195,\"high\":0.19843,\"low\":0.191,\"close\":0.191,\"volume\":822354.6339335999,\"close_time\":1512878389037,\"vwap\":0.19212753631394797,\"ema1\":0.19734262264101723,\"sma1\":0.20394529629629618,\"sma2\":0.19716733333333333,\"rsi_avg_gain\":0.0012232641362714583,\"rsi_avg_loss\":0.0017132767937775306,\"rsi\":42},{\"period_id\":\"120m210120\",\"size\":\"120m\",\"time\":1512864000000,\"open\":0.19926,\"high\":0.19928,\"low\":0.195,\"close\":0.195,\"volume\":575411.43770943,\"close_time\":1512871187661,\"vwap\":0.19800999796064234,\"ema1\":0.19778004489212186,\"sma1\":0.20398992592592582,\"sma2\":0.1973611666666667,\"rsi_avg_gain\":0.001317361377523109,\"rsi_avg_loss\":0.0015373750086834941,\"rsi\":46},{\"period_id\":\"120m210119\",\"size\":\"120m\",\"time\":1512856800000,\"open\":0.2,\"high\":0.20254,\"low\":0.19733,\"close\":0.19929,\"volume\":680314.7565415404,\"close_time\":1512863991018,\"vwap\":0.19909207125861658,\"ema1\":0.1979717721260613,\"sma1\":0.20402974074074068,\"sma2\":0.1975107666666667,\"rsi_avg_gain\":0.0014186968681018097,\"rsi_avg_loss\":0.0013256346247360717,\"rsi\":52},{\"period_id\":\"120m210118\",\"size\":\"120m\",\"time\":1512849600000,\"open\":0.19851,\"high\":0.2,\"low\":0.1953,\"close\":0.2,\"volume\":352961.11425362,\"close_time\":1512856793108,\"vwap\":0.19742833039557756,\"ema1\":0.19788085985889312,\"sma1\":0.2040714074074073,\"sma2\":0.19762693333333337,\"rsi_avg_gain\":0.0015278273964173337,\"rsi_avg_loss\":0.001372991134331153,\"rsi\":53},{\"period_id\":\"120m210117\",\"size\":\"120m\",\"time\":1512842400000,\"open\":0.19541,\"high\":0.19867,\"low\":0.19486,\"close\":0.19799,\"volume\":926232.5305575604,\"close_time\":1512849579268,\"vwap\":0.19693199720664753,\"ema1\":0.19773471226295472,\"sma1\":0.20412631481481475,\"sma2\":0.19777710000000004,\"rsi_avg_gain\":0.001490737196141743,\"rsi_avg_loss\":0.001478605836972011,\"rsi\":50},{\"period_id\":\"120m210116\",\"size\":\"120m\",\"time\":1512835200000,\"open\":0.2025,\"high\":0.2027,\"low\":0.19541,\"close\":0.19541,\"volume\":641413.0257922799,\"close_time\":1512842398360,\"vwap\":0.19773340732983705,\"ema1\":0.19771710621212402,\"sma1\":0.20409103703703693,\"sma2\":0.1979792666666667,\"rsi_avg_gain\":0.001406947749691108,\"rsi_avg_loss\":0.0015923447475083194,\"rsi\":47},{\"period_id\":\"120m210115\",\"size\":\"120m\",\"time\":1512828000000,\"open\":0.2029,\"high\":0.203,\"low\":0.19926,\"close\":0.2025,\"volume\":759955.0663505401,\"close_time\":1512835181045,\"vwap\":0.2023646201020061,\"ema1\":0.19787621698537394,\"sma1\":0.20402622222222214,\"sma2\":0.19804026666666671,\"rsi_avg_gain\":0.001515174499667347,\"rsi_avg_loss\":0.001169448189624343,\"rsi\":56},{\"period_id\":\"120m210114\",\"size\":\"120m\",\"time\":1512820800000,\"open\":0.19915,\"high\":0.203,\"low\":0.1964,\"close\":0.20288,\"volume\":1060196.08788046,\"close_time\":1512827997733,\"vwap\":0.20275005470729512,\"ema1\":0.19755733539815834,\"sma1\":0.2040447407407406,\"sma2\":0.19809226666666674,\"rsi_avg_gain\":0.0016317263842571428,\"rsi_avg_loss\":0.0012301749734416009,\"rsi\":57},{\"period_id\":\"120m210113\",\"size\":\"120m\",\"time\":1512813600000,\"open\":0.19899,\"high\":0.2,\"low\":0.196,\"close\":0.199,\"volume\":1697599.1494401302,\"close_time\":1512820796071,\"vwap\":0.19911348201668316,\"ema1\":0.19719025508078994,\"sma1\":0.20412427777777767,\"sma2\":0.1982202666666667,\"rsi_avg_gain\":0.001458782259969231,\"rsi_avg_loss\":0.0013248038175524934,\"rsi\":52},{\"period_id\":\"120m210112\",\"size\":\"120m\",\"time\":1512806400000,\"open\":0.2015,\"high\":0.20181,\"low\":0.196,\"close\":0.198,\"volume\":1049080.849649,\"close_time\":1512813598514,\"vwap\":0.19740452861219368,\"ema1\":0.19706544508636165,\"sma1\":0.20420474074074063,\"sma2\":0.1983702666666667,\"rsi_avg_gain\":0.0014940732030437874,\"rsi_avg_loss\":0.0014267118035180698,\"rsi\":51},{\"period_id\":\"120m210111\",\"size\":\"120m\",\"time\":1512799200000,\"open\":0.201,\"high\":0.203,\"low\":0.19911,\"close\":0.19931,\"volume\":611834.19321072,\"close_time\":1512806227310,\"vwap\":0.2007723450871348,\"ema1\":0.1970009930233521,\"sma1\":0.20425103703703693,\"sma2\":0.1985104333333334,\"rsi_avg_gain\":0.0016090019109702325,\"rsi_avg_loss\":0.001435689634557923,\"rsi\":53},{\"period_id\":\"120m210110\",\"size\":\"120m\",\"time\":1512792000000,\"open\":0.20095,\"high\":0.20189,\"low\":0.19933,\"close\":0.2018,\"volume\":327272.42923343997,\"close_time\":1512799199401,\"vwap\":0.20015581988000616,\"ema1\":0.19684175116289362,\"sma1\":0.20433437037037028,\"sma2\":0.19856810000000003,\"rsi_avg_gain\":0.0017327712887371734,\"rsi_avg_loss\":0.001354588837216223,\"rsi\":56},{\"period_id\":\"120m210109\",\"size\":\"120m\",\"time\":1512784800000,\"open\":0.199,\"high\":0.20181,\"low\":0.199,\"close\":0.20148,\"volume\":97245.56367083998,\"close_time\":1512791938779,\"vwap\":0.1996467788336503,\"ema1\":0.1964998029672311,\"sma1\":0.20441020370370364,\"sma2\":0.19864193333333333,\"rsi_avg_gain\":0.0018414460032554164,\"rsi_avg_loss\":0.0014587879785405479,\"rsi\":56},{\"period_id\":\"120m210108\",\"size\":\"120m\",\"time\":1512777600000,\"open\":0.2,\"high\":0.20181,\"low\":0.19801,\"close\":0.19981,\"volume\":403268.47447363014,\"close_time\":1512784528415,\"vwap\":0.19942726003658484,\"ema1\":0.1961563411029022,\"sma1\":0.2044859444444444,\"sma2\":0.19872843333333334,\"rsi_avg_gain\":0.0018546341573519864,\"rsi_avg_loss\":0.0015710024384282821,\"rsi\":54},{\"period_id\":\"120m210107\",\"size\":\"120m\",\"time\":1512770400000,\"open\":0.19995,\"high\":0.20194,\"low\":0.19811,\"close\":0.2,\"volume\":1030570.62235018,\"close_time\":1512777589000,\"vwap\":0.1998171370255149,\"ema1\":0.19590436462724028,\"sma1\":0.20456057407407402,\"sma2\":0.19878193333333335,\"rsi_avg_gain\":0.001997298323302139,\"rsi_avg_loss\":0.001677233395230456,\"rsi\":54},{\"period_id\":\"120m210106\",\"size\":\"120m\",\"time\":1512763200000,\"open\":0.20056,\"high\":0.2029,\"low\":0.19882,\"close\":0.20195,\"volume\":687992.28091057,\"close_time\":1512770355398,\"vwap\":0.20037761150868946,\"ema1\":0.1956219070153258,\"sma1\":0.2046263148148148,\"sma2\":0.19878443333333337,\"rsi_avg_gain\":0.002150936655863842,\"rsi_avg_loss\":0.0016562513487097233,\"rsi\":56},{\"period_id\":\"120m210105\",\"size\":\"120m\",\"time\":1512756000000,\"open\":0.2,\"high\":0.204,\"low\":0.199,\"close\":0.20292,\"volume\":1842953.0237013297,\"close_time\":1512763170809,\"vwap\":0.2015506822506035,\"ema1\":0.19518548680948622,\"sma1\":0.20477048148148147,\"sma2\":0.1988857666666667,\"rsi_avg_gain\":0.002316393321699522,\"rsi_avg_loss\":0.0017090399139950867,\"rsi\":58},{\"period_id\":\"120m210104\",\"size\":\"120m\",\"time\":1512748800000,\"open\":0.196,\"high\":0.20086,\"low\":0.196,\"close\":0.2,\"volume\":1102251.6171724405,\"close_time\":1512755976994,\"vwap\":0.19935254192788907,\"ema1\":0.19465207210669216,\"sma1\":0.20497548148148148,\"sma2\":0.19904876666666674,\"rsi_avg_gain\":0.0022699620387533334,\"rsi_avg_loss\":0.0018405045227639395,\"rsi\":55},{\"period_id\":\"120m210103\",\"size\":\"120m\",\"time\":1512741600000,\"open\":0.20001,\"high\":0.20182,\"low\":0.19001,\"close\":0.196,\"volume\":1809689.6471748506,\"close_time\":1512748783413,\"vwap\":0.19767543111722255,\"ema1\":0.1942832494933606,\"sma1\":0.2052364074074074,\"sma2\":0.1992737666666667,\"rsi_avg_gain\":0.0021368821955805124,\"rsi_avg_loss\":0.001982081793745781,\"rsi\":52},{\"period_id\":\"120m210102\",\"size\":\"120m\",\"time\":1512734400000,\"open\":0.19362,\"high\":0.20199,\"low\":0.193,\"close\":0.20182,\"volume\":1979923.9914177093,\"close_time\":1512741577584,\"vwap\":0.2007628524173529,\"ema1\":0.1941648529066958,\"sma1\":0.20548446296296297,\"sma2\":0.19942676666666675,\"rsi_avg_gain\":0.0023012577490867056,\"rsi_avg_loss\":0.0016868573163416108,\"rsi\":58},{\"period_id\":\"120m210101\",\"size\":\"120m\",\"time\":1512727200000,\"open\":0.1931,\"high\":0.19999,\"low\":0.19,\"close\":0.194,\"volume\":1792191.8218561397,\"close_time\":1512734388888,\"vwap\":0.19658077707394436,\"ema1\":0.19363691172784725,\"sma1\":0.2057149259259259,\"sma2\":0.1996746,\"rsi_avg_gain\":0.0018767391144010677,\"rsi_avg_loss\":0.0018166155714448118,\"rsi\":51},{\"period_id\":\"120m210100\",\"size\":\"120m\",\"time\":1512720000000,\"open\":0.19009,\"high\":0.2,\"low\":0.18955,\"close\":0.19301,\"volume\":1800915.4518014311,\"close_time\":1512727186604,\"vwap\":0.19289138387664362,\"ema1\":0.19361187115735395,\"sma1\":0.20594529629629627,\"sma2\":0.1999061,\"rsi_avg_gain\":0.0019449498155088409,\"rsi_avg_loss\":0.0019563552307867204,\"rsi\":50},{\"period_id\":\"120m210099\",\"size\":\"120m\",\"time\":1512712800000,\"open\":0.191,\"high\":0.19649,\"low\":0.18501,\"close\":0.19128,\"volume\":1533508.5199854106,\"close_time\":1512719994835,\"vwap\":0.18777847647774087,\"ema1\":0.19365337951303355,\"sma1\":0.2061701111111111,\"sma2\":0.20016993333333336,\"rsi_avg_gain\":0.00196148441670183,\"rsi_avg_loss\":0.0021068440946933912,\"rsi\":48},{\"period_id\":\"120m210098\",\"size\":\"120m\",\"time\":1512705600000,\"open\":0.203,\"high\":0.20687,\"low\":0.19021,\"close\":0.19131,\"volume\":824094.35925791,\"close_time\":1512712790789,\"vwap\":0.19320834384925575,\"ema1\":0.19381706085876,\"sma1\":0.20631177777777776,\"sma2\":0.20040060000000004,\"rsi_avg_gain\":0.002112367833371202,\"rsi_avg_loss\":0.002266601332746729,\"rsi\":48},{\"period_id\":\"120m210097\",\"size\":\"120m\",\"time\":1512698400000,\"open\":0.20457,\"high\":0.208,\"low\":0.19155,\"close\":0.205,\"volume\":1802558.6234344696,\"close_time\":1512705589882,\"vwap\":0.2043506036705596,\"ema1\":0.19398996160763998,\"sma1\":0.20649585185185182,\"sma2\":0.20039776666666667,\"rsi_avg_gain\":0.0022748576667074483,\"rsi_avg_loss\":0.0013878783583426326,\"rsi\":62},{\"period_id\":\"120m210096\",\"size\":\"120m\",\"time\":1512691200000,\"open\":0.18264,\"high\":0.21,\"low\":0.18,\"close\":0.20457,\"volume\":5069064.234255623,\"close_time\":1512698364848,\"vwap\":0.20829111886575577,\"ema1\":0.19323064861506342,\"sma1\":0.2067273333333333,\"sma2\":0.20039026666666665,\"rsi_avg_gain\":0.0024167697949157145,\"rsi_avg_loss\":0.0014946382320612968,\"rsi\":62},{\"period_id\":\"120m210095\",\"size\":\"120m\",\"time\":1512684000000,\"open\":0.18631,\"high\":0.18699,\"low\":0.18,\"close\":0.182,\"volume\":2887392.7136900085,\"close_time\":1512691099048,\"vwap\":0.18106769449266405,\"ema1\":0.19244862438161953,\"sma1\":0.20717187037037035,\"sma2\":0.20079026666666666,\"rsi_avg_gain\":0.0008665213176015379,\"rsi_avg_loss\":0.0016096104037583196,\"rsi\":35},{\"period_id\":\"120m210094\",\"size\":\"120m\",\"time\":1512676800000,\"open\":0.18049,\"high\":0.186,\"low\":0.18007,\"close\":0.186,\"volume\":1397581.4726467493,\"close_time\":1512683999964,\"vwap\":0.18432671925804,\"ema1\":0.1931692191665588,\"sma1\":0.2075561296296296,\"sma2\":0.20114843333333327,\"rsi_avg_gain\":0.000933176803570887,\"rsi_avg_loss\":0.0014257342809704976,\"rsi\":40},{\"period_id\":\"120m210093\",\"size\":\"120m\",\"time\":1512669600000,\"open\":0.182,\"high\":0.18889,\"low\":0.18004,\"close\":0.181,\"volume\":1519254.1145062689,\"close_time\":1512676772537,\"vwap\":0.18106900211098942,\"ema1\":0.19366364807459735,\"sma1\":0.2078807592592592,\"sma2\":0.20157693333333332,\"rsi_avg_gain\":0.0006203442499994165,\"rsi_avg_loss\":0.001535406148737459,\"rsi\":29},{\"period_id\":\"120m210092\",\"size\":\"120m\",\"time\":1512662400000,\"open\":0.18434,\"high\":0.18959,\"low\":0.18,\"close\":0.182,\"volume\":1880239.514088659,\"close_time\":1512669591339,\"vwap\":0.18248233214607992,\"ema1\":0.19453700311422475,\"sma1\":0.208233537037037,\"sma2\":0.20199393333333326,\"rsi_avg_gain\":0.0006680630384609101,\"rsi_avg_loss\":0.0015765912371018787,\"rsi\":30},{\"period_id\":\"120m210091\",\"size\":\"120m\",\"time\":1512655200000,\"open\":0.1885,\"high\":0.18995,\"low\":0.18301,\"close\":0.187,\"volume\":1319921.42306792,\"close_time\":1512662369202,\"vwap\":0.18675837362903966,\"ema1\":0.19540162401865405,\"sma1\":0.20853307407407404,\"sma2\":0.20230944066666665,\"rsi_avg_gain\":0.0007194525029579033,\"rsi_avg_loss\":0.0013132521014943305,\"rsi\":35},{\"period_id\":\"120m210090\",\"size\":\"120m\",\"time\":1512648000000,\"open\":0.1875,\"high\":0.19,\"low\":0.1875,\"close\":0.1885,\"volume\":1411372.0180265396,\"close_time\":1512655194555,\"vwap\":0.1888906573822493,\"ema1\":0.19598104636476812,\"sma1\":0.2088013148148148,\"sma2\":0.2026461073333333,\"rsi_avg_gain\":0.0007747950031854342,\"rsi_avg_loss\":0.0012988868785323558,\"rsi\":37},{\"period_id\":\"120m210089\",\"size\":\"120m\",\"time\":1512640800000,\"open\":0.18521,\"high\":0.18979,\"low\":0.181,\"close\":0.1875,\"volume\":2092077.3675429292,\"close_time\":1512647973104,\"vwap\":0.18679275057079833,\"ema1\":0.1964969805968211,\"sma1\":0.20908057407407407,\"sma2\":0.20298944066666663,\"rsi_avg_gain\":0.000757471541892006,\"rsi_avg_loss\":0.0013988012538040755,\"rsi\":35},{\"period_id\":\"120m210088\",\"size\":\"120m\",\"time\":1512633600000,\"open\":0.1872,\"high\":0.18979,\"low\":0.18513,\"close\":0.18513,\"volume\":1129966.4392239994,\"close_time\":1512640768505,\"vwap\":0.18701703653126578,\"ema1\":0.19711746201729152,\"sma1\":0.20934177777777777,\"sma2\":0.20340394066666662,\"rsi_avg_gain\":0.0006334308912683133,\"rsi_avg_loss\":0.0015064013502505429,\"rsi\":30},{\"period_id\":\"120m210087\",\"size\":\"120m\",\"time\":1512626400000,\"open\":0.19225,\"high\":0.19231,\"low\":0.1852,\"close\":0.18601,\"volume\":1170682.04228123,\"close_time\":1512633583210,\"vwap\":0.18723058989079727,\"ema1\":0.19794418353572543,\"sma1\":0.20957705555555553,\"sma2\":0.20378977399999998,\"rsi_avg_gain\":0.0006821563444427989,\"rsi_avg_loss\":0.001554586069500583,\"rsi\":30},{\"period_id\":\"120m210086\",\"size\":\"120m\",\"time\":1512619200000,\"open\":0.1855,\"high\":0.19288,\"low\":0.18373,\"close\":0.19227,\"volume\":312959.47167122003,\"close_time\":1512626260601,\"vwap\":0.19102829680604805,\"ema1\":0.1987672306761203,\"sma1\":0.20980964814814815,\"sma2\":0.2040286073333333,\"rsi_avg_gain\":0.0007346299093999373,\"rsi_avg_loss\":0.0011926311517698597,\"rsi\":38},{\"period_id\":\"120m210085\",\"size\":\"120m\",\"time\":1512612000000,\"open\":0.18694,\"high\":0.19286,\"low\":0.18393,\"close\":0.18643,\"volume\":1313166.93189536,\"close_time\":1512619169443,\"vwap\":0.1857188269241729,\"ema1\":0.19921531555033548,\"sma1\":0.21004325925925926,\"sma2\":0.20440660733333332,\"rsi_avg_gain\":0.0003419091331999337,\"rsi_avg_loss\":0.0012843720095983104,\"rsi\":21},{\"period_id\":\"120m210084\",\"size\":\"120m\",\"time\":1512604800000,\"open\":0.18902,\"high\":0.1927,\"low\":0.1865,\"close\":0.1865,\"volume\":1847827.2706492287,\"close_time\":1512611942664,\"vwap\":0.18821533238624893,\"ema1\":0.2000970614503586,\"sma1\":0.21020344444444447,\"sma2\":0.20478094066666663,\"rsi_avg_gain\":0.00036820983575377476,\"rsi_avg_loss\":0.0013777852411058738,\"rsi\":21},{\"period_id\":\"120m210083\",\"size\":\"120m\",\"time\":1512597600000,\"open\":0.19498,\"high\":0.196,\"low\":0.189,\"close\":0.18902,\"volume\":2480005.0900642066,\"close_time\":1512604794901,\"vwap\":0.19043659377490005,\"ema1\":0.2010347898262454,\"sma1\":0.21030066666666666,\"sma2\":0.2051734406666666,\"rsi_avg_gain\":0.00039653366927329593,\"rsi_avg_loss\":0.0012899225673447877,\"rsi\":24},{\"period_id\":\"120m210082\",\"size\":\"120m\",\"time\":1512590400000,\"open\":0.19679,\"high\":0.19775,\"low\":0.192,\"close\":0.195,\"volume\":1901877.715855151,\"close_time\":1512597582829,\"vwap\":0.19411458476977644,\"ema1\":0.20186339602115888,\"sma1\":0.21038816666666663,\"sma2\":0.20546277399999993,\"rsi_avg_gain\":0.00042703625921739564,\"rsi_avg_loss\":0.0009291473802174625,\"rsi\":31},{\"period_id\":\"120m210081\",\"size\":\"120m\",\"time\":1512583200000,\"open\":0.1985,\"high\":0.20003,\"low\":0.19615,\"close\":0.19765,\"volume\":1159402.1994188598,\"close_time\":1512590389470,\"vwap\":0.197198956384215,\"ema1\":0.20233673367779054,\"sma1\":0.2104573333333333,\"sma2\":0.20566194066666663,\"rsi_avg_gain\":0.0004598852022341184,\"rsi_avg_loss\":0.000796774101772653,\"rsi\":37},{\"period_id\":\"120m210080\",\"size\":\"120m\",\"time\":1512576000000,\"open\":0.1999,\"high\":0.20198,\"low\":0.1978,\"close\":0.1985,\"volume\":1149012.43157479,\"close_time\":1512583187057,\"vwap\":0.20031416470337088,\"ema1\":0.20265995669005196,\"sma1\":0.2104941851851852,\"sma2\":0.20582710733333334,\"rsi_avg_gain\":0.0004952609870213583,\"rsi_avg_loss\":0.0007926798019090096,\"rsi\":38},{\"period_id\":\"120m210079\",\"size\":\"120m\",\"time\":1512568800000,\"open\":0.197,\"high\":0.19997,\"low\":0.196,\"close\":0.1999,\"volume\":1754763.5733593802,\"close_time\":1512575983189,\"vwap\":0.1985154358899688,\"ema1\":0.20294685025488313,\"sma1\":0.21054724074074074,\"sma2\":0.205974774,\"rsi_avg_gain\":0.0005333579860230012,\"rsi_avg_loss\":0.0007459628635943192,\"rsi\":42},{\"period_id\":\"120m210078\",\"size\":\"120m\",\"time\":1512561600000,\"open\":0.19867,\"high\":0.19869,\"low\":0.196,\"close\":0.19797,\"volume\":1356577.2933801496,\"close_time\":1512568782682,\"vwap\":0.196946345785913,\"ema1\":0.20315697785866818,\"sma1\":0.21060566666666666,\"sma2\":0.2061669406666667,\"rsi_avg_gain\":0.00042592398494784847,\"rsi_avg_loss\":0.0008033446223323438,\"rsi\":35},{\"period_id\":\"120m210077\",\"size\":\"120m\",\"time\":1512554400000,\"open\":0.19707,\"high\":0.2,\"low\":0.196,\"close\":0.19869,\"volume\":2110134.6971577206,\"close_time\":1512561542485,\"vwap\":0.19799730472349475,\"ema1\":0.20351470046961082,\"sma1\":0.21065168518518515,\"sma2\":0.206231774,\"rsi_avg_gain\":0.00045868736840537527,\"rsi_avg_loss\":0.0008097557471271396,\"rsi\":36},{\"period_id\":\"120m210076\",\"size\":\"120m\",\"time\":1512547200000,\"open\":0.19606,\"high\":0.20158,\"low\":0.1953,\"close\":0.19705,\"volume\":2170755.0190411303,\"close_time\":1512554398487,\"vwap\":0.1984273636994466,\"ema1\":0.20384743843303224,\"sma1\":0.21068798148148143,\"sma2\":0.20631527400000002,\"rsi_avg_gain\":0.0003678171659750193,\"rsi_avg_loss\":0.0008720446507523041,\"rsi\":30},{\"period_id\":\"120m210075\",\"size\":\"120m\",\"time\":1512540000000,\"open\":0.19901,\"high\":0.20293,\"low\":0.195,\"close\":0.19778,\"volume\":2231629.5649462496,\"close_time\":1512547191564,\"vwap\":0.19657101330362656,\"ema1\":0.20431622729048274,\"sma1\":0.21071270370370368,\"sma2\":0.2063039406666667,\"rsi_avg_gain\":0.0003961107941269439,\"rsi_avg_loss\":0.0008829711623486346,\"rsi\":31},{\"period_id\":\"120m210074\",\"size\":\"120m\",\"time\":1512532800000,\"open\":0.201,\"high\":0.20466,\"low\":0.1981,\"close\":0.1982,\"volume\":1667986.7979470093,\"close_time\":1512539956524,\"vwap\":0.1993790322478508,\"ema1\":0.2047670015863781,\"sma1\":0.2107149259259259,\"sma2\":0.20629227400000003,\"rsi_avg_gain\":0.0004265808552136319,\"rsi_avg_loss\":0.0009185843286831468,\"rsi\":32},{\"period_id\":\"120m210073\",\"size\":\"120m\",\"time\":1512525600000,\"open\":0.20164,\"high\":0.204,\"low\":0.2,\"close\":0.2023,\"volume\":1055209.2105613104,\"close_time\":1512532718975,\"vwap\":0.20024076559324883,\"ema1\":0.2052198982475076,\"sma1\":0.21071520370370364,\"sma2\":0.2062139406666667,\"rsi_avg_gain\":0.0004593947671531421,\"rsi_avg_loss\":0.0006738600462741566,\"rsi\":41},{\"period_id\":\"120m210072\",\"size\":\"120m\",\"time\":1512518400000,\"open\":0.20532,\"high\":0.20635,\"low\":0.20011,\"close\":0.20168,\"volume\":1645813.257506141,\"close_time\":1512525583549,\"vwap\":0.20191234862379132,\"ema1\":0.20542127054043918,\"sma1\":0.210693074074074,\"sma2\":0.2061879406666667,\"rsi_avg_gain\":0.00044704051847261386,\"rsi_avg_loss\":0.0007256954344490918,\"rsi\":38},{\"period_id\":\"120m210071\",\"size\":\"120m\",\"time\":1512511200000,\"open\":0.20402,\"high\":0.2055,\"low\":0.203,\"close\":0.20364,\"volume\":2130364.2691354603,\"close_time\":1512518349788,\"vwap\":0.20478333711310023,\"ema1\":0.2056792891984005,\"sma1\":0.2106879814814814,\"sma2\":0.2061706073333334,\"rsi_avg_gain\":0.00048142825066281494,\"rsi_avg_loss\":0.0006307489294067151,\"rsi\":43},{\"period_id\":\"120m210070\",\"size\":\"120m\",\"time\":1512504000000,\"open\":0.20498,\"high\":0.20535,\"low\":0.203,\"close\":0.20485,\"volume\":1083083.8736538694,\"close_time\":1512511198657,\"vwap\":0.20452347468187307,\"ema1\":0.20581992983277295,\"sma1\":0.2106761296296296,\"sma2\":0.20612977400000004,\"rsi_avg_gain\":0.000518461193021493,\"rsi_avg_loss\":0.0005861911547456919,\"rsi\":47},{\"period_id\":\"120m210069\",\"size\":\"120m\",\"time\":1512496800000,\"open\":0.204,\"high\":0.20538,\"low\":0.203,\"close\":0.20402,\"volume\":860057.4203535096,\"close_time\":1512503859014,\"vwap\":0.20423308017703287,\"ema1\":0.205886821545378,\"sma1\":0.21067344444444439,\"sma2\":0.20612777400000007,\"rsi_avg_gain\":0.0004944966694077618,\"rsi_avg_loss\":0.000631282782033822,\"rsi\":44},{\"period_id\":\"120m210068\",\"size\":\"120m\",\"time\":1512489600000,\"open\":0.20488,\"high\":0.2055,\"low\":0.203,\"close\":0.20321,\"volume\":1296081.3617274298,\"close_time\":1512496789885,\"vwap\":0.2041266062187171,\"ema1\":0.20601556785885233,\"sma1\":0.21067437037037032,\"sma2\":0.20602427400000006,\"rsi_avg_gain\":0.0004702271824391278,\"rsi_avg_loss\":0.0006798429960364236,\"rsi\":41},{\"period_id\":\"120m210067\",\"size\":\"120m\",\"time\":1512482400000,\"open\":0.20556,\"high\":0.20556,\"low\":0.2035,\"close\":0.2049,\"volume\":1402909.4253659002,\"close_time\":1512489590218,\"vwap\":0.20416959160087977,\"ema1\":0.20620905529739386,\"sma1\":0.21067501851851847,\"sma2\":0.20583277400000005,\"rsi_avg_gain\":0.0005063985041652146,\"rsi_avg_loss\":0.0006021386111161488,\"rsi\":46},{\"period_id\":\"120m210066\",\"size\":\"120m\",\"time\":1512475200000,\"open\":0.2045,\"high\":0.20646,\"low\":0.204,\"close\":0.20557,\"volume\":905663.6345902705,\"close_time\":1512482395799,\"vwap\":0.20493123019403797,\"ema1\":0.2062993349730762,\"sma1\":0.21066798148148144,\"sma2\":0.20567327400000004,\"rsi_avg_gain\":0.0005453522352548466,\"rsi_avg_loss\":0.0005969185042789293,\"rsi\":48},{\"period_id\":\"120m210065\",\"size\":\"120m\",\"time\":1512468000000,\"open\":0.20576,\"high\":0.20643,\"low\":0.2043,\"close\":0.2045,\"volume\":1058386.8217710692,\"close_time\":1512475196068,\"vwap\":0.20488739481013665,\"ema1\":0.20634963393673664,\"sma1\":0.21066835185185184,\"sma2\":0.20562027400000008,\"rsi_avg_gain\":0.0005049947148898336,\"rsi_avg_loss\":0.0006428353123003853,\"rsi\":44},{\"period_id\":\"120m210064\",\"size\":\"120m\",\"time\":1512460800000,\"open\":0.2057,\"high\":0.2082,\"low\":0.205,\"close\":0.20504,\"volume\":1827906.7326850519,\"close_time\":1512467894122,\"vwap\":0.20614735004248844,\"ema1\":0.2064771948978909,\"sma1\":0.2106489074074074,\"sma2\":0.20565610733333337,\"rsi_avg_gain\":0.0005438404621890515,\"rsi_avg_loss\":0.0006507457209388755,\"rsi\":46},{\"period_id\":\"120m210063\",\"size\":\"120m\",\"time\":1512453600000,\"open\":0.20508,\"high\":0.2071,\"low\":0.20415,\"close\":0.2059,\"volume\":616188.42400966,\"close_time\":1512460761594,\"vwap\":0.20526990217519664,\"ema1\":0.20657631178740063,\"sma1\":0.2106420555555555,\"sma2\":0.20565777400000004,\"rsi_avg_gain\":0.0005856743438959017,\"rsi_avg_loss\":0.0006346492379341736,\"rsi\":48},{\"period_id\":\"120m210062\",\"size\":\"120m\",\"time\":1512446400000,\"open\":0.20531,\"high\":0.20798,\"low\":0.2045,\"close\":0.20485,\"volume\":407359.59938782,\"close_time\":1512453554144,\"vwap\":0.20547636242777814,\"ema1\":0.20662295397963515,\"sma1\":0.21062381481481476,\"sma2\":0.20570827400000002,\"rsi_avg_gain\":0.0005499569857340483,\"rsi_avg_loss\":0.0006834684100829562,\"rsi\":45},{\"period_id\":\"120m210061\",\"size\":\"120m\",\"time\":1512439200000,\"open\":0.20663,\"high\":0.20663,\"low\":0.205,\"close\":0.20515,\"volume\":595110.5549349199,\"close_time\":1512446369424,\"vwap\":0.20702774631614598,\"ema1\":0.20674522666788586,\"sma1\":0.21061353703703697,\"sma2\":0.20577927400000004,\"rsi_avg_gain\":0.000592261369252052,\"rsi_avg_loss\":0.0007129659800893379,\"rsi\":45},{\"period_id\":\"120m210060\",\"size\":\"120m\",\"time\":1512432000000,\"open\":0.20764,\"high\":0.208266,\"low\":0.2062,\"close\":0.20663,\"volume\":508934.48698234,\"close_time\":1512439024419,\"vwap\":0.20774973985181025,\"ema1\":0.20685524230015384,\"sma1\":0.21060366666666663,\"sma2\":0.20583510733333338,\"rsi_avg_gain\":0.0006378199361175944,\"rsi_avg_loss\":0.0006539633631731324,\"rsi\":49},{\"period_id\":\"120m210059\",\"size\":\"120m\",\"time\":1512424800000,\"open\":0.20697,\"high\":0.208266,\"low\":0.206,\"close\":0.208266,\"volume\":918199.0655971197,\"close_time\":1512431956920,\"vwap\":0.2080659740308126,\"ema1\":0.2068707762518886,\"sma1\":0.21060120370370367,\"sma2\":0.2057148406666667,\"rsi_avg_gain\":0.0006868830081266401,\"rsi_avg_loss\":0.0005784220834172196,\"rsi\":54},{\"period_id\":\"120m210058\",\"size\":\"120m\",\"time\":1512417600000,\"open\":0.2069,\"high\":0.2075,\"low\":0.2055,\"close\":0.20697,\"volume\":632957.20665359,\"close_time\":1512424783756,\"vwap\":0.20659587178925534,\"ema1\":0.20677455392443264,\"sma1\":0.2106058333333333,\"sma2\":0.2056783406666667,\"rsi_avg_gain\":0.000640027854905611,\"rsi_avg_loss\":0.0006229160898339288,\"rsi\":51},{\"period_id\":\"120m210057\",\"size\":\"120m\",\"time\":1512410400000,\"open\":0.20754,\"high\":0.20769,\"low\":0.20562,\"close\":0.207,\"volume\":703081.9222192308,\"close_time\":1512417597662,\"vwap\":0.20679830881099778,\"ema1\":0.20676107488473836,\"sma1\":0.21060870370370366,\"sma2\":0.2055448406666667,\"rsi_avg_gain\":0.0006892607668214271,\"rsi_avg_loss\":0.0006685250198211538,\"rsi\":51},{\"period_id\":\"120m210056\",\"size\":\"120m\",\"time\":1512403200000,\"open\":0.20617,\"high\":0.20754,\"low\":0.205,\"close\":0.20754,\"volume\":614650.2980817601,\"close_time\":1512410370625,\"vwap\":0.20625369534427734,\"ema1\":0.20674459729058237,\"sma1\":0.21061759259259252,\"sma2\":0.2056858406666667,\"rsi_avg_gain\":0.0007422808258076908,\"rsi_avg_loss\":0.0006784115598073954,\"rsi\":52},{\"period_id\":\"120m210055\",\"size\":\"120m\",\"time\":1512396000000,\"open\":0.206,\"high\":0.20778,\"low\":0.20474,\"close\":0.20616,\"volume\":555274.1970127601,\"close_time\":1512403151943,\"vwap\":0.20561272649638707,\"ema1\":0.20668974193131218,\"sma1\":0.21062888888888884,\"sma2\":0.20588317400000006,\"rsi_avg_gain\":0.0006932255047159753,\"rsi_avg_loss\":0.0007305970644079642,\"rsi\":49},{\"period_id\":\"120m210054\",\"size\":\"120m\",\"time\":1512388800000,\"open\":0.20601,\"high\":0.2078,\"low\":0.20311,\"close\":0.206,\"volume\":1058620.9446994702,\"close_time\":1512395944827,\"vwap\":0.20487914928927672,\"ema1\":0.20672627585760955,\"sma1\":0.21061685185185178,\"sma2\":0.20624967400000005,\"rsi_avg_gain\":0.0007342428512325871,\"rsi_avg_loss\":0.0007867968385931923,\"rsi\":48},{\"period_id\":\"120m210053\",\"size\":\"120m\",\"time\":1512381600000,\"open\":0.20655,\"high\":0.2079,\"low\":0.205,\"close\":0.20668,\"volume\":937889.2512387097,\"close_time\":1512388797198,\"vwap\":0.20713505960070105,\"ema1\":0.20677636384778952,\"sma1\":0.21058537037037028,\"sma2\":0.20651200733333339,\"rsi_avg_gain\":0.0007907230705581706,\"rsi_avg_loss\":0.0007950119800234367,\"rsi\":50},{\"period_id\":\"120m210052\",\"size\":\"120m\",\"time\":1512374400000,\"open\":0.2073,\"high\":0.20843,\"low\":0.20567,\"close\":0.207,\"volume\":846062.6015024798,\"close_time\":1512381483617,\"vwap\":0.2073640154306339,\"ema1\":0.2067830096303957,\"sma1\":0.21054712962962954,\"sma2\":0.20679367400000004,\"rsi_avg_gain\":0.0008515479221395684,\"rsi_avg_loss\":0.0008315513631021637,\"rsi\":51},{\"period_id\":\"120m210051\",\"size\":\"120m\",\"time\":1512367200000,\"open\":0.20506,\"high\":0.2088,\"low\":0.20506,\"close\":0.20772,\"volume\":369815.74117833993,\"close_time\":1512374346573,\"vwap\":0.20623187462865253,\"ema1\":0.20676804477731953,\"sma1\":0.21051166666666657,\"sma2\":0.20700667400000003,\"rsi_avg_gain\":0.0009170516084579968,\"rsi_avg_loss\":0.0008401322371869457,\"rsi\":52},{\"period_id\":\"120m210050\",\"size\":\"120m\",\"time\":1512360000000,\"open\":0.20511,\"high\":0.20694,\"low\":0.205,\"close\":0.20526,\"volume\":148488.14376757,\"close_time\":1512367074218,\"vwap\":0.20484336809020098,\"ema1\":0.20670239269299673,\"sma1\":0.21049361111111103,\"sma2\":0.207210674,\"rsi_avg_gain\":0.0007983632706470742,\"rsi_avg_loss\":0.0009047577938936338,\"rsi\":47},{\"period_id\":\"120m210049\",\"size\":\"120m\",\"time\":1512352800000,\"open\":0.20479,\"high\":0.20596,\"low\":0.20479,\"close\":0.20591,\"volume\":112455.98687227,\"close_time\":1512359645187,\"vwap\":0.20431677435033213,\"ema1\":0.20680186805113443,\"sma1\":0.2104800925925925,\"sma2\":0.20744550733333336,\"rsi_avg_gain\":0.0008597758299276184,\"rsi_avg_loss\":0.0009243545472700663,\"rsi\":48},{\"period_id\":\"120m210048\",\"size\":\"120m\",\"time\":1512345600000,\"open\":0.2025,\"high\":0.205,\"low\":0.2022,\"close\":0.205,\"volume\":244383.31424754005,\"close_time\":1512352788800,\"vwap\":0.20408431058296397,\"ema1\":0.20686337619259199,\"sma1\":0.21046666666666655,\"sma2\":0.207812174,\"rsi_avg_gain\":0.0008559124322297413,\"rsi_avg_loss\":0.0009954587432139176,\"rsi\":46},{\"period_id\":\"120m210047\",\"size\":\"120m\",\"time\":1512338400000,\"open\":0.203,\"high\":0.20596,\"low\":0.201,\"close\":0.20321,\"volume\":1016917.7492541395,\"close_time\":1512345595739,\"vwap\":0.20297790739091906,\"ema1\":0.20699188489552936,\"sma1\":0.21043925925925913,\"sma2\":0.2083210073333333,\"rsi_avg_gain\":0.000784059542401261,\"rsi_avg_loss\":0.0010720324926919112,\"rsi\":42},{\"period_id\":\"120m210046\",\"size\":\"120m\",\"time\":1512331200000,\"open\":0.20927755,\"high\":0.21072,\"low\":0.2021,\"close\":0.2021,\"volume\":1914351.5573701388,\"close_time\":1512338396781,\"vwap\":0.20516494773268415,\"ema1\":0.2072527045434969,\"sma1\":0.21036685185185175,\"sma2\":0.20871917399999998,\"rsi_avg_gain\":0.0007589871995090503,\"rsi_avg_loss\":0.001154496530591289,\"rsi\":40},{\"period_id\":\"120m210045\",\"size\":\"120m\",\"time\":1512324000000,\"open\":0.20861,\"high\":0.21,\"low\":0.20824,\"close\":0.209,\"volume\":407974.7964288199,\"close_time\":1512331113146,\"vwap\":0.20919146336786296,\"ema1\":0.20760806347753116,\"sma1\":0.21029731481481473,\"sma2\":0.20892100733333333,\"rsi_avg_gain\":0.0008173708302405158,\"rsi_avg_loss\":0.0007125347252521584,\"rsi\":53},{\"period_id\":\"120m210044\",\"size\":\"120m\",\"time\":1512316800000,\"open\":0.20906,\"high\":0.21,\"low\":0.2084,\"close\":0.20978,\"volume\":615420.8094476499,\"close_time\":1512323994319,\"vwap\":0.2094658426641709,\"ema1\":0.20751206785529194,\"sma1\":0.21023064814814807,\"sma2\":0.20914134066666665,\"rsi_avg_gain\":0.0008802455094897862,\"rsi_avg_loss\":0.0007073450887330933,\"rsi\":55},{\"period_id\":\"120m210043\",\"size\":\"120m\",\"time\":1512309600000,\"open\":0.211,\"high\":0.2118,\"low\":0.208,\"close\":0.2095,\"volume\":1208601.3046583012,\"close_time\":1512316768941,\"vwap\":0.20933784421936613,\"ema1\":0.2073556587418638,\"sma1\":0.21014851851851843,\"sma2\":0.20935467399999996,\"rsi_avg_gain\":0.0009264182409890003,\"rsi_avg_loss\":0.0007617562494048696,\"rsi\":55},{\"period_id\":\"120m210042\",\"size\":\"120m\",\"time\":1512302400000,\"open\":0.2093,\"high\":0.213,\"low\":0.20887,\"close\":0.211,\"volume\":2451547.833988342,\"close_time\":1512309491987,\"vwap\":0.21145536187001024,\"ema1\":0.2072077731378544,\"sma1\":0.21005694444444434,\"sma2\":0.20939200733333332,\"rsi_avg_gain\":0.0009976811826035387,\"rsi_avg_loss\":0.0007049682685898595,\"rsi\":59},{\"period_id\":\"120m210041\",\"size\":\"120m\",\"time\":1512295200000,\"open\":0.207,\"high\":0.2094,\"low\":0.20601,\"close\":0.20887,\"volume\":657082.7732712004,\"close_time\":1512302385755,\"vwap\":0.2083996174797014,\"ema1\":0.20694624025080988,\"sma1\":0.2099976851851851,\"sma2\":0.20954367399999996,\"rsi_avg_gain\":0.0009105797351115036,\"rsi_avg_loss\":0.0007591965969429255,\"rsi\":55},{\"period_id\":\"120m210040\",\"size\":\"120m\",\"time\":1512288000000,\"open\":0.20712,\"high\":0.208,\"low\":0.20605,\"close\":0.2069,\"volume\":404712.48956450995,\"close_time\":1512295180202,\"vwap\":0.206776330192971,\"ema1\":0.20681356716465885,\"sma1\":0.20997175925925918,\"sma2\":0.20967867399999998,\"rsi_avg_gain\":0.0008290858685816192,\"rsi_avg_loss\":0.0008175963351693044,\"rsi\":50},{\"period_id\":\"120m210039\",\"size\":\"120m\",\"time\":1512280800000,\"open\":0.2053,\"high\":0.208,\"low\":0.20519,\"close\":0.20711,\"volume\":91034.59465931001,\"close_time\":1512287925924,\"vwap\":0.20594977560410208,\"ema1\":0.2068076062794629,\"sma1\":0.2099518518518518,\"sma2\":0.209827174,\"rsi_avg_gain\":0.0008928617046263591,\"rsi_avg_loss\":0.0008643345147977134,\"rsi\":51},{\"period_id\":\"120m210038\",\"size\":\"120m\",\"time\":1512273600000,\"open\":0.20466,\"high\":0.20735,\"low\":0.20465,\"close\":0.20515,\"volume\":341844.85708863003,\"close_time\":1512280257377,\"vwap\":0.20568216026637864,\"ema1\":0.20678675154011553,\"sma1\":0.20992879629629627,\"sma2\":0.20995800733333334,\"rsi_avg_gain\":0.0008107741434437722,\"rsi_avg_loss\":0.0009308217851667682,\"rsi\":47},{\"period_id\":\"120m210037\",\"size\":\"120m\",\"time\":1512266400000,\"open\":0.20416,\"high\":0.20511,\"low\":0.204,\"close\":0.20483,\"volume\":44043.33960736001,\"close_time\":1512273462247,\"vwap\":0.20569638948160496,\"ema1\":0.2068996309566752,\"sma1\":0.20995537037037032,\"sma2\":0.21014017399999999,\"rsi_avg_gain\":0.0008485260006317557,\"rsi_avg_loss\":0.0010024234609488272,\"rsi\":46},{\"period_id\":\"120m210036\",\"size\":\"120m\",\"time\":1512259200000,\"open\":0.2061,\"high\":0.2065,\"low\":0.204,\"close\":0.20412,\"volume\":437910.88185003994,\"close_time\":1512266341154,\"vwap\":0.2057117125732927,\"ema1\":0.20704236412610108,\"sma1\":0.20996101851851845,\"sma2\":0.210238174,\"rsi_avg_gain\":0.0008591818468341972,\"rsi_avg_loss\":0.001079532957944891,\"rsi\":44},{\"period_id\":\"120m210035\",\"size\":\"120m\",\"time\":1512252000000,\"open\":0.2075,\"high\":0.20869,\"low\":0.205,\"close\":0.206,\"volume\":627978.90874285,\"close_time\":1512259172274,\"vwap\":0.20622007901112613,\"ema1\":0.2072439064796253,\"sma1\":0.20996851851851847,\"sma2\":0.21022150733333334,\"rsi_avg_gain\":0.0009252727581291354,\"rsi_avg_loss\":0.0010179585700944985,\"rsi\":48},{\"period_id\":\"120m210034\",\"size\":\"120m\",\"time\":1512244800000,\"open\":0.20626,\"high\":0.208,\"low\":0.20587,\"close\":0.20749,\"volume\":375143.7825295599,\"close_time\":1512251968347,\"vwap\":0.20721591231356842,\"ema1\":0.20732969313339256,\"sma1\":0.20998703703703697,\"sma2\":0.21019650733333337,\"rsi_avg_gain\":0.0009964475856775305,\"rsi_avg_loss\":0.000981647690870997,\"rsi\":50},{\"period_id\":\"120m210033\",\"size\":\"120m\",\"time\":1512237600000,\"open\":0.20752,\"high\":0.20752,\"low\":0.2055,\"close\":0.20671,\"volume\":269664.32342694,\"close_time\":1512244785524,\"vwap\":0.2062116642541298,\"ema1\":0.20731863748741963,\"sma1\":0.20999425925925921,\"sma2\":0.21019750733333334,\"rsi_avg_gain\":0.0010130973999604171,\"rsi_avg_loss\":0.0010571590517072275,\"rsi\":49},{\"period_id\":\"120m210032\",\"size\":\"120m\",\"time\":1512230400000,\"open\":0.20577,\"high\":0.208,\"low\":0.2043,\"close\":0.20702,\"volume\":548313.6903024999,\"close_time\":1512237578495,\"vwap\":0.20616383591818255,\"ema1\":0.20736061248655202,\"sma1\":0.20999425925925921,\"sma2\":0.2101738406666667,\"rsi_avg_gain\":0.0010910279691881415,\"rsi_avg_loss\":0.0011146328249154753,\"rsi\":49},{\"period_id\":\"120m210031\",\"size\":\"120m\",\"time\":1512223200000,\"open\":0.2088,\"high\":0.2088,\"low\":0.205,\"close\":0.20593044,\"volume\":507990.8551120195,\"close_time\":1512230394515,\"vwap\":0.20675749290451348,\"ema1\":0.20738410300286594,\"sma1\":0.20994981481481473,\"sma2\":0.21013533333333337,\"rsi_avg_gain\":0.0010911408898949203,\"rsi_avg_loss\":0.0012003738114474349,\"rsi\":48},{\"period_id\":\"120m210030\",\"size\":\"120m\",\"time\":1512216000000,\"open\":0.2081,\"high\":0.2094,\"low\":0.207,\"close\":0.2087,\"volume\":644599.4130293902,\"close_time\":1512223178420,\"vwap\":0.20860877984173126,\"ema1\":0.20748435562375325,\"sma1\":0.209906574074074,\"sma2\":0.21007350000000002,\"rsi_avg_gain\":0.001175074804502222,\"rsi_avg_loss\":0.0010796671815587757,\"rsi\":52},{\"period_id\":\"120m210029\",\"size\":\"120m\",\"time\":1512208800000,\"open\":0.21,\"high\":0.211,\"low\":0.2061,\"close\":0.2081,\"volume\":1036579.6382968901,\"close_time\":1512215967286,\"vwap\":0.20878881918711684,\"ema1\":0.2074005180805638,\"sma1\":0.20983249999999992,\"sma2\":0.21001350000000005,\"rsi_avg_gain\":0.0012193113279254707,\"rsi_avg_loss\":0.0011627185032171432,\"rsi\":51},{\"period_id\":\"120m210028\",\"size\":\"120m\",\"time\":1512201600000,\"open\":0.2091,\"high\":0.211,\"low\":0.2075,\"close\":0.21,\"volume\":843859.35179703,\"close_time\":1512208772992,\"vwap\":0.20978399885036164,\"ema1\":0.2073522779481889,\"sma1\":0.20976287037037025,\"sma2\":0.20992100000000005,\"rsi_avg_gain\":0.0013131045069966609,\"rsi_avg_loss\":0.0011060045419261553,\"rsi\":54},{\"period_id\":\"120m210027\",\"size\":\"120m\",\"time\":1512194400000,\"open\":0.20701,\"high\":0.20999,\"low\":0.20612,\"close\":0.20916,\"volume\":324696.8229079299,\"close_time\":1512201587493,\"vwap\":0.20901050037834737,\"ema1\":0.20716967642737433,\"sma1\":0.20971555555555546,\"sma2\":0.20984833333333336,\"rsi_avg_gain\":0.001349497161381021,\"rsi_avg_loss\":0.0011910818143820133,\"rsi\":53},{\"period_id\":\"120m210026\",\"size\":\"120m\",\"time\":1512187200000,\"open\":0.20948,\"high\":0.20958,\"low\":0.2065,\"close\":0.2066,\"volume\":423074.3872495901,\"close_time\":1512194238488,\"vwap\":0.20871610341417365,\"ema1\":0.20703241273271047,\"sma1\":0.20966759259259252,\"sma2\":0.20982000000000006,\"rsi_avg_gain\":0.0012563815584103297,\"rsi_avg_loss\":0.001282703492411399,\"rsi\":49},{\"period_id\":\"120m210025\",\"size\":\"120m\",\"time\":1512180000000,\"open\":0.20896,\"high\":0.20956,\"low\":0.207,\"close\":0.20911,\"volume\":97823.74024907005,\"close_time\":1512186828813,\"vwap\":0.20902068704423477,\"ema1\":0.20706223430048362,\"sma1\":0.20960861111111107,\"sma2\":0.2097263333333334,\"rsi_avg_gain\":0.0013530262936726628,\"rsi_avg_loss\":0.0011882960687507385,\"rsi\":53},{\"period_id\":\"120m210024\",\"size\":\"120m\",\"time\":1512172800000,\"open\":0.21257,\"high\":0.2126,\"low\":0.20706,\"close\":0.20896,\"volume\":1319666.9405931998,\"close_time\":1512179990311,\"vwap\":0.2090440050891992,\"ema1\":0.20692100907982733,\"sma1\":0.20952953703703697,\"sma2\":0.20963566666666678,\"rsi_avg_gain\":0.0014455667778013304,\"rsi_avg_loss\":0.0012797034586546415,\"rsi\":53},{\"period_id\":\"120m210023\",\"size\":\"120m\",\"time\":1512165600000,\"open\":0.21203,\"high\":0.215,\"low\":0.21065,\"close\":0.21257,\"volume\":2184093.836138379,\"close_time\":1512172768309,\"vwap\":0.21228699330105566,\"ema1\":0.20678038901636714,\"sma1\":0.20943694444444438,\"sma2\":0.20948033333333343,\"rsi_avg_gain\":0.0015567642222475864,\"rsi_avg_loss\":0.001100449878551152,\"rsi\":59},{\"period_id\":\"120m210022\",\"size\":\"120m\",\"time\":1512158400000,\"open\":0.2096,\"high\":0.21236,\"low\":0.20813,\"close\":0.21236,\"volume\":1072673.46061336,\"close_time\":1512165578647,\"vwap\":0.21149323628448297,\"ema1\":0.20638110550025454,\"sma1\":0.20936768518518514,\"sma2\":0.20931766666666674,\"rsi_avg_gain\":0.001660361470112784,\"rsi_avg_loss\":0.001185099869208933,\"rsi\":58},{\"period_id\":\"120m210021\",\"size\":\"120m\",\"time\":1512151200000,\"open\":0.20898,\"high\":0.21,\"low\":0.2071,\"close\":0.2096,\"volume\":906369.1453939505,\"close_time\":1512158399931,\"vwap\":0.2091850298563006,\"ema1\":0.20596876794854796,\"sma1\":0.20930212962962957,\"sma2\":0.20919100000000007,\"rsi_avg_gain\":0.0015757738908906914,\"rsi_avg_loss\":0.00127626139760962,\"rsi\":55},{\"period_id\":\"120m210020\",\"size\":\"120m\",\"time\":1512144000000,\"open\":0.20799,\"high\":0.212,\"low\":0.20799,\"close\":0.20841,\"volume\":1272584.15052845,\"close_time\":1512151168203,\"vwap\":0.2101994435372971,\"ema1\":0.20571833815189608,\"sma1\":0.2092280555555555,\"sma2\":0.20910916666666676,\"rsi_avg_gain\":0.001605448805574591,\"rsi_avg_loss\":0.0013744353512718985,\"rsi\":54},{\"period_id\":\"120m210019\",\"size\":\"120m\",\"time\":1512136800000,\"open\":0.20921,\"high\":0.20998,\"low\":0.207,\"close\":0.20876,\"volume\":1429491.255365281,\"close_time\":1512143985731,\"vwap\":0.20884250946754093,\"ema1\":0.2055327063003027,\"sma1\":0.2091541666666666,\"sma2\":0.20902983333333341,\"rsi_avg_gain\":0.0017289448675418674,\"rsi_avg_loss\":0.001453238070600507,\"rsi\":54},{\"period_id\":\"120m210018\",\"size\":\"120m\",\"time\":1512129600000,\"open\":0.20256,\"high\":0.2169,\"low\":0.20121,\"close\":0.2095,\"volume\":2799926.6295868102,\"close_time\":1512136798511,\"vwap\":0.2092387193028386,\"ema1\":0.20531013432101325,\"sma1\":0.20901481481481474,\"sma2\":0.2089548333333334,\"rsi_avg_gain\":0.0018619406265835494,\"rsi_avg_loss\":0.0015081025375697774,\"rsi\":55},{\"period_id\":\"120m210017\",\"size\":\"120m\",\"time\":1512122400000,\"open\":0.202104,\"high\":0.207,\"low\":0.201,\"close\":0.20258,\"volume\":1291062.32261302,\"close_time\":1512129593960,\"vwap\":0.2026326726417227,\"ema1\":0.20502117806729003,\"sma1\":0.2089685185185185,\"sma2\":0.20900850000000007,\"rsi_avg_gain\":0.0014728591363207468,\"rsi_avg_loss\":0.0016241104250751448,\"rsi\":48},{\"period_id\":\"120m210016\",\"size\":\"120m\",\"time\":1512115200000,\"open\":0.19814,\"high\":0.20206,\"low\":0.196,\"close\":0.20206,\"volume\":713837.5213206597,\"close_time\":1512122388374,\"vwap\":0.2008560481876452,\"ema1\":0.205189535175379,\"sma1\":0.20896796296296294,\"sma2\":0.2090548333333334,\"rsi_avg_gain\":0.0015461559929608026,\"rsi_avg_loss\":0.0017490419962347713,\"rsi\":47},{\"period_id\":\"120m210015\",\"size\":\"120m\",\"time\":1512108000000,\"open\":0.19743,\"high\":0.19982,\"low\":0.1961,\"close\":0.1971,\"volume\":557649.4492912301,\"close_time\":1512115180599,\"vwap\":0.19798090967602422,\"ema1\":0.2054053651874741,\"sma1\":0.20899740740740735,\"sma2\":0.2091865000000001,\"rsi_avg_gain\":0.0012835526078039418,\"rsi_avg_loss\":0.0018835836882528307,\"rsi\":41},{\"period_id\":\"120m210014\",\"size\":\"120m\",\"time\":1512100800000,\"open\":0.199,\"high\":0.20197,\"low\":0.19702,\"close\":0.1975,\"volume\":635311.7339892703,\"close_time\":1512107990517,\"vwap\":0.19866285961843325,\"ema1\":0.2059781489935068,\"sma1\":0.20898657407407406,\"sma2\":0.20932833333333345,\"rsi_avg_gain\":0.0013822874237888606,\"rsi_avg_loss\":0.0019977055104261243,\"rsi\":41},{\"period_id\":\"120m210013\",\"size\":\"120m\",\"time\":1512093600000,\"open\":0.20012,\"high\":0.201,\"low\":0.19722,\"close\":0.1976,\"volume\":236566.50866583994,\"close_time\":1512100510000,\"vwap\":0.19814997333725384,\"ema1\":0.2065628489240935,\"sma1\":0.20897259259259257,\"sma2\":0.20943650000000008,\"rsi_avg_gain\":0.001488617225618773,\"rsi_avg_loss\":0.002143682857381981,\"rsi\":41},{\"period_id\":\"120m210012\",\"size\":\"120m\",\"time\":1512086400000,\"open\":0.20222,\"high\":0.2041,\"low\":0.198,\"close\":0.20012,\"volume\":698903.8259039099,\"close_time\":1512093589718,\"vwap\":0.20269402170874973,\"ema1\":0.20718097643609992,\"sma1\":0.20892999999999995,\"sma2\":0.20950633333333343,\"rsi_avg_gain\":0.0016031262429740633,\"rsi_avg_loss\":0.002114735384872903,\"rsi\":43},{\"period_id\":\"120m210011\",\"size\":\"120m\",\"time\":1512079200000,\"open\":0.20296,\"high\":0.20684,\"low\":0.20112,\"close\":0.2026,\"volume\":1227702.9432458305,\"close_time\":1512086391967,\"vwap\":0.20403088348041004,\"ema1\":0.20766794032824476,\"sma1\":0.20887870370370368,\"sma2\":0.20958883333333342,\"rsi_avg_gain\":0.0017264436462797604,\"rsi_avg_loss\":0.0020866381067862027,\"rsi\":45},{\"period_id\":\"120m210010\",\"size\":\"120m\",\"time\":1512072000000,\"open\":0.2039,\"high\":0.2045,\"low\":0.19901,\"close\":0.2024,\"volume\":1258077.1042229799,\"close_time\":1512079169720,\"vwap\":0.20114774269298308,\"ema1\":0.20801745345433062,\"sma1\":0.20884907407407405,\"sma2\":0.20968183333333337,\"rsi_avg_gain\":0.0018438623883012802,\"rsi_avg_loss\":0.0022471487303851417,\"rsi\":45},{\"period_id\":\"120m210009\",\"size\":\"120m\",\"time\":1512064800000,\"open\":0.19698,\"high\":0.2046,\"low\":0.19566,\"close\":0.2039,\"volume\":1647673.1437247903,\"close_time\":1512071867725,\"vwap\":0.20354599207267066,\"ema1\":0.2084048640373879,\"sma1\":0.2088435185185185,\"sma2\":0.20974683333333338,\"rsi_avg_gain\":0.001985697956632148,\"rsi_avg_loss\":0.0023046217096455374,\"rsi\":46},{\"period_id\":\"120m210008\",\"size\":\"120m\",\"time\":1512057600000,\"open\":0.19378,\"high\":0.19889,\"low\":0.19002,\"close\":0.197,\"volume\":1298684.4076519401,\"close_time\":1512064799932,\"vwap\":0.19770247321752352,\"ema1\":0.20871554431582845,\"sma1\":0.20887231481481483,\"sma2\":0.20992133333333338,\"rsi_avg_gain\":0.0016076747225269295,\"rsi_avg_loss\":0.0024819003026951944,\"rsi\":39},{\"period_id\":\"120m210007\",\"size\":\"120m\",\"time\":1512050400000,\"open\":0.1957,\"high\":0.196,\"low\":0.19,\"close\":0.19341,\"volume\":3496820.0965343695,\"close_time\":1512057579478,\"vwap\":0.19307081276971713,\"ema1\":0.20952351288933385,\"sma1\":0.20893879629629628,\"sma2\":0.21015883333333338,\"rsi_avg_gain\":0.001455188162721308,\"rsi_avg_loss\":0.002672815710594825,\"rsi\":35},{\"period_id\":\"120m210006\",\"size\":\"120m\",\"time\":1512043200000,\"open\":0.201,\"high\":0.205,\"low\":0.1957,\"close\":0.196,\"volume\":2207844.756551129,\"close_time\":1512050392604,\"vwap\":0.1972298724471428,\"ema1\":0.2106347896403224,\"sma1\":0.208925,\"sma2\":0.2103088333333334,\"rsi_avg_gain\":0.0015671257136998702,\"rsi_avg_loss\":0.0026791861498713493,\"rsi\":37},{\"period_id\":\"120m210005\",\"size\":\"120m\",\"time\":1512036000000,\"open\":0.20723,\"high\":0.20859,\"low\":0.2,\"close\":0.20132,\"volume\":1182444.4129667808,\"close_time\":1512043188497,\"vwap\":0.20163306924730154,\"ema1\":0.211644085477586,\"sma1\":0.20887981481481482,\"sma2\":0.21035600000000004,\"rsi_avg_gain\":0.001687673845522937,\"rsi_avg_loss\":0.002476046622938377,\"rsi\":41},{\"period_id\":\"120m210004\",\"size\":\"120m\",\"time\":1512028800000,\"open\":0.206,\"high\":0.2105,\"low\":0.206,\"close\":0.20719,\"volume\":1239318.2030057004,\"close_time\":1512035986958,\"vwap\":0.20836562820181712,\"ema1\":0.21235609137259193,\"sma1\":0.20882814814814818,\"sma2\":0.21028283333333336,\"rsi_avg_gain\":0.001817494910563163,\"rsi_avg_loss\":0.0022149732862413282,\"rsi\":45},{\"period_id\":\"120m210003\",\"size\":\"120m\",\"time\":1512021600000,\"open\":0.2058,\"high\":0.208,\"low\":0.20034,\"close\":0.206,\"volume\":1034005.3892385698,\"close_time\":1512028795858,\"vwap\":0.2051706967623793,\"ema1\":0.21271237353621897,\"sma1\":0.20880490740740745,\"sma2\":0.21024950000000003,\"rsi_avg_gain\":0.0018657637498372508,\"rsi_avg_loss\":0.0023853558467214304,\"rsi\":44},{\"period_id\":\"120m210002\",\"size\":\"120m\",\"time\":1512014400000,\"open\":0.20938,\"high\":0.21089,\"low\":0.205,\"close\":0.20788,\"volume\":707748.94552877,\"close_time\":1512021589204,\"vwap\":0.20838338768601702,\"ema1\":0.21317529584906167,\"sma1\":0.20873240740740742,\"sma2\":0.21019433333333337,\"rsi_avg_gain\":0.00200928403828627,\"rsi_avg_loss\":0.002424229373392308,\"rsi\":45},{\"period_id\":\"120m210001\",\"size\":\"120m\",\"time\":1512007200000,\"open\":0.20915,\"high\":0.21,\"low\":0.20531,\"close\":0.20941,\"volume\":290501.8359916002,\"close_time\":1512014340616,\"vwap\":0.206753566379567,\"ema1\":0.21354048866623834,\"sma1\":0.2086953703703704,\"sma2\":0.2100956666666667,\"rsi_avg_gain\":0.0021638443489236754,\"rsi_avg_loss\":0.0024930162482686394,\"rsi\":46},{\"period_id\":\"120m210000\",\"size\":\"120m\",\"time\":1512000000000,\"open\":0.201,\"high\":0.20999,\"low\":0.2,\"close\":0.20998,\"volume\":1165564.5829144393,\"close_time\":1512007030383,\"vwap\":0.20652244861497981,\"ema1\":0.2138253499535651,\"sma1\":0.20865833333333336,\"sma2\":0.2099876666666667,\"rsi_avg_gain\":0.0023302939142254967,\"rsi_avg_loss\":0.002640940575058536,\"rsi\":47},{\"period_id\":\"120m209999\",\"size\":\"120m\",\"time\":1511992800000,\"open\":0.20395,\"high\":0.21,\"low\":0.2,\"close\":0.20105,\"volume\":1814667.9738222098,\"close_time\":1511999980364,\"vwap\":0.20397435298817707,\"ema1\":0.21409054650208684,\"sma1\":0.20863870370370372,\"sma2\":0.2100181666666667,\"rsi_avg_gain\":0.001822624215319766,\"rsi_avg_loss\":0.002844089850063039,\"rsi\":39},{\"period_id\":\"120m209998\",\"size\":\"120m\",\"time\":1511985600000,\"open\":0.1959,\"high\":0.21,\"low\":0.191,\"close\":0.20478,\"volume\":4757349.276058303,\"close_time\":1511992776919,\"vwap\":0.2026238438214984,\"ema1\":0.21498989453671352,\"sma1\":0.20861925925925925,\"sma2\":0.20996150000000005,\"rsi_avg_gain\":0.0019628260780366713,\"rsi_avg_loss\":0.0027759429154525046,\"rsi\":41},{\"period_id\":\"120m209997\",\"size\":\"120m\",\"time\":1511978400000,\"open\":0.21606,\"high\":0.21957,\"low\":0.192,\"close\":0.19899,\"volume\":4420248.183224255,\"close_time\":1511985598964,\"vwap\":0.1948450055114711,\"ema1\":0.2156940251944179,\"sma1\":0.2085112962962963,\"sma2\":0.21001166666666674,\"rsi_avg_gain\":0.0016684280840394933,\"rsi_avg_loss\":0.002989476985871928,\"rsi\":36},{\"period_id\":\"120m209996\",\"size\":\"120m\",\"time\":1511971200000,\"open\":0.21998,\"high\":0.223,\"low\":0.216,\"close\":0.216,\"volume\":2351105.5345271663,\"close_time\":1511978391883,\"vwap\":0.21726556551330206,\"ema1\":0.21684602693196398,\"sma1\":0.20834462962962963,\"sma2\":0.20977833333333334,\"rsi_avg_gain\":0.001796768705888685,\"rsi_avg_loss\":0.0019109752155543843,\"rsi\":48},{\"period_id\":\"120m209995\",\"size\":\"120m\",\"time\":1511964000000,\"open\":0.22841,\"high\":0.23,\"low\":0.218,\"close\":0.218,\"volume\":4281064.854303387,\"close_time\":1511971197605,\"vwap\":0.21914931063036874,\"ema1\":0.21690437361692702,\"sma1\":0.20811185185185188,\"sma2\":0.20949500000000004,\"rsi_avg_gain\":0.0019349816832647377,\"rsi_avg_loss\":0.001904127155212414,\"rsi\":50},{\"period_id\":\"120m209994\",\"size\":\"120m\",\"time\":1511956800000,\"open\":0.22286,\"high\":0.22878,\"low\":0.22169,\"close\":0.22799,\"volume\":3263738.472919323,\"close_time\":1511963974595,\"vwap\":0.22559453324407416,\"ema1\":0.2168288131767151,\"sma1\":0.20787731481481483,\"sma2\":0.20903600000000006,\"rsi_avg_gain\":0.002083826428131256,\"rsi_avg_loss\":0.0012821369363825996,\"rsi\":62},{\"period_id\":\"120m209993\",\"size\":\"120m\",\"time\":1511949600000,\"open\":0.22398,\"high\":0.22488,\"low\":0.22111,\"close\":0.22242,\"volume\":2361820.0209971713,\"close_time\":1511956799508,\"vwap\":0.22283444636992397,\"ema1\":0.21605907615441958,\"sma1\":0.20768370370370373,\"sma2\":0.20868383333333335,\"rsi_avg_gain\":0.0018156592302951999,\"rsi_avg_loss\":0.0013807628545658764,\"rsi\":57},{\"period_id\":\"120m209992\",\"size\":\"120m\",\"time\":1511942400000,\"open\":0.2195,\"high\":0.22488,\"low\":0.2177,\"close\":0.2239,\"volume\":2649396.6815256095,\"close_time\":1511949549969,\"vwap\":0.2239,\"ema1\":0.2156203917512761,\"sma1\":0.20746259259259267,\"sma2\":0.20830200000000007,\"rsi_avg_gain\":0.001955325324933292,\"rsi_avg_loss\":0.0013731292279940222,\"rsi\":59},{\"period_id\":\"120m209991\",\"size\":\"120m\",\"time\":1511935200000,\"open\":0.2175,\"high\":0.22077,\"low\":0.214,\"close\":0.2205,\"volume\":2973725.5863664374,\"close_time\":1511942396778,\"vwap\":0.21659275215475518,\"ema1\":0.21504938428584686,\"sma1\":0.20727925925925936,\"sma2\":0.2079796666666667,\"rsi_avg_gain\":0.0018441965037743157,\"rsi_avg_loss\":0.0014787545532243315,\"rsi\":55},{\"period_id\":\"120m209990\",\"size\":\"120m\",\"time\":1511928000000,\"open\":0.22001,\"high\":0.22217,\"low\":0.2151,\"close\":0.2175,\"volume\":1326236.08597484,\"close_time\":1511935186922,\"vwap\":0.21802577131971843,\"ema1\":0.2146734797538363,\"sma1\":0.20712027777777783,\"sma2\":0.2077513333333334,\"rsi_avg_gain\":0.001755288542526186,\"rsi_avg_loss\":0.001592504903472357,\"rsi\":52},{\"period_id\":\"120m209989\",\"size\":\"120m\",\"time\":1511920800000,\"open\":0.22788,\"high\":0.22788,\"low\":0.22,\"close\":0.22,\"volume\":579065.919381,\"close_time\":1511926770791,\"vwap\":0.22078222800840178,\"ema1\":0.2144785473230664,\"sma1\":0.2068621296296297,\"sma2\":0.20747766666666675,\"rsi_avg_gain\":0.0018903107381051233,\"rsi_avg_loss\":0.0015226975883548457,\"rsi\":55},{\"period_id\":\"120m209988\",\"size\":\"120m\",\"time\":1511913600000,\"open\":0.23498,\"high\":0.235,\"low\":0.22137,\"close\":0.227,\"volume\":1532362.66207104,\"close_time\":1511920523754,\"vwap\":0.2285087811827281,\"ema1\":0.21409775748327786,\"sma1\":0.20650898148148156,\"sma2\":0.20706983333333343,\"rsi_avg_gain\":0.002035719256420902,\"rsi_avg_loss\":0.0011013666336129103,\"rsi\":65},{\"period_id\":\"120m209987\",\"size\":\"120m\",\"time\":1511906400000,\"open\":0.22599,\"high\":0.235,\"low\":0.22402,\"close\":0.23374,\"volume\":5473626.6050023865,\"close_time\":1511913591464,\"vwap\":0.2341983213287187,\"ema1\":0.2132079476545384,\"sma1\":0.20614666666666673,\"sma2\":0.2065958333333334,\"rsi_avg_gain\":0.002192313045376356,\"rsi_avg_loss\":0.0006676256054292884,\"rsi\":77},{\"period_id\":\"120m209986\",\"size\":\"120m\",\"time\":1511899200000,\"open\":0.22344,\"high\":0.2275,\"low\":0.221,\"close\":0.22599,\"volume\":1912175.8815506604,\"close_time\":1511906390069,\"vwap\":0.22548404407430053,\"ema1\":0.21179194404450657,\"sma1\":0.2058545370370371,\"sma2\":0.20629600000000006,\"rsi_avg_gain\":0.0017647986642514598,\"rsi_avg_loss\":0.0007189814212315414,\"rsi\":71},{\"period_id\":\"120m209985\",\"size\":\"120m\",\"time\":1511892000000,\"open\":0.22245,\"high\":0.22395,\"low\":0.22021,\"close\":0.22111,\"volume\":1405796.5932471403,\"close_time\":1511899189317,\"vwap\":0.2225631999219735,\"ema1\":0.21081276777171393,\"sma1\":0.20559564814814818,\"sma2\":0.2060825,\"rsi_avg_gain\":0.0015251677922708032,\"rsi_avg_loss\":0.0007742876844031984,\"rsi\":66},{\"period_id\":\"120m209984\",\"size\":\"120m\",\"time\":1511884800000,\"open\":0.2223,\"high\":0.22769,\"low\":0.2201,\"close\":0.223,\"volume\":3903963.718945954,\"close_time\":1511891998498,\"vwap\":0.2224849439385717,\"ema1\":0.21010261382493559,\"sma1\":0.20531611111111112,\"sma2\":0.20581599999999997,\"rsi_avg_gain\":0.0016424883916762495,\"rsi_avg_loss\":0.0006884636601265212,\"rsi\":70},{\"period_id\":\"120m209983\",\"size\":\"120m\",\"time\":1511877600000,\"open\":0.21498,\"high\":0.2223,\"low\":0.21382,\"close\":0.2223,\"volume\":3476791.268732116,\"close_time\":1511884789277,\"vwap\":0.2218313202274683,\"ema1\":0.20921313891631046,\"sma1\":0.20508092592592592,\"sma2\":0.20551100000000003,\"rsi_avg_gain\":0.0017149874987282682,\"rsi_avg_loss\":0.0007414224032131767,\"rsi\":70},{\"period_id\":\"120m209982\",\"size\":\"120m\",\"time\":1511870400000,\"open\":0.21701,\"high\":0.21897,\"low\":0.21,\"close\":0.21324,\"volume\":1580030.8104449601,\"close_time\":1511877576662,\"vwap\":0.21372052019438031,\"ema1\":0.20831059677260774,\"sma1\":0.20487055555555556,\"sma2\":0.20535616666666667,\"rsi_avg_gain\":0.0011499865370919824,\"rsi_avg_loss\":0.0007984548957680363,\"rsi\":59},{\"period_id\":\"120m209981\",\"size\":\"120m\",\"time\":1511863200000,\"open\":0.2144,\"high\":0.21995,\"low\":0.21399,\"close\":0.21797,\"volume\":2105043.1876786407,\"close_time\":1511870399364,\"vwap\":0.21764431628620776,\"ema1\":0.2079706379293393,\"sma1\":0.20467657407407408,\"sma2\":0.2050981666666667,\"rsi_avg_gain\":0.0012384470399452118,\"rsi_avg_loss\":0.0004960283492886556,\"rsi\":71},{\"period_id\":\"120m209980\",\"size\":\"120m\",\"time\":1511856000000,\"open\":0.21703,\"high\":0.218,\"low\":0.20949,\"close\":0.215,\"volume\":1955352.6909786584,\"close_time\":1511863185135,\"vwap\":0.2132579306871593,\"ema1\":0.20728102675205237,\"sma1\":0.20445435185185185,\"sma2\":0.2048826666666667,\"rsi_avg_gain\":0.0011052506584025357,\"rsi_avg_loss\":0.0005341843761570138,\"rsi\":67},{\"period_id\":\"120m209979\",\"size\":\"120m\",\"time\":1511848800000,\"open\":0.2126,\"high\":0.21772,\"low\":0.2101,\"close\":0.21602,\"volume\":1171198.8276388498,\"close_time\":1511855966678,\"vwap\":0.2164259783503345,\"ema1\":0.20674868376943528,\"sma1\":0.20422814814814816,\"sma2\":0.2046606666666667,\"rsi_avg_gain\":0.0011902699398181154,\"rsi_avg_loss\":0.0004968139435537077,\"rsi\":71},{\"period_id\":\"120m209978\",\"size\":\"120m\",\"time\":1511841600000,\"open\":0.21568,\"high\":0.218,\"low\":0.2126,\"close\":0.213,\"volume\":1039125.3916204604,\"close_time\":1511848787131,\"vwap\":0.21316173206893055,\"ema1\":0.206109282650086,\"sma1\":0.20400620370370373,\"sma2\":0.20447433333333334,\"rsi_avg_gain\":0.0010495214736502786,\"rsi_avg_loss\":0.0005350304007501469,\"rsi\":66},{\"period_id\":\"120m209977\",\"size\":\"120m\",\"time\":1511834400000,\"open\":0.21,\"high\":0.21809,\"low\":0.20801,\"close\":0.21576,\"volume\":3468057.7474857005,\"close_time\":1511841578393,\"vwap\":0.2166377908333305,\"ema1\":0.20563406076388502,\"sma1\":0.2037875,\"sma2\":0.20425250000000003,\"rsi_avg_gain\":0.0011302538947003,\"rsi_avg_loss\":0.00036387889311554185,\"rsi\":76},{\"period_id\":\"120m209976\",\"size\":\"120m\",\"time\":1511827200000,\"open\":0.205,\"high\":0.21,\"low\":0.205,\"close\":0.21,\"volume\":1558481.138053661,\"close_time\":1511834380900,\"vwap\":0.2094700472043037,\"ema1\":0.20493572012691158,\"sma1\":0.2036434259259259,\"sma2\":0.20412683333333337,\"rsi_avg_gain\":0.0007741195789080145,\"rsi_avg_loss\":0.0003918695772013528,\"rsi\":66},{\"period_id\":\"120m209975\",\"size\":\"120m\",\"time\":1511820000000,\"open\":0.20599,\"high\":0.2065,\"low\":0.2048,\"close\":0.205,\"volume\":389789.4495868001,\"close_time\":1511827185105,\"vwap\":0.20613291086396823,\"ema1\":0.20458645944600892,\"sma1\":0.20358314814814815,\"sma2\":0.2040988333333334,\"rsi_avg_gain\":0.0004490518542086307,\"rsi_avg_loss\":0.00042201339083222607,\"rsi\":52},{\"period_id\":\"120m209974\",\"size\":\"120m\",\"time\":1511812800000,\"open\":0.20676,\"high\":0.2072,\"low\":0.205,\"close\":0.20599,\"volume\":1422752.5999248598,\"close_time\":1511819964513,\"vwap\":0.2062733480406203,\"ema1\":0.20455793940780265,\"sma1\":0.20345999999999995,\"sma2\":0.20407566666666666,\"rsi_avg_gain\":0.00048359430453237155,\"rsi_avg_loss\":0.00037832211320393435,\"rsi\":56},{\"period_id\":\"120m209973\",\"size\":\"120m\",\"time\":1511805600000,\"open\":0.2056,\"high\":0.2075,\"low\":0.20438,\"close\":0.20677,\"volume\":1196450.54110655,\"close_time\":1511812798973,\"vwap\":0.20624661940920186,\"ema1\":0.20445917660834076,\"sma1\":0.2033433333333333,\"sma2\":0.20399083333333332,\"rsi_avg_gain\":0.000520793866419477,\"rsi_avg_loss\":0.00034742381421962133,\"rsi\":60},{\"period_id\":\"120m209972\",\"size\":\"120m\",\"time\":1511798400000,\"open\":0.20379,\"high\":0.20596,\"low\":0.2036,\"close\":0.2056,\"volume\":1021665.5822057405,\"close_time\":1511805533503,\"vwap\":0.20536808598425732,\"ema1\":0.2042998094778815,\"sma1\":0.20321870370370365,\"sma2\":0.20394649999999998,\"rsi_avg_gain\":0.0004708549330671288,\"rsi_avg_loss\":0.000374148723005746,\"rsi\":56},{\"period_id\":\"120m209971\",\"size\":\"120m\",\"time\":1511791200000,\"open\":0.20492,\"high\":0.2057,\"low\":0.20361,\"close\":0.20362,\"volume\":1156598.33650544,\"close_time\":1511798339155,\"vwap\":0.2049851334495316,\"ema1\":0.20421014116601127,\"sma1\":0.2030909259259259,\"sma2\":0.20390683333333334,\"rsi_avg_gain\":0.00035476685099536875,\"rsi_avg_loss\":0.00040292939400618803,\"rsi\":47},{\"period_id\":\"120m209970\",\"size\":\"120m\",\"time\":1511784000000,\"open\":0.20488,\"high\":0.205,\"low\":0.203,\"close\":0.20499,\"volume\":1106405.0097936601,\"close_time\":1511791177277,\"vwap\":0.20474748951320704,\"ema1\":0.20425084055677067,\"sma1\":0.20297490740740737,\"sma2\":0.20384716666666666,\"rsi_avg_gain\":0.00038205660876424325,\"rsi_avg_loss\":0.00032853934739127865,\"rsi\":54},{\"period_id\":\"120m209969\",\"size\":\"120m\",\"time\":1511776800000,\"open\":0.2043,\"high\":0.20497,\"low\":0.20151,\"close\":0.2045,\"volume\":1162813.67094193,\"close_time\":1511783982966,\"vwap\":0.20421457245489766,\"ema1\":0.2041998640434445,\"sma1\":0.20285972222222218,\"sma2\":0.2037865,\"rsi_avg_gain\":0.0003737532709768759,\"rsi_avg_loss\":0.00035381160488291545,\"rsi\":51},{\"period_id\":\"120m209968\",\"size\":\"120m\",\"time\":1511769600000,\"open\":0.2048,\"high\":0.2055,\"low\":0.202,\"close\":0.20445,\"volume\":1043370.4015265596,\"close_time\":1511776708321,\"vwap\":0.2036766603862658,\"ema1\":0.20417916501195793,\"sma1\":0.20275324074074075,\"sma2\":0.20371350000000002,\"rsi_avg_gain\":0.0003986573687443283,\"rsi_avg_loss\":0.00038102788218160124,\"rsi\":51},{\"period_id\":\"120m209967\",\"size\":\"120m\",\"time\":1511762400000,\"open\":0.204,\"high\":0.2056,\"low\":0.2035,\"close\":0.2048,\"volume\":727163.5247073199,\"close_time\":1511769598414,\"vwap\":0.20486951148832477,\"ema1\":0.20416048673692055,\"sma1\":0.20261805555555554,\"sma2\":0.20366683333333338,\"rsi_avg_gain\":0.0004293233201861998,\"rsi_avg_loss\":0.00038341464234941546,\"rsi\":53},{\"period_id\":\"120m209966\",\"size\":\"120m\",\"time\":1511755200000,\"open\":0.20399,\"high\":0.2049,\"low\":0.2035,\"close\":0.2049,\"volume\":169624.14325531002,\"close_time\":1511762296420,\"vwap\":0.20266474799271422,\"ema1\":0.20411638237394955,\"sma1\":0.20250296296296297,\"sma2\":0.2035981666666667,\"rsi_avg_gain\":0.0004623481909697536,\"rsi_avg_loss\":0.00040521576868398674,\"rsi\":53},{\"period_id\":\"120m209965\",\"size\":\"120m\",\"time\":1511748000000,\"open\":0.20393,\"high\":0.20403,\"low\":0.20161,\"close\":0.20349,\"volume\":152512.01532671004,\"close_time\":1511754632407,\"vwap\":0.20244048572611387,\"ema1\":0.20406233977904953,\"sma1\":0.20239157407407407,\"sma2\":0.2035233333333334,\"rsi_avg_gain\":0.0003894518979674274,\"rsi_avg_loss\":0.0004363862124289088,\"rsi\":47},{\"period_id\":\"120m209964\",\"size\":\"120m\",\"time\":1511740800000,\"open\":0.20231,\"high\":0.20396,\"low\":0.2013,\"close\":0.20352,\"volume\":209917.99183870008,\"close_time\":1511747968177,\"vwap\":0.2023373191415068,\"ema1\":0.2041018114879495,\"sma1\":0.20228796296296295,\"sma2\":0.2034266666666667,\"rsi_avg_gain\":0.00041940973627261415,\"rsi_avg_loss\":0.0004676466903080555,\"rsi\":47},{\"period_id\":\"120m209963\",\"size\":\"120m\",\"time\":1511733600000,\"open\":0.2026,\"high\":0.20495,\"low\":0.201,\"close\":0.20325,\"volume\":635724.2675824101,\"close_time\":1511740746473,\"vwap\":0.20217414898359556,\"ema1\":0.20414193641815293,\"sma1\":0.20218731481481478,\"sma2\":0.20334450000000007,\"rsi_avg_gain\":0.00043090279290896753,\"rsi_avg_loss\":0.0005036195126394444,\"rsi\":46},{\"period_id\":\"120m209962\",\"size\":\"120m\",\"time\":1511726400000,\"open\":0.202,\"high\":0.20407,\"low\":0.201,\"close\":0.2026,\"volume\":465787.79993479024,\"close_time\":1511733598819,\"vwap\":0.20241567615055306,\"ema1\":0.20420344927457726,\"sma1\":0.20209481481481475,\"sma2\":0.20330283333333338,\"rsi_avg_gain\":0.000414049161594274,\"rsi_avg_loss\":0.0005423594751501709,\"rsi\":43},{\"period_id\":\"120m209961\",\"size\":\"120m\",\"time\":1511719200000,\"open\":0.2035,\"high\":0.20509,\"low\":0.2011,\"close\":0.202,\"volume\":861816.7927144095,\"close_time\":1511726348696,\"vwap\":0.2028329808164519,\"ema1\":0.2043140319831688,\"sma1\":0.201999074074074,\"sma2\":0.20326950000000005,\"rsi_avg_gain\":0.00039974525094768046,\"rsi_avg_loss\":0.0005840794347771072,\"rsi\":41},{\"period_id\":\"120m209960\",\"size\":\"120m\",\"time\":1511712000000,\"open\":0.20403,\"high\":0.2056,\"low\":0.203,\"close\":0.2035,\"volume\":878007.2638635704,\"close_time\":1511719170255,\"vwap\":0.20343603451489176,\"ema1\":0.20447362039580114,\"sma1\":0.20191018518518516,\"sma2\":0.20324416666666673,\"rsi_avg_gain\":0.00043049488563596356,\"rsi_avg_loss\":0.0005136240066830405,\"rsi\":46},{\"period_id\":\"120m209959\",\"size\":\"120m\",\"time\":1511704800000,\"open\":0.20491,\"high\":0.20563,\"low\":0.204,\"close\":0.204,\"volume\":516405.63428572,\"close_time\":1511711912210,\"vwap\":0.20486549122801145,\"ema1\":0.20454076662999432,\"sma1\":0.2018391666666666,\"sma2\":0.2032106666666667,\"rsi_avg_gain\":0.00046360987683873,\"rsi_avg_loss\":0.0005146720071971205,\"rsi\":47},{\"period_id\":\"120m209958\",\"size\":\"120m\",\"time\":1511697600000,\"open\":0.20503,\"high\":0.2057,\"low\":0.2039,\"close\":0.205,\"volume\":523334.76196654997,\"close_time\":1511704792409,\"vwap\":0.20486368566806146,\"ema1\":0.20457806088033875,\"sma1\":0.20177712962962957,\"sma2\":0.20317433333333337,\"rsi_avg_gain\":0.0004992721750570939,\"rsi_avg_loss\":0.000477339084673822,\"rsi\":51},{\"period_id\":\"120m209957\",\"size\":\"120m\",\"time\":1511690400000,\"open\":0.2046,\"high\":0.20647,\"low\":0.2034,\"close\":0.2058,\"volume\":814346.0664185897,\"close_time\":1511697529865,\"vwap\":0.20504752880341112,\"ema1\":0.20454896163070693,\"sma1\":0.20171722222222216,\"sma2\":0.2031126666666667,\"rsi_avg_gain\":0.0005376777269845626,\"rsi_avg_loss\":0.00045251901426411427,\"rsi\":54},{\"period_id\":\"120m209956\",\"size\":\"120m\",\"time\":1511683200000,\"open\":0.20497,\"high\":0.2061,\"low\":0.203,\"close\":0.20484,\"volume\":532312.11396432,\"close_time\":1511690345924,\"vwap\":0.20451015258361377,\"ema1\":0.2044626831224798,\"sma1\":0.2016079629629629,\"sma2\":0.20306733333333335,\"rsi_avg_gain\":0.0005051913982910661,\"rsi_avg_loss\":0.00048732816920750763,\"rsi\":51},{\"period_id\":\"120m209955\",\"size\":\"120m\",\"time\":1511676000000,\"open\":0.20519,\"high\":0.20636,\"low\":0.20321,\"close\":0.205,\"volume\":265488.4841529699,\"close_time\":1511683195091,\"vwap\":0.20445919208472504,\"ema1\":0.20443666126885773,\"sma1\":0.2015114814814814,\"sma2\":0.20302150000000005,\"rsi_avg_gain\":0.0005440522750826866,\"rsi_avg_loss\":0.0005125072591465471,\"rsi\":51},{\"period_id\":\"120m209954\",\"size\":\"120m\",\"time\":1511668800000,\"open\":0.20465,\"high\":0.20601,\"low\":0.20355,\"close\":0.20601,\"volume\":185167.23776778998,\"close_time\":1511675783840,\"vwap\":0.2045440534137507,\"ema1\":0.2043978103218824,\"sma1\":0.201427037037037,\"sma2\":0.20296283333333337,\"rsi_avg_gain\":0.0005859024500890471,\"rsi_avg_loss\":0.0004742385867732038,\"rsi\":55},{\"period_id\":\"120m209953\",\"size\":\"120m\",\"time\":1511661600000,\"open\":0.204,\"high\":0.20552,\"low\":0.2036,\"close\":0.20409,\"volume\":169137.82431805995,\"close_time\":1511668637151,\"vwap\":0.20440654856989926,\"ema1\":0.2042866248268398,\"sma1\":0.20133425925925919,\"sma2\":0.2028946666666667,\"rsi_avg_gain\":0.000483279561634358,\"rsi_avg_loss\":0.0005107184780634502,\"rsi\":49},{\"period_id\":\"120m209952\",\"size\":\"120m\",\"time\":1511654400000,\"open\":0.2072,\"high\":0.2072,\"low\":0.2036,\"close\":0.20431,\"volume\":606910.1181575202,\"close_time\":1511661581796,\"vwap\":0.20612861589955714,\"ema1\":0.20430018515972528,\"sma1\":0.2012018518518518,\"sma2\":0.2029205,\"rsi_avg_gain\":0.0005204549125293086,\"rsi_avg_loss\":0.000533081437914485,\"rsi\":49},{\"period_id\":\"120m209951\",\"size\":\"120m\",\"time\":1511647200000,\"open\":0.20798,\"high\":0.208,\"low\":0.2062,\"close\":0.20755,\"volume\":640851.1185827403,\"close_time\":1511654269926,\"vwap\":0.2072495196338993,\"ema1\":0.2042995082741891,\"sma1\":0.20115555555555548,\"sma2\":0.20279466666666665,\"rsi_avg_gain\":0.0005604899058007939,\"rsi_avg_loss\":0.00032485693313867456,\"rsi\":63},{\"period_id\":\"120m209950\",\"size\":\"120m\",\"time\":1511640000000,\"open\":0.2078,\"high\":0.208,\"low\":0.207,\"close\":0.20798,\"volume\":583376.7692860903,\"close_time\":1511647194817,\"vwap\":0.20779456332580334,\"ema1\":0.20407533643102974,\"sma1\":0.2011648148148147,\"sma2\":0.20277833333333334,\"rsi_avg_gain\":0.0006036045139393165,\"rsi_avg_loss\":0.0003167690049185737,\"rsi\":66},{\"period_id\":\"120m209949\",\"size\":\"120m\",\"time\":1511632800000,\"open\":0.20704,\"high\":0.208,\"low\":0.20698,\"close\":0.2078,\"volume\":693878.2040950699,\"close_time\":1511639923044,\"vwap\":0.20785678647969918,\"ema1\":0.20380604928834212,\"sma1\":0.20109999999999992,\"sma2\":0.2027316666666667,\"rsi_avg_gain\":0.0006361894765500344,\"rsi_avg_loss\":0.00034113585145077166,\"rsi\":65},{\"period_id\":\"120m209948\",\"size\":\"120m\",\"time\":1511625600000,\"open\":0.20765,\"high\":0.2085,\"low\":0.20601,\"close\":0.20747,\"volume\":1253601.6867732797,\"close_time\":1511632705865,\"vwap\":0.20733148551341848,\"ema1\":0.20353060441167606,\"sma1\":0.20111203703703695,\"sma2\":0.20269050000000002,\"rsi_avg_gain\":0.0006597425132077275,\"rsi_avg_loss\":0.0003673770707931387,\"rsi\":64},{\"period_id\":\"120m209947\",\"size\":\"120m\",\"time\":1511618400000,\"open\":0.20502,\"high\":0.209,\"low\":0.20309,\"close\":0.20766,\"volume\":2273022.4174963282,\"close_time\":1511625590556,\"vwap\":0.2075381715064331,\"ema1\":0.20325892195730888,\"sma1\":0.2012138888888888,\"sma2\":0.20263783333333332,\"rsi_avg_gain\":0.0007104919373006295,\"rsi_avg_loss\":0.0003810214608541476,\"rsi\":65},{\"period_id\":\"120m209946\",\"size\":\"120m\",\"time\":1511611200000,\"open\":0.204,\"high\":0.2065,\"low\":0.20301,\"close\":0.205,\"volume\":1099203.7551069506,\"close_time\":1511618393805,\"vwap\":0.20496237238602005,\"ema1\":0.202955399333675,\"sma1\":0.20133888888888882,\"sma2\":0.20258283333333332,\"rsi_avg_gain\":0.0005605297786314454,\"rsi_avg_loss\":0.00041033080399677436,\"rsi\":58},{\"period_id\":\"120m209945\",\"size\":\"120m\",\"time\":1511604000000,\"open\":0.20388,\"high\":0.2045,\"low\":0.20223,\"close\":0.20415,\"volume\":416695.1976930502,\"close_time\":1511611180381,\"vwap\":0.20373555862970175,\"ema1\":0.20281439239116986,\"sma1\":0.2010916666666666,\"sma2\":0.20257166666666668,\"rsi_avg_gain\":0.0005382628385261727,\"rsi_avg_loss\":0.0004418947119965262,\"rsi\":55},{\"period_id\":\"120m209944\",\"size\":\"120m\",\"time\":1511596800000,\"open\":0.204,\"high\":0.2043,\"low\":0.2,\"close\":0.2028,\"volume\":499000.01411457005,\"close_time\":1511603793654,\"vwap\":0.20341848151455902,\"ema1\":0.20272228152159535,\"sma1\":0.20085351851851846,\"sma2\":0.202525,\"rsi_avg_gain\":0.00047582151841280213,\"rsi_avg_loss\":0.0004758866129193359,\"rsi\":50},{\"period_id\":\"120m209943\",\"size\":\"120m\",\"time\":1511589600000,\"open\":0.20457,\"high\":0.20497,\"low\":0.202,\"close\":0.204,\"volume\":533388.0454640301,\"close_time\":1511596780677,\"vwap\":0.2037485547714274,\"ema1\":0.20271692162653296,\"sma1\":0.2006183333333333,\"sma2\":0.20245,\"rsi_avg_gain\":0.0005124231736753253,\"rsi_avg_loss\":0.0004201855831439018,\"rsi\":55},{\"period_id\":\"120m209942\",\"size\":\"120m\",\"time\":1511582400000,\"open\":0.20222,\"high\":0.20499,\"low\":0.20222,\"close\":0.20457,\"volume\":236988.47305102003,\"close_time\":1511589387547,\"vwap\":0.20355444521189867,\"ema1\":0.20262843346284556,\"sma1\":0.2003841666666666,\"sma2\":0.2023905,\"rsi_avg_gain\":0.0005518403408811196,\"rsi_avg_loss\":0.00040866139723189315,\"rsi\":57},{\"period_id\":\"120m209941\",\"size\":\"120m\",\"time\":1511575200000,\"open\":0.20348,\"high\":0.2045,\"low\":0.2016,\"close\":0.20349,\"volume\":265972.30650534004,\"close_time\":1511581116624,\"vwap\":0.2028298164873445,\"ema1\":0.20249453232235215,\"sma1\":0.20015703703703697,\"sma2\":0.20233233333333328,\"rsi_avg_gain\":0.000511212674795052,\"rsi_avg_loss\":0.00044009688932665416,\"rsi\":54},{\"period_id\":\"120m209940\",\"size\":\"120m\",\"time\":1511568000000,\"open\":0.20287,\"high\":0.20355,\"low\":0.2,\"close\":0.2035,\"volume\":868469.9902756196,\"close_time\":1511575142890,\"vwap\":0.20235205073363788,\"ema1\":0.2024258793790661,\"sma1\":0.19994731481481476,\"sma2\":0.20222166666666663,\"rsi_avg_gain\":0.0005505367267023637,\"rsi_avg_loss\":0.00047318126542870585,\"rsi\":54},{\"period_id\":\"120m209939\",\"size\":\"120m\",\"time\":1511560800000,\"open\":0.20138,\"high\":0.203,\"low\":0.2001,\"close\":0.20288,\"volume\":814359.5293872693,\"close_time\":1511567995794,\"vwap\":0.20223528503329347,\"ema1\":0.20235180209486375,\"sma1\":0.19972231481481478,\"sma2\":0.20209016666666665,\"rsi_avg_gain\":0.0005451933979871622,\"rsi_avg_loss\":0.0005095798243078371,\"rsi\":52},{\"period_id\":\"120m209938\",\"size\":\"120m\",\"time\":1511553600000,\"open\":0.202,\"high\":0.2029,\"low\":0.20001,\"close\":0.20138,\"volume\":909864.2336225205,\"close_time\":1511560780503,\"vwap\":0.20157982731766105,\"ema1\":0.2023153746531302,\"sma1\":0.1995009259259259,\"sma2\":0.2019838333333333,\"rsi_avg_gain\":0.00047174673629386696,\"rsi_avg_loss\":0.0005487782723315168,\"rsi\":46},{\"period_id\":\"120m209937\",\"size\":\"120m\",\"time\":1511546400000,\"open\":0.202,\"high\":0.20249,\"low\":0.20015,\"close\":0.202,\"volume\":696364.2606540502,\"close_time\":1511553569847,\"vwap\":0.20176818282267162,\"ema1\":0.2023798832498978,\"sma1\":0.19928240740740738,\"sma2\":0.20186599999999996,\"rsi_avg_gain\":0.0005080349467780106,\"rsi_avg_loss\":0.0005432996778954789,\"rsi\":48},{\"period_id\":\"120m209936\",\"size\":\"120m\",\"time\":1511539200000,\"open\":0.20135,\"high\":0.2028,\"low\":0.1999,\"close\":0.202,\"volume\":838008.0614882995,\"close_time\":1511546341797,\"vwap\":0.20092341173335265,\"ema1\":0.20240608209471833,\"sma1\":0.19905398148148143,\"sma2\":0.2017648333333333,\"rsi_avg_gain\":0.0005471145580686268,\"rsi_avg_loss\":0.0005850919608105158,\"rsi\":48},{\"period_id\":\"120m209935\",\"size\":\"120m\",\"time\":1511532000000,\"open\":0.20116,\"high\":0.20293,\"low\":0.199,\"close\":0.201,\"volume\":1265678.3266009598,\"close_time\":1511539137387,\"vwap\":0.20009596306889665,\"ema1\":0.20243408775642305,\"sma1\":0.19883574074074073,\"sma2\":0.20167316666666663,\"rsi_avg_gain\":0.0005122772163815981,\"rsi_avg_loss\":0.0006300990347190171,\"rsi\":45},{\"period_id\":\"120m209934\",\"size\":\"120m\",\"time\":1511524800000,\"open\":0.20247,\"high\":0.20311,\"low\":0.20045,\"close\":0.20045,\"volume\":1051248.8631149305,\"close_time\":1511531987163,\"vwap\":0.20094657069914718,\"ema1\":0.2025329903603143,\"sma1\":0.1986217592592592,\"sma2\":0.20158066666666663,\"rsi_avg_gain\":0.0005093754637955655,\"rsi_avg_loss\":0.0006785681912358645,\"rsi\":43},{\"period_id\":\"120m209933\",\"size\":\"120m\",\"time\":1511517600000,\"open\":0.20097,\"high\":0.203,\"low\":0.2,\"close\":0.20129,\"volume\":847409.5129088698,\"close_time\":1511524791332,\"vwap\":0.20227396604124256,\"ema1\":0.2026766448679222,\"sma1\":0.1984087962962962,\"sma2\":0.20148833333333335,\"rsi_avg_gain\":0.0005485581917798397,\"rsi_avg_loss\":0.0006661503597924688,\"rsi\":45},{\"period_id\":\"120m209932\",\"size\":\"120m\",\"time\":1511510400000,\"open\":0.2011,\"high\":0.2052,\"low\":0.198,\"close\":0.20099,\"volume\":2117724.14763733,\"close_time\":1511517580684,\"vwap\":0.20062749425697735,\"ema1\":0.20277227554846855,\"sma1\":0.1981754629629629,\"sma2\":0.20136316666666668,\"rsi_avg_gain\":0.0005676780526859816,\"rsi_avg_loss\":0.0007173926951611203,\"rsi\":44},{\"period_id\":\"120m209931\",\"size\":\"120m\",\"time\":1511503200000,\"open\":0.2038,\"high\":0.20585,\"low\":0.20116,\"close\":0.20116,\"volume\":970807.4843226504,\"close_time\":1511510399395,\"vwap\":0.20170131884662085,\"ema1\":0.20289519110353535,\"sma1\":0.1979268518518518,\"sma2\":0.20119150000000005,\"rsi_avg_gain\":0.0006113455952002879,\"rsi_avg_loss\":0.0007594998255581292,\"rsi\":45},{\"period_id\":\"120m209930\",\"size\":\"120m\",\"time\":1511496000000,\"open\":0.20358,\"high\":0.20486,\"low\":0.20251,\"close\":0.2038,\"volume\":746805.5528653798,\"close_time\":1511503045501,\"vwap\":0.20341934772823428,\"ema1\":0.2030148594555033,\"sma1\":0.1976733333333333,\"sma2\":0.20100000000000004,\"rsi_avg_gain\":0.0006583721794464639,\"rsi_avg_loss\":0.0006148459659856773,\"rsi\":52},{\"period_id\":\"120m209929\",\"size\":\"120m\",\"time\":1511488800000,\"open\":0.20201,\"high\":0.20798,\"low\":0.20201,\"close\":0.20358,\"volume\":230578.55803913996,\"close_time\":1511495740182,\"vwap\":0.20357003176939717,\"ema1\":0.2029607118317449,\"sma1\":0.19739055555555549,\"sma2\":0.20084200000000008,\"rsi_avg_gain\":0.0006920931163269614,\"rsi_avg_loss\":0.0006621418095230372,\"rsi\":51},{\"period_id\":\"120m209928\",\"size\":\"120m\",\"time\":1511481600000,\"open\":0.2052,\"high\":0.20711,\"low\":0.20201,\"close\":0.20253,\"volume\":1199177.8151506893,\"close_time\":1511488793439,\"vwap\":0.20348641428325542,\"ema1\":0.20291800230289972,\"sma1\":0.19711601851851843,\"sma2\":0.2006783333333334,\"rsi_avg_gain\":0.0006645618175828797,\"rsi_avg_loss\":0.0007130757948709632,\"rsi\":48},{\"period_id\":\"120m209927\",\"size\":\"120m\",\"time\":1511474400000,\"open\":0.2079,\"high\":0.2095,\"low\":0.2053,\"close\":0.2053,\"volume\":1323081.9437753898,\"close_time\":1511481589039,\"vwap\":0.20674856888904047,\"ema1\":0.20294476108241005,\"sma1\":0.1968067592592592,\"sma2\":0.2004733333333334,\"rsi_avg_gain\":0.0007156819573969473,\"rsi_avg_loss\":0.0005548508560148817,\"rsi\":56},{\"period_id\":\"120m209926\",\"size\":\"120m\",\"time\":1511467200000,\"open\":0.2083,\"high\":0.21,\"low\":0.20729,\"close\":0.208,\"volume\":1275330.9965464398,\"close_time\":1511474376676,\"vwap\":0.20794946292465005,\"ema1\":0.20278233081223143,\"sma1\":0.19650212962962957,\"sma2\":0.20023533333333343,\"rsi_avg_gain\":0.000770734415658251,\"rsi_avg_loss\":0.00038983938340064327,\"rsi\":66},{\"period_id\":\"120m209925\",\"size\":\"120m\",\"time\":1511460000000,\"open\":0.20701,\"high\":0.2083,\"low\":0.20646,\"close\":0.2083,\"volume\":1232249.5481780006,\"close_time\":1511467164713,\"vwap\":0.20786236515869283,\"ema1\":0.20242249155790257,\"sma1\":0.1962262037037037,\"sma2\":0.19996883333333343,\"rsi_avg_gain\":0.0008300216784011934,\"rsi_avg_loss\":0.00039675010520069106,\"rsi\":68},{\"period_id\":\"120m209924\",\"size\":\"120m\",\"time\":1511452800000,\"open\":0.204,\"high\":0.208,\"low\":0.20257,\"close\":0.20701,\"volume\":3353333.3538510166,\"close_time\":1511459973168,\"vwap\":0.20722409828416308,\"ema1\":0.20201714614810273,\"sma1\":0.19595518518518512,\"sma2\":0.1997133333333334,\"rsi_avg_gain\":0.0007946387305858996,\"rsi_avg_loss\":0.0004272693440622827,\"rsi\":65},{\"period_id\":\"120m209923\",\"size\":\"120m\",\"time\":1511445600000,\"open\":0.2038,\"high\":0.204,\"low\":0.20277,\"close\":0.204,\"volume\":1068651.5517517899,\"close_time\":1511452787259,\"vwap\":0.2039010554694787,\"ema1\":0.20167281139969603,\"sma1\":0.1957237037037037,\"sma2\":0.1995003333333334,\"rsi_avg_gain\":0.0006242263252463525,\"rsi_avg_loss\":0.0004601362166824583,\"rsi\":58},{\"period_id\":\"120m209922\",\"size\":\"120m\",\"time\":1511438400000,\"open\":0.2015,\"high\":0.20473,\"low\":0.20108,\"close\":0.20395,\"volume\":1206952.5871110403,\"close_time\":1511445599875,\"vwap\":0.20407048117953952,\"ema1\":0.20151231563415783,\"sma1\":0.19546222222222218,\"sma2\":0.19929783333333342,\"rsi_avg_gain\":0.0006683975810345339,\"rsi_avg_loss\":0.0004955313102734167,\"rsi\":57},{\"period_id\":\"120m209921\",\"size\":\"120m\",\"time\":1511431200000,\"open\":0.20205,\"high\":0.203,\"low\":0.2004,\"close\":0.20249,\"volume\":1267427.7514401998,\"close_time\":1511438314499,\"vwap\":0.20171731057624948,\"ema1\":0.2013441994709963,\"sma1\":0.19522138888888882,\"sma2\":0.19912800000000005,\"rsi_avg_gain\":0.0006075050872679604,\"rsi_avg_loss\":0.0005336491033713719,\"rsi\":53},{\"period_id\":\"120m209920\",\"size\":\"120m\",\"time\":1511424000000,\"open\":0.20271,\"high\":0.20348,\"low\":0.201,\"close\":0.20207,\"volume\":1254282.6533809998,\"close_time\":1511431188336,\"vwap\":0.20212064040075814,\"ema1\":0.2012651787448581,\"sma1\":0.19496888888888883,\"sma2\":0.19896916666666672,\"rsi_avg_gain\":0.0006219285555193417,\"rsi_avg_loss\":0.000574699034399939,\"rsi\":52},{\"period_id\":\"120m209919\",\"size\":\"120m\",\"time\":1511416800000,\"open\":0.20352,\"high\":0.20488,\"low\":0.2016,\"close\":0.2027,\"volume\":783677.1050473005,\"close_time\":1511423997249,\"vwap\":0.20372786658810438,\"ema1\":0.2012096738307104,\"sma1\":0.19470703703703704,\"sma2\":0.1987408333333334,\"rsi_avg_gain\":0.0006697692136362142,\"rsi_avg_loss\":0.0005704451139691657,\"rsi\":54},{\"period_id\":\"120m209918\",\"size\":\"120m\",\"time\":1511409600000,\"open\":0.20235,\"high\":0.2044,\"low\":0.20158,\"close\":0.20182,\"volume\":332666.98047993996,\"close_time\":1511416739820,\"vwap\":0.20321561272317998,\"ema1\":0.20110689271558696,\"sma1\":0.19445148148148148,\"sma2\":0.19854850000000004,\"rsi_avg_gain\":0.0006535976146851543,\"rsi_avg_loss\":0.0006143255073514092,\"rsi\":52},{\"period_id\":\"120m209917\",\"size\":\"120m\",\"time\":1511402400000,\"open\":0.20245,\"high\":0.20319,\"low\":0.2015,\"close\":0.20245,\"volume\":94018.41895133,\"close_time\":1511409541858,\"vwap\":0.20323750020918455,\"ema1\":0.2010577129028688,\"sma1\":0.19421824074074076,\"sma2\":0.19830600000000007,\"rsi_avg_gain\":0.0007038743542763201,\"rsi_avg_loss\":0.0006131197771476722,\"rsi\":53},{\"period_id\":\"120m209916\",\"size\":\"120m\",\"time\":1511395200000,\"open\":0.20288,\"high\":0.20406,\"low\":0.2015,\"close\":0.20246,\"volume\":905025.8519175604,\"close_time\":1511402350399,\"vwap\":0.203247951504314,\"ema1\":0.20096169310306666,\"sma1\":0.1939537962962963,\"sma2\":0.1980830000000001,\"rsi_avg_gain\":0.0007580185353744986,\"rsi_avg_loss\":0.0006595136061590309,\"rsi\":53},{\"period_id\":\"120m209915\",\"size\":\"120m\",\"time\":1511388000000,\"open\":0.20468,\"high\":0.205,\"low\":0.2016,\"close\":0.20332,\"volume\":1224339.8817371898,\"close_time\":1511395061474,\"vwap\":0.2034852105398524,\"ema1\":0.20085836159293333,\"sma1\":0.19366212962962964,\"sma2\":0.1979130000000001,\"rsi_avg_gain\":0.0008163276534802293,\"rsi_avg_loss\":0.0006440915758635717,\"rsi\":56},{\"period_id\":\"120m209914\",\"size\":\"120m\",\"time\":1511380800000,\"open\":0.20168,\"high\":0.20488,\"low\":0.20151,\"close\":0.2046,\"volume\":1173801.88607649,\"close_time\":1511387995458,\"vwap\":0.2039965347476998,\"ema1\":0.20068859342692874,\"sma1\":0.19336222222222224,\"sma2\":0.19770300000000005,\"rsi_avg_gain\":0.0008791220883633238,\"rsi_avg_loss\":0.0005951755432376923,\"rsi\":60},{\"period_id\":\"120m209913\",\"size\":\"120m\",\"time\":1511373600000,\"open\":0.2012,\"high\":0.20292,\"low\":0.2,\"close\":0.20168,\"volume\":813905.8158250905,\"close_time\":1511380776554,\"vwap\":0.20171442938978507,\"ema1\":0.20041884124947554,\"sma1\":0.1930805555555556,\"sma2\":0.19755000000000006,\"rsi_avg_gain\":0.0007221314797758867,\"rsi_avg_loss\":0.0006409582773328993,\"rsi\":53},{\"period_id\":\"120m209912\",\"size\":\"120m\",\"time\":1511366400000,\"open\":0.20163,\"high\":0.204,\"low\":0.20009,\"close\":0.20294,\"volume\":1788743.1193710098,\"close_time\":1511373588986,\"vwap\":0.20267822294441754,\"ema1\":0.20033186478392212,\"sma1\":0.192797962962963,\"sma2\":0.1973983333333334,\"rsi_avg_gain\":0.0007776800551432626,\"rsi_avg_loss\":0.000593339683281583,\"rsi\":57},{\"period_id\":\"120m209911\",\"size\":\"120m\",\"time\":1511359200000,\"open\":0.20138,\"high\":0.202,\"low\":0.2,\"close\":0.20124,\"volume\":1000537.6612222702,\"close_time\":1511366359171,\"vwap\":0.20105266378764935,\"ema1\":0.20015199338970985,\"sma1\":0.19253407407407414,\"sma2\":0.1972928333333334,\"rsi_avg_gain\":0.0007067323670773591,\"rsi_avg_loss\":0.0006389811973801663,\"rsi\":53},{\"period_id\":\"120m209910\",\"size\":\"120m\",\"time\":1511352000000,\"open\":0.20086,\"high\":0.20185,\"low\":0.2,\"close\":0.20141,\"volume\":970720.5860405697,\"close_time\":1511359173776,\"vwap\":0.20075917467424848,\"ema1\":0.20007695845106915,\"sma1\":0.19227620370370374,\"sma2\":0.19719100000000003,\"rsi_avg_gain\":0.0007610963953140791,\"rsi_avg_loss\":0.0006750566741017173,\"rsi\":53},{\"period_id\":\"120m209909\",\"size\":\"120m\",\"time\":1511344800000,\"open\":0.20004,\"high\":0.202,\"low\":0.2,\"close\":0.20086,\"volume\":752880.6238023305,\"close_time\":1511351996965,\"vwap\":0.2012009398929307,\"ema1\":0.1999850245511429,\"sma1\":0.19202620370370374,\"sma2\":0.1971566666666667,\"rsi_avg_gain\":0.0007773345795690085,\"rsi_avg_loss\":0.0007269841105710801,\"rsi\":52},{\"period_id\":\"120m209908\",\"size\":\"120m\",\"time\":1511337600000,\"open\":0.20198,\"high\":0.202,\"low\":0.19969,\"close\":0.20007,\"volume\":653744.4946405801,\"close_time\":1511344770041,\"vwap\":0.2012529933751618,\"ema1\":0.19992468141673894,\"sma1\":0.19176601851851857,\"sma2\":0.19703050000000003,\"rsi_avg_gain\":0.0007763603164589312,\"rsi_avg_loss\":0.000782905965230394,\"rsi\":50},{\"period_id\":\"120m209907\",\"size\":\"120m\",\"time\":1511330400000,\"open\":0.20033,\"high\":0.203,\"low\":0.2,\"close\":0.202,\"volume\":652858.3084820701,\"close_time\":1511337347406,\"vwap\":0.20210238721388504,\"ema1\":0.19991465944547956,\"sma1\":0.19146509259259265,\"sma2\":0.19679716666666672,\"rsi_avg_gain\":0.000836080340801926,\"rsi_avg_loss\":0.0006946679625558077,\"rsi\":55},{\"period_id\":\"120m209906\",\"size\":\"120m\",\"time\":1511323200000,\"open\":0.1992,\"high\":0.2008,\"low\":0.199,\"close\":0.20078,\"volume\":199170.53298643001,\"close_time\":1511330223591,\"vwap\":0.19909113203179474,\"ema1\":0.19977084285551264,\"sma1\":0.19120675925925928,\"sma2\":0.19668500000000003,\"rsi_avg_gain\":0.000806548059325149,\"rsi_avg_loss\":0.0007481039596754852,\"rsi\":52},{\"period_id\":\"120m209905\",\"size\":\"120m\",\"time\":1511316000000,\"open\":0.19768,\"high\":0.19949,\"low\":0.19766,\"close\":0.199,\"volume\":139487.97756473004,\"close_time\":1511323109528,\"vwap\":0.1983371407448135,\"ema1\":0.19970124581106524,\"sma1\":0.19096027777777783,\"sma2\":0.19655366666666668,\"rsi_avg_gain\":0.0007316671408117008,\"rsi_avg_loss\":0.000805650418112061,\"rsi\":48},{\"period_id\":\"120m209904\",\"size\":\"120m\",\"time\":1511308800000,\"open\":0.1983,\"high\":0.1995,\"low\":0.1976,\"close\":0.19772,\"volume\":297919.29636284005,\"close_time\":1511315945772,\"vwap\":0.19813146936192208,\"ema1\":0.19974960759113872,\"sma1\":0.1907093518518519,\"sma2\":0.19639733333333337,\"rsi_avg_gain\":0.0006894876901049082,\"rsi_avg_loss\":0.0008676235271976041,\"rsi\":44},{\"period_id\":\"120m209903\",\"size\":\"120m\",\"time\":1511301600000,\"open\":0.20021,\"high\":0.2013,\"low\":0.198,\"close\":0.19832,\"volume\":1570212.2911061011,\"close_time\":1511308760197,\"vwap\":0.19921501300073613,\"ema1\":0.19988958052845862,\"sma1\":0.19041935185185185,\"sma2\":0.19626366666666673,\"rsi_avg_gain\":0.0007425252047283627,\"rsi_avg_loss\":0.0008882099523666514,\"rsi\":46},{\"period_id\":\"120m209902\",\"size\":\"120m\",\"time\":1511294400000,\"open\":0.20067,\"high\":0.2013,\"low\":0.2,\"close\":0.2001,\"volume\":826936.2524366702,\"close_time\":1511301577901,\"vwap\":0.20064246643424494,\"ema1\":0.19999782746145578,\"sma1\":0.1901387962962963,\"sma2\":0.19630866666666674,\"rsi_avg_gain\":0.000799642528169006,\"rsi_avg_loss\":0.0008196107179333166,\"rsi\":49},{\"period_id\":\"120m209901\",\"size\":\"120m\",\"time\":1511287200000,\"open\":0.20198,\"high\":0.204,\"low\":0.2,\"close\":0.2,\"volume\":1658189.0110132692,\"close_time\":1511294393668,\"vwap\":0.20104620216614918,\"ema1\":0.1999907810794872,\"sma1\":0.18983324074074073,\"sma2\":0.19622533333333342,\"rsi_avg_gain\":0.0008534611841820073,\"rsi_avg_loss\":0.0008826576962358794,\"rsi\":49},{\"period_id\":\"120m209900\",\"size\":\"120m\",\"time\":1511280000000,\"open\":0.20109,\"high\":0.202,\"low\":0.2006,\"close\":0.20198,\"volume\":655194.4879848204,\"close_time\":1511287150410,\"vwap\":0.20161809113298534,\"ema1\":0.19999014529186562,\"sma1\":0.1895647222222222,\"sma2\":0.1961323333333334,\"rsi_avg_gain\":0.0009191120445037002,\"rsi_avg_loss\":0.000798246749792487,\"rsi\":54},{\"period_id\":\"120m209899\",\"size\":\"120m\",\"time\":1511272800000,\"open\":0.20318,\"high\":0.20318,\"low\":0.2004,\"close\":0.20199,\"volume\":1154399.37290013,\"close_time\":1511279988375,\"vwap\":0.2017363596844976,\"ema1\":0.19985291393268395,\"sma1\":0.18928194444444438,\"sma2\":0.1961825000000001,\"rsi_avg_gain\":0.000989812971003985,\"rsi_avg_loss\":0.0008588811151611391,\"rsi\":54},{\"period_id\":\"120m209898\",\"size\":\"120m\",\"time\":1511265600000,\"open\":0.203,\"high\":0.20351,\"low\":0.20104,\"close\":0.20282,\"volume\":722255.2621213497,\"close_time\":1511272705668,\"vwap\":0.20227266776028685,\"ema1\":0.19970552868666216,\"sma1\":0.18902351851851848,\"sma2\":0.19646883333333343,\"rsi_avg_gain\":0.0010659524303119837,\"rsi_avg_loss\":0.0008611027394043039,\"rsi\":55},{\"period_id\":\"120m209897\",\"size\":\"120m\",\"time\":1511258400000,\"open\":0.20344,\"high\":0.20371,\"low\":0.20164,\"close\":0.2021,\"volume\":1164843.6084483103,\"close_time\":1511265582357,\"vwap\":0.20321118495987647,\"ema1\":0.19949073756160438,\"sma1\":0.18876972222222219,\"sma2\":0.19605050000000007,\"rsi_avg_gain\":0.001092564155720598,\"rsi_avg_loss\":0.0009273414116661734,\"rsi\":54},{\"period_id\":\"120m209896\",\"size\":\"120m\",\"time\":1511251200000,\"open\":0.20227,\"high\":0.20492,\"low\":0.202,\"close\":0.20212,\"volume\":661131.9622503897,\"close_time\":1511258386621,\"vwap\":0.2030225235088341,\"ema1\":0.1993107884279219,\"sma1\":0.1884599074074074,\"sma2\":0.1956318333333334,\"rsi_avg_gain\":0.00117660755231449,\"rsi_avg_loss\":0.0009971369048712643,\"rsi\":54},{\"period_id\":\"120m209895\",\"size\":\"120m\",\"time\":1511244000000,\"open\":0.20199,\"high\":0.20549,\"low\":0.20093,\"close\":0.20225,\"volume\":1112220.7707674399,\"close_time\":1511251168939,\"vwap\":0.2026796936877186,\"ema1\":0.19911704969881308,\"sma1\":0.18814046296296288,\"sma2\":0.19523766666666673,\"rsi_avg_gain\":0.0012671158255694506,\"rsi_avg_loss\":0.001063839743707514,\"rsi\":54},{\"period_id\":\"120m209894\",\"size\":\"120m\",\"time\":1511236800000,\"open\":0.2,\"high\":0.20306,\"low\":0.197,\"close\":0.20249,\"volume\":767532.2100792999,\"close_time\":1511243992356,\"vwap\":0.1994667037579334,\"ema1\":0.19890098416080018,\"sma1\":0.18786722222222213,\"sma2\":0.19485366666666673,\"rsi_avg_gain\":0.0013645862736901776,\"rsi_avg_loss\":0.0011272120316850158,\"rsi\":55},{\"period_id\":\"120m209893\",\"size\":\"120m\",\"time\":1511229600000,\"open\":0.20572,\"high\":0.206,\"low\":0.2,\"close\":0.2,\"volume\":808537.5062438501,\"close_time\":1511236760328,\"vwap\":0.2009876067956292,\"ema1\":0.19865346582706225,\"sma1\":0.1875750925925925,\"sma2\":0.19448700000000005,\"rsi_avg_gain\":0.0012780159870509611,\"rsi_avg_loss\":0.00121392064950694,\"rsi\":51},{\"period_id\":\"120m209892\",\"size\":\"120m\",\"time\":1511222400000,\"open\":0.2,\"high\":0.20599,\"low\":0.2,\"close\":0.20586,\"volume\":658444.3325874807,\"close_time\":1511228996424,\"vwap\":0.20070647413852383,\"ema1\":0.1985606014013424,\"sma1\":0.18731314814814812,\"sma2\":0.19405600000000003,\"rsi_avg_gain\":0.0013763249091318043,\"rsi_avg_loss\":0.0008565299302382449,\"rsi\":62},{\"period_id\":\"120m209891\",\"size\":\"120m\",\"time\":1511215200000,\"open\":0.2075,\"high\":0.20788,\"low\":0.1992,\"close\":0.2,\"volume\":2154059.49515276,\"close_time\":1511222392685,\"vwap\":0.20006644821768194,\"ema1\":0.19805719460143498,\"sma1\":0.18704111111111102,\"sma2\":0.19368600000000005,\"rsi_avg_gain\":0.001031426825218868,\"rsi_avg_loss\":0.0009224168479488791,\"rsi\":53},{\"period_id\":\"120m209890\",\"size\":\"120m\",\"time\":1511208000000,\"open\":0.205,\"high\":0.2079,\"low\":0.204,\"close\":0.207,\"volume\":1726159.0560208398,\"close_time\":1511215187487,\"vwap\":0.20773909061566592,\"ema1\":0.1979232080222236,\"sma1\":0.18678259259259256,\"sma2\":0.19319733333333336,\"rsi_avg_gain\":0.001110767350235704,\"rsi_avg_loss\":0.00045491045163725607,\"rsi\":71},{\"period_id\":\"120m209889\",\"size\":\"120m\",\"time\":1511200800000,\"open\":0.205,\"high\":0.20791,\"low\":0.20401,\"close\":0.205,\"volume\":1288062.0671158903,\"close_time\":1511207996129,\"vwap\":0.2054225032682041,\"ema1\":0.19729722236858385,\"sma1\":0.186524537037037,\"sma2\":0.19271800000000003,\"rsi_avg_gain\":0.0010423648387153735,\"rsi_avg_loss\":0.0004899035633016604,\"rsi\":68},{\"period_id\":\"120m209888\",\"size\":\"120m\",\"time\":1511193600000,\"open\":0.2045,\"high\":0.205,\"low\":0.2012,\"close\":0.205,\"volume\":1174516.4974492008,\"close_time\":1511200734154,\"vwap\":0.20488150649203762,\"ema1\":0.1967659963250379,\"sma1\":0.18628749999999994,\"sma2\":0.19226016666666668,\"rsi_avg_gain\":0.0011225467493857868,\"rsi_avg_loss\":0.0005275884527864035,\"rsi\":68},{\"period_id\":\"120m209887\",\"size\":\"120m\",\"time\":1511186400000,\"open\":0.2017,\"high\":0.20486,\"low\":0.20116,\"close\":0.2045,\"volume\":1245355.5586386702,\"close_time\":1511193599796,\"vwap\":0.20424355389830592,\"ema1\":0.19619813400262673,\"sma1\":0.18600129629629628,\"sma2\":0.19182966666666668,\"rsi_avg_gain\":0.0011704349608770012,\"rsi_avg_loss\":0.0005681721799238192,\"rsi\":67},{\"period_id\":\"120m209886\",\"size\":\"120m\",\"time\":1511179200000,\"open\":0.20345,\"high\":0.20345,\"low\":0.1993,\"close\":0.2017,\"volume\":920490.0952195205,\"close_time\":1511186377172,\"vwap\":0.2017378181894289,\"ema1\":0.19562559152004927,\"sma1\":0.18574498444444443,\"sma2\":0.1914503333333334,\"rsi_avg_gain\":0.0010450838040213862,\"rsi_avg_loss\":0.0006118777322256514,\"rsi\":63},{\"period_id\":\"120m209885\",\"size\":\"120m\",\"time\":1511172000000,\"open\":0.1999,\"high\":0.20397,\"low\":0.1993,\"close\":0.20348,\"volume\":1839783.4880044202,\"close_time\":1511179183122,\"vwap\":0.202674902754815,\"ema1\":0.19520666679729404,\"sma1\":0.18553609555555556,\"sma2\":0.1910556666666667,\"rsi_avg_gain\":0.0011254748658691852,\"rsi_avg_loss\":0.0005220221731660858,\"rsi\":68},{\"period_id\":\"120m209884\",\"size\":\"120m\",\"time\":1511164800000,\"open\":0.19989,\"high\":0.201,\"low\":0.199,\"close\":0.2,\"volume\":915706.22185213,\"close_time\":1511171992849,\"vwap\":0.19998659639202504,\"ema1\":0.19463609209365915,\"sma1\":0.18535091037037038,\"sma2\":0.19070833333333337,\"rsi_avg_gain\":0.0009443575478591237,\"rsi_avg_loss\":0.0005621777249480923,\"rsi\":63},{\"period_id\":\"120m209883\",\"size\":\"120m\",\"time\":1511157600000,\"open\":0.20058,\"high\":0.20097,\"low\":0.19501,\"close\":0.1995,\"volume\":831625.2586599299,\"close_time\":1511164735130,\"vwap\":0.20061037659910025,\"ema1\":0.19426616741046324,\"sma1\":0.18514146592592595,\"sma2\":0.19035000000000002,\"rsi_avg_gain\":0.0009785388976944409,\"rsi_avg_loss\":0.0006054221653287148,\"rsi\":62},{\"period_id\":\"120m209882\",\"size\":\"120m\",\"time\":1511150400000,\"open\":0.19996,\"high\":0.205,\"low\":0.19909,\"close\":0.201,\"volume\":1616283.4260598102,\"close_time\":1511157581859,\"vwap\":0.2017459518268084,\"ema1\":0.19390521343877104,\"sma1\":0.18488220666666672,\"sma2\":0.18994083333333336,\"rsi_avg_gain\":0.0010538111205940133,\"rsi_avg_loss\":0.0005366084857386159,\"rsi\":66},{\"period_id\":\"120m209881\",\"size\":\"120m\",\"time\":1511143200000,\"open\":0.19688,\"high\":0.2,\"low\":0.19686,\"close\":0.2,\"volume\":1187892.34910101,\"close_time\":1511150148973,\"vwap\":0.19898296310418678,\"ema1\":0.1934159178138587,\"sma1\":0.18466924370370372,\"sma2\":0.18954200000000002,\"rsi_avg_gain\":0.0010579504375627833,\"rsi_avg_loss\":0.0005778860615646633,\"rsi\":65},{\"period_id\":\"120m209880\",\"size\":\"120m\",\"time\":1511136000000,\"open\":0.195,\"high\":0.19686,\"low\":0.19494,\"close\":0.19686,\"volume\":818428.4982289891,\"close_time\":1511143199207,\"vwap\":0.19524056502512874,\"ema1\":0.19296184318033172,\"sma1\":0.18448785481481483,\"sma2\":0.18920450000000003,\"rsi_avg_gain\":0.0008977927789137664,\"rsi_avg_loss\":0.0006223388355311759,\"rsi\":59},{\"period_id\":\"120m209879\",\"size\":\"120m\",\"time\":1511128800000,\"open\":0.19498,\"high\":0.19587,\"low\":0.19353,\"close\":0.19499,\"volume\":774808.4024525699,\"close_time\":1511135815175,\"vwap\":0.1942812644542739,\"ema1\":0.19269300477897527,\"sma1\":0.1843316511111111,\"sma2\":0.188885,\"rsi_avg_gain\":0.0008230076080609784,\"rsi_avg_loss\":0.0006702110536489587,\"rsi\":55},{\"period_id\":\"120m209878\",\"size\":\"120m\",\"time\":1511121600000,\"open\":0.19592,\"high\":0.19595,\"low\":0.1938,\"close\":0.195,\"volume\":735082.8656450599,\"close_time\":1511128784054,\"vwap\":0.1943137984190174,\"ema1\":0.19253459131545633,\"sma1\":0.18414220666666664,\"sma2\":0.18856866666666666,\"rsi_avg_gain\":0.0008863158856041305,\"rsi_avg_loss\":0.0007209965193142625,\"rsi\":55},{\"period_id\":\"120m209877\",\"size\":\"120m\",\"time\":1511114400000,\"open\":0.19593,\"high\":0.19599,\"low\":0.19311,\"close\":0.19493,\"volume\":542808.07858512,\"close_time\":1511121526078,\"vwap\":0.19534340003391995,\"ema1\":0.19236456313031539,\"sma1\":0.18396822518518513,\"sma2\":0.1882625,\"rsi_avg_gain\":0.0009491094152659857,\"rsi_avg_loss\":0.0007764577900307443,\"rsi\":55},{\"period_id\":\"120m209876\",\"size\":\"120m\",\"time\":1511107200000,\"open\":0.195,\"high\":0.1975,\"low\":0.19462,\"close\":0.19593,\"volume\":736890.6753688401,\"close_time\":1511114338732,\"vwap\":0.19600360847997822,\"ema1\":0.19218763644964748,\"sma1\":0.1837876696296296,\"sma2\":0.18795900000000001,\"rsi_avg_gain\":0.0010221178318249077,\"rsi_avg_loss\":0.0007592622354177246,\"rsi\":57},{\"period_id\":\"120m209875\",\"size\":\"120m\",\"time\":1511100000000,\"open\":0.1949,\"high\":0.1969,\"low\":0.19441,\"close\":0.1955,\"volume\":602072.8910201305,\"close_time\":1511107180197,\"vwap\":0.19571032982248499,\"ema1\":0.19192954241169213,\"sma1\":0.183620077037037,\"sma2\":0.18766566666666668,\"rsi_avg_gain\":0.0010676653573499016,\"rsi_avg_loss\":0.0008176670227575496,\"rsi\":57},{\"period_id\":\"120m209874\",\"size\":\"120m\",\"time\":1511092800000,\"open\":0.19514,\"high\":0.19625,\"low\":0.19305,\"close\":0.1949,\"volume\":664404.7235030198,\"close_time\":1511099955847,\"vwap\":0.19619077146997685,\"ema1\":0.19168330395732608,\"sma1\":0.18350841037037036,\"sma2\":0.18735733333333332,\"rsi_avg_gain\":0.001103639615607585,\"rsi_avg_loss\":0.0008805644860465919,\"rsi\":56},{\"period_id\":\"120m209873\",\"size\":\"120m\",\"time\":1511085600000,\"open\":0.19348,\"high\":0.199,\"low\":0.19165,\"close\":0.19575,\"volume\":1621898.0825811503,\"close_time\":1511092680789,\"vwap\":0.19673173447417272,\"ema1\":0.19146146285093477,\"sma1\":0.18338970666666668,\"sma2\":0.18702149999999998,\"rsi_avg_gain\":0.0011885349706543223,\"rsi_avg_loss\":0.0008829156003578668,\"rsi\":57},{\"period_id\":\"120m209872\",\"size\":\"120m\",\"time\":1511078400000,\"open\":0.19096,\"high\":0.194,\"low\":0.18996,\"close\":0.19348,\"volume\":852182.0922368199,\"close_time\":1511085595664,\"vwap\":0.19171801354191184,\"ema1\":0.19116570166824062,\"sma1\":0.1833113733333333,\"sma2\":0.1867268333333333,\"rsi_avg_gain\":0.0011053453530123476,\"rsi_avg_loss\":0.0009508321850007796,\"rsi\":54},{\"period_id\":\"120m209871\",\"size\":\"120m\",\"time\":1511071200000,\"open\":0.19277,\"high\":0.19329,\"low\":0.19,\"close\":0.19086,\"volume\":458432.8250426699,\"close_time\":1511078362857,\"vwap\":0.1907990661653836,\"ema1\":0.19100609488673997,\"sma1\":0.18325933629629632,\"sma2\":0.18645166666666663,\"rsi_avg_gain\":0.0009888334570902196,\"rsi_avg_loss\":0.0010239731223085319,\"rsi\":49},{\"period_id\":\"120m209870\",\"size\":\"120m\",\"time\":1511064000000,\"open\":0.194,\"high\":0.19403,\"low\":0.1923,\"close\":0.19231,\"volume\":53869.48320576,\"close_time\":1511071090724,\"vwap\":0.1929673410721857,\"ema1\":0.19101617039617033,\"sma1\":0.18321554,\"sma2\":0.18617949999999997,\"rsi_avg_gain\":0.0010648975691740826,\"rsi_avg_loss\":0.0009912018240245722,\"rsi\":52},{\"period_id\":\"120m209869\",\"size\":\"120m\",\"time\":1511056800000,\"open\":0.19382,\"high\":0.19447,\"low\":0.19291,\"close\":0.1941,\"volume\":69829.77653239999,\"close_time\":1511063790758,\"vwap\":0.1943002598201108,\"ema1\":0.19092694076832,\"sma1\":0.18316304,\"sma2\":0.18588683333333325,\"rsi_avg_gain\":0.001146812766802858,\"rsi_avg_loss\":0.000929755810488002,\"rsi\":55},{\"period_id\":\"120m209868\",\"size\":\"120m\",\"time\":1511049600000,\"open\":0.193,\"high\":0.19444,\"low\":0.1925,\"close\":0.19271,\"volume\":124356.55947407,\"close_time\":1511056574457,\"vwap\":0.1943054932020872,\"ema1\":0.19070810909716968,\"sma1\":0.18311359555555548,\"sma2\":0.18559999999999993,\"rsi_avg_gain\":0.0011281060565569239,\"rsi_avg_loss\":0.0010012754882178483,\"rsi\":53},{\"period_id\":\"120m209867\",\"size\":\"120m\",\"time\":1511042400000,\"open\":0.1935,\"high\":0.19999,\"low\":0.19211,\"close\":0.193,\"volume\":1359178.4623398397,\"close_time\":1511049586357,\"vwap\":0.19432992901933566,\"ema1\":0.19057004765559518,\"sma1\":0.18301600296296291,\"sma2\":0.18527499999999997,\"rsi_avg_gain\":0.001214883445522841,\"rsi_avg_loss\":0.001055988987311528,\"rsi\":53},{\"period_id\":\"120m209866\",\"size\":\"120m\",\"time\":1511035200000,\"open\":0.19234,\"high\":0.1939,\"low\":0.19201,\"close\":0.19372,\"volume\":268536.1830867801,\"close_time\":1511042361722,\"vwap\":0.19323160924328103,\"ema1\":0.1904024647352914,\"sma1\":0.18298720666666662,\"sma2\":0.18491283333333325,\"rsi_avg_gain\":0.0013083360182553673,\"rsi_avg_loss\":0.0010818342940277996,\"rsi\":55},{\"period_id\":\"120m209865\",\"size\":\"120m\",\"time\":1511028000000,\"open\":0.1917,\"high\":0.1949,\"low\":0.1917,\"close\":0.19231,\"volume\":728270.7040220896,\"close_time\":1511035186530,\"vwap\":0.1932098398695542,\"ema1\":0.19017366919979425,\"sma1\":0.18295637333333328,\"sma2\":0.18457433333333328,\"rsi_avg_gain\":0.0013005157119673188,\"rsi_avg_loss\":0.0011650523166453226,\"rsi\":53},{\"period_id\":\"120m209864\",\"size\":\"120m\",\"time\":1511020800000,\"open\":0.19089,\"high\":0.1925,\"low\":0.19016,\"close\":0.19168,\"volume\":464501.62250984996,\"close_time\":1511027934129,\"vwap\":0.19220397498643552,\"ema1\":0.19002633604115937,\"sma1\":0.18294803999999995,\"sma2\":0.1842546666666666,\"rsi_avg_gain\":0.0013520938436571111,\"rsi_avg_loss\":0.0012546717256180396,\"rsi\":52},{\"period_id\":\"120m209863\",\"size\":\"120m\",\"time\":1511013600000,\"open\":0.1919,\"high\":0.1919,\"low\":0.19,\"close\":0.19122,\"volume\":390100.3060764898,\"close_time\":1511020756298,\"vwap\":0.1912616184012104,\"ema1\":0.1899122902508945,\"sma1\":0.1829258177777777,\"sma2\":0.18395099999999995,\"rsi_avg_gain\":0.0014207164470153514,\"rsi_avg_loss\":0.0013511849352809656,\"rsi\":51},{\"period_id\":\"120m209862\",\"size\":\"120m\",\"time\":1511006400000,\"open\":0.1923,\"high\":0.19247,\"low\":0.191,\"close\":0.1918,\"volume\":337951.37589794997,\"close_time\":1511013473993,\"vwap\":0.19155663427562236,\"ema1\":0.18982210337164585,\"sma1\":0.1828822066666666,\"sma2\":0.1836383333333333,\"rsi_avg_gain\":0.001530002327554994,\"rsi_avg_loss\":0.0014105068533795016,\"rsi\":52},{\"period_id\":\"120m209861\",\"size\":\"120m\",\"time\":1510999200000,\"open\":0.19251,\"high\":0.19253,\"low\":0.19101,\"close\":0.1923,\"volume\":385301.98817009997,\"close_time\":1511006395926,\"vwap\":0.19225846695697724,\"ema1\":0.18968569670762142,\"sma1\":0.1828587807407407,\"sma2\":0.1833331666666666,\"rsi_avg_gain\":0.0016476948142899934,\"rsi_avg_loss\":0.0014805458421010018,\"rsi\":53},{\"period_id\":\"120m209860\",\"size\":\"120m\",\"time\":1510992000000,\"open\":0.18916,\"high\":0.194,\"low\":0.18914,\"close\":0.19254,\"volume\":803391.3881384006,\"close_time\":1510999159827,\"vwap\":0.19228615741668786,\"ema1\":0.1895053999288367,\"sma1\":0.1828586881481481,\"sma2\":0.1830156666666666,\"rsi_avg_gain\":0.0017744405692353775,\"rsi_avg_loss\":0.0015759724453395412,\"rsi\":53},{\"period_id\":\"120m209859\",\"size\":\"120m\",\"time\":1510984800000,\"open\":0.1897,\"high\":0.191,\"low\":0.188,\"close\":0.189,\"volume\":488820.45648977003,\"close_time\":1510991947134,\"vwap\":0.18900773950381444,\"ema1\":0.1892961171653082,\"sma1\":0.18288137333333326,\"sma2\":0.18267499999999998,\"rsi_avg_gain\":0.0016386283053304075,\"rsi_avg_loss\":0.0016972010949810443,\"rsi\":49},{\"period_id\":\"120m209858\",\"size\":\"120m\",\"time\":1510977600000,\"open\":0.1878,\"high\":0.19247,\"low\":0.18721,\"close\":0.19028,\"volume\":289907.14823640994,\"close_time\":1510984750372,\"vwap\":0.1889725434168865,\"ema1\":0.18931653903877774,\"sma1\":0.18287785481481475,\"sma2\":0.18232716666666662,\"rsi_avg_gain\":0.0017646766365096694,\"rsi_avg_loss\":0.0017292934869026627,\"rsi\":51},{\"period_id\":\"120m209857\",\"size\":\"120m\",\"time\":1510970400000,\"open\":0.1891,\"high\":0.192,\"low\":0.1879,\"close\":0.1879,\"volume\":234549.13786073995,\"close_time\":1510977539952,\"vwap\":0.1885099830136261,\"ema1\":0.18925009345524516,\"sma1\":0.18287776222222216,\"sma2\":0.18207549999999997,\"rsi_avg_gain\":0.0017173440700873367,\"rsi_avg_loss\":0.0018623160628182523,\"rsi\":48},{\"period_id\":\"120m209856\",\"size\":\"120m\",\"time\":1510963200000,\"open\":0.19112,\"high\":0.19277,\"low\":0.1889,\"close\":0.18908,\"volume\":926769.0720193102,\"close_time\":1510970297833,\"vwap\":0.1900715143308711,\"ema1\":0.18934320334871033,\"sma1\":0.18286554,\"sma2\":0.18172000833333335,\"rsi_avg_gain\":0.001849447460094055,\"rsi_avg_loss\":0.0019148019138042727,\"rsi\":49},{\"period_id\":\"120m209855\",\"size\":\"120m\",\"time\":1510956000000,\"open\":0.192,\"high\":0.19408,\"low\":0.191,\"close\":0.19312,\"volume\":428584.75338550995,\"close_time\":1510963099527,\"vwap\":0.19291116657359214,\"ema1\":0.1893613553037938,\"sma1\":0.18286479925925925,\"sma2\":0.18132634166666664,\"rsi_avg_gain\":0.001991712649332059,\"rsi_avg_loss\":0.001751325137943062,\"rsi\":53},{\"period_id\":\"120m209854\",\"size\":\"120m\",\"time\":1510948800000,\"open\":0.1925,\"high\":0.19408,\"low\":0.19061,\"close\":0.192,\"volume\":621065.0758878803,\"close_time\":1510955983115,\"vwap\":0.19272578573547666,\"ema1\":0.18910213842819337,\"sma1\":0.18281776222222218,\"sma2\":0.18091634166666665,\"rsi_avg_gain\":0.0020587674685114475,\"rsi_avg_loss\":0.0018860424562463743,\"rsi\":52},{\"period_id\":\"120m209853\",\"size\":\"120m\",\"time\":1510941600000,\"open\":0.19389,\"high\":0.19475,\"low\":0.19061,\"close\":0.1925,\"volume\":1033069.886988151,\"close_time\":1510948796268,\"vwap\":0.1935132366026001,\"ema1\":0.1889022859059998,\"sma1\":0.18272646592592587,\"sma2\":0.180541675,\"rsi_avg_gain\":0.002217134196858482,\"rsi_avg_loss\":0.0019926611067268645,\"rsi\":53},{\"period_id\":\"120m209852\",\"size\":\"120m\",\"time\":1510934400000,\"open\":0.19491,\"high\":0.196,\"low\":0.19103,\"close\":0.19384,\"volume\":1005591.6163256401,\"close_time\":1510941572001,\"vwap\":0.193828373048813,\"ema1\":0.18865416769262047,\"sma1\":0.18259544740740735,\"sma2\":0.18014800833333336,\"rsi_avg_gain\":0.0023876829812322113,\"rsi_avg_loss\":0.002042865807244315,\"rsi\":54},{\"period_id\":\"120m209851\",\"size\":\"120m\",\"time\":1510927200000,\"open\":0.19521,\"high\":0.19796,\"low\":0.1946,\"close\":0.19491,\"volume\":960112.6958736299,\"close_time\":1510934385989,\"vwap\":0.1955931750532692,\"ema1\":0.188296524085215,\"sma1\":0.1824462807407407,\"sma2\":0.179732675,\"rsi_avg_gain\":0.002571350902865458,\"rsi_avg_loss\":0.0021177016385708013,\"rsi\":55},{\"period_id\":\"120m209850\",\"size\":\"120m\",\"time\":1510920000000,\"open\":0.1988,\"high\":0.199,\"low\":0.19422,\"close\":0.1953,\"volume\":1780399.7603614214,\"close_time\":1510927150967,\"vwap\":0.1964719480989989,\"ema1\":0.18784042229798845,\"sma1\":0.18227952148148144,\"sma2\":0.17931750833333332,\"rsi_avg_gain\":0.002769147126162801,\"rsi_avg_loss\":0.0022506017646147093,\"rsi\":55},{\"period_id\":\"120m209849\",\"size\":\"120m\",\"time\":1510912800000,\"open\":0.19248,\"high\":0.2,\"low\":0.1905,\"close\":0.1988,\"volume\":2745150.4320924804,\"close_time\":1510919995239,\"vwap\":0.1984119561230276,\"ema1\":0.18732596866336695,\"sma1\":0.18211100296296293,\"sma2\":0.1788875083333333,\"rsi_avg_gain\":0.0029821584435599396,\"rsi_avg_loss\":0.0021544942080466097,\"rsi\":58},{\"period_id\":\"120m209848\",\"size\":\"120m\",\"time\":1510905600000,\"open\":0.18905,\"high\":0.1943,\"low\":0.187,\"close\":0.1925,\"volume\":1784900.3421344298,\"close_time\":1510912797579,\"vwap\":0.1920428885587138,\"ema1\":0.18653465615739226,\"sma1\":0.18199248444444438,\"sma2\":0.17844600833333332,\"rsi_avg_gain\":0.0027269398622953196,\"rsi_avg_loss\":0.0023202245317425025,\"rsi\":54},{\"period_id\":\"120m209847\",\"size\":\"120m\",\"time\":1510898400000,\"open\":0.19545,\"high\":0.19594,\"low\":0.187,\"close\":0.188,\"volume\":1178642.750786331,\"close_time\":1510905535766,\"vwap\":0.18833023980521701,\"ema1\":0.18612325313376413,\"sma1\":0.18183091037037033,\"sma2\":0.177999675,\"rsi_avg_gain\":0.0025905506209334206,\"rsi_avg_loss\":0.002498703341876541,\"rsi\":51},{\"period_id\":\"120m209846\",\"size\":\"120m\",\"time\":1510891200000,\"open\":0.19199,\"high\":0.19689,\"low\":0.1894,\"close\":0.19405,\"volume\":956434.2075968998,\"close_time\":1510898331739,\"vwap\":0.19382702381937533,\"ema1\":0.18599382231540304,\"sma1\":0.18165322518518517,\"sma2\":0.17759884166666665,\"rsi_avg_gain\":0.0027898237456206072,\"rsi_avg_loss\":0.002225526675867044,\"rsi\":56},{\"period_id\":\"120m209845\",\"size\":\"120m\",\"time\":1510884000000,\"open\":0.187,\"high\":0.1955,\"low\":0.18683,\"close\":0.19112,\"volume\":924918.4014456196,\"close_time\":1510891162791,\"vwap\":0.1929578372398935,\"ema1\":0.18543822385439634,\"sma1\":0.18148841037037033,\"sma2\":0.17723384166666664,\"rsi_avg_gain\":0.0027790409568221935,\"rsi_avg_loss\":0.002396721035549124,\"rsi\":54},{\"period_id\":\"120m209844\",\"size\":\"120m\",\"time\":1510876800000,\"open\":0.19099,\"high\":0.1929,\"low\":0.185,\"close\":0.18834,\"volume\":1080509.2536917797,\"close_time\":1510883939814,\"vwap\":0.1880184690004889,\"ema1\":0.18504637722366507,\"sma1\":0.18135044740740738,\"sma2\":0.176999175,\"rsi_avg_gain\":0.002778967184270054,\"rsi_avg_loss\":0.002581084192129826,\"rsi\":52},{\"period_id\":\"120m209843\",\"size\":\"120m\",\"time\":1510869600000,\"open\":0.20252,\"high\":0.203,\"low\":0.19,\"close\":0.1903,\"volume\":3056503.1666262676,\"close_time\":1510876786878,\"vwap\":0.19068099772723252,\"ema1\":0.18481923082529714,\"sma1\":0.18111878074074073,\"sma2\":0.17677250833333333,\"rsi_avg_gain\":0.0029927338907523656,\"rsi_avg_loss\":0.002628859899216736,\"rsi\":53},{\"period_id\":\"120m209842\",\"size\":\"120m\",\"time\":1510862400000,\"open\":0.195,\"high\":0.209,\"low\":0.19241,\"close\":0.2028,\"volume\":5328767.228624752,\"close_time\":1510869597062,\"vwap\":0.20276526544456885,\"ema1\":0.18444124674428314,\"sma1\":0.18081313259259257,\"sma2\":0.17632550833333333,\"rsi_avg_gain\":0.003222944190041009,\"rsi_avg_loss\":0.001869541429925715,\"rsi\":63},{\"period_id\":\"120m209841\",\"size\":\"120m\",\"time\":1510855200000,\"open\":0.19512,\"high\":0.201,\"low\":0.1905,\"close\":0.195,\"volume\":3369777.689228698,\"close_time\":1510862391100,\"vwap\":0.19326630761805497,\"ema1\":0.18317512583009576,\"sma1\":0.18058378074074072,\"sma2\":0.1760255083333333,\"rsi_avg_gain\":0.0028708629738903174,\"rsi_avg_loss\":0.00201335230915077,\"rsi\":59},{\"period_id\":\"120m209840\",\"size\":\"120m\",\"time\":1510848000000,\"open\":0.2055,\"high\":0.2098,\"low\":0.195,\"close\":0.1964,\"volume\":6663655.530201383,\"close_time\":1510855198173,\"vwap\":0.19647064646974557,\"ema1\":0.1823596172666541,\"sma1\":0.18027998444444446,\"sma2\":0.17574217499999994,\"rsi_avg_gain\":0.0030916985872664958,\"rsi_avg_loss\":0.002060533256008523,\"rsi\":60},{\"period_id\":\"120m209839\",\"size\":\"120m\",\"time\":1510840800000,\"open\":0.22,\"high\":0.22,\"low\":0.194,\"close\":0.205,\"volume\":15617530.64268609,\"close_time\":1510847998500,\"vwap\":0.2034371342230699,\"ema1\":0.18139131500918196,\"sma1\":0.17989850296296292,\"sma2\":0.17520267499999995,\"rsi_avg_gain\":0.0033295215555177644,\"rsi_avg_loss\":0.0015574973526245634,\"rsi\":68},{\"period_id\":\"120m209838\",\"size\":\"120m\",\"time\":1510833600000,\"open\":0.17678,\"high\":0.22,\"low\":0.1757,\"close\":0.22,\"volume\":10349111.628457345,\"close_time\":1510840796412,\"vwap\":0.21916341654834648,\"ema1\":0.1797631298374014,\"sma1\":0.17952257703703703,\"sma2\":0.1743610083333333,\"rsi_avg_gain\":0.0035856385982499,\"rsi_avg_loss\":0.0005234586874418366,\"rsi\":87},{\"period_id\":\"120m209837\",\"size\":\"120m\",\"time\":1510826400000,\"open\":0.177,\"high\":0.1778,\"low\":0.17555,\"close\":0.177,\"volume\":1105490.1614706505,\"close_time\":1510833568077,\"vwap\":0.1769348388220341,\"ema1\":0.17698817327446356,\"sma1\":0.17950692888888892,\"sma2\":0.17427934166666662,\"rsi_avg_gain\":0.0005537646442691225,\"rsi_avg_loss\":0.0005637247403219779,\"rsi\":50},{\"period_id\":\"120m209836\",\"size\":\"120m\",\"time\":1510819200000,\"open\":0.1785,\"high\":0.17858,\"low\":0.176,\"close\":0.177,\"volume\":397588.30518430006,\"close_time\":1510826392504,\"vwap\":0.17744665727390088,\"ema1\":0.17698735763821966,\"sma1\":0.1794858177777778,\"sma2\":0.1743330083333333,\"rsi_avg_gain\":0.0005963619245975165,\"rsi_avg_loss\":0.000607088181885207,\"rsi\":50},{\"period_id\":\"120m209835\",\"size\":\"120m\",\"time\":1510812000000,\"open\":0.179,\"high\":0.17957,\"low\":0.1775,\"close\":0.1786,\"volume\":236250.85952177003,\"close_time\":1510819171050,\"vwap\":0.17796411881469548,\"ema1\":0.17698648575120032,\"sma1\":0.17944692888888894,\"sma2\":0.1743230083333333,\"rsi_avg_gain\":0.0006422359187973254,\"rsi_avg_loss\":0.0005307103497225292,\"rsi\":55},{\"period_id\":\"120m209834\",\"size\":\"120m\",\"time\":1510804800000,\"open\":0.17893,\"high\":0.1797,\"low\":0.17753,\"close\":0.17945,\"volume\":206948.74571139002,\"close_time\":1510811990052,\"vwap\":0.1797526981198297,\"ema1\":0.17687520890645553,\"sma1\":0.1794049844444445,\"sma2\":0.174257175,\"rsi_avg_gain\":0.0006916386817817352,\"rsi_avg_loss\":0.0005061496073934939,\"rsi\":58},{\"period_id\":\"120m209833\",\"size\":\"120m\",\"time\":1510797600000,\"open\":0.17994,\"high\":0.17997,\"low\":0.17603,\"close\":0.178,\"volume\":353774.0085576001,\"close_time\":1510804386630,\"vwap\":0.179791240668995,\"ema1\":0.17669763710690073,\"sma1\":0.17935433629629635,\"sma2\":0.17422967499999995,\"rsi_avg_gain\":0.0006333031957649452,\"rsi_avg_loss\":0.0005450841925776088,\"rsi\":54},{\"period_id\":\"120m209832\",\"size\":\"120m\",\"time\":1510790400000,\"open\":0.1778,\"high\":0.1809,\"low\":0.17779,\"close\":0.18,\"volume\":1361998.4149140103,\"close_time\":1510797487097,\"vwap\":0.17993112253131865,\"ema1\":0.17660781897634217,\"sma1\":0.17930896592592596,\"sma2\":0.17417967499999998,\"rsi_avg_gain\":0.0006820188262084025,\"rsi_avg_loss\":0.0004331675920066556,\"rsi\":61},{\"period_id\":\"120m209831\",\"size\":\"120m\",\"time\":1510783200000,\"open\":0.17768,\"high\":0.1787,\"low\":0.175,\"close\":0.1778,\"volume\":1566869.6451750586,\"close_time\":1510790392691,\"vwap\":0.1776055398322539,\"ema1\":0.17637387545746921,\"sma1\":0.17929655851851856,\"sma2\":0.1741280083333333,\"rsi_avg_gain\":0.0005652510436090504,\"rsi_avg_loss\":0.0004664881760071676,\"rsi\":55},{\"period_id\":\"120m209830\",\"size\":\"120m\",\"time\":1510776000000,\"open\":0.1769,\"high\":0.17899,\"low\":0.17601,\"close\":0.17768,\"volume\":491676.01611941017,\"close_time\":1510783162699,\"vwap\":0.1776218814555047,\"ema1\":0.17627552204074295,\"sma1\":0.17929822518518523,\"sma2\":0.17407984166666662,\"rsi_avg_gain\":0.000599501123886669,\"rsi_avg_loss\":0.0005023718818538727,\"rsi\":54},{\"period_id\":\"120m209829\",\"size\":\"120m\",\"time\":1510768800000,\"open\":0.17759,\"high\":0.17889,\"low\":0.17601,\"close\":0.17624,\"volume\":977653.8880108004,\"close_time\":1510775927078,\"vwap\":0.1768402591536513,\"ema1\":0.17617866149182868,\"sma1\":0.1792899844444445,\"sma2\":0.17404934166666666,\"rsi_avg_gain\":0.0005348473641856439,\"rsi_avg_loss\":0.0005410158727657091,\"rsi\":50},{\"period_id\":\"120m209828\",\"size\":\"120m\",\"time\":1510761600000,\"open\":0.17791,\"high\":0.17813,\"low\":0.176,\"close\":0.17753,\"volume\":790866.41378568,\"close_time\":1510768797924,\"vwap\":0.17714414100247883,\"ema1\":0.17617443124988583,\"sma1\":0.1792887807407408,\"sma2\":0.174027175,\"rsi_avg_gain\":0.000575989469123001,\"rsi_avg_loss\":0.00048340170913230334,\"rsi\":54},{\"period_id\":\"120m209827\",\"size\":\"120m\",\"time\":1510754400000,\"open\":0.17899,\"high\":0.17936,\"low\":0.17741,\"close\":0.17867,\"volume\":501227.49448165024,\"close_time\":1510761592558,\"vwap\":0.17845436279720836,\"ema1\":0.17608094374987796,\"sma1\":0.17928933629629634,\"sma2\":0.174012675,\"rsi_avg_gain\":0.0006202963513632319,\"rsi_avg_loss\":0.0004328941482963265,\"rsi\":59},{\"period_id\":\"120m209826\",\"size\":\"120m\",\"time\":1510747200000,\"open\":0.17861,\"high\":0.18,\"low\":0.1775,\"close\":0.17894,\"volume\":1020662.5634295301,\"close_time\":1510754363661,\"vwap\":0.1784794599042071,\"ema1\":0.17590238814642126,\"sma1\":0.17928470666666668,\"sma2\":0.17395700833333333,\"rsi_avg_gain\":0.0006680114553142497,\"rsi_avg_loss\":0.0004454244673960445,\"rsi\":60},{\"period_id\":\"120m209825\",\"size\":\"120m\",\"time\":1510740000000,\"open\":0.17916,\"high\":0.18,\"low\":0.17772,\"close\":0.1798,\"volume\":839624.29586238,\"close_time\":1510747159672,\"vwap\":0.17920165489096665,\"ema1\":0.17569289767376065,\"sma1\":0.17928461407407412,\"sma2\":0.17403017499999998,\"rsi_avg_gain\":0.0007193969518768842,\"rsi_avg_loss\":0.00041353404181112484,\"rsi\":63},{\"period_id\":\"120m209824\",\"size\":\"120m\",\"time\":1510732800000,\"open\":0.178,\"high\":0.18,\"low\":0.17774,\"close\":0.17916,\"volume\":1371706.4441208409,\"close_time\":1510739987906,\"vwap\":0.17937264949189188,\"ema1\":0.17540964923746827,\"sma1\":0.1792250770370371,\"sma2\":0.17409917499999994,\"rsi_avg_gain\":0.0007255044097135697,\"rsi_avg_loss\":0.0004453443527196729,\"rsi\":62},{\"period_id\":\"120m209823\",\"size\":\"120m\",\"time\":1510725600000,\"open\":0.17647,\"high\":0.179,\"low\":0.17647,\"close\":0.178,\"volume\":594290.64150528,\"close_time\":1510732786046,\"vwap\":0.178290767913912,\"ema1\":0.17515100435729367,\"sma1\":0.17916766962962966,\"sma2\":0.17420850833333326,\"rsi_avg_gain\":0.0006920816719992272,\"rsi_avg_loss\":0.0004796016106211862,\"rsi\":59},{\"period_id\":\"120m209822\",\"size\":\"120m\",\"time\":1510718400000,\"open\":0.17676,\"high\":0.17748,\"low\":0.17561,\"close\":0.17645,\"volume\":194388.95898348003,\"close_time\":1510725406545,\"vwap\":0.1759066584218153,\"ema1\":0.17495452189917599,\"sma1\":0.17912507703703712,\"sma2\":0.1743610083333333,\"rsi_avg_gain\":0.0006260879544607065,\"rsi_avg_loss\":0.0005164940422074313,\"rsi\":55},{\"period_id\":\"120m209821\",\"size\":\"120m\",\"time\":1510711200000,\"open\":0.17672,\"high\":0.17744,\"low\":0.176,\"close\":0.17607,\"volume\":154013.12588774003,\"close_time\":1510717437169,\"vwap\":0.1758621078748047,\"ema1\":0.17485138547842952,\"sma1\":0.17908285481481487,\"sma2\":0.17454400833333328,\"rsi_avg_gain\":0.0006450177971115308,\"rsi_avg_loss\":0.0005562243531464645,\"rsi\":54},{\"period_id\":\"120m209820\",\"size\":\"120m\",\"time\":1510704000000,\"open\":0.17563,\"high\":0.17746,\"low\":0.1754,\"close\":0.17661,\"volume\":330525.27986849006,\"close_time\":1510711129545,\"vwap\":0.1758378405531416,\"ema1\":0.17476734309763156,\"sma1\":0.17904081777777783,\"sma2\":0.17473817499999988,\"rsi_avg_gain\":0.0006946345507354947,\"rsi_avg_loss\":0.0005574723803115783,\"rsi\":55},{\"period_id\":\"120m209819\",\"size\":\"120m\",\"time\":1510696800000,\"open\":0.17597,\"high\":0.1761,\"low\":0.175,\"close\":0.17582,\"volume\":577026.2364562798,\"close_time\":1510703941720,\"vwap\":0.1754808506552326,\"ema1\":0.1746402633112613,\"sma1\":0.17901674370370377,\"sma2\":0.17493950833333327,\"rsi_avg_gain\":0.0006872987469459185,\"rsi_avg_loss\":0.0006003548711047766,\"rsi\":53},{\"period_id\":\"120m209818\",\"size\":\"120m\",\"time\":1510689600000,\"open\":0.17656,\"high\":0.1771,\"low\":0.1746,\"close\":0.17602,\"volume\":754846.95783339,\"close_time\":1510696790603,\"vwap\":0.17597066252747182,\"ema1\":0.1745589021603138,\"sma1\":0.17898000851851853,\"sma2\":0.1751435083333333,\"rsi_avg_gain\":0.0007401678813263737,\"rsi_avg_loss\":0.0006311513996512975,\"rsi\":54},{\"period_id\":\"120m209817\",\"size\":\"120m\",\"time\":1510682400000,\"open\":0.17774,\"high\":0.1785,\"low\":0.17451,\"close\":0.17656,\"volume\":873858.6678473103,\"close_time\":1510689575374,\"vwap\":0.17585199123017164,\"ema1\":0.17445813679205957,\"sma1\":0.17891982333333337,\"sma2\":0.17536750833333326,\"rsi_avg_gain\":0.0007971038721976331,\"rsi_avg_loss\":0.0006381630457783215,\"rsi\":56},{\"period_id\":\"120m209816\",\"size\":\"120m\",\"time\":1510675200000,\"open\":0.17779,\"high\":0.17873,\"low\":0.177,\"close\":0.17772,\"volume\":601474.58078276,\"close_time\":1510682334312,\"vwap\":0.17816610823303478,\"ema1\":0.17431318070875335,\"sma1\":0.17886676777777777,\"sma2\":0.1755915083333333,\"rsi_avg_gain\":0.000858419554674374,\"rsi_avg_loss\":0.0005980217416074236,\"rsi\":59},{\"period_id\":\"120m209815\",\"size\":\"120m\",\"time\":1510668000000,\"open\":0.175,\"high\":0.179,\"low\":0.175,\"close\":0.1779,\"volume\":903691.211076629,\"close_time\":1510675183379,\"vwap\":0.1772175053233735,\"ema1\":0.1740782276541846,\"sma1\":0.17881121222222218,\"sma2\":0.17578050833333328,\"rsi_avg_gain\":0.0009244518281108643,\"rsi_avg_loss\":0.000630177260192609,\"rsi\":59},{\"period_id\":\"120m209814\",\"size\":\"120m\",\"time\":1510660800000,\"open\":0.17511,\"high\":0.17649,\"low\":0.1735,\"close\":0.1764,\"volume\":739101.4692513704,\"close_time\":1510667938280,\"vwap\":0.17554369500296307,\"ema1\":0.17381465714757663,\"sma1\":0.17879167518518516,\"sma2\":0.17596567499999993,\"rsi_avg_gain\":0.0008801788918116999,\"rsi_avg_loss\":0.000678652434053579,\"rsi\":56},{\"period_id\":\"120m209813\",\"size\":\"120m\",\"time\":1510653600000,\"open\":0.17595,\"high\":0.17699,\"low\":0.175,\"close\":0.1756,\"volume\":896831.7352713099,\"close_time\":1510660756249,\"vwap\":0.17619291745908605,\"ema1\":0.17363635764051294,\"sma1\":0.1787673233333333,\"sma2\":0.17616834166666662,\"rsi_avg_gain\":0.0008863464988741387,\"rsi_avg_loss\":0.0007308564674423159,\"rsi\":55},{\"period_id\":\"120m209812\",\"size\":\"120m\",\"time\":1510646400000,\"open\":0.17599,\"high\":0.17621,\"low\":0.17403,\"close\":0.1758,\"volume\":425112.28303541004,\"close_time\":1510653572451,\"vwap\":0.1757378716617612,\"ema1\":0.17350093402951383,\"sma1\":0.17875611962962965,\"sma2\":0.17634034166666665,\"rsi_avg_gain\":0.000954526998787534,\"rsi_avg_loss\":0.0007716915803224935,\"rsi\":55},{\"period_id\":\"120m209811\",\"size\":\"120m\",\"time\":1510639200000,\"open\":0.176,\"high\":0.1766,\"low\":0.17201,\"close\":0.17435,\"volume\":679307.6820065394,\"close_time\":1510646329094,\"vwap\":0.17520176419987424,\"ema1\":0.1733423777556872,\"sma1\":0.1787413048148148,\"sma2\":0.1766395083333333,\"rsi_avg_gain\":0.0009164136910019591,\"rsi_avg_loss\":0.0008310524711165315,\"rsi\":52},{\"period_id\":\"120m209810\",\"size\":\"120m\",\"time\":1510632000000,\"open\":0.1768,\"high\":0.1768,\"low\":0.175,\"close\":0.17598,\"volume\":429675.1602830501,\"close_time\":1510639183059,\"vwap\":0.1762133063030566,\"ema1\":0.17327288656642426,\"sma1\":0.17872556407407408,\"sma2\":0.17687317500000002,\"rsi_avg_gain\":0.0009869070518482637,\"rsi_avg_loss\":0.0007695949688947268,\"rsi\":56},{\"period_id\":\"120m209809\",\"size\":\"120m\",\"time\":1510624800000,\"open\":0.17539,\"high\":0.178,\"low\":0.17465,\"close\":0.17654,\"volume\":586797.5998933498,\"close_time\":1510631991411,\"vwap\":0.17635360638672423,\"ema1\":0.1730861890882466,\"sma1\":0.17869852703703706,\"sma2\":0.17712250833333332,\"rsi_avg_gain\":0.0010628229789135149,\"rsi_avg_loss\":0.0007857176588097054,\"rsi\":57},{\"period_id\":\"120m209808\",\"size\":\"120m\",\"time\":1510617600000,\"open\":0.17346,\"high\":0.1755,\"low\":0.17214,\"close\":0.1755,\"volume\":764624.7999068601,\"close_time\":1510624784246,\"vwap\":0.17507389668391707,\"ema1\":0.1728479952322636,\"sma1\":0.17869111962962966,\"sma2\":0.17737250833333335,\"rsi_avg_gain\":0.001064578592676092,\"rsi_avg_loss\":0.0008461574787181442,\"rsi\":56},{\"period_id\":\"120m209807\",\"size\":\"120m\",\"time\":1510610400000,\"open\":0.17199,\"high\":0.1735,\"low\":0.1712,\"close\":0.1735,\"volume\":538034.5097671399,\"close_time\":1510617597826,\"vwap\":0.17252510779476032,\"ema1\":0.17266509835173005,\"sma1\":0.17870399000000003,\"sma2\":0.177619175,\"rsi_avg_gain\":0.000992623099805022,\"rsi_avg_loss\":0.0009112465155426168,\"rsi\":52},{\"period_id\":\"120m209806\",\"size\":\"120m\",\"time\":1510603200000,\"open\":0.17054,\"high\":0.17249,\"low\":0.1704,\"close\":0.17199,\"volume\":631139.0908938397,\"close_time\":1510610382134,\"vwap\":0.1717886270600033,\"ema1\":0.17260751892771142,\"sma1\":0.17872639740740745,\"sma2\":0.17783317499999998,\"rsi_avg_gain\":0.0009528248767131019,\"rsi_avg_loss\":0.0009813424013535874,\"rsi\":49},{\"period_id\":\"120m209805\",\"size\":\"120m\",\"time\":1510596000000,\"open\":0.17247,\"high\":0.1725,\"low\":0.17,\"close\":0.172,\"volume\":870330.9006816499,\"close_time\":1510603178336,\"vwap\":0.17171157463105208,\"ema1\":0.1726501064399674,\"sma1\":0.17875658259259264,\"sma2\":0.178046175,\"rsi_avg_gain\":0.001026119097998725,\"rsi_avg_loss\":0.001056061047611557,\"rsi\":49},{\"period_id\":\"120m209804\",\"size\":\"120m\",\"time\":1510588800000,\"open\":0.173,\"high\":0.17348,\"low\":0.17106,\"close\":0.1725,\"volume\":309292.22678649,\"close_time\":1510595941115,\"vwap\":0.17265550771542193,\"ema1\":0.1726949413668617,\"sma1\":0.17877991592592596,\"sma2\":0.17819934166666665,\"rsi_avg_gain\":0.0011050513363063193,\"rsi_avg_loss\":0.0010988349743509074,\"rsi\":50},{\"period_id\":\"120m209803\",\"size\":\"120m\",\"time\":1510581600000,\"open\":0.17303,\"high\":0.1735,\"low\":0.17,\"close\":0.173,\"volume\":635923.3682115899,\"close_time\":1510588750094,\"vwap\":0.17305693861583513,\"ema1\":0.17270838559905907,\"sma1\":0.17881482333333334,\"sma2\":0.17834684166666664,\"rsi_avg_gain\":0.0011900552852529592,\"rsi_avg_loss\":0.0011448992031471308,\"rsi\":51},{\"period_id\":\"120m209802\",\"size\":\"120m\",\"time\":1510574400000,\"open\":0.17399,\"high\":0.174,\"low\":0.165,\"close\":0.17304,\"volume\":1779330.7190665496,\"close_time\":1510581596236,\"vwap\":0.17111012804591505,\"ema1\":0.17268827426106315,\"sma1\":0.17885149000000003,\"sma2\":0.178471175,\"rsi_avg_gain\":0.001281597999503187,\"rsi_avg_loss\":0.001229891449543063,\"rsi\":51},{\"period_id\":\"120m209801\",\"size\":\"120m\",\"time\":1510567200000,\"open\":0.1739,\"high\":0.175,\"low\":0.17095,\"close\":0.17399,\"volume\":1125405.2639887903,\"close_time\":1510574391964,\"vwap\":0.1739259845867114,\"ema1\":0.17266401731355027,\"sma1\":0.17886871222222223,\"sma2\":0.17855467500000002,\"rsi_avg_gain\":0.0013801824610034322,\"rsi_avg_loss\":0.0012514215610463751,\"rsi\":52},{\"period_id\":\"120m209800\",\"size\":\"120m\",\"time\":1510560000000,\"open\":0.1685,\"high\":0.1739,\"low\":0.168,\"close\":0.17349,\"volume\":1034292.9793085196,\"close_time\":1510567185235,\"vwap\":0.171744488739401,\"ema1\":0.17257257023172615,\"sma1\":0.17889504685185187,\"sma2\":0.17868650833333335,\"rsi_avg_gain\":0.0014478888041575425,\"rsi_avg_loss\":0.0013476847580499425,\"rsi\":52},{\"period_id\":\"120m209799\",\"size\":\"120m\",\"time\":1510552800000,\"open\":0.16969,\"high\":0.1705,\"low\":0.16809,\"close\":0.16856,\"volume\":70489.34351741005,\"close_time\":1510559923918,\"vwap\":0.16856,\"ema1\":0.1725092992132245,\"sma1\":0.17894949129629634,\"sma2\":0.17884384166666667,\"rsi_avg_gain\":0.0011800340967850445,\"rsi_avg_loss\":0.0014513528163614766,\"rsi\":45},{\"period_id\":\"120m209798\",\"size\":\"120m\",\"time\":1510545600000,\"open\":0.17278,\"high\":0.1729,\"low\":0.16771,\"close\":0.16941,\"volume\":232672.51672249002,\"close_time\":1510552749298,\"vwap\":0.16931023708440357,\"ema1\":0.1727816646762055,\"sma1\":0.1789848616666667,\"sma2\":0.1789820083333333,\"rsi_avg_gain\":0.001270805950383894,\"rsi_avg_loss\":0.0014976107253123583,\"rsi\":46},{\"period_id\":\"120m209797\",\"size\":\"120m\",\"time\":1510538400000,\"open\":0.16775,\"high\":0.17287,\"low\":0.16714,\"close\":0.1728,\"volume\":317883.98797446996,\"close_time\":1510545349531,\"vwap\":0.16934757826229527,\"ema1\":0.17301419327456452,\"sma1\":0.1790229172222223,\"sma2\":0.17904850833333333,\"rsi_avg_gain\":0.001368560254259578,\"rsi_avg_loss\":0.0013520423195671546,\"rsi\":50},{\"period_id\":\"120m209796\",\"size\":\"120m\",\"time\":1510531200000,\"open\":0.16949,\"high\":0.1724,\"low\":0.16559,\"close\":0.1677505,\"volume\":521480.4175115699,\"close_time\":1510538326283,\"vwap\":0.1690406002323782,\"ema1\":0.17302896522453448,\"sma1\":0.17908402833333342,\"sma2\":0.17919049999999997,\"rsi_avg_gain\":0.0010854110430487754,\"rsi_avg_loss\":0.001456045574918474,\"rsi\":43},{\"period_id\":\"120m209795\",\"size\":\"120m\",\"time\":1510524000000,\"open\":0.1674,\"high\":0.16998,\"low\":0.165,\"close\":0.1695,\"volume\":1311093.4219952,\"close_time\":1510531050771,\"vwap\":0.16594386550574197,\"ema1\":0.17339299730898514,\"sma1\":0.17921384314814823,\"sma2\":0.17930783333333336,\"rsi_avg_gain\":0.0011689042002063735,\"rsi_avg_loss\":0.0014334721576045092,\"rsi\":45},{\"period_id\":\"120m209794\",\"size\":\"120m\",\"time\":1510516800000,\"open\":0.17,\"high\":0.171,\"low\":0.1655,\"close\":0.1674,\"volume\":930806.39173004,\"close_time\":1510523988470,\"vwap\":0.16826821751433554,\"ema1\":0.1736614798820186,\"sma1\":0.17935819500000005,\"sma2\":0.1794478333333334,\"rsi_avg_gain\":0.001097281446376093,\"rsi_avg_loss\":0.0015437392466510099,\"rsi\":42},{\"period_id\":\"120m209793\",\"size\":\"120m\",\"time\":1510509600000,\"open\":0.17021,\"high\":0.171,\"low\":0.1684,\"close\":0.17002,\"volume\":1081793.2557907307,\"close_time\":1510516799098,\"vwap\":0.17002676725885893,\"ema1\":0.1740933060807785,\"sma1\":0.17947856537037044,\"sma2\":0.17952533333333337,\"rsi_avg_gain\":0.0011816877114819463,\"rsi_avg_loss\":0.001460949957931856,\"rsi\":45},{\"period_id\":\"120m209792\",\"size\":\"120m\",\"time\":1510502400000,\"open\":0.16953,\"high\":0.173,\"low\":0.16717,\"close\":0.17022,\"volume\":1220729.4702502298,\"close_time\":1510509590715,\"vwap\":0.16971456846963415,\"ema1\":0.17437422374152184,\"sma1\":0.17956625055555564,\"sma2\":0.17962566666666674,\"rsi_avg_gain\":0.0012725867662113268,\"rsi_avg_loss\":0.0015579461085419982,\"rsi\":45},{\"period_id\":\"120m209791\",\"size\":\"120m\",\"time\":1510495200000,\"open\":0.16884,\"high\":0.17264,\"low\":0.1675,\"close\":0.16999,\"volume\":1416319.5101583297,\"close_time\":1510502384838,\"vwap\":0.16986522127611284,\"ema1\":0.17466072193059232,\"sma1\":0.1796653246296297,\"sma2\":0.17974183333333338,\"rsi_avg_gain\":0.0013527857482275821,\"rsi_avg_loss\":0.0016777881168913828,\"rsi\":45},{\"period_id\":\"120m209790\",\"size\":\"120m\",\"time\":1510488000000,\"open\":0.173,\"high\":0.1756,\"low\":0.1675,\"close\":0.17039,\"volume\":3313398.677564392,\"close_time\":1510495190490,\"vwap\":0.1700598100564713,\"ema1\":0.17498284068442627,\"sma1\":0.17967819500000004,\"sma2\":0.17984366666666673,\"rsi_avg_gain\":0.0014568461903989346,\"rsi_avg_loss\":0.0017760795104984112,\"rsi\":45},{\"period_id\":\"120m209789\",\"size\":\"120m\",\"time\":1510480800000,\"open\":0.16601,\"high\":0.1763,\"low\":0.165,\"close\":0.173,\"volume\":2580742.5473769414,\"close_time\":1510487985447,\"vwap\":0.17361535539707915,\"ema1\":0.17529958831783496,\"sma1\":0.1796714357407408,\"sma2\":0.17989550000000007,\"rsi_avg_gain\":0.0015689112819680835,\"rsi_avg_loss\":0.0017119317805367525,\"rsi\":48},{\"period_id\":\"120m209788\",\"size\":\"120m\",\"time\":1510473600000,\"open\":0.16596,\"high\":0.17146,\"low\":0.1611,\"close\":0.16601,\"volume\":2380649.9986581267,\"close_time\":1510480792987,\"vwap\":0.16580650472552344,\"ema1\":0.1754581806156167,\"sma1\":0.17971810240740746,\"sma2\":0.18005700000000008,\"rsi_avg_gain\":0.0011519044575040904,\"rsi_avg_loss\":0.001843618840578041,\"rsi\":38},{\"period_id\":\"120m209787\",\"size\":\"120m\",\"time\":1510466400000,\"open\":0.17,\"high\":0.17099,\"low\":0.161,\"close\":0.16122,\"volume\":3229527.0687472746,\"close_time\":1510473566212,\"vwap\":0.16361695991870773,\"ema1\":0.17610977927876267,\"sma1\":0.17976449129629626,\"sma2\":0.1802836666666667,\"rsi_avg_gain\":0.000872050954235175,\"rsi_avg_loss\":0.0019854356744686595,\"rsi\":31},{\"period_id\":\"120m209786\",\"size\":\"120m\",\"time\":1510459200000,\"open\":0.17066,\"high\":0.17355,\"low\":0.16823,\"close\":0.17,\"volume\":994724.1163038004,\"close_time\":1510466383975,\"vwap\":0.16981093593037797,\"ema1\":0.17713666060833252,\"sma1\":0.1797705098148148,\"sma2\":0.1803581666666667,\"rsi_avg_gain\":0.00093913179686865,\"rsi_avg_loss\":0.0014627768801970173,\"rsi\":39},{\"period_id\":\"120m209785\",\"size\":\"120m\",\"time\":1510452000000,\"open\":0.17445,\"high\":0.17445,\"low\":0.16902,\"close\":0.16922,\"volume\":1261435.8449201102,\"close_time\":1510459100083,\"vwap\":0.16939373354017578,\"ema1\":0.17762884409856236,\"sma1\":0.17979226907407408,\"sma2\":0.18044616666666669,\"rsi_avg_gain\":0.0009513727043200844,\"rsi_avg_loss\":0.0015752981786737112,\"rsi\":38},{\"period_id\":\"120m209784\",\"size\":\"120m\",\"time\":1510444800000,\"open\":0.17767,\"high\":0.1777,\"low\":0.17407,\"close\":0.17426,\"volume\":328023.63525571,\"close_time\":1510451999100,\"vwap\":0.17529169290599492,\"ema1\":0.17820876438122182,\"sma1\":0.17985986166666668,\"sma2\":0.18042516666666672,\"rsi_avg_gain\":0.001024555220037014,\"rsi_avg_loss\":0.0013087826539563052,\"rsi\":44},{\"period_id\":\"120m209783\",\"size\":\"120m\",\"time\":1510437600000,\"open\":0.17563,\"high\":0.1785,\"low\":0.17377,\"close\":0.1767,\"volume\":316327.0275906,\"close_time\":1510444746655,\"vwap\":0.17650692568946783,\"ema1\":0.17848109295923711,\"sma1\":0.17981625055555556,\"sma2\":0.1804106666666667,\"rsi_avg_gain\":0.0011033671600398612,\"rsi_avg_loss\":0.0012217659350298672,\"rsi\":47},{\"period_id\":\"120m209782\",\"size\":\"120m\",\"time\":1510430400000,\"open\":0.17608,\"high\":0.17998,\"low\":0.17214,\"close\":0.17598,\"volume\":1570101.0684755915,\"close_time\":1510437571913,\"vwap\":0.17641367424739984,\"ema1\":0.17860392695642588,\"sma1\":0.17969606537037042,\"sma2\":0.1804196666666667,\"rsi_avg_gain\":0.001132856941581389,\"rsi_avg_loss\":0.0013157479300321647,\"rsi\":46},{\"period_id\":\"120m209781\",\"size\":\"120m\",\"time\":1510423200000,\"open\":0.179,\"high\":0.18004,\"low\":0.175,\"close\":0.177,\"volume\":1139440.0789324606,\"close_time\":1510430382442,\"vwap\":0.1775927381940046,\"ema1\":0.1787848874361794,\"sma1\":0.1795708801851852,\"sma2\":0.18036033333333334,\"rsi_avg_gain\":0.0012199997832414958,\"rsi_avg_loss\":0.0013384977708038703,\"rsi\":48},{\"period_id\":\"120m209780\",\"size\":\"120m\",\"time\":1510416000000,\"open\":0.1732,\"high\":0.1794,\"low\":0.17001,\"close\":0.1794,\"volume\":991466.1092300097,\"close_time\":1510423190096,\"vwap\":0.1767111952877217,\"ema1\":0.17890798312143316,\"sma1\":0.1794468061111111,\"sma2\":0.18033533333333335,\"rsi_avg_gain\":0.0013138459204139186,\"rsi_avg_loss\":0.0012568437531733979,\"rsi\":51},{\"period_id\":\"120m209779\",\"size\":\"120m\",\"time\":1510408800000,\"open\":0.16985,\"high\":0.17395,\"low\":0.167,\"close\":0.17263,\"volume\":974812.9391063203,\"close_time\":1510415941956,\"vwap\":0.17209418292711262,\"ema1\":0.1788740509229113,\"sma1\":0.17939625055555555,\"sma2\":0.1804,\"rsi_avg_gain\":0.0008941417604457588,\"rsi_avg_loss\":0.001353524041879044,\"rsi\":40},{\"period_id\":\"120m209778\",\"size\":\"120m\",\"time\":1510401600000,\"open\":0.175,\"high\":0.17576832,\"low\":0.16701,\"close\":0.1695,\"volume\":2442211.8787478986,\"close_time\":1510408777466,\"vwap\":0.1698975712929508,\"ema1\":0.1793046751244914,\"sma1\":0.17933904388888883,\"sma2\":0.1805331666666667,\"rsi_avg_gain\":0.0007221526650954329,\"rsi_avg_loss\":0.0014576412758697396,\"rsi\":33},{\"period_id\":\"120m209777\",\"size\":\"120m\",\"time\":1510394400000,\"open\":0.1805,\"high\":0.18141,\"low\":0.172,\"close\":0.1721,\"volume\":2079496.2112085498,\"close_time\":1510401587132,\"vwap\":0.17341347874937826,\"ema1\":0.17998085961583565,\"sma1\":0.17914080314814812,\"sma2\":0.18063316666666665,\"rsi_avg_gain\":0.0007777028701027739,\"rsi_avg_loss\":0.0013697675278597202,\"rsi\":36},{\"period_id\":\"120m209776\",\"size\":\"120m\",\"time\":1510387200000,\"open\":0.17744,\"high\":0.181,\"low\":0.17692,\"close\":0.18022,\"volume\":981048.3481494704,\"close_time\":1510394392419,\"vwap\":0.17997511009550424,\"ema1\":0.18052436717554846,\"sma1\":0.17894635870370368,\"sma2\":0.18052216666666665,\"rsi_avg_gain\":0.0008375261678029873,\"rsi_avg_loss\":0.0008505188761566227,\"rsi\":50},{\"period_id\":\"120m209775\",\"size\":\"120m\",\"time\":1510380000000,\"open\":0.17612,\"high\":0.17835,\"low\":0.17575,\"close\":0.178,\"volume\":270682.5348436299,\"close_time\":1510387170239,\"vwap\":0.17730508915974996,\"ema1\":0.18054535801524146,\"sma1\":0.1788060809259259,\"sma2\":0.18041383333333333,\"rsi_avg_gain\":0.0007311820268647556,\"rsi_avg_loss\":0.0009159434050917475,\"rsi\":44},{\"period_id\":\"120m209774\",\"size\":\"120m\",\"time\":1510372800000,\"open\":0.17598,\"high\":0.177,\"low\":0.175,\"close\":0.1755,\"volume\":131092.04912470002,\"close_time\":1510379912100,\"vwap\":0.17531662453518349,\"ema1\":0.18072089994732707,\"sma1\":0.17869237722222217,\"sma2\":0.18035716666666668,\"rsi_avg_gain\":0.000595119105854352,\"rsi_avg_loss\":0.000986400590098805,\"rsi\":38},{\"period_id\":\"120m209773\",\"size\":\"120m\",\"time\":1510365600000,\"open\":0.17698,\"high\":0.177,\"low\":0.1758,\"close\":0.17635,\"volume\":94690.41121102999,\"close_time\":1510372576835,\"vwap\":0.17531232431820512,\"ema1\":0.18108096201265997,\"sma1\":0.17860571055555552,\"sma2\":0.18028483333333334,\"rsi_avg_gain\":0.0006408974986123791,\"rsi_avg_loss\":0.000996892943183327,\"rsi\":39},{\"period_id\":\"120m209772\",\"size\":\"120m\",\"time\":1510358400000,\"open\":0.17466,\"high\":0.17727,\"low\":0.1735,\"close\":0.177,\"volume\":222966.58106674007,\"close_time\":1510365541592,\"vwap\":0.17525354011705774,\"ema1\":0.18140723525491237,\"sma1\":0.17850895129629624,\"sma2\":0.1801945,\"rsi_avg_gain\":0.0006901973061979467,\"rsi_avg_loss\":0.0010235770157358919,\"rsi\":40},{\"period_id\":\"120m209771\",\"size\":\"120m\",\"time\":1510351200000,\"open\":0.17467,\"high\":0.179,\"low\":0.17387,\"close\":0.1747,\"volume\":797093.3192915202,\"close_time\":1510358365250,\"vwap\":0.17490034733781712,\"ema1\":0.18171118251387183,\"sma1\":0.17839543277777775,\"sma2\":0.18016533333333332,\"rsi_avg_gain\":0.0005663663297516352,\"rsi_avg_loss\":0.0011023137092540374,\"rsi\":34},{\"period_id\":\"120m209770\",\"size\":\"120m\",\"time\":1510344000000,\"open\":0.17441,\"high\":0.17549,\"low\":0.171,\"close\":0.17479,\"volume\":1094468.96498331,\"close_time\":1510351192590,\"vwap\":0.17405705275383263,\"ema1\":0.18219471234241472,\"sma1\":0.1783408957407407,\"sma2\":0.18013771,\"rsi_avg_gain\":0.000609932970501761,\"rsi_avg_loss\":0.0011801839945812704,\"rsi\":34},{\"period_id\":\"120m209769\",\"size\":\"120m\",\"time\":1510336800000,\"open\":0.1761,\"high\":0.1772,\"low\":0.1715,\"close\":0.17441,\"volume\":1735605.7652716597,\"close_time\":1510343991423,\"vwap\":0.17388810306037816,\"ema1\":0.18270538215913298,\"sma1\":0.1782705253703703,\"sma2\":0.1800888766666667,\"rsi_avg_gain\":0.0006276201220788201,\"rsi_avg_loss\":0.0012709673787798296,\"rsi\":33},{\"period_id\":\"120m209768\",\"size\":\"120m\",\"time\":1510329600000,\"open\":0.1778,\"high\":0.178,\"low\":0.1752,\"close\":0.1762,\"volume\":1264054.9084802696,\"close_time\":1510336785873,\"vwap\":0.1771056584893588,\"ema1\":0.1832774774804525,\"sma1\":0.17821959944444443,\"sma2\":0.18001887666666672,\"rsi_avg_gain\":0.0006758985930079602,\"rsi_avg_loss\":0.0012310417925321252,\"rsi\":35},{\"period_id\":\"120m209767\",\"size\":\"120m\",\"time\":1510322400000,\"open\":0.17786,\"high\":0.1788,\"low\":0.175,\"close\":0.1778,\"volume\":1705075.3105860895,\"close_time\":1510329594861,\"vwap\":0.1766864462154869,\"ema1\":0.18376557937565613,\"sma1\":0.17816441425925925,\"sma2\":0.1799383766666667,\"rsi_avg_gain\":0.000727890792470111,\"rsi_avg_loss\":0.001202660391957672,\"rsi\":38},{\"period_id\":\"120m209766\",\"size\":\"120m\",\"time\":1510315200000,\"open\":0.183,\"high\":0.18419,\"low\":0.175,\"close\":0.1756,\"volume\":3142127.279473542,\"close_time\":1510322389977,\"vwap\":0.17730939949362667,\"ema1\":0.18417699864294276,\"sma1\":0.17804691425925925,\"sma2\":0.17987671000000008,\"rsi_avg_gain\":0.000614651622660119,\"rsi_avg_loss\":0.0012951727298005698,\"rsi\":32},{\"period_id\":\"120m209765\",\"size\":\"120m\",\"time\":1510308000000,\"open\":0.18448,\"high\":0.18618,\"low\":0.1828,\"close\":0.18419,\"volume\":1506359.236394429,\"close_time\":1510315192886,\"vwap\":0.18395512580526344,\"ema1\":0.18476851579073192,\"sma1\":0.17791543277777783,\"sma2\":0.1797035433333334,\"rsi_avg_gain\":0.0006619325167108974,\"rsi_avg_loss\":0.000734032170554461,\"rsi\":47},{\"period_id\":\"120m209764\",\"size\":\"120m\",\"time\":1510300800000,\"open\":0.184,\"high\":0.18554,\"low\":0.183,\"close\":0.1833,\"volume\":1503755.2062659115,\"close_time\":1510307961116,\"vwap\":0.1847151242827087,\"ema1\":0.18480841343147206,\"sma1\":0.17779617351851856,\"sma2\":0.1795332100000001,\"rsi_avg_gain\":0.0006443888641501971,\"rsi_avg_loss\":0.0007904961836740349,\"rsi\":45},{\"period_id\":\"120m209763\",\"size\":\"120m\",\"time\":1510293600000,\"open\":0.1856,\"high\":0.18767,\"low\":0.182,\"close\":0.18456,\"volume\":1486303.6773744512,\"close_time\":1510300710540,\"vwap\":0.18441322396670545,\"ema1\":0.18491244194398737,\"sma1\":0.1776452475925926,\"sma2\":0.17936287666666675,\"rsi_avg_gain\":0.0006939572383155969,\"rsi_avg_loss\":0.0007543805054951136,\"rsi\":48},{\"period_id\":\"120m209762\",\"size\":\"120m\",\"time\":1510286400000,\"open\":0.18779,\"high\":0.1893,\"low\":0.185,\"close\":0.1856,\"volume\":939146.5902925809,\"close_time\":1510293560736,\"vwap\":0.18611089398559452,\"ema1\":0.18493674828495202,\"sma1\":0.17748154388888893,\"sma2\":0.1791872100000001,\"rsi_avg_gain\":0.0007473385643398736,\"rsi_avg_loss\":0.000732409775148585,\"rsi\":51},{\"period_id\":\"120m209761\",\"size\":\"120m\",\"time\":1510279200000,\"open\":0.18826,\"high\":0.1888,\"low\":0.18701,\"close\":0.18705,\"volume\":339837.14506474993,\"close_time\":1510285951714,\"vwap\":0.1873973151010274,\"ema1\":0.1848910067873625,\"sma1\":0.17732413648148154,\"sma2\":0.17897471000000006,\"rsi_avg_gain\":0.0008048261462121716,\"rsi_avg_loss\":0.0006772105270830911,\"rsi\":54},{\"period_id\":\"120m209760\",\"size\":\"120m\",\"time\":1510272000000,\"open\":0.18789,\"high\":0.1891,\"low\":0.18751,\"close\":0.18826,\"volume\":345118.0852415101,\"close_time\":1510279161966,\"vwap\":0.18780326241764572,\"ema1\":0.18474211070373234,\"sma1\":0.17716571055555563,\"sma2\":0.17874387666666677,\"rsi_avg_gain\":0.0008667358497669541,\"rsi_avg_loss\":0.0006362267214740969,\"rsi\":58},{\"period_id\":\"120m209759\",\"size\":\"120m\",\"time\":1510264800000,\"open\":0.18834,\"high\":0.18945,\"low\":0.187,\"close\":0.1879,\"volume\":796401.9897196796,\"close_time\":1510271939436,\"vwap\":0.1876947314761949,\"ema1\":0.18449949764881732,\"sma1\":0.17701191425925933,\"sma2\":0.1784985433333334,\"rsi_avg_gain\":0.0009057155305182582,\"rsi_avg_loss\":0.0006851672385105659,\"rsi\":57},{\"period_id\":\"120m209758\",\"size\":\"120m\",\"time\":1510257600000,\"open\":0.18978,\"high\":0.19079,\"low\":0.188,\"close\":0.18826,\"volume\":1298007.2077193111,\"close_time\":1510264623260,\"vwap\":0.18941208474735574,\"ema1\":0.18426498024528748,\"sma1\":0.17684580314814824,\"sma2\":0.17826021000000009,\"rsi_avg_gain\":0.0009753859559427396,\"rsi_avg_loss\":0.0007101801030113786,\"rsi\":58},{\"period_id\":\"120m209757\",\"size\":\"120m\",\"time\":1510250400000,\"open\":0.19128,\"high\":0.19157,\"low\":0.189,\"close\":0.19,\"volume\":1405700.9650095599,\"close_time\":1510257580160,\"vwap\":0.19018452996771892,\"ema1\":0.1839894616415142,\"sma1\":0.17667126611111125,\"sma2\":0.1780185433333334,\"rsi_avg_gain\":0.001050415644861412,\"rsi_avg_loss\":0.0006309631878584084,\"rsi\":62},{\"period_id\":\"120m209756\",\"size\":\"120m\",\"time\":1510243200000,\"open\":0.18917,\"high\":0.1916,\"low\":0.189,\"close\":0.19116,\"volume\":1132757.5451497396,\"close_time\":1510250373928,\"vwap\":0.19097731484840336,\"ema1\":0.18357494175472208,\"sma1\":0.1765036735185187,\"sma2\":0.17775237666666677,\"rsi_avg_gain\":0.0011312168483122898,\"rsi_avg_loss\":0.0005902680484629018,\"rsi\":66},{\"period_id\":\"120m209755\",\"size\":\"120m\",\"time\":1510236000000,\"open\":0.18691,\"high\":0.1895,\"low\":0.186,\"close\":0.18924,\"volume\":1015144.8545400195,\"close_time\":1510243165747,\"vwap\":0.1880456212655674,\"ema1\":0.1830518342895305,\"sma1\":0.17636571055555572,\"sma2\":0.17752904333333344,\"rsi_avg_gain\":0.0010705412212593888,\"rsi_avg_loss\":0.0006356732829600481,\"rsi\":63},{\"period_id\":\"120m209754\",\"size\":\"120m\",\"time\":1510228800000,\"open\":0.18752,\"high\":0.18776,\"low\":0.185,\"close\":0.18751,\"volume\":1343139.0552525606,\"close_time\":1510235959442,\"vwap\":0.1871802629170993,\"ema1\":0.1826250642405326,\"sma1\":0.1762457105555557,\"sma2\":0.17735404333333343,\"rsi_avg_gain\":0.0010198136228947278,\"rsi_avg_loss\":0.0006845712278031286,\"rsi\":60},{\"period_id\":\"120m209753\",\"size\":\"120m\",\"time\":1510221600000,\"open\":0.1869,\"high\":0.19,\"low\":0.1862,\"close\":0.18776,\"volume\":3008040.409756683,\"close_time\":1510228722468,\"vwap\":0.18735094593588092,\"ema1\":0.18228817211919002,\"sma1\":0.17610496981481497,\"sma2\":0.17714137666666677,\"rsi_avg_gain\":0.0010982608246558607,\"rsi_avg_loss\":0.0007179997837879846,\"rsi\":60},{\"period_id\":\"120m209752\",\"size\":\"120m\",\"time\":1510214400000,\"open\":0.1918,\"high\":0.19399,\"low\":0.18508,\"close\":0.18612,\"volume\":2349684.717258219,\"close_time\":1510221593570,\"vwap\":0.18663569524294588,\"ema1\":0.18191080467913415,\"sma1\":0.17592635870370388,\"sma2\":0.17697271000000006,\"rsi_avg_gain\":0.001056588580398619,\"rsi_avg_loss\":0.0007732305363870603,\"rsi\":58},{\"period_id\":\"120m209751\",\"size\":\"120m\",\"time\":1510207200000,\"open\":0.19,\"high\":0.19345,\"low\":0.18762,\"close\":0.1923,\"volume\":1760255.8831517405,\"close_time\":1510214387087,\"vwap\":0.19084149209067808,\"ema1\":0.18162051534666063,\"sma1\":0.17574978462962984,\"sma2\":0.17669971000000004,\"rsi_avg_gain\":0.0011378646250446666,\"rsi_avg_loss\":0.00035732519303221936,\"rsi\":76},{\"period_id\":\"120m209750\",\"size\":\"120m\",\"time\":1510200000000,\"open\":0.19149,\"high\":0.19209,\"low\":0.18817,\"close\":0.19,\"volume\":1028929.5947521498,\"close_time\":1510207189870,\"vwap\":0.19029119589708793,\"ema1\":0.1808839991636717,\"sma1\":0.17558172907407427,\"sma2\":0.1764783766666667,\"rsi_avg_gain\":0.0010484695962019491,\"rsi_avg_loss\":0.00038481174634239006,\"rsi\":73},{\"period_id\":\"120m209749\",\"size\":\"120m\",\"time\":1510192800000,\"open\":0.1904,\"high\":0.19199,\"low\":0.19,\"close\":0.1915,\"volume\":451503.23897744983,\"close_time\":1510199851179,\"vwap\":0.19012264341175858,\"ema1\":0.18025530945082147,\"sma1\":0.17541978462962982,\"sma2\":0.17619621,\"rsi_avg_gain\":0.0011291211036020992,\"rsi_avg_loss\":0.00029902803452257383,\"rsi\":79},{\"period_id\":\"120m209748\",\"size\":\"120m\",\"time\":1510185600000,\"open\":0.1883,\"high\":0.19145,\"low\":0.18762,\"close\":0.1905,\"volume\":1098934.3051002997,\"close_time\":1510192757308,\"vwap\":0.1894927737387477,\"ema1\":0.1794798135508781,\"sma1\":0.17525987722222236,\"sma2\":0.17593787666666666,\"rsi_avg_gain\":0.001139053496186876,\"rsi_avg_loss\":0.0003220301910243103,\"rsi\":78},{\"period_id\":\"120m209747\",\"size\":\"120m\",\"time\":1510178400000,\"open\":0.18594,\"high\":0.194,\"low\":0.18486,\"close\":0.1883,\"volume\":3605912.2368677803,\"close_time\":1510185592050,\"vwap\":0.1877604922095819,\"ema1\":0.17871980069231796,\"sma1\":0.17507932166666682,\"sma2\":0.17577454333333328,\"rsi_avg_gain\":0.001057442226662789,\"rsi_avg_loss\":0.0003468017441800265,\"rsi\":75},{\"period_id\":\"120m209746\",\"size\":\"120m\",\"time\":1510171200000,\"open\":0.18458,\"high\":0.189,\"low\":0.18392,\"close\":0.18483,\"volume\":2863643.826655647,\"close_time\":1510178396358,\"vwap\":0.1860336634838244,\"ema1\":0.17805909729178818,\"sma1\":0.17494774759259274,\"sma2\":0.17574237666666667,\"rsi_avg_gain\":0.0008718608594830033,\"rsi_avg_loss\":0.00037347880142464394,\"rsi\":70},{\"period_id\":\"120m209745\",\"size\":\"120m\",\"time\":1510164000000,\"open\":0.18168,\"high\":0.18489,\"low\":0.1812,\"close\":0.18478,\"volume\":1649316.9000354288,\"close_time\":1510171085680,\"vwap\":0.18342318013479936,\"ema1\":0.17759213848432528,\"sma1\":0.17485432166666684,\"sma2\":0.17572520999999994,\"rsi_avg_gain\":0.0009350809255970809,\"rsi_avg_loss\":0.00040220793999577037,\"rsi\":70},{\"period_id\":\"120m209744\",\"size\":\"120m\",\"time\":1510156800000,\"open\":0.18179,\"high\":0.18185,\"low\":0.18021,\"close\":0.18169,\"volume\":681920.6512323202,\"close_time\":1510163982490,\"vwap\":0.18117585840963832,\"ema1\":0.17709642389703736,\"sma1\":0.17479080314814832,\"sma2\":0.17573820999999995,\"rsi_avg_gain\":0.0007693179198737787,\"rsi_avg_loss\":0.00043314701230313734,\"rsi\":64},{\"period_id\":\"120m209743\",\"size\":\"120m\",\"time\":1510149600000,\"open\":0.1805,\"high\":0.18185,\"low\":0.17981,\"close\":0.18185,\"volume\":951725.1750221897,\"close_time\":1510156611388,\"vwap\":0.18060149601165332,\"ema1\":0.1767796255451089,\"sma1\":0.17472358092592605,\"sma2\":0.17568104333333331,\"rsi_avg_gain\":0.0008284962214025308,\"rsi_avg_loss\":0.0004541583209418386,\"rsi\":65},{\"period_id\":\"120m209742\",\"size\":\"120m\",\"time\":1510142400000,\"open\":0.17993,\"high\":0.18099,\"low\":0.17898,\"close\":0.1805,\"volume\":540792.8048310501,\"close_time\":1510149525975,\"vwap\":0.18033749566833174,\"ema1\":0.17642994454821986,\"sma1\":0.17467182166666678,\"sma2\":0.17562087666666662,\"rsi_avg_gain\":0.000788380546125801,\"rsi_avg_loss\":0.0004890935763989031,\"rsi\":62},{\"period_id\":\"120m209741\",\"size\":\"120m\",\"time\":1510135200000,\"open\":0.1814,\"high\":0.1818,\"low\":0.179,\"close\":0.179,\"volume\":783970.61652481,\"close_time\":1510142377261,\"vwap\":0.1805466032165609,\"ema1\":0.17614925106878676,\"sma1\":0.17461108092592603,\"sma2\":0.1755445433333333,\"rsi_avg_gain\":0.000733640588135478,\"rsi_avg_loss\":0.0005267161591988187,\"rsi\":58},{\"period_id\":\"120m209740\",\"size\":\"120m\",\"time\":1510128000000,\"open\":0.17791,\"high\":0.1815,\"low\":0.1779,\"close\":0.1814,\"volume\":1374943.94239282,\"close_time\":1510135187696,\"vwap\":0.1805498309058381,\"ema1\":0.17595264769422034,\"sma1\":0.17454858092592598,\"sma2\":0.17539120999999996,\"rsi_avg_gain\":0.0007900744795305148,\"rsi_avg_loss\":0.00038261740221411144,\"rsi\":67},{\"period_id\":\"120m209739\",\"size\":\"120m\",\"time\":1510120800000,\"open\":0.17764,\"high\":0.17849,\"low\":0.17652,\"close\":0.178,\"volume\":384621.52919080993,\"close_time\":1510127962156,\"vwap\":0.17798984519743985,\"ema1\":0.17557696822485622,\"sma1\":0.17450515500000008,\"sma2\":0.1753463766666666,\"rsi_avg_gain\":0.0005893109779559379,\"rsi_avg_loss\":0.0004120495100767354,\"rsi\":59},{\"period_id\":\"120m209738\",\"size\":\"120m\",\"time\":1510113600000,\"open\":0.1769,\"high\":0.1777,\"low\":0.17644,\"close\":0.1777,\"volume\":69522.52897796,\"close_time\":1510120779142,\"vwap\":0.1767210124055962,\"ema1\":0.17540986258519112,\"sma1\":0.17446256240740748,\"sma2\":0.1752628766666666,\"rsi_avg_gain\":0.0006115656685679335,\"rsi_avg_loss\":0.0004437456262364843,\"rsi\":58},{\"period_id\":\"120m209737\",\"size\":\"120m\",\"time\":1510106400000,\"open\":0.17604,\"high\":0.1777,\"low\":0.17601,\"close\":0.17679,\"volume\":48029.677979789994,\"close_time\":1510113047765,\"vwap\":0.17670566369620097,\"ema1\":0.17525192207382498,\"sma1\":0.17442145129629635,\"sma2\":0.1751333766666666,\"rsi_avg_gain\":0.0005886091815346981,\"rsi_avg_loss\":0.0004778799051777523,\"rsi\":55},{\"period_id\":\"120m209736\",\"size\":\"120m\",\"time\":1510099200000,\"open\":0.17749,\"high\":0.178,\"low\":0.17573,\"close\":0.17627,\"volume\":193680.65782711,\"close_time\":1510105724331,\"vwap\":0.17670227481265213,\"ema1\":0.17514584773408878,\"sma1\":0.17438404388888895,\"sma2\":0.1751413766666666,\"rsi_avg_gain\":0.0005938868108835216,\"rsi_avg_loss\":0.0005146398978837333,\"rsi\":54},{\"period_id\":\"120m209735\",\"size\":\"120m\",\"time\":1510092000000,\"open\":0.176,\"high\":0.17798,\"low\":0.17505,\"close\":0.17654,\"volume\":331983.7212767101,\"close_time\":1510099191438,\"vwap\":0.17663673199033852,\"ema1\":0.17506831999161215,\"sma1\":0.17434135870370374,\"sma2\":0.17506720999999995,\"rsi_avg_gain\":0.0006395704117207156,\"rsi_avg_loss\":0.000533458351567098,\"rsi\":55},{\"period_id\":\"120m209734\",\"size\":\"120m\",\"time\":1510084800000,\"open\":0.17462,\"high\":0.17599,\"low\":0.174,\"close\":0.1758,\"volume\":543890.8425675798,\"close_time\":1510091951730,\"vwap\":0.17508223300746226,\"ema1\":0.1749668248186199,\"sma1\":0.1743274698148148,\"sma2\":0.17486787666666662,\"rsi_avg_gain\":0.0006318450587761559,\"rsi_avg_loss\":0.0005744936093799517,\"rsi\":52},{\"period_id\":\"120m209733\",\"size\":\"120m\",\"time\":1510077600000,\"open\":0.176,\"high\":0.17623,\"low\":0.1742,\"close\":0.17467,\"volume\":298285.5914498901,\"close_time\":1510084781753,\"vwap\":0.17503357984286866,\"ema1\":0.17490936446128333,\"sma1\":0.17430265499999997,\"sma2\":0.17470687666666665,\"rsi_avg_gain\":0.0005935254479127818,\"rsi_avg_loss\":0.0006186854254861019,\"rsi\":49},{\"period_id\":\"120m209732\",\"size\":\"120m\",\"time\":1510070400000,\"open\":0.17696,\"high\":0.17699,\"low\":0.1741,\"close\":0.17624,\"volume\":616210.35768858,\"close_time\":1510077534651,\"vwap\":0.17516374361768977,\"ema1\":0.17492587235516494,\"sma1\":0.17427219203703703,\"sma2\":0.17451487666666665,\"rsi_avg_gain\":0.0006391812515983804,\"rsi_avg_loss\":0.0005455073812927238,\"rsi\":54},{\"period_id\":\"120m209731\",\"size\":\"120m\",\"time\":1510063200000,\"open\":0.1765,\"high\":0.1788,\"low\":0.175,\"close\":0.17696,\"volume\":484177.00953444996,\"close_time\":1510070388539,\"vwap\":0.17686011876814106,\"ema1\":0.1748352428624177,\"sma1\":0.1742154327777778,\"sma2\":0.17432304333333332,\"rsi_avg_gain\":0.0006883490401828712,\"rsi_avg_loss\":0.000532084872161395,\"rsi\":56},{\"period_id\":\"120m209730\",\"size\":\"120m\",\"time\":1510056000000,\"open\":0.17611,\"high\":0.1794,\"low\":0.17513,\"close\":0.1765,\"volume\":691270.1650262901,\"close_time\":1510063183951,\"vwap\":0.17650495523366452,\"ema1\":0.174688707887412,\"sma1\":0.17414691425925927,\"sma2\":0.17415170999999996,\"rsi_avg_gain\":0.0007059143509661678,\"rsi_avg_loss\":0.0005730144777122716,\"rsi\":55},{\"period_id\":\"120m209729\",\"size\":\"120m\",\"time\":1510048800000,\"open\":0.175,\"high\":0.17611,\"low\":0.1742,\"close\":0.17611,\"volume\":343346.65494068,\"close_time\":1510055978376,\"vwap\":0.17543446598481857,\"ema1\":0.17456379118999213,\"sma1\":0.17410311796296296,\"sma2\":0.17388320999999998,\"rsi_avg_gain\":0.0007302154548866421,\"rsi_avg_loss\":0.0006170925144593694,\"rsi\":54},{\"period_id\":\"120m209728\",\"size\":\"120m\",\"time\":1510041600000,\"open\":0.17482,\"high\":0.1763,\"low\":0.1744,\"close\":0.1757,\"volume\":580407.61852609,\"close_time\":1510048791024,\"vwap\":0.17542793799721568,\"ema1\":0.17445715609964677,\"sma1\":0.17407061796296294,\"sma2\":0.17356670999999996,\"rsi_avg_gain\":0.0007548474129548458,\"rsi_avg_loss\":0.0006645611694177824,\"rsi\":53},{\"period_id\":\"120m209727\",\"size\":\"120m\",\"time\":1510034400000,\"open\":0.1744,\"high\":0.17537,\"low\":0.17321,\"close\":0.17482,\"volume\":284289.22077732993,\"close_time\":1510041591397,\"vwap\":0.1744004455960402,\"ema1\":0.17437144272720861,\"sma1\":0.17405580314814817,\"sma2\":0.17330504333333335,\"rsi_avg_gain\":0.0007452202908744498,\"rsi_avg_loss\":0.0007156812593729964,\"rsi\":51},{\"period_id\":\"120m209726\",\"size\":\"120m\",\"time\":1510027200000,\"open\":0.17457,\"high\":0.17517,\"low\":0.17371,\"close\":0.17447,\"volume\":11673.709015010001,\"close_time\":1510034307242,\"vwap\":0.17436701016704031,\"ema1\":0.17434050774287818,\"sma1\":0.1740440438888889,\"sma2\":0.1730855433333333,\"rsi_avg_gain\":0.0007756218517109447,\"rsi_avg_loss\":0.00077073366394015,\"rsi\":50},{\"period_id\":\"120m209725\",\"size\":\"120m\",\"time\":1510020000000,\"open\":0.17377,\"high\":0.1745,\"low\":0.17302,\"close\":0.1745,\"volume\":20485.34577588,\"close_time\":1510026811994,\"vwap\":0.1754549973585701,\"ema1\":0.17433157724238701,\"sma1\":0.17401395129629627,\"sma2\":0.17288554333333334,\"rsi_avg_gain\":0.000835285071073325,\"rsi_avg_loss\":0.0008277131765509306,\"rsi\":50},{\"period_id\":\"120m209724\",\"size\":\"120m\",\"time\":1510012800000,\"open\":0.1752,\"high\":0.176,\"low\":0.173,\"close\":0.173,\"volume\":507745.65906769,\"close_time\":1510019694184,\"vwap\":0.1754576853170771,\"ema1\":0.174319961879793,\"sma1\":0.17397811796296297,\"sma2\":0.17275754333333332,\"rsi_avg_gain\":0.0007841531534635807,\"rsi_avg_loss\":0.0008913834209010021,\"rsi\":47},{\"period_id\":\"120m209723\",\"size\":\"120m\",\"time\":1510005600000,\"open\":0.176,\"high\":0.17736,\"low\":0.17508,\"close\":0.17583,\"volume\":321363.90848562,\"close_time\":1510012612990,\"vwap\":0.1762746285026481,\"ema1\":0.17441099373357183,\"sma1\":0.17393339574074074,\"sma2\":0.17256604333333334,\"rsi_avg_gain\":0.000844472626806933,\"rsi_avg_loss\":0.0007422590686626177,\"rsi\":53},{\"period_id\":\"120m209722\",\"size\":\"120m\",\"time\":1509998400000,\"open\":0.17397,\"high\":0.17917,\"low\":0.173,\"close\":0.17652,\"volume\":837215.3540747804,\"close_time\":1510005596259,\"vwap\":0.17647967312036553,\"ema1\":0.17431313123243886,\"sma1\":0.17388821055555553,\"sma2\":0.17239937666666666,\"rsi_avg_gain\":0.0009094320596382355,\"rsi_avg_loss\":0.0007462789970212788,\"rsi\":55},{\"period_id\":\"120m209721\",\"size\":\"120m\",\"time\":1509991200000,\"open\":0.1779,\"high\":0.178,\"low\":0.1725,\"close\":0.17344,\"volume\":831803.0782492501,\"close_time\":1509998371399,\"vwap\":0.17359273417515717,\"ema1\":0.17416093338640015,\"sma1\":0.17383654388888883,\"sma2\":0.17231671,\"rsi_avg_gain\":0.0007424652949950229,\"rsi_avg_loss\":0.0008036850737152233,\"rsi\":48},{\"period_id\":\"120m209720\",\"size\":\"120m\",\"time\":1509984000000,\"open\":0.17718,\"high\":0.178,\"low\":0.176,\"close\":0.1779,\"volume\":519464.5367089202,\"close_time\":1509991165784,\"vwap\":0.17753007343991495,\"ema1\":0.1742106529302898,\"sma1\":0.1737830253703703,\"sma2\":0.17218487666666665,\"rsi_avg_gain\":0.00079957800999464,\"rsi_avg_loss\":0.0005224300793856257,\"rsi\":60},{\"period_id\":\"120m209719\",\"size\":\"120m\",\"time\":1509976800000,\"open\":0.17746,\"high\":0.17942,\"low\":0.176,\"close\":0.17651,\"volume\":713613.6589118104,\"close_time\":1509983927143,\"vwap\":0.17709563230918995,\"ema1\":0.17395621520134427,\"sma1\":0.17373274759259252,\"sma2\":0.17211521,\"rsi_avg_gain\":0.0007541609338403814,\"rsi_avg_loss\":0.0005626170085691354,\"rsi\":57},{\"period_id\":\"120m209718\",\"size\":\"120m\",\"time\":1509969600000,\"open\":0.17809,\"high\":0.1795,\"low\":0.17611,\"close\":0.17749,\"volume\":1374767.8448534303,\"close_time\":1509976794806,\"vwap\":0.1778146569036891,\"ema1\":0.1737800921117818,\"sma1\":0.17368885870370365,\"sma2\":0.17200871,\"rsi_avg_gain\":0.0008121733133665646,\"rsi_avg_loss\":0.0005305106246129143,\"rsi\":60},{\"period_id\":\"120m209717\",\"size\":\"120m\",\"time\":1509962400000,\"open\":0.1735,\"high\":0.17999,\"low\":0.1725,\"close\":0.1781,\"volume\":2200216.881624569,\"close_time\":1509969590499,\"vwap\":0.17818913552881152,\"ema1\":0.17352423639535297,\"sma1\":0.17363922907407403,\"sma2\":0.17187354333333332,\"rsi_avg_gain\":0.0008746481836255311,\"rsi_avg_loss\":0.0005243960572754462,\"rsi\":63},{\"period_id\":\"120m209716\",\"size\":\"120m\",\"time\":1509955200000,\"open\":0.17255,\"high\":0.17357,\"low\":0.17148,\"close\":0.17356,\"volume\":335989.29328549025,\"close_time\":1509962384294,\"vwap\":0.17291496410541388,\"ema1\":0.1732086664915842,\"sma1\":0.17365006240740738,\"sma2\":0.17183271,\"rsi_avg_gain\":0.0005926980439044169,\"rsi_avg_loss\":0.0005647342155274037,\"rsi\":51},{\"period_id\":\"120m209715\",\"size\":\"120m\",\"time\":1509948000000,\"open\":0.1721,\"high\":0.1728,\"low\":0.1715,\"close\":0.1715,\"volume\":202010.55558656997,\"close_time\":1509955028898,\"vwap\":0.17225804789680318,\"ema1\":0.17318443659445207,\"sma1\":0.1736625624074074,\"sma2\":0.17182771000000002,\"rsi_avg_gain\":0.0004798286626662968,\"rsi_avg_loss\":0.0006081753090295116,\"rsi\":44},{\"period_id\":\"120m209714\",\"size\":\"120m\",\"time\":1509940800000,\"open\":0.17246,\"high\":0.17288,\"low\":0.17201,\"close\":0.1721,\"volume\":23604.53356389,\"close_time\":1509947976027,\"vwap\":0.17209552890436183,\"ema1\":0.17330060463544877,\"sma1\":0.173670155,\"sma2\":0.17180604333333335,\"rsi_avg_gain\":0.0005167385597944735,\"rsi_avg_loss\":0.0006088041789548594,\"rsi\":46},{\"period_id\":\"120m209713\",\"size\":\"120m\",\"time\":1509933600000,\"open\":0.17205,\"high\":0.17288,\"low\":0.17157,\"close\":0.17201,\"volume\":19736.135164620002,\"close_time\":1509939281965,\"vwap\":0.17204650479099604,\"ema1\":0.1733834049551349,\"sma1\":0.17367598833333334,\"sma2\":0.17177304333333335,\"rsi_avg_gain\":0.0005495646028555863,\"rsi_avg_loss\":0.0006556352696436946,\"rsi\":46},{\"period_id\":\"120m209712\",\"size\":\"120m\",\"time\":1509926400000,\"open\":0.17216,\"high\":0.17292,\"low\":0.1715,\"close\":0.17158,\"volume\":121462.81296058,\"close_time\":1509933007327,\"vwap\":0.17199952995579762,\"ema1\":0.17347812253824765,\"sma1\":0.17368969203703702,\"sma2\":0.17177604333333335,\"rsi_avg_gain\":0.0005587618799983248,\"rsi_avg_loss\":0.0007060687519239788,\"rsi\":44},{\"period_id\":\"120m209711\",\"size\":\"120m\",\"time\":1509919200000,\"open\":0.1731326,\"high\":0.1735,\"low\":0.17202,\"close\":0.17295,\"volume\":141936.93398588,\"close_time\":1509926340359,\"vwap\":0.17202242215207095,\"ema1\":0.17360902754088542,\"sma1\":0.1737000624074074,\"sma2\":0.17174754333333336,\"rsi_avg_gain\":0.000601743563075119,\"rsi_avg_loss\":0.000654997117456594,\"rsi\":48},{\"period_id\":\"120m209710\",\"size\":\"120m\",\"time\":1509912000000,\"open\":0.1715,\"high\":0.1731326,\"low\":0.17102,\"close\":0.1731326,\"volume\":453581.5936299202,\"close_time\":1509919033486,\"vwap\":0.1719430844825247,\"ema1\":0.1736544777161189,\"sma1\":0.17371383462962958,\"sma2\":0.17172933333333337,\"rsi_avg_gain\":0.0006480315294655129,\"rsi_avg_loss\":0.000691335357260947,\"rsi\":48},{\"period_id\":\"120m209709\",\"size\":\"120m\",\"time\":1509904800000,\"open\":0.17196,\"high\":0.172,\"low\":0.171,\"close\":0.17148,\"volume\":278209.07779125,\"close_time\":1509911957273,\"vwap\":0.17139668871908909,\"ema1\":0.17369046928274778,\"sma1\":0.17373939018518517,\"sma2\":0.17174900000000007,\"rsi_avg_gain\":0.0005707570317320904,\"rsi_avg_loss\":0.0007445150001271737,\"rsi\":43},{\"period_id\":\"120m209708\",\"size\":\"120m\",\"time\":1509897600000,\"open\":0.17288,\"high\":0.173,\"low\":0.17115,\"close\":0.172,\"volume\":375641.9879333099,\"close_time\":1509904684190,\"vwap\":0.17228677855476393,\"ema1\":0.17384291544017866,\"sma1\":0.1737573531481481,\"sma2\":0.1717490000000001,\"rsi_avg_gain\":0.0006146614187884051,\"rsi_avg_loss\":0.0007617853847523415,\"rsi\":45},{\"period_id\":\"120m209707\",\"size\":\"120m\",\"time\":1509890400000,\"open\":0.17179,\"high\":0.173,\"low\":0.171,\"close\":0.17297,\"volume\":292718.31836345984,\"close_time\":1509897404974,\"vwap\":0.1724085885206468,\"ema1\":0.1739700130567427,\"sma1\":0.17377401981481477,\"sma2\":0.1717578333333334,\"rsi_avg_gain\":0.0006619430663875132,\"rsi_avg_loss\":0.000745768875887135,\"rsi\":47},{\"period_id\":\"120m209706\",\"size\":\"120m\",\"time\":1509883200000,\"open\":0.17341,\"high\":0.17438,\"low\":0.1713,\"close\":0.1719,\"volume\":480094.5933641599,\"close_time\":1509890180175,\"vwap\":0.17267278957348586,\"ema1\":0.1740389794744491,\"sma1\":0.1737765198148148,\"sma2\":0.1718028333333334,\"rsi_avg_gain\":0.0006305540714942438,\"rsi_avg_loss\":0.0008031357124938377,\"rsi\":44},{\"period_id\":\"120m209705\",\"size\":\"120m\",\"time\":1509876000000,\"open\":0.1735,\"high\":0.17436,\"low\":0.172,\"close\":0.1738,\"volume\":282879.70329523,\"close_time\":1509882934323,\"vwap\":0.17342649689279976,\"ema1\":0.17418649530027316,\"sma1\":0.1737778161111111,\"sma2\":0.17181316666666674,\"rsi_avg_gain\":0.0006790582308399549,\"rsi_avg_loss\":0.0007187615365318242,\"rsi\":49},{\"period_id\":\"120m209704\",\"size\":\"120m\",\"time\":1509868800000,\"open\":0.175,\"high\":0.175,\"low\":0.17224,\"close\":0.17308,\"volume\":192083.89489337002,\"close_time\":1509875951637,\"vwap\":0.1736800166148328,\"ema1\":0.17421315014856786,\"sma1\":0.17377744574074072,\"sma2\":0.17184000000000005,\"rsi_avg_gain\":0.00067590886398149,\"rsi_avg_loss\":0.0007740508854958108,\"rsi\":47},{\"period_id\":\"120m209703\",\"size\":\"120m\",\"time\":1509861600000,\"open\":0.17477,\"high\":0.175,\"low\":0.17412,\"close\":0.17434,\"volume\":22891.058959859998,\"close_time\":1509868062594,\"vwap\":0.1736476916587434,\"ema1\":0.174291298434676,\"sma1\":0.17377559388888886,\"sma2\":0.17183783333333338,\"rsi_avg_gain\":0.0007279018535185276,\"rsi_avg_loss\":0.0007366701843801053,\"rsi\":50},{\"period_id\":\"120m209702\",\"size\":\"120m\",\"time\":1509854400000,\"open\":0.1743,\"high\":0.1751,\"low\":0.17386,\"close\":0.17506,\"volume\":45456.856648160014,\"close_time\":1509861577221,\"vwap\":0.17363680864222952,\"ema1\":0.17428793970603296,\"sma1\":0.17376874203703696,\"sma2\":0.17181833333333338,\"rsi_avg_gain\":0.0007838943037891836,\"rsi_avg_loss\":0.0007379525062554982,\"rsi\":52},{\"period_id\":\"120m209701\",\"size\":\"120m\",\"time\":1509847200000,\"open\":0.17441,\"high\":0.17508,\"low\":0.17233,\"close\":0.1743,\"volume\":87526.60253024001,\"close_time\":1509854298552,\"vwap\":0.17361327061764528,\"ema1\":0.174234694168518,\"sma1\":0.17375633462962958,\"sma2\":0.17181566666666673,\"rsi_avg_gain\":0.0007857323271575837,\"rsi_avg_loss\":0.0007947180836597673,\"rsi\":50},{\"period_id\":\"120m209700\",\"size\":\"120m\",\"time\":1509840000000,\"open\":0.1732,\"high\":0.1747,\"low\":0.17234,\"close\":0.17441,\"volume\":220942.73585190997,\"close_time\":1509847131823,\"vwap\":0.1735962779459015,\"ema1\":0.17423019031807097,\"sma1\":0.1737498531481481,\"sma2\":0.1718096666666667,\"rsi_avg_gain\":0.0008461732754004748,\"rsi_avg_loss\":0.0008473887054797495,\"rsi\":50},{\"period_id\":\"120m209699\",\"size\":\"120m\",\"time\":1509832800000,\"open\":0.17397,\"high\":0.17489,\"low\":0.17309,\"close\":0.17318,\"volume\":70737.93909811002,\"close_time\":1509839832787,\"vwap\":0.17377170706212106,\"ema1\":0.17421778965035173,\"sma1\":0.17374290870370365,\"sma2\":0.17182766666666668,\"rsi_avg_gain\":0.0008166481427389721,\"rsi_avg_loss\":0.0009125724520551149,\"rsi\":47},{\"period_id\":\"120m209698\",\"size\":\"120m\",\"time\":1509825600000,\"open\":0.1747,\"high\":0.17491,\"low\":0.173,\"close\":0.17396,\"volume\":312704.62396786007,\"close_time\":1509832781004,\"vwap\":0.1737484680016325,\"ema1\":0.17428936135037598,\"sma1\":0.17373327907407404,\"sma2\":0.17182000000000003,\"rsi_avg_gain\":0.0008794672306419699,\"rsi_avg_loss\":0.0009227703329824312,\"rsi\":49},{\"period_id\":\"120m209697\",\"size\":\"120m\",\"time\":1509818400000,\"open\":0.17519,\"high\":0.17576,\"low\":0.1746,\"close\":0.1755,\"volume\":115412.53669688001,\"close_time\":1509825521375,\"vwap\":0.1753679607250385,\"ema1\":0.174312075926264,\"sma1\":0.17372003833333327,\"sma2\":0.17180766666666666,\"rsi_avg_gain\":0.0009471185560759677,\"rsi_avg_loss\":0.0008752911278272346,\"rsi\":52},{\"period_id\":\"120m209696\",\"size\":\"120m\",\"time\":1509811200000,\"open\":0.17544,\"high\":0.176,\"low\":0.17461,\"close\":0.17519,\"volume\":265530.03636954,\"close_time\":1509818399443,\"vwap\":0.1753941580868995,\"ema1\":0.1742301501280753,\"sma1\":0.17369772351851848,\"sma2\":0.17177116666666667,\"rsi_avg_gain\":0.0009961276757741208,\"rsi_avg_loss\":0.0009426212145831758,\"rsi\":51},{\"period_id\":\"120m209695\",\"size\":\"120m\",\"time\":1509804000000,\"open\":0.17701,\"high\":0.17727,\"low\":0.1754,\"close\":0.17584,\"volume\":400965.41010697023,\"close_time\":1509811145225,\"vwap\":0.1758281287410047,\"ema1\":0.17416395358518394,\"sma1\":0.17367207537037033,\"sma2\":0.17174766666666663,\"rsi_avg_gain\":0.0010727528816028994,\"rsi_avg_loss\":0.0009651305387818828,\"rsi\":53},{\"period_id\":\"120m209694\",\"size\":\"120m\",\"time\":1509796800000,\"open\":0.17545,\"high\":0.17796,\"low\":0.175,\"close\":0.17701,\"volume\":519384.7214879097,\"close_time\":1509803994909,\"vwap\":0.17640878947073985,\"ema1\":0.1740483641772656,\"sma1\":0.17365281611111102,\"sma2\":0.17170333333333332,\"rsi_avg_gain\":0.0011552723340338916,\"rsi_avg_loss\":0.000949371349457412,\"rsi\":55},{\"period_id\":\"120m209693\",\"size\":\"120m\",\"time\":1509789600000,\"open\":0.17463,\"high\":0.17686,\"low\":0.1742,\"close\":0.175,\"volume\":276182.54125248006,\"close_time\":1509796634780,\"vwap\":0.17525089252570303,\"ema1\":0.1738441134308701,\"sma1\":0.17364151981481477,\"sma2\":0.1717033333333333,\"rsi_avg_gain\":0.0010895240520364976,\"rsi_avg_loss\":0.0010223999148002898,\"rsi\":52},{\"period_id\":\"120m209692\",\"size\":\"120m\",\"time\":1509782400000,\"open\":0.17584,\"high\":0.17674414,\"low\":0.17422,\"close\":0.176,\"volume\":457462.7664928798,\"close_time\":1509789508359,\"vwap\":0.17573886937444366,\"ema1\":0.1737643971157577,\"sma1\":0.17362379629629623,\"sma2\":0.1716633333333333,\"rsi_avg_gain\":0.0011733335945008437,\"rsi_avg_loss\":0.0010241229851695427,\"rsi\":53},{\"period_id\":\"120m209691\",\"size\":\"120m\",\"time\":1509775200000,\"open\":0.17575,\"high\":0.17638,\"low\":0.17486,\"close\":0.17592,\"volume\":205233.37796132002,\"close_time\":1509782377457,\"vwap\":0.1756685772993752,\"ema1\":0.1736102176064996,\"sma1\":0.17359712962962956,\"sma2\":0.17161466666666664,\"rsi_avg_gain\":0.0012574361786932165,\"rsi_avg_loss\":0.0011029016763364305,\"rsi\":53},{\"period_id\":\"120m209690\",\"size\":\"120m\",\"time\":1509768000000,\"open\":0.17459,\"high\":0.17672,\"low\":0.17359,\"close\":0.17672,\"volume\":408079.27570876,\"close_time\":1509775092431,\"vwap\":0.17556263554744583,\"ema1\":0.17345092226901682,\"sma1\":0.17356851851851848,\"sma2\":0.17155416666666665,\"rsi_avg_gain\":0.0013541620385926947,\"rsi_avg_loss\":0.001126201805285387,\"rsi\":55},{\"period_id\":\"120m209689\",\"size\":\"120m\",\"time\":1509760800000,\"open\":0.17535,\"high\":0.17698,\"low\":0.17202,\"close\":0.17457,\"volume\":1521247.5292743105,\"close_time\":1509767699486,\"vwap\":0.1742942727097187,\"ema1\":0.1732254686323973,\"sma1\":0.17353731481481477,\"sma2\":0.17152916666666662,\"rsi_avg_gain\":0.001292943733869057,\"rsi_avg_loss\":0.001212832713384263,\"rsi\":52},{\"period_id\":\"120m209688\",\"size\":\"120m\",\"time\":1509753600000,\"open\":0.1785,\"high\":0.179,\"low\":0.175,\"close\":0.175,\"volume\":451997.22231772024,\"close_time\":1509760617905,\"vwap\":0.17562472404472826,\"ema1\":0.1731327423311833,\"sma1\":0.17348388888888883,\"sma2\":0.17149466666666663,\"rsi_avg_gain\":0.0013924009441666767,\"rsi_avg_loss\":0.0012730506144138227,\"rsi\":52},{\"period_id\":\"120m209687\",\"size\":\"120m\",\"time\":1509746400000,\"open\":0.1829,\"high\":0.184,\"low\":0.1785,\"close\":0.1785,\"volume\":575165.06890172,\"close_time\":1509753593833,\"vwap\":0.18040397799579821,\"ema1\":0.17300396594023043,\"sma1\":0.1733971296296296,\"sma2\":0.17139216666666662,\"rsi_avg_gain\":0.001499508709102575,\"rsi_avg_loss\":0.001101746815522578,\"rsi\":58},{\"period_id\":\"120m209686\",\"size\":\"120m\",\"time\":1509739200000,\"open\":0.1832,\"high\":0.18659,\"low\":0.182,\"close\":0.1829,\"volume\":2008075.9797360403,\"close_time\":1509746386140,\"vwap\":0.1835942336898,\"ema1\":0.17262492910852217,\"sma1\":0.17327666666666663,\"sma2\":0.17122716666666665,\"rsi_avg_gain\":0.001614855532879696,\"rsi_avg_loss\":0.0008480350321012367,\"rsi\":66},{\"period_id\":\"120m209685\",\"size\":\"120m\",\"time\":1509732000000,\"open\":0.18246,\"high\":0.184,\"low\":0.17948,\"close\":0.18375,\"volume\":1677742.2580434396,\"close_time\":1509739152792,\"vwap\":0.1827332126047801,\"ema1\":0.17191630352979956,\"sma1\":0.17316833333333334,\"sma2\":0.17103883333333328,\"rsi_avg_gain\":0.0017390751892550572,\"rsi_avg_loss\":0.0008478838807244095,\"rsi\":67},{\"period_id\":\"120m209684\",\"size\":\"120m\",\"time\":1509724800000,\"open\":0.17841,\"high\":0.18247,\"low\":0.17841,\"close\":0.18247,\"volume\":1072665.8394164399,\"close_time\":1509731987799,\"vwap\":0.18153913750944037,\"ema1\":0.17110018653185471,\"sma1\":0.17307925925925924,\"sma2\":0.17086349999999997,\"rsi_avg_gain\":0.0017743886653515998,\"rsi_avg_loss\":0.0009131057177032102,\"rsi\":66},{\"period_id\":\"120m209683\",\"size\":\"120m\",\"time\":1509717600000,\"open\":0.1768,\"high\":0.18334,\"low\":0.17621,\"close\":0.17842,\"volume\":2248575.3095276006,\"close_time\":1509724727590,\"vwap\":0.1791610402684919,\"ema1\":0.17031606146508607,\"sma1\":0.17300240740740738,\"sma2\":0.17076766666666668,\"rsi_avg_gain\":0.0015993416396094151,\"rsi_avg_loss\":0.0009833446190649956,\"rsi\":62},{\"period_id\":\"120m209682\",\"size\":\"120m\",\"time\":1509710400000,\"open\":0.17437,\"high\":0.17699,\"low\":0.173,\"close\":0.17689,\"volume\":661699.4675666498,\"close_time\":1509717577659,\"vwap\":0.17581906742839215,\"ema1\":0.16975716915233338,\"sma1\":0.17297009259259258,\"sma2\":0.17068616666666667,\"rsi_avg_gain\":0.0016046756118870621,\"rsi_avg_loss\":0.001058986512839226,\"rsi\":60},{\"period_id\":\"120m209681\",\"size\":\"120m\",\"time\":1509703200000,\"open\":0.1745,\"high\":0.17557,\"low\":0.17226,\"close\":0.17442,\"volume\":781881.1833836805,\"close_time\":1509710384632,\"vwap\":0.17414053459081671,\"ema1\":0.16926524978352878,\"sma1\":0.17297185185185182,\"sma2\":0.17061966666666664,\"rsi_avg_gain\":0.0015381121974168362,\"rsi_avg_loss\":0.0011404470138268587,\"rsi\":57},{\"period_id\":\"120m209680\",\"size\":\"120m\",\"time\":1509696000000,\"open\":0.1749,\"high\":0.1765,\"low\":0.1721,\"close\":0.1722,\"volume\":1284360.5497725192,\"close_time\":1509703193194,\"vwap\":0.17568375818944215,\"ema1\":0.16890974976859974,\"sma1\":0.17297555555555555,\"sma2\":0.17060466666666665,\"rsi_avg_gain\":0.0014856592895258237,\"rsi_avg_loss\":0.0012281737071981554,\"rsi\":55},{\"period_id\":\"120m209679\",\"size\":\"120m\",\"time\":1509688800000,\"open\":0.1717,\"high\":0.176,\"low\":0.17,\"close\":0.17531,\"volume\":935123.9349501398,\"close_time\":1509695910104,\"vwap\":0.17384540908665055,\"ema1\":0.16868283595953765,\"sma1\":0.17298472222222222,\"sma2\":0.1705553333333333,\"rsi_avg_gain\":0.0015999407733355024,\"rsi_avg_loss\":0.0010834178385210904,\"rsi\":60},{\"period_id\":\"120m209678\",\"size\":\"120m\",\"time\":1509681600000,\"open\":0.16914,\"high\":0.1742,\"low\":0.1675,\"close\":0.17269,\"volume\":434158.1058708002,\"close_time\":1509688744339,\"vwap\":0.17093491864596105,\"ema1\":0.1682257901636437,\"sma1\":0.17300138888888889,\"sma2\":0.17056599999999997,\"rsi_avg_gain\":0.0015214746789766961,\"rsi_avg_loss\":0.0011667576722534819,\"rsi\":57},{\"period_id\":\"120m209677\",\"size\":\"120m\",\"time\":1509674400000,\"open\":0.17603,\"high\":0.1768,\"low\":0.16835,\"close\":0.16902,\"volume\":791394.3819360004,\"close_time\":1509681430051,\"vwap\":0.17085812933026773,\"ema1\":0.16791791362320532,\"sma1\":0.17298111111111109,\"sma2\":0.170591,\"rsi_avg_gain\":0.0013562035004364415,\"rsi_avg_loss\":0.0012565082624268267,\"rsi\":52},{\"period_id\":\"120m209676\",\"size\":\"120m\",\"time\":1509667200000,\"open\":0.17103,\"high\":0.185,\"low\":0.17103,\"close\":0.17675,\"volume\":2884382.1256436,\"close_time\":1509674369734,\"vwap\":0.17968327391961572,\"ema1\":0.167841907666185,\"sma1\":0.17289240740740736,\"sma2\":0.17049533333333333,\"rsi_avg_gain\":0.0014605268466238602,\"rsi_avg_loss\":0.0007585473595365838,\"rsi\":66},{\"period_id\":\"120m209675\",\"size\":\"120m\",\"time\":1509660000000,\"open\":0.1639,\"high\":0.17379,\"low\":0.16262,\"close\":0.17209,\"volume\":1265909.4986710113,\"close_time\":1509667170394,\"vwap\":0.17311305591579157,\"ema1\":0.1672275564707495,\"sma1\":0.17293324074074073,\"sma2\":0.17048883333333337,\"rsi_avg_gain\":0.001214413527133388,\"rsi_avg_loss\":0.0008168971564240133,\"rsi\":60},{\"period_id\":\"120m209674\",\"size\":\"120m\",\"time\":1509652800000,\"open\":0.16502,\"high\":0.167,\"low\":0.16261,\"close\":0.16384,\"volume\":418199.62917654985,\"close_time\":1509659976821,\"vwap\":0.1637289129793587,\"ema1\":0.16689221553769773,\"sma1\":0.1730593518518518,\"sma2\":0.17062050000000004,\"rsi_avg_gain\":0.0006732145676821118,\"rsi_avg_loss\":0.0008797353992258605,\"rsi\":43},{\"period_id\":\"120m209673\",\"size\":\"120m\",\"time\":1509645600000,\"open\":0.16471,\"high\":0.16652,\"low\":0.1632,\"close\":0.16501,\"volume\":525454.1958027601,\"close_time\":1509652741055,\"vwap\":0.16560900115688962,\"ema1\":0.16710271316098724,\"sma1\":0.1732121296296296,\"sma2\":0.17072883333333333,\"rsi_avg_gain\":0.000725000303657659,\"rsi_avg_loss\":0.0008574073530124669,\"rsi\":46},{\"period_id\":\"120m209672\",\"size\":\"120m\",\"time\":1509638400000,\"open\":0.165,\"high\":0.166,\"low\":0.1635,\"close\":0.16472,\"volume\":405931.72862551996,\"close_time\":1509645579170,\"vwap\":0.16493841003192203,\"ema1\":0.16724703820657258,\"sma1\":0.1733718518518518,\"sma2\":0.1708496666666667,\"rsi_avg_gain\":0.00075846186547748,\"rsi_avg_loss\":0.0009233617647826567,\"rsi\":45},{\"period_id\":\"120m209671\",\"size\":\"120m\",\"time\":1509631200000,\"open\":0.164,\"high\":0.16849,\"low\":0.161,\"close\":0.16545,\"volume\":756164.8164522602,\"close_time\":1509638384550,\"vwap\":0.16502011940596792,\"ema1\":0.16742131670357757,\"sma1\":0.17352925925925924,\"sma2\":0.17095050000000003,\"rsi_avg_gain\":0.0008168050858988247,\"rsi_avg_loss\":0.0009382357466890143,\"rsi\":47},{\"period_id\":\"120m209670\",\"size\":\"120m\",\"time\":1509624000000,\"open\":0.16,\"high\":0.16959,\"low\":0.16,\"close\":0.16622,\"volume\":1455371.3556724899,\"close_time\":1509631193720,\"vwap\":0.16425760071413179,\"ema1\":0.16755726957968636,\"sma1\":0.17366268518518518,\"sma2\":0.1710575,\"rsi_avg_gain\":0.0008796362463525804,\"rsi_avg_loss\":0.0009511769579727851,\"rsi\":48},{\"period_id\":\"120m209669\",\"size\":\"120m\",\"time\":1509616800000,\"open\":0.15797,\"high\":0.16,\"low\":0.15464,\"close\":0.16,\"volume\":1654988.6244434293,\"close_time\":1509623991381,\"vwap\":0.15864340286752815,\"ema1\":0.1676494950679406,\"sma1\":0.17384509259259254,\"sma2\":0.17127416666666667,\"rsi_avg_gain\":0.0004688390345335479,\"rsi_avg_loss\":0.0010243444162783839,\"rsi\":31},{\"period_id\":\"120m209668\",\"size\":\"120m\",\"time\":1509609600000,\"open\":0.1595,\"high\":0.16,\"low\":0.15671,\"close\":0.15671,\"volume\":1721066.7197427999,\"close_time\":1509616786625,\"vwap\":0.15726960544103125,\"ema1\":0.1681770464519365,\"sma1\":0.17403027777777774,\"sma2\":0.171569,\"rsi_avg_gain\":0.00025182665257458895,\"rsi_avg_loss\":0.0011031401406074903,\"rsi\":19},{\"period_id\":\"120m209667\",\"size\":\"120m\",\"time\":1509602400000,\"open\":0.16123,\"high\":0.1632,\"low\":0.159,\"close\":0.15912,\"volume\":2334769.7164794793,\"close_time\":1509609597998,\"vwap\":0.16007549135600127,\"ema1\":0.16896787724172524,\"sma1\":0.17413944444444443,\"sma2\":0.17181533333333335,\"rsi_avg_gain\":0.000271197933541865,\"rsi_avg_loss\":0.001002612459115757,\"rsi\":21},{\"period_id\":\"120m209666\",\"size\":\"120m\",\"time\":1509595200000,\"open\":0.16241,\"high\":0.16472,\"low\":0.1613,\"close\":0.1613,\"volume\":345673.34816585,\"close_time\":1509602353291,\"vwap\":0.16269580753711604,\"ema1\":0.16964704118943041,\"sma1\":0.17423435185185185,\"sma2\":0.172018,\"rsi_avg_gain\":0.0002920593130450854,\"rsi_avg_loss\":0.0009120441867400469,\"rsi\":24},{\"period_id\":\"120m209665\",\"size\":\"120m\",\"time\":1509588000000,\"open\":0.16263,\"high\":0.16764,\"low\":0.1625,\"close\":0.1625,\"volume\":320289.0119792702,\"close_time\":1509595172195,\"vwap\":0.16326324887941268,\"ema1\":0.17022269920249458,\"sma1\":0.1743186111111111,\"sma2\":0.17220133333333335,\"rsi_avg_gain\":0.00031452541404855354,\"rsi_avg_loss\":0.0008898937395662038,\"rsi\":26},{\"period_id\":\"120m209664\",\"size\":\"120m\",\"time\":1509580800000,\"open\":0.16522,\"high\":0.16682,\"low\":0.1616,\"close\":0.16532,\"volume\":505396.63836847997,\"close_time\":1509587956753,\"vwap\":0.1639607569937718,\"ema1\":0.1707552991474942,\"sma1\":0.17435518518518517,\"sma2\":0.172343,\"rsi_avg_gain\":0.00033871967666767303,\"rsi_avg_loss\":0.0007414240272251434,\"rsi\":31},{\"period_id\":\"120m209663\",\"size\":\"120m\",\"time\":1509573600000,\"open\":0.1661,\"high\":0.16674,\"low\":0.16434,\"close\":0.16434,\"volume\":906775.1022949998,\"close_time\":1509580719608,\"vwap\":0.16489035805170874,\"ema1\":0.17113014736456278,\"sma1\":0.1743622222222222,\"sma2\":0.172498,\"rsi_avg_gain\":0.0002893904210267262,\"rsi_avg_loss\":0.0007984566447040006,\"rsi\":27},{\"period_id\":\"120m209662\",\"size\":\"120m\",\"time\":1509566400000,\"open\":0.16845,\"high\":0.1696,\"low\":0.16561,\"close\":0.16652,\"volume\":670029.5995432002,\"close_time\":1509573596127,\"vwap\":0.16615046493399438,\"ema1\":0.17159843338970504,\"sma1\":0.17431277777777776,\"sma2\":0.17262266666666667,\"rsi_avg_gain\":0.0003116512226441667,\"rsi_avg_loss\":0.0006921840789120016,\"rsi\":31},{\"period_id\":\"120m209661\",\"size\":\"120m\",\"time\":1509559200000,\"open\":0.16934,\"high\":0.1696,\"low\":0.16704,\"close\":0.16848,\"volume\":1189879.2806359415,\"close_time\":1509566397604,\"vwap\":0.16800329549995208,\"ema1\":0.17194867017520193,\"sma1\":0.17425148148148148,\"sma2\":0.17270366666666664,\"rsi_avg_gain\":0.0003356243936167949,\"rsi_avg_loss\":0.0005946597772898487,\"rsi\":36},{\"period_id\":\"120m209660\",\"size\":\"120m\",\"time\":1509552000000,\"open\":0.1725,\"high\":0.1725,\"low\":0.1694,\"close\":0.16999,\"volume\":917226.6054635601,\"close_time\":1509559199863,\"vwap\":0.1705754622577138,\"ema1\":0.17218788880797448,\"sma1\":0.17415425925925923,\"sma2\":0.17278266666666664,\"rsi_avg_gain\":0.0003614416546642406,\"rsi_avg_loss\":0.0005242489909275285,\"rsi\":41},{\"period_id\":\"120m209659\",\"size\":\"120m\",\"time\":1509544800000,\"open\":0.17109,\"high\":0.17284,\"low\":0.17,\"close\":0.17233,\"volume\":898158.8843483297,\"close_time\":1509551988199,\"vwap\":0.17186629611340168,\"ema1\":0.17233946734645547,\"sma1\":0.1740608333333333,\"sma2\":0.17281766666666665,\"rsi_avg_gain\":0.0003892448588691822,\"rsi_avg_loss\":0.00038457583638349155,\"rsi\":50},{\"period_id\":\"120m209658\",\"size\":\"120m\",\"time\":1509537600000,\"open\":0.1695,\"high\":0.1715,\"low\":0.169,\"close\":0.1711,\"volume\":1039009.0422977093,\"close_time\":1509544792007,\"vwap\":0.17020435453712257,\"ema1\":0.17234012026690068,\"sma1\":0.17401046296296294,\"sma2\":0.17285966666666663,\"rsi_avg_gain\":0.00032457138647450323,\"rsi_avg_loss\":0.0004141585930283755,\"rsi\":44},{\"period_id\":\"120m209657\",\"size\":\"120m\",\"time\":1509530400000,\"open\":0.1701,\"high\":0.17198,\"low\":0.1693,\"close\":0.16999,\"volume\":1167024.7693240494,\"close_time\":1509537595423,\"vwap\":0.1698161355101941,\"ema1\":0.17242564580254902,\"sma1\":0.1739659259259259,\"sma2\":0.1729228333333333,\"rsi_avg_gain\":0.0002641538008186958,\"rsi_avg_loss\":0.0004460169463382506,\"rsi\":37},{\"period_id\":\"120m209656\",\"size\":\"120m\",\"time\":1509523200000,\"open\":0.1712,\"high\":0.17266,\"low\":0.17,\"close\":0.17111,\"volume\":802673.6112538003,\"close_time\":1509530399245,\"vwap\":0.17022261303056152,\"ema1\":0.1725936213751386,\"sma1\":0.17391759259259257,\"sma2\":0.17297166666666663,\"rsi_avg_gain\":0.0002844733239585955,\"rsi_avg_loss\":0.0003941720960565768,\"rsi\":42},{\"period_id\":\"120m209655\",\"size\":\"120m\",\"time\":1509516000000,\"open\":0.1705,\"high\":0.17137,\"low\":0.17,\"close\":0.1712,\"volume\":486476.40899357,\"close_time\":1509523129373,\"vwap\":0.17062132744438424,\"ema1\":0.17269594009066538,\"sma1\":0.1738958333333333,\"sma2\":0.17301683333333331,\"rsi_avg_gain\":0.0003063558873400259,\"rsi_avg_loss\":0.000417569949599392,\"rsi\":42},{\"period_id\":\"120m209654\",\"size\":\"120m\",\"time\":1509508800000,\"open\":0.17086,\"high\":0.17162,\"low\":0.17,\"close\":0.1708,\"volume\":148063.88553533,\"close_time\":1509515159721,\"vwap\":0.171213220976808,\"ema1\":0.17279910837278023,\"sma1\":0.17388787037037032,\"sma2\":0.17305449999999997,\"rsi_avg_gain\":0.0002991524940584907,\"rsi_avg_loss\":0.00044969071495319136,\"rsi\":40},{\"period_id\":\"120m209653\",\"size\":\"120m\",\"time\":1509501600000,\"open\":0.17165,\"high\":0.1718,\"low\":0.17,\"close\":0.17003,\"volume\":275252.1988088,\"close_time\":1509507850388,\"vwap\":0.1712480406254726,\"ema1\":0.1729369779157306,\"sma1\":0.1738791666666666,\"sma2\":0.17310949999999994,\"rsi_avg_gain\":0.00026293345513991146,\"rsi_avg_loss\":0.00048428230841112915,\"rsi\":35},{\"period_id\":\"120m209652\",\"size\":\"120m\",\"time\":1509494400000,\"open\":0.17124,\"high\":0.17199,\"low\":0.17101,\"close\":0.17176,\"volume\":125338.60549834,\"close_time\":1509501336761,\"vwap\":0.17150719039655746,\"ema1\":0.17313745915129822,\"sma1\":0.17387574074074072,\"sma2\":0.1731351666666666,\"rsi_avg_gain\":0.0002831591055352893,\"rsi_avg_loss\":0.00038845787059659995,\"rsi\":42},{\"period_id\":\"120m209651\",\"size\":\"120m\",\"time\":1509487200000,\"open\":0.17205,\"high\":0.17284,\"low\":0.17123,\"close\":0.17124,\"volume\":778377.35267301,\"close_time\":1509494388372,\"vwap\":0.17150953368117725,\"ema1\":0.17323245633414638,\"sma1\":0.17386796296296295,\"sma2\":0.17318166666666662,\"rsi_avg_gain\":0.00026494057519185055,\"rsi_avg_loss\":0.0004183392452578769,\"rsi\":39},{\"period_id\":\"120m209650\",\"size\":\"120m\",\"time\":1509480000000,\"open\":0.17263,\"high\":0.17285,\"low\":0.17204,\"close\":0.17204,\"volume\":368952.1699852,\"close_time\":1509487161380,\"vwap\":0.17246091319666002,\"ema1\":0.17336986711581165,\"sma1\":0.17385775509259258,\"sma2\":0.17320599999999994,\"rsi_avg_gain\":0.0002853206194373775,\"rsi_avg_loss\":0.00038898072566232936,\"rsi\":42},{\"period_id\":\"120m209649\",\"size\":\"120m\",\"time\":1509472800000,\"open\":0.172,\"high\":0.17272,\"low\":0.172,\"close\":0.17266,\"volume\":380343.36523268017,\"close_time\":1509479891306,\"vwap\":0.17247583755257948,\"ema1\":0.1734615820893159,\"sma1\":0.17385108842592592,\"sma2\":0.1732198333333333,\"rsi_avg_gain\":0.00030726835939409887,\"rsi_avg_loss\":0.0003712100122517386,\"rsi\":45},{\"period_id\":\"120m209648\",\"size\":\"120m\",\"time\":1509465600000,\"open\":0.17243,\"high\":0.1735,\"low\":0.172,\"close\":0.172,\"volume\":559983.7519757701,\"close_time\":1509472774896,\"vwap\":0.17264160275371462,\"ema1\":0.17351686361271698,\"sma1\":0.17384090324074072,\"sma2\":0.17323649999999996,\"rsi_avg_gain\":0.00028013515627056635,\"rsi_avg_loss\":0.0003997646285787954,\"rsi\":41},{\"period_id\":\"120m209647\",\"size\":\"120m\",\"time\":1509458400000,\"open\":0.17458,\"high\":0.1746,\"low\":0.172,\"close\":0.1735,\"volume\":938086.8382250599,\"close_time\":1509465517913,\"vwap\":0.1729637617081024,\"ema1\":0.17362147489635263,\"sma1\":0.17384284768518515,\"sma2\":0.1732311666666666,\"rsi_avg_gain\":0.0003016840144452253,\"rsi_avg_loss\":0.0003151311384694719,\"rsi\":49},{\"period_id\":\"120m209646\",\"size\":\"120m\",\"time\":1509451200000,\"open\":0.174,\"high\":0.1748,\"low\":0.1734,\"close\":0.1746,\"volume\":533246.7497322498,\"close_time\":1509458354825,\"vwap\":0.17409329845948004,\"ema1\":0.17362985247541143,\"sma1\":0.17382377361111112,\"sma2\":0.17322466666666664,\"rsi_avg_gain\":0.000324890477094858,\"rsi_avg_loss\":0.00025475661065942995,\"rsi\":56},{\"period_id\":\"120m209645\",\"size\":\"120m\",\"time\":1509444000000,\"open\":0.17467,\"high\":0.1748,\"low\":0.1735,\"close\":0.17442,\"volume\":691011.48796204,\"close_time\":1509451147678,\"vwap\":0.17397533375065144,\"ema1\":0.17356294574957773,\"sma1\":0.17379312546296297,\"sma2\":0.17324049999999996,\"rsi_avg_gain\":0.0003360358984098461,\"rsi_avg_loss\":0.00027435327301784766,\"rsi\":55},{\"period_id\":\"120m209644\",\"size\":\"120m\",\"time\":1509436800000,\"open\":0.1737,\"high\":0.1747,\"low\":0.1735,\"close\":0.17469,\"volume\":471611.4616469602,\"close_time\":1509443995806,\"vwap\":0.17440581928206517,\"ema1\":0.17350383855989343,\"sma1\":0.17379136620370372,\"sma2\":0.1732378333333333,\"rsi_avg_gain\":0.0003618848136721419,\"rsi_avg_loss\":0.00027468814017306514,\"rsi\":57},{\"period_id\":\"120m209643\",\"size\":\"120m\",\"time\":1509429600000,\"open\":0.17395,\"high\":0.17438,\"low\":0.1734,\"close\":0.17421,\"volume\":201060.23830178005,\"close_time\":1509436795149,\"vwap\":0.17415607128448637,\"ema1\":0.1734220343226447,\"sma1\":0.17380164398148154,\"sma2\":0.1732258333333333,\"rsi_avg_gain\":0.0003527990301084599,\"rsi_avg_loss\":0.00029581799710945477,\"rsi\":54},{\"period_id\":\"120m209642\",\"size\":\"120m\",\"time\":1509422400000,\"open\":0.17384,\"high\":0.17394,\"low\":0.17325,\"close\":0.17389,\"volume\":70472.03757481,\"close_time\":1509429450403,\"vwap\":0.174184293314762,\"ema1\":0.17336769186213744,\"sma1\":0.17380118101851855,\"sma2\":0.17321099999999995,\"rsi_avg_gain\":0.0003553220324244941,\"rsi_avg_loss\":0.0003185732276563359,\"rsi\":53},{\"period_id\":\"120m209641\",\"size\":\"120m\",\"time\":1509415200000,\"open\":0.17395,\"high\":0.1745,\"low\":0.173,\"close\":0.17414,\"volume\":542700.20779527,\"close_time\":1509422089182,\"vwap\":0.17419429415344012,\"ema1\":0.17333167061125035,\"sma1\":0.17383423657407415,\"sma2\":0.1732,\"rsi_avg_gain\":0.00038265449645714754,\"rsi_avg_loss\":0.00032384809132220783,\"rsi\":54},{\"period_id\":\"120m209640\",\"size\":\"120m\",\"time\":1509408000000,\"open\":0.17418,\"high\":0.17418,\"low\":0.1735,\"close\":0.17405,\"volume\":45452.97159424001,\"close_time\":1509414427483,\"vwap\":0.1741747938444177,\"ema1\":0.17327592375685383,\"sma1\":0.1738871995370371,\"sma2\":0.1731608333333333,\"rsi_avg_gain\":0.00040516638080000664,\"rsi_avg_loss\":0.0003487594829623777,\"rsi\":54},{\"period_id\":\"120m209639\",\"size\":\"120m\",\"time\":1509400800000,\"open\":0.1735,\"high\":0.1745,\"low\":0.173,\"close\":0.17426,\"volume\":272719.8336484401,\"close_time\":1509407506948,\"vwap\":0.17417957517802599,\"ema1\":0.173222539188361,\"sma1\":0.17391960694444453,\"sma2\":0.17312666666666662,\"rsi_avg_gain\":0.0004363330254769302,\"rsi_avg_loss\":0.0003594332893441,\"rsi\":55},{\"period_id\":\"120m209638\",\"size\":\"120m\",\"time\":1509393600000,\"open\":0.17476,\"high\":0.17479,\"low\":0.1735,\"close\":0.1735,\"volume\":359921.3454896399,\"close_time\":1509400749257,\"vwap\":0.17417732775470413,\"ema1\":0.17315099016686866,\"sma1\":0.17390303287037043,\"sma2\":0.1730918333333333,\"rsi_avg_gain\":0.0004114355658982317,\"rsi_avg_loss\":0.0003870820039090308,\"rsi\":52},{\"period_id\":\"120m209637\",\"size\":\"120m\",\"time\":1509386400000,\"open\":0.1732,\"high\":0.1748,\"low\":0.173,\"close\":0.17476,\"volume\":427867.7588550901,\"close_time\":1509393559979,\"vwap\":0.17440839229168795,\"ema1\":0.17312692052320444,\"sma1\":0.17388349583333337,\"sma2\":0.17302416666666662,\"rsi_avg_gain\":0.000443084455582711,\"rsi_avg_loss\":0.0003199344657481862,\"rsi\":58},{\"period_id\":\"120m209636\",\"size\":\"120m\",\"time\":1509379200000,\"open\":0.17459,\"high\":0.17499,\"low\":0.173,\"close\":0.173,\"volume\":390086.82031326013,\"close_time\":1509386390303,\"vwap\":0.1741365638125607,\"ema1\":0.17301429435239096,\"sma1\":0.17385618101851855,\"sma2\":0.172985,\"rsi_avg_gain\":0.00034178325985830324,\"rsi_avg_loss\":0.00034454480926727744,\"rsi\":50},{\"period_id\":\"120m209635\",\"size\":\"120m\",\"time\":1509372000000,\"open\":0.17434,\"high\":0.17459,\"low\":0.17318,\"close\":0.17443,\"volume\":639290.63311668,\"close_time\":1509379077038,\"vwap\":0.1742871364302605,\"ema1\":0.17301528016979723,\"sma1\":0.17385618101851855,\"sma2\":0.17294400000000001,\"rsi_avg_gain\":0.00036807427984740347,\"rsi_avg_loss\":0.00026104825613399,\"rsi\":59},{\"period_id\":\"120m209634\",\"size\":\"120m\",\"time\":1509364800000,\"open\":0.17501,\"high\":0.1754,\"low\":0.17389,\"close\":0.17435,\"volume\":761219.5413139507,\"close_time\":1509371994662,\"vwap\":0.17444942185962992,\"ema1\":0.17291771328495564,\"sma1\":0.17383655138888887,\"sma2\":0.17291183333333332,\"rsi_avg_gain\":0.00039023383983566556,\"rsi_avg_loss\":0.00028112889122122,\"rsi\":58},{\"period_id\":\"120m209633\",\"size\":\"120m\",\"time\":1509357600000,\"open\":0.1736,\"high\":0.17524,\"low\":0.17295,\"close\":0.175,\"volume\":685731.3475932502,\"close_time\":1509364785467,\"vwap\":0.17414856444877094,\"ema1\":0.17281893489081465,\"sma1\":0.17381581064814813,\"sma2\":0.1728491666666666,\"rsi_avg_gain\":0.00042025182751533215,\"rsi_avg_loss\":0.00025275419054593043,\"rsi\":62},{\"period_id\":\"120m209632\",\"size\":\"120m\",\"time\":1509350400000,\"open\":0.17301,\"high\":0.17475,\"low\":0.17201,\"close\":0.1736,\"volume\":982754.7806384695,\"close_time\":1509357384770,\"vwap\":0.17360404294385307,\"ema1\":0.17266851660742255,\"sma1\":0.17380886620370367,\"sma2\":0.17284249999999998,\"rsi_avg_gain\":0.00034488658347805117,\"rsi_avg_loss\":0.0002721968205879251,\"rsi\":56},{\"period_id\":\"120m209631\",\"size\":\"120m\",\"time\":1509343200000,\"open\":0.17307,\"high\":0.1738,\"low\":0.17202,\"close\":0.173,\"volume\":284271.7854024,\"close_time\":1509350362054,\"vwap\":0.17317576180797664,\"ema1\":0.1726042763734517,\"sma1\":0.17381895879629627,\"sma2\":0.1728925,\"rsi_avg_gain\":0.00032526247451482304,\"rsi_avg_loss\":0.000293135037556227,\"rsi\":53},{\"period_id\":\"120m209630\",\"size\":\"120m\",\"time\":1509336000000,\"open\":0.17272,\"high\":0.1731,\"low\":0.17253,\"close\":0.17309,\"volume\":89463.18058985996,\"close_time\":1509343190680,\"vwap\":0.17300750431124373,\"ema1\":0.17257698508886216,\"sma1\":0.1738348847222222,\"sma2\":0.17291766666666666,\"rsi_avg_gain\":0.0003502826648621171,\"rsi_avg_loss\":0.0003087608096759362,\"rsi\":53},{\"period_id\":\"120m209629\",\"size\":\"120m\",\"time\":1509328800000,\"open\":0.17251,\"high\":0.17326,\"low\":0.1722,\"close\":0.17307,\"volume\":43252.373609710005,\"close_time\":1509335998032,\"vwap\":0.17276418769298707,\"ema1\":0.172541604750163,\"sma1\":0.17385914398148147,\"sma2\":0.1729425,\"rsi_avg_gain\":0.00037568902369766516,\"rsi_avg_loss\":0.0003325116411894698,\"rsi\":53},{\"period_id\":\"120m209628\",\"size\":\"120m\",\"time\":1509321600000,\"open\":0.17312,\"high\":0.17396,\"low\":0.172,\"close\":0.17293,\"volume\":83955.8920413,\"close_time\":1509328440473,\"vwap\":0.17276318206547017,\"ema1\":0.17250516369845012,\"sma1\":0.17389673657407403,\"sma2\":0.17291566666666663,\"rsi_avg_gain\":0.00039381894859748544,\"rsi_avg_loss\":0.00035808945974250597,\"rsi\":52},{\"period_id\":\"120m209627\",\"size\":\"120m\",\"time\":1509314400000,\"open\":0.173,\"high\":0.17337,\"low\":0.17201,\"close\":0.17235,\"volume\":684796.3868457904,\"close_time\":1509321591148,\"vwap\":0.1727699670115973,\"ema1\":0.17247586464317083,\"sma1\":0.17393673657407402,\"sma2\":0.1729558333333333,\"rsi_avg_gain\":0.00037949732925883067,\"rsi_avg_loss\":0.0003856348027996218,\"rsi\":50},{\"period_id\":\"120m209626\",\"size\":\"120m\",\"time\":1509307200000,\"open\":0.173,\"high\":0.17449,\"low\":0.1725,\"close\":0.173,\"volume\":476348.78848239995,\"close_time\":1509314385786,\"vwap\":0.17330843158539821,\"ema1\":0.1724845449633895,\"sma1\":0.17397201435185178,\"sma2\":0.1729875,\"rsi_avg_gain\":0.00040868943150950993,\"rsi_avg_loss\":0.00036529901839959394,\"rsi\":53},{\"period_id\":\"120m209625\",\"size\":\"120m\",\"time\":1509300000000,\"open\":0.1723,\"high\":0.17355,\"low\":0.17175,\"close\":0.17245,\"volume\":496058.7864573899,\"close_time\":1509307039172,\"vwap\":0.172650644739111,\"ema1\":0.172448996340175,\"sma1\":0.1740316439814814,\"sma2\":0.17309499999999997,\"rsi_avg_gain\":0.00039781938777947264,\"rsi_avg_loss\":0.0003933989428918704,\"rsi\":50},{\"period_id\":\"120m209624\",\"size\":\"120m\",\"time\":1509292800000,\"open\":0.172688,\"high\":0.1737,\"low\":0.1715,\"close\":0.17195,\"volume\":516118.92092936015,\"close_time\":1509299984287,\"vwap\":0.17224033296032568,\"ema1\":0.172448927122256,\"sma1\":0.17409460694444437,\"sma2\":0.17324583333333327,\"rsi_avg_gain\":0.00038995934068558586,\"rsi_avg_loss\":0.0004236604000373989,\"rsi\":48},{\"period_id\":\"120m209623\",\"size\":\"120m\",\"time\":1509285600000,\"open\":0.172,\"high\":0.17267,\"low\":0.1715,\"close\":0.17267,\"volume\":282293.62723150995,\"close_time\":1509292684374,\"vwap\":0.17146893284422263,\"ema1\":0.17248333588930814,\"sma1\":0.17419849583333327,\"sma2\":0.17338099999999995,\"rsi_avg_gain\":0.0004199562130460156,\"rsi_avg_loss\":0.000400865046194122,\"rsi\":51},{\"period_id\":\"120m209622\",\"size\":\"120m\",\"time\":1509278400000,\"open\":0.1704,\"high\":0.172,\"low\":0.17,\"close\":0.172,\"volume\":507396.67994656984,\"close_time\":1509285544604,\"vwap\":0.17121697855037646,\"ema1\":0.17247046250236386,\"sma1\":0.17431423657407402,\"sma2\":0.17353799999999994,\"rsi_avg_gain\":0.0004007220755880165,\"rsi_avg_loss\":0.00043170081897828523,\"rsi\":48},{\"period_id\":\"120m209621\",\"size\":\"120m\",\"time\":1509271200000,\"open\":0.1713,\"high\":0.17138,\"low\":0.1692,\"close\":0.17043,\"volume\":708191.5313493701,\"close_time\":1509278199257,\"vwap\":0.17042403844584,\"ema1\":0.17250290819218206,\"sma1\":0.1744398847222222,\"sma2\":0.1736661666666666,\"rsi_avg_gain\":0.0003107776198640187,\"rsi_avg_loss\":0.00046490857428430716,\"rsi\":40},{\"period_id\":\"120m209620\",\"size\":\"120m\",\"time\":1509264000000,\"open\":0.172,\"high\":0.17279,\"low\":0.17051,\"close\":0.1713,\"volume\":463339.66160280985,\"close_time\":1509271123701,\"vwap\":0.1714012683626363,\"ema1\":0.1726458673778498,\"sma1\":0.1745539587962963,\"sma2\":0.1737781666666666,\"rsi_avg_gain\":0.0003346835906227894,\"rsi_avg_loss\":0.0004337476953830993,\"rsi\":44},{\"period_id\":\"120m209619\",\"size\":\"120m\",\"time\":1509256800000,\"open\":0.17201,\"high\":0.17377,\"low\":0.17132,\"close\":0.17235,\"volume\":285626.02688529,\"close_time\":1509263966493,\"vwap\":0.1716094801331492,\"ema1\":0.1727386858177015,\"sma1\":0.174675625462963,\"sma2\":0.1738056666666666,\"rsi_avg_gain\":0.0003604284822091578,\"rsi_avg_loss\":0.0003863436719510304,\"rsi\":48},{\"period_id\":\"120m209618\",\"size\":\"120m\",\"time\":1509249600000,\"open\":0.17113,\"high\":0.1739,\"low\":0.17112,\"close\":0.17333,\"volume\":186683.95922460998,\"close_time\":1509256796594,\"vwap\":0.17141624175511985,\"ema1\":0.17276549173616368,\"sma1\":0.17482081064814817,\"sma2\":0.17382133333333324,\"rsi_avg_gain\":0.0003881537500714007,\"rsi_avg_loss\":0.0003406778005626475,\"rsi\":53},{\"period_id\":\"120m209617\",\"size\":\"120m\",\"time\":1509242400000,\"open\":0.17101,\"high\":0.17125,\"low\":0.1701,\"close\":0.17052,\"volume\":109812.33446858004,\"close_time\":1509249464890,\"vwap\":0.17123319368788517,\"ema1\":0.1727265601317612,\"sma1\":0.17494460694444444,\"sma2\":0.17380366666666663,\"rsi_avg_gain\":0.0002018578846922771,\"rsi_avg_loss\":0.00036688378522131264,\"rsi\":35},{\"period_id\":\"120m209616\",\"size\":\"120m\",\"time\":1509235200000,\"open\":0.17161,\"high\":0.17213,\"low\":0.171,\"close\":0.17101,\"volume\":250380.80532811998,\"close_time\":1509242351608,\"vwap\":0.17134317765566026,\"ema1\":0.1728787366925723,\"sma1\":0.17504710694444447,\"sma2\":0.17378683333333328,\"rsi_avg_gain\":0.00021738541428399072,\"rsi_avg_loss\":0.00035741330716141436,\"rsi\":38},{\"period_id\":\"120m209615\",\"size\":\"120m\",\"time\":1509228000000,\"open\":0.17176,\"high\":0.17253,\"low\":0.171,\"close\":0.1717,\"volume\":726369.6006439498,\"close_time\":1509235161837,\"vwap\":0.1716388447868934,\"ema1\":0.1730076150851635,\"sma1\":0.17514858842592596,\"sma2\":0.17365849999999997,\"rsi_avg_gain\":0.0002341073692289131,\"rsi_avg_loss\":0.00033182971540460037,\"rsi\":41},{\"period_id\":\"120m209614\",\"size\":\"120m\",\"time\":1509220800000,\"open\":0.17152,\"high\":0.17429,\"low\":0.1715,\"close\":0.17174,\"volume\":507071.4701850402,\"close_time\":1509227774235,\"vwap\":0.17198871147956749,\"ema1\":0.17309779543586443,\"sma1\":0.1752459032407407,\"sma2\":0.1735018333333333,\"rsi_avg_gain\":0.00025211562840036795,\"rsi_avg_loss\":0.0003542781550511072,\"rsi\":42},{\"period_id\":\"120m209613\",\"size\":\"120m\",\"time\":1509213600000,\"open\":0.17186,\"high\":0.17242,\"low\":0.1715,\"close\":0.17151,\"volume\":296945.9798627102,\"close_time\":1509220576896,\"vwap\":0.17177095384999364,\"ema1\":0.1731914365004068,\"sma1\":0.17536701435185187,\"sma2\":0.17335166666666663,\"rsi_avg_gain\":0.000253816830585011,\"rsi_avg_loss\":0.00038153032082426927,\"rsi\":40},{\"period_id\":\"120m209612\",\"size\":\"120m\",\"time\":1509206400000,\"open\":0.17174,\"high\":0.17222,\"low\":0.17121,\"close\":0.17197,\"volume\":204456.1067420499,\"close_time\":1509213416725,\"vwap\":0.1717405311332622,\"ema1\":0.1733073976383659,\"sma1\":0.17557238472222222,\"sma2\":0.1731738333333333,\"rsi_avg_gain\":0.0002733412021684734,\"rsi_avg_loss\":0.00037549419165690414,\"rsi\":42},{\"period_id\":\"120m209611\",\"size\":\"120m\",\"time\":1509199200000,\"open\":0.17264,\"high\":0.17399,\"low\":0.1715,\"close\":0.1715,\"volume\":632198.5747353298,\"close_time\":1509206384934,\"vwap\":0.1725917207063263,\"ema1\":0.1733996319582532,\"sma1\":0.1757669217592593,\"sma2\":0.1729988333333333,\"rsi_avg_gain\":0.0002582136023352792,\"rsi_avg_loss\":0.0004043783602458968,\"rsi\":39},{\"period_id\":\"120m209610\",\"size\":\"120m\",\"time\":1509192000000,\"open\":0.17303,\"high\":0.17476,\"low\":0.1726,\"close\":0.17264,\"volume\":355098.94472750014,\"close_time\":1509199187198,\"vwap\":0.173129871437193,\"ema1\":0.17353064105882238,\"sma1\":0.17581071805555556,\"sma2\":0.17282083333333328,\"rsi_avg_gain\":0.00027807618713030066,\"rsi_avg_loss\":0.0003477920802648139,\"rsi\":44},{\"period_id\":\"120m209609\",\"size\":\"120m\",\"time\":1509184800000,\"open\":0.1743,\"high\":0.17463,\"low\":0.173,\"close\":0.173,\"volume\":394166.51534412993,\"close_time\":1509191863970,\"vwap\":0.1731414162280516,\"ema1\":0.17359206458012047,\"sma1\":0.17585719953703707,\"sma2\":0.17268799999999998,\"rsi_avg_gain\":0.0002994666630634007,\"rsi_avg_loss\":0.00034685300951595356,\"rsi\":46},{\"period_id\":\"120m209608\",\"size\":\"120m\",\"time\":1509177600000,\"open\":0.17404,\"high\":0.17474,\"low\":0.17315,\"close\":0.1744,\"volume\":351321.72328474006,\"close_time\":1509184281479,\"vwap\":0.17407167692075703,\"ema1\":0.1736328966201288,\"sma1\":0.17591710694444448,\"sma2\":0.17254716666666664,\"rsi_avg_gain\":0.00032250256022212386,\"rsi_avg_loss\":0.0002658417025556414,\"rsi\":55},{\"period_id\":\"120m209607\",\"size\":\"120m\",\"time\":1509170400000,\"open\":0.17389,\"high\":0.17415,\"low\":0.17305,\"close\":0.1739,\"volume\":208398.77150217,\"close_time\":1509177443699,\"vwap\":0.17385926621378306,\"ema1\":0.17357999293875837,\"sma1\":0.17601460694444448,\"sma2\":0.17241599999999999,\"rsi_avg_gain\":0.000308848911008441,\"rsi_avg_loss\":0.0002862910642906907,\"rsi\":52},{\"period_id\":\"120m209606\",\"size\":\"120m\",\"time\":1509163200000,\"open\":0.17309,\"high\":0.1737,\"low\":0.1728,\"close\":0.17346,\"volume\":26886.12837723,\"close_time\":1509170236953,\"vwap\":0.17391055798803984,\"ema1\":0.17355792348625895,\"sma1\":0.1761046995370371,\"sma2\":0.17234349999999996,\"rsi_avg_gain\":0.00029876036570139833,\"rsi_avg_loss\":0.00030831345385151307,\"rsi\":49},{\"period_id\":\"120m209605\",\"size\":\"120m\",\"time\":1509156000000,\"open\":0.17327,\"high\":0.17351,\"low\":0.17257,\"close\":0.1735,\"volume\":22004.55199932,\"close_time\":1509162219469,\"vwap\":0.173930045305521,\"ema1\":0.17356467683013888,\"sma1\":0.17621414398148155,\"sma2\":0.17229233333333333,\"rsi_avg_gain\":0.00032174193229381356,\"rsi_avg_loss\":0.00032895295030163066,\"rsi\":49},{\"period_id\":\"120m209604\",\"size\":\"120m\",\"time\":1509148800000,\"open\":0.17395,\"high\":0.1744,\"low\":0.17346,\"close\":0.17382,\"volume\":127167.2383359,\"close_time\":1509154797074,\"vwap\":0.17396550535593683,\"ema1\":0.17356913730118292,\"sma1\":0.1763208106481482,\"sma2\":0.17224233333333333,\"rsi_avg_gain\":0.00034649131170102994,\"rsi_avg_loss\":0.0003296416387863703,\"rsi\":51},{\"period_id\":\"120m209603\",\"size\":\"120m\",\"time\":1509141600000,\"open\":0.17364,\"high\":0.17462,\"low\":0.17364,\"close\":0.17364,\"volume\":245967.77557432003,\"close_time\":1509148469738,\"vwap\":0.17405493772042746,\"ema1\":0.17355183642540245,\"sma1\":0.1764455328703704,\"sma2\":0.1721943333333333,\"rsi_avg_gain\":0.0003592983356780312,\"rsi_avg_loss\":0.00035499868792378335,\"rsi\":50},{\"period_id\":\"120m209602\",\"size\":\"120m\",\"time\":1509134400000,\"open\":0.17335,\"high\":0.17462,\"low\":0.17293,\"close\":0.174,\"volume\":265180.97041563,\"close_time\":1509141551587,\"vwap\":0.17382881426711086,\"ema1\":0.1735457561788785,\"sma1\":0.17654368101851856,\"sma2\":0.17214866666666667,\"rsi_avg_gain\":0.0003869366691917259,\"rsi_avg_loss\":0.00035461397161022824,\"rsi\":52},{\"period_id\":\"120m209601\",\"size\":\"120m\",\"time\":1509127200000,\"open\":0.17475,\"high\":0.17476,\"low\":0.1728,\"close\":0.17334,\"volume\":507189.33349982,\"close_time\":1509134343110,\"vwap\":0.17378985245058087,\"ema1\":0.17351442901880115,\"sma1\":0.17661025509259265,\"sma2\":0.17209299999999997,\"rsi_avg_gain\":0.00036593179759108986,\"rsi_avg_loss\":0.00038189196942639965,\"rsi\":49},{\"period_id\":\"120m209600\",\"size\":\"120m\",\"time\":1509120000000,\"open\":0.17441,\"high\":0.17494,\"low\":0.17372,\"close\":0.17473,\"volume\":413137.98772199015,\"close_time\":1509127174200,\"vwap\":0.17458919768260572,\"ema1\":0.1735264586063047,\"sma1\":0.17674858842592597,\"sma2\":0.17203516666666668,\"rsi_avg_gain\":0.0003940803974057891,\"rsi_avg_loss\":0.00030434519784381487,\"rsi\":56},{\"period_id\":\"120m209599\",\"size\":\"120m\",\"time\":1509112800000,\"open\":0.17453,\"high\":0.1748,\"low\":0.1735,\"close\":0.17443,\"volume\":270804.7546261601,\"close_time\":1509119994189,\"vwap\":0.174097426841384,\"ema1\":0.17344345575156708,\"sma1\":0.17688821805555557,\"sma2\":0.1720013333333333,\"rsi_avg_gain\":0.00040131735105238865,\"rsi_avg_loss\":0.00032775636690872374,\"rsi\":55},{\"period_id\":\"120m209598\",\"size\":\"120m\",\"time\":1509105600000,\"open\":0.17335,\"high\":0.17465,\"low\":0.173,\"close\":0.17362,\"volume\":509927.8083225598,\"close_time\":1509112788348,\"vwap\":0.1740990581116523,\"ema1\":0.1733754182171924,\"sma1\":0.17708229212962967,\"sma2\":0.17197866666666664,\"rsi_avg_gain\":0.00036988022421026434,\"rsi_avg_loss\":0.0003529683951324717,\"rsi\":51},{\"period_id\":\"120m209597\",\"size\":\"120m\",\"time\":1509098400000,\"open\":0.17369,\"high\":0.1745,\"low\":0.173,\"close\":0.17378,\"volume\":532383.4747534199,\"close_time\":1509105581778,\"vwap\":0.1738460058821201,\"ema1\":0.17335855050803325,\"sma1\":0.17729877361111115,\"sma2\":0.17190849999999994,\"rsi_avg_gain\":0.00039833254914951546,\"rsi_avg_loss\":0.00036781211783497005,\"rsi\":52},{\"period_id\":\"120m209596\",\"size\":\"120m\",\"time\":1509091200000,\"open\":0.17391,\"high\":0.17496,\"low\":0.173,\"close\":0.17404,\"volume\":482855.3375114401,\"close_time\":1509098375789,\"vwap\":0.17411500191731982,\"ema1\":0.17332948502582865,\"sma1\":0.17747247731481483,\"sma2\":0.17186549999999998,\"rsi_avg_gain\":0.000428973514468709,\"rsi_avg_loss\":0.0003761053576684285,\"rsi\":53},{\"period_id\":\"120m209595\",\"size\":\"120m\",\"time\":1509084000000,\"open\":0.17261,\"high\":0.1748,\"low\":0.17222,\"close\":0.17391,\"volume\":393510.9533228197,\"close_time\":1509091196781,\"vwap\":0.17328026492717505,\"ema1\":0.17328048399312718,\"sma1\":0.17769627361111107,\"sma2\":0.17186816666666663,\"rsi_avg_gain\":0.0004519714771201488,\"rsi_avg_loss\":0.0004050365390275384,\"rsi\":53},{\"period_id\":\"120m209594\",\"size\":\"120m\",\"time\":1509076800000,\"open\":0.1732,\"high\":0.17436,\"low\":0.17225,\"close\":0.17306,\"volume\":279280.6725509501,\"close_time\":1509083949504,\"vwap\":0.17320778458326166,\"ema1\":0.17323706909610145,\"sma1\":0.17794090324074072,\"sma2\":0.17187666666666662,\"rsi_avg_gain\":0.000421353898437082,\"rsi_avg_loss\":0.00043619319587581056,\"rsi\":49},{\"period_id\":\"120m209593\",\"size\":\"120m\",\"time\":1509069600000,\"open\":0.1733,\"high\":0.17374,\"low\":0.173,\"close\":0.17333,\"volume\":26224.47779756,\"close_time\":1509076527404,\"vwap\":0.1737120474308494,\"ema1\":0.17324928075790155,\"sma1\":0.1781771069444444,\"sma2\":0.17185266666666663,\"rsi_avg_gain\":0.00045376573677839607,\"rsi_avg_loss\":0.000448977287866256,\"rsi\":50},{\"period_id\":\"120m209592\",\"size\":\"120m\",\"time\":1509062400000,\"open\":0.174,\"high\":0.174,\"low\":0.17302,\"close\":0.1733,\"volume\":65117.73086698,\"close_time\":1509069539140,\"vwap\":0.1737279086969976,\"ema1\":0.1732437139136189,\"sma1\":0.17841581064814813,\"sma2\":0.17193016666666663,\"rsi_avg_gain\":0.00048636310114596483,\"rsi_avg_loss\":0.0004835140023175064,\"rsi\":50},{\"period_id\":\"120m209591\",\"size\":\"120m\",\"time\":1509055200000,\"open\":0.1735,\"high\":0.17414,\"low\":0.17286,\"close\":0.17403,\"volume\":277183.36005777994,\"close_time\":1509062233010,\"vwap\":0.17374224898390905,\"ema1\":0.17323983211455812,\"sma1\":0.1786058106481481,\"sma2\":0.1719963333333333,\"rsi_avg_gain\":0.0005237756473879621,\"rsi_avg_loss\":0.0004645535409573161,\"rsi\":53},{\"period_id\":\"120m209590\",\"size\":\"120m\",\"time\":1509048000000,\"open\":0.17345,\"high\":0.17387,\"low\":0.1725,\"close\":0.1735,\"volume\":387891.0964343199,\"close_time\":1509055115817,\"vwap\":0.17325787045583319,\"ema1\":0.1731853377776311,\"sma1\":0.1788905328703703,\"sma2\":0.1719713333333333,\"rsi_avg_gain\":0.0005232968510331898,\"rsi_avg_loss\":0.0005002884287232635,\"rsi\":51},{\"period_id\":\"120m209589\",\"size\":\"120m\",\"time\":1509040800000,\"open\":0.17298,\"high\":0.17433,\"low\":0.17214,\"close\":0.17349,\"volume\":391377.44248398015,\"close_time\":1509047942645,\"vwap\":0.1732792619098576,\"ema1\":0.1731636369347091,\"sma1\":0.17921599583333325,\"sma2\":0.17192066666666664,\"rsi_avg_gain\":0.0005627812241895903,\"rsi_avg_loss\":0.0005387721540096684,\"rsi\":51},{\"period_id\":\"120m209588\",\"size\":\"120m\",\"time\":1509033600000,\"open\":0.17315,\"high\":0.17359,\"low\":0.172,\"close\":0.173,\"volume\":462815.97802780016,\"close_time\":1509040586507,\"vwap\":0.1728936609647234,\"ema1\":0.17314112913710283,\"sma1\":0.17958090324074066,\"sma2\":0.17188566666666666,\"rsi_avg_gain\":0.0005683797798964804,\"rsi_avg_loss\":0.0005802161658565659,\"rsi\":49},{\"period_id\":\"120m209587\",\"size\":\"120m\",\"time\":1509026400000,\"open\":0.17423,\"high\":0.1745,\"low\":0.17318,\"close\":0.17318,\"volume\":536308.6854404302,\"close_time\":1509033597034,\"vwap\":0.17387604207486115,\"ema1\":0.17315086218104095,\"sma1\":0.17998831064814808,\"sma2\":0.17186566666666664,\"rsi_avg_gain\":0.000612101301426979,\"rsi_avg_loss\":0.0006110020247686084,\"rsi\":50},{\"period_id\":\"120m209586\",\"size\":\"120m\",\"time\":1509019200000,\"open\":0.17535,\"high\":0.17588,\"low\":0.17377,\"close\":0.17421,\"volume\":552158.98963798,\"close_time\":1509026340279,\"vwap\":0.174156898000097,\"ema1\":0.17314885267628516,\"sma1\":0.18040331064814807,\"sma2\":0.17184549999999996,\"rsi_avg_gain\":0.000659186016921362,\"rsi_avg_loss\":0.0005787714112892703,\"rsi\":53},{\"period_id\":\"120m209585\",\"size\":\"120m\",\"time\":1509012000000,\"open\":0.17453,\"high\":0.17564,\"low\":0.17332,\"close\":0.17537,\"volume\":638825.14961212,\"close_time\":1509019193338,\"vwap\":0.17488252338543028,\"ema1\":0.17307567010223585,\"sma1\":0.18082701435185178,\"sma2\":0.17178933333333332,\"rsi_avg_gain\":0.0007098926336076206,\"rsi_avg_loss\":0.0005340615198499839,\"rsi\":57},{\"period_id\":\"120m209584\",\"size\":\"120m\",\"time\":1509004800000,\"open\":0.1735,\"high\":0.17483,\"low\":0.17231,\"close\":0.17453,\"volume\":545484.1022664,\"close_time\":1509011988439,\"vwap\":0.17365153694884564,\"ema1\":0.17291744045411417,\"sma1\":0.18128219953703695,\"sma2\":0.17174766666666663,\"rsi_avg_gain\":0.0006998843746543602,\"rsi_avg_loss\":0.0005751431752230596,\"rsi\":55},{\"period_id\":\"120m209583\",\"size\":\"120m\",\"time\":1508997600000,\"open\":0.1728,\"high\":0.1735,\"low\":0.17155,\"close\":0.17349,\"volume\":247787.35630792996,\"close_time\":1509004772097,\"vwap\":0.17305718770912054,\"ema1\":0.17280622945094962,\"sma1\":0.18172192175925922,\"sma2\":0.17175416666666662,\"rsi_avg_gain\":0.0006737216342431583,\"rsi_avg_loss\":0.0006193849579325257,\"rsi\":52},{\"period_id\":\"120m209582\",\"size\":\"120m\",\"time\":1508990400000,\"open\":0.17349,\"high\":0.17363,\"low\":0.17232,\"close\":0.173,\"volume\":203349.75248238,\"close_time\":1508997556850,\"vwap\":0.17214751143859844,\"ema1\":0.17275907286135994,\"sma1\":0.18218812546296292,\"sma2\":0.17177049999999996,\"rsi_avg_gain\":0.0006878540676464767,\"rsi_avg_loss\":0.0006670299546965661,\"rsi\":51},{\"period_id\":\"120m209581\",\"size\":\"120m\",\"time\":1508983200000,\"open\":0.17188,\"high\":0.17361,\"low\":0.1718,\"close\":0.17348,\"volume\":65074.96547798002,\"close_time\":1508990308256,\"vwap\":0.17207262817795763,\"ema1\":0.17274245719662615,\"sma1\":0.18263016249999997,\"sma2\":0.17176249999999996,\"rsi_avg_gain\":0.000740765919003898,\"rsi_avg_loss\":0.0006814168742886091,\"rsi\":52},{\"period_id\":\"120m209580\",\"size\":\"120m\",\"time\":1508976000000,\"open\":0.17214,\"high\":0.17323,\"low\":0.17072,\"close\":0.1717,\"volume\":152100.50329952006,\"close_time\":1508983070436,\"vwap\":0.17205940109250695,\"ema1\":0.17269159217570382,\"sma1\":0.18310599583333337,\"sma2\":0.1718233333333333,\"rsi_avg_gain\":0.0006608248358503515,\"rsi_avg_loss\":0.0007338335569261944,\"rsi\":47},{\"period_id\":\"120m209579\",\"size\":\"120m\",\"time\":1508968800000,\"open\":0.17132,\"high\":0.17463,\"low\":0.1709,\"close\":0.17221,\"volume\":327021.46813437995,\"close_time\":1508975990039,\"vwap\":0.17212092003284563,\"ema1\":0.17275997784299374,\"sma1\":0.18351960694444447,\"sma2\":0.171895,\"rsi_avg_gain\":0.0007116575155311477,\"rsi_avg_loss\":0.0007510515228435933,\"rsi\":49},{\"period_id\":\"120m209578\",\"size\":\"120m\",\"time\":1508961600000,\"open\":0.1707,\"high\":0.17358,\"low\":0.17062,\"close\":0.17141,\"volume\":541845.9698597101,\"close_time\":1508968736961,\"vwap\":0.17185441826227782,\"ema1\":0.17279790734940711,\"sma1\":0.1840079402777778,\"sma2\":0.1719715,\"rsi_avg_gain\":0.0007048619398027749,\"rsi_avg_loss\":0.000808824716908485,\"rsi\":47},{\"period_id\":\"120m209577\",\"size\":\"120m\",\"time\":1508954400000,\"open\":0.17124,\"high\":0.1723,\"low\":0.17,\"close\":0.1707,\"volume\":849917.9403358107,\"close_time\":1508961587149,\"vwap\":0.17065864491504085,\"ema1\":0.17289362509764208,\"sma1\":0.1845916439814815,\"sma2\":0.17208616666666668,\"rsi_avg_gain\":0.0007044667044029871,\"rsi_avg_loss\":0.0008710420028245223,\"rsi\":45},{\"period_id\":\"120m209576\",\"size\":\"120m\",\"time\":1508947200000,\"open\":0.17211,\"high\":0.17285,\"low\":0.17065,\"close\":0.17065,\"volume\":397940.7244818399,\"close_time\":1508954194635,\"vwap\":0.17217267126427657,\"ema1\":0.17304490958713464,\"sma1\":0.18521340324074076,\"sma2\":0.17222016666666665,\"rsi_avg_gain\":0.0007548102970493711,\"rsi_avg_loss\":0.000938045233811024,\"rsi\":45},{\"period_id\":\"120m209575\",\"size\":\"120m\",\"time\":1508940000000,\"open\":0.17242,\"high\":0.17504,\"low\":0.1705,\"close\":0.17197,\"volume\":1294814.2538945102,\"close_time\":1508947190837,\"vwap\":0.1726640930601224,\"ema1\":0.17321007576555772,\"sma1\":0.18589358842592596,\"sma2\":0.17236233333333334,\"rsi_avg_gain\":0.0008128726275916303,\"rsi_avg_loss\":0.0009086640979503324,\"rsi\":47},{\"period_id\":\"120m209574\",\"size\":\"120m\",\"time\":1508932800000,\"open\":0.17124,\"high\":0.1735,\"low\":0.17004,\"close\":0.17242,\"volume\":698543.0479591705,\"close_time\":1508939995535,\"vwap\":0.17252937047855552,\"ema1\":0.1732955982321479,\"sma1\":0.1866009958333333,\"sma2\":0.17255349999999997,\"rsi_avg_gain\":0.0008754012912525249,\"rsi_avg_loss\":0.0009439459516388212,\"rsi\":48},{\"period_id\":\"120m209573\",\"size\":\"120m\",\"time\":1508925600000,\"open\":0.1735,\"high\":0.17576,\"low\":0.17002,\"close\":0.17124,\"volume\":776842.12237437,\"close_time\":1508932775447,\"vwap\":0.1711159662497932,\"ema1\":0.17335598431712362,\"sma1\":0.18716803287037037,\"sma2\":0.17277449999999997,\"rsi_avg_gain\":0.0008519706213488739,\"rsi_avg_loss\":0.0010165571786879613,\"rsi\":46},{\"period_id\":\"120m209572\",\"size\":\"120m\",\"time\":1508918400000,\"open\":0.176,\"high\":0.1769,\"low\":0.173,\"close\":0.1732,\"volume\":853693.2410544899,\"close_time\":1508925593807,\"vwap\":0.17480282964944405,\"ema1\":0.1735019142700287,\"sma1\":0.18770599583333333,\"sma2\":0.17294899999999996,\"rsi_avg_gain\":0.000917506822991095,\"rsi_avg_loss\":0.0009439846539716516,\"rsi\":49},{\"period_id\":\"120m209571\",\"size\":\"120m\",\"time\":1508911200000,\"open\":0.1746,\"high\":0.17699,\"low\":0.1745,\"close\":0.176,\"volume\":812787.1982533699,\"close_time\":1508918396597,\"vwap\":0.17580430992515564,\"ema1\":0.17352273594382378,\"sma1\":0.18826164398148149,\"sma2\":0.17308216666666662,\"rsi_avg_gain\":0.000988084270913487,\"rsi_avg_loss\":0.000801214242738702,\"rsi\":55},{\"period_id\":\"120m209570\",\"size\":\"120m\",\"time\":1508904000000,\"open\":0.17459,\"high\":0.176,\"low\":0.17217,\"close\":0.1746,\"volume\":332293.24866345007,\"close_time\":1508911125306,\"vwap\":0.17394659576223223,\"ema1\":0.1733518901468461,\"sma1\":0.18871534768518522,\"sma2\":0.1732638333333333,\"rsi_avg_gain\":0.0009563984455991409,\"rsi_avg_loss\":0.000862846107564756,\"rsi\":53},{\"period_id\":\"120m209569\",\"size\":\"120m\",\"time\":1508896800000,\"open\":0.17102,\"high\":0.17461,\"low\":0.1705,\"close\":0.17456,\"volume\":238526.89042274005,\"close_time\":1508903964165,\"vwap\":0.17503376359664793,\"ema1\":0.17326581360524929,\"sma1\":0.18915219953703705,\"sma2\":0.17343149999999996,\"rsi_avg_gain\":0.0010268906337221508,\"rsi_avg_loss\":0.0009292188850697373,\"rsi\":52},{\"period_id\":\"120m209568\",\"size\":\"120m\",\"time\":1508889600000,\"open\":0.1751,\"high\":0.17542,\"low\":0.17101,\"close\":0.17132,\"volume\":315972.07897068013,\"close_time\":1508896758337,\"vwap\":0.17524558108686286,\"ema1\":0.17317655937112855,\"sma1\":0.18959488472222222,\"sma2\":0.17362883333333332,\"rsi_avg_gain\":0.0008566514517007785,\"rsi_avg_loss\":0.0010006972608443325,\"rsi\":46},{\"period_id\":\"120m209567\",\"size\":\"120m\",\"time\":1508882400000,\"open\":0.17488,\"high\":0.1782,\"low\":0.17324,\"close\":0.17476,\"volume\":779646.11099317,\"close_time\":1508889386052,\"vwap\":0.17611860034842397,\"ema1\":0.17330459794844777,\"sma1\":0.19001988472222225,\"sma2\":0.17375549999999998,\"rsi_avg_gain\":0.0009225477172162231,\"rsi_avg_loss\":0.0008130585886015889,\"rsi\":53},{\"period_id\":\"120m209566\",\"size\":\"120m\",\"time\":1508875200000,\"open\":0.17901,\"high\":0.18062,\"low\":0.1724,\"close\":0.1749,\"volume\":980719.45796823,\"close_time\":1508882374988,\"vwap\":0.17486050596817704,\"ema1\":0.1732042253931683,\"sma1\":0.19042247731481485,\"sma2\":0.17387549999999996,\"rsi_avg_gain\":0.0009935129262328556,\"rsi_avg_loss\":0.0008648323261863264,\"rsi\":53},{\"period_id\":\"120m209565\",\"size\":\"120m\",\"time\":1508868000000,\"open\":0.18111,\"high\":0.18302,\"low\":0.17853,\"close\":0.1789,\"volume\":870281.0234227607,\"close_time\":1508875170112,\"vwap\":0.18062501041277126,\"ema1\":0.17308727542028335,\"sma1\":0.19084358842592597,\"sma2\":0.17396999999999993,\"rsi_avg_gain\":0.0010699369974815367,\"rsi_avg_loss\":0.0006236655820468127,\"rsi\":63},{\"period_id\":\"120m209564\",\"size\":\"120m\",\"time\":1508860800000,\"open\":0.18079,\"high\":0.18325,\"low\":0.176,\"close\":0.181,\"volume\":2010800.5246071485,\"close_time\":1508867957444,\"vwap\":0.17938809366911546,\"ema1\":0.1726863978630615,\"sma1\":0.19124775509259262,\"sma2\":0.17399416666666664,\"rsi_avg_gain\":0.0011522398434416548,\"rsi_avg_loss\":0.0005101013960504145,\"rsi\":69},{\"period_id\":\"120m209563\",\"size\":\"120m\",\"time\":1508853600000,\"open\":0.18248,\"high\":0.18549,\"low\":0.1806,\"close\":0.18078,\"volume\":2048497.8937628616,\"close_time\":1508860796305,\"vwap\":0.18078498141972593,\"ema1\":0.1721130459915485,\"sma1\":0.19157655138888893,\"sma2\":0.1741811666666666,\"rsi_avg_gain\":0.0012239506006294747,\"rsi_avg_loss\":0.0005493399649773694,\"rsi\":69},{\"period_id\":\"120m209562\",\"size\":\"120m\",\"time\":1508846400000,\"open\":0.17812,\"high\":0.184,\"low\":0.178,\"close\":0.18142,\"volume\":2121593.591426679,\"close_time\":1508853596365,\"vwap\":0.1819982841222479,\"ema1\":0.1715153250254484,\"sma1\":0.19187951435185188,\"sma2\":0.17409866666666662,\"rsi_avg_gain\":0.001318100646831742,\"rsi_avg_loss\":0.0005423661161294747,\"rsi\":71},{\"period_id\":\"120m209561\",\"size\":\"120m\",\"time\":1508839200000,\"open\":0.17708,\"high\":0.1797,\"low\":0.1755,\"close\":0.17812,\"volume\":1405572.9367635408,\"close_time\":1508846399653,\"vwap\":0.17789854060491528,\"ema1\":0.1708322439927207,\"sma1\":0.19219895879629634,\"sma2\":0.1740983333333333,\"rsi_avg_gain\":0.0011656468504341838,\"rsi_avg_loss\":0.0005840865866009728,\"rsi\":67},{\"period_id\":\"120m209560\",\"size\":\"120m\",\"time\":1508832000000,\"open\":0.1749,\"high\":0.18,\"low\":0.174,\"close\":0.17802,\"volume\":2817885.18563076,\"close_time\":1508839193802,\"vwap\":0.17813038683007335,\"ema1\":0.17032964013014973,\"sma1\":0.1925582180555556,\"sma2\":0.1740965,\"rsi_avg_gain\":0.001247619685082968,\"rsi_avg_loss\":0.0006290163240318168,\"rsi\":66},{\"period_id\":\"120m209559\",\"size\":\"120m\",\"time\":1508824800000,\"open\":0.17427,\"high\":0.17499,\"low\":0.17004,\"close\":0.174,\"volume\":2599126.4352685795,\"close_time\":1508831953470,\"vwap\":0.1741628761289981,\"ema1\":0.16979927048395316,\"sma1\":0.19295618101851855,\"sma2\":0.17417716666666663,\"rsi_avg_gain\":0.001034359660858579,\"rsi_avg_loss\":0.0006774021951111873,\"rsi\":60},{\"period_id\":\"120m209558\",\"size\":\"120m\",\"time\":1508817600000,\"open\":0.16942,\"high\":0.17497,\"low\":0.16851,\"close\":0.17427,\"volume\":940349.9307694802,\"close_time\":1508824766056,\"vwap\":0.17272057867633797,\"ema1\":0.16950956500008785,\"sma1\":0.19336229212962963,\"sma2\":0.17429766666666663,\"rsi_avg_gain\":0.001113925788616931,\"rsi_avg_loss\":0.000708740825504354,\"rsi\":61},{\"period_id\":\"120m209557\",\"size\":\"120m\",\"time\":1508810400000,\"open\":0.17017,\"high\":0.17674,\"low\":0.16831,\"close\":0.16946,\"volume\":1315534.0875811498,\"close_time\":1508817487442,\"vwap\":0.17061266931141383,\"ema1\":0.16918125913802495,\"sma1\":0.19376164398148155,\"sma2\":0.1744541666666667,\"rsi_avg_gain\":0.0008296123877413098,\"rsi_avg_loss\":0.0007632593505431505,\"rsi\":52},{\"period_id\":\"120m209556\",\"size\":\"120m\",\"time\":1508803200000,\"open\":0.164,\"high\":0.17077,\"low\":0.1571,\"close\":0.17,\"volume\":1711814.2027050385,\"close_time\":1508810383599,\"vwap\":0.16273504558871138,\"ema1\":0.16916203563030255,\"sma1\":0.19423127361111112,\"sma2\":0.17466399999999999,\"rsi_avg_gain\":0.0008934287252598722,\"rsi_avg_loss\":0.0007804331467387764,\"rsi\":53},{\"period_id\":\"120m209555\",\"size\":\"120m\",\"time\":1508796000000,\"open\":0.16292,\"high\":0.1675,\"low\":0.16182,\"close\":0.164,\"volume\":807403.1018157998,\"close_time\":1508803132515,\"vwap\":0.1658968389763022,\"ema1\":0.16910424498411653,\"sma1\":0.19472201435185188,\"sma2\":0.17501649999999996,\"rsi_avg_gain\":0.000500615550279862,\"rsi_avg_loss\":0.0008404664657186823,\"rsi\":37},{\"period_id\":\"120m209554\",\"size\":\"120m\",\"time\":1508788800000,\"open\":0.1625,\"high\":0.16426,\"low\":0.16121,\"close\":0.16234,\"volume\":1314971.7257595595,\"close_time\":1508795898047,\"vwap\":0.1624700211112093,\"ema1\":0.16945626187957283,\"sma1\":0.19523812546296299,\"sma2\":0.17539533333333332,\"rsi_avg_gain\":0.000411432131070621,\"rsi_avg_loss\":0.000905117732312427,\"rsi\":31},{\"period_id\":\"120m209553\",\"size\":\"120m\",\"time\":1508781600000,\"open\":0.16131,\"high\":0.16298,\"low\":0.16,\"close\":0.1625,\"volume\":1229418.5161516913,\"close_time\":1508788795861,\"vwap\":0.16161263339482654,\"ema1\":0.16994703856092266,\"sma1\":0.19576608842592597,\"sma2\":0.1756808333333333,\"rsi_avg_gain\":0.0004430807565375918,\"rsi_avg_loss\":0.0009624344809518449,\"rsi\":32},{\"period_id\":\"120m209552\",\"size\":\"120m\",\"time\":1508774400000,\"open\":0.16147,\"high\":0.162,\"low\":0.16,\"close\":0.1613,\"volume\":1277560.5058609694,\"close_time\":1508781568333,\"vwap\":0.16129654420967793,\"ema1\":0.1704606274271932,\"sma1\":0.1962793291666667,\"sma2\":0.1760008333333333,\"rsi_avg_gain\":0.0003848561993481752,\"rsi_avg_loss\":0.0010364679025635253,\"rsi\":27},{\"period_id\":\"120m209551\",\"size\":\"120m\",\"time\":1508767200000,\"open\":0.16191,\"high\":0.16275,\"low\":0.16,\"close\":0.161,\"volume\":1546121.7464910003,\"close_time\":1508774327749,\"vwap\":0.16109218683768836,\"ema1\":0.17109239483596514,\"sma1\":0.196790625462963,\"sma2\":0.17646749999999997,\"rsi_avg_gain\":0.0003913835992980352,\"rsi_avg_loss\":0.0011161962027607195,\"rsi\":26},{\"period_id\":\"120m209550\",\"size\":\"120m\",\"time\":1508760000000,\"open\":0.16606,\"high\":0.16606,\"low\":0.16034,\"close\":0.16196,\"volume\":1831406.5661778909,\"close_time\":1508767191577,\"vwap\":0.16176539742828205,\"ema1\":0.1717884220660317,\"sma1\":0.1972896069444445,\"sma2\":0.17690150000000002,\"rsi_avg_gain\":0.0004214900300132687,\"rsi_avg_loss\":0.0011282112952807758,\"rsi\":27},{\"period_id\":\"120m209549\",\"size\":\"120m\",\"time\":1508752800000,\"open\":0.16547,\"high\":0.16717,\"low\":0.165,\"close\":0.16503,\"volume\":1181269.23281257,\"close_time\":1508759985903,\"vwap\":0.16564173184028685,\"ema1\":0.17246624427748217,\"sma1\":0.19780469953703705,\"sma2\":0.17738233333333334,\"rsi_avg_gain\":0.00045391234001428935,\"rsi_avg_loss\":0.0009788429333792957,\"rsi\":32},{\"period_id\":\"120m209548\",\"size\":\"120m\",\"time\":1508745600000,\"open\":0.16604,\"high\":0.16744,\"low\":0.165,\"close\":0.16595,\"volume\":2203820.4107049895,\"close_time\":1508752793340,\"vwap\":0.16582977706830937,\"ema1\":0.17297908871041198,\"sma1\":0.19832636620370378,\"sma2\":0.1778451666666667,\"rsi_avg_gain\":0.0004888286738615424,\"rsi_avg_loss\":0.0009833693128700124,\"rsi\":33},{\"period_id\":\"120m209547\",\"size\":\"120m\",\"time\":1508738400000,\"open\":0.169,\"high\":0.16902,\"low\":0.165,\"close\":0.16603,\"volume\":1644274.9669853388,\"close_time\":1508745581675,\"vwap\":0.1663935574517929,\"ema1\":0.1734638534490611,\"sma1\":0.1987886810185186,\"sma2\":0.17827800000000002,\"rsi_avg_gain\":0.0005264308795431995,\"rsi_avg_loss\":0.0010528592600138576,\"rsi\":33},{\"period_id\":\"120m209546\",\"size\":\"120m\",\"time\":1508731200000,\"open\":0.17068,\"high\":0.17076,\"low\":0.169,\"close\":0.16911,\"volume\":319551.91773119004,\"close_time\":1508738356463,\"vwap\":0.16948178172544445,\"ema1\":0.1739765329972722,\"sma1\":0.19927849583333337,\"sma2\":0.17875950000000002,\"rsi_avg_gain\":0.000566925562584984,\"rsi_avg_loss\":0.0008969253569380006,\"rsi\":39},{\"period_id\":\"120m209545\",\"size\":\"120m\",\"time\":1508724000000,\"open\":0.1708,\"high\":0.17086,\"low\":0.17003,\"close\":0.17043,\"volume\":87114,\"close_time\":1508730294918,\"vwap\":0.1705723330934907,\"ema1\":0.1743121559626013,\"sma1\":0.19976868101851858,\"sma2\":0.17916900000000002,\"rsi_avg_gain\":0.0006105352212453675,\"rsi_avg_loss\":0.00086438115362554,\"rsi\":41},{\"period_id\":\"120m209544\",\"size\":\"120m\",\"time\":1508716800000,\"open\":0.17162,\"high\":0.17162,\"low\":0.1707,\"close\":0.17082,\"volume\":115057.60277177,\"close_time\":1508723544199,\"vwap\":0.1705746439328324,\"ema1\":0.1745798908565738,\"sma1\":0.20022951435185188,\"sma2\":0.1796456666666667,\"rsi_avg_gain\":0.0006574994690334726,\"rsi_avg_loss\":0.0009008720115967352,\"rsi\":42},{\"period_id\":\"120m209543\",\"size\":\"120m\",\"time\":1508709600000,\"open\":0.1705,\"high\":0.172,\"low\":0.17017,\"close\":0.17076,\"volume\":97633.11608365999,\"close_time\":1508716762892,\"vwap\":0.1705673826756078,\"ema1\":0.17483919367426853,\"sma1\":0.2006646995370371,\"sma2\":0.18004133333333336,\"rsi_avg_gain\":0.0007034609666514317,\"rsi_avg_loss\":0.0009701698586426379,\"rsi\":42},{\"period_id\":\"120m209542\",\"size\":\"120m\",\"time\":1508702400000,\"open\":0.17,\"high\":0.17174755,\"low\":0.16966,\"close\":0.17126,\"volume\":279349.66166889,\"close_time\":1508709197711,\"vwap\":0.17053968218900295,\"ema1\":0.17512051737594223,\"sma1\":0.2010894444444445,\"sma2\":0.18033200000000002,\"rsi_avg_gain\":0.0007575733487015418,\"rsi_avg_loss\":0.0010063367708459177,\"rsi\":43},{\"period_id\":\"120m209541\",\"size\":\"120m\",\"time\":1508695200000,\"open\":0.171,\"high\":0.172,\"low\":0.1698,\"close\":0.17,\"volume\":534286.93589556,\"close_time\":1508702389820,\"vwap\":0.1704525962220523,\"ema1\":0.1753867599535934,\"sma1\":0.20157314814814822,\"sma2\":0.18085700000000002,\"rsi_avg_gain\":0.0007189251447555079,\"rsi_avg_loss\":0.0010837472916802192,\"rsi\":40},{\"period_id\":\"120m209540\",\"size\":\"120m\",\"time\":1508688000000,\"open\":0.1724,\"high\":0.1724,\"low\":0.171,\"close\":0.17126,\"volume\":149310.91431348005,\"close_time\":1508694856926,\"vwap\":0.17154996660508934,\"ema1\":0.17575826064004813,\"sma2\":0.1814685,\"rsi_avg_gain\":0.0007742270789674701,\"rsi_avg_loss\":0.0010701893910402373,\"rsi\":42},{\"period_id\":\"120m209539\",\"size\":\"120m\",\"time\":1508680800000,\"open\":0.1723,\"high\":0.17481,\"low\":0.17121,\"close\":0.1724,\"volume\":597489.0677834799,\"close_time\":1508687927557,\"vwap\":0.1727604928824438,\"ema1\":0.1760684855117756,\"sma2\":0.18213633333333334,\"rsi_avg_gain\":0.0008337830081188139,\"rsi_avg_loss\":0.0010648193441971786,\"rsi\":44},{\"period_id\":\"120m209538\",\"size\":\"120m\",\"time\":1508673600000,\"open\":0.17057,\"high\":0.17274,\"low\":0.16958,\"close\":0.17226,\"volume\":357371.2148454699,\"close_time\":1508680784545,\"vwap\":0.17200471685997673,\"ema1\":0.1763214845125877,\"sma2\":0.1828766666666667,\"rsi_avg_gain\":0.0008871509318202611,\"rsi_avg_loss\":0.0011467285245200384,\"rsi\":44},{\"period_id\":\"120m209537\",\"size\":\"120m\",\"time\":1508666400000,\"open\":0.17146,\"high\":0.17149,\"low\":0.168,\"close\":0.16957,\"volume\":718263.7104258008,\"close_time\":1508673584125,\"vwap\":0.1695066728695255,\"ema1\":0.17660158689276617,\"sma2\":0.18363383333333336,\"rsi_avg_gain\":0.0007484702342679736,\"rsi_avg_loss\":0.0012349384110215797,\"rsi\":38},{\"period_id\":\"120m209536\",\"size\":\"120m\",\"time\":1508659200000,\"open\":0.17333,\"high\":0.17451,\"low\":0.16901,\"close\":0.17146,\"volume\":777359.1669491098,\"close_time\":1508666395877,\"vwap\":0.17031955697589599,\"ema1\":0.1770865239198535,\"sma2\":0.18446883333333336,\"rsi_avg_gain\":0.0008060448676732024,\"rsi_avg_loss\":0.0011845490580232394,\"rsi\":40},{\"period_id\":\"120m209535\",\"size\":\"120m\",\"time\":1508652000000,\"open\":0.173,\"high\":0.17549,\"low\":0.17237,\"close\":0.17407,\"volume\":368189.59224220994,\"close_time\":1508659091496,\"vwap\":0.17359254702861016,\"ema1\":0.17747456005225717,\"sma2\":0.185208,\"rsi_avg_gain\":0.0008680483190326796,\"rsi_avg_loss\":0.0010748989855634886,\"rsi\":45},{\"period_id\":\"120m209534\",\"size\":\"120m\",\"time\":1508644800000,\"open\":0.17198,\"high\":0.17389,\"low\":0.17066,\"close\":0.17357,\"volume\":259884.95235785996,\"close_time\":1508651645538,\"vwap\":0.1726738917827149,\"ema1\":0.17770935729724044,\"sma2\":0.185956,\"rsi_avg_gain\":0.0008963597281890396,\"rsi_avg_loss\":0.0011575835229145261,\"rsi\":44},{\"period_id\":\"120m209533\",\"size\":\"120m\",\"time\":1508637600000,\"open\":0.17799,\"high\":0.17807,\"low\":0.1715,\"close\":0.17189,\"volume\":233140.33999584996,\"close_time\":1508644438052,\"vwap\":0.1726364235357833,\"ema1\":0.1779948302142915,\"sma2\":0.18673033333333333,\"rsi_avg_gain\":0.000836079707280503,\"rsi_avg_loss\":0.0012466284092925667,\"rsi\":40},{\"period_id\":\"120m209532\",\"size\":\"120m\",\"time\":1508630400000,\"open\":0.17794,\"high\":0.1799,\"low\":0.17573,\"close\":0.17795,\"volume\":324073.30858867,\"close_time\":1508637572755,\"vwap\":0.17634554626739013,\"ema1\":0.17841585298769091,\"sma2\":0.18743116666666668,\"rsi_avg_gain\":0.0009003935309174648,\"rsi_avg_loss\":0.0008763690561612251,\"rsi\":51},{\"period_id\":\"120m209531\",\"size\":\"120m\",\"time\":1508623200000,\"open\":0.17182,\"high\":0.178,\"low\":0.17131,\"close\":0.178,\"volume\":579369.1544701199,\"close_time\":1508630360880,\"vwap\":0.17584712008596634,\"ema1\":0.17844798077994548,\"sma2\":0.188096,\"rsi_avg_gain\":0.0009696545717572698,\"rsi_avg_loss\":0.0009399359066351658,\"rsi\":51},{\"period_id\":\"120m209530\",\"size\":\"120m\",\"time\":1508616000000,\"open\":0.17,\"high\":0.173,\"low\":0.16948,\"close\":0.172,\"volume\":437613.7920166499,\"close_time\":1508623105179,\"vwap\":0.1712263320533455,\"ema1\":0.17847887600614862,\"sma2\":0.18881266666666668,\"rsi_avg_gain\":0.0005827049234309055,\"rsi_avg_loss\":0.0010122386686840248,\"rsi\":37},{\"period_id\":\"120m209529\",\"size\":\"120m\",\"time\":1508608800000,\"open\":0.171,\"high\":0.17269,\"low\":0.17,\"close\":0.17045,\"volume\":521011.0137024398,\"close_time\":1508615996024,\"vwap\":0.17084697419423744,\"ema1\":0.17892569504105543,\"sma2\":0.18962850000000003,\"rsi_avg_gain\":0.0005082976098486679,\"rsi_avg_loss\":0.001090103181659719,\"rsi\":32},{\"period_id\":\"120m209528\",\"size\":\"120m\",\"time\":1508601600000,\"open\":0.17174,\"high\":0.17204,\"low\":0.168,\"close\":0.1709,\"volume\":676697.5788278899,\"close_time\":1508608747958,\"vwap\":0.17008170361560151,\"ema1\":0.17951022573354203,\"sma2\":0.19065016666666673,\"rsi_avg_gain\":0.0005473974259908731,\"rsi_avg_loss\":0.0011393418879412354,\"rsi\":32},{\"period_id\":\"120m209527\",\"size\":\"120m\",\"time\":1508594400000,\"open\":0.17297,\"high\":0.17459,\"low\":0.1709,\"close\":0.17198,\"volume\":648114.2900651698,\"close_time\":1508601565921,\"vwap\":0.17194564427984912,\"ema1\":0.18010403440482078,\"sma2\":0.19176050000000003,\"rsi_avg_gain\":0.0005895049202978633,\"rsi_avg_loss\":0.0011439066485521,\"rsi\":34},{\"period_id\":\"120m209526\",\"size\":\"120m\",\"time\":1508587200000,\"open\":0.172,\"high\":0.17328,\"low\":0.16928,\"close\":0.173,\"volume\":2639942.211716732,\"close_time\":1508594339385,\"vwap\":0.1706953841980791,\"ema1\":0.180664312639636,\"sma2\":0.19300483333333335,\"rsi_avg_gain\":0.0006348514526284682,\"rsi_avg_loss\":0.0011534379292099544,\"rsi\":36},{\"period_id\":\"120m209525\",\"size\":\"120m\",\"time\":1508580000000,\"open\":0.17203,\"high\":0.173,\"low\":0.171,\"close\":0.172,\"volume\":729710.4042586304,\"close_time\":1508587194952,\"vwap\":0.17180755407016868,\"ema1\":0.18119288592512814,\"sma2\":0.19406316666666668,\"rsi_avg_gain\":0.000606763102830658,\"rsi_avg_loss\":0.0012421639237645663,\"rsi\":33},{\"period_id\":\"120m209524\",\"size\":\"120m\",\"time\":1508572800000,\"open\":0.17382,\"high\":0.174,\"low\":0.172,\"close\":0.17203,\"volume\":599489.1881081001,\"close_time\":1508579993090,\"vwap\":0.1730495919649287,\"ema1\":0.1818268780578956,\"sma2\":0.195087,\"rsi_avg_gain\":0.0006534371876637856,\"rsi_avg_loss\":0.0013354073025156866,\"rsi\":33},{\"period_id\":\"120m209523\",\"size\":\"120m\",\"time\":1508565600000,\"open\":0.174,\"high\":0.17489,\"low\":0.17141,\"close\":0.17388,\"volume\":803000.1573551196,\"close_time\":1508572738039,\"vwap\":0.17362724629261214,\"ema1\":0.1825025248205091,\"sma2\":0.1961053333333334,\"rsi_avg_gain\":0.0007037015867148461,\"rsi_avg_loss\":0.0012958232488630456,\"rsi\":35},{\"period_id\":\"120m209522\",\"size\":\"120m\",\"time\":1508558400000,\"open\":0.17331,\"high\":0.17482,\"low\":0.17153,\"close\":0.17398,\"volume\":328946.48005890014,\"close_time\":1508565586485,\"vwap\":0.1733138616939417,\"ema1\":0.18309718170468214,\"sma2\":0.19690200000000008,\"rsi_avg_gain\":0.0007578324780006036,\"rsi_avg_loss\":0.001387809652621742,\"rsi\":35},{\"period_id\":\"120m209521\",\"size\":\"120m\",\"time\":1508551200000,\"open\":0.175,\"high\":0.17588,\"low\":0.173,\"close\":0.173,\"volume\":369652.91754784994,\"close_time\":1508558005497,\"vwap\":0.17390723714266604,\"ema1\":0.18372595285672919,\"sma2\":0.19768533333333338,\"rsi_avg_gain\":0.000740742668616034,\"rsi_avg_loss\":0.001494564241284953,\"rsi\":33},{\"period_id\":\"120m209520\",\"size\":\"120m\",\"time\":1508544000000,\"open\":0.17635,\"high\":0.17802,\"low\":0.17464,\"close\":0.17535,\"volume\":470922.95569517004,\"close_time\":1508551167572,\"vwap\":0.1753542230673383,\"ema1\":0.18446567374340017,\"sma2\":0.1984418333333334,\"rsi_avg_gain\":0.0007977228738941905,\"rsi_avg_loss\":0.0014287614906145635,\"rsi\":36},{\"period_id\":\"120m209519\",\"size\":\"120m\",\"time\":1508536800000,\"open\":0.176,\"high\":0.17769,\"low\":0.1746,\"close\":0.17651,\"volume\":1082256.3462099694,\"close_time\":1508543841892,\"vwap\":0.1752557318194819,\"ema1\":0.18509434089811744,\"sma2\":0.19921666666666674,\"rsi_avg_gain\":0.0008590861718860513,\"rsi_avg_loss\":0.0014494354514310687,\"rsi\":37},{\"period_id\":\"120m209518\",\"size\":\"120m\",\"time\":1508529600000,\"open\":0.177,\"high\":0.1783,\"low\":0.175,\"close\":0.176,\"volume\":2969300.322570631,\"close_time\":1508536792880,\"vwap\":0.17592891513209538,\"ema1\":0.18568636440833244,\"sma2\":0.20000683333333338,\"rsi_avg_gain\":0.0008859389543388236,\"rsi_avg_loss\":0.0015609304861565357,\"rsi\":36},{\"period_id\":\"120m209517\",\"size\":\"120m\",\"time\":1508522400000,\"open\":0.1785,\"high\":0.17999,\"low\":0.1771,\"close\":0.17758,\"volume\":913124.6028473194,\"close_time\":1508529579456,\"vwap\":0.17845762011703648,\"ema1\":0.18635438953994157,\"sma2\":0.20077866666666674,\"rsi_avg_gain\":0.0009540881046725794,\"rsi_avg_loss\":0.0015594636004762695,\"rsi\":38},{\"period_id\":\"120m209516\",\"size\":\"120m\",\"time\":1508515200000,\"open\":0.1805,\"high\":0.1805,\"low\":0.1765,\"close\":0.17869,\"volume\":854731.4552997001,\"close_time\":1508522351206,\"vwap\":0.17856060450369216,\"ema1\":0.186959519853041,\"sma2\":0.20156716666666677,\"rsi_avg_gain\":0.0010274794973397009,\"rsi_avg_loss\":0.0015940377235898287,\"rsi\":39},{\"period_id\":\"120m209515\",\"size\":\"120m\",\"time\":1508508000000,\"open\":0.18251,\"high\":0.18389,\"low\":0.1754,\"close\":0.1805,\"volume\":2255473.1624895213,\"close_time\":1508515181054,\"vwap\":0.1794708761586812,\"ema1\":0.1875298315670438,\"sma2\":0.2022330000000001,\"rsi_avg_gain\":0.001106516381750447,\"rsi_avg_loss\":0.0015774252407890457,\"rsi\":41},{\"period_id\":\"120m209514\",\"size\":\"120m\",\"time\":1508500800000,\"open\":0.1827,\"high\":0.1845,\"low\":0.182,\"close\":0.18389,\"volume\":741604.6409471899,\"close_time\":1508507951218,\"vwap\":0.1832446610486187,\"ema1\":0.18801464753718475,\"sma2\":0.20273350000000007,\"rsi_avg_gain\":0.0011916330265004816,\"rsi_avg_loss\":0.0014379964131574336,\"rsi\":45},{\"period_id\":\"120m209513\",\"size\":\"120m\",\"time\":1508493600000,\"open\":0.18325,\"high\":0.18495,\"low\":0.18194,\"close\":0.1845,\"volume\":672749.5059062601,\"close_time\":1508500751369,\"vwap\":0.18367718790448612,\"ema1\":0.18829910598802507,\"sma2\":0.2032285,\"rsi_avg_gain\":0.0012832971054620571,\"rsi_avg_loss\":0.0015016884449387746,\"rsi\":46},{\"period_id\":\"120m209512\",\"size\":\"120m\",\"time\":1508486400000,\"open\":0.18398,\"high\":0.18511,\"low\":0.1825,\"close\":0.18367,\"volume\":750380.9981659299,\"close_time\":1508493594948,\"vwap\":0.18348021567135847,\"ema1\":0.18856111329754405,\"sma2\":0.20373400000000003,\"rsi_avg_gain\":0.0013181661135745234,\"rsi_avg_loss\":0.0016172029407032957,\"rsi\":45},{\"period_id\":\"120m209511\",\"size\":\"120m\",\"time\":1508479200000,\"open\":0.18556,\"high\":0.18691,\"low\":0.1833,\"close\":0.18399,\"volume\":934216.4546398703,\"close_time\":1508486356945,\"vwap\":0.18538052992528115,\"ema1\":0.18889843145599536,\"sma2\":0.2042835000000001,\"rsi_avg_gain\":0.0014195635069264097,\"rsi_avg_loss\":0.0017169877822958578,\"rsi\":45},{\"period_id\":\"120m209510\",\"size\":\"120m\",\"time\":1508472000000,\"open\":0.18476,\"high\":0.18958,\"low\":0.18476,\"close\":0.1855,\"volume\":854452.3424677192,\"close_time\":1508479192400,\"vwap\":0.18649175540705812,\"ema1\":0.18923694397020194,\"sma2\":0.20478850000000007,\"rsi_avg_gain\":0.0015287606997669027,\"rsi_avg_loss\":0.0017329099193955381,\"rsi\":47},{\"period_id\":\"120m209509\",\"size\":\"120m\",\"time\":1508464800000,\"open\":0.18316,\"high\":0.18462,\"low\":0.18193,\"close\":0.18462,\"volume\":229724.49574185,\"close_time\":1508471909974,\"vwap\":0.182446104939879,\"ema1\":0.18949466424400896,\"sma2\":0.2053445,\"rsi_avg_gain\":0.0015786653689797419,\"rsi_avg_loss\":0.0018662106824259641,\"rsi\":46},{\"period_id\":\"120m209508\",\"size\":\"120m\",\"time\":1508457600000,\"open\":0.18186,\"high\":0.1832,\"low\":0.17975,\"close\":0.18316,\"volume\":430995.58608996,\"close_time\":1508464770516,\"vwap\":0.18212412022397553,\"ema1\":0.1898308479849751,\"sma2\":0.2058828333333334,\"rsi_avg_gain\":0.0015877934742858744,\"rsi_avg_loss\":0.0020097653503048842,\"rsi\":44},{\"period_id\":\"120m209507\",\"size\":\"120m\",\"time\":1508450400000,\"open\":0.18245,\"high\":0.18349,\"low\":0.18,\"close\":0.18236,\"volume\":266705.26839337003,\"close_time\":1508457396244,\"vwap\":0.1801984810897615,\"ema1\":0.19029090646669752,\"sma2\":0.20643350000000005,\"rsi_avg_gain\":0.001648392972307865,\"rsi_avg_loss\":0.0021643626849437215,\"rsi\":43},{\"period_id\":\"120m209506\",\"size\":\"120m\",\"time\":1508443200000,\"open\":0.18448,\"high\":0.1848,\"low\":0.18011,\"close\":0.1821,\"volume\":694507.9420249896,\"close_time\":1508450386343,\"vwap\":0.1823789537431563,\"ema1\":0.19083786553336632,\"sma2\":0.2070623333333334,\"rsi_avg_gain\":0.0017551924317161635,\"rsi_avg_loss\":0.002330852122247085,\"rsi\":43},{\"period_id\":\"120m209505\",\"size\":\"120m\",\"time\":1508436000000,\"open\":0.1825,\"high\":0.1855,\"low\":0.181,\"close\":0.18457,\"volume\":949255.9928773206,\"close_time\":1508443191375,\"vwap\":0.18321078756099074,\"ema1\":0.19144047694946054,\"sma2\":0.20762316666666672,\"rsi_avg_gain\":0.0018902072341558684,\"rsi_avg_loss\":0.0023201484393430144,\"rsi\":45},{\"period_id\":\"120m209504\",\"size\":\"120m\",\"time\":1508428800000,\"open\":0.191,\"high\":0.1944,\"low\":0.1821,\"close\":0.18245,\"volume\":2695444.7140950765,\"close_time\":1508435969412,\"vwap\":0.18645554119072094,\"ema1\":0.19191430294597506,\"sma2\":0.20817400000000008,\"rsi_avg_gain\":0.0018725308675524729,\"rsi_avg_loss\":0.0024986213962155538,\"rsi\":43},{\"period_id\":\"120m209503\",\"size\":\"120m\",\"time\":1508421600000,\"open\":0.17647,\"high\":0.195,\"low\":0.175,\"close\":0.192,\"volume\":3989608.8784541055,\"close_time\":1508428794391,\"vwap\":0.19256466079189527,\"ema1\":0.19256701349397334,\"sma2\":0.20857266666666677,\"rsi_avg_gain\":0.0020165717035180476,\"rsi_avg_loss\":0.0019562076574629037,\"rsi\":51},{\"period_id\":\"120m209502\",\"size\":\"120m\",\"time\":1508414400000,\"open\":0.1781,\"high\":0.17949,\"low\":0.1764,\"close\":0.17647,\"volume\":1041090.1481537899,\"close_time\":1508421587204,\"vwap\":0.17722920264119468,\"ema1\":0.19260611787286805,\"sma2\":0.20924816666666676,\"rsi_avg_gain\":0.0009770772191732807,\"rsi_avg_loss\":0.0021066851695754345,\"rsi\":32},{\"period_id\":\"120m209501\",\"size\":\"120m\",\"time\":1508407200000,\"open\":0.17791,\"high\":0.17965,\"low\":0.1752,\"close\":0.1781,\"volume\":1684302.6253727605,\"close_time\":1508414397667,\"vwap\":0.17794267033375122,\"ema1\":0.19371895358823826,\"sma2\":0.20992083333333342,\"rsi_avg_gain\":0.001052237005263533,\"rsi_avg_loss\":0.002143353259542774,\"rsi\":33},{\"period_id\":\"120m209500\",\"size\":\"120m\",\"time\":1508400000000,\"open\":0.17884,\"high\":0.18121,\"low\":0.17727,\"close\":0.17791,\"volume\":1148991.7105682401,\"close_time\":1508407195358,\"vwap\":0.17781739812955863,\"ema1\":0.19479612280122022,\"sma2\":0.21065433333333342,\"rsi_avg_gain\":0.0011185629287453435,\"rsi_avg_loss\":0.0023082265871999107,\"rsi\":33},{\"period_id\":\"120m209499\",\"size\":\"120m\",\"time\":1508392800000,\"open\":0.1826,\"high\":0.18468,\"low\":0.17801,\"close\":0.17884,\"volume\":1068540.03475697,\"close_time\":1508399998814,\"vwap\":0.18060841453345328,\"ema1\":0.1959606829944078,\"sma2\":0.21129866666666672,\"rsi_avg_gain\":0.0012046062309565239,\"rsi_avg_loss\":0.0024142440169845204,\"rsi\":33},{\"period_id\":\"120m209498\",\"size\":\"120m\",\"time\":1508385600000,\"open\":0.17834,\"high\":0.18343,\"low\":0.1763,\"close\":0.1815,\"volume\":1083815.3835733393,\"close_time\":1508392791657,\"vwap\":0.18254950482279572,\"ema1\":0.19714141975264282,\"sma2\":0.21190716666666673,\"rsi_avg_gain\":0.0012972682487224104,\"rsi_avg_loss\":0.0023953397105987147,\"rsi\":35},{\"period_id\":\"120m209497\",\"size\":\"120m\",\"time\":1508378400000,\"open\":0.1835,\"high\":0.18533,\"low\":0.17843,\"close\":0.17885,\"volume\":555617.9518499903,\"close_time\":1508385595765,\"vwap\":0.17988818220074315,\"ema1\":0.19822013835627336,\"sma2\":0.2126013333333334,\"rsi_avg_gain\":0.0011932119601625968,\"rsi_avg_loss\":0.0025795966114140006,\"rsi\":32},{\"period_id\":\"120m209496\",\"size\":\"120m\",\"time\":1508371200000,\"open\":0.18414,\"high\":0.18592,\"low\":0.18112,\"close\":0.18259,\"volume\":481808.72188413964,\"close_time\":1508378329705,\"vwap\":0.18502040045613735,\"ema1\":0.19955600996705083,\"sma2\":0.2132453333333334,\"rsi_avg_gain\":0.0012849974955597195,\"rsi_avg_loss\":0.0024903348122920013,\"rsi\":34},{\"period_id\":\"120m209495\",\"size\":\"120m\",\"time\":1508364000000,\"open\":0.185,\"high\":0.18809,\"low\":0.1836,\"close\":0.18515,\"volume\":1333017.9636087907,\"close_time\":1508371192259,\"vwap\":0.18524601499155138,\"ema1\":0.2007260796199509,\"sma2\":0.21378633333333338,\"rsi_avg_gain\":0.001383843456756621,\"rsi_avg_loss\":0.0024849759516990776,\"rsi\":36},{\"period_id\":\"120m209494\",\"size\":\"120m\",\"time\":1508356800000,\"open\":0.17963,\"high\":0.18522,\"low\":0.17531,\"close\":0.18507,\"volume\":2839118.2283753585,\"close_time\":1508363988420,\"vwap\":0.18301514752790884,\"ema1\":0.20180029200753372,\"sma2\":0.21429333333333342,\"rsi_avg_gain\":0.0014841391072763614,\"rsi_avg_loss\":0.002676127947983622,\"rsi\":36},{\"period_id\":\"120m209493\",\"size\":\"120m\",\"time\":1508349600000,\"open\":0.1817,\"high\":0.18195,\"low\":0.17057,\"close\":0.17963,\"volume\":4148635.5413661683,\"close_time\":1508356790881,\"vwap\":0.17859065232852223,\"ema1\":0.20295410524943258,\"sma2\":0.21491200000000005,\"rsi_avg_gain\":0.0011798421155283891,\"rsi_avg_loss\":0.002881983943982362,\"rsi\":29},{\"period_id\":\"120m209492\",\"size\":\"120m\",\"time\":1508342400000,\"open\":0.189,\"high\":0.18988,\"low\":0.18,\"close\":0.1805,\"volume\":2751641.340932761,\"close_time\":1508349586855,\"vwap\":0.1803373220965967,\"ema1\":0.20456266423215208,\"rsi_avg_gain\":0.0012705992013382651,\"rsi_avg_loss\":0.0030367519396733147,\"rsi\":29},{\"period_id\":\"120m209491\",\"size\":\"120m\",\"time\":1508335200000,\"open\":0.1888,\"high\":0.18988,\"low\":0.1853,\"close\":0.189,\"volume\":1497489.5640848696,\"close_time\":1508342398064,\"vwap\":0.18686210975041775,\"ema1\":0.2062221583171281,\"rsi_avg_gain\":0.0013683376014412088,\"rsi_avg_loss\":0.0026165020888789534,\"rsi\":34},{\"period_id\":\"120m209490\",\"size\":\"120m\",\"time\":1508328000000,\"open\":0.193,\"high\":0.19561,\"low\":0.188,\"close\":0.188,\"volume\":1372659.4788467903,\"close_time\":1508335190916,\"vwap\":0.19047626912352353,\"ema1\":0.20740989337348176,\"rsi_avg_gain\":0.0013966712630905326,\"rsi_avg_loss\":0.002817771480331181,\"rsi\":33},{\"period_id\":\"120m209489\",\"size\":\"120m\",\"time\":1508320800000,\"open\":0.19372,\"high\":0.19788,\"low\":0.19,\"close\":0.19388,\"volume\":1368834.8061775295,\"close_time\":1508327989073,\"vwap\":0.19210418385950798,\"ema1\":0.20874850670958395,\"rsi_avg_gain\":0.0015041075140974967,\"rsi_avg_loss\":0.0025822154403566566,\"rsi\":37},{\"period_id\":\"120m209488\",\"size\":\"120m\",\"time\":1508313600000,\"open\":0.1895,\"high\":0.19372,\"low\":0.18551,\"close\":0.19372,\"volume\":1762878.7035395007,\"close_time\":1508320794514,\"vwap\":0.1929086408621152,\"ema1\":0.20977392096541733,\"rsi_avg_gain\":0.0016075003997973048,\"rsi_avg_loss\":0.002780847397307169,\"rsi\":37},{\"period_id\":\"120m209487\",\"size\":\"120m\",\"time\":1508306400000,\"open\":0.19807,\"high\":0.19897,\"low\":0.18551,\"close\":0.192,\"volume\":1783411.5423043596,\"close_time\":1508313540957,\"vwap\":0.19132240714386714,\"ema1\":0.21088108792854957,\"rsi_avg_gain\":0.0015988465843970977,\"rsi_avg_loss\":0.0029947587355615662,\"rsi\":35},{\"period_id\":\"120m209486\",\"size\":\"120m\",\"time\":1508299200000,\"open\":0.19455,\"high\":0.20078,\"low\":0.19428,\"close\":0.198,\"volume\":1296323.113122249,\"close_time\":1508306398847,\"vwap\":0.19809700126824578,\"ema1\":0.21218323192362196,\"rsi_avg_gain\":0.0017218347831968743,\"rsi_avg_loss\":0.0027635863306047634,\"rsi\":38},{\"period_id\":\"120m209485\",\"size\":\"120m\",\"time\":1508292000000,\"open\":0.19707,\"high\":0.19925,\"low\":0.193,\"close\":0.195,\"volume\":376664.22766547016,\"close_time\":1508299009432,\"vwap\":0.19719171854180956,\"ema1\":0.21316138584938898,\"rsi_avg_gain\":0.001623514381904326,\"rsi_avg_loss\":0.0029761698944974374,\"rsi\":35},{\"period_id\":\"120m209484\",\"size\":\"120m\",\"time\":1508284800000,\"open\":0.19449,\"high\":0.19978,\"low\":0.19075,\"close\":0.19942,\"volume\":743392.9868329304,\"close_time\":1508291986653,\"vwap\":0.19818952019877542,\"ema1\":0.21441389521831236,\"rsi_avg_gain\":0.0017484001035892743,\"rsi_avg_loss\":0.002865106040228011,\"rsi\":38},{\"period_id\":\"120m209483\",\"size\":\"120m\",\"time\":1508277600000,\"open\":0.191,\"high\":0.19466,\"low\":0.1888,\"close\":0.1945,\"volume\":2467112.42037417,\"close_time\":1508284788370,\"vwap\":0.19016430459782951,\"ema1\":0.21544795695750632,\"rsi_avg_gain\":0.0015044308807884506,\"rsi_avg_loss\":0.003085498812553243,\"rsi\":33},{\"period_id\":\"120m209482\",\"size\":\"120m\",\"time\":1508270400000,\"open\":0.2015,\"high\":0.20462,\"low\":0.18501,\"close\":0.1887,\"volume\":8168424.322204548,\"close_time\":1508277590165,\"vwap\":0.19297277870577448,\"ema1\":0.2168926436442309,\"rsi_avg_gain\":0.0011740024870029468,\"rsi_avg_loss\":0.003322844875057339,\"rsi\":26},{\"period_id\":\"120m209481\",\"size\":\"120m\",\"time\":1508263200000,\"open\":0.20795,\"high\":0.20948,\"low\":0.198,\"close\":0.2015,\"volume\":4465280.972445613,\"close_time\":1508270392738,\"vwap\":0.2018308169763495,\"ema1\":0.21883696389555715,\"rsi_avg_gain\":0.001264310370618558,\"rsi_avg_loss\":0.0025938329423694415,\"rsi\":33},{\"period_id\":\"120m209480\",\"size\":\"120m\",\"time\":1508256000000,\"open\":0.21216,\"high\":0.213,\"low\":0.2,\"close\":0.20795,\"volume\":4123265.899420519,\"close_time\":1508263196262,\"vwap\":0.20529600847324858,\"ema1\":0.22003261657800938,\"rsi_avg_gain\":0.0013615650145122934,\"rsi_avg_loss\":0.002297204707167092,\"rsi\":37},{\"period_id\":\"120m209479\",\"size\":\"120m\",\"time\":1508248800000,\"open\":0.21667,\"high\":0.2185,\"low\":0.21126,\"close\":0.21247,\"volume\":1350323.3272897,\"close_time\":1508255977182,\"vwap\":0.2132411892137515,\"ema1\":0.22086590047994106,\"rsi_avg_gain\":0.001466300784859393,\"rsi_avg_loss\":0.002126220453872253,\"rsi\":41},{\"period_id\":\"120m209478\",\"size\":\"120m\",\"time\":1508241600000,\"open\":0.21483,\"high\":0.2207,\"low\":0.2145,\"close\":0.21668,\"volume\":1476930.5860650714,\"close_time\":1508248766827,\"vwap\":0.21594241889534893,\"ema1\":0.22144492809924735,\"rsi_avg_gain\":0.0015790931529255001,\"rsi_avg_loss\":0.0019659297195547326,\"rsi\":45},{\"period_id\":\"120m209477\",\"size\":\"120m\",\"time\":1508234400000,\"open\":0.2214,\"high\":0.2214,\"low\":0.21483,\"close\":0.215,\"volume\":1546725.3390792508,\"close_time\":1508241589452,\"vwap\":0.2153244607803657,\"ema1\":0.22177354383022993,\"rsi_avg_gain\":0.001571331087765922,\"rsi_avg_loss\":0.002117155082597404,\"rsi\":43},{\"period_id\":\"120m209476\",\"size\":\"120m\",\"time\":1508227200000,\"open\":0.21815,\"high\":0.22399,\"low\":0.2162,\"close\":0.22156,\"volume\":1788883.6854261511,\"close_time\":1508234398358,\"vwap\":0.22152227851149092,\"ema1\":0.22224068478403888,\"rsi_avg_gain\":0.0016922027099017622,\"rsi_avg_loss\":0.001775397781258742,\"rsi\":49},{\"period_id\":\"120m209475\",\"size\":\"120m\",\"time\":1508220000000,\"open\":0.21901,\"high\":0.22099,\"low\":0.215,\"close\":0.21842,\"volume\":1724554.0755199182,\"close_time\":1508227139321,\"vwap\":0.21752200248731207,\"ema1\":0.22228762856224846,\"rsi_avg_gain\":0.0015808336875865127,\"rsi_avg_loss\":0.0019119668413555683,\"rsi\":45},{\"period_id\":\"120m209474\",\"size\":\"120m\",\"time\":1508212800000,\"open\":0.218,\"high\":0.22398,\"low\":0.218,\"close\":0.21845,\"volume\":604386.24432186,\"close_time\":1508219872202,\"vwap\":0.22062236868378904,\"ema1\":0.22255436156654146,\"rsi_avg_gain\":0.0017024362789393214,\"rsi_avg_loss\":0.0020567335214598426,\"rsi\":45},{\"period_id\":\"120m209473\",\"size\":\"120m\",\"time\":1508205600000,\"open\":0.22012,\"high\":0.22135,\"low\":0.218,\"close\":0.21835,\"volume\":278872.58491949004,\"close_time\":1508212763910,\"vwap\":0.2207817405820928,\"ema1\":0.22283742098492362,\"rsi_avg_gain\":0.0018257006080884986,\"rsi_avg_loss\":0.0022149437923413688,\"rsi\":45},{\"period_id\":\"120m209472\",\"size\":\"120m\",\"time\":1508198400000,\"open\":0.2172,\"high\":0.22462,\"low\":0.2165,\"close\":0.22,\"volume\":526781.0521477099,\"close_time\":1508204356283,\"vwap\":0.2213725867365189,\"ema1\":0.2231468982942287,\"rsi_avg_gain\":0.0019661391164029983,\"rsi_avg_loss\":0.0022584010071368577,\"rsi\":47},{\"period_id\":\"120m209471\",\"size\":\"120m\",\"time\":1508191200000,\"open\":0.215,\"high\":0.2193,\"low\":0.21384,\"close\":0.21789,\"volume\":1527821.7633719281,\"close_time\":1508198371974,\"vwap\":0.21761283602011228,\"ema1\":0.2233639257627962,\"rsi_avg_gain\":0.0019550728945878443,\"rsi_avg_loss\":0.0024321241615320004,\"rsi\":45},{\"period_id\":\"120m209470\",\"size\":\"120m\",\"time\":1508184000000,\"open\":0.21977,\"high\":0.22632,\"low\":0.215,\"close\":0.215,\"volume\":3312468.6553416625,\"close_time\":1508191198043,\"vwap\":0.21686274565371041,\"ema1\":0.22374143788436834,\"rsi_avg_gain\":0.0018831554249407554,\"rsi_avg_loss\":0.0026192106354960003,\"rsi\":42},{\"period_id\":\"120m209469\",\"size\":\"120m\",\"time\":1508176800000,\"open\":0.2322,\"high\":0.23534,\"low\":0.215,\"close\":0.2194,\"volume\":7587043.2554451395,\"close_time\":1508183998207,\"vwap\":0.21865016728424924,\"ema1\":0.2243442956694972,\"rsi_avg_gain\":0.0020280135345515826,\"rsi_avg_loss\":0.0024822268382264606,\"rsi\":45},{\"period_id\":\"120m209468\",\"size\":\"120m\",\"time\":1508169600000,\"open\":0.23909,\"high\":0.24,\"low\":0.22711,\"close\":0.2322,\"volume\":5271921.541000183,\"close_time\":1508176794364,\"vwap\":0.23257968973474188,\"ema1\":0.2246852815777384,\"rsi_avg_gain\":0.002184014575670935,\"rsi_avg_loss\":0.0016885519796284974,\"rsi\":56},{\"period_id\":\"120m209467\",\"size\":\"120m\",\"time\":1508162400000,\"open\":0.2485,\"high\":0.2485,\"low\":0.2386,\"close\":0.2386,\"volume\":4005236.0432454455,\"close_time\":1508169595100,\"vwap\":0.2413222463540727,\"ema1\":0.2241670251348238,\"rsi_avg_gain\":0.0023520156968763915,\"rsi_avg_loss\":0.0013261329011383803,\"rsi\":64},{\"period_id\":\"120m209466\",\"size\":\"120m\",\"time\":1508155200000,\"open\":0.2355,\"high\":0.2499,\"low\":0.235,\"close\":0.24766,\"volume\":5009323.550827344,\"close_time\":1508162398862,\"vwap\":0.24876741007155026,\"ema1\":0.2231716475579151,\"rsi_avg_gain\":0.0025329399812514986,\"rsi_avg_loss\":0.0007312200473797956,\"rsi\":78},{\"period_id\":\"120m209465\",\"size\":\"120m\",\"time\":1508148000000,\"open\":0.2334,\"high\":0.237,\"low\":0.23101,\"close\":0.2355,\"volume\":1623158.6642044901,\"close_time\":1508155184120,\"vwap\":0.23610190870545217,\"ema1\":0.22148279566535753,\"rsi_avg_gain\":0.0017923969028862292,\"rsi_avg_loss\":0.0007874677433320875,\"rsi\":69},{\"period_id\":\"120m209464\",\"size\":\"120m\",\"time\":1508140800000,\"open\":0.23496,\"high\":0.235,\"low\":0.224,\"close\":0.23346,\"volume\":2284854.99099831,\"close_time\":1508147985967,\"vwap\":0.23322168314972833,\"ema1\":0.2205160919181408,\"rsi_avg_gain\":0.0017733505108005556,\"rsi_avg_loss\":0.0008480421851268634,\"rsi\":68},{\"period_id\":\"120m209463\",\"size\":\"120m\",\"time\":1508133600000,\"open\":0.22176,\"high\":0.237,\"low\":0.22174,\"close\":0.23498,\"volume\":3742457.9514594693,\"close_time\":1508140777463,\"vwap\":0.23444762893169932,\"ema1\":0.21962340860215052,\"rsi_avg_gain\":0.0019097620885544443,\"rsi_avg_loss\":0.0007963531224443149,\"rsi\":71},{\"period_id\":\"120m209462\",\"size\":\"120m\",\"time\":1508126400000,\"open\":0.22,\"high\":0.225,\"low\":0.21921,\"close\":0.22178,\"volume\":491233.2354765498,\"close_time\":1508133596710,\"vwap\":0.22179290207580213,\"rsi_avg_gain\":0.0010412822492124796,\"rsi_avg_loss\":0.0008576110549400315,\"rsi\":55},{\"period_id\":\"120m209461\",\"size\":\"120m\",\"time\":1508119200000,\"open\":0.22154,\"high\":0.22179,\"low\":0.21931,\"close\":0.22,\"volume\":231878.15689234002,\"close_time\":1508126390334,\"vwap\":0.2204838417916146,\"rsi_avg_gain\":0.0009844578068442084,\"rsi_avg_loss\":0.0009235811360892647,\"rsi\":52},{\"period_id\":\"120m209460\",\"size\":\"120m\",\"time\":1508112000000,\"open\":0.22323,\"high\":0.22323,\"low\":0.2203,\"close\":0.22074,\"volume\":253917.69177766997,\"close_time\":1508119056912,\"vwap\":0.22080611222245283,\"rsi_avg_gain\":0.0010601853304476091,\"rsi_avg_loss\":0.0009377027619422857,\"rsi\":53},{\"period_id\":\"120m209459\",\"size\":\"120m\",\"time\":1508104800000,\"open\":0.2238,\"high\":0.2241,\"low\":0.22,\"close\":0.223,\"volume\":679377.8068433397,\"close_time\":1508111891597,\"vwap\":0.22160348338583025,\"rsi_avg_gain\":0.0011417380481743484,\"rsi_avg_loss\":0.0008359875897839991,\"rsi\":58},{\"period_id\":\"120m209458\",\"size\":\"120m\",\"time\":1508097600000,\"open\":0.2235,\"high\":0.2241,\"low\":0.222,\"close\":0.22341,\"volume\":879567.2457431995,\"close_time\":1508104786549,\"vwap\":0.2238898020726429,\"rsi_avg_gain\":0.0012295640518800676,\"rsi_avg_loss\":0.0008687558659212304,\"rsi\":59},{\"period_id\":\"120m209457\",\"size\":\"120m\",\"time\":1508090400000,\"open\":0.22601,\"high\":0.2285,\"low\":0.2235,\"close\":0.22389,\"volume\":2245693.797248608,\"close_time\":1508097595388,\"vwap\":0.2241416031371596,\"rsi_avg_gain\":0.0013241459020246881,\"rsi_avg_loss\":0.0008986601632997859,\"rsi\":60},{\"period_id\":\"120m209456\",\"size\":\"120m\",\"time\":1508083200000,\"open\":0.22045,\"high\":0.2269,\"low\":0.22011,\"close\":0.226,\"volume\":2726038.296152591,\"close_time\":1508090396748,\"vwap\":0.22589222776606757,\"rsi_avg_gain\":0.0014260032791035102,\"rsi_avg_loss\":0.0008054801758613078,\"rsi\":64},{\"period_id\":\"120m209455\",\"size\":\"120m\",\"time\":1508076000000,\"open\":0.21396,\"high\":0.221,\"low\":0.21354,\"close\":0.22045,\"volume\":1708637.0210549808,\"close_time\":1508083195777,\"vwap\":0.21981083794862444,\"rsi_avg_gain\":0.0011087727621114727,\"rsi_avg_loss\":0.0008674401893891007,\"rsi\":56},{\"period_id\":\"120m209454\",\"size\":\"120m\",\"time\":1508068800000,\"open\":0.21396,\"high\":0.21672,\"low\":0.21275,\"close\":0.21392,\"volume\":435710.61404684,\"close_time\":1508075872850,\"vwap\":0.2146731846444171,\"rsi_avg_gain\":0.000691755282273893,\"rsi_avg_loss\":0.0009341663578036469,\"rsi\":43},{\"period_id\":\"120m209453\",\"size\":\"120m\",\"time\":1508061600000,\"open\":0.214,\"high\":0.2142,\"low\":0.21012,\"close\":0.2142,\"volume\":850332.3362540897,\"close_time\":1508068743727,\"vwap\":0.2125198391662976,\"rsi_avg_gain\":0.0007449672270641925,\"rsi_avg_loss\":0.0009844868468654657,\"rsi\":43},{\"period_id\":\"120m209452\",\"size\":\"120m\",\"time\":1508054400000,\"open\":0.21693,\"high\":0.2188,\"low\":0.214,\"close\":0.214,\"volume\":607334.2370174906,\"close_time\":1508061599703,\"vwap\":0.2157525403545282,\"rsi_avg_gain\":0.0007868877829922069,\"rsi_avg_loss\":0.0010602166043166554,\"rsi\":43},{\"period_id\":\"120m209451\",\"size\":\"120m\",\"time\":1508047200000,\"open\":0.21579,\"high\":0.21797,\"low\":0.21503,\"close\":0.21696,\"volume\":394691.07658418996,\"close_time\":1508054359089,\"vwap\":0.21666334656963063,\"rsi_avg_gain\":0.0008474176124531459,\"rsi_avg_loss\":0.0009140794200333221,\"rsi\":48},{\"period_id\":\"120m209450\",\"size\":\"120m\",\"time\":1508040000000,\"open\":0.21822,\"high\":0.21883,\"low\":0.21504,\"close\":0.2158,\"volume\":171068.74766762997,\"close_time\":1508047123237,\"vwap\":0.21717390640123466,\"rsi_avg_gain\":0.0008233728134110806,\"rsi_avg_loss\":0.0009843932215743468,\"rsi\":46},{\"period_id\":\"120m209449\",\"size\":\"120m\",\"time\":1508032800000,\"open\":0.21515,\"high\":0.21987,\"low\":0.215,\"close\":0.21798,\"volume\":220571.05850644,\"close_time\":1508039650535,\"vwap\":0.2172849920005016,\"rsi_avg_gain\":0.0008867091836734714,\"rsi_avg_loss\":0.000892423469387757,\"rsi\":50},{\"period_id\":\"120m209448\",\"size\":\"120m\",\"time\":1508025600000,\"open\":0.21536,\"high\":0.22149,\"low\":0.21386,\"close\":0.21546,\"volume\":707964.3870707101,\"close_time\":1508032798119,\"vwap\":0.21729229413182627,\"rsi_avg_gain\":0.000761071428571431,\"rsi_avg_loss\":0.0009610714285714307,\"rsi\":44},{\"period_id\":\"120m209447\",\"size\":\"120m\",\"time\":1508018400000,\"open\":0.21973,\"high\":0.2205,\"low\":0.2154,\"close\":0.2154,\"volume\":838005.9117413496,\"close_time\":1508025538461,\"vwap\":0.21704207310204005,\"rsi_avg_gain\":0.0008150000000000022,\"rsi_avg_loss\":0.0010350000000000023,\"rsi\":44},{\"period_id\":\"120m209446\",\"size\":\"120m\",\"time\":1508011200000,\"open\":0.21822,\"high\":0.22,\"low\":0.21704,\"close\":0.21983,\"volume\":575111.9319556504,\"close_time\":1508018298035,\"vwap\":0.21975740342956762},{\"period_id\":\"120m209445\",\"size\":\"120m\",\"time\":1508004000000,\"open\":0.2155,\"high\":0.22,\"low\":0.21526,\"close\":0.21822,\"volume\":489996.45826562005,\"close_time\":1508010985727,\"vwap\":0.2191716981742425},{\"period_id\":\"120m209444\",\"size\":\"120m\",\"time\":1507996800000,\"open\":0.216,\"high\":0.21743,\"low\":0.212,\"close\":0.2155,\"volume\":1021218.8540847708,\"close_time\":1508003893718,\"vwap\":0.21480743079122128},{\"period_id\":\"120m209443\",\"size\":\"120m\",\"time\":1507989600000,\"open\":0.21681,\"high\":0.21797,\"low\":0.215,\"close\":0.21592,\"volume\":713933.1875201706,\"close_time\":1507996716287,\"vwap\":0.21576159824119892},{\"period_id\":\"120m209442\",\"size\":\"120m\",\"time\":1507982400000,\"open\":0.21846,\"high\":0.21995,\"low\":0.2161,\"close\":0.217,\"volume\":510351.39443468006,\"close_time\":1507989592659},{\"period_id\":\"120m209441\",\"size\":\"120m\",\"time\":1507975200000,\"open\":0.2218,\"high\":0.2228,\"low\":0.2158,\"close\":0.21846,\"volume\":713020.0319770401,\"close_time\":1507982378829},{\"period_id\":\"120m209440\",\"size\":\"120m\",\"time\":1507968000000,\"open\":0.2176,\"high\":0.22378,\"low\":0.21651,\"close\":0.22192,\"volume\":1198865.3822558406,\"close_time\":1507975185432},{\"period_id\":\"120m209439\",\"size\":\"120m\",\"time\":1507960800000,\"open\":0.218,\"high\":0.21895,\"low\":0.215,\"close\":0.2175,\"volume\":647635.7473931103,\"close_time\":1507967986898},{\"period_id\":\"120m209438\",\"size\":\"120m\",\"time\":1507953600000,\"open\":0.21942,\"high\":0.22366,\"low\":0.21801,\"close\":0.21801,\"volume\":153208.56479699002,\"close_time\":1507960794466},{\"period_id\":\"120m209437\",\"size\":\"120m\",\"time\":1507946400000,\"open\":0.22138,\"high\":0.2238,\"low\":0.21948,\"close\":0.2205,\"volume\":371646.62039033975,\"close_time\":1507953503013},{\"period_id\":\"120m209436\",\"size\":\"120m\",\"time\":1507939200000,\"open\":0.2183,\"high\":0.22139,\"low\":0.21761,\"close\":0.22123,\"volume\":335889.88883946976,\"close_time\":1507946329960},{\"period_id\":\"120m209435\",\"size\":\"120m\",\"time\":1507932000000,\"open\":0.21462,\"high\":0.219,\"low\":0.2146,\"close\":0.21761,\"volume\":342086.37947635003,\"close_time\":1507939166270},{\"period_id\":\"120m209434\",\"size\":\"120m\",\"time\":1507924800000,\"open\":0.217,\"high\":0.21762,\"low\":0.211,\"close\":0.21549,\"volume\":806460.19144003,\"close_time\":1507931994857}];\nvar trades = [{\"time\":1508826388445,\"execution_time\":8901003,\"slippage\":0.0004499999999998817,\"type\":\"buy\",\"size\":\"4125.00000000\",\"fee\":6.446511627904,\"price\":\"0.16807560\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1508946687470,\"execution_time\":13912023,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3982.39702325\",\"fee\":1.1018314486623841,\"price\":\"0.17292215\",\"order_type\":\"maker\"},{\"time\":1509036685937,\"execution_time\":31913840,\"slippage\":0.0004499999999999014,\"type\":\"buy\",\"size\":\"4088.66837393\",\"fee\":6.541869398288001,\"price\":\"0.17207740\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509085015846,\"execution_time\":1066342,\"slippage\":0.00045020259116602474,\"type\":\"sell\",\"size\":\"4081.12920972\",\"fee\":1.1356750881186541,\"price\":\"0.17392170\",\"order_type\":\"maker\"},{\"time\":1509223193040,\"execution_time\":31329070,\"slippage\":0.00045020259116602474,\"type\":\"sell\",\"size\":\"40.81129210\",\"fee\":0.011356750881965713,\"price\":\"0.17392170\",\"order_type\":\"maker\"},{\"time\":1509308060275,\"execution_time\":1021103,\"slippage\":0.00045000000000006276,\"type\":\"buy\",\"size\":\"4183.09707698\",\"fee\":6.61558011712,\"price\":\"0.17107695\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509567002437,\"execution_time\":101484524,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4087.24888607\",\"fee\":1.143914694739955,\"price\":\"0.17492125\",\"order_type\":\"maker\"},{\"time\":1509671719179,\"execution_time\":4548785,\"slippage\":0.00045000000000006276,\"type\":\"buy\",\"size\":\"4220.40720379\",\"fee\":6.309854704687999,\"price\":\"0.17107695\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509877509431,\"execution_time\":44728427,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3938.84833123\",\"fee\":1.1023812378546651,\"price\":\"0.17492125\",\"order_type\":\"maker\"},{\"time\":1509971478859,\"execution_time\":1888360,\"slippage\":0.0004500000000000853,\"type\":\"buy\",\"size\":\"4151.26650320\",\"fee\":6.604711650032001,\"price\":\"0.17707965\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509998539571,\"execution_time\":168172,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4119.51515224\",\"fee\":1.152945183718018,\"price\":\"0.17492125\",\"order_type\":\"maker\"},{\"time\":1510040563611,\"execution_time\":34967352,\"slippage\":0.00045000000000007794,\"type\":\"buy\",\"size\":\"4133.44183337\",\"fee\":6.651515593935999,\"price\":\"0.17507875\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510307860202,\"execution_time\":7149662,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4150.23542483\",\"fee\":1.234554262901315,\"price\":\"0.18591630\",\"order_type\":\"maker\"},{\"time\":1510574825042,\"execution_time\":433078,\"slippage\":0.00045000000000007046,\"type\":\"buy\",\"size\":\"4424.57823060\",\"fee\":7.0793251689600005,\"price\":\"0.17307785\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510597666573,\"execution_time\":1725458,\"slippage\":0.00045020259116602474,\"type\":\"sell\",\"size\":\"4414.82627063\",\"fee\":1.2285345443082076,\"price\":\"0.17392170\",\"order_type\":\"maker\"},{\"time\":1510627469334,\"execution_time\":2685088,\"slippage\":0.00044999999999991087,\"type\":\"buy\",\"size\":\"4403.75293994\",\"fee\":7.005741819888,\"price\":\"0.17407830\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510839233076,\"execution_time\":5664999,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4372.01532936\",\"fee\":1.244589648317117,\"price\":\"0.17791990\",\"order_type\":\"maker\"},{\"time\":1510840937071,\"execution_time\":140659,\"slippage\":0.00044999999999994534,\"type\":\"buy\",\"size\":\"3580.34687596\",\"fee\":5.754953872512,\"price\":\"0.21809810\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510977729125,\"execution_time\":189173,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3598.90045758\",\"fee\":1.0878177599979246,\"price\":\"0.18891495\",\"order_type\":\"maker\"},{\"time\":1511042739859,\"execution_time\":43580032,\"slippage\":0.00044999999999998356,\"type\":\"buy\",\"size\":\"3538.77097274\",\"fee\":5.574476336448001,\"price\":\"0.19108595\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511079098082,\"execution_time\":735225,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3479.67750617\",\"fee\":1.0684758992769707,\"price\":\"0.19191360\",\"order_type\":\"maker\"},{\"time\":1511085850686,\"execution_time\":255022,\"slippage\":0.00044999999999998747,\"type\":\"buy\",\"size\":\"3525.37440853\",\"fee\":5.640599053648,\"price\":\"0.19208640\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511335493846,\"execution_time\":26733649,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3519.33324645\",\"fee\":1.1256798548765117,\"price\":\"0.19991000\",\"order_type\":\"maker\"},{\"time\":1511369757161,\"execution_time\":32409755,\"slippage\":0.00045000000000001706,\"type\":\"buy\",\"size\":\"3509.33579791\",\"fee\":5.559343838272,\"price\":\"0.20009000\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511512179066,\"execution_time\":1779671,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3469.53358199\",\"fee\":1.1263974004020083,\"price\":\"0.20290865\",\"order_type\":\"maker\"},{\"time\":1511598864424,\"execution_time\":17747800,\"slippage\":0.0004499999999998834,\"type\":\"buy\",\"size\":\"3512.03976095\",\"fee\":5.61926361752,\"price\":\"0.20209090\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511725112176,\"execution_time\":5941921,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3506.05162818\",\"fee\":1.1494674408227206,\"price\":\"0.20490775\",\"order_type\":\"maker\"},{\"time\":1511775993705,\"execution_time\":6395291,\"slippage\":0.0004500000000000276,\"type\":\"buy\",\"size\":\"3531.39544129\",\"fee\":5.650232706064,\"price\":\"0.20309135\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511778666840,\"execution_time\":1958519,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3525.54827278\",\"fee\":1.161497801388469,\"price\":\"0.20590730\",\"order_type\":\"maker\"},{\"time\":1511785762870,\"execution_time\":1779904,\"slippage\":0.0004500000000000276,\"type\":\"buy\",\"size\":\"3568.35589895\",\"fee\":5.70936943832,\"price\":\"0.20309135\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511985716807,\"execution_time\":117843,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3562.27554694\",\"fee\":1.1394152073420403,\"price\":\"0.19991000\",\"order_type\":\"maker\"},{\"time\":1512138371222,\"execution_time\":1572711,\"slippage\":0.0004499999999999077,\"type\":\"buy\",\"size\":\"3417.33745837\",\"fee\":5.4941541359679995,\"price\":\"0.20809360\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512338626571,\"execution_time\":229790,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3429.69141450\",\"fee\":1.1189475246178384,\"price\":\"0.20390820\",\"order_type\":\"maker\"},{\"time\":1512388708776,\"execution_time\":7225159,\"slippage\":0.00045000000000003436,\"type\":\"buy\",\"size\":\"3388.44577032\",\"fee\":5.421513232512,\"price\":\"0.20509225\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512454316406,\"execution_time\":762262,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3383.49092866\",\"fee\":1.1146967707117972,\"price\":\"0.20590730\",\"order_type\":\"maker\"},{\"time\":1512699360458,\"execution_time\":995610,\"slippage\":0.0004500000000000276,\"type\":\"buy\",\"size\":\"3424.88636757\",\"fee\":5.589965287359999,\"price\":\"0.20309135\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512713336701,\"execution_time\":545912,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3487.09186521\",\"fee\":1.0763294016912583,\"price\":\"0.19291315\",\"order_type\":\"maker\"},{\"time\":1512736814119,\"execution_time\":2425231,\"slippage\":0.00044999999999999126,\"type\":\"buy\",\"size\":\"3407.84790611\",\"fee\":5.3690991500320004,\"price\":\"0.19308685\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512851444171,\"execution_time\":1864903,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3351.68560957\",\"fee\":1.0666964685729488,\"price\":\"0.19891045\",\"order_type\":\"maker\"},{\"time\":1512869814441,\"execution_time\":5823423,\"slippage\":0.00045000000000000985,\"type\":\"buy\",\"size\":\"3410.18899080\",\"fee\":5.540245498896001,\"price\":\"0.19808910\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512881477014,\"execution_time\":3087977,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3456.05891549\",\"fee\":1.0612235332540505,\"price\":\"0.19191360\",\"order_type\":\"maker\"},{\"time\":1512916168500,\"execution_time\":1775353,\"slippage\":0.0004500000000000062,\"type\":\"buy\",\"size\":\"3308.34571675\",\"fee\":5.26661904,\"price\":\"0.19708865\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512921739597,\"execution_time\":149154,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3288.06716731\",\"fee\":1.0201567715110944,\"price\":\"0.19391270\",\"order_type\":\"maker\"},{\"time\":1512988276878,\"execution_time\":9281481,\"slippage\":0.0004500000000000062,\"type\":\"buy\",\"size\":\"3247.20468622\",\"fee\":5.117594585472,\"price\":\"0.19708865\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"price\":0.3935,\"size\":\"3226.59182100\",\"type\":\"sell\",\"time\":1513173600000}];\n\nwithData(data, trades)\n  </script>\n  <pre><code>{\n  \"asset_capital\": 0,\n  \"avg_slippage_pct\": 0.045,\n  \"buy_pct\": 99,\n  \"buy_stop_pct\": 0,\n  \"currency_capital\": 700,\n  \"days\": 60,\n  \"emalen1\": 30,\n  \"filename\": \"simulations/vwapmax500.html\",\n  \"markdown_buy_pct\": 0.5,\n  \"markup_sell_pct\": 0.5,\n  \"max_sell_loss_pct\": 25,\n  \"max_slippage_pct\": \"100\",\n  \"min_periods\": 1,\n  \"mode\": \"sim\",\n  \"order_adjust_time\": 5000,\n  \"order_type\": \"maker\",\n  \"period\": \"120m\",\n  \"profit_stop_enable_pct\": 0,\n  \"profit_stop_pct\": 1,\n  \"rsi_periods\": 14,\n  \"selector\": \"kraken.XXRP-ZEUR\",\n  \"sell_pct\": 99,\n  \"sell_stop_pct\": 0,\n  \"show_options\": true,\n  \"smalen1\": 108,\n  \"smalen2\": 60,\n  \"start\": 1507939200000,\n  \"stats\": false,\n  \"strategy\": \"crossover_vwap\",\n  \"verbose\": false,\n  \"vwap_length\": 10,\n  \"vwap_max\": 500\n}\nend balance: 1285.43743401 (83.63%)\nbuy hold: 1261.79569400 (80.26%)\nvs. buy hold: 1.87%\n45 trades over 62 days (avg 0.73 trades/day)\nwin/loss: 16/7\nerror rate: 30.43%</pre></code>\n</body>\n</html>"
  },
  {
    "path": "extensions/strategies/crossover_vwap/example_sims/vwapmax5000.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <title>kraken.XXRP-ZEUR - zenbot 4.0.5 sim result</title>\n  <link href=\"main.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n  <div class=\"ticker-graph\"></div>\n  <script src=\"https://code.jquery.com/jquery-3.0.0.slim.min.js\"></script>\n  <script src=\"https://d3js.org/d3.v4.min.js\"></script>\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/techan.js/0.8.0/techan.min.js\"></script>\n  <script>\n    var withData = function (data, trades) {\n      var dim = {\n          width: 1280, height: 520,\n          margin: { top: 20, right: 50, bottom: 20, left: 50 },\n          ohlc: { height: 450 }\n      };\n      dim.plot = {\n          width: dim.width - dim.margin.left - dim.margin.right,\n          height: dim.height - dim.margin.top - dim.margin.bottom\n      };\n\n      var yInit, yPercentInit, zoomableInit;\n\n      var x = techan.scale.financetime()\n              .range([0, dim.plot.width]);\n\n      var y = d3.scaleLinear()\n              .range([dim.ohlc.height, 0]);\n\n      var zoom = d3.zoom()\n              .on(\"zoom\", zoomed);\n\n      var yPercent = y.copy();   // Same as y at this stage, will get a different domain later\n\n      var yVolume = d3.scaleLinear()\n              .range([y(0), y(1)]);\n\n      var candlestick = techan.plot.candlestick()\n              .xScale(x)\n              .yScale(y);\n\n      var tradearrow = techan.plot.tradearrow()\n              .xScale(x)\n              .yScale(y)\n              .y(function(d) {\n                  // Display the buy and sell arrows a bit above and below the price, so the price is still visible\n                  if(d.type === 'buy') return y(d.price);\n                  if(d.type === 'sell') return y(d.price);\n                  else \n                    return y(d.price);\n              });\n\n      var ema2 = techan.plot.ema()\n        .xScale(x)\n        .yScale(y);\n\n      var sma0 = techan.plot.sma()\n              .xScale(x)\n              .yScale(y);\n    \n      var sma1 = techan.plot.sma()\n              .xScale(x)\n              .yScale(y);\n    \n      var adx1 = techan.plot.adx()\n              .xScale(x)\n              .yScale(y);\n  \n      var volume = techan.plot.volume()\n              .accessor(candlestick.accessor())   // Set the accessor to a ohlc accessor so we get highlighted bars\n              .xScale(x)\n              .yScale(yVolume);\n\n      var xAxis = d3.axisBottom(x);\n\n      var timeAnnotation = techan.plot.axisannotation()\n              .axis(xAxis)\n              .orient('bottom')\n              .format(d3.timeFormat('%c'))\n              .width(140)\n              .translate([0, dim.plot.height]);\n\n      var yAxis = d3.axisRight(y);\n\n      var ohlcAnnotation = techan.plot.axisannotation()\n              .axis(yAxis)\n              .orient('right')\n              .format(d3.format(',.8f'))\n              .translate([x(1), 0]);\n\n      var percentAxis = d3.axisLeft(yPercent)\n              .tickFormat(d3.format('+.1%'));\n\n      var percentAnnotation = techan.plot.axisannotation()\n              .axis(percentAxis)\n              .orient('left');\n\n      var volumeAxis = d3.axisRight(yVolume)\n              .ticks(3)\n              .tickFormat(d3.format(\",.3s\"));\n\n      var volumeAnnotation = techan.plot.axisannotation()\n              .axis(volumeAxis)\n              .orient(\"right\")\n              .width(35);\n\n      var ohlcCrosshair = techan.plot.crosshair()\n              .xScale(timeAnnotation.axis().scale())\n              .yScale(ohlcAnnotation.axis().scale())\n              .xAnnotation(timeAnnotation)\n              .yAnnotation([ohlcAnnotation, percentAnnotation, volumeAnnotation])\n              .verticalWireRange([0, dim.plot.height]);\n\n      var svg = d3.select(\"body\").append(\"svg\")\n              .attr(\"viewBox\", \"0 0 \" + dim.width + \" \" + dim.height)\n              .attr(\"width\", dim.width)\n              .attr(\"height\", dim.height);\n\n      var defs = svg.append(\"defs\");\n\n      defs.append(\"clipPath\")\n              .attr(\"id\", \"ohlcClip\")\n          .append(\"rect\")\n              .attr(\"x\", 0)\n              .attr(\"y\", 0)\n              .attr(\"width\", dim.plot.width)\n              .attr(\"height\", dim.ohlc.height);\n\n      svg = svg.append(\"g\")\n              .attr(\"transform\", \"translate(\" + dim.margin.left + \",\" + dim.margin.top + \")\");\n\n      svg.append('text')\n              .attr(\"class\", \"symbol\")\n              .attr(\"x\", 50)\n              .text(\"kraken.XXRP-ZEUR - zenbot 4.0.5\");\n\n      svg.append(\"g\")\n              .attr(\"class\", \"x axis\")\n              .attr(\"transform\", \"translate(0,\" + (dim.plot.height - 30) + \")\");\n\n      var ohlcSelection = svg.append(\"g\")\n              .attr(\"class\", \"ohlc\")\n              .attr(\"transform\", \"translate(0,0)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"axis\")\n              .attr(\"transform\", \"translate(\" + x(1) + \",0)\")\n          .append(\"text\")\n              .attr(\"transform\", \"rotate(-90)\")\n              .attr(\"y\", -12)\n              .attr(\"dy\", \".71em\")\n              .style(\"text-anchor\", \"end\")\n              .text(\"Price\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"close annotation up\")\n              .attr(\"font-weight\", \"900\")\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"volume\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"candlestick\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator ema ma-2\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator sma sma-0\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator sma sma-1\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n          \n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"indicator adx adx-1\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line1\")\n                .attr(\"class\", \"indicator ema ma-2\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line2\")\n                .attr(\"class\", \"indicator sma sma-0\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      svg.append(\"g\")\n                .attr(\"id\", \"data_line3\")\n                .attr(\"class\", \"indicator sma sma-1\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n            \n      svg.append(\"g\")\n                .attr(\"id\", \"data_line4\")\n                .attr(\"class\", \"indicator indicator4\")\n                .append(\"path\")\n                .attr(\"class\", \"line\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"percent axis\");\n\n      ohlcSelection.append(\"g\")\n              .attr(\"class\", \"volume axis\");\n\n      // Add trendlines and other interactions last to be above zoom pane\n      svg.append('g')\n              .attr(\"class\", \"crosshair ohlc\");\n\n      svg.append(\"g\")\n              .attr(\"class\", \"tradearrow\")\n              .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n      var accessor = candlestick.accessor();\n\n      data = data.map(function (d) {\n        d.date = new Date(d.time)\n        return d\n      })\n      data.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n      trades = trades.map(function (t) {\n        t.date = new Date(t.time)\n        return t\n      })\n      trades.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n\n      //$('body').css('backgroundColor', '#1f2d35')\n      x.domain(techan.scale.plot.time(data).domain());\n      y.domain(techan.scale.plot.ohlc(data).domain());\n      yPercent.domain(techan.scale.plot.percent(y, accessor(data[0])).domain());\n      yVolume.domain(techan.scale.plot.volume(data).domain());\n\n      svg.select(\"g.candlestick\").datum(data)\n      var last = data[data.length-1]\n      if (!last) {\n        return\n      }\n  \n      var parseQueryString = function(url) {\n        var urlParams = {};\n        url.replace(\n          new RegExp(\"([^?=&]+)(=([^&]*))?\", \"g\"),\n          function($0, $1, $2, $3) {\n            urlParams[$1] = $3;\n          }\n        );\n\n        return urlParams;\n      }\n  \n      var urlToParse = location.search;  \n      var qParams = parseQueryString(urlToParse ); \n  \n      var tperiod = qParams.period;\n  \n      svg.select(\"g.volume\").datum(data)\n  \n      // svg.select(\"g.ema.ma-2\").datum(techan.indicator.ema().period(tperiod*2)(data)).call(ema2);\n      // svg.select(\"g.sma.sma-0\").datum(techan.indicator.sma().period(tperiod*2)(data)).call(sma0);\n      // svg.select(\"g.sma.sma-1\").datum(techan.indicator.sma().period(tperiod)(data)).call(sma1);\n  \n      // svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1);\n      // svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2);\n      // svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3);\n      //\n  \n        \n      var plotLine1 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.ema1); });\n\n      var plotLine2 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.sma1); });\n\n      var plotLine3 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.sma2); });\n          \n      var plotLine4 = d3.line()\n              .defined(function(d) { return !isNaN(d.ema1) && !isNaN(d.sma1) && !isNaN(d.sma2) && !isNaN(d.vwap); })\n              .x(function(d) { return x(d.date); })\n              .y(function(d) { return y(d.vwap); });\n        \n        \n      svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1);\n      svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2);\n      svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3);\n      svg.select(\"g#data_line4 path\").datum(data).attr(\"d\", plotLine4);\n      //svg.select(\"g.adx.adx-1\").datum(techan.indicator.adx().period(tperiod)(data)).call(adx1);\n  \n      svg.select(\"g.tradearrow\").datum(trades).call(tradearrow);\n  \n      // Stash for zooming\n      zoomableInit = x.zoomable().domain([0, data.length]).copy(); // Zoom in a little to hide indicator preroll\n      yInit = y.copy();\n      yPercentInit = yPercent.copy();\n\n      draw();\n\n      function draw() {\n        svg.select(\"g.x.axis\").call(xAxis);\n        svg.select(\"g.ohlc .axis\").call(yAxis);\n        svg.select(\"g.volume.axis\").call(volumeAxis);\n        svg.select(\"g.percent.axis\").call(percentAxis);\n        svg.select(\"g.candlestick\").call(candlestick);\n        svg.select(\"g.volume\").call(volume);\n        svg.select(\"g.crosshair.ohlc\").call(ohlcCrosshair).call(zoom);\n        svg.select(\"g.tradearrow\").call(tradearrow);\n        // svg.select(\"g .ema.ma-2\").call(ema2.refresh).call(zoom);\n        // svg.select(\"g .sma.sma-0\").call(sma0.refresh).call(zoom);\n        // svg.select(\"g .sma.sma-1\").call(sma1.refresh).call(zoom);\n        // svg.select(\"g .adx.adx-1\").call(adx1.refresh).call(zoom);\n    \n        svg.select(\"g#data_line1 path\").datum(data).attr(\"d\", plotLine1).call(zoom);\n        svg.select(\"g#data_line2 path\").datum(data).attr(\"d\", plotLine2).call(zoom);\n        svg.select(\"g#data_line3 path\").datum(data).attr(\"d\", plotLine3).call(zoom);\n        svg.select(\"g#data_line4 path\").datum(data).attr(\"d\", plotLine4).call(zoom);\n      }\n\n\n      function zoomed() {\n        x.zoomable().domain(d3.event.transform.rescaleX(zoomableInit).domain());\n        y.domain(d3.event.transform.rescaleY(yInit).domain());\n        yPercent.domain(d3.event.transform.rescaleY(yPercentInit).domain());\n\n        draw();\n      }\n  \n      if(!qParams.static)\n        setTimeout(function(){ window.location.reload(1); }, 10000);\n    }\n  </script>\n  <script>\nvar data = [{\"period_id\":\"120m210163\",\"size\":\"120m\",\"time\":1513173600000,\"open\":0.3875,\"high\":0.399,\"low\":0.3812,\"close\":0.3935,\"volume\":1394606.5288537226,\"close_time\":1513174686001,\"vwap\":0.3866177135788256,\"ema1\":0.27287274681999496,\"sma1\":0.2141562685185185,\"sma2\":0.22013291666666668},{\"period_id\":\"120m210162\",\"size\":\"120m\",\"time\":1513166400000,\"open\":0.38999,\"high\":0.395,\"low\":0.371,\"close\":0.3875,\"volume\":2764537.296713162,\"close_time\":1513173592543,\"vwap\":0.38420636181408735,\"ema1\":0.2645536259110291,\"sma1\":0.21242386111111108,\"sma2\":0.21690791666666667,\"rsi_avg_gain\":0.009856092175262298,\"rsi_avg_loss\":0.000811144798512558,\"rsi\":92},{\"period_id\":\"120m210161\",\"size\":\"120m\",\"time\":1513159200000,\"open\":0.37499,\"high\":0.39,\"low\":0.35,\"close\":0.38331,\"volume\":4774045.706226606,\"close_time\":1513166399125,\"vwap\":0.37851761379064397,\"ema1\":0.2560745656290311,\"sma1\":0.21074265740740744,\"sma2\":0.21373625000000002,\"rsi_avg_gain\":0.010291945419513242,\"rsi_avg_loss\":0.0008735405522442933,\"rsi\":92},{\"period_id\":\"120m210160\",\"size\":\"120m\",\"time\":1513152000000,\"open\":0.365,\"high\":0.43,\"low\":0.362,\"close\":0.37037,\"volume\":10615001.811561493,\"close_time\":1513159196158,\"vwap\":0.37798259912124355,\"ema1\":0.24729970808620566,\"sma1\":0.20869450925925928,\"sma2\":0.21075141666666672,\"rsi_avg_gain\":0.010088248913321952,\"rsi_avg_loss\":0.0009407359793400081,\"rsi\":91},{\"period_id\":\"120m210159\",\"size\":\"120m\",\"time\":1513144800000,\"open\":0.31155,\"high\":0.3799,\"low\":0.30039,\"close\":0.36201,\"volume\":7383654.496617741,\"close_time\":1513151997966,\"vwap\":0.3502644622992554,\"ema1\":0.23881210174732329,\"sma1\":0.20709302777777777,\"sma2\":0.2079064166666667,\"rsi_avg_gain\":0.010221191137423641,\"rsi_avg_loss\":0.0010131002854430857,\"rsi\":91},{\"period_id\":\"120m210158\",\"size\":\"120m\",\"time\":1513137600000,\"open\":0.28467,\"high\":0.319,\"low\":0.28201,\"close\":0.3084,\"volume\":1939410.0138247905,\"close_time\":1513144797985,\"vwap\":0.30604862707449937,\"ema1\":0.2303156949712766,\"sma1\":0.2060463611111111,\"sma2\":0.2061830833333334,\"rsi_avg_gain\":0.006883590455686998,\"rsi_avg_loss\":0.0010910310766310155,\"rsi\":86},{\"period_id\":\"120m210157\",\"size\":\"120m\",\"time\":1513130400000,\"open\":0.2981,\"high\":0.3,\"low\":0.27671,\"close\":0.28923,\"volume\":1470804.7478552302,\"close_time\":1513137551841,\"vwap\":0.28183098567014264,\"ema1\":0.22493057048653706,\"sma1\":0.20516673148148146,\"sma2\":0.20477208333333338,\"rsi_avg_gain\":0.005938482029201381,\"rsi_avg_loss\":0.0011749565440641705,\"rsi\":83},{\"period_id\":\"120m210156\",\"size\":\"120m\",\"time\":1513123200000,\"open\":0.27601,\"high\":0.29897,\"low\":0.27,\"close\":0.298,\"volume\":3115674.8552143956,\"close_time\":1513130393652,\"vwap\":0.2939331693738823,\"ema1\":0.22049612707181548,\"sma1\":0.20430552777777777,\"sma2\":0.20283875000000007,\"rsi_avg_gain\":0.006395288339139949,\"rsi_avg_loss\":0.0005907224320691066,\"rsi\":92},{\"period_id\":\"120m210155\",\"size\":\"120m\",\"time\":1513116000000,\"open\":0.272,\"high\":0.32956,\"low\":0.272,\"close\":0.27601,\"volume\":15006128.73051956,\"close_time\":1513123194998,\"vwap\":0.2942143397994299,\"ema1\":0.2151510323871131,\"sma1\":0.2032051574074074,\"sma2\":0.20133858333333338,\"rsi_avg_gain\":0.005195695134458405,\"rsi_avg_loss\":0.0006361626191513457,\"rsi\":89},{\"period_id\":\"120m210154\",\"size\":\"120m\",\"time\":1513108800000,\"open\":0.22885,\"high\":0.271965,\"low\":0.2287,\"close\":0.271965,\"volume\":13060193.335544836,\"close_time\":1513115999358,\"vwap\":0.26070947392354976,\"ema1\":0.210953862206914,\"sma1\":0.20263140740740743,\"sma2\":0.19982250000000004,\"rsi_avg_gain\":0.005284210144801362,\"rsi_avg_loss\":0.0006850982052399108,\"rsi\":89},{\"period_id\":\"120m210153\",\"size\":\"120m\",\"time\":1513101600000,\"open\":0.226,\"high\":0.22885,\"low\":0.222,\"close\":0.22885,\"volume\":2796097.9907069877,\"close_time\":1513108799425,\"vwap\":0.22493366867799708,\"ema1\":0.20674619753152876,\"sma1\":0.20245687037037038,\"sma2\":0.19904166666666667,\"rsi_avg_gain\":0.0023741493867091576,\"rsi_avg_loss\":0.0007377980671814424,\"rsi\":76},{\"period_id\":\"120m210152\",\"size\":\"120m\",\"time\":1513094400000,\"open\":0.21948,\"high\":0.228,\"low\":0.2161,\"close\":0.22503,\"volume\":6439607.943355674,\"close_time\":1513101587721,\"vwap\":0.22398773782413645,\"ema1\":0.20522179736128937,\"sma1\":0.2023068703703704,\"sma2\":0.19840783333333334,\"rsi_avg_gain\":0.002262930108763709,\"rsi_avg_loss\":0.0007945517646569379,\"rsi\":74},{\"period_id\":\"120m210151\",\"size\":\"120m\",\"time\":1513087200000,\"open\":0.2171,\"high\":0.2199,\"low\":0.21,\"close\":0.21989,\"volume\":2382252.81933436,\"close_time\":1513094394487,\"vwap\":0.21640600684835767,\"ema1\":0.20385571442068864,\"sma1\":0.20224298148148154,\"sma2\":0.19788466666666665,\"rsi_avg_gain\":0.002041617040207071,\"rsi_avg_loss\":0.0008556711311690101,\"rsi\":70},{\"period_id\":\"120m210150\",\"size\":\"120m\",\"time\":1513080000000,\"open\":0.2199,\"high\":0.22,\"low\":0.21203,\"close\":0.2171,\"volume\":2916612.944391042,\"close_time\":1513087188989,\"vwap\":0.21623808324753135,\"ema1\":0.20274990162211545,\"sma1\":0.20214483333333336,\"sma2\":0.19739133333333334,\"rsi_avg_gain\":0.0019840491202229985,\"rsi_avg_loss\":0.0009214919874127801,\"rsi\":68},{\"period_id\":\"120m210149\",\"size\":\"120m\",\"time\":1513072800000,\"open\":0.21318,\"high\":0.2199,\"low\":0.21048,\"close\":0.2199,\"volume\":2803692.7908667373,\"close_time\":1513079996977,\"vwap\":0.21545324326696844,\"ema1\":0.20176023966501996,\"sma1\":0.20203464814814817,\"sma2\":0.19681183333333332,\"rsi_avg_gain\":0.0021366682833170755,\"rsi_avg_loss\":0.0007769913710599151,\"rsi\":73},{\"period_id\":\"120m210148\",\"size\":\"120m\",\"time\":1513065600000,\"open\":0.20682,\"high\":0.2147,\"low\":0.20681,\"close\":0.2139,\"volume\":2409213.2365118363,\"close_time\":1513072781584,\"vwap\":0.2129281095443014,\"ema1\":0.2005092217108834,\"sma1\":0.20197261111111112,\"sma2\":0.19634699999999997,\"rsi_avg_gain\":0.0018394889204953115,\"rsi_avg_loss\":0.000836759938064524,\"rsi\":69},{\"period_id\":\"120m210147\",\"size\":\"120m\",\"time\":1513058400000,\"open\":0.209,\"high\":0.2099,\"low\":0.205,\"close\":0.20682,\"volume\":761639.33327307,\"close_time\":1513065594627,\"vwap\":0.20532303205136604,\"ema1\":0.19958571975990982,\"sma1\":0.201949,\"sma2\":0.1961045,\"rsi_avg_gain\":0.0014363726836103352,\"rsi_avg_loss\":0.0009011260871464106,\"rsi\":61},{\"period_id\":\"120m210146\",\"size\":\"120m\",\"time\":1513051200000,\"open\":0.2013,\"high\":0.21124,\"low\":0.19611,\"close\":0.20898,\"volume\":2402623.3937815027,\"close_time\":1513058363795,\"vwap\":0.2051368659845528,\"ema1\":0.19908680388128291,\"sma1\":0.20189224074074075,\"sma2\":0.19572866666666663,\"rsi_avg_gain\":0.0015468628900418995,\"rsi_avg_loss\":0.0008042896323115195,\"rsi\":66},{\"period_id\":\"120m210145\",\"size\":\"120m\",\"time\":1513044000000,\"open\":0.20056,\"high\":0.2015,\"low\":0.19804,\"close\":0.20129,\"volume\":182878.24229903996,\"close_time\":1513051003700,\"vwap\":0.2019389940284382,\"ema1\":0.19840451449378518,\"sma1\":0.20193853703703699,\"sma2\":0.19548216666666668,\"rsi_avg_gain\":0.001074313881583584,\"rsi_avg_loss\":0.0008661580655662517,\"rsi\":55},{\"period_id\":\"120m210144\",\"size\":\"120m\",\"time\":1513036800000,\"open\":0.2018,\"high\":0.203,\"low\":0.1961,\"close\":0.19999,\"volume\":1030371.8747069496,\"close_time\":1513043937932,\"vwap\":0.20197661289963575,\"ema1\":0.19820551549335658,\"sma1\":0.2019912222222222,\"sma2\":0.19529933333333332,\"rsi_avg_gain\":0.0010569534109361677,\"rsi_avg_loss\":0.0009327856090713479,\"rsi\":53},{\"period_id\":\"120m210143\",\"size\":\"120m\",\"time\":1513029600000,\"open\":0.20101,\"high\":0.202,\"low\":0.2,\"close\":0.2018,\"volume\":1521322.558584841,\"close_time\":1513036796088,\"vwap\":0.20236139072552006,\"ema1\":0.1980824475963467,\"sma1\":0.20204677777777771,\"sma2\":0.19518599999999997,\"rsi_avg_gain\":0.0011382575194697191,\"rsi_avg_loss\":0.0008653075789999126,\"rsi\":57},{\"period_id\":\"120m210142\",\"size\":\"120m\",\"time\":1513022400000,\"open\":0.202,\"high\":0.202,\"low\":0.2,\"close\":0.20119,\"volume\":978930.4729250503,\"close_time\":1513029582354,\"vwap\":0.2028440761141871,\"ema1\":0.1978260646719568,\"sma1\":0.20209788888888885,\"sma2\":0.19512699999999997,\"rsi_avg_gain\":0.0011788927132750822,\"rsi_avg_loss\":0.0009318697004614445,\"rsi\":56},{\"period_id\":\"120m210141\",\"size\":\"120m\",\"time\":1513015200000,\"open\":0.203,\"high\":0.20773,\"low\":0.20001,\"close\":0.202,\"volume\":1492537.8041972315,\"close_time\":1513022380076,\"vwap\":0.20322175351053337,\"ema1\":0.19759406913209174,\"sma1\":0.20210038888888884,\"sma2\":0.1950686666666666,\"rsi_avg_gain\":0.0012695767681423962,\"rsi_avg_loss\":0.0009412442928046321,\"rsi\":57},{\"period_id\":\"120m210140\",\"size\":\"120m\",\"time\":1513008000000,\"open\":0.20474,\"high\":0.206,\"low\":0.2021,\"close\":0.204,\"volume\":1342877.567555539,\"close_time\":1513015199565,\"vwap\":0.20393205154489089,\"ema1\":0.19729021183085668,\"sma1\":0.20212631481481477,\"sma2\":0.19500033333333328,\"rsi_avg_gain\":0.001367236519537965,\"rsi_avg_loss\":0.0008598015460972981,\"rsi\":61},{\"period_id\":\"120m210139\",\"size\":\"120m\",\"time\":1513000800000,\"open\":0.20238,\"high\":0.2049,\"low\":0.20083,\"close\":0.20486,\"volume\":1091793.7951348608,\"close_time\":1513007991071,\"vwap\":0.2000955702207946,\"ema1\":0.19682746781919164,\"sma1\":0.20216798148148143,\"sma2\":0.1948854999999999,\"rsi_avg_gain\":0.0014724085595024237,\"rsi_avg_loss\":0.0008597862804124749,\"rsi\":63},{\"period_id\":\"120m210138\",\"size\":\"120m\",\"time\":1512993600000,\"open\":0.20099,\"high\":0.205,\"low\":0.2003984,\"close\":0.20214,\"volume\":2245705.2988893474,\"close_time\":1513000786065,\"vwap\":0.19953880593488285,\"ema1\":0.19627350008258415,\"sma1\":0.20222353703703697,\"sma2\":0.1948279999999999,\"rsi_avg_gain\":0.0013764399871564563,\"rsi_avg_loss\":0.0009259236865980498,\"rsi\":60},{\"period_id\":\"120m210137\",\"size\":\"120m\",\"time\":1512986400000,\"open\":0.20054,\"high\":0.2025,\"low\":0.1996,\"close\":0.201,\"volume\":1180345.4121488596,\"close_time\":1512993538146,\"vwap\":0.19686811501299314,\"ema1\":0.19586891388138306,\"sma1\":0.20230224074074066,\"sma2\":0.1947621666666666,\"rsi_avg_gain\":0.0013946276784761857,\"rsi_avg_loss\":0.0009971485855671306,\"rsi\":58},{\"period_id\":\"120m210136\",\"size\":\"120m\",\"time\":1512979200000,\"open\":0.19841,\"high\":0.202,\"low\":0.19696,\"close\":0.2012,\"volume\":1455140.9476323111,\"close_time\":1512986398978,\"vwap\":0.19564646988052292,\"ema1\":0.19551504587320256,\"sma1\":0.20237622222222212,\"sma2\":0.1947051666666666,\"rsi_avg_gain\":0.0015019067306666614,\"rsi_avg_loss\":0.0010584677075338347,\"rsi\":59},{\"period_id\":\"120m210135\",\"size\":\"120m\",\"time\":1512972000000,\"open\":0.1955,\"high\":0.199,\"low\":0.19447,\"close\":0.19841,\"volume\":600052.8410154001,\"close_time\":1512978995397,\"vwap\":0.19196824891514658,\"ema1\":0.19512298007135448,\"sma1\":0.20247418518518506,\"sma2\":0.1947016666666666,\"rsi_avg_gain\":0.0014028226330256362,\"rsi_avg_loss\":0.0011398883004210528,\"rsi\":55},{\"period_id\":\"120m210134\",\"size\":\"120m\",\"time\":1512964800000,\"open\":0.19194,\"high\":0.19676,\"low\":0.19102,\"close\":0.19601,\"volume\":539611.00519656,\"close_time\":1512971904794,\"vwap\":0.1912676024699017,\"ema1\":0.1948962890417927,\"sma1\":0.2025927037037036,\"sma2\":0.1948064999999999,\"rsi_avg_gain\":0.001326116681719915,\"rsi_avg_loss\":0.0012275720158380567,\"rsi\":52},{\"period_id\":\"120m210133\",\"size\":\"120m\",\"time\":1512957600000,\"open\":0.1897,\"high\":0.19214,\"low\":0.1895,\"close\":0.19205,\"volume\":441306.56720423984,\"close_time\":1512964362686,\"vwap\":0.1908716297238458,\"ema1\":0.19481948138950256,\"sma1\":0.20278214814814804,\"sma2\":0.19496699999999995,\"rsi_avg_gain\":0.0011235102726214474,\"rsi_avg_loss\":0.0013220006324409842,\"rsi\":46},{\"period_id\":\"120m210132\",\"size\":\"120m\",\"time\":1512950400000,\"open\":0.18952,\"high\":0.19378,\"low\":0.18952,\"close\":0.18971,\"volume\":431192.4742363398,\"close_time\":1512957565944,\"vwap\":0.190866231446554,\"ema1\":0.19501048010601998,\"sma1\":0.2029786296296295,\"sma2\":0.19519916666666662,\"rsi_avg_gain\":0.0010299341397461733,\"rsi_avg_loss\":0.0014236929887825984,\"rsi\":42},{\"period_id\":\"120m210131\",\"size\":\"120m\",\"time\":1512943200000,\"open\":0.19185,\"high\":0.19429,\"low\":0.18951,\"close\":0.18952,\"volume\":784356.8331573796,\"close_time\":1512950356364,\"vwap\":0.19088792644437855,\"ema1\":0.1953760304581593,\"sma1\":0.20314594444444437,\"sma2\":0.1954546666666666,\"rsi_avg_gain\":0.001094544458188187,\"rsi_avg_loss\":0.0015332078340735676,\"rsi\":42},{\"period_id\":\"120m210130\",\"size\":\"120m\",\"time\":1512936000000,\"open\":0.1948,\"high\":0.1949,\"low\":0.19,\"close\":0.19004,\"volume\":1233056.1801976203,\"close_time\":1512943196487,\"vwap\":0.19058362545405874,\"ema1\":0.19577989462768752,\"sma1\":0.20328575925925915,\"sma2\":0.19568766666666662,\"rsi_avg_gain\":0.0011787401857411247,\"rsi_avg_loss\":0.0016111468982330734,\"rsi\":42},{\"period_id\":\"120m210129\",\"size\":\"120m\",\"time\":1512928800000,\"open\":0.1935,\"high\":0.19676,\"low\":0.19301,\"close\":0.19439,\"volume\":387426.0634739798,\"close_time\":1512935995196,\"vwap\":0.19476102968636477,\"ema1\":0.196175749429597,\"sma1\":0.20342687037037027,\"sma2\":0.19583466666666666,\"rsi_avg_gain\":0.0012694125077212111,\"rsi_avg_loss\":0.0014004658904048465,\"rsi\":48},{\"period_id\":\"120m210128\",\"size\":\"120m\",\"time\":1512921600000,\"open\":0.1925,\"high\":0.19867,\"low\":0.192,\"close\":0.1935,\"volume\":746355.7882153098,\"close_time\":1512928784644,\"vwap\":0.19477859689361973,\"ema1\":0.19629890456267265,\"sma1\":0.2035315925925925,\"sma2\":0.19602466666666665,\"rsi_avg_gain\":0.001298598085238227,\"rsi_avg_loss\":0.0015081940358206037,\"rsi\":46},{\"period_id\":\"120m210127\",\"size\":\"120m\",\"time\":1512914400000,\"open\":0.19889,\"high\":0.2,\"low\":0.192,\"close\":0.1925,\"volume\":1304227.7168578205,\"close_time\":1512921590443,\"vwap\":0.1949862604938027,\"ema1\":0.19649193246354663,\"sma1\":0.20368807407407397,\"sma2\":0.19624249999999996,\"rsi_avg_gain\":0.0013215671687180906,\"rsi_avg_loss\":0.0016242089616529576,\"rsi\":45},{\"period_id\":\"120m210126\",\"size\":\"120m\",\"time\":1512907200000,\"open\":0.19353,\"high\":0.19949,\"low\":0.1917,\"close\":0.19868,\"volume\":650525.0708087999,\"close_time\":1512914393147,\"vwap\":0.19484031468869703,\"ema1\":0.19676723815068778,\"sma1\":0.203757611111111,\"sma2\":0.19633949999999994,\"rsi_avg_gain\":0.0014232261816964052,\"rsi_avg_loss\":0.0012737634971647243,\"rsi\":53},{\"period_id\":\"120m210125\",\"size\":\"120m\",\"time\":1512900000000,\"open\":0.19333,\"high\":0.19902,\"low\":0.19,\"close\":0.19385,\"volume\":978565.5069178501,\"close_time\":1512907196740,\"vwap\":0.1946026242557852,\"ema1\":0.19663532354039037,\"sma1\":0.20378575925925915,\"sma2\":0.19652599999999995,\"rsi_avg_gain\":0.0011611666572115132,\"rsi_avg_loss\":0.0013717453046389338,\"rsi\":46},{\"period_id\":\"120m210124\",\"size\":\"120m\",\"time\":1512892800000,\"open\":0.19131,\"high\":0.194,\"low\":0.19,\"close\":0.19341,\"volume\":531661.3797847299,\"close_time\":1512899982936,\"vwap\":0.19562774070894137,\"ema1\":0.19682741481903798,\"sma1\":0.20383964814814806,\"sma2\":0.19673416666666668,\"rsi_avg_gain\":0.0012166410154585531,\"rsi_avg_loss\":0.001477264174226544,\"rsi\":45},{\"period_id\":\"120m210122\",\"size\":\"120m\",\"time\":1512878400000,\"open\":0.191,\"high\":0.19313,\"low\":0.1895,\"close\":0.19301,\"volume\":391477.15581255,\"close_time\":1512882237255,\"vwap\":0.19628671362979752,\"ema1\":0.19706309859966128,\"sma1\":0.2039214999999999,\"sma2\":0.19693149999999998,\"rsi_avg_gain\":0.00127945955510921,\"rsi_avg_loss\":0.0015908998799362784,\"rsi\":45},{\"period_id\":\"120m210121\",\"size\":\"120m\",\"time\":1512871200000,\"open\":0.195,\"high\":0.19843,\"low\":0.191,\"close\":0.191,\"volume\":822354.6339335999,\"close_time\":1512878389037,\"vwap\":0.19687561734278117,\"ema1\":0.19734262264101723,\"sma1\":0.20394529629629618,\"sma2\":0.19716733333333333,\"rsi_avg_gain\":0.0012232641362714583,\"rsi_avg_loss\":0.0017132767937775306,\"rsi\":42},{\"period_id\":\"120m210120\",\"size\":\"120m\",\"time\":1512864000000,\"open\":0.19926,\"high\":0.19928,\"low\":0.195,\"close\":0.195,\"volume\":575411.43770943,\"close_time\":1512871187661,\"vwap\":0.1979173609430295,\"ema1\":0.19778004489212186,\"sma1\":0.20398992592592582,\"sma2\":0.1973611666666667,\"rsi_avg_gain\":0.001317361377523109,\"rsi_avg_loss\":0.0015373750086834941,\"rsi\":46},{\"period_id\":\"120m210119\",\"size\":\"120m\",\"time\":1512856800000,\"open\":0.2,\"high\":0.20254,\"low\":0.19733,\"close\":0.19929,\"volume\":680314.7565415404,\"close_time\":1512863991018,\"vwap\":0.19825905755902296,\"ema1\":0.1979717721260613,\"sma1\":0.20402974074074068,\"sma2\":0.1975107666666667,\"rsi_avg_gain\":0.0014186968681018097,\"rsi_avg_loss\":0.0013256346247360717,\"rsi\":52},{\"period_id\":\"120m210118\",\"size\":\"120m\",\"time\":1512849600000,\"open\":0.19851,\"high\":0.2,\"low\":0.1953,\"close\":0.2,\"volume\":352961.11425362,\"close_time\":1512856793108,\"vwap\":0.19747800741842159,\"ema1\":0.19788085985889312,\"sma1\":0.2040714074074073,\"sma2\":0.19762693333333337,\"rsi_avg_gain\":0.0015278273964173337,\"rsi_avg_loss\":0.001372991134331153,\"rsi\":53},{\"period_id\":\"120m210117\",\"size\":\"120m\",\"time\":1512842400000,\"open\":0.19541,\"high\":0.19867,\"low\":0.19486,\"close\":0.19799,\"volume\":926232.5305575604,\"close_time\":1512849579268,\"vwap\":0.1970741237832769,\"ema1\":0.19773471226295472,\"sma1\":0.20412631481481475,\"sma2\":0.19777710000000004,\"rsi_avg_gain\":0.001490737196141743,\"rsi_avg_loss\":0.001478605836972011,\"rsi\":50},{\"period_id\":\"120m210116\",\"size\":\"120m\",\"time\":1512835200000,\"open\":0.2025,\"high\":0.2027,\"low\":0.19541,\"close\":0.19541,\"volume\":641413.0257922799,\"close_time\":1512842398360,\"vwap\":0.20043216929289434,\"ema1\":0.19771710621212402,\"sma1\":0.20409103703703693,\"sma2\":0.1979792666666667,\"rsi_avg_gain\":0.001406947749691108,\"rsi_avg_loss\":0.0015923447475083194,\"rsi\":47},{\"period_id\":\"120m210115\",\"size\":\"120m\",\"time\":1512828000000,\"open\":0.2029,\"high\":0.203,\"low\":0.19926,\"close\":0.2025,\"volume\":759955.0663505401,\"close_time\":1512835181045,\"vwap\":0.20053934839461074,\"ema1\":0.19787621698537394,\"sma1\":0.20402622222222214,\"sma2\":0.19804026666666671,\"rsi_avg_gain\":0.001515174499667347,\"rsi_avg_loss\":0.001169448189624343,\"rsi\":56},{\"period_id\":\"120m210114\",\"size\":\"120m\",\"time\":1512820800000,\"open\":0.19915,\"high\":0.203,\"low\":0.1964,\"close\":0.20288,\"volume\":1060196.08788046,\"close_time\":1512827997733,\"vwap\":0.2004288883154767,\"ema1\":0.19755733539815834,\"sma1\":0.2040447407407406,\"sma2\":0.19809226666666674,\"rsi_avg_gain\":0.0016317263842571428,\"rsi_avg_loss\":0.0012301749734416009,\"rsi\":57},{\"period_id\":\"120m210113\",\"size\":\"120m\",\"time\":1512813600000,\"open\":0.19899,\"high\":0.2,\"low\":0.196,\"close\":0.199,\"volume\":1697599.1494401302,\"close_time\":1512820796071,\"vwap\":0.20031040526416585,\"ema1\":0.19719025508078994,\"sma1\":0.20412427777777767,\"sma2\":0.1982202666666667,\"rsi_avg_gain\":0.001458782259969231,\"rsi_avg_loss\":0.0013248038175524934,\"rsi\":52},{\"period_id\":\"120m210112\",\"size\":\"120m\",\"time\":1512806400000,\"open\":0.2015,\"high\":0.20181,\"low\":0.196,\"close\":0.198,\"volume\":1049080.849649,\"close_time\":1512813598514,\"vwap\":0.20055069837923054,\"ema1\":0.19706544508636165,\"sma1\":0.20420474074074063,\"sma2\":0.1983702666666667,\"rsi_avg_gain\":0.0014940732030437874,\"rsi_avg_loss\":0.0014267118035180698,\"rsi\":51},{\"period_id\":\"120m210111\",\"size\":\"120m\",\"time\":1512799200000,\"open\":0.201,\"high\":0.203,\"low\":0.19911,\"close\":0.19931,\"volume\":611834.19321072,\"close_time\":1512806227310,\"vwap\":0.2008392132001227,\"ema1\":0.1970009930233521,\"sma1\":0.20425103703703693,\"sma2\":0.1985104333333334,\"rsi_avg_gain\":0.0016090019109702325,\"rsi_avg_loss\":0.001435689634557923,\"rsi\":53},{\"period_id\":\"120m210110\",\"size\":\"120m\",\"time\":1512792000000,\"open\":0.20095,\"high\":0.20189,\"low\":0.19933,\"close\":0.2018,\"volume\":327272.42923343997,\"close_time\":1512799199401,\"vwap\":0.2008070620098244,\"ema1\":0.19684175116289362,\"sma1\":0.20433437037037028,\"sma2\":0.19856810000000003,\"rsi_avg_gain\":0.0017327712887371734,\"rsi_avg_loss\":0.001354588837216223,\"rsi\":56},{\"period_id\":\"120m210109\",\"size\":\"120m\",\"time\":1512784800000,\"open\":0.199,\"high\":0.20181,\"low\":0.199,\"close\":0.20148,\"volume\":97245.56367083998,\"close_time\":1512791938779,\"vwap\":0.20080408847588518,\"ema1\":0.1964998029672311,\"sma1\":0.20441020370370364,\"sma2\":0.19864193333333333,\"rsi_avg_gain\":0.0018414460032554164,\"rsi_avg_loss\":0.0014587879785405479,\"rsi\":56},{\"period_id\":\"120m210108\",\"size\":\"120m\",\"time\":1512777600000,\"open\":0.2,\"high\":0.20181,\"low\":0.19801,\"close\":0.19981,\"volume\":403268.47447363014,\"close_time\":1512784528415,\"vwap\":0.20080372620007225,\"ema1\":0.1961563411029022,\"sma1\":0.2044859444444444,\"sma2\":0.19872843333333334,\"rsi_avg_gain\":0.0018546341573519864,\"rsi_avg_loss\":0.0015710024384282821,\"rsi\":54},{\"period_id\":\"120m210107\",\"size\":\"120m\",\"time\":1512770400000,\"open\":0.19995,\"high\":0.20194,\"low\":0.19811,\"close\":0.2,\"volume\":1030570.62235018,\"close_time\":1512777589000,\"vwap\":0.20084906480598233,\"ema1\":0.19590436462724028,\"sma1\":0.20456057407407402,\"sma2\":0.19878193333333335,\"rsi_avg_gain\":0.001997298323302139,\"rsi_avg_loss\":0.001677233395230456,\"rsi\":54},{\"period_id\":\"120m210106\",\"size\":\"120m\",\"time\":1512763200000,\"open\":0.20056,\"high\":0.2029,\"low\":0.19882,\"close\":0.20195,\"volume\":687992.28091057,\"close_time\":1512770355398,\"vwap\":0.2010148286127798,\"ema1\":0.1956219070153258,\"sma1\":0.2046263148148148,\"sma2\":0.19878443333333337,\"rsi_avg_gain\":0.002150936655863842,\"rsi_avg_loss\":0.0016562513487097233,\"rsi\":56},{\"period_id\":\"120m210105\",\"size\":\"120m\",\"time\":1512756000000,\"open\":0.2,\"high\":0.204,\"low\":0.199,\"close\":0.20292,\"volume\":1842953.0237013297,\"close_time\":1512763170809,\"vwap\":0.2010516614748779,\"ema1\":0.19518548680948622,\"sma1\":0.20477048148148147,\"sma2\":0.1988857666666667,\"rsi_avg_gain\":0.002316393321699522,\"rsi_avg_loss\":0.0017090399139950867,\"rsi\":58},{\"period_id\":\"120m210104\",\"size\":\"120m\",\"time\":1512748800000,\"open\":0.196,\"high\":0.20086,\"low\":0.196,\"close\":0.2,\"volume\":1102251.6171724405,\"close_time\":1512755976994,\"vwap\":0.199315471754681,\"ema1\":0.19465207210669216,\"sma1\":0.20497548148148148,\"sma2\":0.19904876666666674,\"rsi_avg_gain\":0.0022699620387533334,\"rsi_avg_loss\":0.0018405045227639395,\"rsi\":55},{\"period_id\":\"120m210103\",\"size\":\"120m\",\"time\":1512741600000,\"open\":0.20001,\"high\":0.20182,\"low\":0.19001,\"close\":0.196,\"volume\":1809689.6471748506,\"close_time\":1512748783413,\"vwap\":0.20015154604518182,\"ema1\":0.1942832494933606,\"sma1\":0.2052364074074074,\"sma2\":0.1992737666666667,\"rsi_avg_gain\":0.0021368821955805124,\"rsi_avg_loss\":0.001982081793745781,\"rsi\":52},{\"period_id\":\"120m210102\",\"size\":\"120m\",\"time\":1512734400000,\"open\":0.19362,\"high\":0.20199,\"low\":0.193,\"close\":0.20182,\"volume\":1979923.9914177093,\"close_time\":1512741577584,\"vwap\":0.20051265476134195,\"ema1\":0.1941648529066958,\"sma1\":0.20548446296296297,\"sma2\":0.19942676666666675,\"rsi_avg_gain\":0.0023012577490867056,\"rsi_avg_loss\":0.0016868573163416108,\"rsi\":58},{\"period_id\":\"120m210101\",\"size\":\"120m\",\"time\":1512727200000,\"open\":0.1931,\"high\":0.19999,\"low\":0.19,\"close\":0.194,\"volume\":1792191.8218561397,\"close_time\":1512734388888,\"vwap\":0.20069357262598553,\"ema1\":0.19363691172784725,\"sma1\":0.2057149259259259,\"sma2\":0.1996746,\"rsi_avg_gain\":0.0018767391144010677,\"rsi_avg_loss\":0.0018166155714448118,\"rsi\":51},{\"period_id\":\"120m210100\",\"size\":\"120m\",\"time\":1512720000000,\"open\":0.19009,\"high\":0.2,\"low\":0.18955,\"close\":0.19301,\"volume\":1800915.4518014311,\"close_time\":1512727186604,\"vwap\":0.20130272901574806,\"ema1\":0.19361187115735395,\"sma1\":0.20594529629629627,\"sma2\":0.1999061,\"rsi_avg_gain\":0.0019449498155088409,\"rsi_avg_loss\":0.0019563552307867204,\"rsi\":50},{\"period_id\":\"120m210099\",\"size\":\"120m\",\"time\":1512712800000,\"open\":0.191,\"high\":0.19649,\"low\":0.18501,\"close\":0.19128,\"volume\":1533508.5199854106,\"close_time\":1512719994835,\"vwap\":0.20266424643501574,\"ema1\":0.19365337951303355,\"sma1\":0.2061701111111111,\"sma2\":0.20016993333333336,\"rsi_avg_gain\":0.00196148441670183,\"rsi_avg_loss\":0.0021068440946933912,\"rsi\":48},{\"period_id\":\"120m210098\",\"size\":\"120m\",\"time\":1512705600000,\"open\":0.203,\"high\":0.20687,\"low\":0.19021,\"close\":0.19131,\"volume\":824094.35925791,\"close_time\":1512712790789,\"vwap\":0.20488854332883338,\"ema1\":0.19381706085876,\"sma1\":0.20631177777777776,\"sma2\":0.20040060000000004,\"rsi_avg_gain\":0.002112367833371202,\"rsi_avg_loss\":0.002266601332746729,\"rsi\":48},{\"period_id\":\"120m210097\",\"size\":\"120m\",\"time\":1512698400000,\"open\":0.20457,\"high\":0.208,\"low\":0.19155,\"close\":0.205,\"volume\":1802558.6234344696,\"close_time\":1512705589882,\"vwap\":0.20538348258400768,\"ema1\":0.19398996160763998,\"sma1\":0.20649585185185182,\"sma2\":0.20039776666666667,\"rsi_avg_gain\":0.0022748576667074483,\"rsi_avg_loss\":0.0013878783583426326,\"rsi\":62},{\"period_id\":\"120m210096\",\"size\":\"120m\",\"time\":1512691200000,\"open\":0.18264,\"high\":0.21,\"low\":0.18,\"close\":0.20457,\"volume\":5069064.234255623,\"close_time\":1512698364848,\"vwap\":0.20550701961226256,\"ema1\":0.19323064861506342,\"sma1\":0.2067273333333333,\"sma2\":0.20039026666666665,\"rsi_avg_gain\":0.0024167697949157145,\"rsi_avg_loss\":0.0014946382320612968,\"rsi\":62},{\"period_id\":\"120m210095\",\"size\":\"120m\",\"time\":1512684000000,\"open\":0.18631,\"high\":0.18699,\"low\":0.18,\"close\":0.182,\"volume\":2887392.7136900085,\"close_time\":1512691099048,\"vwap\":0.182971301197147,\"ema1\":0.19244862438161953,\"sma1\":0.20717187037037035,\"sma2\":0.20079026666666666,\"rsi_avg_gain\":0.0008665213176015379,\"rsi_avg_loss\":0.0016096104037583196,\"rsi\":35},{\"period_id\":\"120m210094\",\"size\":\"120m\",\"time\":1512676800000,\"open\":0.18049,\"high\":0.186,\"low\":0.18007,\"close\":0.186,\"volume\":1397581.4726467493,\"close_time\":1512683999964,\"vwap\":0.18421569988363798,\"ema1\":0.1931692191665588,\"sma1\":0.2075561296296296,\"sma2\":0.20114843333333327,\"rsi_avg_gain\":0.000933176803570887,\"rsi_avg_loss\":0.0014257342809704976,\"rsi\":40},{\"period_id\":\"120m210093\",\"size\":\"120m\",\"time\":1512669600000,\"open\":0.182,\"high\":0.18889,\"low\":0.18004,\"close\":0.181,\"volume\":1519254.1145062689,\"close_time\":1512676772537,\"vwap\":0.18428308529611948,\"ema1\":0.19366364807459735,\"sma1\":0.2078807592592592,\"sma2\":0.20157693333333332,\"rsi_avg_gain\":0.0006203442499994165,\"rsi_avg_loss\":0.001535406148737459,\"rsi\":29},{\"period_id\":\"120m210092\",\"size\":\"120m\",\"time\":1512662400000,\"open\":0.18434,\"high\":0.18959,\"low\":0.18,\"close\":0.182,\"volume\":1880239.514088659,\"close_time\":1512669591339,\"vwap\":0.1848777285157018,\"ema1\":0.19453700311422475,\"sma1\":0.208233537037037,\"sma2\":0.20199393333333326,\"rsi_avg_gain\":0.0006680630384609101,\"rsi_avg_loss\":0.0015765912371018787,\"rsi\":30},{\"period_id\":\"120m210091\",\"size\":\"120m\",\"time\":1512655200000,\"open\":0.1885,\"high\":0.18995,\"low\":0.18301,\"close\":0.187,\"volume\":1319921.42306792,\"close_time\":1512662369202,\"vwap\":0.1876851224556337,\"ema1\":0.19540162401865405,\"sma1\":0.20853307407407404,\"sma2\":0.20230944066666665,\"rsi_avg_gain\":0.0007194525029579033,\"rsi_avg_loss\":0.0013132521014943305,\"rsi\":35},{\"period_id\":\"120m210090\",\"size\":\"120m\",\"time\":1512648000000,\"open\":0.1875,\"high\":0.19,\"low\":0.1875,\"close\":0.1885,\"volume\":1411372.0180265396,\"close_time\":1512655194555,\"vwap\":0.1888882750928197,\"ema1\":0.19598104636476812,\"sma1\":0.2088013148148148,\"sma2\":0.2026461073333333,\"rsi_avg_gain\":0.0007747950031854342,\"rsi_avg_loss\":0.0012988868785323558,\"rsi\":37},{\"period_id\":\"120m210089\",\"size\":\"120m\",\"time\":1512640800000,\"open\":0.18521,\"high\":0.18979,\"low\":0.181,\"close\":0.1875,\"volume\":2092077.3675429292,\"close_time\":1512647973104,\"vwap\":0.18815040549622175,\"ema1\":0.1964969805968211,\"sma1\":0.20908057407407407,\"sma2\":0.20298944066666663,\"rsi_avg_gain\":0.000757471541892006,\"rsi_avg_loss\":0.0013988012538040755,\"rsi\":35},{\"period_id\":\"120m210088\",\"size\":\"120m\",\"time\":1512633600000,\"open\":0.1872,\"high\":0.18979,\"low\":0.18513,\"close\":0.18513,\"volume\":1129966.4392239994,\"close_time\":1512640768505,\"vwap\":0.18927683822175384,\"ema1\":0.19711746201729152,\"sma1\":0.20934177777777777,\"sma2\":0.20340394066666662,\"rsi_avg_gain\":0.0006334308912683133,\"rsi_avg_loss\":0.0015064013502505429,\"rsi\":30},{\"period_id\":\"120m210087\",\"size\":\"120m\",\"time\":1512626400000,\"open\":0.19225,\"high\":0.19231,\"low\":0.1852,\"close\":0.18601,\"volume\":1170682.04228123,\"close_time\":1512633583210,\"vwap\":0.18955279376266498,\"ema1\":0.19794418353572543,\"sma1\":0.20957705555555553,\"sma2\":0.20378977399999998,\"rsi_avg_gain\":0.0006821563444427989,\"rsi_avg_loss\":0.001554586069500583,\"rsi\":30},{\"period_id\":\"120m210086\",\"size\":\"120m\",\"time\":1512619200000,\"open\":0.1855,\"high\":0.19288,\"low\":0.18373,\"close\":0.19227,\"volume\":312959.47167122003,\"close_time\":1512626260601,\"vwap\":0.1897642876293007,\"ema1\":0.1987672306761203,\"sma1\":0.20980964814814815,\"sma2\":0.2040286073333333,\"rsi_avg_gain\":0.0007346299093999373,\"rsi_avg_loss\":0.0011926311517698597,\"rsi\":38},{\"period_id\":\"120m210085\",\"size\":\"120m\",\"time\":1512612000000,\"open\":0.18694,\"high\":0.19286,\"low\":0.18393,\"close\":0.18643,\"volume\":1313166.93189536,\"close_time\":1512619169443,\"vwap\":0.1897736451264922,\"ema1\":0.19921531555033548,\"sma1\":0.21004325925925926,\"sma2\":0.20440660733333332,\"rsi_avg_gain\":0.0003419091331999337,\"rsi_avg_loss\":0.0012843720095983104,\"rsi\":21},{\"period_id\":\"120m210084\",\"size\":\"120m\",\"time\":1512604800000,\"open\":0.18902,\"high\":0.1927,\"low\":0.1865,\"close\":0.1865,\"volume\":1847827.2706492287,\"close_time\":1512611942664,\"vwap\":0.19044661795483914,\"ema1\":0.2000970614503586,\"sma1\":0.21020344444444447,\"sma2\":0.20478094066666663,\"rsi_avg_gain\":0.00036820983575377476,\"rsi_avg_loss\":0.0013777852411058738,\"rsi\":21},{\"period_id\":\"120m210083\",\"size\":\"120m\",\"time\":1512597600000,\"open\":0.19498,\"high\":0.196,\"low\":0.189,\"close\":0.18902,\"volume\":2480005.0900642066,\"close_time\":1512604794901,\"vwap\":0.19092905204571342,\"ema1\":0.2010347898262454,\"sma1\":0.21030066666666666,\"sma2\":0.2051734406666666,\"rsi_avg_gain\":0.00039653366927329593,\"rsi_avg_loss\":0.0012899225673447877,\"rsi\":24},{\"period_id\":\"120m210082\",\"size\":\"120m\",\"time\":1512590400000,\"open\":0.19679,\"high\":0.19775,\"low\":0.192,\"close\":0.195,\"volume\":1901877.715855151,\"close_time\":1512597582829,\"vwap\":0.19403345196173075,\"ema1\":0.20186339602115888,\"sma1\":0.21038816666666663,\"sma2\":0.20546277399999993,\"rsi_avg_gain\":0.00042703625921739564,\"rsi_avg_loss\":0.0009291473802174625,\"rsi\":31},{\"period_id\":\"120m210081\",\"size\":\"120m\",\"time\":1512583200000,\"open\":0.1985,\"high\":0.20003,\"low\":0.19615,\"close\":0.19765,\"volume\":1159402.1994188598,\"close_time\":1512590389470,\"vwap\":0.19805214569084048,\"ema1\":0.20233673367779054,\"sma1\":0.2104573333333333,\"sma2\":0.20566194066666663,\"rsi_avg_gain\":0.0004598852022341184,\"rsi_avg_loss\":0.000796774101772653,\"rsi\":37},{\"period_id\":\"120m210080\",\"size\":\"120m\",\"time\":1512576000000,\"open\":0.1999,\"high\":0.20198,\"low\":0.1978,\"close\":0.1985,\"volume\":1149012.43157479,\"close_time\":1512583187057,\"vwap\":0.19811680383909688,\"ema1\":0.20265995669005196,\"sma1\":0.2104941851851852,\"sma2\":0.20582710733333334,\"rsi_avg_gain\":0.0004952609870213583,\"rsi_avg_loss\":0.0007926798019090096,\"rsi\":38},{\"period_id\":\"120m210079\",\"size\":\"120m\",\"time\":1512568800000,\"open\":0.197,\"high\":0.19997,\"low\":0.196,\"close\":0.1999,\"volume\":1754763.5733593802,\"close_time\":1512575983189,\"vwap\":0.1979063763338326,\"ema1\":0.20294685025488313,\"sma1\":0.21054724074074074,\"sma2\":0.205974774,\"rsi_avg_gain\":0.0005333579860230012,\"rsi_avg_loss\":0.0007459628635943192,\"rsi\":42},{\"period_id\":\"120m210078\",\"size\":\"120m\",\"time\":1512561600000,\"open\":0.19867,\"high\":0.19869,\"low\":0.196,\"close\":0.19797,\"volume\":1356577.2933801496,\"close_time\":1512568782682,\"vwap\":0.19779988771131143,\"ema1\":0.20315697785866818,\"sma1\":0.21060566666666666,\"sma2\":0.2061669406666667,\"rsi_avg_gain\":0.00042592398494784847,\"rsi_avg_loss\":0.0008033446223323438,\"rsi\":35},{\"period_id\":\"120m210077\",\"size\":\"120m\",\"time\":1512554400000,\"open\":0.19707,\"high\":0.2,\"low\":0.196,\"close\":0.19869,\"volume\":2110134.6971577206,\"close_time\":1512561542485,\"vwap\":0.19794190622988528,\"ema1\":0.20351470046961082,\"sma1\":0.21065168518518515,\"sma2\":0.206231774,\"rsi_avg_gain\":0.00045868736840537527,\"rsi_avg_loss\":0.0008097557471271396,\"rsi\":36},{\"period_id\":\"120m210076\",\"size\":\"120m\",\"time\":1512547200000,\"open\":0.19606,\"high\":0.20158,\"low\":0.1953,\"close\":0.19705,\"volume\":2170755.0190411303,\"close_time\":1512554398487,\"vwap\":0.19785837222544014,\"ema1\":0.20384743843303224,\"sma1\":0.21068798148148143,\"sma2\":0.20631527400000002,\"rsi_avg_gain\":0.0003678171659750193,\"rsi_avg_loss\":0.0008720446507523041,\"rsi\":30},{\"period_id\":\"120m210075\",\"size\":\"120m\",\"time\":1512540000000,\"open\":0.19901,\"high\":0.20293,\"low\":0.195,\"close\":0.19778,\"volume\":2231629.5649462496,\"close_time\":1512547191564,\"vwap\":0.1965819986318985,\"ema1\":0.20431622729048274,\"sma1\":0.21071270370370368,\"sma2\":0.2063039406666667,\"rsi_avg_gain\":0.0003961107941269439,\"rsi_avg_loss\":0.0008829711623486346,\"rsi\":31},{\"period_id\":\"120m210074\",\"size\":\"120m\",\"time\":1512532800000,\"open\":0.201,\"high\":0.20466,\"low\":0.1981,\"close\":0.1982,\"volume\":1667986.7979470093,\"close_time\":1512539956524,\"vwap\":0.20283098047169182,\"ema1\":0.2047670015863781,\"sma1\":0.2107149259259259,\"sma2\":0.20629227400000003,\"rsi_avg_gain\":0.0004265808552136319,\"rsi_avg_loss\":0.0009185843286831468,\"rsi\":32},{\"period_id\":\"120m210073\",\"size\":\"120m\",\"time\":1512525600000,\"open\":0.20164,\"high\":0.204,\"low\":0.2,\"close\":0.2023,\"volume\":1055209.2105613104,\"close_time\":1512532718975,\"vwap\":0.20330391585096108,\"ema1\":0.2052198982475076,\"sma1\":0.21071520370370364,\"sma2\":0.2062139406666667,\"rsi_avg_gain\":0.0004593947671531421,\"rsi_avg_loss\":0.0006738600462741566,\"rsi\":41},{\"period_id\":\"120m210072\",\"size\":\"120m\",\"time\":1512518400000,\"open\":0.20532,\"high\":0.20635,\"low\":0.20011,\"close\":0.20168,\"volume\":1645813.257506141,\"close_time\":1512525583549,\"vwap\":0.20379308565912518,\"ema1\":0.20542127054043918,\"sma1\":0.210693074074074,\"sma2\":0.2061879406666667,\"rsi_avg_gain\":0.00044704051847261386,\"rsi_avg_loss\":0.0007256954344490918,\"rsi\":38},{\"period_id\":\"120m210071\",\"size\":\"120m\",\"time\":1512511200000,\"open\":0.20402,\"high\":0.2055,\"low\":0.203,\"close\":0.20364,\"volume\":2130364.2691354603,\"close_time\":1512518349788,\"vwap\":0.20433755962799924,\"ema1\":0.2056792891984005,\"sma1\":0.2106879814814814,\"sma2\":0.2061706073333334,\"rsi_avg_gain\":0.00048142825066281494,\"rsi_avg_loss\":0.0006307489294067151,\"rsi\":43},{\"period_id\":\"120m210070\",\"size\":\"120m\",\"time\":1512504000000,\"open\":0.20498,\"high\":0.20535,\"low\":0.203,\"close\":0.20485,\"volume\":1083083.8736538694,\"close_time\":1512511198657,\"vwap\":0.20417623711211688,\"ema1\":0.20581992983277295,\"sma1\":0.2106761296296296,\"sma2\":0.20612977400000004,\"rsi_avg_gain\":0.000518461193021493,\"rsi_avg_loss\":0.0005861911547456919,\"rsi\":47},{\"period_id\":\"120m210069\",\"size\":\"120m\",\"time\":1512496800000,\"open\":0.204,\"high\":0.20538,\"low\":0.203,\"close\":0.20402,\"volume\":860057.4203535096,\"close_time\":1512503859014,\"vwap\":0.2041199346446205,\"ema1\":0.205886821545378,\"sma1\":0.21067344444444439,\"sma2\":0.20612777400000007,\"rsi_avg_gain\":0.0004944966694077618,\"rsi_avg_loss\":0.000631282782033822,\"rsi\":44},{\"period_id\":\"120m210068\",\"size\":\"120m\",\"time\":1512489600000,\"open\":0.20488,\"high\":0.2055,\"low\":0.203,\"close\":0.20321,\"volume\":1296081.3617274298,\"close_time\":1512496789885,\"vwap\":0.20409266583158392,\"ema1\":0.20601556785885233,\"sma1\":0.21067437037037032,\"sma2\":0.20602427400000006,\"rsi_avg_gain\":0.0004702271824391278,\"rsi_avg_loss\":0.0006798429960364236,\"rsi\":41},{\"period_id\":\"120m210067\",\"size\":\"120m\",\"time\":1512482400000,\"open\":0.20556,\"high\":0.20556,\"low\":0.2035,\"close\":0.2049,\"volume\":1402909.4253659002,\"close_time\":1512489590218,\"vwap\":0.20561453932862084,\"ema1\":0.20620905529739386,\"sma1\":0.21067501851851847,\"sma2\":0.20583277400000005,\"rsi_avg_gain\":0.0005063985041652146,\"rsi_avg_loss\":0.0006021386111161488,\"rsi\":46},{\"period_id\":\"120m210066\",\"size\":\"120m\",\"time\":1512475200000,\"open\":0.2045,\"high\":0.20646,\"low\":0.204,\"close\":0.20557,\"volume\":905663.6345902705,\"close_time\":1512482395799,\"vwap\":0.20590500435642292,\"ema1\":0.2062993349730762,\"sma1\":0.21066798148148144,\"sma2\":0.20567327400000004,\"rsi_avg_gain\":0.0005453522352548466,\"rsi_avg_loss\":0.0005969185042789293,\"rsi\":48},{\"period_id\":\"120m210065\",\"size\":\"120m\",\"time\":1512468000000,\"open\":0.20576,\"high\":0.20643,\"low\":0.2043,\"close\":0.2045,\"volume\":1058386.8217710692,\"close_time\":1512475196068,\"vwap\":0.20602428782127064,\"ema1\":0.20634963393673664,\"sma1\":0.21066835185185184,\"sma2\":0.20562027400000008,\"rsi_avg_gain\":0.0005049947148898336,\"rsi_avg_loss\":0.0006428353123003853,\"rsi\":44},{\"period_id\":\"120m210064\",\"size\":\"120m\",\"time\":1512460800000,\"open\":0.2057,\"high\":0.2082,\"low\":0.205,\"close\":0.20504,\"volume\":1827906.7326850519,\"close_time\":1512467894122,\"vwap\":0.20620477009298946,\"ema1\":0.2064771948978909,\"sma1\":0.2106489074074074,\"sma2\":0.20565610733333337,\"rsi_avg_gain\":0.0005438404621890515,\"rsi_avg_loss\":0.0006507457209388755,\"rsi\":46},{\"period_id\":\"120m210063\",\"size\":\"120m\",\"time\":1512453600000,\"open\":0.20508,\"high\":0.2071,\"low\":0.20415,\"close\":0.2059,\"volume\":616188.42400966,\"close_time\":1512460761594,\"vwap\":0.20619479839199994,\"ema1\":0.20657631178740063,\"sma1\":0.2106420555555555,\"sma2\":0.20565777400000004,\"rsi_avg_gain\":0.0005856743438959017,\"rsi_avg_loss\":0.0006346492379341736,\"rsi\":48},{\"period_id\":\"120m210062\",\"size\":\"120m\",\"time\":1512446400000,\"open\":0.20531,\"high\":0.20798,\"low\":0.2045,\"close\":0.20485,\"volume\":407359.59938782,\"close_time\":1512453554144,\"vwap\":0.20628510885784654,\"ema1\":0.20662295397963515,\"sma1\":0.21062381481481476,\"sma2\":0.20570827400000002,\"rsi_avg_gain\":0.0005499569857340483,\"rsi_avg_loss\":0.0006834684100829562,\"rsi\":45},{\"period_id\":\"120m210061\",\"size\":\"120m\",\"time\":1512439200000,\"open\":0.20663,\"high\":0.20663,\"low\":0.205,\"close\":0.20515,\"volume\":595110.5549349199,\"close_time\":1512446369424,\"vwap\":0.2063090488339147,\"ema1\":0.20674522666788586,\"sma1\":0.21061353703703697,\"sma2\":0.20577927400000004,\"rsi_avg_gain\":0.000592261369252052,\"rsi_avg_loss\":0.0007129659800893379,\"rsi\":45},{\"period_id\":\"120m210060\",\"size\":\"120m\",\"time\":1512432000000,\"open\":0.20764,\"high\":0.208266,\"low\":0.2062,\"close\":0.20663,\"volume\":508934.48698234,\"close_time\":1512439024419,\"vwap\":0.2063702324842033,\"ema1\":0.20685524230015384,\"sma1\":0.21060366666666663,\"sma2\":0.20583510733333338,\"rsi_avg_gain\":0.0006378199361175944,\"rsi_avg_loss\":0.0006539633631731324,\"rsi\":49},{\"period_id\":\"120m210059\",\"size\":\"120m\",\"time\":1512424800000,\"open\":0.20697,\"high\":0.208266,\"low\":0.206,\"close\":0.208266,\"volume\":918199.0655971197,\"close_time\":1512431956920,\"vwap\":0.2063493794469192,\"ema1\":0.2068707762518886,\"sma1\":0.21060120370370367,\"sma2\":0.2057148406666667,\"rsi_avg_gain\":0.0006868830081266401,\"rsi_avg_loss\":0.0005784220834172196,\"rsi\":54},{\"period_id\":\"120m210058\",\"size\":\"120m\",\"time\":1512417600000,\"open\":0.2069,\"high\":0.2075,\"low\":0.2055,\"close\":0.20697,\"volume\":632957.20665359,\"close_time\":1512424783756,\"vwap\":0.20602199036611032,\"ema1\":0.20677455392443264,\"sma1\":0.2106058333333333,\"sma2\":0.2056783406666667,\"rsi_avg_gain\":0.000640027854905611,\"rsi_avg_loss\":0.0006229160898339288,\"rsi\":51},{\"period_id\":\"120m210057\",\"size\":\"120m\",\"time\":1512410400000,\"open\":0.20754,\"high\":0.20769,\"low\":0.20562,\"close\":0.207,\"volume\":703081.9222192308,\"close_time\":1512417597662,\"vwap\":0.20588795255309647,\"ema1\":0.20676107488473836,\"sma1\":0.21060870370370366,\"sma2\":0.2055448406666667,\"rsi_avg_gain\":0.0006892607668214271,\"rsi_avg_loss\":0.0006685250198211538,\"rsi\":51},{\"period_id\":\"120m210056\",\"size\":\"120m\",\"time\":1512403200000,\"open\":0.20617,\"high\":0.20754,\"low\":0.205,\"close\":0.20754,\"volume\":614650.2980817601,\"close_time\":1512410370625,\"vwap\":0.20559610226586886,\"ema1\":0.20674459729058237,\"sma1\":0.21061759259259252,\"sma2\":0.2056858406666667,\"rsi_avg_gain\":0.0007422808258076908,\"rsi_avg_loss\":0.0006784115598073954,\"rsi\":52},{\"period_id\":\"120m210055\",\"size\":\"120m\",\"time\":1512396000000,\"open\":0.206,\"high\":0.20778,\"low\":0.20474,\"close\":0.20616,\"volume\":555274.1970127601,\"close_time\":1512403151943,\"vwap\":0.20521124241738734,\"ema1\":0.20668974193131218,\"sma1\":0.21062888888888884,\"sma2\":0.20588317400000006,\"rsi_avg_gain\":0.0006932255047159753,\"rsi_avg_loss\":0.0007305970644079642,\"rsi\":49},{\"period_id\":\"120m210054\",\"size\":\"120m\",\"time\":1512388800000,\"open\":0.20601,\"high\":0.2078,\"low\":0.20311,\"close\":0.206,\"volume\":1058620.9446994702,\"close_time\":1512395944827,\"vwap\":0.20479699857548014,\"ema1\":0.20672627585760955,\"sma1\":0.21061685185185178,\"sma2\":0.20624967400000005,\"rsi_avg_gain\":0.0007342428512325871,\"rsi_avg_loss\":0.0007867968385931923,\"rsi\":48},{\"period_id\":\"120m210053\",\"size\":\"120m\",\"time\":1512381600000,\"open\":0.20655,\"high\":0.2079,\"low\":0.205,\"close\":0.20668,\"volume\":937889.2512387097,\"close_time\":1512388797198,\"vwap\":0.20849693657880905,\"ema1\":0.20677636384778952,\"sma1\":0.21058537037037028,\"sma2\":0.20651200733333339,\"rsi_avg_gain\":0.0007907230705581706,\"rsi_avg_loss\":0.0007950119800234367,\"rsi\":50},{\"period_id\":\"120m210052\",\"size\":\"120m\",\"time\":1512374400000,\"open\":0.2073,\"high\":0.20843,\"low\":0.20567,\"close\":0.207,\"volume\":846062.6015024798,\"close_time\":1512381483617,\"vwap\":0.20864843757097126,\"ema1\":0.2067830096303957,\"sma1\":0.21054712962962954,\"sma2\":0.20679367400000004,\"rsi_avg_gain\":0.0008515479221395684,\"rsi_avg_loss\":0.0008315513631021637,\"rsi\":51},{\"period_id\":\"120m210051\",\"size\":\"120m\",\"time\":1512367200000,\"open\":0.20506,\"high\":0.2088,\"low\":0.20506,\"close\":0.20772,\"volume\":369815.74117833993,\"close_time\":1512374346573,\"vwap\":0.2087173906606957,\"ema1\":0.20676804477731953,\"sma1\":0.21051166666666657,\"sma2\":0.20700667400000003,\"rsi_avg_gain\":0.0009170516084579968,\"rsi_avg_loss\":0.0008401322371869457,\"rsi\":52},{\"period_id\":\"120m210050\",\"size\":\"120m\",\"time\":1512360000000,\"open\":0.20511,\"high\":0.20694,\"low\":0.205,\"close\":0.20526,\"volume\":148488.14376757,\"close_time\":1512367074218,\"vwap\":0.2087299778090359,\"ema1\":0.20670239269299673,\"sma1\":0.21049361111111103,\"sma2\":0.207210674,\"rsi_avg_gain\":0.0007983632706470742,\"rsi_avg_loss\":0.0009047577938936338,\"rsi\":47},{\"period_id\":\"120m210049\",\"size\":\"120m\",\"time\":1512352800000,\"open\":0.20479,\"high\":0.20596,\"low\":0.20479,\"close\":0.20591,\"volume\":112455.98687227,\"close_time\":1512359645187,\"vwap\":0.20873999788324937,\"ema1\":0.20680186805113443,\"sma1\":0.2104800925925925,\"sma2\":0.20744550733333336,\"rsi_avg_gain\":0.0008597758299276184,\"rsi_avg_loss\":0.0009243545472700663,\"rsi\":48},{\"period_id\":\"120m210048\",\"size\":\"120m\",\"time\":1512345600000,\"open\":0.2025,\"high\":0.205,\"low\":0.2022,\"close\":0.205,\"volume\":244383.31424754005,\"close_time\":1512352788800,\"vwap\":0.20874417296272138,\"ema1\":0.20686337619259199,\"sma1\":0.21046666666666655,\"sma2\":0.207812174,\"rsi_avg_gain\":0.0008559124322297413,\"rsi_avg_loss\":0.0009954587432139176,\"rsi\":46},{\"period_id\":\"120m210047\",\"size\":\"120m\",\"time\":1512338400000,\"open\":0.203,\"high\":0.20596,\"low\":0.201,\"close\":0.20321,\"volume\":1016917.7492541395,\"close_time\":1512345595739,\"vwap\":0.2087758697978106,\"ema1\":0.20699188489552936,\"sma1\":0.21043925925925913,\"sma2\":0.2083210073333333,\"rsi_avg_gain\":0.000784059542401261,\"rsi_avg_loss\":0.0010720324926919112,\"rsi\":42},{\"period_id\":\"120m210046\",\"size\":\"120m\",\"time\":1512331200000,\"open\":0.20927755,\"high\":0.21072,\"low\":0.2021,\"close\":0.2021,\"volume\":1914351.5573701388,\"close_time\":1512338396781,\"vwap\":0.2093641634767719,\"ema1\":0.2072527045434969,\"sma1\":0.21036685185185175,\"sma2\":0.20871917399999998,\"rsi_avg_gain\":0.0007589871995090503,\"rsi_avg_loss\":0.001154496530591289,\"rsi\":40},{\"period_id\":\"120m210045\",\"size\":\"120m\",\"time\":1512324000000,\"open\":0.20861,\"high\":0.21,\"low\":0.20824,\"close\":0.209,\"volume\":407974.7964288199,\"close_time\":1512331113146,\"vwap\":0.2109597208658175,\"ema1\":0.20760806347753116,\"sma1\":0.21029731481481473,\"sma2\":0.20892100733333333,\"rsi_avg_gain\":0.0008173708302405158,\"rsi_avg_loss\":0.0007125347252521584,\"rsi\":53},{\"period_id\":\"120m210044\",\"size\":\"120m\",\"time\":1512316800000,\"open\":0.20906,\"high\":0.21,\"low\":0.2084,\"close\":0.20978,\"volume\":615420.8094476499,\"close_time\":1512323994319,\"vwap\":0.21101987337607114,\"ema1\":0.20751206785529194,\"sma1\":0.21023064814814807,\"sma2\":0.20914134066666665,\"rsi_avg_gain\":0.0008802455094897862,\"rsi_avg_loss\":0.0007073450887330933,\"rsi\":55},{\"period_id\":\"120m210043\",\"size\":\"120m\",\"time\":1512309600000,\"open\":0.211,\"high\":0.2118,\"low\":0.208,\"close\":0.2095,\"volume\":1208601.3046583012,\"close_time\":1512316768941,\"vwap\":0.21113638254154976,\"ema1\":0.2073556587418638,\"sma1\":0.21014851851851843,\"sma2\":0.20935467399999996,\"rsi_avg_gain\":0.0009264182409890003,\"rsi_avg_loss\":0.0007617562494048696,\"rsi\":55},{\"period_id\":\"120m210042\",\"size\":\"120m\",\"time\":1512302400000,\"open\":0.2093,\"high\":0.213,\"low\":0.20887,\"close\":0.211,\"volume\":2451547.833988342,\"close_time\":1512309491987,\"vwap\":0.21162338084152307,\"ema1\":0.2072077731378544,\"sma1\":0.21005694444444434,\"sma2\":0.20939200733333332,\"rsi_avg_gain\":0.0009976811826035387,\"rsi_avg_loss\":0.0007049682685898595,\"rsi\":59},{\"period_id\":\"120m210041\",\"size\":\"120m\",\"time\":1512295200000,\"open\":0.207,\"high\":0.2094,\"low\":0.20601,\"close\":0.20887,\"volume\":657082.7732712004,\"close_time\":1512302385755,\"vwap\":0.2085535762738602,\"ema1\":0.20694624025080988,\"sma1\":0.2099976851851851,\"sma2\":0.20954367399999996,\"rsi_avg_gain\":0.0009105797351115036,\"rsi_avg_loss\":0.0007591965969429255,\"rsi\":55},{\"period_id\":\"120m210040\",\"size\":\"120m\",\"time\":1512288000000,\"open\":0.20712,\"high\":0.208,\"low\":0.20605,\"close\":0.2069,\"volume\":404712.48956450995,\"close_time\":1512295180202,\"vwap\":0.20978036558280258,\"ema1\":0.20681356716465885,\"sma1\":0.20997175925925918,\"sma2\":0.20967867399999998,\"rsi_avg_gain\":0.0008290858685816192,\"rsi_avg_loss\":0.0008175963351693044,\"rsi\":50},{\"period_id\":\"120m210039\",\"size\":\"120m\",\"time\":1512280800000,\"open\":0.2053,\"high\":0.208,\"low\":0.20519,\"close\":0.20711,\"volume\":91034.59465931001,\"close_time\":1512287925924,\"vwap\":0.20985232528498327,\"ema1\":0.2068076062794629,\"sma1\":0.2099518518518518,\"sma2\":0.209827174,\"rsi_avg_gain\":0.0008928617046263591,\"rsi_avg_loss\":0.0008643345147977134,\"rsi\":51},{\"period_id\":\"120m210038\",\"size\":\"120m\",\"time\":1512273600000,\"open\":0.20466,\"high\":0.20735,\"low\":0.20465,\"close\":0.20515,\"volume\":341844.85708863003,\"close_time\":1512280257377,\"vwap\":0.2098572395704646,\"ema1\":0.20678675154011553,\"sma1\":0.20992879629629627,\"sma2\":0.20995800733333334,\"rsi_avg_gain\":0.0008107741434437722,\"rsi_avg_loss\":0.0009308217851667682,\"rsi\":47},{\"period_id\":\"120m210037\",\"size\":\"120m\",\"time\":1512266400000,\"open\":0.20416,\"high\":0.20511,\"low\":0.204,\"close\":0.20483,\"volume\":44043.33960736001,\"close_time\":1512273462247,\"vwap\":0.20990216581218563,\"ema1\":0.2068996309566752,\"sma1\":0.20995537037037032,\"sma2\":0.21014017399999999,\"rsi_avg_gain\":0.0008485260006317557,\"rsi_avg_loss\":0.0010024234609488272,\"rsi\":46},{\"period_id\":\"120m210036\",\"size\":\"120m\",\"time\":1512259200000,\"open\":0.2061,\"high\":0.2065,\"low\":0.204,\"close\":0.20412,\"volume\":437910.88185003994,\"close_time\":1512266341154,\"vwap\":0.2099057195822022,\"ema1\":0.20704236412610108,\"sma1\":0.20996101851851845,\"sma2\":0.210238174,\"rsi_avg_gain\":0.0008591818468341972,\"rsi_avg_loss\":0.001079532957944891,\"rsi\":44},{\"period_id\":\"120m210035\",\"size\":\"120m\",\"time\":1512252000000,\"open\":0.2075,\"high\":0.20869,\"low\":0.205,\"close\":0.206,\"volume\":627978.90874285,\"close_time\":1512259172274,\"vwap\":0.21000366001735096,\"ema1\":0.2072439064796253,\"sma1\":0.20996851851851847,\"sma2\":0.21022150733333334,\"rsi_avg_gain\":0.0009252727581291354,\"rsi_avg_loss\":0.0010179585700944985,\"rsi\":48},{\"period_id\":\"120m210034\",\"size\":\"120m\",\"time\":1512244800000,\"open\":0.20626,\"high\":0.208,\"low\":0.20587,\"close\":0.20749,\"volume\":375143.7825295599,\"close_time\":1512251968347,\"vwap\":0.21013552945472463,\"ema1\":0.20732969313339256,\"sma1\":0.20998703703703697,\"sma2\":0.21019650733333337,\"rsi_avg_gain\":0.0009964475856775305,\"rsi_avg_loss\":0.000981647690870997,\"rsi\":50},{\"period_id\":\"120m210033\",\"size\":\"120m\",\"time\":1512237600000,\"open\":0.20752,\"high\":0.20752,\"low\":0.2055,\"close\":0.20671,\"volume\":269664.32342694,\"close_time\":1512244785524,\"vwap\":0.21018349418559526,\"ema1\":0.20731863748741963,\"sma1\":0.20999425925925921,\"sma2\":0.21019750733333334,\"rsi_avg_gain\":0.0010130973999604171,\"rsi_avg_loss\":0.0010571590517072275,\"rsi\":49},{\"period_id\":\"120m210032\",\"size\":\"120m\",\"time\":1512230400000,\"open\":0.20577,\"high\":0.208,\"low\":0.2043,\"close\":0.20702,\"volume\":548313.6903024999,\"close_time\":1512237578495,\"vwap\":0.21021911112071312,\"ema1\":0.20736061248655202,\"sma1\":0.20999425925925921,\"sma2\":0.2101738406666667,\"rsi_avg_gain\":0.0010910279691881415,\"rsi_avg_loss\":0.0011146328249154753,\"rsi\":49},{\"period_id\":\"120m210031\",\"size\":\"120m\",\"time\":1512223200000,\"open\":0.2088,\"high\":0.2088,\"low\":0.205,\"close\":0.20593044,\"volume\":507990.8551120195,\"close_time\":1512230394515,\"vwap\":0.21041396022459727,\"ema1\":0.20738410300286594,\"sma1\":0.20994981481481473,\"sma2\":0.21013533333333337,\"rsi_avg_gain\":0.0010911408898949203,\"rsi_avg_loss\":0.0012003738114474349,\"rsi\":48},{\"period_id\":\"120m210030\",\"size\":\"120m\",\"time\":1512216000000,\"open\":0.2081,\"high\":0.2094,\"low\":0.207,\"close\":0.2087,\"volume\":644599.4130293902,\"close_time\":1512223178420,\"vwap\":0.21063196683556973,\"ema1\":0.20748435562375325,\"sma1\":0.209906574074074,\"sma2\":0.21007350000000002,\"rsi_avg_gain\":0.001175074804502222,\"rsi_avg_loss\":0.0010796671815587757,\"rsi\":52},{\"period_id\":\"120m210029\",\"size\":\"120m\",\"time\":1512208800000,\"open\":0.21,\"high\":0.211,\"low\":0.2061,\"close\":0.2081,\"volume\":1036579.6382968901,\"close_time\":1512215967286,\"vwap\":0.21076711827860142,\"ema1\":0.2074005180805638,\"sma1\":0.20983249999999992,\"sma2\":0.21001350000000005,\"rsi_avg_gain\":0.0012193113279254707,\"rsi_avg_loss\":0.0011627185032171432,\"rsi\":51},{\"period_id\":\"120m210028\",\"size\":\"120m\",\"time\":1512201600000,\"open\":0.2091,\"high\":0.211,\"low\":0.2075,\"close\":0.21,\"volume\":843859.35179703,\"close_time\":1512208772992,\"vwap\":0.2110225806233559,\"ema1\":0.2073522779481889,\"sma1\":0.20976287037037025,\"sma2\":0.20992100000000005,\"rsi_avg_gain\":0.0013131045069966609,\"rsi_avg_loss\":0.0011060045419261553,\"rsi\":54},{\"period_id\":\"120m210027\",\"size\":\"120m\",\"time\":1512194400000,\"open\":0.20701,\"high\":0.20999,\"low\":0.20612,\"close\":0.20916,\"volume\":324696.8229079299,\"close_time\":1512201587493,\"vwap\":0.21114825221315542,\"ema1\":0.20716967642737433,\"sma1\":0.20971555555555546,\"sma2\":0.20984833333333336,\"rsi_avg_gain\":0.001349497161381021,\"rsi_avg_loss\":0.0011910818143820133,\"rsi\":53},{\"period_id\":\"120m210026\",\"size\":\"120m\",\"time\":1512187200000,\"open\":0.20948,\"high\":0.20958,\"low\":0.2065,\"close\":0.2066,\"volume\":423074.3872495901,\"close_time\":1512194238488,\"vwap\":0.2111992586445447,\"ema1\":0.20703241273271047,\"sma1\":0.20966759259259252,\"sma2\":0.20982000000000006,\"rsi_avg_gain\":0.0012563815584103297,\"rsi_avg_loss\":0.001282703492411399,\"rsi\":49},{\"period_id\":\"120m210025\",\"size\":\"120m\",\"time\":1512180000000,\"open\":0.20896,\"high\":0.20956,\"low\":0.207,\"close\":0.20911,\"volume\":97823.74024907005,\"close_time\":1512186828813,\"vwap\":0.21129787962093574,\"ema1\":0.20706223430048362,\"sma1\":0.20960861111111107,\"sma2\":0.2097263333333334,\"rsi_avg_gain\":0.0013530262936726628,\"rsi_avg_loss\":0.0011882960687507385,\"rsi\":53},{\"period_id\":\"120m210024\",\"size\":\"120m\",\"time\":1512172800000,\"open\":0.21257,\"high\":0.2126,\"low\":0.20706,\"close\":0.20896,\"volume\":1319666.9405931998,\"close_time\":1512179990311,\"vwap\":0.21130833963060974,\"ema1\":0.20692100907982733,\"sma1\":0.20952953703703697,\"sma2\":0.20963566666666678,\"rsi_avg_gain\":0.0014455667778013304,\"rsi_avg_loss\":0.0012797034586546415,\"rsi\":53},{\"period_id\":\"120m210023\",\"size\":\"120m\",\"time\":1512165600000,\"open\":0.21203,\"high\":0.215,\"low\":0.21065,\"close\":0.21257,\"volume\":2184093.836138379,\"close_time\":1512172768309,\"vwap\":0.2116784229163132,\"ema1\":0.20678038901636714,\"sma1\":0.20943694444444438,\"sma2\":0.20948033333333343,\"rsi_avg_gain\":0.0015567642222475864,\"rsi_avg_loss\":0.001100449878551152,\"rsi\":59},{\"period_id\":\"120m210022\",\"size\":\"120m\",\"time\":1512158400000,\"open\":0.2096,\"high\":0.21236,\"low\":0.20813,\"close\":0.21236,\"volume\":1072673.46061336,\"close_time\":1512165578647,\"vwap\":0.21041251596789254,\"ema1\":0.20638110550025454,\"sma1\":0.20936768518518514,\"sma2\":0.20931766666666674,\"rsi_avg_gain\":0.001660361470112784,\"rsi_avg_loss\":0.001185099869208933,\"rsi\":58},{\"period_id\":\"120m210021\",\"size\":\"120m\",\"time\":1512151200000,\"open\":0.20898,\"high\":0.21,\"low\":0.2071,\"close\":0.2096,\"volume\":906369.1453939505,\"close_time\":1512158399931,\"vwap\":0.209145195970121,\"ema1\":0.20596876794854796,\"sma1\":0.20930212962962957,\"sma2\":0.20919100000000007,\"rsi_avg_gain\":0.0015757738908906914,\"rsi_avg_loss\":0.00127626139760962,\"rsi\":55},{\"period_id\":\"120m210020\",\"size\":\"120m\",\"time\":1512144000000,\"open\":0.20799,\"high\":0.212,\"low\":0.20799,\"close\":0.20841,\"volume\":1272584.15052845,\"close_time\":1512151168203,\"vwap\":0.20606154395146717,\"ema1\":0.20571833815189608,\"sma1\":0.2092280555555555,\"sma2\":0.20910916666666676,\"rsi_avg_gain\":0.001605448805574591,\"rsi_avg_loss\":0.0013744353512718985,\"rsi\":54},{\"period_id\":\"120m210019\",\"size\":\"120m\",\"time\":1512136800000,\"open\":0.20921,\"high\":0.20998,\"low\":0.207,\"close\":0.20876,\"volume\":1429491.255365281,\"close_time\":1512143985731,\"vwap\":0.2055972188674844,\"ema1\":0.2055327063003027,\"sma1\":0.2091541666666666,\"sma2\":0.20902983333333341,\"rsi_avg_gain\":0.0017289448675418674,\"rsi_avg_loss\":0.001453238070600507,\"rsi\":54},{\"period_id\":\"120m210018\",\"size\":\"120m\",\"time\":1512129600000,\"open\":0.20256,\"high\":0.2169,\"low\":0.20121,\"close\":0.2095,\"volume\":2799926.6295868102,\"close_time\":1512136798511,\"vwap\":0.2051603525559469,\"ema1\":0.20531013432101325,\"sma1\":0.20901481481481474,\"sma2\":0.2089548333333334,\"rsi_avg_gain\":0.0018619406265835494,\"rsi_avg_loss\":0.0015081025375697774,\"rsi\":55},{\"period_id\":\"120m210017\",\"size\":\"120m\",\"time\":1512122400000,\"open\":0.202104,\"high\":0.207,\"low\":0.201,\"close\":0.20258,\"volume\":1291062.32261302,\"close_time\":1512129593960,\"vwap\":0.20167734803076814,\"ema1\":0.20502117806729003,\"sma1\":0.2089685185185185,\"sma2\":0.20900850000000007,\"rsi_avg_gain\":0.0014728591363207468,\"rsi_avg_loss\":0.0016241104250751448,\"rsi\":48},{\"period_id\":\"120m210016\",\"size\":\"120m\",\"time\":1512115200000,\"open\":0.19814,\"high\":0.20206,\"low\":0.196,\"close\":0.20206,\"volume\":713837.5213206597,\"close_time\":1512122388374,\"vwap\":0.20108479055591405,\"ema1\":0.205189535175379,\"sma1\":0.20896796296296294,\"sma2\":0.2090548333333334,\"rsi_avg_gain\":0.0015461559929608026,\"rsi_avg_loss\":0.0017490419962347713,\"rsi\":47},{\"period_id\":\"120m210015\",\"size\":\"120m\",\"time\":1512108000000,\"open\":0.19743,\"high\":0.19982,\"low\":0.1961,\"close\":0.1971,\"volume\":557649.4492912301,\"close_time\":1512115180599,\"vwap\":0.20129695509274487,\"ema1\":0.2054053651874741,\"sma1\":0.20899740740740735,\"sma2\":0.2091865000000001,\"rsi_avg_gain\":0.0012835526078039418,\"rsi_avg_loss\":0.0018835836882528307,\"rsi\":41},{\"period_id\":\"120m210014\",\"size\":\"120m\",\"time\":1512100800000,\"open\":0.199,\"high\":0.20197,\"low\":0.19702,\"close\":0.1975,\"volume\":635311.7339892703,\"close_time\":1512107990517,\"vwap\":0.20181260956281277,\"ema1\":0.2059781489935068,\"sma1\":0.20898657407407406,\"sma2\":0.20932833333333345,\"rsi_avg_gain\":0.0013822874237888606,\"rsi_avg_loss\":0.0019977055104261243,\"rsi\":41},{\"period_id\":\"120m210013\",\"size\":\"120m\",\"time\":1512093600000,\"open\":0.20012,\"high\":0.201,\"low\":0.19722,\"close\":0.1976,\"volume\":236566.50866583994,\"close_time\":1512100510000,\"vwap\":0.20227364611364804,\"ema1\":0.2065628489240935,\"sma1\":0.20897259259259257,\"sma2\":0.20943650000000008,\"rsi_avg_gain\":0.001488617225618773,\"rsi_avg_loss\":0.002143682857381981,\"rsi\":41},{\"period_id\":\"120m210012\",\"size\":\"120m\",\"time\":1512086400000,\"open\":0.20222,\"high\":0.2041,\"low\":0.198,\"close\":0.20012,\"volume\":698903.8259039099,\"close_time\":1512093589718,\"vwap\":0.20238121438825715,\"ema1\":0.20718097643609992,\"sma1\":0.20892999999999995,\"sma2\":0.20950633333333343,\"rsi_avg_gain\":0.0016031262429740633,\"rsi_avg_loss\":0.002114735384872903,\"rsi\":43},{\"period_id\":\"120m210011\",\"size\":\"120m\",\"time\":1512079200000,\"open\":0.20296,\"high\":0.20684,\"low\":0.20112,\"close\":0.2026,\"volume\":1227702.9432458305,\"close_time\":1512086391967,\"vwap\":0.2028356962832654,\"ema1\":0.20766794032824476,\"sma1\":0.20887870370370368,\"sma2\":0.20958883333333342,\"rsi_avg_gain\":0.0017264436462797604,\"rsi_avg_loss\":0.0020866381067862027,\"rsi\":45},{\"period_id\":\"120m210010\",\"size\":\"120m\",\"time\":1512072000000,\"open\":0.2039,\"high\":0.2045,\"low\":0.19901,\"close\":0.2024,\"volume\":1258077.1042229799,\"close_time\":1512079169720,\"vwap\":0.20150526656862996,\"ema1\":0.20801745345433062,\"sma1\":0.20884907407407405,\"sma2\":0.20968183333333337,\"rsi_avg_gain\":0.0018438623883012802,\"rsi_avg_loss\":0.0022471487303851417,\"rsi\":45},{\"period_id\":\"120m210009\",\"size\":\"120m\",\"time\":1512064800000,\"open\":0.19698,\"high\":0.2046,\"low\":0.19566,\"close\":0.2039,\"volume\":1647673.1437247903,\"close_time\":1512071867725,\"vwap\":0.1973111676489279,\"ema1\":0.2084048640373879,\"sma1\":0.2088435185185185,\"sma2\":0.20974683333333338,\"rsi_avg_gain\":0.001985697956632148,\"rsi_avg_loss\":0.0023046217096455374,\"rsi\":46},{\"period_id\":\"120m210008\",\"size\":\"120m\",\"time\":1512057600000,\"open\":0.19378,\"high\":0.19889,\"low\":0.19002,\"close\":0.197,\"volume\":1298684.4076519401,\"close_time\":1512064799932,\"vwap\":0.19674965993029844,\"ema1\":0.20871554431582845,\"sma1\":0.20887231481481483,\"sma2\":0.20992133333333338,\"rsi_avg_gain\":0.0016076747225269295,\"rsi_avg_loss\":0.0024819003026951944,\"rsi\":39},{\"period_id\":\"120m210007\",\"size\":\"120m\",\"time\":1512050400000,\"open\":0.1957,\"high\":0.196,\"low\":0.19,\"close\":0.19341,\"volume\":3496820.0965343695,\"close_time\":1512057579478,\"vwap\":0.19697278042809074,\"ema1\":0.20952351288933385,\"sma1\":0.20893879629629628,\"sma2\":0.21015883333333338,\"rsi_avg_gain\":0.001455188162721308,\"rsi_avg_loss\":0.002672815710594825,\"rsi\":35},{\"period_id\":\"120m210006\",\"size\":\"120m\",\"time\":1512043200000,\"open\":0.201,\"high\":0.205,\"low\":0.1957,\"close\":0.196,\"volume\":2207844.756551129,\"close_time\":1512050392604,\"vwap\":0.20222537396000756,\"ema1\":0.2106347896403224,\"sma1\":0.208925,\"sma2\":0.2103088333333334,\"rsi_avg_gain\":0.0015671257136998702,\"rsi_avg_loss\":0.0026791861498713493,\"rsi\":37},{\"period_id\":\"120m210005\",\"size\":\"120m\",\"time\":1512036000000,\"open\":0.20723,\"high\":0.20859,\"low\":0.2,\"close\":0.20132,\"volume\":1182444.4129667808,\"close_time\":1512043188497,\"vwap\":0.2051528839252806,\"ema1\":0.211644085477586,\"sma1\":0.20887981481481482,\"sma2\":0.21035600000000004,\"rsi_avg_gain\":0.001687673845522937,\"rsi_avg_loss\":0.002476046622938377,\"rsi\":41},{\"period_id\":\"120m210004\",\"size\":\"120m\",\"time\":1512028800000,\"open\":0.206,\"high\":0.2105,\"low\":0.206,\"close\":0.20719,\"volume\":1239318.2030057004,\"close_time\":1512035986958,\"vwap\":0.20795054883544808,\"ema1\":0.21235609137259193,\"sma1\":0.20882814814814818,\"sma2\":0.21028283333333336,\"rsi_avg_gain\":0.001817494910563163,\"rsi_avg_loss\":0.0022149732862413282,\"rsi\":45},{\"period_id\":\"120m210003\",\"size\":\"120m\",\"time\":1512021600000,\"open\":0.2058,\"high\":0.208,\"low\":0.20034,\"close\":0.206,\"volume\":1034005.3892385698,\"close_time\":1512028795858,\"vwap\":0.2058109844904312,\"ema1\":0.21271237353621897,\"sma1\":0.20880490740740745,\"sma2\":0.21024950000000003,\"rsi_avg_gain\":0.0018657637498372508,\"rsi_avg_loss\":0.0023853558467214304,\"rsi\":44},{\"period_id\":\"120m210002\",\"size\":\"120m\",\"time\":1512014400000,\"open\":0.20938,\"high\":0.21089,\"low\":0.205,\"close\":0.20788,\"volume\":707748.94552877,\"close_time\":1512021589204,\"vwap\":0.2018018712721335,\"ema1\":0.21317529584906167,\"sma1\":0.20873240740740742,\"sma2\":0.21019433333333337,\"rsi_avg_gain\":0.00200928403828627,\"rsi_avg_loss\":0.002424229373392308,\"rsi\":45},{\"period_id\":\"120m210001\",\"size\":\"120m\",\"time\":1512007200000,\"open\":0.20915,\"high\":0.21,\"low\":0.20531,\"close\":0.20941,\"volume\":290501.8359916002,\"close_time\":1512014340616,\"vwap\":0.20171574099968778,\"ema1\":0.21354048866623834,\"sma1\":0.2086953703703704,\"sma2\":0.2100956666666667,\"rsi_avg_gain\":0.0021638443489236754,\"rsi_avg_loss\":0.0024930162482686394,\"rsi\":46},{\"period_id\":\"120m210000\",\"size\":\"120m\",\"time\":1512000000000,\"open\":0.201,\"high\":0.20999,\"low\":0.2,\"close\":0.20998,\"volume\":1165564.5829144393,\"close_time\":1512007030383,\"vwap\":0.20170019684992116,\"ema1\":0.2138253499535651,\"sma1\":0.20865833333333336,\"sma2\":0.2099876666666667,\"rsi_avg_gain\":0.0023302939142254967,\"rsi_avg_loss\":0.002640940575058536,\"rsi\":47},{\"period_id\":\"120m209999\",\"size\":\"120m\",\"time\":1511992800000,\"open\":0.20395,\"high\":0.21,\"low\":0.2,\"close\":0.20105,\"volume\":1814667.9738222098,\"close_time\":1511999980364,\"vwap\":0.2016151882458231,\"ema1\":0.21409054650208684,\"sma1\":0.20863870370370372,\"sma2\":0.2100181666666667,\"rsi_avg_gain\":0.001822624215319766,\"rsi_avg_loss\":0.002844089850063039,\"rsi\":39},{\"period_id\":\"120m209998\",\"size\":\"120m\",\"time\":1511985600000,\"open\":0.1959,\"high\":0.21,\"low\":0.191,\"close\":0.20478,\"volume\":4757349.276058303,\"close_time\":1511992776919,\"vwap\":0.20137317053235249,\"ema1\":0.21498989453671352,\"sma1\":0.20861925925925925,\"sma2\":0.20996150000000005,\"rsi_avg_gain\":0.0019628260780366713,\"rsi_avg_loss\":0.0027759429154525046,\"rsi\":41},{\"period_id\":\"120m209997\",\"size\":\"120m\",\"time\":1511978400000,\"open\":0.21606,\"high\":0.21957,\"low\":0.192,\"close\":0.19899,\"volume\":4420248.183224255,\"close_time\":1511985598964,\"vwap\":0.20139378529465493,\"ema1\":0.2156940251944179,\"sma1\":0.2085112962962963,\"sma2\":0.21001166666666674,\"rsi_avg_gain\":0.0016684280840394933,\"rsi_avg_loss\":0.002989476985871928,\"rsi\":36},{\"period_id\":\"120m209996\",\"size\":\"120m\",\"time\":1511971200000,\"open\":0.21998,\"high\":0.223,\"low\":0.216,\"close\":0.216,\"volume\":2351105.5345271663,\"close_time\":1511978391883,\"vwap\":0.2229356605314724,\"ema1\":0.21684602693196398,\"sma1\":0.20834462962962963,\"sma2\":0.20977833333333334,\"rsi_avg_gain\":0.001796768705888685,\"rsi_avg_loss\":0.0019109752155543843,\"rsi\":48},{\"period_id\":\"120m209995\",\"size\":\"120m\",\"time\":1511964000000,\"open\":0.22841,\"high\":0.23,\"low\":0.218,\"close\":0.218,\"volume\":4281064.854303387,\"close_time\":1511971197605,\"vwap\":0.22364121271710036,\"ema1\":0.21690437361692702,\"sma1\":0.20811185185185188,\"sma2\":0.20949500000000004,\"rsi_avg_gain\":0.0019349816832647377,\"rsi_avg_loss\":0.001904127155212414,\"rsi\":50},{\"period_id\":\"120m209994\",\"size\":\"120m\",\"time\":1511956800000,\"open\":0.22286,\"high\":0.22878,\"low\":0.22169,\"close\":0.22799,\"volume\":3263738.472919323,\"close_time\":1511963974595,\"vwap\":0.22394289879109616,\"ema1\":0.2168288131767151,\"sma1\":0.20787731481481483,\"sma2\":0.20903600000000006,\"rsi_avg_gain\":0.002083826428131256,\"rsi_avg_loss\":0.0012821369363825996,\"rsi\":62},{\"period_id\":\"120m209993\",\"size\":\"120m\",\"time\":1511949600000,\"open\":0.22398,\"high\":0.22488,\"low\":0.22111,\"close\":0.22242,\"volume\":2361820.0209971713,\"close_time\":1511956799508,\"vwap\":0.22275890886835847,\"ema1\":0.21605907615441958,\"sma1\":0.20768370370370373,\"sma2\":0.20868383333333335,\"rsi_avg_gain\":0.0018156592302951999,\"rsi_avg_loss\":0.0013807628545658764,\"rsi\":57},{\"period_id\":\"120m209992\",\"size\":\"120m\",\"time\":1511942400000,\"open\":0.2195,\"high\":0.22488,\"low\":0.2177,\"close\":0.2239,\"volume\":2649396.6815256095,\"close_time\":1511949549969,\"vwap\":0.2256476402178514,\"ema1\":0.2156203917512761,\"sma1\":0.20746259259259267,\"sma2\":0.20830200000000007,\"rsi_avg_gain\":0.001955325324933292,\"rsi_avg_loss\":0.0013731292279940222,\"rsi\":59},{\"period_id\":\"120m209991\",\"size\":\"120m\",\"time\":1511935200000,\"open\":0.2175,\"high\":0.22077,\"low\":0.214,\"close\":0.2205,\"volume\":2973725.5863664374,\"close_time\":1511942396778,\"vwap\":0.22642124895792468,\"ema1\":0.21504938428584686,\"sma1\":0.20727925925925936,\"sma2\":0.2079796666666667,\"rsi_avg_gain\":0.0018441965037743157,\"rsi_avg_loss\":0.0014787545532243315,\"rsi\":55},{\"period_id\":\"120m209990\",\"size\":\"120m\",\"time\":1511928000000,\"open\":0.22001,\"high\":0.22217,\"low\":0.2151,\"close\":0.2175,\"volume\":1326236.08597484,\"close_time\":1511935186922,\"vwap\":0.2295020860366644,\"ema1\":0.2146734797538363,\"sma1\":0.20712027777777783,\"sma2\":0.2077513333333334,\"rsi_avg_gain\":0.001755288542526186,\"rsi_avg_loss\":0.001592504903472357,\"rsi\":52},{\"period_id\":\"120m209989\",\"size\":\"120m\",\"time\":1511920800000,\"open\":0.22788,\"high\":0.22788,\"low\":0.22,\"close\":0.22,\"volume\":579065.919381,\"close_time\":1511926770791,\"vwap\":0.23054971771104307,\"ema1\":0.2144785473230664,\"sma1\":0.2068621296296297,\"sma2\":0.20747766666666675,\"rsi_avg_gain\":0.0018903107381051233,\"rsi_avg_loss\":0.0015226975883548457,\"rsi\":55},{\"period_id\":\"120m209988\",\"size\":\"120m\",\"time\":1511913600000,\"open\":0.23498,\"high\":0.235,\"low\":0.22137,\"close\":0.227,\"volume\":1532362.66207104,\"close_time\":1511920523754,\"vwap\":0.23069274342042864,\"ema1\":0.21409775748327786,\"sma1\":0.20650898148148156,\"sma2\":0.20706983333333343,\"rsi_avg_gain\":0.002035719256420902,\"rsi_avg_loss\":0.0011013666336129103,\"rsi\":65},{\"period_id\":\"120m209987\",\"size\":\"120m\",\"time\":1511906400000,\"open\":0.22599,\"high\":0.235,\"low\":0.22402,\"close\":0.23374,\"volume\":5473626.6050023865,\"close_time\":1511913591464,\"vwap\":0.23103373170610375,\"ema1\":0.2132079476545384,\"sma1\":0.20614666666666673,\"sma2\":0.2065958333333334,\"rsi_avg_gain\":0.002192313045376356,\"rsi_avg_loss\":0.0006676256054292884,\"rsi\":77},{\"period_id\":\"120m209986\",\"size\":\"120m\",\"time\":1511899200000,\"open\":0.22344,\"high\":0.2275,\"low\":0.221,\"close\":0.22599,\"volume\":1912175.8815506604,\"close_time\":1511906390069,\"vwap\":0.22152046425106922,\"ema1\":0.21179194404450657,\"sma1\":0.2058545370370371,\"sma2\":0.20629600000000006,\"rsi_avg_gain\":0.0017647986642514598,\"rsi_avg_loss\":0.0007189814212315414,\"rsi\":71},{\"period_id\":\"120m209985\",\"size\":\"120m\",\"time\":1511892000000,\"open\":0.22245,\"high\":0.22395,\"low\":0.22021,\"close\":0.22111,\"volume\":1405796.5932471403,\"close_time\":1511899189317,\"vwap\":0.22108615570601814,\"ema1\":0.21081276777171393,\"sma1\":0.20559564814814818,\"sma2\":0.2060825,\"rsi_avg_gain\":0.0015251677922708032,\"rsi_avg_loss\":0.0007742876844031984,\"rsi\":66},{\"period_id\":\"120m209984\",\"size\":\"120m\",\"time\":1511884800000,\"open\":0.2223,\"high\":0.22769,\"low\":0.2201,\"close\":0.223,\"volume\":3903963.718945954,\"close_time\":1511891998498,\"vwap\":0.22091854365686556,\"ema1\":0.21010261382493559,\"sma1\":0.20531611111111112,\"sma2\":0.20581599999999997,\"rsi_avg_gain\":0.0016424883916762495,\"rsi_avg_loss\":0.0006884636601265212,\"rsi\":70},{\"period_id\":\"120m209983\",\"size\":\"120m\",\"time\":1511877600000,\"open\":0.21498,\"high\":0.2223,\"low\":0.21382,\"close\":0.2223,\"volume\":3476791.268732116,\"close_time\":1511884789277,\"vwap\":0.21847307101581634,\"ema1\":0.20921313891631046,\"sma1\":0.20508092592592592,\"sma2\":0.20551100000000003,\"rsi_avg_gain\":0.0017149874987282682,\"rsi_avg_loss\":0.0007414224032131767,\"rsi\":70},{\"period_id\":\"120m209982\",\"size\":\"120m\",\"time\":1511870400000,\"open\":0.21701,\"high\":0.21897,\"low\":0.21,\"close\":0.21324,\"volume\":1580030.8104449601,\"close_time\":1511877576662,\"vwap\":0.21521494143756348,\"ema1\":0.20831059677260774,\"sma1\":0.20487055555555556,\"sma2\":0.20535616666666667,\"rsi_avg_gain\":0.0011499865370919824,\"rsi_avg_loss\":0.0007984548957680363,\"rsi\":59},{\"period_id\":\"120m209981\",\"size\":\"120m\",\"time\":1511863200000,\"open\":0.2144,\"high\":0.21995,\"low\":0.21399,\"close\":0.21797,\"volume\":2105043.1876786407,\"close_time\":1511870399364,\"vwap\":0.21692442093706138,\"ema1\":0.2079706379293393,\"sma1\":0.20467657407407408,\"sma2\":0.2050981666666667,\"rsi_avg_gain\":0.0012384470399452118,\"rsi_avg_loss\":0.0004960283492886556,\"rsi\":71},{\"period_id\":\"120m209980\",\"size\":\"120m\",\"time\":1511856000000,\"open\":0.21703,\"high\":0.218,\"low\":0.20949,\"close\":0.215,\"volume\":1955352.6909786584,\"close_time\":1511863185135,\"vwap\":0.21249001531993775,\"ema1\":0.20728102675205237,\"sma1\":0.20445435185185185,\"sma2\":0.2048826666666667,\"rsi_avg_gain\":0.0011052506584025357,\"rsi_avg_loss\":0.0005341843761570138,\"rsi\":67},{\"period_id\":\"120m209979\",\"size\":\"120m\",\"time\":1511848800000,\"open\":0.2126,\"high\":0.21772,\"low\":0.2101,\"close\":0.21602,\"volume\":1171198.8276388498,\"close_time\":1511855966678,\"vwap\":0.21220431562955958,\"ema1\":0.20674868376943528,\"sma1\":0.20422814814814816,\"sma2\":0.2046606666666667,\"rsi_avg_gain\":0.0011902699398181154,\"rsi_avg_loss\":0.0004968139435537077,\"rsi\":71},{\"period_id\":\"120m209978\",\"size\":\"120m\",\"time\":1511841600000,\"open\":0.21568,\"high\":0.218,\"low\":0.2126,\"close\":0.213,\"volume\":1039125.3916204604,\"close_time\":1511848787131,\"vwap\":0.2119241460098359,\"ema1\":0.206109282650086,\"sma1\":0.20400620370370373,\"sma2\":0.20447433333333334,\"rsi_avg_gain\":0.0010495214736502786,\"rsi_avg_loss\":0.0005350304007501469,\"rsi\":66},{\"period_id\":\"120m209977\",\"size\":\"120m\",\"time\":1511834400000,\"open\":0.21,\"high\":0.21809,\"low\":0.20801,\"close\":0.21576,\"volume\":3468057.7474857005,\"close_time\":1511841578393,\"vwap\":0.2117365301191147,\"ema1\":0.20563406076388502,\"sma1\":0.2037875,\"sma2\":0.20425250000000003,\"rsi_avg_gain\":0.0011302538947003,\"rsi_avg_loss\":0.00036387889311554185,\"rsi\":76},{\"period_id\":\"120m209976\",\"size\":\"120m\",\"time\":1511827200000,\"open\":0.205,\"high\":0.21,\"low\":0.205,\"close\":0.21,\"volume\":1558481.138053661,\"close_time\":1511834380900,\"vwap\":0.20748706394468766,\"ema1\":0.20493572012691158,\"sma1\":0.2036434259259259,\"sma2\":0.20412683333333337,\"rsi_avg_gain\":0.0007741195789080145,\"rsi_avg_loss\":0.0003918695772013528,\"rsi\":66},{\"period_id\":\"120m209975\",\"size\":\"120m\",\"time\":1511820000000,\"open\":0.20599,\"high\":0.2065,\"low\":0.2048,\"close\":0.205,\"volume\":389789.4495868001,\"close_time\":1511827185105,\"vwap\":0.2063866571658534,\"ema1\":0.20458645944600892,\"sma1\":0.20358314814814815,\"sma2\":0.2040988333333334,\"rsi_avg_gain\":0.0004490518542086307,\"rsi_avg_loss\":0.00042201339083222607,\"rsi\":52},{\"period_id\":\"120m209974\",\"size\":\"120m\",\"time\":1511812800000,\"open\":0.20676,\"high\":0.2072,\"low\":0.205,\"close\":0.20599,\"volume\":1422752.5999248598,\"close_time\":1511819964513,\"vwap\":0.20643226581627128,\"ema1\":0.20455793940780265,\"sma1\":0.20345999999999995,\"sma2\":0.20407566666666666,\"rsi_avg_gain\":0.00048359430453237155,\"rsi_avg_loss\":0.00037832211320393435,\"rsi\":56},{\"period_id\":\"120m209973\",\"size\":\"120m\",\"time\":1511805600000,\"open\":0.2056,\"high\":0.2075,\"low\":0.20438,\"close\":0.20677,\"volume\":1196450.54110655,\"close_time\":1511812798973,\"vwap\":0.20656885857595228,\"ema1\":0.20445917660834076,\"sma1\":0.2033433333333333,\"sma2\":0.20399083333333332,\"rsi_avg_gain\":0.000520793866419477,\"rsi_avg_loss\":0.00034742381421962133,\"rsi\":60},{\"period_id\":\"120m209972\",\"size\":\"120m\",\"time\":1511798400000,\"open\":0.20379,\"high\":0.20596,\"low\":0.2036,\"close\":0.2056,\"volume\":1021665.5822057405,\"close_time\":1511805533503,\"vwap\":0.2041630432306626,\"ema1\":0.2042998094778815,\"sma1\":0.20321870370370365,\"sma2\":0.20394649999999998,\"rsi_avg_gain\":0.0004708549330671288,\"rsi_avg_loss\":0.000374148723005746,\"rsi\":56},{\"period_id\":\"120m209971\",\"size\":\"120m\",\"time\":1511791200000,\"open\":0.20492,\"high\":0.2057,\"low\":0.20361,\"close\":0.20362,\"volume\":1156598.33650544,\"close_time\":1511798339155,\"vwap\":0.2040475896928013,\"ema1\":0.20421014116601127,\"sma1\":0.2030909259259259,\"sma2\":0.20390683333333334,\"rsi_avg_gain\":0.00035476685099536875,\"rsi_avg_loss\":0.00040292939400618803,\"rsi\":47},{\"period_id\":\"120m209970\",\"size\":\"120m\",\"time\":1511784000000,\"open\":0.20488,\"high\":0.205,\"low\":0.203,\"close\":0.20499,\"volume\":1106405.0097936601,\"close_time\":1511791177277,\"vwap\":0.20389803599540696,\"ema1\":0.20425084055677067,\"sma1\":0.20297490740740737,\"sma2\":0.20384716666666666,\"rsi_avg_gain\":0.00038205660876424325,\"rsi_avg_loss\":0.00032853934739127865,\"rsi\":54},{\"period_id\":\"120m209969\",\"size\":\"120m\",\"time\":1511776800000,\"open\":0.2043,\"high\":0.20497,\"low\":0.20151,\"close\":0.2045,\"volume\":1162813.67094193,\"close_time\":1511783982966,\"vwap\":0.20380846883991205,\"ema1\":0.2041998640434445,\"sma1\":0.20285972222222218,\"sma2\":0.2037865,\"rsi_avg_gain\":0.0003737532709768759,\"rsi_avg_loss\":0.00035381160488291545,\"rsi\":51},{\"period_id\":\"120m209968\",\"size\":\"120m\",\"time\":1511769600000,\"open\":0.2048,\"high\":0.2055,\"low\":0.202,\"close\":0.20445,\"volume\":1043370.4015265596,\"close_time\":1511776708321,\"vwap\":0.20378450678651874,\"ema1\":0.20417916501195793,\"sma1\":0.20275324074074075,\"sma2\":0.20371350000000002,\"rsi_avg_gain\":0.0003986573687443283,\"rsi_avg_loss\":0.00038102788218160124,\"rsi\":51},{\"period_id\":\"120m209967\",\"size\":\"120m\",\"time\":1511762400000,\"open\":0.204,\"high\":0.2056,\"low\":0.2035,\"close\":0.2048,\"volume\":727163.5247073199,\"close_time\":1511769598414,\"vwap\":0.20363545356392032,\"ema1\":0.20416048673692055,\"sma1\":0.20261805555555554,\"sma2\":0.20366683333333338,\"rsi_avg_gain\":0.0004293233201861998,\"rsi_avg_loss\":0.00038341464234941546,\"rsi\":53},{\"period_id\":\"120m209966\",\"size\":\"120m\",\"time\":1511755200000,\"open\":0.20399,\"high\":0.2049,\"low\":0.2035,\"close\":0.2049,\"volume\":169624.14325531002,\"close_time\":1511762296420,\"vwap\":0.20349478362274784,\"ema1\":0.20411638237394955,\"sma1\":0.20250296296296297,\"sma2\":0.2035981666666667,\"rsi_avg_gain\":0.0004623481909697536,\"rsi_avg_loss\":0.00040521576868398674,\"rsi\":53},{\"period_id\":\"120m209965\",\"size\":\"120m\",\"time\":1511748000000,\"open\":0.20393,\"high\":0.20403,\"low\":0.20161,\"close\":0.20349,\"volume\":152512.01532671004,\"close_time\":1511754632407,\"vwap\":0.20348825868238932,\"ema1\":0.20406233977904953,\"sma1\":0.20239157407407407,\"sma2\":0.2035233333333334,\"rsi_avg_gain\":0.0003894518979674274,\"rsi_avg_loss\":0.0004363862124289088,\"rsi\":47},{\"period_id\":\"120m209964\",\"size\":\"120m\",\"time\":1511740800000,\"open\":0.20231,\"high\":0.20396,\"low\":0.2013,\"close\":0.20352,\"volume\":209917.99183870008,\"close_time\":1511747968177,\"vwap\":0.20349662908661997,\"ema1\":0.2041018114879495,\"sma1\":0.20228796296296295,\"sma2\":0.2034266666666667,\"rsi_avg_gain\":0.00041940973627261415,\"rsi_avg_loss\":0.0004676466903080555,\"rsi\":47},{\"period_id\":\"120m209963\",\"size\":\"120m\",\"time\":1511733600000,\"open\":0.2026,\"high\":0.20495,\"low\":0.201,\"close\":0.20325,\"volume\":635724.2675824101,\"close_time\":1511740746473,\"vwap\":0.20351088415577787,\"ema1\":0.20414193641815293,\"sma1\":0.20218731481481478,\"sma2\":0.20334450000000007,\"rsi_avg_gain\":0.00043090279290896753,\"rsi_avg_loss\":0.0005036195126394444,\"rsi\":46},{\"period_id\":\"120m209962\",\"size\":\"120m\",\"time\":1511726400000,\"open\":0.202,\"high\":0.20407,\"low\":0.201,\"close\":0.2026,\"volume\":465787.79993479024,\"close_time\":1511733598819,\"vwap\":0.203690557869686,\"ema1\":0.20420344927457726,\"sma1\":0.20209481481481475,\"sma2\":0.20330283333333338,\"rsi_avg_gain\":0.000414049161594274,\"rsi_avg_loss\":0.0005423594751501709,\"rsi\":43},{\"period_id\":\"120m209961\",\"size\":\"120m\",\"time\":1511719200000,\"open\":0.2035,\"high\":0.20509,\"low\":0.2011,\"close\":0.202,\"volume\":861816.7927144095,\"close_time\":1511726348696,\"vwap\":0.2038991179834363,\"ema1\":0.2043140319831688,\"sma1\":0.201999074074074,\"sma2\":0.20326950000000005,\"rsi_avg_gain\":0.00039974525094768046,\"rsi_avg_loss\":0.0005840794347771072,\"rsi\":41},{\"period_id\":\"120m209960\",\"size\":\"120m\",\"time\":1511712000000,\"open\":0.20403,\"high\":0.2056,\"low\":0.203,\"close\":0.2035,\"volume\":878007.2638635704,\"close_time\":1511719170255,\"vwap\":0.2045417206605167,\"ema1\":0.20447362039580114,\"sma1\":0.20191018518518516,\"sma2\":0.20324416666666673,\"rsi_avg_gain\":0.00043049488563596356,\"rsi_avg_loss\":0.0005136240066830405,\"rsi\":46},{\"period_id\":\"120m209959\",\"size\":\"120m\",\"time\":1511704800000,\"open\":0.20491,\"high\":0.20563,\"low\":0.204,\"close\":0.204,\"volume\":516405.63428572,\"close_time\":1511711912210,\"vwap\":0.20502660015402607,\"ema1\":0.20454076662999432,\"sma1\":0.2018391666666666,\"sma2\":0.2032106666666667,\"rsi_avg_gain\":0.00046360987683873,\"rsi_avg_loss\":0.0005146720071971205,\"rsi\":47},{\"period_id\":\"120m209958\",\"size\":\"120m\",\"time\":1511697600000,\"open\":0.20503,\"high\":0.2057,\"low\":0.2039,\"close\":0.205,\"volume\":523334.76196654997,\"close_time\":1511704792409,\"vwap\":0.20507149218991882,\"ema1\":0.20457806088033875,\"sma1\":0.20177712962962957,\"sma2\":0.20317433333333337,\"rsi_avg_gain\":0.0004992721750570939,\"rsi_avg_loss\":0.000477339084673822,\"rsi\":51},{\"period_id\":\"120m209957\",\"size\":\"120m\",\"time\":1511690400000,\"open\":0.2046,\"high\":0.20647,\"low\":0.2034,\"close\":0.2058,\"volume\":814346.0664185897,\"close_time\":1511697529865,\"vwap\":0.20524042206110651,\"ema1\":0.20454896163070693,\"sma1\":0.20171722222222216,\"sma2\":0.2031126666666667,\"rsi_avg_gain\":0.0005376777269845626,\"rsi_avg_loss\":0.00045251901426411427,\"rsi\":54},{\"period_id\":\"120m209956\",\"size\":\"120m\",\"time\":1511683200000,\"open\":0.20497,\"high\":0.2061,\"low\":0.203,\"close\":0.20484,\"volume\":532312.11396432,\"close_time\":1511690345924,\"vwap\":0.20564634451903793,\"ema1\":0.2044626831224798,\"sma1\":0.2016079629629629,\"sma2\":0.20306733333333335,\"rsi_avg_gain\":0.0005051913982910661,\"rsi_avg_loss\":0.00048732816920750763,\"rsi\":51},{\"period_id\":\"120m209955\",\"size\":\"120m\",\"time\":1511676000000,\"open\":0.20519,\"high\":0.20636,\"low\":0.20321,\"close\":0.205,\"volume\":265488.4841529699,\"close_time\":1511683195091,\"vwap\":0.20567690535313596,\"ema1\":0.20443666126885773,\"sma1\":0.2015114814814814,\"sma2\":0.20302150000000005,\"rsi_avg_gain\":0.0005440522750826866,\"rsi_avg_loss\":0.0005125072591465471,\"rsi\":51},{\"period_id\":\"120m209954\",\"size\":\"120m\",\"time\":1511668800000,\"open\":0.20465,\"high\":0.20601,\"low\":0.20355,\"close\":0.20601,\"volume\":185167.23776778998,\"close_time\":1511675783840,\"vwap\":0.20568956122594131,\"ema1\":0.2043978103218824,\"sma1\":0.201427037037037,\"sma2\":0.20296283333333337,\"rsi_avg_gain\":0.0005859024500890471,\"rsi_avg_loss\":0.0004742385867732038,\"rsi\":55},{\"period_id\":\"120m209953\",\"size\":\"120m\",\"time\":1511661600000,\"open\":0.204,\"high\":0.20552,\"low\":0.2036,\"close\":0.20409,\"volume\":169137.82431805995,\"close_time\":1511668637151,\"vwap\":0.2056919929731927,\"ema1\":0.2042866248268398,\"sma1\":0.20133425925925919,\"sma2\":0.2028946666666667,\"rsi_avg_gain\":0.000483279561634358,\"rsi_avg_loss\":0.0005107184780634502,\"rsi\":49},{\"period_id\":\"120m209952\",\"size\":\"120m\",\"time\":1511654400000,\"open\":0.2072,\"high\":0.2072,\"low\":0.2036,\"close\":0.20431,\"volume\":606910.1181575202,\"close_time\":1511661581796,\"vwap\":0.20569472270744646,\"ema1\":0.20430018515972528,\"sma1\":0.2012018518518518,\"sma2\":0.2029205,\"rsi_avg_gain\":0.0005204549125293086,\"rsi_avg_loss\":0.000533081437914485,\"rsi\":49},{\"period_id\":\"120m209951\",\"size\":\"120m\",\"time\":1511647200000,\"open\":0.20798,\"high\":0.208,\"low\":0.2062,\"close\":0.20755,\"volume\":640851.1185827403,\"close_time\":1511654269926,\"vwap\":0.20572204273517578,\"ema1\":0.2042995082741891,\"sma1\":0.20115555555555548,\"sma2\":0.20279466666666665,\"rsi_avg_gain\":0.0005604899058007939,\"rsi_avg_loss\":0.00032485693313867456,\"rsi\":63},{\"period_id\":\"120m209950\",\"size\":\"120m\",\"time\":1511640000000,\"open\":0.2078,\"high\":0.208,\"low\":0.207,\"close\":0.20798,\"volume\":583376.7692860903,\"close_time\":1511647194817,\"vwap\":0.2056617517924488,\"ema1\":0.20407533643102974,\"sma1\":0.2011648148148147,\"sma2\":0.20277833333333334,\"rsi_avg_gain\":0.0006036045139393165,\"rsi_avg_loss\":0.0003167690049185737,\"rsi\":66},{\"period_id\":\"120m209949\",\"size\":\"120m\",\"time\":1511632800000,\"open\":0.20704,\"high\":0.208,\"low\":0.20698,\"close\":0.2078,\"volume\":693878.2040950699,\"close_time\":1511639923044,\"vwap\":0.2055557323856043,\"ema1\":0.20380604928834212,\"sma1\":0.20109999999999992,\"sma2\":0.2027316666666667,\"rsi_avg_gain\":0.0006361894765500344,\"rsi_avg_loss\":0.00034113585145077166,\"rsi\":65},{\"period_id\":\"120m209948\",\"size\":\"120m\",\"time\":1511625600000,\"open\":0.20765,\"high\":0.2085,\"low\":0.20601,\"close\":0.20747,\"volume\":1253601.6867732797,\"close_time\":1511632705865,\"vwap\":0.20542360778207563,\"ema1\":0.20353060441167606,\"sma1\":0.20111203703703695,\"sma2\":0.20269050000000002,\"rsi_avg_gain\":0.0006597425132077275,\"rsi_avg_loss\":0.0003673770707931387,\"rsi\":64},{\"period_id\":\"120m209947\",\"size\":\"120m\",\"time\":1511618400000,\"open\":0.20502,\"high\":0.209,\"low\":0.20309,\"close\":0.20766,\"volume\":2273022.4174963282,\"close_time\":1511625590556,\"vwap\":0.20509438589189338,\"ema1\":0.20325892195730888,\"sma1\":0.2012138888888888,\"sma2\":0.20263783333333332,\"rsi_avg_gain\":0.0007104919373006295,\"rsi_avg_loss\":0.0003810214608541476,\"rsi\":65},{\"period_id\":\"120m209946\",\"size\":\"120m\",\"time\":1511611200000,\"open\":0.204,\"high\":0.2065,\"low\":0.20301,\"close\":0.205,\"volume\":1099203.7551069506,\"close_time\":1511618393805,\"vwap\":0.2033061369580159,\"ema1\":0.202955399333675,\"sma1\":0.20133888888888882,\"sma2\":0.20258283333333332,\"rsi_avg_gain\":0.0005605297786314454,\"rsi_avg_loss\":0.00041033080399677436,\"rsi\":58},{\"period_id\":\"120m209945\",\"size\":\"120m\",\"time\":1511604000000,\"open\":0.20388,\"high\":0.2045,\"low\":0.20223,\"close\":0.20415,\"volume\":416695.1976930502,\"close_time\":1511611180381,\"vwap\":0.20251372353666705,\"ema1\":0.20281439239116986,\"sma1\":0.2010916666666666,\"sma2\":0.20257166666666668,\"rsi_avg_gain\":0.0005382628385261727,\"rsi_avg_loss\":0.0004418947119965262,\"rsi\":55},{\"period_id\":\"120m209944\",\"size\":\"120m\",\"time\":1511596800000,\"open\":0.204,\"high\":0.2043,\"low\":0.2,\"close\":0.2028,\"volume\":499000.01411457005,\"close_time\":1511603793654,\"vwap\":0.20237417425586676,\"ema1\":0.20272228152159535,\"sma1\":0.20085351851851846,\"sma2\":0.202525,\"rsi_avg_gain\":0.00047582151841280213,\"rsi_avg_loss\":0.0004758866129193359,\"rsi\":50},{\"period_id\":\"120m209943\",\"size\":\"120m\",\"time\":1511589600000,\"open\":0.20457,\"high\":0.20497,\"low\":0.202,\"close\":0.204,\"volume\":533388.0454640301,\"close_time\":1511596780677,\"vwap\":0.2023020794365537,\"ema1\":0.20271692162653296,\"sma1\":0.2006183333333333,\"sma2\":0.20245,\"rsi_avg_gain\":0.0005124231736753253,\"rsi_avg_loss\":0.0004201855831439018,\"rsi\":55},{\"period_id\":\"120m209942\",\"size\":\"120m\",\"time\":1511582400000,\"open\":0.20222,\"high\":0.20499,\"low\":0.20222,\"close\":0.20457,\"volume\":236988.47305102003,\"close_time\":1511589387547,\"vwap\":0.20207166609461996,\"ema1\":0.20262843346284556,\"sma1\":0.2003841666666666,\"sma2\":0.2023905,\"rsi_avg_gain\":0.0005518403408811196,\"rsi_avg_loss\":0.00040866139723189315,\"rsi\":57},{\"period_id\":\"120m209941\",\"size\":\"120m\",\"time\":1511575200000,\"open\":0.20348,\"high\":0.2045,\"low\":0.2016,\"close\":0.20349,\"volume\":265972.30650534004,\"close_time\":1511581116624,\"vwap\":0.20202569216889674,\"ema1\":0.20249453232235215,\"sma1\":0.20015703703703697,\"sma2\":0.20233233333333328,\"rsi_avg_gain\":0.000511212674795052,\"rsi_avg_loss\":0.00044009688932665416,\"rsi\":54},{\"period_id\":\"120m209940\",\"size\":\"120m\",\"time\":1511568000000,\"open\":0.20287,\"high\":0.20355,\"low\":0.2,\"close\":0.2035,\"volume\":868469.9902756196,\"close_time\":1511575142890,\"vwap\":0.20197487288325416,\"ema1\":0.2024258793790661,\"sma1\":0.19994731481481476,\"sma2\":0.20222166666666663,\"rsi_avg_gain\":0.0005505367267023637,\"rsi_avg_loss\":0.00047318126542870585,\"rsi\":54},{\"period_id\":\"120m209939\",\"size\":\"120m\",\"time\":1511560800000,\"open\":0.20138,\"high\":0.203,\"low\":0.2001,\"close\":0.20288,\"volume\":814359.5293872693,\"close_time\":1511567995794,\"vwap\":0.2017378954242528,\"ema1\":0.20235180209486375,\"sma1\":0.19972231481481478,\"sma2\":0.20209016666666665,\"rsi_avg_gain\":0.0005451933979871622,\"rsi_avg_loss\":0.0005095798243078371,\"rsi\":52},{\"period_id\":\"120m209938\",\"size\":\"120m\",\"time\":1511553600000,\"open\":0.202,\"high\":0.2029,\"low\":0.20001,\"close\":0.20138,\"volume\":909864.2336225205,\"close_time\":1511560780503,\"vwap\":0.20128459159860748,\"ema1\":0.2023153746531302,\"sma1\":0.1995009259259259,\"sma2\":0.2019838333333333,\"rsi_avg_gain\":0.00047174673629386696,\"rsi_avg_loss\":0.0005487782723315168,\"rsi\":46},{\"period_id\":\"120m209937\",\"size\":\"120m\",\"time\":1511546400000,\"open\":0.202,\"high\":0.20249,\"low\":0.20015,\"close\":0.202,\"volume\":696364.2606540502,\"close_time\":1511553569847,\"vwap\":0.20145183224505447,\"ema1\":0.2023798832498978,\"sma1\":0.19928240740740738,\"sma2\":0.20186599999999996,\"rsi_avg_gain\":0.0005080349467780106,\"rsi_avg_loss\":0.0005432996778954789,\"rsi\":48},{\"period_id\":\"120m209936\",\"size\":\"120m\",\"time\":1511539200000,\"open\":0.20135,\"high\":0.2028,\"low\":0.1999,\"close\":0.202,\"volume\":838008.0614882995,\"close_time\":1511546341797,\"vwap\":0.20143829474596098,\"ema1\":0.20240608209471833,\"sma1\":0.19905398148148143,\"sma2\":0.2017648333333333,\"rsi_avg_gain\":0.0005471145580686268,\"rsi_avg_loss\":0.0005850919608105158,\"rsi\":48},{\"period_id\":\"120m209935\",\"size\":\"120m\",\"time\":1511532000000,\"open\":0.20116,\"high\":0.20293,\"low\":0.199,\"close\":0.201,\"volume\":1265678.3266009598,\"close_time\":1511539137387,\"vwap\":0.20142030615823373,\"ema1\":0.20243408775642305,\"sma1\":0.19883574074074073,\"sma2\":0.20167316666666663,\"rsi_avg_gain\":0.0005122772163815981,\"rsi_avg_loss\":0.0006300990347190171,\"rsi\":45},{\"period_id\":\"120m209934\",\"size\":\"120m\",\"time\":1511524800000,\"open\":0.20247,\"high\":0.20311,\"low\":0.20045,\"close\":0.20045,\"volume\":1051248.8631149305,\"close_time\":1511531987163,\"vwap\":0.20152678908820995,\"ema1\":0.2025329903603143,\"sma1\":0.1986217592592592,\"sma2\":0.20158066666666663,\"rsi_avg_gain\":0.0005093754637955655,\"rsi_avg_loss\":0.0006785681912358645,\"rsi\":43},{\"period_id\":\"120m209933\",\"size\":\"120m\",\"time\":1511517600000,\"open\":0.20097,\"high\":0.203,\"low\":0.2,\"close\":0.20129,\"volume\":847409.5129088698,\"close_time\":1511524791332,\"vwap\":0.20157660334962632,\"ema1\":0.2026766448679222,\"sma1\":0.1984087962962962,\"sma2\":0.20148833333333335,\"rsi_avg_gain\":0.0005485581917798397,\"rsi_avg_loss\":0.0006661503597924688,\"rsi\":45},{\"period_id\":\"120m209932\",\"size\":\"120m\",\"time\":1511510400000,\"open\":0.2011,\"high\":0.2052,\"low\":0.198,\"close\":0.20099,\"volume\":2117724.14763733,\"close_time\":1511517580684,\"vwap\":0.20154702559682258,\"ema1\":0.20277227554846855,\"sma1\":0.1981754629629629,\"sma2\":0.20136316666666668,\"rsi_avg_gain\":0.0005676780526859816,\"rsi_avg_loss\":0.0007173926951611203,\"rsi\":44},{\"period_id\":\"120m209931\",\"size\":\"120m\",\"time\":1511503200000,\"open\":0.2038,\"high\":0.20585,\"low\":0.20116,\"close\":0.20116,\"volume\":970807.4843226504,\"close_time\":1511510399395,\"vwap\":0.20413778772147026,\"ema1\":0.20289519110353535,\"sma1\":0.1979268518518518,\"sma2\":0.20119150000000005,\"rsi_avg_gain\":0.0006113455952002879,\"rsi_avg_loss\":0.0007594998255581292,\"rsi\":45},{\"period_id\":\"120m209930\",\"size\":\"120m\",\"time\":1511496000000,\"open\":0.20358,\"high\":0.20486,\"low\":0.20251,\"close\":0.2038,\"volume\":746805.5528653798,\"close_time\":1511503045501,\"vwap\":0.2046645196212799,\"ema1\":0.2030148594555033,\"sma1\":0.1976733333333333,\"sma2\":0.20100000000000004,\"rsi_avg_gain\":0.0006583721794464639,\"rsi_avg_loss\":0.0006148459659856773,\"rsi\":52},{\"period_id\":\"120m209929\",\"size\":\"120m\",\"time\":1511488800000,\"open\":0.20201,\"high\":0.20798,\"low\":0.20201,\"close\":0.20358,\"volume\":230578.55803913996,\"close_time\":1511495740182,\"vwap\":0.2048391586565814,\"ema1\":0.2029607118317449,\"sma1\":0.19739055555555549,\"sma2\":0.20084200000000008,\"rsi_avg_gain\":0.0006920931163269614,\"rsi_avg_loss\":0.0006621418095230372,\"rsi\":51},{\"period_id\":\"120m209928\",\"size\":\"120m\",\"time\":1511481600000,\"open\":0.2052,\"high\":0.20711,\"low\":0.20201,\"close\":0.20253,\"volume\":1199177.8151506893,\"close_time\":1511488793439,\"vwap\":0.20485043774790695,\"ema1\":0.20291800230289972,\"sma1\":0.19711601851851843,\"sma2\":0.2006783333333334,\"rsi_avg_gain\":0.0006645618175828797,\"rsi_avg_loss\":0.0007130757948709632,\"rsi\":48},{\"period_id\":\"120m209927\",\"size\":\"120m\",\"time\":1511474400000,\"open\":0.2079,\"high\":0.2095,\"low\":0.2053,\"close\":0.2053,\"volume\":1323081.9437753898,\"close_time\":1511481589039,\"vwap\":0.20649541541631136,\"ema1\":0.20294476108241005,\"sma1\":0.1968067592592592,\"sma2\":0.2004733333333334,\"rsi_avg_gain\":0.0007156819573969473,\"rsi_avg_loss\":0.0005548508560148817,\"rsi\":56},{\"period_id\":\"120m209926\",\"size\":\"120m\",\"time\":1511467200000,\"open\":0.2083,\"high\":0.21,\"low\":0.20729,\"close\":0.208,\"volume\":1275330.9965464398,\"close_time\":1511474376676,\"vwap\":0.20560993118107818,\"ema1\":0.20278233081223143,\"sma1\":0.19650212962962957,\"sma2\":0.20023533333333343,\"rsi_avg_gain\":0.000770734415658251,\"rsi_avg_loss\":0.00038983938340064327,\"rsi\":66},{\"period_id\":\"120m209925\",\"size\":\"120m\",\"time\":1511460000000,\"open\":0.20701,\"high\":0.2083,\"low\":0.20646,\"close\":0.2083,\"volume\":1232249.5481780006,\"close_time\":1511467164713,\"vwap\":0.2051140263981045,\"ema1\":0.20242249155790257,\"sma1\":0.1962262037037037,\"sma2\":0.19996883333333343,\"rsi_avg_gain\":0.0008300216784011934,\"rsi_avg_loss\":0.00039675010520069106,\"rsi\":68},{\"period_id\":\"120m209924\",\"size\":\"120m\",\"time\":1511452800000,\"open\":0.204,\"high\":0.208,\"low\":0.20257,\"close\":0.20701,\"volume\":3353333.3538510166,\"close_time\":1511459973168,\"vwap\":0.20483907394588413,\"ema1\":0.20201714614810273,\"sma1\":0.19595518518518512,\"sma2\":0.1997133333333334,\"rsi_avg_gain\":0.0007946387305858996,\"rsi_avg_loss\":0.0004272693440622827,\"rsi\":65},{\"period_id\":\"120m209923\",\"size\":\"120m\",\"time\":1511445600000,\"open\":0.2038,\"high\":0.204,\"low\":0.20277,\"close\":0.204,\"volume\":1068651.5517517899,\"close_time\":1511452787259,\"vwap\":0.20308227766605333,\"ema1\":0.20167281139969603,\"sma1\":0.1957237037037037,\"sma2\":0.1995003333333334,\"rsi_avg_gain\":0.0006242263252463525,\"rsi_avg_loss\":0.0004601362166824583,\"rsi\":58},{\"period_id\":\"120m209922\",\"size\":\"120m\",\"time\":1511438400000,\"open\":0.2015,\"high\":0.20473,\"low\":0.20108,\"close\":0.20395,\"volume\":1206952.5871110403,\"close_time\":1511445599875,\"vwap\":0.20298761692324077,\"ema1\":0.20151231563415783,\"sma1\":0.19546222222222218,\"sma2\":0.19929783333333342,\"rsi_avg_gain\":0.0006683975810345339,\"rsi_avg_loss\":0.0004955313102734167,\"rsi\":57},{\"period_id\":\"120m209921\",\"size\":\"120m\",\"time\":1511431200000,\"open\":0.20205,\"high\":0.203,\"low\":0.2004,\"close\":0.20249,\"volume\":1267427.7514401998,\"close_time\":1511438314499,\"vwap\":0.20278955289227832,\"ema1\":0.2013441994709963,\"sma1\":0.19522138888888882,\"sma2\":0.19912800000000005,\"rsi_avg_gain\":0.0006075050872679604,\"rsi_avg_loss\":0.0005336491033713719,\"rsi\":53},{\"period_id\":\"120m209920\",\"size\":\"120m\",\"time\":1511424000000,\"open\":0.20271,\"high\":0.20348,\"low\":0.201,\"close\":0.20207,\"volume\":1254282.6533809998,\"close_time\":1511431188336,\"vwap\":0.20315435823544958,\"ema1\":0.2012651787448581,\"sma1\":0.19496888888888883,\"sma2\":0.19896916666666672,\"rsi_avg_gain\":0.0006219285555193417,\"rsi_avg_loss\":0.000574699034399939,\"rsi\":52},{\"period_id\":\"120m209919\",\"size\":\"120m\",\"time\":1511416800000,\"open\":0.20352,\"high\":0.20488,\"low\":0.2016,\"close\":0.2027,\"volume\":783677.1050473005,\"close_time\":1511423997249,\"vwap\":0.20377448687412678,\"ema1\":0.2012096738307104,\"sma1\":0.19470703703703704,\"sma2\":0.1987408333333334,\"rsi_avg_gain\":0.0006697692136362142,\"rsi_avg_loss\":0.0005704451139691657,\"rsi\":54},{\"period_id\":\"120m209918\",\"size\":\"120m\",\"time\":1511409600000,\"open\":0.20235,\"high\":0.2044,\"low\":0.20158,\"close\":0.20182,\"volume\":332666.98047993996,\"close_time\":1511416739820,\"vwap\":0.20377450588843096,\"ema1\":0.20110689271558696,\"sma1\":0.19445148148148148,\"sma2\":0.19854850000000004,\"rsi_avg_gain\":0.0006535976146851543,\"rsi_avg_loss\":0.0006143255073514092,\"rsi\":52},{\"period_id\":\"120m209917\",\"size\":\"120m\",\"time\":1511402400000,\"open\":0.20245,\"high\":0.20319,\"low\":0.2015,\"close\":0.20245,\"volume\":94018.41895133,\"close_time\":1511409541858,\"vwap\":0.20379720330245324,\"ema1\":0.2010577129028688,\"sma1\":0.19421824074074076,\"sma2\":0.19830600000000007,\"rsi_avg_gain\":0.0007038743542763201,\"rsi_avg_loss\":0.0006131197771476722,\"rsi\":53},{\"period_id\":\"120m209916\",\"size\":\"120m\",\"time\":1511395200000,\"open\":0.20288,\"high\":0.20406,\"low\":0.2015,\"close\":0.20246,\"volume\":905025.8519175604,\"close_time\":1511402350399,\"vwap\":0.20380612392099204,\"ema1\":0.20096169310306666,\"sma1\":0.1939537962962963,\"sma2\":0.1980830000000001,\"rsi_avg_gain\":0.0007580185353744986,\"rsi_avg_loss\":0.0006595136061590309,\"rsi\":53},{\"period_id\":\"120m209915\",\"size\":\"120m\",\"time\":1511388000000,\"open\":0.20468,\"high\":0.205,\"low\":0.2016,\"close\":0.20332,\"volume\":1224339.8817371898,\"close_time\":1511395061474,\"vwap\":0.20403088607749106,\"ema1\":0.20085836159293333,\"sma1\":0.19366212962962964,\"sma2\":0.1979130000000001,\"rsi_avg_gain\":0.0008163276534802293,\"rsi_avg_loss\":0.0006440915758635717,\"rsi\":56},{\"period_id\":\"120m209914\",\"size\":\"120m\",\"time\":1511380800000,\"open\":0.20168,\"high\":0.20488,\"low\":0.20151,\"close\":0.2046,\"volume\":1173801.88607649,\"close_time\":1511387995458,\"vwap\":0.20441042178334792,\"ema1\":0.20068859342692874,\"sma1\":0.19336222222222224,\"sma2\":0.19770300000000005,\"rsi_avg_gain\":0.0008791220883633238,\"rsi_avg_loss\":0.0005951755432376923,\"rsi\":60},{\"period_id\":\"120m209913\",\"size\":\"120m\",\"time\":1511373600000,\"open\":0.2012,\"high\":0.20292,\"low\":0.2,\"close\":0.20168,\"volume\":813905.8158250905,\"close_time\":1511380776554,\"vwap\":0.20105623636010933,\"ema1\":0.20041884124947554,\"sma1\":0.1930805555555556,\"sma2\":0.19755000000000006,\"rsi_avg_gain\":0.0007221314797758867,\"rsi_avg_loss\":0.0006409582773328993,\"rsi\":53},{\"period_id\":\"120m209912\",\"size\":\"120m\",\"time\":1511366400000,\"open\":0.20163,\"high\":0.204,\"low\":0.20009,\"close\":0.20294,\"volume\":1788743.1193710098,\"close_time\":1511373588986,\"vwap\":0.2010055739431462,\"ema1\":0.20033186478392212,\"sma1\":0.192797962962963,\"sma2\":0.1973983333333334,\"rsi_avg_gain\":0.0007776800551432626,\"rsi_avg_loss\":0.000593339683281583,\"rsi\":57},{\"period_id\":\"120m209911\",\"size\":\"120m\",\"time\":1511359200000,\"open\":0.20138,\"high\":0.202,\"low\":0.2,\"close\":0.20124,\"volume\":1000537.6612222702,\"close_time\":1511366359171,\"vwap\":0.20053616230710752,\"ema1\":0.20015199338970985,\"sma1\":0.19253407407407414,\"sma2\":0.1972928333333334,\"rsi_avg_gain\":0.0007067323670773591,\"rsi_avg_loss\":0.0006389811973801663,\"rsi\":53},{\"period_id\":\"120m209910\",\"size\":\"120m\",\"time\":1511352000000,\"open\":0.20086,\"high\":0.20185,\"low\":0.2,\"close\":0.20141,\"volume\":970720.5860405697,\"close_time\":1511359173776,\"vwap\":0.20046087765387272,\"ema1\":0.20007695845106915,\"sma1\":0.19227620370370374,\"sma2\":0.19719100000000003,\"rsi_avg_gain\":0.0007610963953140791,\"rsi_avg_loss\":0.0006750566741017173,\"rsi\":53},{\"period_id\":\"120m209909\",\"size\":\"120m\",\"time\":1511344800000,\"open\":0.20004,\"high\":0.202,\"low\":0.2,\"close\":0.20086,\"volume\":752880.6238023305,\"close_time\":1511351996965,\"vwap\":0.20041947771995414,\"ema1\":0.1999850245511429,\"sma1\":0.19202620370370374,\"sma2\":0.1971566666666667,\"rsi_avg_gain\":0.0007773345795690085,\"rsi_avg_loss\":0.0007269841105710801,\"rsi\":52},{\"period_id\":\"120m209908\",\"size\":\"120m\",\"time\":1511337600000,\"open\":0.20198,\"high\":0.202,\"low\":0.19969,\"close\":0.20007,\"volume\":653744.4946405801,\"close_time\":1511344770041,\"vwap\":0.2003033649605013,\"ema1\":0.19992468141673894,\"sma1\":0.19176601851851857,\"sma2\":0.19703050000000003,\"rsi_avg_gain\":0.0007763603164589312,\"rsi_avg_loss\":0.000782905965230394,\"rsi\":50},{\"period_id\":\"120m209907\",\"size\":\"120m\",\"time\":1511330400000,\"open\":0.20033,\"high\":0.203,\"low\":0.2,\"close\":0.202,\"volume\":652858.3084820701,\"close_time\":1511337347406,\"vwap\":0.20019563716031344,\"ema1\":0.19991465944547956,\"sma1\":0.19146509259259265,\"sma2\":0.19679716666666672,\"rsi_avg_gain\":0.000836080340801926,\"rsi_avg_loss\":0.0006946679625558077,\"rsi\":55},{\"period_id\":\"120m209906\",\"size\":\"120m\",\"time\":1511323200000,\"open\":0.1992,\"high\":0.2008,\"low\":0.199,\"close\":0.20078,\"volume\":199170.53298643001,\"close_time\":1511330223591,\"vwap\":0.2000220196984975,\"ema1\":0.19977084285551264,\"sma1\":0.19120675925925928,\"sma2\":0.19668500000000003,\"rsi_avg_gain\":0.000806548059325149,\"rsi_avg_loss\":0.0007481039596754852,\"rsi\":52},{\"period_id\":\"120m209905\",\"size\":\"120m\",\"time\":1511316000000,\"open\":0.19768,\"high\":0.19949,\"low\":0.19766,\"close\":0.199,\"volume\":139487.97756473004,\"close_time\":1511323109528,\"vwap\":0.20001556356353,\"ema1\":0.19970124581106524,\"sma1\":0.19096027777777783,\"sma2\":0.19655366666666668,\"rsi_avg_gain\":0.0007316671408117008,\"rsi_avg_loss\":0.000805650418112061,\"rsi\":48},{\"period_id\":\"120m209904\",\"size\":\"120m\",\"time\":1511308800000,\"open\":0.1983,\"high\":0.1995,\"low\":0.1976,\"close\":0.19772,\"volume\":297919.29636284005,\"close_time\":1511315945772,\"vwap\":0.2000194930574825,\"ema1\":0.19974960759113872,\"sma1\":0.1907093518518519,\"sma2\":0.19639733333333337,\"rsi_avg_gain\":0.0006894876901049082,\"rsi_avg_loss\":0.0008676235271976041,\"rsi\":44},{\"period_id\":\"120m209903\",\"size\":\"120m\",\"time\":1511301600000,\"open\":0.20021,\"high\":0.2013,\"low\":0.198,\"close\":0.19832,\"volume\":1570212.2911061011,\"close_time\":1511308760197,\"vwap\":0.20006957559667315,\"ema1\":0.19988958052845862,\"sma1\":0.19041935185185185,\"sma2\":0.19626366666666673,\"rsi_avg_gain\":0.0007425252047283627,\"rsi_avg_loss\":0.0008882099523666514,\"rsi\":46},{\"period_id\":\"120m209902\",\"size\":\"120m\",\"time\":1511294400000,\"open\":0.20067,\"high\":0.2013,\"low\":0.2,\"close\":0.2001,\"volume\":826936.2524366702,\"close_time\":1511301577901,\"vwap\":0.2006368231427055,\"ema1\":0.19999782746145578,\"sma1\":0.1901387962962963,\"sma2\":0.19630866666666674,\"rsi_avg_gain\":0.000799642528169006,\"rsi_avg_loss\":0.0008196107179333166,\"rsi\":49},{\"period_id\":\"120m209901\",\"size\":\"120m\",\"time\":1511287200000,\"open\":0.20198,\"high\":0.204,\"low\":0.2,\"close\":0.2,\"volume\":1658189.0110132692,\"close_time\":1511294393668,\"vwap\":0.20063448462119113,\"ema1\":0.1999907810794872,\"sma1\":0.18983324074074073,\"sma2\":0.19622533333333342,\"rsi_avg_gain\":0.0008534611841820073,\"rsi_avg_loss\":0.0008826576962358794,\"rsi\":49},{\"period_id\":\"120m209900\",\"size\":\"120m\",\"time\":1511280000000,\"open\":0.20109,\"high\":0.202,\"low\":0.2006,\"close\":0.20198,\"volume\":655194.4879848204,\"close_time\":1511287150410,\"vwap\":0.2034859386803858,\"ema1\":0.19999014529186562,\"sma1\":0.1895647222222222,\"sma2\":0.1961323333333334,\"rsi_avg_gain\":0.0009191120445037002,\"rsi_avg_loss\":0.000798246749792487,\"rsi\":54},{\"period_id\":\"120m209899\",\"size\":\"120m\",\"time\":1511272800000,\"open\":0.20318,\"high\":0.20318,\"low\":0.2004,\"close\":0.20199,\"volume\":1154399.37290013,\"close_time\":1511279988375,\"vwap\":0.20357833732703678,\"ema1\":0.19985291393268395,\"sma1\":0.18928194444444438,\"sma2\":0.1961825000000001,\"rsi_avg_gain\":0.000989812971003985,\"rsi_avg_loss\":0.0008588811151611391,\"rsi\":54},{\"period_id\":\"120m209898\",\"size\":\"120m\",\"time\":1511265600000,\"open\":0.203,\"high\":0.20351,\"low\":0.20104,\"close\":0.20282,\"volume\":722255.2621213497,\"close_time\":1511272705668,\"vwap\":0.20380673812999647,\"ema1\":0.19970552868666216,\"sma1\":0.18902351851851848,\"sma2\":0.19646883333333343,\"rsi_avg_gain\":0.0010659524303119837,\"rsi_avg_loss\":0.0008611027394043039,\"rsi\":55},{\"period_id\":\"120m209897\",\"size\":\"120m\",\"time\":1511258400000,\"open\":0.20344,\"high\":0.20371,\"low\":0.20164,\"close\":0.2021,\"volume\":1164843.6084483103,\"close_time\":1511265582357,\"vwap\":0.20387496250863218,\"ema1\":0.19949073756160438,\"sma1\":0.18876972222222219,\"sma2\":0.19605050000000007,\"rsi_avg_gain\":0.001092564155720598,\"rsi_avg_loss\":0.0009273414116661734,\"rsi\":54},{\"period_id\":\"120m209896\",\"size\":\"120m\",\"time\":1511251200000,\"open\":0.20227,\"high\":0.20492,\"low\":0.202,\"close\":0.20212,\"volume\":661131.9622503897,\"close_time\":1511258386621,\"vwap\":0.20398929991250878,\"ema1\":0.1993107884279219,\"sma1\":0.1884599074074074,\"sma2\":0.1956318333333334,\"rsi_avg_gain\":0.00117660755231449,\"rsi_avg_loss\":0.0009971369048712643,\"rsi\":54},{\"period_id\":\"120m209895\",\"size\":\"120m\",\"time\":1511244000000,\"open\":0.20199,\"high\":0.20549,\"low\":0.20093,\"close\":0.20225,\"volume\":1112220.7707674399,\"close_time\":1511251168939,\"vwap\":0.2040378287470429,\"ema1\":0.19911704969881308,\"sma1\":0.18814046296296288,\"sma2\":0.19523766666666673,\"rsi_avg_gain\":0.0012671158255694506,\"rsi_avg_loss\":0.001063839743707514,\"rsi\":54},{\"period_id\":\"120m209894\",\"size\":\"120m\",\"time\":1511236800000,\"open\":0.2,\"high\":0.20306,\"low\":0.197,\"close\":0.20249,\"volume\":767532.2100792999,\"close_time\":1511243992356,\"vwap\":0.20423146118704802,\"ema1\":0.19890098416080018,\"sma1\":0.18786722222222213,\"sma2\":0.19485366666666673,\"rsi_avg_gain\":0.0013645862736901776,\"rsi_avg_loss\":0.0011272120316850158,\"rsi\":55},{\"period_id\":\"120m209893\",\"size\":\"120m\",\"time\":1511229600000,\"open\":0.20572,\"high\":0.206,\"low\":0.2,\"close\":0.2,\"volume\":808537.5062438501,\"close_time\":1511236760328,\"vwap\":0.20462440164317358,\"ema1\":0.19865346582706225,\"sma1\":0.1875750925925925,\"sma2\":0.19448700000000005,\"rsi_avg_gain\":0.0012780159870509611,\"rsi_avg_loss\":0.00121392064950694,\"rsi\":51},{\"period_id\":\"120m209892\",\"size\":\"120m\",\"time\":1511222400000,\"open\":0.2,\"high\":0.20599,\"low\":0.2,\"close\":0.20586,\"volume\":658444.3325874807,\"close_time\":1511228996424,\"vwap\":0.20476788571159815,\"ema1\":0.1985606014013424,\"sma1\":0.18731314814814812,\"sma2\":0.19405600000000003,\"rsi_avg_gain\":0.0013763249091318043,\"rsi_avg_loss\":0.0008565299302382449,\"rsi\":62},{\"period_id\":\"120m209891\",\"size\":\"120m\",\"time\":1511215200000,\"open\":0.2075,\"high\":0.20788,\"low\":0.1992,\"close\":0.2,\"volume\":2154059.49515276,\"close_time\":1511222392685,\"vwap\":0.20481084172486042,\"ema1\":0.19805719460143498,\"sma1\":0.18704111111111102,\"sma2\":0.19368600000000005,\"rsi_avg_gain\":0.001031426825218868,\"rsi_avg_loss\":0.0009224168479488791,\"rsi\":53},{\"period_id\":\"120m209890\",\"size\":\"120m\",\"time\":1511208000000,\"open\":0.205,\"high\":0.2079,\"low\":0.204,\"close\":0.207,\"volume\":1726159.0560208398,\"close_time\":1511215187487,\"vwap\":0.20647036569653726,\"ema1\":0.1979232080222236,\"sma1\":0.18678259259259256,\"sma2\":0.19319733333333336,\"rsi_avg_gain\":0.001110767350235704,\"rsi_avg_loss\":0.00045491045163725607,\"rsi\":71},{\"period_id\":\"120m209889\",\"size\":\"120m\",\"time\":1511200800000,\"open\":0.205,\"high\":0.20791,\"low\":0.20401,\"close\":0.205,\"volume\":1288062.0671158903,\"close_time\":1511207996129,\"vwap\":0.2049663340786822,\"ema1\":0.19729722236858385,\"sma1\":0.186524537037037,\"sma2\":0.19271800000000003,\"rsi_avg_gain\":0.0010423648387153735,\"rsi_avg_loss\":0.0004899035633016604,\"rsi\":68},{\"period_id\":\"120m209888\",\"size\":\"120m\",\"time\":1511193600000,\"open\":0.2045,\"high\":0.205,\"low\":0.2012,\"close\":0.205,\"volume\":1174516.4974492008,\"close_time\":1511200734154,\"vwap\":0.20110084036025058,\"ema1\":0.1967659963250379,\"sma1\":0.18628749999999994,\"sma2\":0.19226016666666668,\"rsi_avg_gain\":0.0011225467493857868,\"rsi_avg_loss\":0.0005275884527864035,\"rsi\":68},{\"period_id\":\"120m209887\",\"size\":\"120m\",\"time\":1511186400000,\"open\":0.2017,\"high\":0.20486,\"low\":0.20116,\"close\":0.2045,\"volume\":1245355.5586386702,\"close_time\":1511193599796,\"vwap\":0.2005184631248632,\"ema1\":0.19619813400262673,\"sma1\":0.18600129629629628,\"sma2\":0.19182966666666668,\"rsi_avg_gain\":0.0011704349608770012,\"rsi_avg_loss\":0.0005681721799238192,\"rsi\":67},{\"period_id\":\"120m209886\",\"size\":\"120m\",\"time\":1511179200000,\"open\":0.20345,\"high\":0.20345,\"low\":0.1993,\"close\":0.2017,\"volume\":920490.0952195205,\"close_time\":1511186377172,\"vwap\":0.19994962483980228,\"ema1\":0.19562559152004927,\"sma1\":0.18574498444444443,\"sma2\":0.1914503333333334,\"rsi_avg_gain\":0.0010450838040213862,\"rsi_avg_loss\":0.0006118777322256514,\"rsi\":63},{\"period_id\":\"120m209885\",\"size\":\"120m\",\"time\":1511172000000,\"open\":0.1999,\"high\":0.20397,\"low\":0.1993,\"close\":0.20348,\"volume\":1839783.4880044202,\"close_time\":1511179183122,\"vwap\":0.1997736385061051,\"ema1\":0.19520666679729404,\"sma1\":0.18553609555555556,\"sma2\":0.1910556666666667,\"rsi_avg_gain\":0.0011254748658691852,\"rsi_avg_loss\":0.0005220221731660858,\"rsi\":68},{\"period_id\":\"120m209884\",\"size\":\"120m\",\"time\":1511164800000,\"open\":0.19989,\"high\":0.201,\"low\":0.199,\"close\":0.2,\"volume\":915706.22185213,\"close_time\":1511171992849,\"vwap\":0.19884955493506185,\"ema1\":0.19463609209365915,\"sma1\":0.18535091037037038,\"sma2\":0.19070833333333337,\"rsi_avg_gain\":0.0009443575478591237,\"rsi_avg_loss\":0.0005621777249480923,\"rsi\":63},{\"period_id\":\"120m209883\",\"size\":\"120m\",\"time\":1511157600000,\"open\":0.20058,\"high\":0.20097,\"low\":0.19501,\"close\":0.1995,\"volume\":831625.2586599299,\"close_time\":1511164735130,\"vwap\":0.19862788950249285,\"ema1\":0.19426616741046324,\"sma1\":0.18514146592592595,\"sma2\":0.19035000000000002,\"rsi_avg_gain\":0.0009785388976944409,\"rsi_avg_loss\":0.0006054221653287148,\"rsi\":62},{\"period_id\":\"120m209882\",\"size\":\"120m\",\"time\":1511150400000,\"open\":0.19996,\"high\":0.205,\"low\":0.19909,\"close\":0.201,\"volume\":1616283.4260598102,\"close_time\":1511157581859,\"vwap\":0.19854493863491912,\"ema1\":0.19390521343877104,\"sma1\":0.18488220666666672,\"sma2\":0.18994083333333336,\"rsi_avg_gain\":0.0010538111205940133,\"rsi_avg_loss\":0.0005366084857386159,\"rsi\":66},{\"period_id\":\"120m209881\",\"size\":\"120m\",\"time\":1511143200000,\"open\":0.19688,\"high\":0.2,\"low\":0.19686,\"close\":0.2,\"volume\":1187892.34910101,\"close_time\":1511150148973,\"vwap\":0.1966703339731231,\"ema1\":0.1934159178138587,\"sma1\":0.18466924370370372,\"sma2\":0.18954200000000002,\"rsi_avg_gain\":0.0010579504375627833,\"rsi_avg_loss\":0.0005778860615646633,\"rsi\":65},{\"period_id\":\"120m209880\",\"size\":\"120m\",\"time\":1511136000000,\"open\":0.195,\"high\":0.19686,\"low\":0.19494,\"close\":0.19686,\"volume\":818428.4982289891,\"close_time\":1511143199207,\"vwap\":0.19507481067107718,\"ema1\":0.19296184318033172,\"sma1\":0.18448785481481483,\"sma2\":0.18920450000000003,\"rsi_avg_gain\":0.0008977927789137664,\"rsi_avg_loss\":0.0006223388355311759,\"rsi\":59},{\"period_id\":\"120m209879\",\"size\":\"120m\",\"time\":1511128800000,\"open\":0.19498,\"high\":0.19587,\"low\":0.19353,\"close\":0.19499,\"volume\":774808.4024525699,\"close_time\":1511135815175,\"vwap\":0.19451645023599318,\"ema1\":0.19269300477897527,\"sma1\":0.1843316511111111,\"sma2\":0.188885,\"rsi_avg_gain\":0.0008230076080609784,\"rsi_avg_loss\":0.0006702110536489587,\"rsi\":55},{\"period_id\":\"120m209878\",\"size\":\"120m\",\"time\":1511121600000,\"open\":0.19592,\"high\":0.19595,\"low\":0.1938,\"close\":0.195,\"volume\":735082.8656450599,\"close_time\":1511128784054,\"vwap\":0.19460552796302108,\"ema1\":0.19253459131545633,\"sma1\":0.18414220666666664,\"sma2\":0.18856866666666666,\"rsi_avg_gain\":0.0008863158856041305,\"rsi_avg_loss\":0.0007209965193142625,\"rsi\":55},{\"period_id\":\"120m209877\",\"size\":\"120m\",\"time\":1511114400000,\"open\":0.19593,\"high\":0.19599,\"low\":0.19311,\"close\":0.19493,\"volume\":542808.07858512,\"close_time\":1511121526078,\"vwap\":0.19478959196182474,\"ema1\":0.19236456313031539,\"sma1\":0.18396822518518513,\"sma2\":0.1882625,\"rsi_avg_gain\":0.0009491094152659857,\"rsi_avg_loss\":0.0007764577900307443,\"rsi\":55},{\"period_id\":\"120m209876\",\"size\":\"120m\",\"time\":1511107200000,\"open\":0.195,\"high\":0.1975,\"low\":0.19462,\"close\":0.19593,\"volume\":736890.6753688401,\"close_time\":1511114338732,\"vwap\":0.19356305594000325,\"ema1\":0.19218763644964748,\"sma1\":0.1837876696296296,\"sma2\":0.18795900000000001,\"rsi_avg_gain\":0.0010221178318249077,\"rsi_avg_loss\":0.0007592622354177246,\"rsi\":57},{\"period_id\":\"120m209875\",\"size\":\"120m\",\"time\":1511100000000,\"open\":0.1949,\"high\":0.1969,\"low\":0.19441,\"close\":0.1955,\"volume\":602072.8910201305,\"close_time\":1511107180197,\"vwap\":0.19336936851822836,\"ema1\":0.19192954241169213,\"sma1\":0.183620077037037,\"sma2\":0.18766566666666668,\"rsi_avg_gain\":0.0010676653573499016,\"rsi_avg_loss\":0.0008176670227575496,\"rsi\":57},{\"period_id\":\"120m209874\",\"size\":\"120m\",\"time\":1511092800000,\"open\":0.19514,\"high\":0.19625,\"low\":0.19305,\"close\":0.1949,\"volume\":664404.7235030198,\"close_time\":1511099955847,\"vwap\":0.1932332277767727,\"ema1\":0.19168330395732608,\"sma1\":0.18350841037037036,\"sma2\":0.18735733333333332,\"rsi_avg_gain\":0.001103639615607585,\"rsi_avg_loss\":0.0008805644860465919,\"rsi\":56},{\"period_id\":\"120m209873\",\"size\":\"120m\",\"time\":1511085600000,\"open\":0.19348,\"high\":0.199,\"low\":0.19165,\"close\":0.19575,\"volume\":1621898.0825811503,\"close_time\":1511092680789,\"vwap\":0.19313937130402306,\"ema1\":0.19146146285093477,\"sma1\":0.18338970666666668,\"sma2\":0.18702149999999998,\"rsi_avg_gain\":0.0011885349706543223,\"rsi_avg_loss\":0.0008829156003578668,\"rsi\":57},{\"period_id\":\"120m209872\",\"size\":\"120m\",\"time\":1511078400000,\"open\":0.19096,\"high\":0.194,\"low\":0.18996,\"close\":0.19348,\"volume\":852182.0922368199,\"close_time\":1511085595664,\"vwap\":0.19198602717105637,\"ema1\":0.19116570166824062,\"sma1\":0.1833113733333333,\"sma2\":0.1867268333333333,\"rsi_avg_gain\":0.0011053453530123476,\"rsi_avg_loss\":0.0009508321850007796,\"rsi\":54},{\"period_id\":\"120m209871\",\"size\":\"120m\",\"time\":1511071200000,\"open\":0.19277,\"high\":0.19329,\"low\":0.19,\"close\":0.19086,\"volume\":458432.8250426699,\"close_time\":1511078362857,\"vwap\":0.19210072338544937,\"ema1\":0.19100609488673997,\"sma1\":0.18325933629629632,\"sma2\":0.18645166666666663,\"rsi_avg_gain\":0.0009888334570902196,\"rsi_avg_loss\":0.0010239731223085319,\"rsi\":49},{\"period_id\":\"120m209870\",\"size\":\"120m\",\"time\":1511064000000,\"open\":0.194,\"high\":0.19403,\"low\":0.1923,\"close\":0.19231,\"volume\":53869.48320576,\"close_time\":1511071090724,\"vwap\":0.19219886840383127,\"ema1\":0.19101617039617033,\"sma1\":0.18321554,\"sma2\":0.18617949999999997,\"rsi_avg_gain\":0.0010648975691740826,\"rsi_avg_loss\":0.0009912018240245722,\"rsi\":52},{\"period_id\":\"120m209869\",\"size\":\"120m\",\"time\":1511056800000,\"open\":0.19382,\"high\":0.19447,\"low\":0.19291,\"close\":0.1941,\"volume\":69829.77653239999,\"close_time\":1511063790758,\"vwap\":0.1921977214232034,\"ema1\":0.19092694076832,\"sma1\":0.18316304,\"sma2\":0.18588683333333325,\"rsi_avg_gain\":0.001146812766802858,\"rsi_avg_loss\":0.000929755810488002,\"rsi\":55},{\"period_id\":\"120m209868\",\"size\":\"120m\",\"time\":1511049600000,\"open\":0.193,\"high\":0.19444,\"low\":0.1925,\"close\":0.19271,\"volume\":124356.55947407,\"close_time\":1511056574457,\"vwap\":0.19219510637161608,\"ema1\":0.19070810909716968,\"sma1\":0.18311359555555548,\"sma2\":0.18559999999999993,\"rsi_avg_gain\":0.0011281060565569239,\"rsi_avg_loss\":0.0010012754882178483,\"rsi\":53},{\"period_id\":\"120m209867\",\"size\":\"120m\",\"time\":1511042400000,\"open\":0.1935,\"high\":0.19999,\"low\":0.19211,\"close\":0.193,\"volume\":1359178.4623398397,\"close_time\":1511049586357,\"vwap\":0.19218885450065426,\"ema1\":0.19057004765559518,\"sma1\":0.18301600296296291,\"sma2\":0.18527499999999997,\"rsi_avg_gain\":0.001214883445522841,\"rsi_avg_loss\":0.001055988987311528,\"rsi\":53},{\"period_id\":\"120m209866\",\"size\":\"120m\",\"time\":1511035200000,\"open\":0.19234,\"high\":0.1939,\"low\":0.19201,\"close\":0.19372,\"volume\":268536.1830867801,\"close_time\":1511042361722,\"vwap\":0.19131869895733594,\"ema1\":0.1904024647352914,\"sma1\":0.18298720666666662,\"sma2\":0.18491283333333325,\"rsi_avg_gain\":0.0013083360182553673,\"rsi_avg_loss\":0.0010818342940277996,\"rsi\":55},{\"period_id\":\"120m209865\",\"size\":\"120m\",\"time\":1511028000000,\"open\":0.1917,\"high\":0.1949,\"low\":0.1917,\"close\":0.19231,\"volume\":728270.7040220896,\"close_time\":1511035186530,\"vwap\":0.19126935626408004,\"ema1\":0.19017366919979425,\"sma1\":0.18295637333333328,\"sma2\":0.18457433333333328,\"rsi_avg_gain\":0.0013005157119673188,\"rsi_avg_loss\":0.0011650523166453226,\"rsi\":53},{\"period_id\":\"120m209864\",\"size\":\"120m\",\"time\":1511020800000,\"open\":0.19089,\"high\":0.1925,\"low\":0.19016,\"close\":0.19168,\"volume\":464501.62250984996,\"close_time\":1511027934129,\"vwap\":0.19086053665140038,\"ema1\":0.19002633604115937,\"sma1\":0.18294803999999995,\"sma2\":0.1842546666666666,\"rsi_avg_gain\":0.0013520938436571111,\"rsi_avg_loss\":0.0012546717256180396,\"rsi\":52},{\"period_id\":\"120m209863\",\"size\":\"120m\",\"time\":1511013600000,\"open\":0.1919,\"high\":0.1919,\"low\":0.19,\"close\":0.19122,\"volume\":390100.3060764898,\"close_time\":1511020756298,\"vwap\":0.190772956804839,\"ema1\":0.1899122902508945,\"sma1\":0.1829258177777777,\"sma2\":0.18395099999999995,\"rsi_avg_gain\":0.0014207164470153514,\"rsi_avg_loss\":0.0013511849352809656,\"rsi\":51},{\"period_id\":\"120m209862\",\"size\":\"120m\",\"time\":1511006400000,\"open\":0.1923,\"high\":0.19247,\"low\":0.191,\"close\":0.1918,\"volume\":337951.37589794997,\"close_time\":1511013473993,\"vwap\":0.19075914235930516,\"ema1\":0.18982210337164585,\"sma1\":0.1828822066666666,\"sma2\":0.1836383333333333,\"rsi_avg_gain\":0.001530002327554994,\"rsi_avg_loss\":0.0014105068533795016,\"rsi\":52},{\"period_id\":\"120m209861\",\"size\":\"120m\",\"time\":1510999200000,\"open\":0.19251,\"high\":0.19253,\"low\":0.19101,\"close\":0.1923,\"volume\":385301.98817009997,\"close_time\":1511006395926,\"vwap\":0.19067424569216115,\"ema1\":0.18968569670762142,\"sma1\":0.1828587807407407,\"sma2\":0.1833331666666666,\"rsi_avg_gain\":0.0016476948142899934,\"rsi_avg_loss\":0.0014805458421010018,\"rsi\":53},{\"period_id\":\"120m209860\",\"size\":\"120m\",\"time\":1510992000000,\"open\":0.18916,\"high\":0.194,\"low\":0.18914,\"close\":0.19254,\"volume\":803391.3881384006,\"close_time\":1510999159827,\"vwap\":0.19053986404716244,\"ema1\":0.1895053999288367,\"sma1\":0.1828586881481481,\"sma2\":0.1830156666666666,\"rsi_avg_gain\":0.0017744405692353775,\"rsi_avg_loss\":0.0015759724453395412,\"rsi\":53},{\"period_id\":\"120m209859\",\"size\":\"120m\",\"time\":1510984800000,\"open\":0.1897,\"high\":0.191,\"low\":0.188,\"close\":0.189,\"volume\":488820.45648977003,\"close_time\":1510991947134,\"vwap\":0.18972648317402774,\"ema1\":0.1892961171653082,\"sma1\":0.18288137333333326,\"sma2\":0.18267499999999998,\"rsi_avg_gain\":0.0016386283053304075,\"rsi_avg_loss\":0.0016972010949810443,\"rsi\":49},{\"period_id\":\"120m209858\",\"size\":\"120m\",\"time\":1510977600000,\"open\":0.1878,\"high\":0.19247,\"low\":0.18721,\"close\":0.19028,\"volume\":289907.14823640994,\"close_time\":1510984750372,\"vwap\":0.1898553741795459,\"ema1\":0.18931653903877774,\"sma1\":0.18287785481481475,\"sma2\":0.18232716666666662,\"rsi_avg_gain\":0.0017646766365096694,\"rsi_avg_loss\":0.0017292934869026627,\"rsi\":51},{\"period_id\":\"120m209857\",\"size\":\"120m\",\"time\":1510970400000,\"open\":0.1891,\"high\":0.192,\"low\":0.1879,\"close\":0.1879,\"volume\":234549.13786073995,\"close_time\":1510977539952,\"vwap\":0.18989912724646768,\"ema1\":0.18925009345524516,\"sma1\":0.18287776222222216,\"sma2\":0.18207549999999997,\"rsi_avg_gain\":0.0017173440700873367,\"rsi_avg_loss\":0.0018623160628182523,\"rsi\":48},{\"period_id\":\"120m209856\",\"size\":\"120m\",\"time\":1510963200000,\"open\":0.19112,\"high\":0.19277,\"low\":0.1889,\"close\":0.18908,\"volume\":926769.0720193102,\"close_time\":1510970297833,\"vwap\":0.19000598409063446,\"ema1\":0.18934320334871033,\"sma1\":0.18286554,\"sma2\":0.18172000833333335,\"rsi_avg_gain\":0.001849447460094055,\"rsi_avg_loss\":0.0019148019138042727,\"rsi\":49},{\"period_id\":\"120m209855\",\"size\":\"120m\",\"time\":1510956000000,\"open\":0.192,\"high\":0.19408,\"low\":0.191,\"close\":0.19312,\"volume\":428584.75338550995,\"close_time\":1510963099527,\"vwap\":0.19463581194615806,\"ema1\":0.1893613553037938,\"sma1\":0.18286479925925925,\"sma2\":0.18132634166666664,\"rsi_avg_gain\":0.001991712649332059,\"rsi_avg_loss\":0.001751325137943062,\"rsi\":53},{\"period_id\":\"120m209854\",\"size\":\"120m\",\"time\":1510948800000,\"open\":0.1925,\"high\":0.19408,\"low\":0.19061,\"close\":0.192,\"volume\":621065.0758878803,\"close_time\":1510955983115,\"vwap\":0.19466584560521236,\"ema1\":0.18910213842819337,\"sma1\":0.18281776222222218,\"sma2\":0.18091634166666665,\"rsi_avg_gain\":0.0020587674685114475,\"rsi_avg_loss\":0.0018860424562463743,\"rsi\":52},{\"period_id\":\"120m209853\",\"size\":\"120m\",\"time\":1510941600000,\"open\":0.19389,\"high\":0.19475,\"low\":0.19061,\"close\":0.1925,\"volume\":1033069.886988151,\"close_time\":1510948796268,\"vwap\":0.19473749637806279,\"ema1\":0.1889022859059998,\"sma1\":0.18272646592592587,\"sma2\":0.180541675,\"rsi_avg_gain\":0.002217134196858482,\"rsi_avg_loss\":0.0019926611067268645,\"rsi\":53},{\"period_id\":\"120m209852\",\"size\":\"120m\",\"time\":1510934400000,\"open\":0.19491,\"high\":0.196,\"low\":0.19103,\"close\":0.19384,\"volume\":1005591.6163256401,\"close_time\":1510941572001,\"vwap\":0.19484340838370368,\"ema1\":0.18865416769262047,\"sma1\":0.18259544740740735,\"sma2\":0.18014800833333336,\"rsi_avg_gain\":0.0023876829812322113,\"rsi_avg_loss\":0.002042865807244315,\"rsi\":54},{\"period_id\":\"120m209851\",\"size\":\"120m\",\"time\":1510927200000,\"open\":0.19521,\"high\":0.19796,\"low\":0.1946,\"close\":0.19491,\"volume\":960112.6958736299,\"close_time\":1510934385989,\"vwap\":0.1949118021513279,\"ema1\":0.188296524085215,\"sma1\":0.1824462807407407,\"sma2\":0.179732675,\"rsi_avg_gain\":0.002571350902865458,\"rsi_avg_loss\":0.0021177016385708013,\"rsi\":55},{\"period_id\":\"120m209850\",\"size\":\"120m\",\"time\":1510920000000,\"open\":0.1988,\"high\":0.199,\"low\":0.19422,\"close\":0.1953,\"volume\":1780399.7603614214,\"close_time\":1510927150967,\"vwap\":0.19484637909008723,\"ema1\":0.18784042229798845,\"sma1\":0.18227952148148144,\"sma2\":0.17931750833333332,\"rsi_avg_gain\":0.002769147126162801,\"rsi_avg_loss\":0.0022506017646147093,\"rsi\":55},{\"period_id\":\"120m209849\",\"size\":\"120m\",\"time\":1510912800000,\"open\":0.19248,\"high\":0.2,\"low\":0.1905,\"close\":0.1988,\"volume\":2745150.4320924804,\"close_time\":1510919995239,\"vwap\":0.19418106384426131,\"ema1\":0.18732596866336695,\"sma1\":0.18211100296296293,\"sma2\":0.1788875083333333,\"rsi_avg_gain\":0.0029821584435599396,\"rsi_avg_loss\":0.0021544942080466097,\"rsi\":58},{\"period_id\":\"120m209848\",\"size\":\"120m\",\"time\":1510905600000,\"open\":0.18905,\"high\":0.1943,\"low\":0.187,\"close\":0.1925,\"volume\":1784900.3421344298,\"close_time\":1510912797579,\"vwap\":0.1912356955819557,\"ema1\":0.18653465615739226,\"sma1\":0.18199248444444438,\"sma2\":0.17844600833333332,\"rsi_avg_gain\":0.0027269398622953196,\"rsi_avg_loss\":0.0023202245317425025,\"rsi\":54},{\"period_id\":\"120m209847\",\"size\":\"120m\",\"time\":1510898400000,\"open\":0.19545,\"high\":0.19594,\"low\":0.187,\"close\":0.188,\"volume\":1178642.750786331,\"close_time\":1510905535766,\"vwap\":0.18933077389586592,\"ema1\":0.18612325313376413,\"sma1\":0.18183091037037033,\"sma2\":0.177999675,\"rsi_avg_gain\":0.0025905506209334206,\"rsi_avg_loss\":0.002498703341876541,\"rsi\":51},{\"period_id\":\"120m209846\",\"size\":\"120m\",\"time\":1510891200000,\"open\":0.19199,\"high\":0.19689,\"low\":0.1894,\"close\":0.19405,\"volume\":956434.2075968998,\"close_time\":1510898331739,\"vwap\":0.19912028284867858,\"ema1\":0.18599382231540304,\"sma1\":0.18165322518518517,\"sma2\":0.17759884166666665,\"rsi_avg_gain\":0.0027898237456206072,\"rsi_avg_loss\":0.002225526675867044,\"rsi\":56},{\"period_id\":\"120m209845\",\"size\":\"120m\",\"time\":1510884000000,\"open\":0.187,\"high\":0.1955,\"low\":0.18683,\"close\":0.19112,\"volume\":924918.4014456196,\"close_time\":1510891162791,\"vwap\":0.19920045820536003,\"ema1\":0.18543822385439634,\"sma1\":0.18148841037037033,\"sma2\":0.17723384166666664,\"rsi_avg_gain\":0.0027790409568221935,\"rsi_avg_loss\":0.002396721035549124,\"rsi\":54},{\"period_id\":\"120m209844\",\"size\":\"120m\",\"time\":1510876800000,\"open\":0.19099,\"high\":0.1929,\"low\":0.185,\"close\":0.18834,\"volume\":1080509.2536917797,\"close_time\":1510883939814,\"vwap\":0.19931092895764566,\"ema1\":0.18504637722366507,\"sma1\":0.18135044740740738,\"sma2\":0.176999175,\"rsi_avg_gain\":0.002778967184270054,\"rsi_avg_loss\":0.002581084192129826,\"rsi\":52},{\"period_id\":\"120m209843\",\"size\":\"120m\",\"time\":1510869600000,\"open\":0.20252,\"high\":0.203,\"low\":0.19,\"close\":0.1903,\"volume\":3056503.1666262676,\"close_time\":1510876786878,\"vwap\":0.19973816426599947,\"ema1\":0.18481923082529714,\"sma1\":0.18111878074074073,\"sma2\":0.17677250833333333,\"rsi_avg_gain\":0.0029927338907523656,\"rsi_avg_loss\":0.002628859899216736,\"rsi\":53},{\"period_id\":\"120m209842\",\"size\":\"120m\",\"time\":1510862400000,\"open\":0.195,\"high\":0.209,\"low\":0.19241,\"close\":0.2028,\"volume\":5328767.228624752,\"close_time\":1510869597062,\"vwap\":0.20135792111250905,\"ema1\":0.18444124674428314,\"sma1\":0.18081313259259257,\"sma2\":0.17632550833333333,\"rsi_avg_gain\":0.003222944190041009,\"rsi_avg_loss\":0.001869541429925715,\"rsi\":63},{\"period_id\":\"120m209841\",\"size\":\"120m\",\"time\":1510855200000,\"open\":0.19512,\"high\":0.201,\"low\":0.1905,\"close\":0.195,\"volume\":3369777.689228698,\"close_time\":1510862391100,\"vwap\":0.19474249431298413,\"ema1\":0.18317512583009576,\"sma1\":0.18058378074074072,\"sma2\":0.1760255083333333,\"rsi_avg_gain\":0.0028708629738903174,\"rsi_avg_loss\":0.00201335230915077,\"rsi\":59},{\"period_id\":\"120m209840\",\"size\":\"120m\",\"time\":1510848000000,\"open\":0.2055,\"high\":0.2098,\"low\":0.195,\"close\":0.1964,\"volume\":6663655.530201383,\"close_time\":1510855198173,\"vwap\":0.1959917984167279,\"ema1\":0.1823596172666541,\"sma1\":0.18027998444444446,\"sma2\":0.17574217499999994,\"rsi_avg_gain\":0.0030916985872664958,\"rsi_avg_loss\":0.002060533256008523,\"rsi\":60},{\"period_id\":\"120m209839\",\"size\":\"120m\",\"time\":1510840800000,\"open\":0.22,\"high\":0.22,\"low\":0.194,\"close\":0.205,\"volume\":15617530.64268609,\"close_time\":1510847998500,\"vwap\":0.20757085637321673,\"ema1\":0.18139131500918196,\"sma1\":0.17989850296296292,\"sma2\":0.17520267499999995,\"rsi_avg_gain\":0.0033295215555177644,\"rsi_avg_loss\":0.0015574973526245634,\"rsi\":68},{\"period_id\":\"120m209838\",\"size\":\"120m\",\"time\":1510833600000,\"open\":0.17678,\"high\":0.22,\"low\":0.1757,\"close\":0.22,\"volume\":10349111.628457345,\"close_time\":1510840796412,\"vwap\":0.20511452622442572,\"ema1\":0.1797631298374014,\"sma1\":0.17952257703703703,\"sma2\":0.1743610083333333,\"rsi_avg_gain\":0.0035856385982499,\"rsi_avg_loss\":0.0005234586874418366,\"rsi\":87},{\"period_id\":\"120m209837\",\"size\":\"120m\",\"time\":1510826400000,\"open\":0.177,\"high\":0.1778,\"low\":0.17555,\"close\":0.177,\"volume\":1105490.1614706505,\"close_time\":1510833568077,\"vwap\":0.17810134461965182,\"ema1\":0.17698817327446356,\"sma1\":0.17950692888888892,\"sma2\":0.17427934166666662,\"rsi_avg_gain\":0.0005537646442691225,\"rsi_avg_loss\":0.0005637247403219779,\"rsi\":50},{\"period_id\":\"120m209836\",\"size\":\"120m\",\"time\":1510819200000,\"open\":0.1785,\"high\":0.17858,\"low\":0.176,\"close\":0.177,\"volume\":397588.30518430006,\"close_time\":1510826392504,\"vwap\":0.17820336702481365,\"ema1\":0.17698735763821966,\"sma1\":0.1794858177777778,\"sma2\":0.1743330083333333,\"rsi_avg_gain\":0.0005963619245975165,\"rsi_avg_loss\":0.000607088181885207,\"rsi\":50},{\"period_id\":\"120m209835\",\"size\":\"120m\",\"time\":1510812000000,\"open\":0.179,\"high\":0.17957,\"low\":0.1775,\"close\":0.1786,\"volume\":236250.85952177003,\"close_time\":1510819171050,\"vwap\":0.17822842069278072,\"ema1\":0.17698648575120032,\"sma1\":0.17944692888888894,\"sma2\":0.1743230083333333,\"rsi_avg_gain\":0.0006422359187973254,\"rsi_avg_loss\":0.0005307103497225292,\"rsi\":55},{\"period_id\":\"120m209834\",\"size\":\"120m\",\"time\":1510804800000,\"open\":0.17893,\"high\":0.1797,\"low\":0.17753,\"close\":0.17945,\"volume\":206948.74571139002,\"close_time\":1510811990052,\"vwap\":0.1782302066753431,\"ema1\":0.17687520890645553,\"sma1\":0.1794049844444445,\"sma2\":0.174257175,\"rsi_avg_gain\":0.0006916386817817352,\"rsi_avg_loss\":0.0005061496073934939,\"rsi\":58},{\"period_id\":\"120m209833\",\"size\":\"120m\",\"time\":1510797600000,\"open\":0.17994,\"high\":0.17997,\"low\":0.17603,\"close\":0.178,\"volume\":353774.0085576001,\"close_time\":1510804386630,\"vwap\":0.17822908564902054,\"ema1\":0.17669763710690073,\"sma1\":0.17935433629629635,\"sma2\":0.17422967499999995,\"rsi_avg_gain\":0.0006333031957649452,\"rsi_avg_loss\":0.0005450841925776088,\"rsi\":54},{\"period_id\":\"120m209832\",\"size\":\"120m\",\"time\":1510790400000,\"open\":0.1778,\"high\":0.1809,\"low\":0.17779,\"close\":0.18,\"volume\":1361998.4149140103,\"close_time\":1510797487097,\"vwap\":0.1782298381157473,\"ema1\":0.17660781897634217,\"sma1\":0.17930896592592596,\"sma2\":0.17417967499999998,\"rsi_avg_gain\":0.0006820188262084025,\"rsi_avg_loss\":0.0004331675920066556,\"rsi\":61},{\"period_id\":\"120m209831\",\"size\":\"120m\",\"time\":1510783200000,\"open\":0.17768,\"high\":0.1787,\"low\":0.175,\"close\":0.1778,\"volume\":1566869.6451750586,\"close_time\":1510790392691,\"vwap\":0.17799101710250592,\"ema1\":0.17637387545746921,\"sma1\":0.17929655851851856,\"sma2\":0.1741280083333333,\"rsi_avg_gain\":0.0005652510436090504,\"rsi_avg_loss\":0.0004664881760071676,\"rsi\":55},{\"period_id\":\"120m209830\",\"size\":\"120m\",\"time\":1510776000000,\"open\":0.1769,\"high\":0.17899,\"low\":0.17601,\"close\":0.17768,\"volume\":491676.01611941017,\"close_time\":1510783162699,\"vwap\":0.17827791895724693,\"ema1\":0.17627552204074295,\"sma1\":0.17929822518518523,\"sma2\":0.17407984166666662,\"rsi_avg_gain\":0.000599501123886669,\"rsi_avg_loss\":0.0005023718818538727,\"rsi\":54},{\"period_id\":\"120m209829\",\"size\":\"120m\",\"time\":1510768800000,\"open\":0.17759,\"high\":0.17889,\"low\":0.17601,\"close\":0.17624,\"volume\":977653.8880108004,\"close_time\":1510775927078,\"vwap\":0.17832986946800047,\"ema1\":0.17617866149182868,\"sma1\":0.1792899844444445,\"sma2\":0.17404934166666666,\"rsi_avg_gain\":0.0005348473641856439,\"rsi_avg_loss\":0.0005410158727657091,\"rsi\":50},{\"period_id\":\"120m209828\",\"size\":\"120m\",\"time\":1510761600000,\"open\":0.17791,\"high\":0.17813,\"low\":0.176,\"close\":0.17753,\"volume\":790866.41378568,\"close_time\":1510768797924,\"vwap\":0.17861323411586852,\"ema1\":0.17617443124988583,\"sma1\":0.1792887807407408,\"sma2\":0.174027175,\"rsi_avg_gain\":0.000575989469123001,\"rsi_avg_loss\":0.00048340170913230334,\"rsi\":54},{\"period_id\":\"120m209827\",\"size\":\"120m\",\"time\":1510754400000,\"open\":0.17899,\"high\":0.17936,\"low\":0.17741,\"close\":0.17867,\"volume\":501227.49448165024,\"close_time\":1510761592558,\"vwap\":0.17891122977082372,\"ema1\":0.17608094374987796,\"sma1\":0.17928933629629634,\"sma2\":0.174012675,\"rsi_avg_gain\":0.0006202963513632319,\"rsi_avg_loss\":0.0004328941482963265,\"rsi\":59},{\"period_id\":\"120m209826\",\"size\":\"120m\",\"time\":1510747200000,\"open\":0.17861,\"high\":0.18,\"low\":0.1775,\"close\":0.17894,\"volume\":1020662.5634295301,\"close_time\":1510754363661,\"vwap\":0.17896155679665599,\"ema1\":0.17590238814642126,\"sma1\":0.17928470666666668,\"sma2\":0.17395700833333333,\"rsi_avg_gain\":0.0006680114553142497,\"rsi_avg_loss\":0.0004454244673960445,\"rsi\":60},{\"period_id\":\"120m209825\",\"size\":\"120m\",\"time\":1510740000000,\"open\":0.17916,\"high\":0.18,\"low\":0.17772,\"close\":0.1798,\"volume\":839624.29586238,\"close_time\":1510747159672,\"vwap\":0.17923816644878413,\"ema1\":0.17569289767376065,\"sma1\":0.17928461407407412,\"sma2\":0.17403017499999998,\"rsi_avg_gain\":0.0007193969518768842,\"rsi_avg_loss\":0.00041353404181112484,\"rsi\":63},{\"period_id\":\"120m209824\",\"size\":\"120m\",\"time\":1510732800000,\"open\":0.178,\"high\":0.18,\"low\":0.17774,\"close\":0.17916,\"volume\":1371706.4441208409,\"close_time\":1510739987906,\"vwap\":0.179328043757296,\"ema1\":0.17540964923746827,\"sma1\":0.1792250770370371,\"sma2\":0.17409917499999994,\"rsi_avg_gain\":0.0007255044097135697,\"rsi_avg_loss\":0.0004453443527196729,\"rsi\":62},{\"period_id\":\"120m209823\",\"size\":\"120m\",\"time\":1510725600000,\"open\":0.17647,\"high\":0.179,\"low\":0.17647,\"close\":0.178,\"volume\":594290.64150528,\"close_time\":1510732786046,\"vwap\":0.1758731390424391,\"ema1\":0.17515100435729367,\"sma1\":0.17916766962962966,\"sma2\":0.17420850833333326,\"rsi_avg_gain\":0.0006920816719992272,\"rsi_avg_loss\":0.0004796016106211862,\"rsi\":59},{\"period_id\":\"120m209822\",\"size\":\"120m\",\"time\":1510718400000,\"open\":0.17676,\"high\":0.17748,\"low\":0.17561,\"close\":0.17645,\"volume\":194388.95898348003,\"close_time\":1510725406545,\"vwap\":0.17577906293950146,\"ema1\":0.17495452189917599,\"sma1\":0.17912507703703712,\"sma2\":0.1743610083333333,\"rsi_avg_gain\":0.0006260879544607065,\"rsi_avg_loss\":0.0005164940422074313,\"rsi\":55},{\"period_id\":\"120m209821\",\"size\":\"120m\",\"time\":1510711200000,\"open\":0.17672,\"high\":0.17744,\"low\":0.176,\"close\":0.17607,\"volume\":154013.12588774003,\"close_time\":1510717437169,\"vwap\":0.17577642022796433,\"ema1\":0.17485138547842952,\"sma1\":0.17908285481481487,\"sma2\":0.17454400833333328,\"rsi_avg_gain\":0.0006450177971115308,\"rsi_avg_loss\":0.0005562243531464645,\"rsi\":54},{\"period_id\":\"120m209820\",\"size\":\"120m\",\"time\":1510704000000,\"open\":0.17563,\"high\":0.17746,\"low\":0.1754,\"close\":0.17661,\"volume\":330525.27986849006,\"close_time\":1510711129545,\"vwap\":0.1757750456542223,\"ema1\":0.17476734309763156,\"sma1\":0.17904081777777783,\"sma2\":0.17473817499999988,\"rsi_avg_gain\":0.0006946345507354947,\"rsi_avg_loss\":0.0005574723803115783,\"rsi\":55},{\"period_id\":\"120m209819\",\"size\":\"120m\",\"time\":1510696800000,\"open\":0.17597,\"high\":0.1761,\"low\":0.175,\"close\":0.17582,\"volume\":577026.2364562798,\"close_time\":1510703941720,\"vwap\":0.17576201277751174,\"ema1\":0.1746402633112613,\"sma1\":0.17901674370370377,\"sma2\":0.17493950833333327,\"rsi_avg_gain\":0.0006872987469459185,\"rsi_avg_loss\":0.0006003548711047766,\"rsi\":53},{\"period_id\":\"120m209818\",\"size\":\"120m\",\"time\":1510689600000,\"open\":0.17656,\"high\":0.1771,\"low\":0.1746,\"close\":0.17602,\"volume\":754846.95783339,\"close_time\":1510696790603,\"vwap\":0.17577373781913483,\"ema1\":0.1745589021603138,\"sma1\":0.17898000851851853,\"sma2\":0.1751435083333333,\"rsi_avg_gain\":0.0007401678813263737,\"rsi_avg_loss\":0.0006311513996512975,\"rsi\":54},{\"period_id\":\"120m209817\",\"size\":\"120m\",\"time\":1510682400000,\"open\":0.17774,\"high\":0.1785,\"low\":0.17451,\"close\":0.17656,\"volume\":873858.6678473103,\"close_time\":1510689575374,\"vwap\":0.17575383230039693,\"ema1\":0.17445813679205957,\"sma1\":0.17891982333333337,\"sma2\":0.17536750833333326,\"rsi_avg_gain\":0.0007971038721976331,\"rsi_avg_loss\":0.0006381630457783215,\"rsi\":56},{\"period_id\":\"120m209816\",\"size\":\"120m\",\"time\":1510675200000,\"open\":0.17779,\"high\":0.17873,\"low\":0.177,\"close\":0.17772,\"volume\":601474.58078276,\"close_time\":1510682334312,\"vwap\":0.17572553241570593,\"ema1\":0.17431318070875335,\"sma1\":0.17886676777777777,\"sma2\":0.1755915083333333,\"rsi_avg_gain\":0.000858419554674374,\"rsi_avg_loss\":0.0005980217416074236,\"rsi\":59},{\"period_id\":\"120m209815\",\"size\":\"120m\",\"time\":1510668000000,\"open\":0.175,\"high\":0.179,\"low\":0.175,\"close\":0.1779,\"volume\":903691.211076629,\"close_time\":1510675183379,\"vwap\":0.17554098553725017,\"ema1\":0.1740782276541846,\"sma1\":0.17881121222222218,\"sma2\":0.17578050833333328,\"rsi_avg_gain\":0.0009244518281108643,\"rsi_avg_loss\":0.000630177260192609,\"rsi\":59},{\"period_id\":\"120m209814\",\"size\":\"120m\",\"time\":1510660800000,\"open\":0.17511,\"high\":0.17649,\"low\":0.1735,\"close\":0.1764,\"volume\":739101.4692513704,\"close_time\":1510667938280,\"vwap\":0.175028561441522,\"ema1\":0.17381465714757663,\"sma1\":0.17879167518518516,\"sma2\":0.17596567499999993,\"rsi_avg_gain\":0.0008801788918116999,\"rsi_avg_loss\":0.000678652434053579,\"rsi\":56},{\"period_id\":\"120m209813\",\"size\":\"120m\",\"time\":1510653600000,\"open\":0.17595,\"high\":0.17699,\"low\":0.175,\"close\":0.1756,\"volume\":896831.7352713099,\"close_time\":1510660756249,\"vwap\":0.17488856827507718,\"ema1\":0.17363635764051294,\"sma1\":0.1787673233333333,\"sma2\":0.17616834166666662,\"rsi_avg_gain\":0.0008863464988741387,\"rsi_avg_loss\":0.0007308564674423159,\"rsi\":55},{\"period_id\":\"120m209812\",\"size\":\"120m\",\"time\":1510646400000,\"open\":0.17599,\"high\":0.17621,\"low\":0.17403,\"close\":0.1758,\"volume\":425112.28303541004,\"close_time\":1510653572451,\"vwap\":0.17450356703866873,\"ema1\":0.17350093402951383,\"sma1\":0.17875611962962965,\"sma2\":0.17634034166666665,\"rsi_avg_gain\":0.000954526998787534,\"rsi_avg_loss\":0.0007716915803224935,\"rsi\":55},{\"period_id\":\"120m209811\",\"size\":\"120m\",\"time\":1510639200000,\"open\":0.176,\"high\":0.1766,\"low\":0.17201,\"close\":0.17435,\"volume\":679307.6820065394,\"close_time\":1510646329094,\"vwap\":0.17439535340273382,\"ema1\":0.1733423777556872,\"sma1\":0.1787413048148148,\"sma2\":0.1766395083333333,\"rsi_avg_gain\":0.0009164136910019591,\"rsi_avg_loss\":0.0008310524711165315,\"rsi\":52},{\"period_id\":\"120m209810\",\"size\":\"120m\",\"time\":1510632000000,\"open\":0.1768,\"high\":0.1768,\"low\":0.175,\"close\":0.17598,\"volume\":429675.1602830501,\"close_time\":1510639183059,\"vwap\":0.17414008917018978,\"ema1\":0.17327288656642426,\"sma1\":0.17872556407407408,\"sma2\":0.17687317500000002,\"rsi_avg_gain\":0.0009869070518482637,\"rsi_avg_loss\":0.0007695949688947268,\"rsi\":56},{\"period_id\":\"120m209809\",\"size\":\"120m\",\"time\":1510624800000,\"open\":0.17539,\"high\":0.178,\"low\":0.17465,\"close\":0.17654,\"volume\":586797.5998933498,\"close_time\":1510631991411,\"vwap\":0.17397943840969093,\"ema1\":0.1730861890882466,\"sma1\":0.17869852703703706,\"sma2\":0.17712250833333332,\"rsi_avg_gain\":0.0010628229789135149,\"rsi_avg_loss\":0.0007857176588097054,\"rsi\":57},{\"period_id\":\"120m209808\",\"size\":\"120m\",\"time\":1510617600000,\"open\":0.17346,\"high\":0.1755,\"low\":0.17214,\"close\":0.1755,\"volume\":764624.7999068601,\"close_time\":1510624784246,\"vwap\":0.17311588878943387,\"ema1\":0.1728479952322636,\"sma1\":0.17869111962962966,\"sma2\":0.17737250833333335,\"rsi_avg_gain\":0.001064578592676092,\"rsi_avg_loss\":0.0008461574787181442,\"rsi\":56},{\"period_id\":\"120m209807\",\"size\":\"120m\",\"time\":1510610400000,\"open\":0.17199,\"high\":0.1735,\"low\":0.1712,\"close\":0.1735,\"volume\":538034.5097671399,\"close_time\":1510617597826,\"vwap\":0.17219434768339378,\"ema1\":0.17266509835173005,\"sma1\":0.17870399000000003,\"sma2\":0.177619175,\"rsi_avg_gain\":0.000992623099805022,\"rsi_avg_loss\":0.0009112465155426168,\"rsi\":52},{\"period_id\":\"120m209806\",\"size\":\"120m\",\"time\":1510603200000,\"open\":0.17054,\"high\":0.17249,\"low\":0.1704,\"close\":0.17199,\"volume\":631139.0908938397,\"close_time\":1510610382134,\"vwap\":0.17187409245551608,\"ema1\":0.17260751892771142,\"sma1\":0.17872639740740745,\"sma2\":0.17783317499999998,\"rsi_avg_gain\":0.0009528248767131019,\"rsi_avg_loss\":0.0009813424013535874,\"rsi\":49},{\"period_id\":\"120m209805\",\"size\":\"120m\",\"time\":1510596000000,\"open\":0.17247,\"high\":0.1725,\"low\":0.17,\"close\":0.172,\"volume\":870330.9006816499,\"close_time\":1510603178336,\"vwap\":0.17006238165159057,\"ema1\":0.1726501064399674,\"sma1\":0.17875658259259264,\"sma2\":0.178046175,\"rsi_avg_gain\":0.001026119097998725,\"rsi_avg_loss\":0.001056061047611557,\"rsi\":49},{\"period_id\":\"120m209804\",\"size\":\"120m\",\"time\":1510588800000,\"open\":0.173,\"high\":0.17348,\"low\":0.17106,\"close\":0.1725,\"volume\":309292.22678649,\"close_time\":1510595941115,\"vwap\":0.16994160865969823,\"ema1\":0.1726949413668617,\"sma1\":0.17877991592592596,\"sma2\":0.17819934166666665,\"rsi_avg_gain\":0.0011050513363063193,\"rsi_avg_loss\":0.0010988349743509074,\"rsi\":50},{\"period_id\":\"120m209803\",\"size\":\"120m\",\"time\":1510581600000,\"open\":0.17303,\"high\":0.1735,\"low\":0.17,\"close\":0.173,\"volume\":635923.3682115899,\"close_time\":1510588750094,\"vwap\":0.1699225175043389,\"ema1\":0.17270838559905907,\"sma1\":0.17881482333333334,\"sma2\":0.17834684166666664,\"rsi_avg_gain\":0.0011900552852529592,\"rsi_avg_loss\":0.0011448992031471308,\"rsi\":51},{\"period_id\":\"120m209802\",\"size\":\"120m\",\"time\":1510574400000,\"open\":0.17399,\"high\":0.174,\"low\":0.165,\"close\":0.17304,\"volume\":1779330.7190665496,\"close_time\":1510581596236,\"vwap\":0.16983862222997062,\"ema1\":0.17268827426106315,\"sma1\":0.17885149000000003,\"sma2\":0.178471175,\"rsi_avg_gain\":0.001281597999503187,\"rsi_avg_loss\":0.001229891449543063,\"rsi\":51},{\"period_id\":\"120m209801\",\"size\":\"120m\",\"time\":1510567200000,\"open\":0.1739,\"high\":0.175,\"low\":0.17095,\"close\":0.17399,\"volume\":1125405.2639887903,\"close_time\":1510574391964,\"vwap\":0.16953347113659248,\"ema1\":0.17266401731355027,\"sma1\":0.17886871222222223,\"sma2\":0.17855467500000002,\"rsi_avg_gain\":0.0013801824610034322,\"rsi_avg_loss\":0.0012514215610463751,\"rsi\":52},{\"period_id\":\"120m209800\",\"size\":\"120m\",\"time\":1510560000000,\"open\":0.1685,\"high\":0.1739,\"low\":0.168,\"close\":0.17349,\"volume\":1034292.9793085196,\"close_time\":1510567185235,\"vwap\":0.16882817943104036,\"ema1\":0.17257257023172615,\"sma1\":0.17889504685185187,\"sma2\":0.17868650833333335,\"rsi_avg_gain\":0.0014478888041575425,\"rsi_avg_loss\":0.0013476847580499425,\"rsi\":52},{\"period_id\":\"120m209799\",\"size\":\"120m\",\"time\":1510552800000,\"open\":0.16969,\"high\":0.1705,\"low\":0.16809,\"close\":0.16856,\"volume\":70489.34351741005,\"close_time\":1510559923918,\"vwap\":0.16854910970085107,\"ema1\":0.1725092992132245,\"sma1\":0.17894949129629634,\"sma2\":0.17884384166666667,\"rsi_avg_gain\":0.0011800340967850445,\"rsi_avg_loss\":0.0014513528163614766,\"rsi\":45},{\"period_id\":\"120m209798\",\"size\":\"120m\",\"time\":1510545600000,\"open\":0.17278,\"high\":0.1729,\"low\":0.16771,\"close\":0.16941,\"volume\":232672.51672249002,\"close_time\":1510552749298,\"vwap\":0.16854780581006104,\"ema1\":0.1727816646762055,\"sma1\":0.1789848616666667,\"sma2\":0.1789820083333333,\"rsi_avg_gain\":0.001270805950383894,\"rsi_avg_loss\":0.0014976107253123583,\"rsi\":46},{\"period_id\":\"120m209797\",\"size\":\"120m\",\"time\":1510538400000,\"open\":0.16775,\"high\":0.17287,\"low\":0.16714,\"close\":0.1728,\"volume\":317883.98797446996,\"close_time\":1510545349531,\"vwap\":0.16854431902245567,\"ema1\":0.17301419327456452,\"sma1\":0.1790229172222223,\"sma2\":0.17904850833333333,\"rsi_avg_gain\":0.001368560254259578,\"rsi_avg_loss\":0.0013520423195671546,\"rsi\":50},{\"period_id\":\"120m209796\",\"size\":\"120m\",\"time\":1510531200000,\"open\":0.16949,\"high\":0.1724,\"low\":0.16559,\"close\":0.1677505,\"volume\":521480.4175115699,\"close_time\":1510538326283,\"vwap\":0.16852031892352543,\"ema1\":0.17302896522453448,\"sma1\":0.17908402833333342,\"sma2\":0.17919049999999997,\"rsi_avg_gain\":0.0010854110430487754,\"rsi_avg_loss\":0.001456045574918474,\"rsi\":43},{\"period_id\":\"120m209795\",\"size\":\"120m\",\"time\":1510524000000,\"open\":0.1674,\"high\":0.16998,\"low\":0.165,\"close\":0.1695,\"volume\":1311093.4219952,\"close_time\":1510531050771,\"vwap\":0.16849296312806192,\"ema1\":0.17339299730898514,\"sma1\":0.17921384314814823,\"sma2\":0.17930783333333336,\"rsi_avg_gain\":0.0011689042002063735,\"rsi_avg_loss\":0.0014334721576045092,\"rsi\":45},{\"period_id\":\"120m209794\",\"size\":\"120m\",\"time\":1510516800000,\"open\":0.17,\"high\":0.171,\"low\":0.1655,\"close\":0.1674,\"volume\":930806.39173004,\"close_time\":1510523988470,\"vwap\":0.16921617882673862,\"ema1\":0.1736614798820186,\"sma1\":0.17935819500000005,\"sma2\":0.1794478333333334,\"rsi_avg_gain\":0.001097281446376093,\"rsi_avg_loss\":0.0015437392466510099,\"rsi\":42},{\"period_id\":\"120m209793\",\"size\":\"120m\",\"time\":1510509600000,\"open\":0.17021,\"high\":0.171,\"low\":0.1684,\"close\":0.17002,\"volume\":1081793.2557907307,\"close_time\":1510516799098,\"vwap\":0.1693803973710371,\"ema1\":0.1740933060807785,\"sma1\":0.17947856537037044,\"sma2\":0.17952533333333337,\"rsi_avg_gain\":0.0011816877114819463,\"rsi_avg_loss\":0.001460949957931856,\"rsi\":45},{\"period_id\":\"120m209792\",\"size\":\"120m\",\"time\":1510502400000,\"open\":0.16953,\"high\":0.173,\"low\":0.16717,\"close\":0.17022,\"volume\":1220729.4702502298,\"close_time\":1510509590715,\"vwap\":0.16914971559693182,\"ema1\":0.17437422374152184,\"sma1\":0.17956625055555564,\"sma2\":0.17962566666666674,\"rsi_avg_gain\":0.0012725867662113268,\"rsi_avg_loss\":0.0015579461085419982,\"rsi\":45},{\"period_id\":\"120m209791\",\"size\":\"120m\",\"time\":1510495200000,\"open\":0.16884,\"high\":0.17264,\"low\":0.1675,\"close\":0.16999,\"volume\":1416319.5101583297,\"close_time\":1510502384838,\"vwap\":0.1692420799032442,\"ema1\":0.17466072193059232,\"sma1\":0.1796653246296297,\"sma2\":0.17974183333333338,\"rsi_avg_gain\":0.0013527857482275821,\"rsi_avg_loss\":0.0016777881168913828,\"rsi\":45},{\"period_id\":\"120m209790\",\"size\":\"120m\",\"time\":1510488000000,\"open\":0.173,\"high\":0.1756,\"low\":0.1675,\"close\":0.17039,\"volume\":3313398.677564392,\"close_time\":1510495190490,\"vwap\":0.16761405695532663,\"ema1\":0.17498284068442627,\"sma1\":0.17967819500000004,\"sma2\":0.17984366666666673,\"rsi_avg_gain\":0.0014568461903989346,\"rsi_avg_loss\":0.0017760795104984112,\"rsi\":45},{\"period_id\":\"120m209789\",\"size\":\"120m\",\"time\":1510480800000,\"open\":0.16601,\"high\":0.1763,\"low\":0.165,\"close\":0.173,\"volume\":2580742.5473769414,\"close_time\":1510487985447,\"vwap\":0.16686989918337505,\"ema1\":0.17529958831783496,\"sma1\":0.1796714357407408,\"sma2\":0.17989550000000007,\"rsi_avg_gain\":0.0015689112819680835,\"rsi_avg_loss\":0.0017119317805367525,\"rsi\":48},{\"period_id\":\"120m209788\",\"size\":\"120m\",\"time\":1510473600000,\"open\":0.16596,\"high\":0.17146,\"low\":0.1611,\"close\":0.16601,\"volume\":2380649.9986581267,\"close_time\":1510480792987,\"vwap\":0.16540537655649876,\"ema1\":0.1754581806156167,\"sma1\":0.17971810240740746,\"sma2\":0.18005700000000008,\"rsi_avg_gain\":0.0011519044575040904,\"rsi_avg_loss\":0.001843618840578041,\"rsi\":38},{\"period_id\":\"120m209787\",\"size\":\"120m\",\"time\":1510466400000,\"open\":0.17,\"high\":0.17099,\"low\":0.161,\"close\":0.16122,\"volume\":3229527.0687472746,\"close_time\":1510473566212,\"vwap\":0.1653850243019204,\"ema1\":0.17610977927876267,\"sma1\":0.17976449129629626,\"sma2\":0.1802836666666667,\"rsi_avg_gain\":0.000872050954235175,\"rsi_avg_loss\":0.0019854356744686595,\"rsi\":31},{\"period_id\":\"120m209786\",\"size\":\"120m\",\"time\":1510459200000,\"open\":0.17066,\"high\":0.17355,\"low\":0.16823,\"close\":0.17,\"volume\":994724.1163038004,\"close_time\":1510466383975,\"vwap\":0.17108292070662082,\"ema1\":0.17713666060833252,\"sma1\":0.1797705098148148,\"sma2\":0.1803581666666667,\"rsi_avg_gain\":0.00093913179686865,\"rsi_avg_loss\":0.0014627768801970173,\"rsi\":39},{\"period_id\":\"120m209785\",\"size\":\"120m\",\"time\":1510452000000,\"open\":0.17445,\"high\":0.17445,\"low\":0.16902,\"close\":0.16922,\"volume\":1261435.8449201102,\"close_time\":1510459100083,\"vwap\":0.17145445129645098,\"ema1\":0.17762884409856236,\"sma1\":0.17979226907407408,\"sma2\":0.18044616666666669,\"rsi_avg_gain\":0.0009513727043200844,\"rsi_avg_loss\":0.0015752981786737112,\"rsi\":38},{\"period_id\":\"120m209784\",\"size\":\"120m\",\"time\":1510444800000,\"open\":0.17767,\"high\":0.1777,\"low\":0.17407,\"close\":0.17426,\"volume\":328023.63525571,\"close_time\":1510451999100,\"vwap\":0.17622596797952864,\"ema1\":0.17820876438122182,\"sma1\":0.17985986166666668,\"sma2\":0.18042516666666672,\"rsi_avg_gain\":0.001024555220037014,\"rsi_avg_loss\":0.0013087826539563052,\"rsi\":44},{\"period_id\":\"120m209783\",\"size\":\"120m\",\"time\":1510437600000,\"open\":0.17563,\"high\":0.1785,\"low\":0.17377,\"close\":0.1767,\"volume\":316327.0275906,\"close_time\":1510444746655,\"vwap\":0.17703067381047982,\"ema1\":0.17848109295923711,\"sma1\":0.17981625055555556,\"sma2\":0.1804106666666667,\"rsi_avg_gain\":0.0011033671600398612,\"rsi_avg_loss\":0.0012217659350298672,\"rsi\":47},{\"period_id\":\"120m209782\",\"size\":\"120m\",\"time\":1510430400000,\"open\":0.17608,\"high\":0.17998,\"low\":0.17214,\"close\":0.17598,\"volume\":1570101.0684755915,\"close_time\":1510437571913,\"vwap\":0.1738980907942339,\"ema1\":0.17860392695642588,\"sma1\":0.17969606537037042,\"sma2\":0.1804196666666667,\"rsi_avg_gain\":0.001132856941581389,\"rsi_avg_loss\":0.0013157479300321647,\"rsi\":46},{\"period_id\":\"120m209781\",\"size\":\"120m\",\"time\":1510423200000,\"open\":0.179,\"high\":0.18004,\"low\":0.175,\"close\":0.177,\"volume\":1139440.0789324606,\"close_time\":1510430382442,\"vwap\":0.17357046528499162,\"ema1\":0.1787848874361794,\"sma1\":0.1795708801851852,\"sma2\":0.18036033333333334,\"rsi_avg_gain\":0.0012199997832414958,\"rsi_avg_loss\":0.0013384977708038703,\"rsi\":48},{\"period_id\":\"120m209780\",\"size\":\"120m\",\"time\":1510416000000,\"open\":0.1732,\"high\":0.1794,\"low\":0.17001,\"close\":0.1794,\"volume\":991466.1092300097,\"close_time\":1510423190096,\"vwap\":0.17305397809781226,\"ema1\":0.17890798312143316,\"sma1\":0.1794468061111111,\"sma2\":0.18033533333333335,\"rsi_avg_gain\":0.0013138459204139186,\"rsi_avg_loss\":0.0012568437531733979,\"rsi\":51},{\"period_id\":\"120m209779\",\"size\":\"120m\",\"time\":1510408800000,\"open\":0.16985,\"high\":0.17395,\"low\":0.167,\"close\":0.17263,\"volume\":974812.9391063203,\"close_time\":1510415941956,\"vwap\":0.17271511934060682,\"ema1\":0.1788740509229113,\"sma1\":0.17939625055555555,\"sma2\":0.1804,\"rsi_avg_gain\":0.0008941417604457588,\"rsi_avg_loss\":0.001353524041879044,\"rsi\":40},{\"period_id\":\"120m209778\",\"size\":\"120m\",\"time\":1510401600000,\"open\":0.175,\"high\":0.17576832,\"low\":0.16701,\"close\":0.1695,\"volume\":2442211.8787478986,\"close_time\":1510408777466,\"vwap\":0.1727490927251918,\"ema1\":0.1793046751244914,\"sma1\":0.17933904388888883,\"sma2\":0.1805331666666667,\"rsi_avg_gain\":0.0007221526650954329,\"rsi_avg_loss\":0.0014576412758697396,\"rsi\":33},{\"period_id\":\"120m209777\",\"size\":\"120m\",\"time\":1510394400000,\"open\":0.1805,\"high\":0.18141,\"low\":0.172,\"close\":0.1721,\"volume\":2079496.2112085498,\"close_time\":1510401587132,\"vwap\":0.17576648373780007,\"ema1\":0.17998085961583565,\"sma1\":0.17914080314814812,\"sma2\":0.18063316666666665,\"rsi_avg_gain\":0.0007777028701027739,\"rsi_avg_loss\":0.0013697675278597202,\"rsi\":36},{\"period_id\":\"120m209776\",\"size\":\"120m\",\"time\":1510387200000,\"open\":0.17744,\"high\":0.181,\"low\":0.17692,\"close\":0.18022,\"volume\":981048.3481494704,\"close_time\":1510394392419,\"vwap\":0.17803351580989837,\"ema1\":0.18052436717554846,\"sma1\":0.17894635870370368,\"sma2\":0.18052216666666665,\"rsi_avg_gain\":0.0008375261678029873,\"rsi_avg_loss\":0.0008505188761566227,\"rsi\":50},{\"period_id\":\"120m209775\",\"size\":\"120m\",\"time\":1510380000000,\"open\":0.17612,\"high\":0.17835,\"low\":0.17575,\"close\":0.178,\"volume\":270682.5348436299,\"close_time\":1510387170239,\"vwap\":0.176170414102545,\"ema1\":0.18054535801524146,\"sma1\":0.1788060809259259,\"sma2\":0.18041383333333333,\"rsi_avg_gain\":0.0007311820268647556,\"rsi_avg_loss\":0.0009159434050917475,\"rsi\":44},{\"period_id\":\"120m209774\",\"size\":\"120m\",\"time\":1510372800000,\"open\":0.17598,\"high\":0.177,\"low\":0.175,\"close\":0.1755,\"volume\":131092.04912470002,\"close_time\":1510379912100,\"vwap\":0.1760015826061187,\"ema1\":0.18072089994732707,\"sma1\":0.17869237722222217,\"sma2\":0.18035716666666668,\"rsi_avg_gain\":0.000595119105854352,\"rsi_avg_loss\":0.000986400590098805,\"rsi\":38},{\"period_id\":\"120m209773\",\"size\":\"120m\",\"time\":1510365600000,\"open\":0.17698,\"high\":0.177,\"low\":0.1758,\"close\":0.17635,\"volume\":94690.41121102999,\"close_time\":1510372576835,\"vwap\":0.17601846377446442,\"ema1\":0.18108096201265997,\"sma1\":0.17860571055555552,\"sma2\":0.18028483333333334,\"rsi_avg_gain\":0.0006408974986123791,\"rsi_avg_loss\":0.000996892943183327,\"rsi\":39},{\"period_id\":\"120m209772\",\"size\":\"120m\",\"time\":1510358400000,\"open\":0.17466,\"high\":0.17727,\"low\":0.1735,\"close\":0.177,\"volume\":222966.58106674007,\"close_time\":1510365541592,\"vwap\":0.1760093153992036,\"ema1\":0.18140723525491237,\"sma1\":0.17850895129629624,\"sma2\":0.1801945,\"rsi_avg_gain\":0.0006901973061979467,\"rsi_avg_loss\":0.0010235770157358919,\"rsi\":40},{\"period_id\":\"120m209771\",\"size\":\"120m\",\"time\":1510351200000,\"open\":0.17467,\"high\":0.179,\"low\":0.17387,\"close\":0.1747,\"volume\":797093.3192915202,\"close_time\":1510358365250,\"vwap\":0.17597080761856315,\"ema1\":0.18171118251387183,\"sma1\":0.17839543277777775,\"sma2\":0.18016533333333332,\"rsi_avg_gain\":0.0005663663297516352,\"rsi_avg_loss\":0.0011023137092540374,\"rsi\":34},{\"period_id\":\"120m209770\",\"size\":\"120m\",\"time\":1510344000000,\"open\":0.17441,\"high\":0.17549,\"low\":0.171,\"close\":0.17479,\"volume\":1094468.96498331,\"close_time\":1510351192590,\"vwap\":0.1784031808496724,\"ema1\":0.18219471234241472,\"sma1\":0.1783408957407407,\"sma2\":0.18013771,\"rsi_avg_gain\":0.000609932970501761,\"rsi_avg_loss\":0.0011801839945812704,\"rsi\":34},{\"period_id\":\"120m209769\",\"size\":\"120m\",\"time\":1510336800000,\"open\":0.1761,\"high\":0.1772,\"low\":0.1715,\"close\":0.17441,\"volume\":1735605.7652716597,\"close_time\":1510343991423,\"vwap\":0.17869929227151193,\"ema1\":0.18270538215913298,\"sma1\":0.1782705253703703,\"sma2\":0.1800888766666667,\"rsi_avg_gain\":0.0006276201220788201,\"rsi_avg_loss\":0.0012709673787798296,\"rsi\":33},{\"period_id\":\"120m209768\",\"size\":\"120m\",\"time\":1510329600000,\"open\":0.1778,\"high\":0.178,\"low\":0.1752,\"close\":0.1762,\"volume\":1264054.9084802696,\"close_time\":1510336785873,\"vwap\":0.17953407784337597,\"ema1\":0.1832774774804525,\"sma1\":0.17821959944444443,\"sma2\":0.18001887666666672,\"rsi_avg_gain\":0.0006758985930079602,\"rsi_avg_loss\":0.0012310417925321252,\"rsi\":35},{\"period_id\":\"120m209767\",\"size\":\"120m\",\"time\":1510322400000,\"open\":0.17786,\"high\":0.1788,\"low\":0.175,\"close\":0.1778,\"volume\":1705075.3105860895,\"close_time\":1510329594861,\"vwap\":0.1797430918732016,\"ema1\":0.18376557937565613,\"sma1\":0.17816441425925925,\"sma2\":0.1799383766666667,\"rsi_avg_gain\":0.000727890792470111,\"rsi_avg_loss\":0.001202660391957672,\"rsi\":38},{\"period_id\":\"120m209766\",\"size\":\"120m\",\"time\":1510315200000,\"open\":0.183,\"high\":0.18419,\"low\":0.175,\"close\":0.1756,\"volume\":3142127.279473542,\"close_time\":1510322389977,\"vwap\":0.18033105925647339,\"ema1\":0.18417699864294276,\"sma1\":0.17804691425925925,\"sma2\":0.17987671000000008,\"rsi_avg_gain\":0.000614651622660119,\"rsi_avg_loss\":0.0012951727298005698,\"rsi\":32},{\"period_id\":\"120m209765\",\"size\":\"120m\",\"time\":1510308000000,\"open\":0.18448,\"high\":0.18618,\"low\":0.1828,\"close\":0.18419,\"volume\":1506359.236394429,\"close_time\":1510315192886,\"vwap\":0.18433537238478404,\"ema1\":0.18476851579073192,\"sma1\":0.17791543277777783,\"sma2\":0.1797035433333334,\"rsi_avg_gain\":0.0006619325167108974,\"rsi_avg_loss\":0.000734032170554461,\"rsi\":47},{\"period_id\":\"120m209764\",\"size\":\"120m\",\"time\":1510300800000,\"open\":0.184,\"high\":0.18554,\"low\":0.183,\"close\":0.1833,\"volume\":1503755.2062659115,\"close_time\":1510307961116,\"vwap\":0.18428139923218328,\"ema1\":0.18480841343147206,\"sma1\":0.17779617351851856,\"sma2\":0.1795332100000001,\"rsi_avg_gain\":0.0006443888641501971,\"rsi_avg_loss\":0.0007904961836740349,\"rsi\":45},{\"period_id\":\"120m209763\",\"size\":\"120m\",\"time\":1510293600000,\"open\":0.1856,\"high\":0.18767,\"low\":0.182,\"close\":0.18456,\"volume\":1486303.6773744512,\"close_time\":1510300710540,\"vwap\":0.18368934002763415,\"ema1\":0.18491244194398737,\"sma1\":0.1776452475925926,\"sma2\":0.17936287666666675,\"rsi_avg_gain\":0.0006939572383155969,\"rsi_avg_loss\":0.0007543805054951136,\"rsi\":48},{\"period_id\":\"120m209762\",\"size\":\"120m\",\"time\":1510286400000,\"open\":0.18779,\"high\":0.1893,\"low\":0.185,\"close\":0.1856,\"volume\":939146.5902925809,\"close_time\":1510293560736,\"vwap\":0.18836939336711514,\"ema1\":0.18493674828495202,\"sma1\":0.17748154388888893,\"sma2\":0.1791872100000001,\"rsi_avg_gain\":0.0007473385643398736,\"rsi_avg_loss\":0.000732409775148585,\"rsi\":51},{\"period_id\":\"120m209761\",\"size\":\"120m\",\"time\":1510279200000,\"open\":0.18826,\"high\":0.1888,\"low\":0.18701,\"close\":0.18705,\"volume\":339837.14506474993,\"close_time\":1510285951714,\"vwap\":0.18850715633479914,\"ema1\":0.1848910067873625,\"sma1\":0.17732413648148154,\"sma2\":0.17897471000000006,\"rsi_avg_gain\":0.0008048261462121716,\"rsi_avg_loss\":0.0006772105270830911,\"rsi\":54},{\"period_id\":\"120m209760\",\"size\":\"120m\",\"time\":1510272000000,\"open\":0.18789,\"high\":0.1891,\"low\":0.18751,\"close\":0.18826,\"volume\":345118.0852415101,\"close_time\":1510279161966,\"vwap\":0.18851419133466482,\"ema1\":0.18474211070373234,\"sma1\":0.17716571055555563,\"sma2\":0.17874387666666677,\"rsi_avg_gain\":0.0008667358497669541,\"rsi_avg_loss\":0.0006362267214740969,\"rsi\":58},{\"period_id\":\"120m209759\",\"size\":\"120m\",\"time\":1510264800000,\"open\":0.18834,\"high\":0.18945,\"low\":0.187,\"close\":0.1879,\"volume\":796401.9897196796,\"close_time\":1510271939436,\"vwap\":0.18851499800299681,\"ema1\":0.18449949764881732,\"sma1\":0.17701191425925933,\"sma2\":0.1784985433333334,\"rsi_avg_gain\":0.0009057155305182582,\"rsi_avg_loss\":0.0006851672385105659,\"rsi\":57},{\"period_id\":\"120m209758\",\"size\":\"120m\",\"time\":1510257600000,\"open\":0.18978,\"high\":0.19079,\"low\":0.188,\"close\":0.18826,\"volume\":1298007.2077193111,\"close_time\":1510264623260,\"vwap\":0.18855097360949755,\"ema1\":0.18426498024528748,\"sma1\":0.17684580314814824,\"sma2\":0.17826021000000009,\"rsi_avg_gain\":0.0009753859559427396,\"rsi_avg_loss\":0.0007101801030113786,\"rsi\":58},{\"period_id\":\"120m209757\",\"size\":\"120m\",\"time\":1510250400000,\"open\":0.19128,\"high\":0.19157,\"low\":0.189,\"close\":0.19,\"volume\":1405700.9650095599,\"close_time\":1510257580160,\"vwap\":0.18843901508997485,\"ema1\":0.1839894616415142,\"sma1\":0.17667126611111125,\"sma2\":0.1780185433333334,\"rsi_avg_gain\":0.001050415644861412,\"rsi_avg_loss\":0.0006309631878584084,\"rsi\":62},{\"period_id\":\"120m209756\",\"size\":\"120m\",\"time\":1510243200000,\"open\":0.18917,\"high\":0.1916,\"low\":0.189,\"close\":0.19116,\"volume\":1132757.5451497396,\"close_time\":1510250373928,\"vwap\":0.18821945014220395,\"ema1\":0.18357494175472208,\"sma1\":0.1765036735185187,\"sma2\":0.17775237666666677,\"rsi_avg_gain\":0.0011312168483122898,\"rsi_avg_loss\":0.0005902680484629018,\"rsi\":66},{\"period_id\":\"120m209755\",\"size\":\"120m\",\"time\":1510236000000,\"open\":0.18691,\"high\":0.1895,\"low\":0.186,\"close\":0.18924,\"volume\":1015144.8545400195,\"close_time\":1510243165747,\"vwap\":0.18793648003798025,\"ema1\":0.1830518342895305,\"sma1\":0.17636571055555572,\"sma2\":0.17752904333333344,\"rsi_avg_gain\":0.0010705412212593888,\"rsi_avg_loss\":0.0006356732829600481,\"rsi\":63},{\"period_id\":\"120m209754\",\"size\":\"120m\",\"time\":1510228800000,\"open\":0.18752,\"high\":0.18776,\"low\":0.185,\"close\":0.18751,\"volume\":1343139.0552525606,\"close_time\":1510235959442,\"vwap\":0.18790466164707148,\"ema1\":0.1826250642405326,\"sma1\":0.1762457105555557,\"sma2\":0.17735404333333343,\"rsi_avg_gain\":0.0010198136228947278,\"rsi_avg_loss\":0.0006845712278031286,\"rsi\":60},{\"period_id\":\"120m209753\",\"size\":\"120m\",\"time\":1510221600000,\"open\":0.1869,\"high\":0.19,\"low\":0.1862,\"close\":0.18776,\"volume\":3008040.409756683,\"close_time\":1510228722468,\"vwap\":0.1881582861780628,\"ema1\":0.18228817211919002,\"sma1\":0.17610496981481497,\"sma2\":0.17714137666666677,\"rsi_avg_gain\":0.0010982608246558607,\"rsi_avg_loss\":0.0007179997837879846,\"rsi\":60},{\"period_id\":\"120m209752\",\"size\":\"120m\",\"time\":1510214400000,\"open\":0.1918,\"high\":0.19399,\"low\":0.18508,\"close\":0.18612,\"volume\":2349684.717258219,\"close_time\":1510221593570,\"vwap\":0.1874774259253186,\"ema1\":0.18191080467913415,\"sma1\":0.17592635870370388,\"sma2\":0.17697271000000006,\"rsi_avg_gain\":0.001056588580398619,\"rsi_avg_loss\":0.0007732305363870603,\"rsi\":58},{\"period_id\":\"120m209751\",\"size\":\"120m\",\"time\":1510207200000,\"open\":0.19,\"high\":0.19345,\"low\":0.18762,\"close\":0.1923,\"volume\":1760255.8831517405,\"close_time\":1510214387087,\"vwap\":0.188107653732223,\"ema1\":0.18162051534666063,\"sma1\":0.17574978462962984,\"sma2\":0.17669971000000004,\"rsi_avg_gain\":0.0011378646250446666,\"rsi_avg_loss\":0.00035732519303221936,\"rsi\":76},{\"period_id\":\"120m209750\",\"size\":\"120m\",\"time\":1510200000000,\"open\":0.19149,\"high\":0.19209,\"low\":0.18817,\"close\":0.19,\"volume\":1028929.5947521498,\"close_time\":1510207189870,\"vwap\":0.18779455888777818,\"ema1\":0.1808839991636717,\"sma1\":0.17558172907407427,\"sma2\":0.1764783766666667,\"rsi_avg_gain\":0.0010484695962019491,\"rsi_avg_loss\":0.00038481174634239006,\"rsi\":73},{\"period_id\":\"120m209749\",\"size\":\"120m\",\"time\":1510192800000,\"open\":0.1904,\"high\":0.19199,\"low\":0.19,\"close\":0.1915,\"volume\":451503.23897744983,\"close_time\":1510199851179,\"vwap\":0.18768681448963284,\"ema1\":0.18025530945082147,\"sma1\":0.17541978462962982,\"sma2\":0.17619621,\"rsi_avg_gain\":0.0011291211036020992,\"rsi_avg_loss\":0.00029902803452257383,\"rsi\":79},{\"period_id\":\"120m209748\",\"size\":\"120m\",\"time\":1510185600000,\"open\":0.1883,\"high\":0.19145,\"low\":0.18762,\"close\":0.1905,\"volume\":1098934.3051002997,\"close_time\":1510192757308,\"vwap\":0.18764759831047756,\"ema1\":0.1794798135508781,\"sma1\":0.17525987722222236,\"sma2\":0.17593787666666666,\"rsi_avg_gain\":0.001139053496186876,\"rsi_avg_loss\":0.0003220301910243103,\"rsi\":78},{\"period_id\":\"120m209747\",\"size\":\"120m\",\"time\":1510178400000,\"open\":0.18594,\"high\":0.194,\"low\":0.18486,\"close\":0.1883,\"volume\":3605912.2368677803,\"close_time\":1510185592050,\"vwap\":0.1875767622072705,\"ema1\":0.17871980069231796,\"sma1\":0.17507932166666682,\"sma2\":0.17577454333333328,\"rsi_avg_gain\":0.001057442226662789,\"rsi_avg_loss\":0.0003468017441800265,\"rsi\":75},{\"period_id\":\"120m209746\",\"size\":\"120m\",\"time\":1510171200000,\"open\":0.18458,\"high\":0.189,\"low\":0.18392,\"close\":0.18483,\"volume\":2863643.826655647,\"close_time\":1510178396358,\"vwap\":0.18535358451427242,\"ema1\":0.17805909729178818,\"sma1\":0.17494774759259274,\"sma2\":0.17574237666666667,\"rsi_avg_gain\":0.0008718608594830033,\"rsi_avg_loss\":0.00037347880142464394,\"rsi\":70},{\"period_id\":\"120m209745\",\"size\":\"120m\",\"time\":1510164000000,\"open\":0.18168,\"high\":0.18489,\"low\":0.1812,\"close\":0.18478,\"volume\":1649316.9000354288,\"close_time\":1510171085680,\"vwap\":0.18347038011777292,\"ema1\":0.17759213848432528,\"sma1\":0.17485432166666684,\"sma2\":0.17572520999999994,\"rsi_avg_gain\":0.0009350809255970809,\"rsi_avg_loss\":0.00040220793999577037,\"rsi\":70},{\"period_id\":\"120m209744\",\"size\":\"120m\",\"time\":1510156800000,\"open\":0.18179,\"high\":0.18185,\"low\":0.18021,\"close\":0.18169,\"volume\":681920.6512323202,\"close_time\":1510163982490,\"vwap\":0.17819501621315165,\"ema1\":0.17709642389703736,\"sma1\":0.17479080314814832,\"sma2\":0.17573820999999995,\"rsi_avg_gain\":0.0007693179198737787,\"rsi_avg_loss\":0.00043314701230313734,\"rsi\":64},{\"period_id\":\"120m209743\",\"size\":\"120m\",\"time\":1510149600000,\"open\":0.1805,\"high\":0.18185,\"low\":0.17981,\"close\":0.18185,\"volume\":951725.1750221897,\"close_time\":1510156611388,\"vwap\":0.17808936417123872,\"ema1\":0.1767796255451089,\"sma1\":0.17472358092592605,\"sma2\":0.17568104333333331,\"rsi_avg_gain\":0.0008284962214025308,\"rsi_avg_loss\":0.0004541583209418386,\"rsi\":65},{\"period_id\":\"120m209742\",\"size\":\"120m\",\"time\":1510142400000,\"open\":0.17993,\"high\":0.18099,\"low\":0.17898,\"close\":0.1805,\"volume\":540792.8048310501,\"close_time\":1510149525975,\"vwap\":0.17787412517763604,\"ema1\":0.17642994454821986,\"sma1\":0.17467182166666678,\"sma2\":0.17562087666666662,\"rsi_avg_gain\":0.000788380546125801,\"rsi_avg_loss\":0.0004890935763989031,\"rsi\":62},{\"period_id\":\"120m209741\",\"size\":\"120m\",\"time\":1510135200000,\"open\":0.1814,\"high\":0.1818,\"low\":0.179,\"close\":0.179,\"volume\":783970.61652481,\"close_time\":1510142377261,\"vwap\":0.17777954185663272,\"ema1\":0.17614925106878676,\"sma1\":0.17461108092592603,\"sma2\":0.1755445433333333,\"rsi_avg_gain\":0.000733640588135478,\"rsi_avg_loss\":0.0005267161591988187,\"rsi\":58},{\"period_id\":\"120m209740\",\"size\":\"120m\",\"time\":1510128000000,\"open\":0.17791,\"high\":0.1815,\"low\":0.1779,\"close\":0.1814,\"volume\":1374943.94239282,\"close_time\":1510135187696,\"vwap\":0.1775551472918078,\"ema1\":0.17595264769422034,\"sma1\":0.17454858092592598,\"sma2\":0.17539120999999996,\"rsi_avg_gain\":0.0007900744795305148,\"rsi_avg_loss\":0.00038261740221411144,\"rsi\":67},{\"period_id\":\"120m209739\",\"size\":\"120m\",\"time\":1510120800000,\"open\":0.17764,\"high\":0.17849,\"low\":0.17652,\"close\":0.178,\"volume\":384621.52919080993,\"close_time\":1510127962156,\"vwap\":0.1761337109190869,\"ema1\":0.17557696822485622,\"sma1\":0.17450515500000008,\"sma2\":0.1753463766666666,\"rsi_avg_gain\":0.0005893109779559379,\"rsi_avg_loss\":0.0004120495100767354,\"rsi\":59},{\"period_id\":\"120m209738\",\"size\":\"120m\",\"time\":1510113600000,\"open\":0.1769,\"high\":0.1777,\"low\":0.17644,\"close\":0.1777,\"volume\":69522.52897796,\"close_time\":1510120779142,\"vwap\":0.17605502538380333,\"ema1\":0.17540986258519112,\"sma1\":0.17446256240740748,\"sma2\":0.1752628766666666,\"rsi_avg_gain\":0.0006115656685679335,\"rsi_avg_loss\":0.0004437456262364843,\"rsi\":58},{\"period_id\":\"120m209737\",\"size\":\"120m\",\"time\":1510106400000,\"open\":0.17604,\"high\":0.1777,\"low\":0.17601,\"close\":0.17679,\"volume\":48029.677979789994,\"close_time\":1510113047765,\"vwap\":0.1760522054942687,\"ema1\":0.17525192207382498,\"sma1\":0.17442145129629635,\"sma2\":0.1751333766666666,\"rsi_avg_gain\":0.0005886091815346981,\"rsi_avg_loss\":0.0004778799051777523,\"rsi\":55},{\"period_id\":\"120m209736\",\"size\":\"120m\",\"time\":1510099200000,\"open\":0.17749,\"high\":0.178,\"low\":0.17573,\"close\":0.17627,\"volume\":193680.65782711,\"close_time\":1510105724331,\"vwap\":0.17605159723924466,\"ema1\":0.17514584773408878,\"sma1\":0.17438404388888895,\"sma2\":0.1751413766666666,\"rsi_avg_gain\":0.0005938868108835216,\"rsi_avg_loss\":0.0005146398978837333,\"rsi\":54},{\"period_id\":\"120m209735\",\"size\":\"120m\",\"time\":1510092000000,\"open\":0.176,\"high\":0.17798,\"low\":0.17505,\"close\":0.17654,\"volume\":331983.7212767101,\"close_time\":1510099191438,\"vwap\":0.1760384091824956,\"ema1\":0.17506831999161215,\"sma1\":0.17434135870370374,\"sma2\":0.17506720999999995,\"rsi_avg_gain\":0.0006395704117207156,\"rsi_avg_loss\":0.000533458351567098,\"rsi\":55},{\"period_id\":\"120m209734\",\"size\":\"120m\",\"time\":1510084800000,\"open\":0.17462,\"high\":0.17599,\"low\":0.174,\"close\":0.1758,\"volume\":543890.8425675798,\"close_time\":1510091951730,\"vwap\":0.17600271995971423,\"ema1\":0.1749668248186199,\"sma1\":0.1743274698148148,\"sma2\":0.17486787666666662,\"rsi_avg_gain\":0.0006318450587761559,\"rsi_avg_loss\":0.0005744936093799517,\"rsi\":52},{\"period_id\":\"120m209733\",\"size\":\"120m\",\"time\":1510077600000,\"open\":0.176,\"high\":0.17623,\"low\":0.1742,\"close\":0.17467,\"volume\":298285.5914498901,\"close_time\":1510084781753,\"vwap\":0.17608995771448593,\"ema1\":0.17490936446128333,\"sma1\":0.17430265499999997,\"sma2\":0.17470687666666665,\"rsi_avg_gain\":0.0005935254479127818,\"rsi_avg_loss\":0.0006186854254861019,\"rsi\":49},{\"period_id\":\"120m209732\",\"size\":\"120m\",\"time\":1510070400000,\"open\":0.17696,\"high\":0.17699,\"low\":0.1741,\"close\":0.17624,\"volume\":616210.35768858,\"close_time\":1510077534651,\"vwap\":0.1761357990126578,\"ema1\":0.17492587235516494,\"sma1\":0.17427219203703703,\"sma2\":0.17451487666666665,\"rsi_avg_gain\":0.0006391812515983804,\"rsi_avg_loss\":0.0005455073812927238,\"rsi\":54},{\"period_id\":\"120m209731\",\"size\":\"120m\",\"time\":1510063200000,\"open\":0.1765,\"high\":0.1788,\"low\":0.175,\"close\":0.17696,\"volume\":484177.00953444996,\"close_time\":1510070388539,\"vwap\":0.17624802254136204,\"ema1\":0.1748352428624177,\"sma1\":0.1742154327777778,\"sma2\":0.17432304333333332,\"rsi_avg_gain\":0.0006883490401828712,\"rsi_avg_loss\":0.000532084872161395,\"rsi\":56},{\"period_id\":\"120m209730\",\"size\":\"120m\",\"time\":1510056000000,\"open\":0.17611,\"high\":0.1794,\"low\":0.17513,\"close\":0.1765,\"volume\":691270.1650262901,\"close_time\":1510063183951,\"vwap\":0.17614410704253633,\"ema1\":0.174688707887412,\"sma1\":0.17414691425925927,\"sma2\":0.17415170999999996,\"rsi_avg_gain\":0.0007059143509661678,\"rsi_avg_loss\":0.0005730144777122716,\"rsi\":55},{\"period_id\":\"120m209729\",\"size\":\"120m\",\"time\":1510048800000,\"open\":0.175,\"high\":0.17611,\"low\":0.1742,\"close\":0.17611,\"volume\":343346.65494068,\"close_time\":1510055978376,\"vwap\":0.1757406923197522,\"ema1\":0.17456379118999213,\"sma1\":0.17410311796296296,\"sma2\":0.17388320999999998,\"rsi_avg_gain\":0.0007302154548866421,\"rsi_avg_loss\":0.0006170925144593694,\"rsi\":54},{\"period_id\":\"120m209728\",\"size\":\"120m\",\"time\":1510041600000,\"open\":0.17482,\"high\":0.1763,\"low\":0.1744,\"close\":0.1757,\"volume\":580407.61852609,\"close_time\":1510048791024,\"vwap\":0.17577490165741902,\"ema1\":0.17445715609964677,\"sma1\":0.17407061796296294,\"sma2\":0.17356670999999996,\"rsi_avg_gain\":0.0007548474129548458,\"rsi_avg_loss\":0.0006645611694177824,\"rsi\":53},{\"period_id\":\"120m209727\",\"size\":\"120m\",\"time\":1510034400000,\"open\":0.1744,\"high\":0.17537,\"low\":0.17321,\"close\":0.17482,\"volume\":284289.22077732993,\"close_time\":1510041591397,\"vwap\":0.17578883445401836,\"ema1\":0.17437144272720861,\"sma1\":0.17405580314814817,\"sma2\":0.17330504333333335,\"rsi_avg_gain\":0.0007452202908744498,\"rsi_avg_loss\":0.0007156812593729964,\"rsi\":51},{\"period_id\":\"120m209726\",\"size\":\"120m\",\"time\":1510027200000,\"open\":0.17457,\"high\":0.17517,\"low\":0.17371,\"close\":0.17447,\"volume\":11673.709015010001,\"close_time\":1510034307242,\"vwap\":0.17592172452635033,\"ema1\":0.17434050774287818,\"sma1\":0.1740440438888889,\"sma2\":0.1730855433333333,\"rsi_avg_gain\":0.0007756218517109447,\"rsi_avg_loss\":0.00077073366394015,\"rsi\":50},{\"period_id\":\"120m209725\",\"size\":\"120m\",\"time\":1510020000000,\"open\":0.17377,\"high\":0.1745,\"low\":0.17302,\"close\":0.1745,\"volume\":20485.34577588,\"close_time\":1510026811994,\"vwap\":0.1759232641047555,\"ema1\":0.17433157724238701,\"sma1\":0.17401395129629627,\"sma2\":0.17288554333333334,\"rsi_avg_gain\":0.000835285071073325,\"rsi_avg_loss\":0.0008277131765509306,\"rsi\":50},{\"period_id\":\"120m209724\",\"size\":\"120m\",\"time\":1510012800000,\"open\":0.1752,\"high\":0.176,\"low\":0.173,\"close\":0.173,\"volume\":507745.65906769,\"close_time\":1510019694184,\"vwap\":0.17592526720565996,\"ema1\":0.174319961879793,\"sma1\":0.17397811796296297,\"sma2\":0.17275754333333332,\"rsi_avg_gain\":0.0007841531534635807,\"rsi_avg_loss\":0.0008913834209010021,\"rsi\":47},{\"period_id\":\"120m209723\",\"size\":\"120m\",\"time\":1510005600000,\"open\":0.176,\"high\":0.17736,\"low\":0.17508,\"close\":0.17583,\"volume\":321363.90848562,\"close_time\":1510012612990,\"vwap\":0.17640470707410316,\"ema1\":0.17441099373357183,\"sma1\":0.17393339574074074,\"sma2\":0.17256604333333334,\"rsi_avg_gain\":0.000844472626806933,\"rsi_avg_loss\":0.0007422590686626177,\"rsi\":53},{\"period_id\":\"120m209722\",\"size\":\"120m\",\"time\":1509998400000,\"open\":0.17397,\"high\":0.17917,\"low\":0.173,\"close\":0.17652,\"volume\":837215.3540747804,\"close_time\":1510005596259,\"vwap\":0.176495126391921,\"ema1\":0.17431313123243886,\"sma1\":0.17388821055555553,\"sma2\":0.17239937666666666,\"rsi_avg_gain\":0.0009094320596382355,\"rsi_avg_loss\":0.0007462789970212788,\"rsi\":55},{\"period_id\":\"120m209721\",\"size\":\"120m\",\"time\":1509991200000,\"open\":0.1779,\"high\":0.178,\"low\":0.1725,\"close\":0.17344,\"volume\":831803.0782492501,\"close_time\":1509998371399,\"vwap\":0.17637325462772485,\"ema1\":0.17416093338640015,\"sma1\":0.17383654388888883,\"sma2\":0.17231671,\"rsi_avg_gain\":0.0007424652949950229,\"rsi_avg_loss\":0.0008036850737152233,\"rsi\":48},{\"period_id\":\"120m209720\",\"size\":\"120m\",\"time\":1509984000000,\"open\":0.17718,\"high\":0.178,\"low\":0.176,\"close\":0.1779,\"volume\":519464.5367089202,\"close_time\":1509991165784,\"vwap\":0.17655741817748827,\"ema1\":0.1742106529302898,\"sma1\":0.1737830253703703,\"sma2\":0.17218487666666665,\"rsi_avg_gain\":0.00079957800999464,\"rsi_avg_loss\":0.0005224300793856257,\"rsi\":60},{\"period_id\":\"120m209719\",\"size\":\"120m\",\"time\":1509976800000,\"open\":0.17746,\"high\":0.17942,\"low\":0.176,\"close\":0.17651,\"volume\":713613.6589118104,\"close_time\":1509983927143,\"vwap\":0.17651246929137035,\"ema1\":0.17395621520134427,\"sma1\":0.17373274759259252,\"sma2\":0.17211521,\"rsi_avg_gain\":0.0007541609338403814,\"rsi_avg_loss\":0.0005626170085691354,\"rsi\":57},{\"period_id\":\"120m209718\",\"size\":\"120m\",\"time\":1509969600000,\"open\":0.17809,\"high\":0.1795,\"low\":0.17611,\"close\":0.17749,\"volume\":1374767.8448534303,\"close_time\":1509976794806,\"vwap\":0.17645826337727796,\"ema1\":0.1737800921117818,\"sma1\":0.17368885870370365,\"sma2\":0.17200871,\"rsi_avg_gain\":0.0008121733133665646,\"rsi_avg_loss\":0.0005305106246129143,\"rsi\":60},{\"period_id\":\"120m209717\",\"size\":\"120m\",\"time\":1509962400000,\"open\":0.1735,\"high\":0.17999,\"low\":0.1725,\"close\":0.1781,\"volume\":2200216.881624569,\"close_time\":1509969590499,\"vwap\":0.17582721742365778,\"ema1\":0.17352423639535297,\"sma1\":0.17363922907407403,\"sma2\":0.17187354333333332,\"rsi_avg_gain\":0.0008746481836255311,\"rsi_avg_loss\":0.0005243960572754462,\"rsi\":63},{\"period_id\":\"120m209716\",\"size\":\"120m\",\"time\":1509955200000,\"open\":0.17255,\"high\":0.17357,\"low\":0.17148,\"close\":0.17356,\"volume\":335989.29328549025,\"close_time\":1509962384294,\"vwap\":0.1726451599432958,\"ema1\":0.1732086664915842,\"sma1\":0.17365006240740738,\"sma2\":0.17183271,\"rsi_avg_gain\":0.0005926980439044169,\"rsi_avg_loss\":0.0005647342155274037,\"rsi\":51},{\"period_id\":\"120m209715\",\"size\":\"120m\",\"time\":1509948000000,\"open\":0.1721,\"high\":0.1728,\"low\":0.1715,\"close\":0.1715,\"volume\":202010.55558656997,\"close_time\":1509955028898,\"vwap\":0.17258330062949195,\"ema1\":0.17318443659445207,\"sma1\":0.1736625624074074,\"sma2\":0.17182771000000002,\"rsi_avg_gain\":0.0004798286626662968,\"rsi_avg_loss\":0.0006081753090295116,\"rsi\":44},{\"period_id\":\"120m209714\",\"size\":\"120m\",\"time\":1509940800000,\"open\":0.17246,\"high\":0.17288,\"low\":0.17201,\"close\":0.1721,\"volume\":23604.53356389,\"close_time\":1509947976027,\"vwap\":0.17259290872514244,\"ema1\":0.17330060463544877,\"sma1\":0.173670155,\"sma2\":0.17180604333333335,\"rsi_avg_gain\":0.0005167385597944735,\"rsi_avg_loss\":0.0006088041789548594,\"rsi\":46},{\"period_id\":\"120m209713\",\"size\":\"120m\",\"time\":1509933600000,\"open\":0.17205,\"high\":0.17288,\"low\":0.17157,\"close\":0.17201,\"volume\":19736.135164620002,\"close_time\":1509939281965,\"vwap\":0.17259314855685307,\"ema1\":0.1733834049551349,\"sma1\":0.17367598833333334,\"sma2\":0.17177304333333335,\"rsi_avg_gain\":0.0005495646028555863,\"rsi_avg_loss\":0.0006556352696436946,\"rsi\":46},{\"period_id\":\"120m209712\",\"size\":\"120m\",\"time\":1509926400000,\"open\":0.17216,\"high\":0.17292,\"low\":0.1715,\"close\":0.17158,\"volume\":121462.81296058,\"close_time\":1509933007327,\"vwap\":0.1725931981298603,\"ema1\":0.17347812253824765,\"sma1\":0.17368969203703702,\"sma2\":0.17177604333333335,\"rsi_avg_gain\":0.0005587618799983248,\"rsi_avg_loss\":0.0007060687519239788,\"rsi\":44},{\"period_id\":\"120m209711\",\"size\":\"120m\",\"time\":1509919200000,\"open\":0.1731326,\"high\":0.1735,\"low\":0.17202,\"close\":0.17295,\"volume\":141936.93398588,\"close_time\":1509926340359,\"vwap\":0.17260019721465417,\"ema1\":0.17360902754088542,\"sma1\":0.1737000624074074,\"sma2\":0.17174754333333336,\"rsi_avg_gain\":0.000601743563075119,\"rsi_avg_loss\":0.000654997117456594,\"rsi\":48},{\"period_id\":\"120m209710\",\"size\":\"120m\",\"time\":1509912000000,\"open\":0.1715,\"high\":0.1731326,\"low\":0.17102,\"close\":0.1731326,\"volume\":453581.5936299202,\"close_time\":1509919033486,\"vwap\":0.17259557291972397,\"ema1\":0.1736544777161189,\"sma1\":0.17371383462962958,\"sma2\":0.17172933333333337,\"rsi_avg_gain\":0.0006480315294655129,\"rsi_avg_loss\":0.000691335357260947,\"rsi\":48},{\"period_id\":\"120m209709\",\"size\":\"120m\",\"time\":1509904800000,\"open\":0.17196,\"high\":0.172,\"low\":0.171,\"close\":0.17148,\"volume\":278209.07779125,\"close_time\":1509911957273,\"vwap\":0.17270664957699533,\"ema1\":0.17369046928274778,\"sma1\":0.17373939018518517,\"sma2\":0.17174900000000007,\"rsi_avg_gain\":0.0005707570317320904,\"rsi_avg_loss\":0.0007445150001271737,\"rsi\":43},{\"period_id\":\"120m209708\",\"size\":\"120m\",\"time\":1509897600000,\"open\":0.17288,\"high\":0.173,\"low\":0.17115,\"close\":0.172,\"volume\":375641.9879333099,\"close_time\":1509904684190,\"vwap\":0.17282610981008475,\"ema1\":0.17384291544017866,\"sma1\":0.1737573531481481,\"sma2\":0.1717490000000001,\"rsi_avg_gain\":0.0006146614187884051,\"rsi_avg_loss\":0.0007617853847523415,\"rsi\":45},{\"period_id\":\"120m209707\",\"size\":\"120m\",\"time\":1509890400000,\"open\":0.17179,\"high\":0.173,\"low\":0.171,\"close\":0.17297,\"volume\":292718.31836345984,\"close_time\":1509897404974,\"vwap\":0.17296061388729927,\"ema1\":0.1739700130567427,\"sma1\":0.17377401981481477,\"sma2\":0.1717578333333334,\"rsi_avg_gain\":0.0006619430663875132,\"rsi_avg_loss\":0.000745768875887135,\"rsi\":47},{\"period_id\":\"120m209706\",\"size\":\"120m\",\"time\":1509883200000,\"open\":0.17341,\"high\":0.17438,\"low\":0.1713,\"close\":0.1719,\"volume\":480094.5933641599,\"close_time\":1509890180175,\"vwap\":0.17309677398055898,\"ema1\":0.1740389794744491,\"sma1\":0.1737765198148148,\"sma2\":0.1718028333333334,\"rsi_avg_gain\":0.0006305540714942438,\"rsi_avg_loss\":0.0008031357124938377,\"rsi\":44},{\"period_id\":\"120m209705\",\"size\":\"120m\",\"time\":1509876000000,\"open\":0.1735,\"high\":0.17436,\"low\":0.172,\"close\":0.1738,\"volume\":282879.70329523,\"close_time\":1509882934323,\"vwap\":0.17367226808265437,\"ema1\":0.17418649530027316,\"sma1\":0.1737778161111111,\"sma2\":0.17181316666666674,\"rsi_avg_gain\":0.0006790582308399549,\"rsi_avg_loss\":0.0007187615365318242,\"rsi\":49},{\"period_id\":\"120m209704\",\"size\":\"120m\",\"time\":1509868800000,\"open\":0.175,\"high\":0.175,\"low\":0.17224,\"close\":0.17308,\"volume\":192083.89489337002,\"close_time\":1509875951637,\"vwap\":0.173756675197205,\"ema1\":0.17421315014856786,\"sma1\":0.17377744574074072,\"sma2\":0.17184000000000005,\"rsi_avg_gain\":0.00067590886398149,\"rsi_avg_loss\":0.0007740508854958108,\"rsi\":47},{\"period_id\":\"120m209703\",\"size\":\"120m\",\"time\":1509861600000,\"open\":0.17477,\"high\":0.175,\"low\":0.17412,\"close\":0.17434,\"volume\":22891.058959859998,\"close_time\":1509868062594,\"vwap\":0.17375150042668425,\"ema1\":0.174291298434676,\"sma1\":0.17377559388888886,\"sma2\":0.17183783333333338,\"rsi_avg_gain\":0.0007279018535185276,\"rsi_avg_loss\":0.0007366701843801053,\"rsi\":50},{\"period_id\":\"120m209702\",\"size\":\"120m\",\"time\":1509854400000,\"open\":0.1743,\"high\":0.1751,\"low\":0.17386,\"close\":0.17506,\"volume\":45456.856648160014,\"close_time\":1509861577221,\"vwap\":0.17374547740562726,\"ema1\":0.17428793970603296,\"sma1\":0.17376874203703696,\"sma2\":0.17181833333333338,\"rsi_avg_gain\":0.0007838943037891836,\"rsi_avg_loss\":0.0007379525062554982,\"rsi\":52},{\"period_id\":\"120m209701\",\"size\":\"120m\",\"time\":1509847200000,\"open\":0.17441,\"high\":0.17508,\"low\":0.17233,\"close\":0.1743,\"volume\":87526.60253024001,\"close_time\":1509854298552,\"vwap\":0.1737330191723921,\"ema1\":0.174234694168518,\"sma1\":0.17375633462962958,\"sma2\":0.17181566666666673,\"rsi_avg_gain\":0.0007857323271575837,\"rsi_avg_loss\":0.0007947180836597673,\"rsi\":50},{\"period_id\":\"120m209700\",\"size\":\"120m\",\"time\":1509840000000,\"open\":0.1732,\"high\":0.1747,\"low\":0.17234,\"close\":0.17441,\"volume\":220942.73585190997,\"close_time\":1509847131823,\"vwap\":0.17372926085029755,\"ema1\":0.17423019031807097,\"sma1\":0.1737498531481481,\"sma2\":0.1718096666666667,\"rsi_avg_gain\":0.0008461732754004748,\"rsi_avg_loss\":0.0008473887054797495,\"rsi\":50},{\"period_id\":\"120m209699\",\"size\":\"120m\",\"time\":1509832800000,\"open\":0.17397,\"high\":0.17489,\"low\":0.17309,\"close\":0.17318,\"volume\":70737.93909811002,\"close_time\":1509839832787,\"vwap\":0.17385561283480824,\"ema1\":0.17421778965035173,\"sma1\":0.17374290870370365,\"sma2\":0.17182766666666668,\"rsi_avg_gain\":0.0008166481427389721,\"rsi_avg_loss\":0.0009125724520551149,\"rsi\":47},{\"period_id\":\"120m209698\",\"size\":\"120m\",\"time\":1509825600000,\"open\":0.1747,\"high\":0.17491,\"low\":0.173,\"close\":0.17396,\"volume\":312704.62396786007,\"close_time\":1509832781004,\"vwap\":0.17385094732991985,\"ema1\":0.17428936135037598,\"sma1\":0.17373327907407404,\"sma2\":0.17182000000000003,\"rsi_avg_gain\":0.0008794672306419699,\"rsi_avg_loss\":0.0009227703329824312,\"rsi\":49},{\"period_id\":\"120m209697\",\"size\":\"120m\",\"time\":1509818400000,\"open\":0.17519,\"high\":0.17576,\"low\":0.1746,\"close\":0.1755,\"volume\":115412.53669688001,\"close_time\":1509825521375,\"vwap\":0.1752968031553187,\"ema1\":0.174312075926264,\"sma1\":0.17372003833333327,\"sma2\":0.17180766666666666,\"rsi_avg_gain\":0.0009471185560759677,\"rsi_avg_loss\":0.0008752911278272346,\"rsi\":52},{\"period_id\":\"120m209696\",\"size\":\"120m\",\"time\":1509811200000,\"open\":0.17544,\"high\":0.176,\"low\":0.17461,\"close\":0.17519,\"volume\":265530.03636954,\"close_time\":1509818399443,\"vwap\":0.18098781495067165,\"ema1\":0.1742301501280753,\"sma1\":0.17369772351851848,\"sma2\":0.17177116666666667,\"rsi_avg_gain\":0.0009961276757741208,\"rsi_avg_loss\":0.0009426212145831758,\"rsi\":51},{\"period_id\":\"120m209695\",\"size\":\"120m\",\"time\":1509804000000,\"open\":0.17701,\"high\":0.17727,\"low\":0.1754,\"close\":0.17584,\"volume\":400965.41010697023,\"close_time\":1509811145225,\"vwap\":0.1810340737796759,\"ema1\":0.17416395358518394,\"sma1\":0.17367207537037033,\"sma2\":0.17174766666666663,\"rsi_avg_gain\":0.0010727528816028994,\"rsi_avg_loss\":0.0009651305387818828,\"rsi\":53},{\"period_id\":\"120m209694\",\"size\":\"120m\",\"time\":1509796800000,\"open\":0.17545,\"high\":0.17796,\"low\":0.175,\"close\":0.17701,\"volume\":519384.7214879097,\"close_time\":1509803994909,\"vwap\":0.1810757324344234,\"ema1\":0.1740483641772656,\"sma1\":0.17365281611111102,\"sma2\":0.17170333333333332,\"rsi_avg_gain\":0.0011552723340338916,\"rsi_avg_loss\":0.000949371349457412,\"rsi\":55},{\"period_id\":\"120m209693\",\"size\":\"120m\",\"time\":1509789600000,\"open\":0.17463,\"high\":0.17686,\"low\":0.1742,\"close\":0.175,\"volume\":276182.54125248006,\"close_time\":1509796634780,\"vwap\":0.18117373255909586,\"ema1\":0.1738441134308701,\"sma1\":0.17364151981481477,\"sma2\":0.1717033333333333,\"rsi_avg_gain\":0.0010895240520364976,\"rsi_avg_loss\":0.0010223999148002898,\"rsi\":52},{\"period_id\":\"120m209692\",\"size\":\"120m\",\"time\":1509782400000,\"open\":0.17584,\"high\":0.17674414,\"low\":0.17422,\"close\":0.176,\"volume\":457462.7664928798,\"close_time\":1509789508359,\"vwap\":0.1812157020051789,\"ema1\":0.1737643971157577,\"sma1\":0.17362379629629623,\"sma2\":0.1716633333333333,\"rsi_avg_gain\":0.0011733335945008437,\"rsi_avg_loss\":0.0010241229851695427,\"rsi\":53},{\"period_id\":\"120m209691\",\"size\":\"120m\",\"time\":1509775200000,\"open\":0.17575,\"high\":0.17638,\"low\":0.17486,\"close\":0.17592,\"volume\":205233.37796132002,\"close_time\":1509782377457,\"vwap\":0.1813093687767681,\"ema1\":0.1736102176064996,\"sma1\":0.17359712962962956,\"sma2\":0.17161466666666664,\"rsi_avg_gain\":0.0012574361786932165,\"rsi_avg_loss\":0.0011029016763364305,\"rsi\":53},{\"period_id\":\"120m209690\",\"size\":\"120m\",\"time\":1509768000000,\"open\":0.17459,\"high\":0.17672,\"low\":0.17359,\"close\":0.17672,\"volume\":408079.27570876,\"close_time\":1509775092431,\"vwap\":0.1813338106128459,\"ema1\":0.17345092226901682,\"sma1\":0.17356851851851848,\"sma2\":0.17155416666666665,\"rsi_avg_gain\":0.0013541620385926947,\"rsi_avg_loss\":0.001126201805285387,\"rsi\":55},{\"period_id\":\"120m209689\",\"size\":\"120m\",\"time\":1509760800000,\"open\":0.17535,\"high\":0.17698,\"low\":0.17202,\"close\":0.17457,\"volume\":1521247.5292743105,\"close_time\":1509767699486,\"vwap\":0.18136652702413733,\"ema1\":0.1732254686323973,\"sma1\":0.17353731481481477,\"sma2\":0.17152916666666662,\"rsi_avg_gain\":0.001292943733869057,\"rsi_avg_loss\":0.001212832713384263,\"rsi\":52},{\"period_id\":\"120m209688\",\"size\":\"120m\",\"time\":1509753600000,\"open\":0.1785,\"high\":0.179,\"low\":0.175,\"close\":0.175,\"volume\":451997.22231772024,\"close_time\":1509760617905,\"vwap\":0.18172309498965647,\"ema1\":0.1731327423311833,\"sma1\":0.17348388888888883,\"sma2\":0.17149466666666663,\"rsi_avg_gain\":0.0013924009441666767,\"rsi_avg_loss\":0.0012730506144138227,\"rsi\":52},{\"period_id\":\"120m209687\",\"size\":\"120m\",\"time\":1509746400000,\"open\":0.1829,\"high\":0.184,\"low\":0.1785,\"close\":0.1785,\"volume\":575165.06890172,\"close_time\":1509753593833,\"vwap\":0.181810084708484,\"ema1\":0.17300396594023043,\"sma1\":0.1733971296296296,\"sma2\":0.17139216666666662,\"rsi_avg_gain\":0.001499508709102575,\"rsi_avg_loss\":0.001101746815522578,\"rsi\":58},{\"period_id\":\"120m209686\",\"size\":\"120m\",\"time\":1509739200000,\"open\":0.1832,\"high\":0.18659,\"low\":0.182,\"close\":0.1829,\"volume\":2008075.9797360403,\"close_time\":1509746386140,\"vwap\":0.18187137452789487,\"ema1\":0.17262492910852217,\"sma1\":0.17327666666666663,\"sma2\":0.17122716666666665,\"rsi_avg_gain\":0.001614855532879696,\"rsi_avg_loss\":0.0008480350321012367,\"rsi\":66},{\"period_id\":\"120m209685\",\"size\":\"120m\",\"time\":1509732000000,\"open\":0.18246,\"high\":0.184,\"low\":0.17948,\"close\":0.18375,\"volume\":1677742.2580434396,\"close_time\":1509739152792,\"vwap\":0.18089949816446918,\"ema1\":0.17191630352979956,\"sma1\":0.17316833333333334,\"sma2\":0.17103883333333328,\"rsi_avg_gain\":0.0017390751892550572,\"rsi_avg_loss\":0.0008478838807244095,\"rsi\":67},{\"period_id\":\"120m209684\",\"size\":\"120m\",\"time\":1509724800000,\"open\":0.17841,\"high\":0.18247,\"low\":0.17841,\"close\":0.18247,\"volume\":1072665.8394164399,\"close_time\":1509731987799,\"vwap\":0.18036223245361743,\"ema1\":0.17110018653185471,\"sma1\":0.17307925925925924,\"sma2\":0.17086349999999997,\"rsi_avg_gain\":0.0017743886653515998,\"rsi_avg_loss\":0.0009131057177032102,\"rsi\":66},{\"period_id\":\"120m209683\",\"size\":\"120m\",\"time\":1509717600000,\"open\":0.1768,\"high\":0.18334,\"low\":0.17621,\"close\":0.17842,\"volume\":2248575.3095276006,\"close_time\":1509724727590,\"vwap\":0.1803339106431586,\"ema1\":0.17031606146508607,\"sma1\":0.17300240740740738,\"sma2\":0.17076766666666668,\"rsi_avg_gain\":0.0015993416396094151,\"rsi_avg_loss\":0.0009833446190649956,\"rsi\":62},{\"period_id\":\"120m209682\",\"size\":\"120m\",\"time\":1509710400000,\"open\":0.17437,\"high\":0.17699,\"low\":0.173,\"close\":0.17689,\"volume\":661699.4675666498,\"close_time\":1509717577659,\"vwap\":0.17612022654091608,\"ema1\":0.16975716915233338,\"sma1\":0.17297009259259258,\"sma2\":0.17068616666666667,\"rsi_avg_gain\":0.0016046756118870621,\"rsi_avg_loss\":0.001058986512839226,\"rsi\":60},{\"period_id\":\"120m209681\",\"size\":\"120m\",\"time\":1509703200000,\"open\":0.1745,\"high\":0.17557,\"low\":0.17226,\"close\":0.17442,\"volume\":781881.1833836805,\"close_time\":1509710384632,\"vwap\":0.1761335846377519,\"ema1\":0.16926524978352878,\"sma1\":0.17297185185185182,\"sma2\":0.17061966666666664,\"rsi_avg_gain\":0.0015381121974168362,\"rsi_avg_loss\":0.0011404470138268587,\"rsi\":57},{\"period_id\":\"120m209680\",\"size\":\"120m\",\"time\":1509696000000,\"open\":0.1749,\"high\":0.1765,\"low\":0.1721,\"close\":0.1722,\"volume\":1284360.5497725192,\"close_time\":1509703193194,\"vwap\":0.17626570918066742,\"ema1\":0.16890974976859974,\"sma1\":0.17297555555555555,\"sma2\":0.17060466666666665,\"rsi_avg_gain\":0.0014856592895258237,\"rsi_avg_loss\":0.0012281737071981554,\"rsi\":55},{\"period_id\":\"120m209679\",\"size\":\"120m\",\"time\":1509688800000,\"open\":0.1717,\"high\":0.176,\"low\":0.17,\"close\":0.17531,\"volume\":935123.9349501398,\"close_time\":1509695910104,\"vwap\":0.17634957416305355,\"ema1\":0.16868283595953765,\"sma1\":0.17298472222222222,\"sma2\":0.1705553333333333,\"rsi_avg_gain\":0.0015999407733355024,\"rsi_avg_loss\":0.0010834178385210904,\"rsi\":60},{\"period_id\":\"120m209678\",\"size\":\"120m\",\"time\":1509681600000,\"open\":0.16914,\"high\":0.1742,\"low\":0.1675,\"close\":0.17269,\"volume\":434158.1058708002,\"close_time\":1509688744339,\"vwap\":0.17652749751470972,\"ema1\":0.1682257901636437,\"sma1\":0.17300138888888889,\"sma2\":0.17056599999999997,\"rsi_avg_gain\":0.0015214746789766961,\"rsi_avg_loss\":0.0011667576722534819,\"rsi\":57},{\"period_id\":\"120m209677\",\"size\":\"120m\",\"time\":1509674400000,\"open\":0.17603,\"high\":0.1768,\"low\":0.16835,\"close\":0.16902,\"volume\":791394.3819360004,\"close_time\":1509681430051,\"vwap\":0.17663855855249083,\"ema1\":0.16791791362320532,\"sma1\":0.17298111111111109,\"sma2\":0.170591,\"rsi_avg_gain\":0.0013562035004364415,\"rsi_avg_loss\":0.0012565082624268267,\"rsi\":52},{\"period_id\":\"120m209676\",\"size\":\"120m\",\"time\":1509667200000,\"open\":0.17103,\"high\":0.185,\"low\":0.17103,\"close\":0.17675,\"volume\":2884382.1256436,\"close_time\":1509674369734,\"vwap\":0.17688097611446624,\"ema1\":0.167841907666185,\"sma1\":0.17289240740740736,\"sma2\":0.17049533333333333,\"rsi_avg_gain\":0.0014605268466238602,\"rsi_avg_loss\":0.0007585473595365838,\"rsi\":66},{\"period_id\":\"120m209675\",\"size\":\"120m\",\"time\":1509660000000,\"open\":0.1639,\"high\":0.17379,\"low\":0.16262,\"close\":0.17209,\"volume\":1265909.4986710113,\"close_time\":1509667170394,\"vwap\":0.16829964371066058,\"ema1\":0.1672275564707495,\"sma1\":0.17293324074074073,\"sma2\":0.17048883333333337,\"rsi_avg_gain\":0.001214413527133388,\"rsi_avg_loss\":0.0008168971564240133,\"rsi\":60},{\"period_id\":\"120m209674\",\"size\":\"120m\",\"time\":1509652800000,\"open\":0.16502,\"high\":0.167,\"low\":0.16261,\"close\":0.16384,\"volume\":418199.62917654985,\"close_time\":1509659976821,\"vwap\":0.16489098569637417,\"ema1\":0.16689221553769773,\"sma1\":0.1730593518518518,\"sma2\":0.17062050000000004,\"rsi_avg_gain\":0.0006732145676821118,\"rsi_avg_loss\":0.0008797353992258605,\"rsi\":43},{\"period_id\":\"120m209673\",\"size\":\"120m\",\"time\":1509645600000,\"open\":0.16471,\"high\":0.16652,\"low\":0.1632,\"close\":0.16501,\"volume\":525454.1958027601,\"close_time\":1509652741055,\"vwap\":0.16540393210229704,\"ema1\":0.16710271316098724,\"sma1\":0.1732121296296296,\"sma2\":0.17072883333333333,\"rsi_avg_gain\":0.000725000303657659,\"rsi_avg_loss\":0.0008574073530124669,\"rsi\":46},{\"period_id\":\"120m209672\",\"size\":\"120m\",\"time\":1509638400000,\"open\":0.165,\"high\":0.166,\"low\":0.1635,\"close\":0.16472,\"volume\":405931.72862551996,\"close_time\":1509645579170,\"vwap\":0.1651508416738921,\"ema1\":0.16724703820657258,\"sma1\":0.1733718518518518,\"sma2\":0.1708496666666667,\"rsi_avg_gain\":0.00075846186547748,\"rsi_avg_loss\":0.0009233617647826567,\"rsi\":45},{\"period_id\":\"120m209671\",\"size\":\"120m\",\"time\":1509631200000,\"open\":0.164,\"high\":0.16849,\"low\":0.161,\"close\":0.16545,\"volume\":756164.8164522602,\"close_time\":1509638384550,\"vwap\":0.1609632282855551,\"ema1\":0.16742131670357757,\"sma1\":0.17352925925925924,\"sma2\":0.17095050000000003,\"rsi_avg_gain\":0.0008168050858988247,\"rsi_avg_loss\":0.0009382357466890143,\"rsi\":47},{\"period_id\":\"120m209670\",\"size\":\"120m\",\"time\":1509624000000,\"open\":0.16,\"high\":0.16959,\"low\":0.16,\"close\":0.16622,\"volume\":1455371.3556724899,\"close_time\":1509631193720,\"vwap\":0.16072987143408432,\"ema1\":0.16755726957968636,\"sma1\":0.17366268518518518,\"sma2\":0.1710575,\"rsi_avg_gain\":0.0008796362463525804,\"rsi_avg_loss\":0.0009511769579727851,\"rsi\":48},{\"period_id\":\"120m209669\",\"size\":\"120m\",\"time\":1509616800000,\"open\":0.15797,\"high\":0.16,\"low\":0.15464,\"close\":0.16,\"volume\":1654988.6244434293,\"close_time\":1509623991381,\"vwap\":0.1602230243667844,\"ema1\":0.1676494950679406,\"sma1\":0.17384509259259254,\"sma2\":0.17127416666666667,\"rsi_avg_gain\":0.0004688390345335479,\"rsi_avg_loss\":0.0010243444162783839,\"rsi\":31},{\"period_id\":\"120m209668\",\"size\":\"120m\",\"time\":1509609600000,\"open\":0.1595,\"high\":0.16,\"low\":0.15671,\"close\":0.15671,\"volume\":1721066.7197427999,\"close_time\":1509616786625,\"vwap\":0.16081104369252525,\"ema1\":0.1681770464519365,\"sma1\":0.17403027777777774,\"sma2\":0.171569,\"rsi_avg_gain\":0.00025182665257458895,\"rsi_avg_loss\":0.0011031401406074903,\"rsi\":19},{\"period_id\":\"120m209667\",\"size\":\"120m\",\"time\":1509602400000,\"open\":0.16123,\"high\":0.1632,\"low\":0.159,\"close\":0.15912,\"volume\":2334769.7164794793,\"close_time\":1509609597998,\"vwap\":0.16156398388663776,\"ema1\":0.16896787724172524,\"sma1\":0.17413944444444443,\"sma2\":0.17181533333333335,\"rsi_avg_gain\":0.000271197933541865,\"rsi_avg_loss\":0.001002612459115757,\"rsi\":21},{\"period_id\":\"120m209666\",\"size\":\"120m\",\"time\":1509595200000,\"open\":0.16241,\"high\":0.16472,\"low\":0.1613,\"close\":0.1613,\"volume\":345673.34816585,\"close_time\":1509602353291,\"vwap\":0.16484547298789404,\"ema1\":0.16964704118943041,\"sma1\":0.17423435185185185,\"sma2\":0.172018,\"rsi_avg_gain\":0.0002920593130450854,\"rsi_avg_loss\":0.0009120441867400469,\"rsi\":24},{\"period_id\":\"120m209665\",\"size\":\"120m\",\"time\":1509588000000,\"open\":0.16263,\"high\":0.16764,\"low\":0.1625,\"close\":0.1625,\"volume\":320289.0119792702,\"close_time\":1509595172195,\"vwap\":0.16503647963676527,\"ema1\":0.17022269920249458,\"sma1\":0.1743186111111111,\"sma2\":0.17220133333333335,\"rsi_avg_gain\":0.00031452541404855354,\"rsi_avg_loss\":0.0008898937395662038,\"rsi\":26},{\"period_id\":\"120m209664\",\"size\":\"120m\",\"time\":1509580800000,\"open\":0.16522,\"high\":0.16682,\"low\":0.1616,\"close\":0.16532,\"volume\":505396.63836847997,\"close_time\":1509587956753,\"vwap\":0.1651451517422395,\"ema1\":0.1707552991474942,\"sma1\":0.17435518518518517,\"sma2\":0.172343,\"rsi_avg_gain\":0.00033871967666767303,\"rsi_avg_loss\":0.0007414240272251434,\"rsi\":31},{\"period_id\":\"120m209663\",\"size\":\"120m\",\"time\":1509573600000,\"open\":0.1661,\"high\":0.16674,\"low\":0.16434,\"close\":0.16434,\"volume\":906775.1022949998,\"close_time\":1509580719608,\"vwap\":0.16559001407813786,\"ema1\":0.17113014736456278,\"sma1\":0.1743622222222222,\"sma2\":0.172498,\"rsi_avg_gain\":0.0002893904210267262,\"rsi_avg_loss\":0.0007984566447040006,\"rsi\":27},{\"period_id\":\"120m209662\",\"size\":\"120m\",\"time\":1509566400000,\"open\":0.16845,\"high\":0.1696,\"low\":0.16561,\"close\":0.16652,\"volume\":670029.5995432002,\"close_time\":1509573596127,\"vwap\":0.16659785177236008,\"ema1\":0.17159843338970504,\"sma1\":0.17431277777777776,\"sma2\":0.17262266666666667,\"rsi_avg_gain\":0.0003116512226441667,\"rsi_avg_loss\":0.0006921840789120016,\"rsi\":31},{\"period_id\":\"120m209661\",\"size\":\"120m\",\"time\":1509559200000,\"open\":0.16934,\"high\":0.1696,\"low\":0.16704,\"close\":0.16848,\"volume\":1189879.2806359415,\"close_time\":1509566397604,\"vwap\":0.17055459783482954,\"ema1\":0.17194867017520193,\"sma1\":0.17425148148148148,\"sma2\":0.17270366666666664,\"rsi_avg_gain\":0.0003356243936167949,\"rsi_avg_loss\":0.0005946597772898487,\"rsi\":36},{\"period_id\":\"120m209660\",\"size\":\"120m\",\"time\":1509552000000,\"open\":0.1725,\"high\":0.1725,\"low\":0.1694,\"close\":0.16999,\"volume\":917226.6054635601,\"close_time\":1509559199863,\"vwap\":0.17099170915830114,\"ema1\":0.17218788880797448,\"sma1\":0.17415425925925923,\"sma2\":0.17278266666666664,\"rsi_avg_gain\":0.0003614416546642406,\"rsi_avg_loss\":0.0005242489909275285,\"rsi\":41},{\"period_id\":\"120m209659\",\"size\":\"120m\",\"time\":1509544800000,\"open\":0.17109,\"high\":0.17284,\"low\":0.17,\"close\":0.17233,\"volume\":898158.8843483297,\"close_time\":1509551988199,\"vwap\":0.17108106395483702,\"ema1\":0.17233946734645547,\"sma1\":0.1740608333333333,\"sma2\":0.17281766666666665,\"rsi_avg_gain\":0.0003892448588691822,\"rsi_avg_loss\":0.00038457583638349155,\"rsi\":50},{\"period_id\":\"120m209658\",\"size\":\"120m\",\"time\":1509537600000,\"open\":0.1695,\"high\":0.1715,\"low\":0.169,\"close\":0.1711,\"volume\":1039009.0422977093,\"close_time\":1509544792007,\"vwap\":0.17096375858413856,\"ema1\":0.17234012026690068,\"sma1\":0.17401046296296294,\"sma2\":0.17285966666666663,\"rsi_avg_gain\":0.00032457138647450323,\"rsi_avg_loss\":0.0004141585930283755,\"rsi\":44},{\"period_id\":\"120m209657\",\"size\":\"120m\",\"time\":1509530400000,\"open\":0.1701,\"high\":0.17198,\"low\":0.1693,\"close\":0.16999,\"volume\":1167024.7693240494,\"close_time\":1509537595423,\"vwap\":0.1712377551430823,\"ema1\":0.17242564580254902,\"sma1\":0.1739659259259259,\"sma2\":0.1729228333333333,\"rsi_avg_gain\":0.0002641538008186958,\"rsi_avg_loss\":0.0004460169463382506,\"rsi\":37},{\"period_id\":\"120m209656\",\"size\":\"120m\",\"time\":1509523200000,\"open\":0.1712,\"high\":0.17266,\"low\":0.17,\"close\":0.17111,\"volume\":802673.6112538003,\"close_time\":1509530399245,\"vwap\":0.17181818101937535,\"ema1\":0.1725936213751386,\"sma1\":0.17391759259259257,\"sma2\":0.17297166666666663,\"rsi_avg_gain\":0.0002844733239585955,\"rsi_avg_loss\":0.0003941720960565768,\"rsi\":42},{\"period_id\":\"120m209655\",\"size\":\"120m\",\"time\":1509516000000,\"open\":0.1705,\"high\":0.17137,\"low\":0.17,\"close\":0.1712,\"volume\":486476.40899357,\"close_time\":1509523129373,\"vwap\":0.1720667414953094,\"ema1\":0.17269594009066538,\"sma1\":0.1738958333333333,\"sma2\":0.17301683333333331,\"rsi_avg_gain\":0.0003063558873400259,\"rsi_avg_loss\":0.000417569949599392,\"rsi\":42},{\"period_id\":\"120m209654\",\"size\":\"120m\",\"time\":1509508800000,\"open\":0.17086,\"high\":0.17162,\"low\":0.17,\"close\":0.1708,\"volume\":148063.88553533,\"close_time\":1509515159721,\"vwap\":0.17223688781392207,\"ema1\":0.17279910837278023,\"sma1\":0.17388787037037032,\"sma2\":0.17305449999999997,\"rsi_avg_gain\":0.0002991524940584907,\"rsi_avg_loss\":0.00044969071495319136,\"rsi\":40},{\"period_id\":\"120m209653\",\"size\":\"120m\",\"time\":1509501600000,\"open\":0.17165,\"high\":0.1718,\"low\":0.17,\"close\":0.17003,\"volume\":275252.1988088,\"close_time\":1509507850388,\"vwap\":0.1722547886740098,\"ema1\":0.1729369779157306,\"sma1\":0.1738791666666666,\"sma2\":0.17310949999999994,\"rsi_avg_gain\":0.00026293345513991146,\"rsi_avg_loss\":0.00048428230841112915,\"rsi\":35},{\"period_id\":\"120m209652\",\"size\":\"120m\",\"time\":1509494400000,\"open\":0.17124,\"high\":0.17199,\"low\":0.17101,\"close\":0.17176,\"volume\":125338.60549834,\"close_time\":1509501336761,\"vwap\":0.17235641228053583,\"ema1\":0.17313745915129822,\"sma1\":0.17387574074074072,\"sma2\":0.1731351666666666,\"rsi_avg_gain\":0.0002831591055352893,\"rsi_avg_loss\":0.00038845787059659995,\"rsi\":42},{\"period_id\":\"120m209651\",\"size\":\"120m\",\"time\":1509487200000,\"open\":0.17205,\"high\":0.17284,\"low\":0.17123,\"close\":0.17124,\"volume\":778377.35267301,\"close_time\":1509494388372,\"vwap\":0.172370592399016,\"ema1\":0.17323245633414638,\"sma1\":0.17386796296296295,\"sma2\":0.17318166666666662,\"rsi_avg_gain\":0.00026494057519185055,\"rsi_avg_loss\":0.0004183392452578769,\"rsi\":39},{\"period_id\":\"120m209650\",\"size\":\"120m\",\"time\":1509480000000,\"open\":0.17263,\"high\":0.17285,\"low\":0.17204,\"close\":0.17204,\"volume\":368952.1699852,\"close_time\":1509487161380,\"vwap\":0.17275718997345257,\"ema1\":0.17336986711581165,\"sma1\":0.17385775509259258,\"sma2\":0.17320599999999994,\"rsi_avg_gain\":0.0002853206194373775,\"rsi_avg_loss\":0.00038898072566232936,\"rsi\":42},{\"period_id\":\"120m209649\",\"size\":\"120m\",\"time\":1509472800000,\"open\":0.172,\"high\":0.17272,\"low\":0.172,\"close\":0.17266,\"volume\":380343.36523268017,\"close_time\":1509479891306,\"vwap\":0.17279287446298533,\"ema1\":0.1734615820893159,\"sma1\":0.17385108842592592,\"sma2\":0.1732198333333333,\"rsi_avg_gain\":0.00030726835939409887,\"rsi_avg_loss\":0.0003712100122517386,\"rsi\":45},{\"period_id\":\"120m209648\",\"size\":\"120m\",\"time\":1509465600000,\"open\":0.17243,\"high\":0.1735,\"low\":0.172,\"close\":0.172,\"volume\":559983.7519757701,\"close_time\":1509472774896,\"vwap\":0.17289486145746827,\"ema1\":0.17351686361271698,\"sma1\":0.17384090324074072,\"sma2\":0.17323649999999996,\"rsi_avg_gain\":0.00028013515627056635,\"rsi_avg_loss\":0.0003997646285787954,\"rsi\":41},{\"period_id\":\"120m209647\",\"size\":\"120m\",\"time\":1509458400000,\"open\":0.17458,\"high\":0.1746,\"low\":0.172,\"close\":0.1735,\"volume\":938086.8382250599,\"close_time\":1509465517913,\"vwap\":0.17304110235508263,\"ema1\":0.17362147489635263,\"sma1\":0.17384284768518515,\"sma2\":0.1732311666666666,\"rsi_avg_gain\":0.0003016840144452253,\"rsi_avg_loss\":0.0003151311384694719,\"rsi\":49},{\"period_id\":\"120m209646\",\"size\":\"120m\",\"time\":1509451200000,\"open\":0.174,\"high\":0.1748,\"low\":0.1734,\"close\":0.1746,\"volume\":533246.7497322498,\"close_time\":1509458354825,\"vwap\":0.1738511917292189,\"ema1\":0.17362985247541143,\"sma1\":0.17382377361111112,\"sma2\":0.17322466666666664,\"rsi_avg_gain\":0.000324890477094858,\"rsi_avg_loss\":0.00025475661065942995,\"rsi\":56},{\"period_id\":\"120m209645\",\"size\":\"120m\",\"time\":1509444000000,\"open\":0.17467,\"high\":0.1748,\"low\":0.1735,\"close\":0.17442,\"volume\":691011.48796204,\"close_time\":1509451147678,\"vwap\":0.17384196597018703,\"ema1\":0.17356294574957773,\"sma1\":0.17379312546296297,\"sma2\":0.17324049999999996,\"rsi_avg_gain\":0.0003360358984098461,\"rsi_avg_loss\":0.00027435327301784766,\"rsi\":55},{\"period_id\":\"120m209644\",\"size\":\"120m\",\"time\":1509436800000,\"open\":0.1737,\"high\":0.1747,\"low\":0.1735,\"close\":0.17469,\"volume\":471611.4616469602,\"close_time\":1509443995806,\"vwap\":0.17383630402054334,\"ema1\":0.17350383855989343,\"sma1\":0.17379136620370372,\"sma2\":0.1732378333333333,\"rsi_avg_gain\":0.0003618848136721419,\"rsi_avg_loss\":0.00027468814017306514,\"rsi\":57},{\"period_id\":\"120m209643\",\"size\":\"120m\",\"time\":1509429600000,\"open\":0.17395,\"high\":0.17438,\"low\":0.1734,\"close\":0.17421,\"volume\":201060.23830178005,\"close_time\":1509436795149,\"vwap\":0.1738115999678811,\"ema1\":0.1734220343226447,\"sma1\":0.17380164398148154,\"sma2\":0.1732258333333333,\"rsi_avg_gain\":0.0003527990301084599,\"rsi_avg_loss\":0.00029581799710945477,\"rsi\":54},{\"period_id\":\"120m209642\",\"size\":\"120m\",\"time\":1509422400000,\"open\":0.17384,\"high\":0.17394,\"low\":0.17325,\"close\":0.17389,\"volume\":70472.03757481,\"close_time\":1509429450403,\"vwap\":0.1738102906612552,\"ema1\":0.17336769186213744,\"sma1\":0.17380118101851855,\"sma2\":0.17321099999999995,\"rsi_avg_gain\":0.0003553220324244941,\"rsi_avg_loss\":0.0003185732276563359,\"rsi\":53},{\"period_id\":\"120m209641\",\"size\":\"120m\",\"time\":1509415200000,\"open\":0.17395,\"high\":0.1745,\"low\":0.173,\"close\":0.17414,\"volume\":542700.20779527,\"close_time\":1509422089182,\"vwap\":0.1738103980908392,\"ema1\":0.17333167061125035,\"sma1\":0.17383423657407415,\"sma2\":0.1732,\"rsi_avg_gain\":0.00038265449645714754,\"rsi_avg_loss\":0.00032384809132220783,\"rsi\":54},{\"period_id\":\"120m209640\",\"size\":\"120m\",\"time\":1509408000000,\"open\":0.17418,\"high\":0.17418,\"low\":0.1735,\"close\":0.17405,\"volume\":45452.97159424001,\"close_time\":1509414427483,\"vwap\":0.1737923384176729,\"ema1\":0.17327592375685383,\"sma1\":0.1738871995370371,\"sma2\":0.1731608333333333,\"rsi_avg_gain\":0.00040516638080000664,\"rsi_avg_loss\":0.0003487594829623777,\"rsi\":54},{\"period_id\":\"120m209639\",\"size\":\"120m\",\"time\":1509400800000,\"open\":0.1735,\"high\":0.1745,\"low\":0.173,\"close\":0.17426,\"volume\":272719.8336484401,\"close_time\":1509407506948,\"vwap\":0.17379241653977234,\"ema1\":0.173222539188361,\"sma1\":0.17391960694444453,\"sma2\":0.17312666666666662,\"rsi_avg_gain\":0.0004363330254769302,\"rsi_avg_loss\":0.0003594332893441,\"rsi\":55},{\"period_id\":\"120m209638\",\"size\":\"120m\",\"time\":1509393600000,\"open\":0.17476,\"high\":0.17479,\"low\":0.1735,\"close\":0.1735,\"volume\":359921.3454896399,\"close_time\":1509400749257,\"vwap\":0.17378437536615254,\"ema1\":0.17315099016686866,\"sma1\":0.17390303287037043,\"sma2\":0.1730918333333333,\"rsi_avg_gain\":0.0004114355658982317,\"rsi_avg_loss\":0.0003870820039090308,\"rsi\":52},{\"period_id\":\"120m209637\",\"size\":\"120m\",\"time\":1509386400000,\"open\":0.1732,\"high\":0.1748,\"low\":0.173,\"close\":0.17476,\"volume\":427867.7588550901,\"close_time\":1509393559979,\"vwap\":0.1737704167462782,\"ema1\":0.17312692052320444,\"sma1\":0.17388349583333337,\"sma2\":0.17302416666666662,\"rsi_avg_gain\":0.000443084455582711,\"rsi_avg_loss\":0.0003199344657481862,\"rsi\":58},{\"period_id\":\"120m209636\",\"size\":\"120m\",\"time\":1509379200000,\"open\":0.17459,\"high\":0.17499,\"low\":0.173,\"close\":0.173,\"volume\":390086.82031326013,\"close_time\":1509386390303,\"vwap\":0.17374830746993294,\"ema1\":0.17301429435239096,\"sma1\":0.17385618101851855,\"sma2\":0.172985,\"rsi_avg_gain\":0.00034178325985830324,\"rsi_avg_loss\":0.00034454480926727744,\"rsi\":50},{\"period_id\":\"120m209635\",\"size\":\"120m\",\"time\":1509372000000,\"open\":0.17434,\"high\":0.17459,\"low\":0.17318,\"close\":0.17443,\"volume\":639290.63311668,\"close_time\":1509379077038,\"vwap\":0.17373869843928236,\"ema1\":0.17301528016979723,\"sma1\":0.17385618101851855,\"sma2\":0.17294400000000001,\"rsi_avg_gain\":0.00036807427984740347,\"rsi_avg_loss\":0.00026104825613399,\"rsi\":59},{\"period_id\":\"120m209634\",\"size\":\"120m\",\"time\":1509364800000,\"open\":0.17501,\"high\":0.1754,\"low\":0.17389,\"close\":0.17435,\"volume\":761219.5413139507,\"close_time\":1509371994662,\"vwap\":0.17370323546324815,\"ema1\":0.17291771328495564,\"sma1\":0.17383655138888887,\"sma2\":0.17291183333333332,\"rsi_avg_gain\":0.00039023383983566556,\"rsi_avg_loss\":0.00028112889122122,\"rsi\":58},{\"period_id\":\"120m209633\",\"size\":\"120m\",\"time\":1509357600000,\"open\":0.1736,\"high\":0.17524,\"low\":0.17295,\"close\":0.175,\"volume\":685731.3475932502,\"close_time\":1509364785467,\"vwap\":0.1735607715012926,\"ema1\":0.17281893489081465,\"sma1\":0.17381581064814813,\"sma2\":0.1728491666666666,\"rsi_avg_gain\":0.00042025182751533215,\"rsi_avg_loss\":0.00025275419054593043,\"rsi\":62},{\"period_id\":\"120m209632\",\"size\":\"120m\",\"time\":1509350400000,\"open\":0.17301,\"high\":0.17475,\"low\":0.17201,\"close\":0.1736,\"volume\":982754.7806384695,\"close_time\":1509357384770,\"vwap\":0.17332830372862185,\"ema1\":0.17266851660742255,\"sma1\":0.17380886620370367,\"sma2\":0.17284249999999998,\"rsi_avg_gain\":0.00034488658347805117,\"rsi_avg_loss\":0.0002721968205879251,\"rsi\":56},{\"period_id\":\"120m209631\",\"size\":\"120m\",\"time\":1509343200000,\"open\":0.17307,\"high\":0.1738,\"low\":0.17202,\"close\":0.173,\"volume\":284271.7854024,\"close_time\":1509350362054,\"vwap\":0.17286380722969488,\"ema1\":0.1726042763734517,\"sma1\":0.17381895879629627,\"sma2\":0.1728925,\"rsi_avg_gain\":0.00032526247451482304,\"rsi_avg_loss\":0.000293135037556227,\"rsi\":53},{\"period_id\":\"120m209630\",\"size\":\"120m\",\"time\":1509336000000,\"open\":0.17272,\"high\":0.1731,\"low\":0.17253,\"close\":0.17309,\"volume\":89463.18058985996,\"close_time\":1509343190680,\"vwap\":0.1728389536717734,\"ema1\":0.17257698508886216,\"sma1\":0.1738348847222222,\"sma2\":0.17291766666666666,\"rsi_avg_gain\":0.0003502826648621171,\"rsi_avg_loss\":0.0003087608096759362,\"rsi\":53},{\"period_id\":\"120m209629\",\"size\":\"120m\",\"time\":1509328800000,\"open\":0.17251,\"high\":0.17326,\"low\":0.1722,\"close\":0.17307,\"volume\":43252.373609710005,\"close_time\":1509335998032,\"vwap\":0.1728372640536885,\"ema1\":0.172541604750163,\"sma1\":0.17385914398148147,\"sma2\":0.1729425,\"rsi_avg_gain\":0.00037568902369766516,\"rsi_avg_loss\":0.0003325116411894698,\"rsi\":53},{\"period_id\":\"120m209628\",\"size\":\"120m\",\"time\":1509321600000,\"open\":0.17312,\"high\":0.17396,\"low\":0.172,\"close\":0.17293,\"volume\":83955.8920413,\"close_time\":1509328440473,\"vwap\":0.172837099056316,\"ema1\":0.17250516369845012,\"sma1\":0.17389673657407403,\"sma2\":0.17291566666666663,\"rsi_avg_gain\":0.00039381894859748544,\"rsi_avg_loss\":0.00035808945974250597,\"rsi\":52},{\"period_id\":\"120m209627\",\"size\":\"120m\",\"time\":1509314400000,\"open\":0.173,\"high\":0.17337,\"low\":0.17201,\"close\":0.17235,\"volume\":684796.3868457904,\"close_time\":1509321591148,\"vwap\":0.17284076691687134,\"ema1\":0.17247586464317083,\"sma1\":0.17393673657407402,\"sma2\":0.1729558333333333,\"rsi_avg_gain\":0.00037949732925883067,\"rsi_avg_loss\":0.0003856348027996218,\"rsi\":50},{\"period_id\":\"120m209626\",\"size\":\"120m\",\"time\":1509307200000,\"open\":0.173,\"high\":0.17449,\"low\":0.1725,\"close\":0.173,\"volume\":476348.78848239995,\"close_time\":1509314385786,\"vwap\":0.1729575390036373,\"ema1\":0.1724845449633895,\"sma1\":0.17397201435185178,\"sma2\":0.1729875,\"rsi_avg_gain\":0.00040868943150950993,\"rsi_avg_loss\":0.00036529901839959394,\"rsi\":53},{\"period_id\":\"120m209625\",\"size\":\"120m\",\"time\":1509300000000,\"open\":0.1723,\"high\":0.17355,\"low\":0.17175,\"close\":0.17245,\"volume\":496058.7864573899,\"close_time\":1509307039172,\"vwap\":0.17267336864628904,\"ema1\":0.172448996340175,\"sma1\":0.1740316439814814,\"sma2\":0.17309499999999997,\"rsi_avg_gain\":0.00039781938777947264,\"rsi_avg_loss\":0.0003933989428918704,\"rsi\":50},{\"period_id\":\"120m209624\",\"size\":\"120m\",\"time\":1509292800000,\"open\":0.172688,\"high\":0.1737,\"low\":0.1715,\"close\":0.17195,\"volume\":516118.92092936015,\"close_time\":1509299984287,\"vwap\":0.17247061839260258,\"ema1\":0.172448927122256,\"sma1\":0.17409460694444437,\"sma2\":0.17324583333333327,\"rsi_avg_gain\":0.00038995934068558586,\"rsi_avg_loss\":0.0004236604000373989,\"rsi\":48},{\"period_id\":\"120m209623\",\"size\":\"120m\",\"time\":1509285600000,\"open\":0.172,\"high\":0.17267,\"low\":0.1715,\"close\":0.17267,\"volume\":282293.62723150995,\"close_time\":1509292684374,\"vwap\":0.17240584807696074,\"ema1\":0.17248333588930814,\"sma1\":0.17419849583333327,\"sma2\":0.17338099999999995,\"rsi_avg_gain\":0.0004199562130460156,\"rsi_avg_loss\":0.000400865046194122,\"rsi\":51},{\"period_id\":\"120m209622\",\"size\":\"120m\",\"time\":1509278400000,\"open\":0.1704,\"high\":0.172,\"low\":0.17,\"close\":0.172,\"volume\":507396.67994656984,\"close_time\":1509285544604,\"vwap\":0.17257223362186297,\"ema1\":0.17247046250236386,\"sma1\":0.17431423657407402,\"sma2\":0.17353799999999994,\"rsi_avg_gain\":0.0004007220755880165,\"rsi_avg_loss\":0.00043170081897828523,\"rsi\":48},{\"period_id\":\"120m209621\",\"size\":\"120m\",\"time\":1509271200000,\"open\":0.1713,\"high\":0.17138,\"low\":0.1692,\"close\":0.17043,\"volume\":708191.5313493701,\"close_time\":1509278199257,\"vwap\":0.17261883996331168,\"ema1\":0.17250290819218206,\"sma1\":0.1744398847222222,\"sma2\":0.1736661666666666,\"rsi_avg_gain\":0.0003107776198640187,\"rsi_avg_loss\":0.00046490857428430716,\"rsi\":40},{\"period_id\":\"120m209620\",\"size\":\"120m\",\"time\":1509264000000,\"open\":0.172,\"high\":0.17279,\"low\":0.17051,\"close\":0.1713,\"volume\":463339.66160280985,\"close_time\":1509271123701,\"vwap\":0.17306576432828283,\"ema1\":0.1726458673778498,\"sma1\":0.1745539587962963,\"sma2\":0.1737781666666666,\"rsi_avg_gain\":0.0003346835906227894,\"rsi_avg_loss\":0.0004337476953830993,\"rsi\":44},{\"period_id\":\"120m209619\",\"size\":\"120m\",\"time\":1509256800000,\"open\":0.17201,\"high\":0.17377,\"low\":0.17132,\"close\":0.17235,\"volume\":285626.02688529,\"close_time\":1509263966493,\"vwap\":0.17319753534788151,\"ema1\":0.1727386858177015,\"sma1\":0.174675625462963,\"sma2\":0.1738056666666666,\"rsi_avg_gain\":0.0003604284822091578,\"rsi_avg_loss\":0.0003863436719510304,\"rsi\":48},{\"period_id\":\"120m209618\",\"size\":\"120m\",\"time\":1509249600000,\"open\":0.17113,\"high\":0.1739,\"low\":0.17112,\"close\":0.17333,\"volume\":186683.95922460998,\"close_time\":1509256796594,\"vwap\":0.17321614412157527,\"ema1\":0.17276549173616368,\"sma1\":0.17482081064814817,\"sma2\":0.17382133333333324,\"rsi_avg_gain\":0.0003881537500714007,\"rsi_avg_loss\":0.0003406778005626475,\"rsi\":53},{\"period_id\":\"120m209617\",\"size\":\"120m\",\"time\":1509242400000,\"open\":0.17101,\"high\":0.17125,\"low\":0.1701,\"close\":0.17052,\"volume\":109812.33446858004,\"close_time\":1509249464890,\"vwap\":0.17322165349798518,\"ema1\":0.1727265601317612,\"sma1\":0.17494460694444444,\"sma2\":0.17380366666666663,\"rsi_avg_gain\":0.0002018578846922771,\"rsi_avg_loss\":0.00036688378522131264,\"rsi\":35},{\"period_id\":\"120m209616\",\"size\":\"120m\",\"time\":1509235200000,\"open\":0.17161,\"high\":0.17213,\"low\":0.171,\"close\":0.17101,\"volume\":250380.80532811998,\"close_time\":1509242351608,\"vwap\":0.1732399509499986,\"ema1\":0.1728787366925723,\"sma1\":0.17504710694444447,\"sma2\":0.17378683333333328,\"rsi_avg_gain\":0.00021738541428399072,\"rsi_avg_loss\":0.00035741330716141436,\"rsi\":38},{\"period_id\":\"120m209615\",\"size\":\"120m\",\"time\":1509228000000,\"open\":0.17176,\"high\":0.17253,\"low\":0.171,\"close\":0.1717,\"volume\":726369.6006439498,\"close_time\":1509235161837,\"vwap\":0.17329596712072226,\"ema1\":0.1730076150851635,\"sma1\":0.17514858842592596,\"sma2\":0.17365849999999997,\"rsi_avg_gain\":0.0002341073692289131,\"rsi_avg_loss\":0.00033182971540460037,\"rsi\":41},{\"period_id\":\"120m209614\",\"size\":\"120m\",\"time\":1509220800000,\"open\":0.17152,\"high\":0.17429,\"low\":0.1715,\"close\":0.17174,\"volume\":507071.4701850402,\"close_time\":1509227774235,\"vwap\":0.173407658942421,\"ema1\":0.17309779543586443,\"sma1\":0.1752459032407407,\"sma2\":0.1735018333333333,\"rsi_avg_gain\":0.00025211562840036795,\"rsi_avg_loss\":0.0003542781550511072,\"rsi\":42},{\"period_id\":\"120m209613\",\"size\":\"120m\",\"time\":1509213600000,\"open\":0.17186,\"high\":0.17242,\"low\":0.1715,\"close\":0.17151,\"volume\":296945.9798627102,\"close_time\":1509220576896,\"vwap\":0.17348183608863138,\"ema1\":0.1731914365004068,\"sma1\":0.17536701435185187,\"sma2\":0.17335166666666663,\"rsi_avg_gain\":0.000253816830585011,\"rsi_avg_loss\":0.00038153032082426927,\"rsi\":40},{\"period_id\":\"120m209612\",\"size\":\"120m\",\"time\":1509206400000,\"open\":0.17174,\"high\":0.17222,\"low\":0.17121,\"close\":0.17197,\"volume\":204456.1067420499,\"close_time\":1509213416725,\"vwap\":0.1735206447849557,\"ema1\":0.1733073976383659,\"sma1\":0.17557238472222222,\"sma2\":0.1731738333333333,\"rsi_avg_gain\":0.0002733412021684734,\"rsi_avg_loss\":0.00037549419165690414,\"rsi\":42},{\"period_id\":\"120m209611\",\"size\":\"120m\",\"time\":1509199200000,\"open\":0.17264,\"high\":0.17399,\"low\":0.1715,\"close\":0.1715,\"volume\":632198.5747353298,\"close_time\":1509206384934,\"vwap\":0.17356765555851372,\"ema1\":0.1733996319582532,\"sma1\":0.1757669217592593,\"sma2\":0.1729988333333333,\"rsi_avg_gain\":0.0002582136023352792,\"rsi_avg_loss\":0.0004043783602458968,\"rsi\":39},{\"period_id\":\"120m209610\",\"size\":\"120m\",\"time\":1509192000000,\"open\":0.17303,\"high\":0.17476,\"low\":0.1726,\"close\":0.17264,\"volume\":355098.94472750014,\"close_time\":1509199187198,\"vwap\":0.17375544894661207,\"ema1\":0.17353064105882238,\"sma1\":0.17581071805555556,\"sma2\":0.17282083333333328,\"rsi_avg_gain\":0.00027807618713030066,\"rsi_avg_loss\":0.0003477920802648139,\"rsi\":44},{\"period_id\":\"120m209609\",\"size\":\"120m\",\"time\":1509184800000,\"open\":0.1743,\"high\":0.17463,\"low\":0.173,\"close\":0.173,\"volume\":394166.51534412993,\"close_time\":1509191863970,\"vwap\":0.17378263222986354,\"ema1\":0.17359206458012047,\"sma1\":0.17585719953703707,\"sma2\":0.17268799999999998,\"rsi_avg_gain\":0.0002994666630634007,\"rsi_avg_loss\":0.00034685300951595356,\"rsi\":46},{\"period_id\":\"120m209608\",\"size\":\"120m\",\"time\":1509177600000,\"open\":0.17404,\"high\":0.17474,\"low\":0.17315,\"close\":0.1744,\"volume\":351321.72328474006,\"close_time\":1509184281479,\"vwap\":0.17381020994461732,\"ema1\":0.1736328966201288,\"sma1\":0.17591710694444448,\"sma2\":0.17254716666666664,\"rsi_avg_gain\":0.00032250256022212386,\"rsi_avg_loss\":0.0002658417025556414,\"rsi\":55},{\"period_id\":\"120m209607\",\"size\":\"120m\",\"time\":1509170400000,\"open\":0.17389,\"high\":0.17415,\"low\":0.17305,\"close\":0.1739,\"volume\":208398.77150217,\"close_time\":1509177443699,\"vwap\":0.17379084330393624,\"ema1\":0.17357999293875837,\"sma1\":0.17601460694444448,\"sma2\":0.17241599999999999,\"rsi_avg_gain\":0.000308848911008441,\"rsi_avg_loss\":0.0002862910642906907,\"rsi\":52},{\"period_id\":\"120m209606\",\"size\":\"120m\",\"time\":1509163200000,\"open\":0.17309,\"high\":0.1737,\"low\":0.1728,\"close\":0.17346,\"volume\":26886.12837723,\"close_time\":1509170236953,\"vwap\":0.17379135191280784,\"ema1\":0.17355792348625895,\"sma1\":0.1761046995370371,\"sma2\":0.17234349999999996,\"rsi_avg_gain\":0.00029876036570139833,\"rsi_avg_loss\":0.00030831345385151307,\"rsi\":49},{\"period_id\":\"120m209605\",\"size\":\"120m\",\"time\":1509156000000,\"open\":0.17327,\"high\":0.17351,\"low\":0.17257,\"close\":0.1735,\"volume\":22004.55199932,\"close_time\":1509162219469,\"vwap\":0.17379168781431673,\"ema1\":0.17356467683013888,\"sma1\":0.17621414398148155,\"sma2\":0.17229233333333333,\"rsi_avg_gain\":0.00032174193229381356,\"rsi_avg_loss\":0.00032895295030163066,\"rsi\":49},{\"period_id\":\"120m209604\",\"size\":\"120m\",\"time\":1509148800000,\"open\":0.17395,\"high\":0.1744,\"low\":0.17346,\"close\":0.17382,\"volume\":127167.2383359,\"close_time\":1509154797074,\"vwap\":0.17379236957562885,\"ema1\":0.17356913730118292,\"sma1\":0.1763208106481482,\"sma2\":0.17224233333333333,\"rsi_avg_gain\":0.00034649131170102994,\"rsi_avg_loss\":0.0003296416387863703,\"rsi\":51},{\"period_id\":\"120m209603\",\"size\":\"120m\",\"time\":1509141600000,\"open\":0.17364,\"high\":0.17462,\"low\":0.17364,\"close\":0.17364,\"volume\":245967.77557432003,\"close_time\":1509148469738,\"vwap\":0.17379110737004203,\"ema1\":0.17355183642540245,\"sma1\":0.1764455328703704,\"sma2\":0.1721943333333333,\"rsi_avg_gain\":0.0003592983356780312,\"rsi_avg_loss\":0.00035499868792378335,\"rsi\":50},{\"period_id\":\"120m209602\",\"size\":\"120m\",\"time\":1509134400000,\"open\":0.17335,\"high\":0.17462,\"low\":0.17293,\"close\":0.174,\"volume\":265180.97041563,\"close_time\":1509141551587,\"vwap\":0.17378692786629066,\"ema1\":0.1735457561788785,\"sma1\":0.17654368101851856,\"sma2\":0.17214866666666667,\"rsi_avg_gain\":0.0003869366691917259,\"rsi_avg_loss\":0.00035461397161022824,\"rsi\":52},{\"period_id\":\"120m209601\",\"size\":\"120m\",\"time\":1509127200000,\"open\":0.17475,\"high\":0.17476,\"low\":0.1728,\"close\":0.17334,\"volume\":507189.33349982,\"close_time\":1509134343110,\"vwap\":0.17377817148646055,\"ema1\":0.17351442901880115,\"sma1\":0.17661025509259265,\"sma2\":0.17209299999999997,\"rsi_avg_gain\":0.00036593179759108986,\"rsi_avg_loss\":0.00038189196942639965,\"rsi\":49},{\"period_id\":\"120m209600\",\"size\":\"120m\",\"time\":1509120000000,\"open\":0.17441,\"high\":0.17494,\"low\":0.17372,\"close\":0.17473,\"volume\":413137.98772199015,\"close_time\":1509127174200,\"vwap\":0.1738378093994843,\"ema1\":0.1735264586063047,\"sma1\":0.17674858842592597,\"sma2\":0.17203516666666668,\"rsi_avg_gain\":0.0003940803974057891,\"rsi_avg_loss\":0.00030434519784381487,\"rsi\":56},{\"period_id\":\"120m209599\",\"size\":\"120m\",\"time\":1509112800000,\"open\":0.17453,\"high\":0.1748,\"low\":0.1735,\"close\":0.17443,\"volume\":270804.7546261601,\"close_time\":1509119994189,\"vwap\":0.1737695385921174,\"ema1\":0.17344345575156708,\"sma1\":0.17688821805555557,\"sma2\":0.1720013333333333,\"rsi_avg_gain\":0.00040131735105238865,\"rsi_avg_loss\":0.00032775636690872374,\"rsi\":55},{\"period_id\":\"120m209598\",\"size\":\"120m\",\"time\":1509105600000,\"open\":0.17335,\"high\":0.17465,\"low\":0.173,\"close\":0.17362,\"volume\":509927.8083225598,\"close_time\":1509112788348,\"vwap\":0.17374304544166505,\"ema1\":0.1733754182171924,\"sma1\":0.17708229212962967,\"sma2\":0.17197866666666664,\"rsi_avg_gain\":0.00036988022421026434,\"rsi_avg_loss\":0.0003529683951324717,\"rsi\":51},{\"period_id\":\"120m209597\",\"size\":\"120m\",\"time\":1509098400000,\"open\":0.17369,\"high\":0.1745,\"low\":0.173,\"close\":0.17378,\"volume\":532383.4747534199,\"close_time\":1509105581778,\"vwap\":0.1736008465677605,\"ema1\":0.17335855050803325,\"sma1\":0.17729877361111115,\"sma2\":0.17190849999999994,\"rsi_avg_gain\":0.00039833254914951546,\"rsi_avg_loss\":0.00036781211783497005,\"rsi\":52},{\"period_id\":\"120m209596\",\"size\":\"120m\",\"time\":1509091200000,\"open\":0.17391,\"high\":0.17496,\"low\":0.173,\"close\":0.17404,\"volume\":482855.3375114401,\"close_time\":1509098375789,\"vwap\":0.1735789409027534,\"ema1\":0.17332948502582865,\"sma1\":0.17747247731481483,\"sma2\":0.17186549999999998,\"rsi_avg_gain\":0.000428973514468709,\"rsi_avg_loss\":0.0003761053576684285,\"rsi\":53},{\"period_id\":\"120m209595\",\"size\":\"120m\",\"time\":1509084000000,\"open\":0.17261,\"high\":0.1748,\"low\":0.17222,\"close\":0.17391,\"volume\":393510.9533228197,\"close_time\":1509091196781,\"vwap\":0.1732878408459926,\"ema1\":0.17328048399312718,\"sma1\":0.17769627361111107,\"sma2\":0.17186816666666663,\"rsi_avg_gain\":0.0004519714771201488,\"rsi_avg_loss\":0.0004050365390275384,\"rsi\":53},{\"period_id\":\"120m209594\",\"size\":\"120m\",\"time\":1509076800000,\"open\":0.1732,\"high\":0.17436,\"low\":0.17225,\"close\":0.17306,\"volume\":279280.6725509501,\"close_time\":1509083949504,\"vwap\":0.1732619375955511,\"ema1\":0.17323706909610145,\"sma1\":0.17794090324074072,\"sma2\":0.17187666666666662,\"rsi_avg_gain\":0.000421353898437082,\"rsi_avg_loss\":0.00043619319587581056,\"rsi\":49},{\"period_id\":\"120m209593\",\"size\":\"120m\",\"time\":1509069600000,\"open\":0.1733,\"high\":0.17374,\"low\":0.173,\"close\":0.17333,\"volume\":26224.47779756,\"close_time\":1509076527404,\"vwap\":0.17340428755513854,\"ema1\":0.17324928075790155,\"sma1\":0.1781771069444444,\"sma2\":0.17185266666666663,\"rsi_avg_gain\":0.00045376573677839607,\"rsi_avg_loss\":0.000448977287866256,\"rsi\":50},{\"period_id\":\"120m209592\",\"size\":\"120m\",\"time\":1509062400000,\"open\":0.174,\"high\":0.174,\"low\":0.17302,\"close\":0.1733,\"volume\":65117.73086698,\"close_time\":1509069539140,\"vwap\":0.17340538144272377,\"ema1\":0.1732437139136189,\"sma1\":0.17841581064814813,\"sma2\":0.17193016666666663,\"rsi_avg_gain\":0.00048636310114596483,\"rsi_avg_loss\":0.0004835140023175064,\"rsi\":50},{\"period_id\":\"120m209591\",\"size\":\"120m\",\"time\":1509055200000,\"open\":0.1735,\"high\":0.17414,\"low\":0.17286,\"close\":0.17403,\"volume\":277183.36005777994,\"close_time\":1509062233010,\"vwap\":0.17340213019339323,\"ema1\":0.17323983211455812,\"sma1\":0.1786058106481481,\"sma2\":0.1719963333333333,\"rsi_avg_gain\":0.0005237756473879621,\"rsi_avg_loss\":0.0004645535409573161,\"rsi\":53},{\"period_id\":\"120m209590\",\"size\":\"120m\",\"time\":1509048000000,\"open\":0.17345,\"high\":0.17387,\"low\":0.1725,\"close\":0.1735,\"volume\":387891.0964343199,\"close_time\":1509055115817,\"vwap\":0.1732718257149464,\"ema1\":0.1731853377776311,\"sma1\":0.1788905328703703,\"sma2\":0.1719713333333333,\"rsi_avg_gain\":0.0005232968510331898,\"rsi_avg_loss\":0.0005002884287232635,\"rsi\":51},{\"period_id\":\"120m209589\",\"size\":\"120m\",\"time\":1509040800000,\"open\":0.17298,\"high\":0.17433,\"low\":0.17214,\"close\":0.17349,\"volume\":391377.44248398015,\"close_time\":1509047942645,\"vwap\":0.17290250779397054,\"ema1\":0.1731636369347091,\"sma1\":0.17921599583333325,\"sma2\":0.17192066666666664,\"rsi_avg_gain\":0.0005627812241895903,\"rsi_avg_loss\":0.0005387721540096684,\"rsi\":51},{\"period_id\":\"120m209588\",\"size\":\"120m\",\"time\":1509033600000,\"open\":0.17315,\"high\":0.17359,\"low\":0.172,\"close\":0.173,\"volume\":462815.97802780016,\"close_time\":1509040586507,\"vwap\":0.1728838305800478,\"ema1\":0.17314112913710283,\"sma1\":0.17958090324074066,\"sma2\":0.17188566666666666,\"rsi_avg_gain\":0.0005683797798964804,\"rsi_avg_loss\":0.0005802161658565659,\"rsi\":49},{\"period_id\":\"120m209587\",\"size\":\"120m\",\"time\":1509026400000,\"open\":0.17423,\"high\":0.1745,\"low\":0.17318,\"close\":0.17318,\"volume\":536308.6854404302,\"close_time\":1509033597034,\"vwap\":0.17288470597943578,\"ema1\":0.17315086218104095,\"sma1\":0.17998831064814808,\"sma2\":0.17186566666666664,\"rsi_avg_gain\":0.000612101301426979,\"rsi_avg_loss\":0.0006110020247686084,\"rsi\":50},{\"period_id\":\"120m209586\",\"size\":\"120m\",\"time\":1509019200000,\"open\":0.17535,\"high\":0.17588,\"low\":0.17377,\"close\":0.17421,\"volume\":552158.98963798,\"close_time\":1509026340279,\"vwap\":0.1728401425724723,\"ema1\":0.17314885267628516,\"sma1\":0.18040331064814807,\"sma2\":0.17184549999999996,\"rsi_avg_gain\":0.000659186016921362,\"rsi_avg_loss\":0.0005787714112892703,\"rsi\":53},{\"period_id\":\"120m209585\",\"size\":\"120m\",\"time\":1509012000000,\"open\":0.17453,\"high\":0.17564,\"low\":0.17332,\"close\":0.17537,\"volume\":638825.14961212,\"close_time\":1509019193338,\"vwap\":0.17276367163726025,\"ema1\":0.17307567010223585,\"sma1\":0.18082701435185178,\"sma2\":0.17178933333333332,\"rsi_avg_gain\":0.0007098926336076206,\"rsi_avg_loss\":0.0005340615198499839,\"rsi\":57},{\"period_id\":\"120m209584\",\"size\":\"120m\",\"time\":1509004800000,\"open\":0.1735,\"high\":0.17483,\"low\":0.17231,\"close\":0.17453,\"volume\":545484.1022664,\"close_time\":1509011988439,\"vwap\":0.17260218814413938,\"ema1\":0.17291744045411417,\"sma1\":0.18128219953703695,\"sma2\":0.17174766666666663,\"rsi_avg_gain\":0.0006998843746543602,\"rsi_avg_loss\":0.0005751431752230596,\"rsi\":55},{\"period_id\":\"120m209583\",\"size\":\"120m\",\"time\":1508997600000,\"open\":0.1728,\"high\":0.1735,\"low\":0.17155,\"close\":0.17349,\"volume\":247787.35630792996,\"close_time\":1509004772097,\"vwap\":0.17251250343164076,\"ema1\":0.17280622945094962,\"sma1\":0.18172192175925922,\"sma2\":0.17175416666666662,\"rsi_avg_gain\":0.0006737216342431583,\"rsi_avg_loss\":0.0006193849579325257,\"rsi\":52},{\"period_id\":\"120m209582\",\"size\":\"120m\",\"time\":1508990400000,\"open\":0.17349,\"high\":0.17363,\"low\":0.17232,\"close\":0.173,\"volume\":203349.75248238,\"close_time\":1508997556850,\"vwap\":0.17249856845670294,\"ema1\":0.17275907286135994,\"sma1\":0.18218812546296292,\"sma2\":0.17177049999999996,\"rsi_avg_gain\":0.0006878540676464767,\"rsi_avg_loss\":0.0006670299546965661,\"rsi\":51},{\"period_id\":\"120m209581\",\"size\":\"120m\",\"time\":1508983200000,\"open\":0.17188,\"high\":0.17361,\"low\":0.1718,\"close\":0.17348,\"volume\":65074.96547798002,\"close_time\":1508990308256,\"vwap\":0.17249536585990932,\"ema1\":0.17274245719662615,\"sma1\":0.18263016249999997,\"sma2\":0.17176249999999996,\"rsi_avg_gain\":0.000740765919003898,\"rsi_avg_loss\":0.0006814168742886091,\"rsi\":52},{\"period_id\":\"120m209580\",\"size\":\"120m\",\"time\":1508976000000,\"open\":0.17214,\"high\":0.17323,\"low\":0.17072,\"close\":0.1717,\"volume\":152100.50329952006,\"close_time\":1508983070436,\"vwap\":0.17249484689725358,\"ema1\":0.17269159217570382,\"sma1\":0.18310599583333337,\"sma2\":0.1718233333333333,\"rsi_avg_gain\":0.0006608248358503515,\"rsi_avg_loss\":0.0007338335569261944,\"rsi\":47},{\"period_id\":\"120m209579\",\"size\":\"120m\",\"time\":1508968800000,\"open\":0.17132,\"high\":0.17463,\"low\":0.1709,\"close\":0.17221,\"volume\":327021.46813437995,\"close_time\":1508975990039,\"vwap\":0.17250192924800628,\"ema1\":0.17275997784299374,\"sma1\":0.18351960694444447,\"sma2\":0.171895,\"rsi_avg_gain\":0.0007116575155311477,\"rsi_avg_loss\":0.0007510515228435933,\"rsi\":49},{\"period_id\":\"120m209578\",\"size\":\"120m\",\"time\":1508961600000,\"open\":0.1707,\"high\":0.17358,\"low\":0.17062,\"close\":0.17141,\"volume\":541845.9698597101,\"close_time\":1508968736961,\"vwap\":0.17249817426926775,\"ema1\":0.17279790734940711,\"sma1\":0.1840079402777778,\"sma2\":0.1719715,\"rsi_avg_gain\":0.0007048619398027749,\"rsi_avg_loss\":0.000808824716908485,\"rsi\":47},{\"period_id\":\"120m209577\",\"size\":\"120m\",\"time\":1508954400000,\"open\":0.17124,\"high\":0.1723,\"low\":0.17,\"close\":0.1707,\"volume\":849917.9403358107,\"close_time\":1508961587149,\"vwap\":0.17253965731577947,\"ema1\":0.17289362509764208,\"sma1\":0.1845916439814815,\"sma2\":0.17208616666666668,\"rsi_avg_gain\":0.0007044667044029871,\"rsi_avg_loss\":0.0008710420028245223,\"rsi\":45},{\"period_id\":\"120m209576\",\"size\":\"120m\",\"time\":1508947200000,\"open\":0.17211,\"high\":0.17285,\"low\":0.17065,\"close\":0.17065,\"volume\":397940.7244818399,\"close_time\":1508954194635,\"vwap\":0.17297024248517856,\"ema1\":0.17304490958713464,\"sma1\":0.18521340324074076,\"sma2\":0.17222016666666665,\"rsi_avg_gain\":0.0007548102970493711,\"rsi_avg_loss\":0.000938045233811024,\"rsi\":45},{\"period_id\":\"120m209575\",\"size\":\"120m\",\"time\":1508940000000,\"open\":0.17242,\"high\":0.17504,\"low\":0.1705,\"close\":0.17197,\"volume\":1294814.2538945102,\"close_time\":1508947190837,\"vwap\":0.17308563900225207,\"ema1\":0.17321007576555772,\"sma1\":0.18589358842592596,\"sma2\":0.17236233333333334,\"rsi_avg_gain\":0.0008128726275916303,\"rsi_avg_loss\":0.0009086640979503324,\"rsi\":47},{\"period_id\":\"120m209574\",\"size\":\"120m\",\"time\":1508932800000,\"open\":0.17124,\"high\":0.1735,\"low\":0.17004,\"close\":0.17242,\"volume\":698543.0479591705,\"close_time\":1508939995535,\"vwap\":0.1732416932266159,\"ema1\":0.1732955982321479,\"sma1\":0.1866009958333333,\"sma2\":0.17255349999999997,\"rsi_avg_gain\":0.0008754012912525249,\"rsi_avg_loss\":0.0009439459516388212,\"rsi\":48},{\"period_id\":\"120m209573\",\"size\":\"120m\",\"time\":1508925600000,\"open\":0.1735,\"high\":0.17576,\"low\":0.17002,\"close\":0.17124,\"volume\":776842.12237437,\"close_time\":1508932775447,\"vwap\":0.17351422814756695,\"ema1\":0.17335598431712362,\"sma1\":0.18716803287037037,\"sma2\":0.17277449999999997,\"rsi_avg_gain\":0.0008519706213488739,\"rsi_avg_loss\":0.0010165571786879613,\"rsi\":46},{\"period_id\":\"120m209572\",\"size\":\"120m\",\"time\":1508918400000,\"open\":0.176,\"high\":0.1769,\"low\":0.173,\"close\":0.1732,\"volume\":853693.2410544899,\"close_time\":1508925593807,\"vwap\":0.17489949974941926,\"ema1\":0.1735019142700287,\"sma1\":0.18770599583333333,\"sma2\":0.17294899999999996,\"rsi_avg_gain\":0.000917506822991095,\"rsi_avg_loss\":0.0009439846539716516,\"rsi\":49},{\"period_id\":\"120m209571\",\"size\":\"120m\",\"time\":1508911200000,\"open\":0.1746,\"high\":0.17699,\"low\":0.1745,\"close\":0.176,\"volume\":812787.1982533699,\"close_time\":1508918396597,\"vwap\":0.18084488092631432,\"ema1\":0.17352273594382378,\"sma1\":0.18826164398148149,\"sma2\":0.17308216666666662,\"rsi_avg_gain\":0.000988084270913487,\"rsi_avg_loss\":0.000801214242738702,\"rsi\":55},{\"period_id\":\"120m209570\",\"size\":\"120m\",\"time\":1508904000000,\"open\":0.17459,\"high\":0.176,\"low\":0.17217,\"close\":0.1746,\"volume\":332293.24866345007,\"close_time\":1508911125306,\"vwap\":0.18106486973601899,\"ema1\":0.1733518901468461,\"sma1\":0.18871534768518522,\"sma2\":0.1732638333333333,\"rsi_avg_gain\":0.0009563984455991409,\"rsi_avg_loss\":0.000862846107564756,\"rsi\":53},{\"period_id\":\"120m209569\",\"size\":\"120m\",\"time\":1508896800000,\"open\":0.17102,\"high\":0.17461,\"low\":0.1705,\"close\":0.17456,\"volume\":238526.89042274005,\"close_time\":1508903964165,\"vwap\":0.18115285884895965,\"ema1\":0.17326581360524929,\"sma1\":0.18915219953703705,\"sma2\":0.17343149999999996,\"rsi_avg_gain\":0.0010268906337221508,\"rsi_avg_loss\":0.0009292188850697373,\"rsi\":52},{\"period_id\":\"120m209568\",\"size\":\"120m\",\"time\":1508889600000,\"open\":0.1751,\"high\":0.17542,\"low\":0.17101,\"close\":0.17132,\"volume\":315972.07897068013,\"close_time\":1508896758337,\"vwap\":0.18118126239334698,\"ema1\":0.17317655937112855,\"sma1\":0.18959488472222222,\"sma2\":0.17362883333333332,\"rsi_avg_gain\":0.0008566514517007785,\"rsi_avg_loss\":0.0010006972608443325,\"rsi\":46},{\"period_id\":\"120m209567\",\"size\":\"120m\",\"time\":1508882400000,\"open\":0.17488,\"high\":0.1782,\"low\":0.17324,\"close\":0.17476,\"volume\":779646.11099317,\"close_time\":1508889386052,\"vwap\":0.18125589978317966,\"ema1\":0.17330459794844777,\"sma1\":0.19001988472222225,\"sma2\":0.17375549999999998,\"rsi_avg_gain\":0.0009225477172162231,\"rsi_avg_loss\":0.0008130585886015889,\"rsi\":53},{\"period_id\":\"120m209566\",\"size\":\"120m\",\"time\":1508875200000,\"open\":0.17901,\"high\":0.18062,\"low\":0.1724,\"close\":0.1749,\"volume\":980719.45796823,\"close_time\":1508882374988,\"vwap\":0.1814268079364198,\"ema1\":0.1732042253931683,\"sma1\":0.19042247731481485,\"sma2\":0.17387549999999996,\"rsi_avg_gain\":0.0009935129262328556,\"rsi_avg_loss\":0.0008648323261863264,\"rsi\":53},{\"period_id\":\"120m209565\",\"size\":\"120m\",\"time\":1508868000000,\"open\":0.18111,\"high\":0.18302,\"low\":0.17853,\"close\":0.1789,\"volume\":870281.0234227607,\"close_time\":1508875170112,\"vwap\":0.18192126667237804,\"ema1\":0.17308727542028335,\"sma1\":0.19084358842592597,\"sma2\":0.17396999999999993,\"rsi_avg_gain\":0.0010699369974815367,\"rsi_avg_loss\":0.0006236655820468127,\"rsi\":63},{\"period_id\":\"120m209564\",\"size\":\"120m\",\"time\":1508860800000,\"open\":0.18079,\"high\":0.18325,\"low\":0.176,\"close\":0.181,\"volume\":2010800.5246071485,\"close_time\":1508867957444,\"vwap\":0.1820100349323736,\"ema1\":0.1726863978630615,\"sma1\":0.19124775509259262,\"sma2\":0.17399416666666664,\"rsi_avg_gain\":0.0011522398434416548,\"rsi_avg_loss\":0.0005101013960504145,\"rsi\":69},{\"period_id\":\"120m209563\",\"size\":\"120m\",\"time\":1508853600000,\"open\":0.18248,\"high\":0.18549,\"low\":0.1806,\"close\":0.18078,\"volume\":2048497.8937628616,\"close_time\":1508860796305,\"vwap\":0.18307386065902015,\"ema1\":0.1721130459915485,\"sma1\":0.19157655138888893,\"sma2\":0.1741811666666666,\"rsi_avg_gain\":0.0012239506006294747,\"rsi_avg_loss\":0.0005493399649773694,\"rsi\":69},{\"period_id\":\"120m209562\",\"size\":\"120m\",\"time\":1508846400000,\"open\":0.17812,\"high\":0.184,\"low\":0.178,\"close\":0.18142,\"volume\":2121593.591426679,\"close_time\":1508853596365,\"vwap\":0.18254786586734997,\"ema1\":0.1715153250254484,\"sma1\":0.19187951435185188,\"sma2\":0.17409866666666662,\"rsi_avg_gain\":0.001318100646831742,\"rsi_avg_loss\":0.0005423661161294747,\"rsi\":71},{\"period_id\":\"120m209561\",\"size\":\"120m\",\"time\":1508839200000,\"open\":0.17708,\"high\":0.1797,\"low\":0.1755,\"close\":0.17812,\"volume\":1405572.9367635408,\"close_time\":1508846399653,\"vwap\":0.17326085596069363,\"ema1\":0.1708322439927207,\"sma1\":0.19219895879629634,\"sma2\":0.1740983333333333,\"rsi_avg_gain\":0.0011656468504341838,\"rsi_avg_loss\":0.0005840865866009728,\"rsi\":67},{\"period_id\":\"120m209560\",\"size\":\"120m\",\"time\":1508832000000,\"open\":0.1749,\"high\":0.18,\"low\":0.174,\"close\":0.17802,\"volume\":2817885.18563076,\"close_time\":1508839193802,\"vwap\":0.17255486366421657,\"ema1\":0.17032964013014973,\"sma1\":0.1925582180555556,\"sma2\":0.1740965,\"rsi_avg_gain\":0.001247619685082968,\"rsi_avg_loss\":0.0006290163240318168,\"rsi\":66},{\"period_id\":\"120m209559\",\"size\":\"120m\",\"time\":1508824800000,\"open\":0.17427,\"high\":0.17499,\"low\":0.17004,\"close\":0.174,\"volume\":2599126.4352685795,\"close_time\":1508831953470,\"vwap\":0.16876242831599525,\"ema1\":0.16979927048395316,\"sma1\":0.19295618101851855,\"sma2\":0.17417716666666663,\"rsi_avg_gain\":0.001034359660858579,\"rsi_avg_loss\":0.0006774021951111873,\"rsi\":60},{\"period_id\":\"120m209558\",\"size\":\"120m\",\"time\":1508817600000,\"open\":0.16942,\"high\":0.17497,\"low\":0.16851,\"close\":0.17427,\"volume\":940349.9307694802,\"close_time\":1508824766056,\"vwap\":0.16588871408278943,\"ema1\":0.16950956500008785,\"sma1\":0.19336229212962963,\"sma2\":0.17429766666666663,\"rsi_avg_gain\":0.001113925788616931,\"rsi_avg_loss\":0.000708740825504354,\"rsi\":61},{\"period_id\":\"120m209557\",\"size\":\"120m\",\"time\":1508810400000,\"open\":0.17017,\"high\":0.17674,\"low\":0.16831,\"close\":0.16946,\"volume\":1315534.0875811498,\"close_time\":1508817487442,\"vwap\":0.16521331756906596,\"ema1\":0.16918125913802495,\"sma1\":0.19376164398148155,\"sma2\":0.1744541666666667,\"rsi_avg_gain\":0.0008296123877413098,\"rsi_avg_loss\":0.0007632593505431505,\"rsi\":52},{\"period_id\":\"120m209556\",\"size\":\"120m\",\"time\":1508803200000,\"open\":0.164,\"high\":0.17077,\"low\":0.1571,\"close\":0.17,\"volume\":1711814.2027050385,\"close_time\":1508810383599,\"vwap\":0.1625082159332673,\"ema1\":0.16916203563030255,\"sma1\":0.19423127361111112,\"sma2\":0.17466399999999999,\"rsi_avg_gain\":0.0008934287252598722,\"rsi_avg_loss\":0.0007804331467387764,\"rsi\":53},{\"period_id\":\"120m209555\",\"size\":\"120m\",\"time\":1508796000000,\"open\":0.16292,\"high\":0.1675,\"low\":0.16182,\"close\":0.164,\"volume\":807403.1018157998,\"close_time\":1508803132515,\"vwap\":0.1654307170389701,\"ema1\":0.16910424498411653,\"sma1\":0.19472201435185188,\"sma2\":0.17501649999999996,\"rsi_avg_gain\":0.000500615550279862,\"rsi_avg_loss\":0.0008404664657186823,\"rsi\":37},{\"period_id\":\"120m209554\",\"size\":\"120m\",\"time\":1508788800000,\"open\":0.1625,\"high\":0.16426,\"low\":0.16121,\"close\":0.16234,\"volume\":1314971.7257595595,\"close_time\":1508795898047,\"vwap\":0.16347576943272918,\"ema1\":0.16945626187957283,\"sma1\":0.19523812546296299,\"sma2\":0.17539533333333332,\"rsi_avg_gain\":0.000411432131070621,\"rsi_avg_loss\":0.000905117732312427,\"rsi\":31},{\"period_id\":\"120m209553\",\"size\":\"120m\",\"time\":1508781600000,\"open\":0.16131,\"high\":0.16298,\"low\":0.16,\"close\":0.1625,\"volume\":1229418.5161516913,\"close_time\":1508788795861,\"vwap\":0.16356546987214696,\"ema1\":0.16994703856092266,\"sma1\":0.19576608842592597,\"sma2\":0.1756808333333333,\"rsi_avg_gain\":0.0004430807565375918,\"rsi_avg_loss\":0.0009624344809518449,\"rsi\":32},{\"period_id\":\"120m209552\",\"size\":\"120m\",\"time\":1508774400000,\"open\":0.16147,\"high\":0.162,\"low\":0.16,\"close\":0.1613,\"volume\":1277560.5058609694,\"close_time\":1508781568333,\"vwap\":0.16379007816540847,\"ema1\":0.1704606274271932,\"sma1\":0.1962793291666667,\"sma2\":0.1760008333333333,\"rsi_avg_gain\":0.0003848561993481752,\"rsi_avg_loss\":0.0010364679025635253,\"rsi\":27},{\"period_id\":\"120m209551\",\"size\":\"120m\",\"time\":1508767200000,\"open\":0.16191,\"high\":0.16275,\"low\":0.16,\"close\":0.161,\"volume\":1546121.7464910003,\"close_time\":1508774327749,\"vwap\":0.1641423992792004,\"ema1\":0.17109239483596514,\"sma1\":0.196790625462963,\"sma2\":0.17646749999999997,\"rsi_avg_gain\":0.0003913835992980352,\"rsi_avg_loss\":0.0011161962027607195,\"rsi\":26},{\"period_id\":\"120m209550\",\"size\":\"120m\",\"time\":1508760000000,\"open\":0.16606,\"high\":0.16606,\"low\":0.16034,\"close\":0.16196,\"volume\":1831406.5661778909,\"close_time\":1508767191577,\"vwap\":0.16495635490839344,\"ema1\":0.1717884220660317,\"sma1\":0.1972896069444445,\"sma2\":0.17690150000000002,\"rsi_avg_gain\":0.0004214900300132687,\"rsi_avg_loss\":0.0011282112952807758,\"rsi\":27},{\"period_id\":\"120m209549\",\"size\":\"120m\",\"time\":1508752800000,\"open\":0.16547,\"high\":0.16717,\"low\":0.165,\"close\":0.16503,\"volume\":1181269.23281257,\"close_time\":1508759985903,\"vwap\":0.16589795850897254,\"ema1\":0.17246624427748217,\"sma1\":0.19780469953703705,\"sma2\":0.17738233333333334,\"rsi_avg_gain\":0.00045391234001428935,\"rsi_avg_loss\":0.0009788429333792957,\"rsi\":32},{\"period_id\":\"120m209548\",\"size\":\"120m\",\"time\":1508745600000,\"open\":0.16604,\"high\":0.16744,\"low\":0.165,\"close\":0.16595,\"volume\":2203820.4107049895,\"close_time\":1508752793340,\"vwap\":0.16592746547469378,\"ema1\":0.17297908871041198,\"sma1\":0.19832636620370378,\"sma2\":0.1778451666666667,\"rsi_avg_gain\":0.0004888286738615424,\"rsi_avg_loss\":0.0009833693128700124,\"rsi\":33},{\"period_id\":\"120m209547\",\"size\":\"120m\",\"time\":1508738400000,\"open\":0.169,\"high\":0.16902,\"low\":0.165,\"close\":0.16603,\"volume\":1644274.9669853388,\"close_time\":1508745581675,\"vwap\":0.1664201622286174,\"ema1\":0.1734638534490611,\"sma1\":0.1987886810185186,\"sma2\":0.17827800000000002,\"rsi_avg_gain\":0.0005264308795431995,\"rsi_avg_loss\":0.0010528592600138576,\"rsi\":33},{\"period_id\":\"120m209546\",\"size\":\"120m\",\"time\":1508731200000,\"open\":0.17068,\"high\":0.17076,\"low\":0.169,\"close\":0.16911,\"volume\":319551.91773119004,\"close_time\":1508738356463,\"vwap\":0.17103051337577016,\"ema1\":0.1739765329972722,\"sma1\":0.19927849583333337,\"sma2\":0.17875950000000002,\"rsi_avg_gain\":0.000566925562584984,\"rsi_avg_loss\":0.0008969253569380006,\"rsi\":39},{\"period_id\":\"120m209545\",\"size\":\"120m\",\"time\":1508724000000,\"open\":0.1708,\"high\":0.17086,\"low\":0.17003,\"close\":0.17043,\"volume\":87114,\"close_time\":1508730294918,\"vwap\":0.1710418127784737,\"ema1\":0.1743121559626013,\"sma1\":0.19976868101851858,\"sma2\":0.17916900000000002,\"rsi_avg_gain\":0.0006105352212453675,\"rsi_avg_loss\":0.00086438115362554,\"rsi\":41},{\"period_id\":\"120m209544\",\"size\":\"120m\",\"time\":1508716800000,\"open\":0.17162,\"high\":0.17162,\"low\":0.1707,\"close\":0.17082,\"volume\":115057.60277177,\"close_time\":1508723544199,\"vwap\":0.1710421388184311,\"ema1\":0.1745798908565738,\"sma1\":0.20022951435185188,\"sma2\":0.1796456666666667,\"rsi_avg_gain\":0.0006574994690334726,\"rsi_avg_loss\":0.0009008720115967352,\"rsi\":42},{\"period_id\":\"120m209543\",\"size\":\"120m\",\"time\":1508709600000,\"open\":0.1705,\"high\":0.172,\"low\":0.17017,\"close\":0.17076,\"volume\":97633.11608365999,\"close_time\":1508716762892,\"vwap\":0.17104222900328808,\"ema1\":0.17483919367426853,\"sma1\":0.2006646995370371,\"sma2\":0.18004133333333336,\"rsi_avg_gain\":0.0007034609666514317,\"rsi_avg_loss\":0.0009701698586426379,\"rsi\":42},{\"period_id\":\"120m209542\",\"size\":\"120m\",\"time\":1508702400000,\"open\":0.17,\"high\":0.17174755,\"low\":0.16966,\"close\":0.17126,\"volume\":279349.66166889,\"close_time\":1508709197711,\"vwap\":0.1710420353521117,\"ema1\":0.17512051737594223,\"sma1\":0.2010894444444445,\"sma2\":0.18033200000000002,\"rsi_avg_gain\":0.0007575733487015418,\"rsi_avg_loss\":0.0010063367708459177,\"rsi\":43},{\"period_id\":\"120m209541\",\"size\":\"120m\",\"time\":1508695200000,\"open\":0.171,\"high\":0.172,\"low\":0.1698,\"close\":0.17,\"volume\":534286.93589556,\"close_time\":1508702389820,\"vwap\":0.17104184026207914,\"ema1\":0.1753867599535934,\"sma1\":0.20157314814814822,\"sma2\":0.18085700000000002,\"rsi_avg_gain\":0.0007189251447555079,\"rsi_avg_loss\":0.0010837472916802192,\"rsi\":40},{\"period_id\":\"120m209540\",\"size\":\"120m\",\"time\":1508688000000,\"open\":0.1724,\"high\":0.1724,\"low\":0.171,\"close\":0.17126,\"volume\":149310.91431348005,\"close_time\":1508694856926,\"vwap\":0.1710599758750851,\"ema1\":0.17575826064004813,\"sma2\":0.1814685,\"rsi_avg_gain\":0.0007742270789674701,\"rsi_avg_loss\":0.0010701893910402373,\"rsi\":42},{\"period_id\":\"120m209539\",\"size\":\"120m\",\"time\":1508680800000,\"open\":0.1723,\"high\":0.17481,\"low\":0.17121,\"close\":0.1724,\"volume\":597489.0677834799,\"close_time\":1508687927557,\"vwap\":0.17105684775663274,\"ema1\":0.1760684855117756,\"sma2\":0.18213633333333334,\"rsi_avg_gain\":0.0008337830081188139,\"rsi_avg_loss\":0.0010648193441971786,\"rsi\":44},{\"period_id\":\"120m209538\",\"size\":\"120m\",\"time\":1508673600000,\"open\":0.17057,\"high\":0.17274,\"low\":0.16958,\"close\":0.17226,\"volume\":357371.2148454699,\"close_time\":1508680784545,\"vwap\":0.1709876303910194,\"ema1\":0.1763214845125877,\"sma2\":0.1828766666666667,\"rsi_avg_gain\":0.0008871509318202611,\"rsi_avg_loss\":0.0011467285245200384,\"rsi\":44},{\"period_id\":\"120m209537\",\"size\":\"120m\",\"time\":1508666400000,\"open\":0.17146,\"high\":0.17149,\"low\":0.168,\"close\":0.16957,\"volume\":718263.7104258008,\"close_time\":1508673584125,\"vwap\":0.17097336768189778,\"ema1\":0.17660158689276617,\"sma2\":0.18363383333333336,\"rsi_avg_gain\":0.0007484702342679736,\"rsi_avg_loss\":0.0012349384110215797,\"rsi\":38},{\"period_id\":\"120m209536\",\"size\":\"120m\",\"time\":1508659200000,\"open\":0.17333,\"high\":0.17451,\"low\":0.16901,\"close\":0.17146,\"volume\":777359.1669491098,\"close_time\":1508666395877,\"vwap\":0.17109325720366556,\"ema1\":0.1770865239198535,\"sma2\":0.18446883333333336,\"rsi_avg_gain\":0.0008060448676732024,\"rsi_avg_loss\":0.0011845490580232394,\"rsi\":40},{\"period_id\":\"120m209535\",\"size\":\"120m\",\"time\":1508652000000,\"open\":0.173,\"high\":0.17549,\"low\":0.17237,\"close\":0.17407,\"volume\":368189.59224220994,\"close_time\":1508659091496,\"vwap\":0.17112062851999602,\"ema1\":0.17747456005225717,\"sma2\":0.185208,\"rsi_avg_gain\":0.0008680483190326796,\"rsi_avg_loss\":0.0010748989855634886,\"rsi\":45},{\"period_id\":\"120m209534\",\"size\":\"120m\",\"time\":1508644800000,\"open\":0.17198,\"high\":0.17389,\"low\":0.17066,\"close\":0.17357,\"volume\":259884.95235785996,\"close_time\":1508651645538,\"vwap\":0.1710555816890172,\"ema1\":0.17770935729724044,\"sma2\":0.185956,\"rsi_avg_gain\":0.0008963597281890396,\"rsi_avg_loss\":0.0011575835229145261,\"rsi\":44},{\"period_id\":\"120m209533\",\"size\":\"120m\",\"time\":1508637600000,\"open\":0.17799,\"high\":0.17807,\"low\":0.1715,\"close\":0.17189,\"volume\":233140.33999584996,\"close_time\":1508644438052,\"vwap\":0.17104457186512456,\"ema1\":0.1779948302142915,\"sma2\":0.18673033333333333,\"rsi_avg_gain\":0.000836079707280503,\"rsi_avg_loss\":0.0012466284092925667,\"rsi\":40},{\"period_id\":\"120m209532\",\"size\":\"120m\",\"time\":1508630400000,\"open\":0.17794,\"high\":0.1799,\"low\":0.17573,\"close\":0.17795,\"volume\":324073.30858867,\"close_time\":1508637572755,\"vwap\":0.17100717692188364,\"ema1\":0.17841585298769091,\"sma2\":0.18743116666666668,\"rsi_avg_gain\":0.0009003935309174648,\"rsi_avg_loss\":0.0008763690561612251,\"rsi\":51},{\"period_id\":\"120m209531\",\"size\":\"120m\",\"time\":1508623200000,\"open\":0.17182,\"high\":0.178,\"low\":0.17131,\"close\":0.178,\"volume\":579369.1544701199,\"close_time\":1508630360880,\"vwap\":0.17088922032512555,\"ema1\":0.17844798077994548,\"sma2\":0.188096,\"rsi_avg_gain\":0.0009696545717572698,\"rsi_avg_loss\":0.0009399359066351658,\"rsi\":51},{\"period_id\":\"120m209530\",\"size\":\"120m\",\"time\":1508616000000,\"open\":0.17,\"high\":0.173,\"low\":0.16948,\"close\":0.172,\"volume\":437613.7920166499,\"close_time\":1508623105179,\"vwap\":0.17055319598052904,\"ema1\":0.17847887600614862,\"sma2\":0.18881266666666668,\"rsi_avg_gain\":0.0005827049234309055,\"rsi_avg_loss\":0.0010122386686840248,\"rsi\":37},{\"period_id\":\"120m209529\",\"size\":\"120m\",\"time\":1508608800000,\"open\":0.171,\"high\":0.17269,\"low\":0.17,\"close\":0.17045,\"volume\":521011.0137024398,\"close_time\":1508615996024,\"vwap\":0.17051795933321442,\"ema1\":0.17892569504105543,\"sma2\":0.18962850000000003,\"rsi_avg_gain\":0.0005082976098486679,\"rsi_avg_loss\":0.001090103181659719,\"rsi\":32},{\"period_id\":\"120m209528\",\"size\":\"120m\",\"time\":1508601600000,\"open\":0.17174,\"high\":0.17204,\"low\":0.168,\"close\":0.1709,\"volume\":676697.5788278899,\"close_time\":1508608747958,\"vwap\":0.17049604887860445,\"ema1\":0.17951022573354203,\"sma2\":0.19065016666666673,\"rsi_avg_gain\":0.0005473974259908731,\"rsi_avg_loss\":0.0011393418879412354,\"rsi\":32},{\"period_id\":\"120m209527\",\"size\":\"120m\",\"time\":1508594400000,\"open\":0.17297,\"high\":0.17459,\"low\":0.1709,\"close\":0.17198,\"volume\":648114.2900651698,\"close_time\":1508601565921,\"vwap\":0.17057565292476157,\"ema1\":0.18010403440482078,\"sma2\":0.19176050000000003,\"rsi_avg_gain\":0.0005895049202978633,\"rsi_avg_loss\":0.0011439066485521,\"rsi\":34},{\"period_id\":\"120m209526\",\"size\":\"120m\",\"time\":1508587200000,\"open\":0.172,\"high\":0.17328,\"low\":0.16928,\"close\":0.173,\"volume\":2639942.211716732,\"close_time\":1508594339385,\"vwap\":0.17044143306279783,\"ema1\":0.180664312639636,\"sma2\":0.19300483333333335,\"rsi_avg_gain\":0.0006348514526284682,\"rsi_avg_loss\":0.0011534379292099544,\"rsi\":36},{\"period_id\":\"120m209525\",\"size\":\"120m\",\"time\":1508580000000,\"open\":0.17203,\"high\":0.173,\"low\":0.171,\"close\":0.172,\"volume\":729710.4042586304,\"close_time\":1508587194952,\"vwap\":0.1773139734800312,\"ema1\":0.18119288592512814,\"sma2\":0.19406316666666668,\"rsi_avg_gain\":0.000606763102830658,\"rsi_avg_loss\":0.0012421639237645663,\"rsi\":33},{\"period_id\":\"120m209524\",\"size\":\"120m\",\"time\":1508572800000,\"open\":0.17382,\"high\":0.174,\"low\":0.172,\"close\":0.17203,\"volume\":599489.1881081001,\"close_time\":1508579993090,\"vwap\":0.17753301736666596,\"ema1\":0.1818268780578956,\"sma2\":0.195087,\"rsi_avg_gain\":0.0006534371876637856,\"rsi_avg_loss\":0.0013354073025156866,\"rsi\":33},{\"period_id\":\"120m209523\",\"size\":\"120m\",\"time\":1508565600000,\"open\":0.174,\"high\":0.17489,\"low\":0.17141,\"close\":0.17388,\"volume\":803000.1573551196,\"close_time\":1508572738039,\"vwap\":0.17769128157450484,\"ema1\":0.1825025248205091,\"sma2\":0.1961053333333334,\"rsi_avg_gain\":0.0007037015867148461,\"rsi_avg_loss\":0.0012958232488630456,\"rsi\":35},{\"period_id\":\"120m209522\",\"size\":\"120m\",\"time\":1508558400000,\"open\":0.17331,\"high\":0.17482,\"low\":0.17153,\"close\":0.17398,\"volume\":328946.48005890014,\"close_time\":1508565586485,\"vwap\":0.17789801126104207,\"ema1\":0.18309718170468214,\"sma2\":0.19690200000000008,\"rsi_avg_gain\":0.0007578324780006036,\"rsi_avg_loss\":0.001387809652621742,\"rsi\":35},{\"period_id\":\"120m209521\",\"size\":\"120m\",\"time\":1508551200000,\"open\":0.175,\"high\":0.17588,\"low\":0.173,\"close\":0.173,\"volume\":369652.91754784994,\"close_time\":1508558005497,\"vwap\":0.17796463035964613,\"ema1\":0.18372595285672919,\"sma2\":0.19768533333333338,\"rsi_avg_gain\":0.000740742668616034,\"rsi_avg_loss\":0.001494564241284953,\"rsi\":33},{\"period_id\":\"120m209520\",\"size\":\"120m\",\"time\":1508544000000,\"open\":0.17635,\"high\":0.17802,\"low\":0.17464,\"close\":0.17535,\"volume\":470922.95569517004,\"close_time\":1508551167572,\"vwap\":0.17801668742599713,\"ema1\":0.18446567374340017,\"sma2\":0.1984418333333334,\"rsi_avg_gain\":0.0007977228738941905,\"rsi_avg_loss\":0.0014287614906145635,\"rsi\":36},{\"period_id\":\"120m209519\",\"size\":\"120m\",\"time\":1508536800000,\"open\":0.176,\"high\":0.17769,\"low\":0.1746,\"close\":0.17651,\"volume\":1082256.3462099694,\"close_time\":1508543841892,\"vwap\":0.17804961460907287,\"ema1\":0.18509434089811744,\"sma2\":0.19921666666666674,\"rsi_avg_gain\":0.0008590861718860513,\"rsi_avg_loss\":0.0014494354514310687,\"rsi\":37},{\"period_id\":\"120m209518\",\"size\":\"120m\",\"time\":1508529600000,\"open\":0.177,\"high\":0.1783,\"low\":0.175,\"close\":0.176,\"volume\":2969300.322570631,\"close_time\":1508536792880,\"vwap\":0.17833289060364033,\"ema1\":0.18568636440833244,\"sma2\":0.20000683333333338,\"rsi_avg_gain\":0.0008859389543388236,\"rsi_avg_loss\":0.0015609304861565357,\"rsi\":36},{\"period_id\":\"120m209517\",\"size\":\"120m\",\"time\":1508522400000,\"open\":0.1785,\"high\":0.17999,\"low\":0.1771,\"close\":0.17758,\"volume\":913124.6028473194,\"close_time\":1508529579456,\"vwap\":0.179954551068756,\"ema1\":0.18635438953994157,\"sma2\":0.20077866666666674,\"rsi_avg_gain\":0.0009540881046725794,\"rsi_avg_loss\":0.0015594636004762695,\"rsi\":38},{\"period_id\":\"120m209516\",\"size\":\"120m\",\"time\":1508515200000,\"open\":0.1805,\"high\":0.1805,\"low\":0.1765,\"close\":0.17869,\"volume\":854731.4552997001,\"close_time\":1508522351206,\"vwap\":0.18021719471706482,\"ema1\":0.186959519853041,\"sma2\":0.20156716666666677,\"rsi_avg_gain\":0.0010274794973397009,\"rsi_avg_loss\":0.0015940377235898287,\"rsi\":39},{\"period_id\":\"120m209515\",\"size\":\"120m\",\"time\":1508508000000,\"open\":0.18251,\"high\":0.18389,\"low\":0.1754,\"close\":0.1805,\"volume\":2255473.1624895213,\"close_time\":1508515181054,\"vwap\":0.18046686193741693,\"ema1\":0.1875298315670438,\"sma2\":0.2022330000000001,\"rsi_avg_gain\":0.001106516381750447,\"rsi_avg_loss\":0.0015774252407890457,\"rsi\":41},{\"period_id\":\"120m209514\",\"size\":\"120m\",\"time\":1508500800000,\"open\":0.1827,\"high\":0.1845,\"low\":0.182,\"close\":0.18389,\"volume\":741604.6409471899,\"close_time\":1508507951218,\"vwap\":0.183435224075324,\"ema1\":0.18801464753718475,\"sma2\":0.20273350000000007,\"rsi_avg_gain\":0.0011916330265004816,\"rsi_avg_loss\":0.0014379964131574336,\"rsi\":45},{\"period_id\":\"120m209513\",\"size\":\"120m\",\"time\":1508493600000,\"open\":0.18325,\"high\":0.18495,\"low\":0.18194,\"close\":0.1845,\"volume\":672749.5059062601,\"close_time\":1508500751369,\"vwap\":0.1835796121083737,\"ema1\":0.18829910598802507,\"sma2\":0.2032285,\"rsi_avg_gain\":0.0012832971054620571,\"rsi_avg_loss\":0.0015016884449387746,\"rsi\":46},{\"period_id\":\"120m209512\",\"size\":\"120m\",\"time\":1508486400000,\"open\":0.18398,\"high\":0.18511,\"low\":0.1825,\"close\":0.18367,\"volume\":750380.9981659299,\"close_time\":1508493594948,\"vwap\":0.18574307407711776,\"ema1\":0.18856111329754405,\"sma2\":0.20373400000000003,\"rsi_avg_gain\":0.0013181661135745234,\"rsi_avg_loss\":0.0016172029407032957,\"rsi\":45},{\"period_id\":\"120m209511\",\"size\":\"120m\",\"time\":1508479200000,\"open\":0.18556,\"high\":0.18691,\"low\":0.1833,\"close\":0.18399,\"volume\":934216.4546398703,\"close_time\":1508486356945,\"vwap\":0.18580554339497743,\"ema1\":0.18889843145599536,\"sma2\":0.2042835000000001,\"rsi_avg_gain\":0.0014195635069264097,\"rsi_avg_loss\":0.0017169877822958578,\"rsi\":45},{\"period_id\":\"120m209510\",\"size\":\"120m\",\"time\":1508472000000,\"open\":0.18476,\"high\":0.18958,\"low\":0.18476,\"close\":0.1855,\"volume\":854452.3424677192,\"close_time\":1508479192400,\"vwap\":0.18584422259241026,\"ema1\":0.18923694397020194,\"sma2\":0.20478850000000007,\"rsi_avg_gain\":0.0015287606997669027,\"rsi_avg_loss\":0.0017329099193955381,\"rsi\":47},{\"period_id\":\"120m209509\",\"size\":\"120m\",\"time\":1508464800000,\"open\":0.18316,\"high\":0.18462,\"low\":0.18193,\"close\":0.18462,\"volume\":229724.49574185,\"close_time\":1508471909974,\"vwap\":0.18580433639558863,\"ema1\":0.18949466424400896,\"sma2\":0.2053445,\"rsi_avg_gain\":0.0015786653689797419,\"rsi_avg_loss\":0.0018662106824259641,\"rsi\":46},{\"period_id\":\"120m209508\",\"size\":\"120m\",\"time\":1508457600000,\"open\":0.18186,\"high\":0.1832,\"low\":0.17975,\"close\":0.18316,\"volume\":430995.58608996,\"close_time\":1508464770516,\"vwap\":0.18581034508659158,\"ema1\":0.1898308479849751,\"sma2\":0.2058828333333334,\"rsi_avg_gain\":0.0015877934742858744,\"rsi_avg_loss\":0.0020097653503048842,\"rsi\":44},{\"period_id\":\"120m209507\",\"size\":\"120m\",\"time\":1508450400000,\"open\":0.18245,\"high\":0.18349,\"low\":0.18,\"close\":0.18236,\"volume\":266705.26839337003,\"close_time\":1508457396244,\"vwap\":0.18583548949799483,\"ema1\":0.19029090646669752,\"sma2\":0.20643350000000005,\"rsi_avg_gain\":0.001648392972307865,\"rsi_avg_loss\":0.0021643626849437215,\"rsi\":43},{\"period_id\":\"120m209506\",\"size\":\"120m\",\"time\":1508443200000,\"open\":0.18448,\"high\":0.1848,\"low\":0.18011,\"close\":0.1821,\"volume\":694507.9420249896,\"close_time\":1508450386343,\"vwap\":0.18586465792364032,\"ema1\":0.19083786553336632,\"sma2\":0.2070623333333334,\"rsi_avg_gain\":0.0017551924317161635,\"rsi_avg_loss\":0.002330852122247085,\"rsi\":43},{\"period_id\":\"120m209505\",\"size\":\"120m\",\"time\":1508436000000,\"open\":0.1825,\"high\":0.1855,\"low\":0.181,\"close\":0.18457,\"volume\":949255.9928773206,\"close_time\":1508443191375,\"vwap\":0.18595615816207295,\"ema1\":0.19144047694946054,\"sma2\":0.20762316666666672,\"rsi_avg_gain\":0.0018902072341558684,\"rsi_avg_loss\":0.0023201484393430144,\"rsi\":45},{\"period_id\":\"120m209504\",\"size\":\"120m\",\"time\":1508428800000,\"open\":0.191,\"high\":0.1944,\"low\":0.1821,\"close\":0.18245,\"volume\":2695444.7140950765,\"close_time\":1508435969412,\"vwap\":0.18611759115854323,\"ema1\":0.19191430294597506,\"sma2\":0.20817400000000008,\"rsi_avg_gain\":0.0018725308675524729,\"rsi_avg_loss\":0.0024986213962155538,\"rsi\":43},{\"period_id\":\"120m209503\",\"size\":\"120m\",\"time\":1508421600000,\"open\":0.17647,\"high\":0.195,\"low\":0.175,\"close\":0.192,\"volume\":3989608.8784541055,\"close_time\":1508428794391,\"vwap\":0.1857441067053881,\"ema1\":0.19256701349397334,\"sma2\":0.20857266666666677,\"rsi_avg_gain\":0.0020165717035180476,\"rsi_avg_loss\":0.0019562076574629037,\"rsi\":51},{\"period_id\":\"120m209502\",\"size\":\"120m\",\"time\":1508414400000,\"open\":0.1781,\"high\":0.17949,\"low\":0.1764,\"close\":0.17647,\"volume\":1041090.1481537899,\"close_time\":1508421587204,\"vwap\":0.17726236639580523,\"ema1\":0.19260611787286805,\"sma2\":0.20924816666666676,\"rsi_avg_gain\":0.0009770772191732807,\"rsi_avg_loss\":0.0021066851695754345,\"rsi\":32},{\"period_id\":\"120m209501\",\"size\":\"120m\",\"time\":1508407200000,\"open\":0.17791,\"high\":0.17965,\"low\":0.1752,\"close\":0.1781,\"volume\":1684302.6253727605,\"close_time\":1508414397667,\"vwap\":0.17894904971439018,\"ema1\":0.19371895358823826,\"sma2\":0.20992083333333342,\"rsi_avg_gain\":0.001052237005263533,\"rsi_avg_loss\":0.002143353259542774,\"rsi\":33},{\"period_id\":\"120m209500\",\"size\":\"120m\",\"time\":1508400000000,\"open\":0.17884,\"high\":0.18121,\"low\":0.17727,\"close\":0.17791,\"volume\":1148991.7105682401,\"close_time\":1508407195358,\"vwap\":0.17907573118226564,\"ema1\":0.19479612280122022,\"sma2\":0.21065433333333342,\"rsi_avg_gain\":0.0011185629287453435,\"rsi_avg_loss\":0.0023082265871999107,\"rsi\":33},{\"period_id\":\"120m209499\",\"size\":\"120m\",\"time\":1508392800000,\"open\":0.1826,\"high\":0.18468,\"low\":0.17801,\"close\":0.17884,\"volume\":1068540.03475697,\"close_time\":1508399998814,\"vwap\":0.17905956797791894,\"ema1\":0.1959606829944078,\"sma2\":0.21129866666666672,\"rsi_avg_gain\":0.0012046062309565239,\"rsi_avg_loss\":0.0024142440169845204,\"rsi\":33},{\"period_id\":\"120m209498\",\"size\":\"120m\",\"time\":1508385600000,\"open\":0.17834,\"high\":0.18343,\"low\":0.1763,\"close\":0.1815,\"volume\":1083815.3835733393,\"close_time\":1508392791657,\"vwap\":0.17897967214155575,\"ema1\":0.19714141975264282,\"sma2\":0.21190716666666673,\"rsi_avg_gain\":0.0012972682487224104,\"rsi_avg_loss\":0.0023953397105987147,\"rsi\":35},{\"period_id\":\"120m209497\",\"size\":\"120m\",\"time\":1508378400000,\"open\":0.1835,\"high\":0.18533,\"low\":0.17843,\"close\":0.17885,\"volume\":555617.9518499903,\"close_time\":1508385595765,\"vwap\":0.17891586547796862,\"ema1\":0.19822013835627336,\"sma2\":0.2126013333333334,\"rsi_avg_gain\":0.0011932119601625968,\"rsi_avg_loss\":0.0025795966114140006,\"rsi\":32},{\"period_id\":\"120m209496\",\"size\":\"120m\",\"time\":1508371200000,\"open\":0.18414,\"high\":0.18592,\"low\":0.18112,\"close\":0.18259,\"volume\":481808.72188413964,\"close_time\":1508378329705,\"vwap\":0.17888844886773878,\"ema1\":0.19955600996705083,\"sma2\":0.2132453333333334,\"rsi_avg_gain\":0.0012849974955597195,\"rsi_avg_loss\":0.0024903348122920013,\"rsi\":34},{\"period_id\":\"120m209495\",\"size\":\"120m\",\"time\":1508364000000,\"open\":0.185,\"high\":0.18809,\"low\":0.1836,\"close\":0.18515,\"volume\":1333017.9636087907,\"close_time\":1508371192259,\"vwap\":0.17884882806245428,\"ema1\":0.2007260796199509,\"sma2\":0.21378633333333338,\"rsi_avg_gain\":0.001383843456756621,\"rsi_avg_loss\":0.0024849759516990776,\"rsi\":36},{\"period_id\":\"120m209494\",\"size\":\"120m\",\"time\":1508356800000,\"open\":0.17963,\"high\":0.18522,\"low\":0.17531,\"close\":0.18507,\"volume\":2839118.2283753585,\"close_time\":1508363988420,\"vwap\":0.17831096375430514,\"ema1\":0.20180029200753372,\"sma2\":0.21429333333333342,\"rsi_avg_gain\":0.0014841391072763614,\"rsi_avg_loss\":0.002676127947983622,\"rsi\":36},{\"period_id\":\"120m209493\",\"size\":\"120m\",\"time\":1508349600000,\"open\":0.1817,\"high\":0.18195,\"low\":0.17057,\"close\":0.17963,\"volume\":4148635.5413661683,\"close_time\":1508356790881,\"vwap\":0.17712736248740218,\"ema1\":0.20295410524943258,\"sma2\":0.21491200000000005,\"rsi_avg_gain\":0.0011798421155283891,\"rsi_avg_loss\":0.002881983943982362,\"rsi\":29},{\"period_id\":\"120m209492\",\"size\":\"120m\",\"time\":1508342400000,\"open\":0.189,\"high\":0.18988,\"low\":0.18,\"close\":0.1805,\"volume\":2751641.340932761,\"close_time\":1508349586855,\"vwap\":0.1871638084610284,\"ema1\":0.20456266423215208,\"rsi_avg_gain\":0.0012705992013382651,\"rsi_avg_loss\":0.0030367519396733147,\"rsi\":29},{\"period_id\":\"120m209491\",\"size\":\"120m\",\"time\":1508335200000,\"open\":0.1888,\"high\":0.18988,\"low\":0.1853,\"close\":0.189,\"volume\":1497489.5640848696,\"close_time\":1508342398064,\"vwap\":0.190708162313669,\"ema1\":0.2062221583171281,\"rsi_avg_gain\":0.0013683376014412088,\"rsi_avg_loss\":0.0026165020888789534,\"rsi\":34},{\"period_id\":\"120m209490\",\"size\":\"120m\",\"time\":1508328000000,\"open\":0.193,\"high\":0.19561,\"low\":0.188,\"close\":0.188,\"volume\":1372659.4788467903,\"close_time\":1508335190916,\"vwap\":0.19177335440929305,\"ema1\":0.20740989337348176,\"rsi_avg_gain\":0.0013966712630905326,\"rsi_avg_loss\":0.002817771480331181,\"rsi\":33},{\"period_id\":\"120m209489\",\"size\":\"120m\",\"time\":1508320800000,\"open\":0.19372,\"high\":0.19788,\"low\":0.19,\"close\":0.19388,\"volume\":1368834.8061775295,\"close_time\":1508327989073,\"vwap\":0.19177837555223284,\"ema1\":0.20874850670958395,\"rsi_avg_gain\":0.0015041075140974967,\"rsi_avg_loss\":0.0025822154403566566,\"rsi\":37},{\"period_id\":\"120m209488\",\"size\":\"120m\",\"time\":1508313600000,\"open\":0.1895,\"high\":0.19372,\"low\":0.18551,\"close\":0.19372,\"volume\":1762878.7035395007,\"close_time\":1508320794514,\"vwap\":0.19108034064457816,\"ema1\":0.20977392096541733,\"rsi_avg_gain\":0.0016075003997973048,\"rsi_avg_loss\":0.002780847397307169,\"rsi\":37},{\"period_id\":\"120m209487\",\"size\":\"120m\",\"time\":1508306400000,\"open\":0.19807,\"high\":0.19897,\"low\":0.18551,\"close\":0.192,\"volume\":1783411.5423043596,\"close_time\":1508313540957,\"vwap\":0.1906648426868261,\"ema1\":0.21088108792854957,\"rsi_avg_gain\":0.0015988465843970977,\"rsi_avg_loss\":0.0029947587355615662,\"rsi\":35},{\"period_id\":\"120m209486\",\"size\":\"120m\",\"time\":1508299200000,\"open\":0.19455,\"high\":0.20078,\"low\":0.19428,\"close\":0.198,\"volume\":1296323.113122249,\"close_time\":1508306398847,\"vwap\":0.19193350645087937,\"ema1\":0.21218323192362196,\"rsi_avg_gain\":0.0017218347831968743,\"rsi_avg_loss\":0.0027635863306047634,\"rsi\":38},{\"period_id\":\"120m209485\",\"size\":\"120m\",\"time\":1508292000000,\"open\":0.19707,\"high\":0.19925,\"low\":0.193,\"close\":0.195,\"volume\":376664.22766547016,\"close_time\":1508299009432,\"vwap\":0.19176786402274995,\"ema1\":0.21316138584938898,\"rsi_avg_gain\":0.001623514381904326,\"rsi_avg_loss\":0.0029761698944974374,\"rsi\":35},{\"period_id\":\"120m209484\",\"size\":\"120m\",\"time\":1508284800000,\"open\":0.19449,\"high\":0.19978,\"low\":0.19075,\"close\":0.19942,\"volume\":743392.9868329304,\"close_time\":1508291986653,\"vwap\":0.19176086034853415,\"ema1\":0.21441389521831236,\"rsi_avg_gain\":0.0017484001035892743,\"rsi_avg_loss\":0.002865106040228011,\"rsi\":38},{\"period_id\":\"120m209483\",\"size\":\"120m\",\"time\":1508277600000,\"open\":0.191,\"high\":0.19466,\"low\":0.1888,\"close\":0.1945,\"volume\":2467112.42037417,\"close_time\":1508284788370,\"vwap\":0.19171181067402843,\"ema1\":0.21544795695750632,\"rsi_avg_gain\":0.0015044308807884506,\"rsi_avg_loss\":0.003085498812553243,\"rsi\":33},{\"period_id\":\"120m209482\",\"size\":\"120m\",\"time\":1508270400000,\"open\":0.2015,\"high\":0.20462,\"low\":0.18501,\"close\":0.1887,\"volume\":8168424.322204548,\"close_time\":1508277590165,\"vwap\":0.19179946195918166,\"ema1\":0.2168926436442309,\"rsi_avg_gain\":0.0011740024870029468,\"rsi_avg_loss\":0.003322844875057339,\"rsi\":26},{\"period_id\":\"120m209481\",\"size\":\"120m\",\"time\":1508263200000,\"open\":0.20795,\"high\":0.20948,\"low\":0.198,\"close\":0.2015,\"volume\":4465280.972445613,\"close_time\":1508270392738,\"vwap\":0.20172543580758773,\"ema1\":0.21883696389555715,\"rsi_avg_gain\":0.001264310370618558,\"rsi_avg_loss\":0.0025938329423694415,\"rsi\":33},{\"period_id\":\"120m209480\",\"size\":\"120m\",\"time\":1508256000000,\"open\":0.21216,\"high\":0.213,\"low\":0.2,\"close\":0.20795,\"volume\":4123265.899420519,\"close_time\":1508263196262,\"vwap\":0.20737250272265037,\"ema1\":0.22003261657800938,\"rsi_avg_gain\":0.0013615650145122934,\"rsi_avg_loss\":0.002297204707167092,\"rsi\":37},{\"period_id\":\"120m209479\",\"size\":\"120m\",\"time\":1508248800000,\"open\":0.21667,\"high\":0.2185,\"low\":0.21126,\"close\":0.21247,\"volume\":1350323.3272897,\"close_time\":1508255977182,\"vwap\":0.21482976653765612,\"ema1\":0.22086590047994106,\"rsi_avg_gain\":0.001466300784859393,\"rsi_avg_loss\":0.002126220453872253,\"rsi\":41},{\"period_id\":\"120m209478\",\"size\":\"120m\",\"time\":1508241600000,\"open\":0.21483,\"high\":0.2207,\"low\":0.2145,\"close\":0.21668,\"volume\":1476930.5860650714,\"close_time\":1508248766827,\"vwap\":0.21584289286507288,\"ema1\":0.22144492809924735,\"rsi_avg_gain\":0.0015790931529255001,\"rsi_avg_loss\":0.0019659297195547326,\"rsi\":45},{\"period_id\":\"120m209477\",\"size\":\"120m\",\"time\":1508234400000,\"open\":0.2214,\"high\":0.2214,\"low\":0.21483,\"close\":0.215,\"volume\":1546725.3390792508,\"close_time\":1508241589452,\"vwap\":0.21850720634280363,\"ema1\":0.22177354383022993,\"rsi_avg_gain\":0.001571331087765922,\"rsi_avg_loss\":0.002117155082597404,\"rsi\":43},{\"period_id\":\"120m209476\",\"size\":\"120m\",\"time\":1508227200000,\"open\":0.21815,\"high\":0.22399,\"low\":0.2162,\"close\":0.22156,\"volume\":1788883.6854261511,\"close_time\":1508234398358,\"vwap\":0.21875827316905083,\"ema1\":0.22224068478403888,\"rsi_avg_gain\":0.0016922027099017622,\"rsi_avg_loss\":0.001775397781258742,\"rsi\":49},{\"period_id\":\"120m209475\",\"size\":\"120m\",\"time\":1508220000000,\"open\":0.21901,\"high\":0.22099,\"low\":0.215,\"close\":0.21842,\"volume\":1724554.0755199182,\"close_time\":1508227139321,\"vwap\":0.21799061683204127,\"ema1\":0.22228762856224846,\"rsi_avg_gain\":0.0015808336875865127,\"rsi_avg_loss\":0.0019119668413555683,\"rsi\":45},{\"period_id\":\"120m209474\",\"size\":\"120m\",\"time\":1508212800000,\"open\":0.218,\"high\":0.22398,\"low\":0.218,\"close\":0.21845,\"volume\":604386.24432186,\"close_time\":1508219872202,\"vwap\":0.21806326704006362,\"ema1\":0.22255436156654146,\"rsi_avg_gain\":0.0017024362789393214,\"rsi_avg_loss\":0.0020567335214598426,\"rsi\":45},{\"period_id\":\"120m209473\",\"size\":\"120m\",\"time\":1508205600000,\"open\":0.22012,\"high\":0.22135,\"low\":0.218,\"close\":0.21835,\"volume\":278872.58491949004,\"close_time\":1508212763910,\"vwap\":0.21796404888501353,\"ema1\":0.22283742098492362,\"rsi_avg_gain\":0.0018257006080884986,\"rsi_avg_loss\":0.0022149437923413688,\"rsi\":45},{\"period_id\":\"120m209472\",\"size\":\"120m\",\"time\":1508198400000,\"open\":0.2172,\"high\":0.22462,\"low\":0.2165,\"close\":0.22,\"volume\":526781.0521477099,\"close_time\":1508204356283,\"vwap\":0.21794951716510766,\"ema1\":0.2231468982942287,\"rsi_avg_gain\":0.0019661391164029983,\"rsi_avg_loss\":0.0022584010071368577,\"rsi\":47},{\"period_id\":\"120m209471\",\"size\":\"120m\",\"time\":1508191200000,\"open\":0.215,\"high\":0.2193,\"low\":0.21384,\"close\":0.21789,\"volume\":1527821.7633719281,\"close_time\":1508198371974,\"vwap\":0.2178487153701828,\"ema1\":0.2233639257627962,\"rsi_avg_gain\":0.0019550728945878443,\"rsi_avg_loss\":0.0024321241615320004,\"rsi\":45},{\"period_id\":\"120m209470\",\"size\":\"120m\",\"time\":1508184000000,\"open\":0.21977,\"high\":0.22632,\"low\":0.215,\"close\":0.215,\"volume\":3312468.6553416625,\"close_time\":1508191198043,\"vwap\":0.21796116562477913,\"ema1\":0.22374143788436834,\"rsi_avg_gain\":0.0018831554249407554,\"rsi_avg_loss\":0.0026192106354960003,\"rsi\":42},{\"period_id\":\"120m209469\",\"size\":\"120m\",\"time\":1508176800000,\"open\":0.2322,\"high\":0.23534,\"low\":0.215,\"close\":0.2194,\"volume\":7587043.2554451395,\"close_time\":1508183998207,\"vwap\":0.22618813229858725,\"ema1\":0.2243442956694972,\"rsi_avg_gain\":0.0020280135345515826,\"rsi_avg_loss\":0.0024822268382264606,\"rsi\":45},{\"period_id\":\"120m209468\",\"size\":\"120m\",\"time\":1508169600000,\"open\":0.23909,\"high\":0.24,\"low\":0.22711,\"close\":0.2322,\"volume\":5271921.541000183,\"close_time\":1508176794364,\"vwap\":0.23583191849825036,\"ema1\":0.2246852815777384,\"rsi_avg_gain\":0.002184014575670935,\"rsi_avg_loss\":0.0016885519796284974,\"rsi\":56},{\"period_id\":\"120m209467\",\"size\":\"120m\",\"time\":1508162400000,\"open\":0.2485,\"high\":0.2485,\"low\":0.2386,\"close\":0.2386,\"volume\":4005236.0432454455,\"close_time\":1508169595100,\"vwap\":0.2414193340170332,\"ema1\":0.2241670251348238,\"rsi_avg_gain\":0.0023520156968763915,\"rsi_avg_loss\":0.0013261329011383803,\"rsi\":64},{\"period_id\":\"120m209466\",\"size\":\"120m\",\"time\":1508155200000,\"open\":0.2355,\"high\":0.2499,\"low\":0.235,\"close\":0.24766,\"volume\":5009323.550827344,\"close_time\":1508162398862,\"vwap\":0.24113781653384916,\"ema1\":0.2231716475579151,\"rsi_avg_gain\":0.0025329399812514986,\"rsi_avg_loss\":0.0007312200473797956,\"rsi\":78},{\"period_id\":\"120m209465\",\"size\":\"120m\",\"time\":1508148000000,\"open\":0.2334,\"high\":0.237,\"low\":0.23101,\"close\":0.2355,\"volume\":1623158.6642044901,\"close_time\":1508155184120,\"vwap\":0.23258377230103924,\"ema1\":0.22148279566535753,\"rsi_avg_gain\":0.0017923969028862292,\"rsi_avg_loss\":0.0007874677433320875,\"rsi\":69},{\"period_id\":\"120m209464\",\"size\":\"120m\",\"time\":1508140800000,\"open\":0.23496,\"high\":0.235,\"low\":0.224,\"close\":0.23346,\"volume\":2284854.99099831,\"close_time\":1508147985967,\"vwap\":0.23140032812046726,\"ema1\":0.2205160919181408,\"rsi_avg_gain\":0.0017733505108005556,\"rsi_avg_loss\":0.0008480421851268634,\"rsi\":68},{\"period_id\":\"120m209463\",\"size\":\"120m\",\"time\":1508133600000,\"open\":0.22176,\"high\":0.237,\"low\":0.22174,\"close\":0.23498,\"volume\":3742457.9514594693,\"close_time\":1508140777463,\"vwap\":0.2286182113638179,\"ema1\":0.21962340860215052,\"rsi_avg_gain\":0.0019097620885544443,\"rsi_avg_loss\":0.0007963531224443149,\"rsi\":71},{\"period_id\":\"120m209462\",\"size\":\"120m\",\"time\":1508126400000,\"open\":0.22,\"high\":0.225,\"low\":0.21921,\"close\":0.22178,\"volume\":491233.2354765498,\"close_time\":1508133596710,\"vwap\":0.22459888393626956,\"rsi_avg_gain\":0.0010412822492124796,\"rsi_avg_loss\":0.0008576110549400315,\"rsi\":55},{\"period_id\":\"120m209461\",\"size\":\"120m\",\"time\":1508119200000,\"open\":0.22154,\"high\":0.22179,\"low\":0.21931,\"close\":0.22,\"volume\":231878.15689234002,\"close_time\":1508126390334,\"vwap\":0.22464493410153136,\"rsi_avg_gain\":0.0009844578068442084,\"rsi_avg_loss\":0.0009235811360892647,\"rsi\":52},{\"period_id\":\"120m209460\",\"size\":\"120m\",\"time\":1508112000000,\"open\":0.22323,\"high\":0.22323,\"low\":0.2203,\"close\":0.22074,\"volume\":253917.69177766997,\"close_time\":1508119056912,\"vwap\":0.224683847180211,\"rsi_avg_gain\":0.0010601853304476091,\"rsi_avg_loss\":0.0009377027619422857,\"rsi\":53},{\"period_id\":\"120m209459\",\"size\":\"120m\",\"time\":1508104800000,\"open\":0.2238,\"high\":0.2241,\"low\":0.22,\"close\":0.223,\"volume\":679377.8068433397,\"close_time\":1508111891597,\"vwap\":0.22471139204494764,\"rsi_avg_gain\":0.0011417380481743484,\"rsi_avg_loss\":0.0008359875897839991,\"rsi\":58},{\"period_id\":\"120m209458\",\"size\":\"120m\",\"time\":1508097600000,\"open\":0.2235,\"high\":0.2241,\"low\":0.222,\"close\":0.22341,\"volume\":879567.2457431995,\"close_time\":1508104786549,\"vwap\":0.22483581201797373,\"rsi_avg_gain\":0.0012295640518800676,\"rsi_avg_loss\":0.0008687558659212304,\"rsi\":59},{\"period_id\":\"120m209457\",\"size\":\"120m\",\"time\":1508090400000,\"open\":0.22601,\"high\":0.2285,\"low\":0.2235,\"close\":0.22389,\"volume\":2245693.797248608,\"close_time\":1508097595388,\"vwap\":0.224916051245516,\"rsi_avg_gain\":0.0013241459020246881,\"rsi_avg_loss\":0.0008986601632997859,\"rsi\":60},{\"period_id\":\"120m209456\",\"size\":\"120m\",\"time\":1508083200000,\"open\":0.22045,\"high\":0.2269,\"low\":0.22011,\"close\":0.226,\"volume\":2726038.296152591,\"close_time\":1508090396748,\"vwap\":0.224388674507826,\"rsi_avg_gain\":0.0014260032791035102,\"rsi_avg_loss\":0.0008054801758613078,\"rsi\":64},{\"period_id\":\"120m209455\",\"size\":\"120m\",\"time\":1508076000000,\"open\":0.21396,\"high\":0.221,\"low\":0.21354,\"close\":0.22045,\"volume\":1708637.0210549808,\"close_time\":1508083195777,\"vwap\":0.21691781748599892,\"rsi_avg_gain\":0.0011087727621114727,\"rsi_avg_loss\":0.0008674401893891007,\"rsi\":56},{\"period_id\":\"120m209454\",\"size\":\"120m\",\"time\":1508068800000,\"open\":0.21396,\"high\":0.21672,\"low\":0.21275,\"close\":0.21392,\"volume\":435710.61404684,\"close_time\":1508075872850,\"vwap\":0.21564518282418196,\"rsi_avg_gain\":0.000691755282273893,\"rsi_avg_loss\":0.0009341663578036469,\"rsi\":43},{\"period_id\":\"120m209453\",\"size\":\"120m\",\"time\":1508061600000,\"open\":0.214,\"high\":0.2142,\"low\":0.21012,\"close\":0.2142,\"volume\":850332.3362540897,\"close_time\":1508068743727,\"vwap\":0.21569695450698292,\"rsi_avg_gain\":0.0007449672270641925,\"rsi_avg_loss\":0.0009844868468654657,\"rsi\":43},{\"period_id\":\"120m209452\",\"size\":\"120m\",\"time\":1508054400000,\"open\":0.21693,\"high\":0.2188,\"low\":0.214,\"close\":0.214,\"volume\":607334.2370174906,\"close_time\":1508061599703,\"vwap\":0.21641235921183133,\"rsi_avg_gain\":0.0007868877829922069,\"rsi_avg_loss\":0.0010602166043166554,\"rsi\":43},{\"period_id\":\"120m209451\",\"size\":\"120m\",\"time\":1508047200000,\"open\":0.21579,\"high\":0.21797,\"low\":0.21503,\"close\":0.21696,\"volume\":394691.07658418996,\"close_time\":1508054359089,\"vwap\":0.21651449029006495,\"rsi_avg_gain\":0.0008474176124531459,\"rsi_avg_loss\":0.0009140794200333221,\"rsi\":48},{\"period_id\":\"120m209450\",\"size\":\"120m\",\"time\":1508040000000,\"open\":0.21822,\"high\":0.21883,\"low\":0.21504,\"close\":0.2158,\"volume\":171068.74766762997,\"close_time\":1508047123237,\"vwap\":0.21651061994146562,\"rsi_avg_gain\":0.0008233728134110806,\"rsi_avg_loss\":0.0009843932215743468,\"rsi\":46},{\"period_id\":\"120m209449\",\"size\":\"120m\",\"time\":1508032800000,\"open\":0.21515,\"high\":0.21987,\"low\":0.215,\"close\":0.21798,\"volume\":220571.05850644,\"close_time\":1508039650535,\"vwap\":0.21651320304654115,\"rsi_avg_gain\":0.0008867091836734714,\"rsi_avg_loss\":0.000892423469387757,\"rsi\":50},{\"period_id\":\"120m209448\",\"size\":\"120m\",\"time\":1508025600000,\"open\":0.21536,\"high\":0.22149,\"low\":0.21386,\"close\":0.21546,\"volume\":707964.3870707101,\"close_time\":1508032798119,\"vwap\":0.21650390032466355,\"rsi_avg_gain\":0.000761071428571431,\"rsi_avg_loss\":0.0009610714285714307,\"rsi\":44},{\"period_id\":\"120m209447\",\"size\":\"120m\",\"time\":1508018400000,\"open\":0.21973,\"high\":0.2205,\"low\":0.2154,\"close\":0.2154,\"volume\":838005.9117413496,\"close_time\":1508025538461,\"vwap\":0.2164420876813041,\"rsi_avg_gain\":0.0008150000000000022,\"rsi_avg_loss\":0.0010350000000000023,\"rsi\":44},{\"period_id\":\"120m209446\",\"size\":\"120m\",\"time\":1508011200000,\"open\":0.21822,\"high\":0.22,\"low\":0.21704,\"close\":0.21983,\"volume\":575111.9319556504,\"close_time\":1508018298035,\"vwap\":0.21639362339406273},{\"period_id\":\"120m209445\",\"size\":\"120m\",\"time\":1508004000000,\"open\":0.2155,\"high\":0.22,\"low\":0.21526,\"close\":0.21822,\"volume\":489996.45826562005,\"close_time\":1508010985727,\"vwap\":0.2157026313726763},{\"period_id\":\"120m209444\",\"size\":\"120m\",\"time\":1507996800000,\"open\":0.216,\"high\":0.21743,\"low\":0.212,\"close\":0.2155,\"volume\":1021218.8540847708,\"close_time\":1508003893718,\"vwap\":0.21517927310467588},{\"period_id\":\"120m209443\",\"size\":\"120m\",\"time\":1507989600000,\"open\":0.21681,\"high\":0.21797,\"low\":0.215,\"close\":0.21592,\"volume\":713933.1875201706,\"close_time\":1507996716287,\"vwap\":0.21576159824119892},{\"period_id\":\"120m209442\",\"size\":\"120m\",\"time\":1507982400000,\"open\":0.21846,\"high\":0.21995,\"low\":0.2161,\"close\":0.217,\"volume\":510351.39443468006,\"close_time\":1507989592659},{\"period_id\":\"120m209441\",\"size\":\"120m\",\"time\":1507975200000,\"open\":0.2218,\"high\":0.2228,\"low\":0.2158,\"close\":0.21846,\"volume\":713020.0319770401,\"close_time\":1507982378829},{\"period_id\":\"120m209440\",\"size\":\"120m\",\"time\":1507968000000,\"open\":0.2176,\"high\":0.22378,\"low\":0.21651,\"close\":0.22192,\"volume\":1198865.3822558406,\"close_time\":1507975185432},{\"period_id\":\"120m209439\",\"size\":\"120m\",\"time\":1507960800000,\"open\":0.218,\"high\":0.21895,\"low\":0.215,\"close\":0.2175,\"volume\":647635.7473931103,\"close_time\":1507967986898},{\"period_id\":\"120m209438\",\"size\":\"120m\",\"time\":1507953600000,\"open\":0.21942,\"high\":0.22366,\"low\":0.21801,\"close\":0.21801,\"volume\":153208.56479699002,\"close_time\":1507960794466},{\"period_id\":\"120m209437\",\"size\":\"120m\",\"time\":1507946400000,\"open\":0.22138,\"high\":0.2238,\"low\":0.21948,\"close\":0.2205,\"volume\":371646.62039033975,\"close_time\":1507953503013},{\"period_id\":\"120m209436\",\"size\":\"120m\",\"time\":1507939200000,\"open\":0.2183,\"high\":0.22139,\"low\":0.21761,\"close\":0.22123,\"volume\":335889.88883946976,\"close_time\":1507946329960},{\"period_id\":\"120m209435\",\"size\":\"120m\",\"time\":1507932000000,\"open\":0.21462,\"high\":0.219,\"low\":0.2146,\"close\":0.21761,\"volume\":342086.37947635003,\"close_time\":1507939166270},{\"period_id\":\"120m209434\",\"size\":\"120m\",\"time\":1507924800000,\"open\":0.217,\"high\":0.21762,\"low\":0.211,\"close\":0.21549,\"volume\":806460.19144003,\"close_time\":1507931994857}];\nvar trades = [{\"time\":1508841202273,\"execution_time\":2008471,\"slippage\":0.0004500000000000853,\"type\":\"buy\",\"size\":\"3915.25423729\",\"fee\":6.264406779664,\"price\":\"0.17707965\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1508946687470,\"execution_time\":6691935,\"slippage\":0.00045020259116602474,\"type\":\"sell\",\"size\":\"3869.89993220\",\"fee\":1.0768953200609739,\"price\":\"0.17392170\",\"order_type\":\"maker\"},{\"time\":1509308060275,\"execution_time\":8075988,\"slippage\":0.00045000000000006276,\"type\":\"buy\",\"size\":\"3929.14690891\",\"fee\":6.213957192351999,\"price\":\"0.17107695\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509567002437,\"execution_time\":101484524,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3877.43319448\",\"fee\":1.0851927378718953,\"price\":\"0.17492125\",\"order_type\":\"maker\"},{\"time\":1509671719179,\"execution_time\":4548785,\"slippage\":0.00045000000000006276,\"type\":\"buy\",\"size\":\"4002.93225148\",\"fee\":5.9847118251680005,\"price\":\"0.17107695\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1509877509431,\"execution_time\":44728427,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3735.88990905\",\"fee\":1.0455784524054599,\"price\":\"0.17492125\",\"order_type\":\"maker\"},{\"time\":1509971478859,\"execution_time\":1888360,\"slippage\":0.0004500000000000853,\"type\":\"buy\",\"size\":\"3937.36212003\",\"fee\":6.264387372992001,\"price\":\"0.17707965\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1510307860202,\"execution_time\":7149662,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3907.24684264\",\"fee\":1.1622734018724978,\"price\":\"0.18591630\",\"order_type\":\"maker\"},{\"time\":1510627469334,\"execution_time\":2685088,\"slippage\":0.00044999999999991087,\"type\":\"buy\",\"size\":\"4187.02590138\",\"fee\":6.660960062528,\"price\":\"0.17407830\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511530843649,\"execution_time\":13262965,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4153.94715665\",\"fee\":1.3419515709548167,\"price\":\"0.20190910\",\"order_type\":\"maker\"},{\"time\":1511623783181,\"execution_time\":5389376,\"slippage\":0.0004500000000000276,\"type\":\"buy\",\"size\":\"4138.36544612\",\"fee\":6.49343525072,\"price\":\"0.20309135\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511737907855,\"execution_time\":11559159,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4052.92403205\",\"fee\":1.3222791105792926,\"price\":\"0.20390820\",\"order_type\":\"maker\"},{\"time\":1511839450454,\"execution_time\":26651481,\"slippage\":0.00045000000000003436,\"type\":\"buy\",\"size\":\"4102.22561089\",\"fee\":6.317042255264001,\"price\":\"0.20509225\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1511985716807,\"execution_time\":117843,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3942.94526393\",\"fee\":1.2611747003395941,\"price\":\"0.19991000\",\"order_type\":\"maker\"},{\"time\":1512145199428,\"execution_time\":1213697,\"slippage\":0.0004500000000000411,\"type\":\"buy\",\"size\":\"3953.72767996\",\"fee\":6.2654287445120005,\"price\":\"0.20709315\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512420180443,\"execution_time\":24235616,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"3909.96071385\",\"fee\":1.300649369852774,\"price\":\"0.20790640\",\"order_type\":\"maker\"},{\"time\":1512699360458,\"execution_time\":995610,\"slippage\":0.0004500000000000276,\"type\":\"buy\",\"size\":\"4034.80650894\",\"fee\":6.585453035696,\"price\":\"0.20309135\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512851444171,\"execution_time\":1864903,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4107.32907447\",\"fee\":1.307185079201458,\"price\":\"0.19891045\",\"order_type\":\"maker\"},{\"time\":1512869814441,\"execution_time\":5823423,\"slippage\":0.00045000000000000985,\"type\":\"buy\",\"size\":\"4035.58629875\",\"fee\":6.556275586896,\"price\":\"0.19808910\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"time\":1512881477014,\"execution_time\":3087977,\"slippage\":0.0004502025911660247,\"type\":\"sell\",\"size\":\"4091.27809730\",\"fee\":1.256275053206389,\"price\":\"0.19191360\",\"order_type\":\"maker\"},{\"time\":1512988276878,\"execution_time\":1877900,\"slippage\":0.00045000000000001706,\"type\":\"buy\",\"size\":\"3857.67699803\",\"fee\":6.172283196848,\"price\":\"0.20009000\",\"order_type\":\"maker\",\"cancel_after\":\"day\"},{\"price\":0.3935,\"size\":\"3892.83075622\",\"type\":\"sell\",\"time\":1513173600000}];\n\nwithData(data, trades)\n  </script>\n  <pre><code>{\n  \"asset_capital\": 0,\n  \"avg_slippage_pct\": 0.045,\n  \"buy_pct\": 99,\n  \"buy_stop_pct\": 0,\n  \"currency_capital\": 700,\n  \"days\": 60,\n  \"emalen1\": 30,\n  \"filename\": \"simulations/vwapmax5000.html\",\n  \"markdown_buy_pct\": 0.5,\n  \"markup_sell_pct\": 0.5,\n  \"max_sell_loss_pct\": 25,\n  \"max_slippage_pct\": \"100\",\n  \"min_periods\": 1,\n  \"mode\": \"sim\",\n  \"order_adjust_time\": 5000,\n  \"order_type\": \"maker\",\n  \"period\": \"120m\",\n  \"profit_stop_enable_pct\": 0,\n  \"profit_stop_pct\": 1,\n  \"rsi_periods\": 14,\n  \"selector\": \"kraken.XXRP-ZEUR\",\n  \"sell_pct\": 99,\n  \"sell_stop_pct\": 0,\n  \"show_options\": true,\n  \"smalen1\": 108,\n  \"smalen2\": 60,\n  \"start\": 1507939200000,\n  \"stats\": false,\n  \"strategy\": \"crossover_vwap\",\n  \"verbose\": false,\n  \"vwap_length\": 10,\n  \"vwap_max\": 5000\n}\nend balance: 1539.27499850 (119.90%)\nbuy hold: 1261.79569400 (80.26%)\nvs. buy hold: 21.99%\n22 trades over 62 days (avg 0.35 trades/day)\nwin/loss: 7/4\nerror rate: 36.36%</pre></code>\n</body>\n</html>"
  },
  {
    "path": "extensions/strategies/crossover_vwap/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , vwap = require('../../../lib/vwap')\n  , ema = require('../../../lib/ema')\n  , sma = require('../../../lib/sma')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'crossover_vwap',\n  description: 'Estimate trends by comparing \"Volume Weighted Average Price\" to the \"Exponential Moving Average\".',\n\n  getOptions: function () {\n    // default start is 30, 108, 60.\n    // these are relative to period length.\n\n    /*\n        Positive simulations during testing:\n\n        zenbot sim kraken.XXRP-ZEUR --period=\"120m\" --strategy=crossover_vwap --currency_capital=700 --asset_capital=0 --max_slippage_pct=100 --days=60 --avg_slippage_pct=0.045 --vwap_max=8000 --markup_sell_pct=0.5 --markdown_buy_pct=0.5 --emalen1=50\n        zenbot sim kraken.XXRP-ZEUR --period=\"120m\" --strategy=crossover_vwap --currency_capital=700 --asset_capital=0 --max_slippage_pct=100 --days=60 --avg_slippage_pct=0.045 --vwap_max=8000 --markup_sell_pct=0.5 --markdown_buy_pct=0.5 --emalen1=30\n      */\n    this.option('period', 'period length, same as --period_length', String, '120m')\n    this.option('period_length', 'period length, same as --period', String, '120m')\n    this.option('emalen1', 'Length of EMA 1', Number, 30 )//green\n    this.option('smalen1', 'Length of SMA 1', Number, 108 )//red\n    this.option('smalen2', 'Length of SMA 2', Number, 60 )//purple\n    this.option('vwap_length', 'Min periods for vwap to start', Number, 10 )//gold\n    this.option('vwap_max', 'Max history for vwap. Increasing this makes it more sensitive to short-term changes', Number, 8000)//gold\n  },\n\n\n  calculate: function () {\n\n  },\n\n  onPeriod: function (s, cb) {\n    vwap(s, 'vwap', s.options.vwap_length, s.options.vwap_max)//gold\n\n    ema(s, 'ema1', s.options.emalen1)//green\n    sma(s, 'sma1', s.options.smalen1, 'high')//red\n    sma(s, 'sma2', s.options.smalen2)//purple\n    let emagreen = s.period.ema1,\n      smared = s.period.sma1,\n      smapurple= s.period.sma2,\n      vwapgold = s.period.vwap\n\n      // helper functions\n    var trendUp = function(s){\n        if (s.trend !== 'up') {\n          s.acted_on_trend = false\n        }\n        s.trend = 'up'\n        s.signal = !s.acted_on_trend ? 'buy' : null\n      },\n      trendDown = function(s){\n        if (s.trend !== 'down') {\n          s.acted_on_trend = false\n        }\n        s.trend = 'down'\n        s.signal = !s.acted_on_trend ? 'sell' : null\n      }\n\n    if(emagreen && smared && smapurple && s.period.vwap){\n      if(vwapgold > emagreen) trendUp(s)\n      else trendDown(s)\n    }\n    cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    let emagreen = s.period.ema1,\n      vwapgold = s.period.vwap\n\n    if (vwapgold && emagreen) {\n      var color = 'green'\n      if(vwapgold > emagreen) color = 'red'\n\n      cols.push(z(6, n(vwapgold).format('0.00000'), '')['yellow'] + ' ')\n      cols.push(z(6, n(emagreen).format('0.00000'), '')[color] + ' ')\n    }\n    else {\n      cols.push('                ')\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 400, 'm'),\n    min_periods: Phenotypes.Range(1, 200),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    emalen1: Phenotypes.Range(1, 300),\n    smalen1: Phenotypes.Range(1, 300),\n    smalen2: Phenotypes.Range(1, 300),\n    vwap_length: Phenotypes.Range(1, 300),\n    vwap_max: Phenotypes.RangeFactor(0, 10000, 10)//0 disables this max cap. Test in increments of 10\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/dema/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , rsi = require('../../../lib/rsi')\n  , ema = require('../../../lib/ema')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'dema',\n  description: 'Buy when (short ema > long ema) and sell when (short ema < long ema).',\n\n  getOptions: function () {\n    this.option('period', 'period length', String, '1h')\n    this.option('period_length', 'period length, same as --period', String, '1h')\n    this.option('min_periods', 'min. number of history periods', Number, 21)\n    this.option('ema_short_period', 'number of periods for the shorter EMA', Number, 10)\n    this.option('ema_long_period', 'number of periods for the longer EMA', Number, 21)\n    this.option('up_trend_threshold', 'threshold to trigger a buy signal', Number, 0)\n    this.option('down_trend_threshold', 'threshold to trigger a sold signal', Number, 0)\n    this.option('overbought_rsi_periods', 'number of periods for overbought RSI', Number, 9)\n    this.option('overbought_rsi', 'sold when RSI exceeds this value', Number, 80)\n    this.option('noise_level_pct', 'do not trade when short ema is with this % of last short ema', Number, 0)\n  },\n\n  calculate: function (s) {\n    if (s.options.overbought_rsi) {\n      // sync RSI display with overbought RSI periods\n      s.options.rsi_periods = s.options.overbought_rsi_periods\n      rsi(s, 'overbought_rsi', s.options.overbought_rsi_periods)\n      if (!s.in_preroll && s.period.overbought_rsi >= s.options.overbought_rsi && !s.overbought) {\n        s.overbought = true\n        if (s.options.mode === 'sim' && s.options.verbose) console.log(('\\noverbought at ' + s.period.overbought_rsi + ' RSI, preparing to sold\\n').cyan)\n      }\n    }\n\n    // compture DEMA\n    ema(s, 'ema_short', s.options.ema_short_period)\n    ema(s, 'ema_long', s.options.ema_long_period)\n    if (s.period.ema_short && s.period.ema_long) {\n      s.period.dema_histogram = (s.period.ema_short - s.period.ema_long)\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (!s.in_preroll && typeof s.period.overbought_rsi === 'number') {\n      if (s.overbought) {\n        s.overbought = false\n        s.trend = 'overbought'\n        s.signal = 'sold'\n        return cb()\n      }\n    }\n\n    if (typeof s.period.dema_histogram === 'number' && typeof s.lookback[0].dema_histogram === 'number') {\n      if (s.options.noise_level_pct != 0 && (s.period.ema_short / s.lookback[0].ema_short * 100 < s.options.noise_level_pct)) {\n        s.signal = null\n      } else if ((s.period.dema_histogram - s.options.up_trend_threshold) > 0 && (s.lookback[0].dema_histogram - s.options.up_trend_threshold) <= 0) {\n        s.signal = 'buy'\n      } else if ((s.period.dema_histogram + s.options.down_trend_threshold) < 0 && (s.lookback[0].dema_histogram + s.options.down_trend_threshold) >= 0) {\n        s.signal = 'sell'\n      } else {\n        s.signal = null  // hold\n      }\n    }\n    cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    if (typeof s.period.dema_histogram === 'number') {\n      var color = 'grey'\n      if (s.period.dema_histogram > 0) {\n        color = 'green'\n      }\n      else if (s.period.dema_histogram < 0) {\n        color = 'red'\n      }\n      cols.push(z(8, n(s.period.dema_histogram).format('+00.0000'), ' ')[color])\n      cols.push(z(8, n(s.period.overbought_rsi).format('00'), ' ').cyan)\n    }\n    else {\n      cols.push('         ')\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 200),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    ema_short_period: Phenotypes.Range(1, 20),\n    ema_long_period: Phenotypes.Range(20, 100),\n    up_trend_threshold: Phenotypes.Range(0, 50),\n    down_trend_threshold: Phenotypes.Range(0, 50),\n    overbought_rsi_periods: Phenotypes.Range(1, 50),\n    overbought_rsi: Phenotypes.Range(20, 100)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/ehlers_ft/strategy.js",
    "content": "/*\n\nAuthor: Travis\n\nAdapted from: https://www.tradingview.com/script/Q0eQz7ll-Fisher-Transform-Indicator-by-Ehlers-Strategy/\n\nDescription: Market prices do not have a Gaussian probability density function \nas many traders think. Their probability curve is not bell-shaped. \nBut trader can create a nearly Gaussian PDF for prices by normalizing \nthem or creating a normalized indicator such as the relative strength \nindex and applying the Fisher transform . Such a transformed output \ncreates the peak swings as relatively rare events. \nFisher transform formula is: y = 0.5 * ln ((1+x)/(1-x)) \nThe sharp turning points of these peak swings clearly and unambiguously \nidentify price reversals in a timely manner. \n\nAuthor Notes: \npos = 1 indicates the fisher transform value for the period was ABOVE the previous period\npos = -1 indicates the fisher transform value for the period was BELOW the previous period\npos_length = 1 does default behavior from the original tradingview strategy.  \nIf pos_length > 1, make sure pos_length number of previous periods have opposite pos values. \n\nSample sim command:\nzenbot sim gdax.LTC-USD --strategy ehlers_ft --period_length 15m --days 3 --order_type maker --fish_pct_change 0 --length 10 --pos_length 1 --src HAohlc4 --min_periods 20 \n\nIf you have found this strategy useful and would like to show your appreciation, please consider donating \nETH, BTC, or LTC to the developer, Travis.  \nETH: 0xdA963A127BeCB08227583d11f912F400D5347060 \nBTC: 3KKHdBJpEGxghxGazoE4X7ihyr2q6nHUvW\nLTC: MSePEwGJF8W4wvGCbJBqMtatwdBGYhT8FM\n\nPlease direct feedback concerning this strategy to the zenbot strategies discord channel @Travis: \nhttps://discordapp.com/channels/316120967200112642/383023593942155274\n\n*/\n\nconst z = require('zero-fill'),\n  n = require('numbro'),\n  Phenotypes = require('../../../lib/phenotype'),\n  tv = require('../../../lib/helpers')\n\nmodule.exports = {\n  name: 'ehlers_fisher_transform',\n  description: '',\n\n  getOptions: function() {\n    this.option('period', 'period length, same as --period_length', String, '30m')\n    this.option('period_length', 'period length, same as --period', String, '30m')\n    this.option('fish_pct_change', 'percent change of fisher transform for reversal', Number, 0)\n    this.option('length', 'number of past periods to use including current', Number, 10)\n    this.option('src', 'use period.close if not defined. can be hl2, hlc3, ohlc4, HAhlc3, HAohlc4', String, 'hl2')\n    this.option('pos_length', 'check this number of previous periods have opposing pos value', Number, 1)\n  },\n\n  calculate: function() {},\n\n  onPeriod: function(s, cb) {\n    // console.log('')\n    if (!s.eft) {\n      s.eft = {\n        n1: [],\n        fish: [],\n        pos: [],\n      }\n      s.eft_max_elements = Math.max(s.options.pos_length, 3)\n    }\n\n    s.period.src = tv.src(s.options.src, s.period, s.lookback[0])\n\n    let lbks = s.lookback.slice(0, s.options.length - 1).map(p => p.src),\n      maxH = Math.max(s.period.src, ...lbks),\n      minL = Math.min(s.period.src, ...lbks)\n\n    s.eft.n1.unshift(0.33 * 2 * ((s.period.src - minL) / (maxH - minL) - 0.5) + 0.67 * tv.nz(s.eft.n1[0]))\n\n    let n2 = tv.iff(s.eft.n1[0] > 0.99, 0.999, tv.iff(s.eft.n1[0] < -0.99, -0.999, s.eft.n1[0]))\n\n    s.eft.fish.unshift(0.5 * Math.log((1 + n2) / (1 - n2)) + 0.5 * tv.nz(s.eft.fish[0]))\n\n    s.eft.pos.unshift(\n      tv.iff(s.eft.fish[0] > tv.nz(s.eft.fish[1] * (1 + s.options.fish_pct_change / 100)), 1,\n        tv.iff(s.eft.fish[0] < tv.nz(s.eft.fish[1] * (1 - s.options.fish_pct_change / 100)), -1, tv.nz(s.eft.pos[0], 0))))\n\n    if (!s.in_preroll) {\n      if (s.options.pos_length === 1) {\n        if (s.eft.pos[0] === 1) {\n          s.signal = 'buy'\n        } else if (s.eft.pos[0] === -1) {\n          s.signal = 'sell'\n        } else {\n          s.signal = null\n        }\n      } else {\n\n        let pos = s.eft.pos.slice(1, s.options.pos_length + 1),\n          posUp = s.eft.pos[0] === -1 && pos.every(pos => pos === 1),\n          posDn = s.eft.pos[0] === 1 && pos.every(pos => pos === -1)\n\n        if (posUp) {\n          s.signal = 'buy'\n        } else if (posDn) {\n          s.signal = 'sell'\n        } else\n          s.signal = null\n      }\n    }\n\n    // cleanup\n    if (s.eft.pos.length > s.eft_max_elements)\n      Object.keys(s.eft).forEach(k => {\n        s.eft[k].pop()\n      })\n\n    cb()\n  },\n\n  onReport: function(s) {\n    var cols = []\n    cols.push(z(10, 'F[' + n(s.eft.fish[0]).format('#.000') + ']', ''))\n    cols.push(z(10, ' P[' + n(s.eft.pos[0]).format('##') + ']', ''))\n    return cols\n  },\n\n  phenotypes: {\n\n    //General Options\n    period_length: Phenotypes.RangePeriod(5, 300, 'm'),\n    min_periods: Phenotypes.Range(10, 40),\n    markdown_buy_pct: Phenotypes.RangeFloat(0, 10),\n    markup_sell_pct: Phenotypes.RangeFloat(0, 10),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range(1, 20),\n    profit_stop_pct: Phenotypes.Range(1, 10),\n\n    //Strategy Specific\n    length: Phenotypes.Range(1, 30),\n    fish_pct_change: Phenotypes.Range(-25, 75),\n    pos_length: Phenotypes.Range(1, 6),\n    src: Phenotypes.ListOption(['close', 'hl2', 'hlc3', 'ohlc4', 'HAhlc3', 'HAohlc4'])\n  }\n}\n\n/*\n\n// Original pinescript\n// From https://www.tradingview.com/script/Q0eQz7ll-Fisher-Transform-Indicator-by-Ehlers-Strategy/\n\nstudy(title=\"Fisher Transform Indicator by Ehlers Strategy\", shorttitle=\"Fisher Transform Indicator by Ehlers\")\nLength = input(10, minval=1)\nxHL2 = hl2\nxMaxH = highest(xHL2, Length)\nxMinL = lowest(xHL2,Length)\nnValue1 = 0.33 * 2 * ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5) + 0.67 * nz(nValue1[1])\nnValue2 = iff(nValue1 > .99,  .999,\n\t        iff(nValue1 < -.99, -.999, nValue1))\nnFish = 0.5 * log((1 + nValue2) / (1 - nValue2)) + 0.5 * nz(nFish[1])\npos =\tiff(nFish > nz(nFish[1]), 1,\n\t    iff(nFish < nz(nFish[1]), -1, nz(pos[1], 0))) \nbarcolor(pos == -1 ? red: pos == 1 ? green : blue )\nplot(nFish, color=green, title=\"Fisher\")\nplot(nz(nFish[1]), color=red, title=\"Trigger\")\n\n*/\n"
  },
  {
    "path": "extensions/strategies/ehlers_mama/README.md",
    "content": "                         ======= Ehlers MESA Adaptive Moving Average =======\n\nDeveloped by John Ehlers, the MESA Adaptive Moving Average is a technical trend-following indicator which, \naccording to its creator, adapts to price movement “based on the rate change of phase as measured by the \nHilbert Transform Discriminator”. This method of adaptation features a fast and a slow moving average so \nthat the composite moving average swiftly responds to price changes and holds the average value until the \nnext bar’s close. Ehlers states that because the average’s fallback is slow, you can create trading systems \nwith almost whipsaw-free trades.\n\nBasically the indicator looks like two moving averages, but instead of curving around the price action, \nthe MESA Adaptive MA moves in a staircase manner as the price ratchets. It produces two outputs, MAMA and FAMA. \nFAMA (Following Adaptive Moving Average) is a result of MAMA being applied to the first MAMA line. The FAMA \nis synchronized in time with MAMA, but its vertical movement comes with a lag. Thus, the two don’t cross unless \na major change in market direction occurs, resulting in a moving average crossover system which is “virtually \nfree of whipsaw trades”, according to Ehlers.\n\nIf you appreciate the work and the man hours that went into creating this strategy, please consider giving back.\n\nLoneWolf345 ETH = 0xa42f6d21f1e52f7fbaeaa0f58d1cc4b9a58f2dcc , BTC = 15L8QstCQG4ho6139hVaqLxkAzcjnqBbf6\nTravis      ETH = 0xdA963A127BeCB08227583d11f912F400D5347060 , BTC = 3KKHdBJpEGxghxGazoE4X7ihyr2q6nHUvW\n\n\n\n\n\n\n\n\n\n\n                               ===== Trading View Script =====\n\n\n//@version=2\nstrategy(\"Ehlers MESA Adaptive Moving Average\", shorttitle=\"Ehlers_MAMA\", overlay=true, precision=3, initial_capital=1000)\n\n// === INPUTS\n\nsrc=input(hlc3, title=\"Source\")\nfl=input(.5, title=\"Fast Limit\", step=0.5)\nsl=input(.05, title=\"Slow Limit\", step=0.05)\npa=input(true, title=\"Mark crossover points\")\nfr=input(true, title=\"Fill MAMA/FAMA Region\")\nebc=input(false, title=\"Enable Bar colors\")\n// === /INPUTS\n\n\n\n// === FUNCTIONS\n\npi = 3.1415926\nsp = (4*src + 3*src[1] + 2*src[2] + src[3]) / 10.0\ndt = (.0962*sp + .5769*nz(sp[2]) - .5769*nz(sp[4])- .0962*nz(sp[6]))*(.075*nz(p[1]) + .54)\nq1 = (.0962*dt + .5769*nz(dt[2]) - .5769*nz(dt[4])- .0962*nz(dt[6]))*(.075*nz(p[1]) + .54)\ni1 = nz(dt[3])\njI = (.0962*i1 + .5769*nz(i1[2]) - .5769*nz(i1[4])- .0962*nz(i1[6]))*(.075*nz(p[1]) + .54)\njq = (.0962*q1 + .5769*nz(q1[2]) - .5769*nz(q1[4])- .0962*nz(q1[6]))*(.075*nz(p[1]) + .54)\ni2_ = i1 - jq\nq2_ = q1 + jI\ni2 = .2*i2_ + .8*nz(i2[1])\nq2 = .2*q2_ + .8*nz(q2[1])\nre_ = i2*nz(i2[1]) + q2*nz(q2[1])\nim_ = i2*nz(q2[1]) - q2*nz(i2[1])\nre = .2*re_ + .8*nz(re[1])\nim = .2*im_ + .8*nz(im[1])\np1 = iff(im!=0 and re!=0, 360/atan(im/re), nz(p[1]))\np2 = iff(p1 > 1.5*nz(p1[1]), 1.5*nz(p1[1]), iff(p1 < 0.67*nz(p1[1]), 0.67*nz(p1[1]), p1))\np3 = iff(p2<6, 6, iff (p2 > 50, 50, p2))\np = .2*p3 + .8*nz(p3[1])\nspp = .33*p + .67*nz(spp[1])\nphase = atan(q1 / i1)\ndphase_ = nz(phase[1]) - phase\ndphase = iff(dphase_< 1, 1, dphase_)\nalpha_ = fl / dphase\nalpha = iff(alpha_ < sl, sl, iff(alpha_ > fl, fl, alpha_))\nmama = alpha*src + (1 - alpha)*nz(mama[1])\nfama = .5*alpha*mama + (1 - .5*alpha)*nz(fama[1])\n\nplotarrow(pa?(cross(mama, fama)?mama<fama?-1:1:na):na, title=\"Crossover Markers\")\nduml=plot(fr?(mama>fama?mama:fama):na, style=circles, color=gray, linewidth=0, title=\"DummyL\")\nmamal=plot(mama, title=\"MAMA\", color=red, linewidth=0)\nfamal=plot(fama, title=\"FAMA\", color=green, linewidth=0)\nfill(duml, mamal, red, transp=50, title=\"NegativeFill\")\nfill(duml, famal, green, transp=50, title=\"PositiveFill\")\nbc=mama>fama?lime:red\n\n// === Upgraded Conditions Framework ===\n\n////////////////////////////////////////////////////////////////////////////\n\nlong_entry = cross(mama, fama)?mama>fama?true:false:false\n\nshort_entry = cross(mama, fama)?mama<fama?true:false:false\n\nlong_exit = short_entry    //Close Long Condition Here (Optional)\n\nshort_exit = long_entry   //Close Short Condition Here (Optional)\n\n///////////////////////////////////////////////////////////////////////////\n\n// init these values here, they will get updated later as more decisions are made\nlast_long_close = na\nlast_short_close = na\n\n// === Long position detection ===\n// longs open\nlongo = 0\nlongo := nz(longo[1])\n// longs closed\nlongc = 0\nlongc := nz(longc[1])\nif long_entry\n    longo := longo + 1\n    longc := 0\nif long_exit\n    longc := longc + 1\n    longo := 0\n// === /END\n\n// === Short position detection ===\nshorto = 0\nshorto := nz(shorto[1])\nshortc = 0\nshortc := nz(shortc[1])\nif short_entry\n    shorto := shorto + 1\n    shortc := 0\nif short_exit\n    shortc := shortc + 1\n    shorto := 0\n// === /END\n\n// === Pyramiding Settings ===\npyr = input(1, title=\"Pyramiding Setting\")\n//pyr = 1\nlongCondition = long_entry and longo <= pyr\nlongX = long_exit and longc <= pyr\nshortCondition = short_entry and shorto <=pyr\nshortX = short_exit and shortc <=pyr\n// === /END\n\n// === Get Last Position Price ===\nlast_open_longCondition = na\nlast_open_shortCondition = na\n// last open prices\nlast_open_longCondition := longCondition ? close : nz(last_open_longCondition[1])\nlast_open_shortCondition := shortCondition ? close : nz(last_open_shortCondition[1])\n// === /END\n\n// === Check For Long/Short ===\nlast_longCondition = na\nlast_shortCondition = na\n// last open times\nlast_longCondition := longCondition ? time : nz(last_longCondition[1])\nlast_shortCondition := shortCondition ? time : nz(last_shortCondition[1])\nlast_longClose = longX ? time : nz(last_long_close[1])\nlast_shortClose = shortX ? time : nz(last_short_close[1])\n\nin_longCondition = last_longCondition > last_shortCondition and last_longCondition >= last_longClose\nin_shortCondition = last_shortCondition > last_longCondition and last_shortCondition >= last_shortClose\n// === /END\n\n// === Stop Loss (Long) ===\nisSLl = input(false, \"Stop Loss (Long)\")\nsll = input(6, \"Stop Loss %\", type=float, step=0.2, minval=0, maxval=100) / 100\nlong_call_sl = last_open_longCondition * (1 - sll)\nlong_sl = isSLl and low <= long_call_sl and longCondition == 0\n// === /END\n\n// === Stop Loss (Short) ===\nisSLs = false //input(false, \"Stop Loss (Short)\")\nsls = 6 //input(6, \"Stop Loss %\", type=float, step=0.2, minval=0, maxval=100) / 100\nshort_call_sl = last_open_shortCondition * (1 + sls)\nshort_sl = isSLs and high >= short_call_sl and shortCondition == 0\n// === /END\n\n// === Trailing Stop ===\nlast_high = na\nlast_low = na\nlast_high := in_longCondition ? (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1]) : na\nlast_low := in_shortCondition ? (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1]) : na\nisTSl = input(false, \"Trailing Stop Long\")\ntsil = input(25, \"Activate Trailing Stop % Long\", type=float, step=1, minval=0, maxval=100) / 100\ntsl = input(8, \"Trailing Stop % Long\", type=float, step=1, minval=0, maxval=100) / 100\nlong_call_ts = last_high * (1 - tsl)\nlong_call_tsi = last_open_longCondition * (1 + tsil)\nlong_ts = isTSl and not na(last_high) and low <= long_call_ts and longCondition == 0 and last_high >= long_call_tsi\nisTSs = false //input(false, \"Trailing Stop Short\")\ntsis = 25 //input(25, \"Activate Trailing Stop % Short\", type=float, step=1, minval=0, maxval=100) / 100\ntss = 8 //input(8, \"Trailing Stop % Short\", type=float, step=1, minval=0, maxval=100) / 100\nshort_call_ts = last_low * (1 + tss)\nshort_call_tsi = last_open_shortCondition * (1 - tsis)\nshort_ts = isTSs and not na(last_low) and high >= short_call_ts and shortCondition == 0 and last_low <= short_call_tsi\n// === /END\n\n// === Create Single Close For All Closing Conditions  ===\ncloselong = long_sl or long_ts or longX\ncloseshort = short_sl or short_ts or shortX\n\n// Get Last Close\nlast_long_close := closelong ? time : nz(last_long_close[1])\nlast_short_close := closeshort ? time : nz(last_short_close[1])\n\n// Check For Close Since Last Open\nif closelong and last_long_close[1] > last_longCondition\n    closelong := false\n\nif closeshort and last_short_close[1] > last_shortCondition\n    closeshort := false\n// === /END\n\n////////////////////////////////////////////////////////////////////////////\n\n// === Alarm Settings ===\n//alertcondition(longCondition==1, title='LONG', message='LONG')\n//alertcondition(closelong==1, title='EXIT LONG', message='EXIT LONG')\n//alertcondition(shortCondition==1, title='SHORT', message='SHORT')\n//alertcondition(closeshort==1, title='EXIT SHORT', message='EXIT SHORT')\n// === /END\n\n////////////////////////////////////////////////////////////////////////////\n\n// === Visuals & Debugs Here ===\n//Remove \"//\" To Check/Debug The Code Above\n// Signal Shapes\n//plotshape(longCondition[1]==1, title='LONG', style=shape.triangleup, size=size.large, color=#02CB80, location= location.belowbar)\n//plotshape(shortCondition[1]==1, title='SHORT', style=shape.triangledown, size=size.large, color=#DC143C, location=location.abovebar)\n//plotshape(shortCondition[1]==0 and closelong[1]==1, title='EXIT LONG', style=shape.xcross, color=#02CB80, location=location.belowbar, transp=0)\n//plotshape(longCondition[1]==0 and closeshort[1]==1, title='EXIT SHORT', style=shape.xcross, color=#DC143C, location=location.abovebar, transp=0)\n// SL Plot\n//slColor = (isSLl or isSLs) and (in_longCondition or in_shortCondition) ? red : white\n//plot(isSLl and in_longCondition ? long_call_sl : na, \"Long SL\", slColor, style=3, linewidth=2)\n//plot(isSLs and in_shortCondition ? short_call_sl : na, \"Short SL\", slColor, style=3, linewidth=2)\n// TP Plot\n//tpColor = isTP and (in_longCondition or in_shortCondition) ? purple : white\n//plot(isTP and in_longCondition ? long_call_tp : na, \"Long TP\", tpColor, style=3, linewidth=2)\n//plot(isTP and in_shortCondition ? short_call_tp : na, \"Short TP\", tpColor, style=3, linewidth=2)\n// TS Plot\n//tsColor = (isTSl or isTSs) and (in_longCondition or in_shortCondition) ? orange : white\n//tsiColor = (isTSl or isTSs) and (in_longCondition or in_shortCondition) ? white : orange\n//plot(isTSl and in_longCondition ? long_call_tsi : na, \"Long Trailing\", tsiColor, style=3, linewidth=2)\n//plot(isTSs and in_shortCondition ? short_call_tsi : na, \"Short Trailing\", tsiColor, style=3, linewidth=2)\n//plot(isTSl and in_longCondition and last_high > long_call_tsi ? long_call_ts : na, \"Long Trailing\", tsColor, style=2, linewidth=2)\n//plot(isTSs and in_shortCondition and last_low < short_call_tsi  ? short_call_ts : na, \"Short Trailing\", tsColor, style=2, linewidth=2)\n// === /END\n\n////////////////////////////////////////////////////////////////////////////\n//                                                                        //\n//             REMOVE THE CODE BELOW FOR STUDY CONVERSION                 //\n//                                                                        //\n////////////////////////////////////////////////////////////////////////////\n\n// === Strategy Direction Switch ===\ndir = \"Long\" //input(title = \"Strategy Direction\", defval=\"Long\") //, options=[\"Long\", \"Short\", \"Both\"]\n// === /END\n\n// === Backtesting Dates ===\ntestPeriodSwitch = input(false, \"Custom Backtesting Dates\")\ntestStartYear = input(2017, \"Backtest Start Year\")\ntestStartMonth = input(1, \"Backtest Start Month\")\ntestStartDay = input(1, \"Backtest Start Day\")\ntestPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)\ntestStopYear = input(9999, \"Backtest Stop Year\")\ntestStopMonth = input(1, \"Backtest Stop Month\")\ntestStopDay = input(1, \"Backtest Stop Day\")\ntestPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)\ntestPeriod() =>\n    time >= testPeriodStart and time <= testPeriodStop ? true : false\nisPeriod = testPeriodSwitch == true ? testPeriod() : true\n// === /END\n\n// === Strategy ===\nif isPeriod and dir==\"Both\"\n    if (longCondition)\n        strategy.entry(\"Long\",strategy.long)\n    if (closelong) and not shortCondition\n        strategy.close(\"Long\")\n    if (shortCondition)\n        strategy.entry(\"Short\",strategy.short)\n    if (closeshort) and not longCondition\n        strategy.close(\"Short\")\n\nif isPeriod and dir==\"Long\"\n    if (longCondition)\n        strategy.entry(\"Long\",strategy.long)\n    if (closelong)\n        strategy.close(\"Long\")\n\nif isPeriod and dir==\"Short\"\n    if (shortCondition)\n        strategy.entry(\"Short\",strategy.short)\n    if (closeshort)\n        strategy.close(\"Short\")\n// === /END\n\n////////////////////////////////////////////////////////////////////////////\n//                                                                        //\n//                 ULTIMATE PINE INJECTOR V1.2                            //\n//                                                                        //\n//////////////////////===ANION=CODE=END====/////////////////////////////////"
  },
  {
    "path": "extensions/strategies/ehlers_mama/strategy.js",
    "content": "/*\n                    ======= Ehlers MESA Adaptive Moving Average =======\n\nDeveloped by John Ehlers, the MESA Adaptive Moving Average is a technical trend-following indicator which, \naccording to its creator, adapts to price movement “based on the rate change of phase as measured by the \nHilbert Transform Discriminator”. This method of adaptation features a fast and a slow moving average so \nthat the composite moving average swiftly responds to price changes and holds the average value until the \nnext bar’s close. Ehlers states that because the average’s fallback is slow, you can create trading systems \nwith almost whipsaw-free trades.\n\nBasically the indicator looks like two moving averages, but instead of curving around the price action, \nthe MESA Adaptive MA moves in a staircase manner as the price ratchets. It produces two outputs, MAMA and FAMA. \nFAMA (Following Adaptive Moving Average) is a result of MAMA being applied to the first MAMA line. The FAMA \nis synchronized in time with MAMA, but its vertical movement comes with a lag. Thus, the two don’t cross unless \na major change in market direction occurs, resulting in a moving average crossover system which is “virtually \nfree of whipsaw trades”, according to Ehlers.\n\nIf you appreciate the work and the man hours that went into creating this strategy, please consider giving back.\n\nLoneWolf345 ETH = 0xa42f6d21f1e52f7fbaeaa0f58d1cc4b9a58f2dcc , BTC = 15L8QstCQG4ho6139hVaqLxkAzcjnqBbf6\nTravis      ETH = 0xdA963A127BeCB08227583d11f912F400D5347060 , BTC = 3KKHdBJpEGxghxGazoE4X7ihyr2q6nHUvW\n\n*/\n\n\nlet z = require('zero-fill'),\n  n = require('numbro'),\n  Phenotypes = require('../../../lib/phenotype'),\n  crossover = require('../../../lib/helpers').crossover,\n  crossunder = require('../../../lib/helpers').crossunder,\n  nz = require('../../../lib/helpers').nz,\n  iff = require('../../../lib/helpers').iff,\n  tv = require('../../../lib/helpers')\n\nmodule.exports = {\n  name: 'Ehlers MAMA',\n  description: 'Ehlers MESA Adaptive Moving Average',\n\n  getOptions: function() {\n    this.option('period', 'period length eg 10m', String, '60m')\n    this.option('min_periods', 'min. number of history periods', Number, 6)\n\n    // this.option('mama_periods', '', Number, 5)\n    this.option('mama_fastlimit', '', Number, 0.5)\n    this.option('mama_slowlimit', '', Number, 0.09)\n    this.option('price_source', '', String, 'HAohlc4')\n\n  },\n\n  calculate: function() {},\n\n  onPeriod: function(s, cb) {\n\n    if (!s.mama) {\n      s.mama = {\n        src: [],\n        sp: [],\n        dt: [],\n        q1: [],\n        i1: [],\n        i2: [],\n        q2: [],\n        re: [],\n        im: [],\n        p: [],\n        p1: [],\n        p3: [],\n        spp: [],\n        phase: [],\n        mama: [],\n        fama: []\n      }\n    }\n\n    if (s.lookback.length > s.options.min_periods) {\n      if(!s.options.price_source || s.options.price_source === 'close'){\n        s.mama.src.unshift(s.period.close)\n      } else if (s.options.price_source === 'hl2'){\n        s.mama.src.unshift(tv.hl2(s.period))\n      } else if (s.options.price_source === 'hlc3'){\n        s.mama.src.unshift(tv.hlc3(s.period))\n      } else if (s.options.price_source === 'ohlc4'){\n        s.mama.src.unshift(tv.ohlc4(s.period))\n      } else if (s.options.price_source === 'HAohlc4'){\n        s.mama.src.unshift(tv.HAohlc4(s))\n      }\n\n      //s.mama.src.unshift((s.period.high + s.period.low) / 2)\n      s.mama.sp.unshift((4 * s.mama.src[0] + 3 * s.mama.src[1] + 2 * s.mama.src[2] + s.mama.src[3]) / 10.0)\n      s.mama.dt.unshift((.0962 * s.mama.sp[0] + .5769 * nz(s.mama.sp[2]) - .5769 * nz(s.mama.sp[4]) - .0962 * nz(s.mama.sp[6])) * (.075 * nz(s.mama.p[0]) + .54))\n      s.mama.q1.unshift((.0962 * s.mama.dt[0] + .5769 * nz(s.mama.dt[2]) - .5769 * nz(s.mama.dt[4]) - .0962 * nz(s.mama.dt[6])) * (.075 * nz(s.mama.p[0]) + .54))\n      s.mama.i1.unshift(nz(s.mama.dt[3]))\n      let jI = (.0962 * s.mama.i1[0] + .5769 * nz(s.mama.i1[2]) - .5769 * nz(s.mama.i1[4]) - .0962 * nz(s.mama.i1[6])) * (.075 * nz(s.mama.p[0]) + .54)\n      let jq = (.0962 * s.mama.q1[0] + .5769 * nz(s.mama.q1[2]) - .5769 * nz(s.mama.q1[4]) - .0962 * nz(s.mama.q1[6])) * (.075 * nz(s.mama.p[0]) + .54)\n      let i2_ = s.mama.i1[0] - jq\n      let q2_ = s.mama.q1[0] + jI\n      s.mama.i2.unshift(.2 * i2_ + .8 * nz(s.mama.i2[0]))\n      s.mama.q2.unshift(.2 * q2_ + .8 * nz(s.mama.q2[0]))\n      let re_ = s.mama.i2[0] * nz(s.mama.i2[1]) + s.mama.q2[0] * nz(s.mama.q2[1])\n      let im_ = s.mama.i2[0] * nz(s.mama.q2[1]) - s.mama.q2[0] * nz(s.mama.i2[1])\n      s.mama.re.unshift(.2 * re_ + .8 * nz(s.mama.re[0]))\n      s.mama.im.unshift(.2 * im_ + .8 * nz(s.mama.im[0]))\n      s.mama.p1.unshift(iff(s.mama.im[0] != 0 && s.mama.re[0] != 0, 360 / Math.atan(s.mama.im[0] / s.mama.re[0]), nz(s.mama.p[0])))\n      let p2 = iff(s.mama.p1[0] > 1.5 * nz(s.mama.p1[1]), 1.5 * nz(s.mama.p1[1]), iff(s.mama.p1[0] < 0.67 * nz(s.mama.p1[1]), 0.67 * nz(s.mama.p1[1]), s.mama.p1[0]))\n      s.mama.p3.unshift(iff(p2 < 6, 6, iff(p2 > 50, 50, p2)))\n      s.mama.p.unshift(.2 * s.mama.p3[0] + .8 * nz(s.mama.p3[1]))\n      s.mama.spp.unshift(.33 * s.mama.p[0] + .67 * nz(s.mama.spp[0]))\n      s.mama.phase.unshift(Math.atan(s.mama.q1[0] / s.mama.i1[0]))\n      let dphase_ = nz(s.mama.phase[1]) - s.mama.phase[0]\n      let dphase = iff(dphase_ < 1, 1, dphase_)\n      let alpha_ = s.options.mama_fastlimit / dphase\n      let alpha = iff(alpha_ < s.options.mama_slowlimit, s.options.mama_slowlimit, iff(alpha_ > s.options.mama_fastlimit, s.options.mama_fastlimit, alpha_))\n      s.mama.mama.unshift(alpha * s.mama.src[0] + (1 - alpha) * nz(s.mama.mama[0]))\n      s.mama.fama.unshift(.5 * alpha * s.mama.mama[0] + (1 - .5 * alpha) * nz(s.mama.fama[0]))\n\n      s.period.mama = s.mama.mama[0]\n      if (s.options.debug) {console.log('s.mama.mama: ' + s.mama.mama[0])}\n      s.period.fama = s.mama.fama[0]\n\n      if (s.mama.src.length > 7)\n        Object.keys(s.mama).forEach(k => {\n          s.mama[k].pop()\n        })\n\n\n      if (!s.in_preroll) {\n        \n        if (crossover(s, 'mama', 'fama'))\n          s.signal = 'buy'\n        else if (crossunder(s, 'mama', 'fama'))\n          s.signal = 'sell'\n        else \n          s.signal = null\n      }\n    }\n    cb()\n  },\n\n\n  onReport: function(s) {\n    var cols = []\n    let color = 'cyan'\n    let FamaMamaDelta = (s.period.mama - s.period.fama) / s.period.mama * 100\n    \n    if (s.period.fama < s.period.mama) {\n      color = 'green'\n    } else if (s.period.fama > s.period.mama) {\n      color = 'red'\n    }\n\n    cols.push(z(10, '[' + n(FamaMamaDelta).format('#00.##') + '%]', '')[color])\n\n    cols.push(z(10, 'M[' + n(s.period.mama).format('###.0') + ']', '')[color])\n    cols.push(z(10, ' F[' + n(s.period.fama).format('###.0') + ']', '')[color])\n\n    return cols\n  },\n\n  phenotypes: {\n    //General Options\n    period_length: Phenotypes.RangePeriod(5, 240, 'm'),\n    min_periods: Phenotypes.Range(10, 10),\n    markdown_buy_pct: Phenotypes.RangeFloat(0, 0),\n    markup_sell_pct: Phenotypes.RangeFloat(0, 0),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range(1, 20),\n    profit_stop_pct: Phenotypes.Range(1, 10),\n\n    //Strategy Specific\n    mama_fastlimit: Phenotypes.RangeFactor(0.1, 0.9, 0.1),\n    mama_slow_limit: Phenotypes.RangeFactor(0.01, 0.09, 0.01),\n    price_source: Phenotypes.ListOption(['hl2', 'hlc3', 'ohlc4', 'HAohlc4'])\n  }\n}\n"
  },
  {
    "path": "extensions/strategies/ehlers_trend/README.md",
    "content": "                         ======= Ehlers Instantaneous Trend =======\n\n\n\nIf you appreciate the work and the man hours that went into creating this strategy, please consider giving back.\n\nLoneWolf345 ETH = 0xa42f6d21f1e52f7fbaeaa0f58d1cc4b9a58f2dcc , BTC = 15L8QstCQG4ho6139hVaqLxkAzcjnqBbf6\nTravis      ETH = 0xdA963A127BeCB08227583d11f912F400D5347060 , BTC = 3KKHdBJpEGxghxGazoE4X7ihyr2q6nHUvW\n\n\n\n\n\n\n\n\n\n\n                               ===== Trading View Script =====\n\n\n//@version=2\nstrategy(title=\"Ehlers Instantaneous Trend\", shorttitle=\"Ehlers IT\", overlay=true, precision=3, initial_capital=1000)\n\n// === INPUTS\n\nsrc=input(hl2, title=\"Source\")\na= input(0.07, title=\"Alpha\", step=0.01) \nfr=input(true, title=\"Fill Trend Region\")\nebc=input(false, title=\"Enable barcolors\")\nhr=input(false, title=\"Hide Ribbon\")\npa=input(true, title=\"Arrow Markers\")\n// === /INPUTS\n\n\n\n// === FUNCTIONS\n\nit=(a-((a*a)/4.0))*src+0.5*a*a*src[1]-(a-0.75*a*a)*src[2]+2*(1-a )*nz(it[1], ((src+2*src[1]+src[2])/4.0))-(1-a )*(1-a )*nz(it[2], ((src+2*src[1]+src[2])/4.0))\nlag=2.0*it-nz(it[2])\ndl=plot(fr and (not hr)?(it>lag?lag:it):na, color=gray, style=circles, linewidth=0, title=\"Dummy\")\nitl=plot(hr?na:it, color=fr?gray:red, linewidth=1, title=\"Trend\")\nll=plot(hr?na:lag, color=fr?gray:blue, linewidth=1, title=\"Trigger\")\nplotarrow(pa?(cross(it, lag)?lag<it?-1:1:na):na, title=\"Crossover Markers\")\nfill(dl, ll, green, title=\"UpTrend\", transp=70)\nfill(dl, itl, red, title=\"DownTrend\", transp=70)\nbc=not ebc?na:(it>lag?red:lime)\nbarcolor(bc)\n\n\n// === Upgraded Conditions Framework ===\n\n////////////////////////////////////////////////////////////////////////////\n\nlong_entry = cross(it, lag)?lag>it?true:false:false\n\nshort_entry = cross(it, lag)?lag<it?true:false:false\n\nlong_exit = short_entry    //Close Long Condition Here (Optional)\n\nshort_exit = long_entry   //Close Short Condition Here (Optional)\n\n///////////////////////////////////////////////////////////////////////////\n\n// init these values here, they will get updated later as more decisions are made\nlast_long_close = na\nlast_short_close = na\n\n// === Long position detection ===\n// longs open\nlongo = 0\nlongo := nz(longo[1])\n// longs closed\nlongc = 0\nlongc := nz(longc[1])\nif long_entry\n    longo := longo + 1\n    longc := 0\nif long_exit\n    longc := longc + 1\n    longo := 0\n// === /END\n\n// === Short position detection ===\nshorto = 0\nshorto := nz(shorto[1])\nshortc = 0\nshortc := nz(shortc[1])\nif short_entry\n    shorto := shorto + 1\n    shortc := 0\nif short_exit\n    shortc := shortc + 1\n    shorto := 0\n// === /END\n\n// === Pyramiding Settings ===\npyr = input(1, title=\"Pyramiding Setting\")\n//pyr = 1\nlongCondition = long_entry and longo <= pyr\nlongX = long_exit and longc <= pyr\nshortCondition = short_entry and shorto <=pyr\nshortX = short_exit and shortc <=pyr\n// === /END\n\n// === Get Last Position Price ===\nlast_open_longCondition = na\nlast_open_shortCondition = na\n// last open prices\nlast_open_longCondition := longCondition ? close : nz(last_open_longCondition[1])\nlast_open_shortCondition := shortCondition ? close : nz(last_open_shortCondition[1])\n// === /END\n\n// === Check For Long/Short ===\nlast_longCondition = na\nlast_shortCondition = na\n// last open times\nlast_longCondition := longCondition ? time : nz(last_longCondition[1])\nlast_shortCondition := shortCondition ? time : nz(last_shortCondition[1])\nlast_longClose = longX ? time : nz(last_long_close[1])\nlast_shortClose = shortX ? time : nz(last_short_close[1])\n\nin_longCondition = last_longCondition > last_shortCondition and last_longCondition >= last_longClose\nin_shortCondition = last_shortCondition > last_longCondition and last_shortCondition >= last_shortClose\n// === /END\n\n// === Stop Loss (Long) ===\nisSLl = input(false, \"Stop Loss (Long)\")\nsll = input(6, \"Stop Loss %\", type=float, step=0.2, minval=0, maxval=100) / 100\nlong_call_sl = last_open_longCondition * (1 - sll)\nlong_sl = isSLl and low <= long_call_sl and longCondition == 0\n// === /END\n\n// === Stop Loss (Short) ===\nisSLs = false //input(false, \"Stop Loss (Short)\")\nsls = 6 //input(6, \"Stop Loss %\", type=float, step=0.2, minval=0, maxval=100) / 100\nshort_call_sl = last_open_shortCondition * (1 + sls)\nshort_sl = isSLs and high >= short_call_sl and shortCondition == 0\n// === /END\n\n// === Trailing Stop ===\nlast_high = na\nlast_low = na\nlast_high := in_longCondition ? (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1]) : na\nlast_low := in_shortCondition ? (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1]) : na\nisTSl = input(false, \"Trailing Stop Long\")\ntsil = input(25, \"Activate Trailing Stop % Long\", type=float, step=1, minval=0, maxval=100) / 100\ntsl = input(8, \"Trailing Stop % Long\", type=float, step=1, minval=0, maxval=100) / 100\nlong_call_ts = last_high * (1 - tsl)\nlong_call_tsi = last_open_longCondition * (1 + tsil)\nlong_ts = isTSl and not na(last_high) and low <= long_call_ts and longCondition == 0 and last_high >= long_call_tsi\nisTSs = false //input(false, \"Trailing Stop Short\")\ntsis = 25 //input(25, \"Activate Trailing Stop % Short\", type=float, step=1, minval=0, maxval=100) / 100\ntss = 8 //input(8, \"Trailing Stop % Short\", type=float, step=1, minval=0, maxval=100) / 100\nshort_call_ts = last_low * (1 + tss)\nshort_call_tsi = last_open_shortCondition * (1 - tsis)\nshort_ts = isTSs and not na(last_low) and high >= short_call_ts and shortCondition == 0 and last_low <= short_call_tsi\n// === /END\n\n// === Create Single Close For All Closing Conditions  ===\ncloselong = long_sl or long_ts or longX\ncloseshort = short_sl or short_ts or shortX\n\n// Get Last Close\nlast_long_close := closelong ? time : nz(last_long_close[1])\nlast_short_close := closeshort ? time : nz(last_short_close[1])\n\n// Check For Close Since Last Open\nif closelong and last_long_close[1] > last_longCondition\n    closelong := false\n\nif closeshort and last_short_close[1] > last_shortCondition\n    closeshort := false\n// === /END\n\n////////////////////////////////////////////////////////////////////////////\n\n// === Alarm Settings ===\n//alertcondition(longCondition==1, title='LONG', message='LONG')\n//alertcondition(closelong==1, title='EXIT LONG', message='EXIT LONG')\n//alertcondition(shortCondition==1, title='SHORT', message='SHORT')\n//alertcondition(closeshort==1, title='EXIT SHORT', message='EXIT SHORT')\n// === /END\n\n////////////////////////////////////////////////////////////////////////////\n\n// === Visuals & Debugs Here ===\n//Remove \"//\" To Check/Debug The Code Above\n// Signal Shapes\n//plotshape(longCondition[1]==1, title='LONG', style=shape.triangleup, size=size.large, color=#02CB80, location= location.belowbar)\n//plotshape(shortCondition[1]==1, title='SHORT', style=shape.triangledown, size=size.large, color=#DC143C, location=location.abovebar)\n//plotshape(shortCondition[1]==0 and closelong[1]==1, title='EXIT LONG', style=shape.xcross, color=#02CB80, location=location.belowbar, transp=0)\n//plotshape(longCondition[1]==0 and closeshort[1]==1, title='EXIT SHORT', style=shape.xcross, color=#DC143C, location=location.abovebar, transp=0)\n// SL Plot\n//slColor = (isSLl or isSLs) and (in_longCondition or in_shortCondition) ? red : white\n//plot(isSLl and in_longCondition ? long_call_sl : na, \"Long SL\", slColor, style=3, linewidth=2)\n//plot(isSLs and in_shortCondition ? short_call_sl : na, \"Short SL\", slColor, style=3, linewidth=2)\n// TP Plot\n//tpColor = isTP and (in_longCondition or in_shortCondition) ? purple : white\n//plot(isTP and in_longCondition ? long_call_tp : na, \"Long TP\", tpColor, style=3, linewidth=2)\n//plot(isTP and in_shortCondition ? short_call_tp : na, \"Short TP\", tpColor, style=3, linewidth=2)\n// TS Plot\n//tsColor = (isTSl or isTSs) and (in_longCondition or in_shortCondition) ? orange : white\n//tsiColor = (isTSl or isTSs) and (in_longCondition or in_shortCondition) ? white : orange\n//plot(isTSl and in_longCondition ? long_call_tsi : na, \"Long Trailing\", tsiColor, style=3, linewidth=2)\n//plot(isTSs and in_shortCondition ? short_call_tsi : na, \"Short Trailing\", tsiColor, style=3, linewidth=2)\n//plot(isTSl and in_longCondition and last_high > long_call_tsi ? long_call_ts : na, \"Long Trailing\", tsColor, style=2, linewidth=2)\n//plot(isTSs and in_shortCondition and last_low < short_call_tsi  ? short_call_ts : na, \"Short Trailing\", tsColor, style=2, linewidth=2)\n// === /END\n\n////////////////////////////////////////////////////////////////////////////\n//                                                                        //\n//             REMOVE THE CODE BELOW FOR STUDY CONVERSION                 //\n//                                                                        //\n////////////////////////////////////////////////////////////////////////////\n\n// === Strategy Direction Switch ===\ndir = \"Long\" //input(title = \"Strategy Direction\", defval=\"Long\") //, options=[\"Long\", \"Short\", \"Both\"]\n// === /END\n\n// === Backtesting Dates ===\ntestPeriodSwitch = input(false, \"Custom Backtesting Dates\")\ntestStartYear = input(2017, \"Backtest Start Year\")\ntestStartMonth = input(1, \"Backtest Start Month\")\ntestStartDay = input(1, \"Backtest Start Day\")\ntestPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)\ntestStopYear = input(9999, \"Backtest Stop Year\")\ntestStopMonth = input(1, \"Backtest Stop Month\")\ntestStopDay = input(1, \"Backtest Stop Day\")\ntestPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)\ntestPeriod() =>\n    time >= testPeriodStart and time <= testPeriodStop ? true : false\nisPeriod = testPeriodSwitch == true ? testPeriod() : true\n// === /END\n\n// === Strategy ===\nif isPeriod and dir==\"Both\"\n    if (longCondition)\n        strategy.entry(\"Long\",strategy.long)\n    if (closelong) and not shortCondition\n        strategy.close(\"Long\")\n    if (shortCondition)\n        strategy.entry(\"Short\",strategy.short)\n    if (closeshort) and not longCondition\n        strategy.close(\"Short\")\n\nif isPeriod and dir==\"Long\"\n    if (longCondition)\n        strategy.entry(\"Long\",strategy.long)\n    if (closelong)\n        strategy.close(\"Long\")\n\nif isPeriod and dir==\"Short\"\n    if (shortCondition)\n        strategy.entry(\"Short\",strategy.short)\n    if (closeshort)\n        strategy.close(\"Short\")\n// === /END\n\n////////////////////////////////////////////////////////////////////////////\n//                                                                        //\n//                 ULTIMATE PINE INJECTOR V1.2                            //\n//                                                                        //\n//////////////////////===ANION=CODE=END====/////////////////////////////////"
  },
  {
    "path": "extensions/strategies/ehlers_trend/strategy.js",
    "content": "let z = require('zero-fill')\n  , n = require('numbro')\n  , Phenotypes = require('../../../lib/phenotype')\n  , crossover = require('../../../lib/helpers').crossover\n  , crossunder = require('../../../lib/helpers').crossunder\n  , nz = require('../../../lib/helpers').nz\n  , tv = require('../../../lib/helpers')\n\nmodule.exports = {\n  name: 'Ehlers_Trend',\n  description: 'Ehlers Instantaneous Trend',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '30m')\n    this.option('period_length', 'period length, same as --period', String, '30m')\n\n    this.option('alpha', '', Number, 0.07)\n    this.option('price_source', '', String, 'HAohlc4')\n  },\n\n  calculate: function () {},\n\n  onPeriod: function (s, cb) {\n\n    if (s.lookback.length > s.options.min_periods) {\n\n      if(!s.options.price_source || s.options.price_source === 'close'){\n        s.period.src = s.period.close\n      } else if (s.options.price_source === 'hl2'){\n        s.period.src = tv.hl2(s)\n      } else if (s.options.price_source === 'hlc3'){\n        s.period.src = tv.hlc3(s)\n      } else if (s.options.price_source === 'ohlc4'){\n        s.period.src = tv.ohlc4(s)\n      } else if (s.options.price_source === 'HAhlc3'){\n        s.period.src = tv.HAhlc3(s)\n      } else if (s.options.price_source === 'HAohlc4'){\n        s.period.src = tv.HAohlc4(s)\n      }\n    \n      let a = s.options.alpha\n      if (s.lookback.length < 7) {\n        s.period.trend =  (s.period.src + 2 * nz(s.lookback[0].src) + nz(s.lookback[1].src)) / 4\n      } else {\n        s.period.trend = (a-a*a/4.0)*s.period.src+0.5*a*a*nz(s.lookback[0].src)-(a-0.75*a*a)*nz(s.lookback[1].src)+2*(1-a)*nz(s.lookback[0].trend) - (1-a)*(1-a)*nz(s.lookback[1].trend)\n        s.period.trigger = 2.0*s.period.trend-nz(s.lookback[1].trend)\n      }\n    }\n\n\n    if(crossover(s, 'trend', 'trigger'))\n      s.signal = 'sell'\n    else if(crossunder(s, 'trend', 'trigger'))\n      s.signal = 'buy'\n    else\n      s.signal = null\n\n    cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    let color = 'cyan'\n    if (s.period.trend > s.period.trigger) { color = 'red' } else if (s.period.trend < s.period.trigger) { color = 'green' }\n    cols.push(z(10, 'Trend[' + n(s.period.trend).format('###.0') + ']', '')[color])\n    cols.push(z(10, ' trigger[' + n(s.period.trigger).format('###.0') + ']', '')[color])\n    return cols\n  },\n\n  phenotypes: {\n\n    // -- common\n    period_length: Phenotypes.RangePeriod(15, 120, 'm'),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 3),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 3),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n    \n    //Strategy Specific\n    alpha: Phenotypes.RangeFactor(0.01, 0.2, 0.01)\n\n\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/ichimoku/strategy.js",
    "content": "var z = require('zero-fill'),\n  n = require('numbro'),\n  highest = require('../../../lib/highest'),\n  lowest = require('../../../lib/lowest'),\n  Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'ichimoku',\n  description: 'Ichimoku Cloud',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '4h')\n    this.option('period_length', 'period length', String, '4h')\n    this.option('min_periods', 'min periods (should be >= senkou_b option)', Number, 52)\n    this.option('tenkan', 'Tenkan (conversion) line', Number, 9)\n    this.option('kijun','Kijun (base) line', Number, 26)\n    this.option('senkou_b','Senkou (leading) span B', Number, 52)\n    this.option('chikou','Chikou (lagging) span)', Number, 26)\n  },\n\n  calculate: function (s) {\n  },\n\n  onPeriod: function (s, cb) {\n    if (s.lookback[s.options.min_periods]) {\n      highest(s, 'tenkan_high', s.options.tenkan)\n      lowest(s, 'tenkan_low', s.options.tenkan)\n      highest(s, 'kijun_high', s.options.kijun)\n      lowest(s, 'kijun_low', s.options.kijun)\n      highest(s, 'senkou_high', s.options.senkou_b)\n      lowest(s, 'senkou_low', s.options.senkou_b)\n\n      s.period.tenkan = ((s.period.tenkan_high + s.period.tenkan_low) / 2)\n      s.period.kijun = ((s.period.kijun_high + s.period.kijun_low) / 2)\n      s.period.senkou_a = ((s.period.tenkan + s.period.kijun) / 2)\n      s.period.senkou_b = ((s.period.senkou_high + s.period.senkou_low) / 2)\n      s.period.chikou = s.lookback[s.options.chikou - 1].close\n\n      // The below lines cause the bot to buy when the price is above the kumo cloud and sell when the price is inside\n      // or below the kumo cloud. There are many different ways to trade the Ichimoku Cloud and all of them can be\n      // implemented using the indicators above.\n\n      if (s.period.close > Math.max(s.period.senkou_a, s.period.senkou_b)) {\n        if (s.trend !== 'up') {\n          s.acted_on_trend = false\n        }\n        s.trend = 'up'\n        s.signal = !s.acted_on_trend ? 'buy' : null\n      }\n      if (s.period.close < Math.max(s.period.senkou_a, s.period.senkou_b)) {\n        if (s.trend !== 'down') {\n          s.acted_on_trend = false\n        }\n        s.trend = 'down'\n        s.signal = !s.acted_on_trend ? 'sell' : null\n      }\n    }\n    cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    return cols\n  },\n\n  phenotypes: {\n    //General Options\n    period_length: Phenotypes.RangePeriod(5, 120, 'm'),\n    min_periods: Phenotypes.Range(150, 150), //(should be >= senkou_b option)\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    //Strategy Specific\n    tenkan: Phenotypes.RangeFactor(5, 30, 1),\n    kijun: Phenotypes.RangeFactor(25, 75, 1),\n    senkou_b: Phenotypes.RangeFactor(50, 150, 1),\n    chikou: Phenotypes.RangeFactor(20, 40, 1)\n  }\n}\n"
  },
  {
    "path": "extensions/strategies/ichimoku_score/README.md",
    "content": "                                    ======= Ichimoku Signals Score =======\n\n\nThe Ichimoku signals, indeed all Ichimoku elements, should never be taken in isolation, but considered in the context\nof the overall chart.  Ichimoku Kinko Hyo is a visual technical analysis system and the charts are designed to be\nconsidered in their entirety, with regard given to the relationships between all of the elements, including the price.\nAs such, Ichimoku is not suitable for automated or \"single event\" decision making.\n\nRemember that Ichimoku Kinko Hyo is a technical trend trading charting system and trends can and do change, so your\nreadings of the charts should be probabilistic, rather than predictive.  As with most technical analysis methods,\nIchimoku is likely to produce frequent conflicting signals in non-trending markets.\n\nThe five kinds of signal are described below.  Most can be classified as strong, neutral, or weak by their proximate\nrelationship to the Kumo (cloud), but each signal may be further strengthened, weakened, or nullified by the\nrelationships between other elements.  All signals must be considered in respect to the overall chart.\n\nFor a better understanding of how to read ichimoku please refer to http://www.ichimokutrader.com/signals.html\nCode based on a TradingView.com script at https://www.tradingview.com/v/u0NN8zNu/\n\nIf you appreciate the work and the man hours that went into creating this strategy, please consider giving back.\nLoneWolf345 ETH = 0xa42f6d21f1e52f7fbaeaa0f58d1cc4b9a58f2dcc , BTC = 15L8QstCQG4ho6139hVaqLxkAzcjnqBbf6\nTravis      ETH = 0xdA963A127BeCB08227583d11f912F400D5347060 , BTC = 3KKHdBJpEGxghxGazoE4X7ihyr2q6nHUvW\n\n\n\n\n\n\n\n\n\n\n                                    ======= Trading View Strategy Script =======\n\n\n//@version=2\n//study(title=\"Ichimoku Cloud Score LW\", shorttitle=\"Ichimoku Score\", precision=3, overlay=false)\nstrategy(title=\"Ichimoku Cloud Signal Score\", shorttitle=\"Ichimoku Score\", precision=3, overlay=false)\n\n// == ichimoku inputs ==\ntenkenSenPeriods = input(9, minval=1, title=\"Tenkan-sen (Conversion Line) Periods\"),\nkijunSenPeriods = input(26, minval=1, title=\"Kijun-sen (Base Line) Periods\")\nsenkouSpanPeriods = input(52, minval=1, title=\"Senkou (Leading) Span B Periods\"),\ndisplacement = input(26, minval=1, title=\"Displacement\")\n\n\n// == score inputs ==\ntkCrossWeight = input(1.0, title=\"TK Cross Importance Weight\", type=float, step=0.1)\npkCrossWeight = input(1.0, title=\"PK Cross Importance Weight\", type=float, step=0.1)\nkumoBreakoutWeight = input(1.0, title=\"Kumo Breakout Importance Weight\", type=float, step=0.1)\nsenkouCrossWeight = input(1.0, title=\"Senkou (Leading) Span Cross Importance Weight\", type=float, step=0.1)\nchikouCrossWeight = input(1.0, title=\"Chikou (Lagging) Span Cross Importance Weight\", type=float, step=0.1)\nchikouPlacementWeight = input(1.0, title=\"Chikou (Lagging) Span Relative to Cloud Importance Weight\", type=float, step=0.1)\npricePlacementWeight = input(1.0, title=\"Price Relative to Cloud Importance Weight\", type=float, step=0.1)\n\nweakPoints = input(0.5, title=\"Weak Point Value\", type=float, step=0.1)\nneutralPoints = input(1.0, title=\"Neutral Point Value\", type=float, step=0.1)\nstrongPoints = input(2.0, title=\"Strong Point Value\", type=float, step=0.1)\n\n\n// == helpers ==\ndonchian(len) => avg(lowest(len), highest(len))\nresolve(src, default) => na(src) ? default : src\ngetIntersect(series1, series2) => (series1[1] * (series2 - series2[1]) - series2[1] * (series1 - series1[1])) / ((series2 - series2[1]) - (series1 - series1[1]))\nbelowKumo(val, senkou1, senkou2) => val < senkou1[1] and val < senkou2[1] and val < senkou1 and val < senkou2\naboveKumo(val, senkou1, senkou2) => val > senkou1[1] and val > senkou2[1] and val > senkou1 and val > senkou2\ninsideKumo(val, senkou1, senkou2) => (not belowKumo(val, senkou1, senkou2)) and (not aboveKumo(val, senkou1, senkou2))\n\n\n// == generate ichimoku data ==\ntenkanSen = donchian(tenkenSenPeriods)\nkijunSen = donchian(kijunSenPeriods)\nchikouSen = offset(close, -displacement)\n\nsenkouA = offset(avg(tenkanSen, kijunSen), displacement)\nsenkouB = offset(donchian(senkouSpanPeriods), displacement)\n\npriceAboveKumo = aboveKumo(close, senkouA, senkouB)\npriceBelowKumo = belowKumo(close, senkouA, senkouB)\npriceInsideKumo = insideKumo(close, senkouA, senkouB)\n\n\n// == ichimoku cloud signals ==\n// source: http://www.ichimokutrader.com/signals.html\n\n// == Tenkan Sen (turning line) / Kijun Sen (standard line) Cross ==\ncalcTkCross(previousVal) =>\n    bullish = crossover(tenkanSen, kijunSen)\n    bearish = crossunder(tenkanSen, kijunSen)\n\n    intersect = getIntersect(tenkanSen, kijunSen)\n    above = aboveKumo(intersect, senkouA, senkouB)\n    below = belowKumo(intersect, senkouA, senkouB)\n    inside = insideKumo(intersect, senkouA, senkouB)\n\n    score = resolve(previousVal, 0)\n    score := (bullish and below) ? weakPoints : score\n    score := (bullish and inside) ? neutralPoints : score\n    score := (bullish and above) ? strongPoints : score\n    score := (bearish and below) ? -strongPoints : score\n    score := (bearish and inside) ? -neutralPoints : score\n    score := (bearish and above) ? -weakPoints : score\n    score\n\n// == Price and Kijun Sen (standard line) Cross ==\ncalcPkCross(previousVal) =>\n    bullish = crossover(close, kijunSen)\n    bearish = crossunder(close, kijunSen)\n    \n    intersect = getIntersect(close, kijunSen)\n    above = aboveKumo(intersect, senkouA, senkouB)\n    below = belowKumo(intersect, senkouA, senkouB)\n    inside = insideKumo(intersect, senkouA, senkouB)\n\n    score = resolve(previousVal, 0)\n    score := (bullish and below) ? weakPoints : score\n    score := (bullish and inside) ? neutralPoints : score\n    score := (bullish and above) ? strongPoints : score\n    score := (bearish and below) ? -strongPoints : score\n    score := (bearish and inside) ? -neutralPoints : score\n    score := (bearish and above) ? -weakPoints : score\n    score\n\n// == Kumo Breakouts ==\ncalcKumoBreakout(previousVal) =>\n    bullish = (crossover(close, senkouA) and senkouA >= senkouB) or (crossover(close, senkouB) and senkouB >= senkouA)\n    bearish = (crossunder(close, senkouB) and senkouA >= senkouB) or (crossunder(close, senkouA) and senkouB >= senkouA)\n\n    score = resolve(previousVal, 0)\n    score := bullish ? strongPoints : score\n    score := bearish ? -strongPoints : score\n    score\n\n// == Senkou Span Cross ==\n// The Senkou Span Cross signal occurs when the Senkou Span A (1st leading line) crosses the Senkou Span B (2nd leading line).\n// NOTE: this cross occurs ahead of the price, since it's displaced to the right; this displacement must be removed\ncalcSenkouCross(previousVal) =>\n    noDpsenkouA = avg(tenkanSen, kijunSen) // Senkou Span A (no displacement)\n    noDpsenkouB = donchian(senkouSpanPeriods) // Senkou Span B (no displacement)\n\n    bullish = crossover(noDpsenkouA, noDpsenkouB)\n    bearish = crossunder(noDpsenkouA, noDpsenkouB)\n\n    score = resolve(previousVal, 0)\n    score := (bullish and priceBelowKumo) ? weakPoints : score\n    score := (bullish and priceInsideKumo) ? neutralPoints : score\n    score := (bullish and priceAboveKumo) ? strongPoints : score\n    score := (bearish and priceBelowKumo) ? -strongPoints : score\n    score := (bearish and priceInsideKumo) ? -neutralPoints : score\n    score := (bearish and priceAboveKumo) ? -weakPoints : score\n    score\n\n// == Chikou Span Cross ==\n// The Chikou Span Cross signal occurs when the Chikou Span (Lagging line) rises above or falls below the price.\ncalcChikouCross(previousVal) =>\n    // think in terms of current price = chikouSen\n    leadLine = offset(close, displacement)\n    bullish = crossover(close, leadLine)\n    bearish = crossunder(close, leadLine)\n    \n    score = resolve(previousVal, 0)\n    score := (bullish and priceBelowKumo) ? weakPoints : score\n    score := (bullish and priceInsideKumo) ? neutralPoints : score\n    score := (bullish and priceAboveKumo) ? strongPoints : score\n    score := (bearish and priceBelowKumo) ? -strongPoints : score\n    score := (bearish and priceInsideKumo) ? -neutralPoints : score\n    score := (bearish and priceAboveKumo) ? -weakPoints : score\n    score\n\n// == price relative to cloud ==\ncalcPricePlacement(previousVal) => \n    score = resolve(previousVal, 0)\n    score := priceAboveKumo ? strongPoints : score\n    score := priceInsideKumo ? 0 : score\n    score := priceBelowKumo ? -strongPoints : score\n    score\n    \n// == lag line releative to cloud ==\ncalcChikouPlacement(previousVal) => \n    // doing calculation based on left-shifted chikouSen caused errors.  \n    // Instead we shift the kumo right again and do comparison based on current price\n    shiftedSenkouA = offset(senkouA, displacement)\n    shiftedSenkouB = offset(senkouB, displacement)\n    score = resolve(previousVal, 0)\n    score := aboveKumo(close, shiftedSenkouA, shiftedSenkouB) ? strongPoints : score\n    score := insideKumo(close, shiftedSenkouA, shiftedSenkouB) ? 0 : score\n    score := belowKumo(close, shiftedSenkouA, shiftedSenkouB) ? -strongPoints : score\n    score\n\n\n// == plot score ==\ntkCrossScore = calcTkCross(tkCrossScore[1])\npkCrossScore = calcPkCross(pkCrossScore[1])\nkumoBreakoutScore = calcKumoBreakout(kumoBreakoutScore[1])\nsenkouCrossScore = calcSenkouCross(senkouCrossScore[1])\nchikouCrossScore = calcChikouCross(chikouCrossScore[1])\npricePlacementScore = calcPricePlacement(pricePlacementScore[1])\nchikouPlacementScore = calcChikouPlacement(chikouPlacementScore[1])\n\n\ntotalScore = (tkCrossWeight * tkCrossScore)\ntotalScore := totalScore + (pkCrossWeight * pkCrossScore) \ntotalScore := totalScore + (kumoBreakoutWeight * kumoBreakoutScore)\ntotalScore := totalScore + (senkouCrossWeight * senkouCrossScore)\ntotalScore := totalScore + (chikouCrossWeight * chikouCrossScore)\ntotalScore := totalScore + (pricePlacementWeight * pricePlacementScore)\ntotalScore := totalScore + (chikouPlacementWeight * chikouPlacementScore)\n\nmaxScore = strongPoints * (tkCrossWeight + pkCrossWeight + kumoBreakoutWeight + senkouCrossWeight + chikouCrossWeight + pricePlacementWeight + chikouPlacementWeight)\nnormalizedScore = 100 * totalScore / maxScore\n\nbase = hline(50, color=gray, linestyle=solid, linewidth=2, title=\"Base\")\nmax = hline(100, color=gray, linestyle=solid, title=\"Max\")\nmin = hline(-100, color=gray, linestyle=solid, title=\"Min\")\nfill(max, base, color=green, title=\"Bullish\")\nfill(min, base, color=red, title=\"Bearish\")\nplot(normalizedScore, color=orange, linewidth=3, title=\"Total Score\")\n\n\n// // == plot ichimoku ==\n\n// // Tenkan Sen (turning line) (blue)\n//plot(tenkanSen, color=blue, title=\"Tenkan Sen (Turning/Conversion Line)\", linewidth=3)\n\n// // Kijun Sen (base/standard line) (red)\n//plot(kijunSen, color=red, title=\"Kijun Sen (Standard/Base Line)\", linewidth=3)\n\n// // Chikou Span (lagging line) (green)\n//plot(close, offset = -displacement, color=green, title=\"Chikou Span (Lagging Span)\", linewidth=3)\n\n// // Senkou Span A\n//renderSenkouA = avg(tenkanSen, kijunSen) // used only for rendering below\n//p1 = plot(renderSenkouA, offset = displacement, color=green, title=\"Senkou Span (Leading Span) A\")\n\n// // Senkou Span B\n//renderSenkouB = donchian(senkouSpanPeriods) // used only for rendering below\n//p2 = plot(renderSenkouB, offset = displacement, color=red, title=\"Senkou Span (Leading Span) B\")\n\n// // i.e. Kumo cloud colouring\n//fill(p1, p2, color = renderSenkouA > renderSenkouB ? green : red)\n\n\n// // == strategy moves == \n//simulateBuys = input(true, title=\"Simulate Buys\")\nbuyThreshold = input(80.0, title=\"Buy Threshold\", type=float, step=0.1)\nsellThreshold = input(50.0, title=\"Sell Threshold\", type=float, step=0.1)\n\n\nbuyCondition = normalizedScore > buyThreshold\nsellCondition = normalizedScore < sellThreshold\n//strategy.entry(\"buy\", true, 1, when = buyCondition)\n//strategy.close(\"buy\", when = sellCondition)\n\n\n\n\n// === Upgraded Conditions Framework ===\n\n////////////////////////////////////////////////////////////////////////////\n\nlong_entry = buyCondition == true\n\nshort_entry = sellCondition == true\n\nlong_exit = short_entry    //Close Long Condition Here (Optional)\n\nshort_exit = long_entry   //Close Short Condition Here (Optional)\n\n///////////////////////////////////////////////////////////////////////////\n\n// init these values here, they will get updated later as more decisions are made\nlast_long_close = na\nlast_short_close = na\n\n// === Long position detection ===\n// longs open\nlongo = 0\nlongo := nz(longo[1])\n// longs closed\nlongc = 0\nlongc := nz(longc[1])\nif long_entry\n    longo := longo + 1\n    longc := 0\nif long_exit\n    longc := longc + 1\n    longo := 0\n// === /END\n\n// === Short position detection ===\nshorto = 0\nshorto := nz(shorto[1])\nshortc = 0\nshortc := nz(shortc[1])\nif short_entry\n    shorto := shorto + 1\n    shortc := 0\nif short_exit\n    shortc := shortc + 1\n    shorto := 0\n// === /END\n\n// === Pyramiding Settings ===\npyr = input(1, title=\"Pyramiding Setting\")\n//pyr = 1\nlongCondition = long_entry and longo <= pyr\nlongX = long_exit and longc <= pyr\nshortCondition = short_entry and shorto <=pyr\nshortX = short_exit and shortc <=pyr\n// === /END\n\n// === Get Last Position Price ===\nlast_open_longCondition = na\nlast_open_shortCondition = na\n// last open prices\nlast_open_longCondition := longCondition ? close : nz(last_open_longCondition[1])\nlast_open_shortCondition := shortCondition ? close : nz(last_open_shortCondition[1])\n// === /END\n\n// === Check For Long/Short ===\nlast_longCondition = na\nlast_shortCondition = na\n// last open times\nlast_longCondition := longCondition ? time : nz(last_longCondition[1])\nlast_shortCondition := shortCondition ? time : nz(last_shortCondition[1])\nlast_longClose = longX ? time : nz(last_long_close[1])\nlast_shortClose = shortX ? time : nz(last_short_close[1])\n\nin_longCondition = last_longCondition > last_shortCondition and last_longCondition >= last_longClose\nin_shortCondition = last_shortCondition > last_longCondition and last_shortCondition >= last_shortClose\n// === /END\n\n// === Stop Loss (Long) ===\nisSLl = input(false, \"Stop Loss (Long)\")\nsll = input(6, \"Stop Loss %\", type=float, step=0.2, minval=0, maxval=100) / 100\nlong_call_sl = last_open_longCondition * (1 - sll)\nlong_sl = isSLl and low <= long_call_sl and longCondition == 0\n// === /END\n\n// === Stop Loss (Short) ===\nisSLs = input(false, \"Stop Loss (Short)\")\nsls = input(6, \"Stop Loss %\", type=float, step=0.2, minval=0, maxval=100) / 100\nshort_call_sl = last_open_shortCondition * (1 + sls)\nshort_sl = isSLs and high >= short_call_sl and shortCondition == 0\n// === /END\n\n// === Trailing Stop ===\nlast_high = na\nlast_low = na\nlast_high := in_longCondition ? (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1]) : na\nlast_low := in_shortCondition ? (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1]) : na\nisTSl = input(false, \"Trailing Stop Long\")\ntsil = input(25, \"Activate Trailing Stop % Long\", type=float, step=1, minval=0, maxval=100) / 100\ntsl = input(8, \"Trailing Stop % Long\", type=float, step=1, minval=0, maxval=100) / 100\nlong_call_ts = last_high * (1 - tsl)\nlong_call_tsi = last_open_longCondition * (1 + tsil)\nlong_ts = isTSl and not na(last_high) and low <= long_call_ts and longCondition == 0 and last_high >= long_call_tsi\nisTSs = input(false, \"Trailing Stop Short\")\ntsis = input(25, \"Activate Trailing Stop % Short\", type=float, step=1, minval=0, maxval=100) / 100\ntss = input(8, \"Trailing Stop % Short\", type=float, step=1, minval=0, maxval=100) / 100\nshort_call_ts = last_low * (1 + tss)\nshort_call_tsi = last_open_shortCondition * (1 - tsis)\nshort_ts = isTSs and not na(last_low) and high >= short_call_ts and shortCondition == 0 and last_low <= short_call_tsi\n// === /END\n\n// === Create Single Close For All Closing Conditions  ===\ncloselong = long_sl or long_ts or longX\ncloseshort = short_sl or short_ts or shortX\n\n// Get Last Close\nlast_long_close := closelong ? time : nz(last_long_close[1])\nlast_short_close := closeshort ? time : nz(last_short_close[1])\n\n// Check For Close Since Last Open\nif closelong and last_long_close[1] > last_longCondition\n    closelong := false\n\nif closeshort and last_short_close[1] > last_shortCondition\n    closeshort := false\n// === /END\n\n////////////////////////////////////////////////////////////////////////////\n\n// === Alarm Settings ===\n//alertcondition(longCondition==1, title='LONG', message='LONG')\n//alertcondition(closelong==1, title='EXIT LONG', message='EXIT LONG')\n//alertcondition(shortCondition==1, title='SHORT', message='SHORT')\n//alertcondition(closeshort==1, title='EXIT SHORT', message='EXIT SHORT')\n// === /END\n\n////////////////////////////////////////////////////////////////////////////\n\n// === Visuals & Debugs Here ===\n//Remove \"//\" To Check/Debug The Code Above\n// Signal Shapes\n//plotshape(longCondition[1]==1, title='LONG', style=shape.triangleup, size=size.large, color=#02CB80, location= location.belowbar)\n//plotshape(shortCondition[1]==1, title='SHORT', style=shape.triangledown, size=size.large, color=#DC143C, location=location.abovebar)\n//plotshape(shortCondition[1]==0 and closelong[1]==1, title='EXIT LONG', style=shape.xcross, color=#02CB80, location=location.belowbar, transp=0)\n//plotshape(longCondition[1]==0 and closeshort[1]==1, title='EXIT SHORT', style=shape.xcross, color=#DC143C, location=location.abovebar, transp=0)\n// SL Plot\n//slColor = (isSLl or isSLs) and (in_longCondition or in_shortCondition) ? red : white\n//plot(isSLl and in_longCondition ? long_call_sl : na, \"Long SL\", slColor, style=3, linewidth=2)\n//plot(isSLs and in_shortCondition ? short_call_sl : na, \"Short SL\", slColor, style=3, linewidth=2)\n// TP Plot\n//tpColor = isTP and (in_longCondition or in_shortCondition) ? purple : white\n//plot(isTP and in_longCondition ? long_call_tp : na, \"Long TP\", tpColor, style=3, linewidth=2)\n//plot(isTP and in_shortCondition ? short_call_tp : na, \"Short TP\", tpColor, style=3, linewidth=2)\n// TS Plot\n//tsColor = (isTSl or isTSs) and (in_longCondition or in_shortCondition) ? orange : white\n//tsiColor = (isTSl or isTSs) and (in_longCondition or in_shortCondition) ? white : orange\n//plot(isTSl and in_longCondition ? long_call_tsi : na, \"Long Trailing\", tsiColor, style=3, linewidth=2)\n//plot(isTSs and in_shortCondition ? short_call_tsi : na, \"Short Trailing\", tsiColor, style=3, linewidth=2)\n//plot(isTSl and in_longCondition and last_high > long_call_tsi ? long_call_ts : na, \"Long Trailing\", tsColor, style=2, linewidth=2)\n//plot(isTSs and in_shortCondition and last_low < short_call_tsi  ? short_call_ts : na, \"Short Trailing\", tsColor, style=2, linewidth=2)\n// === /END\n\n////////////////////////////////////////////////////////////////////////////\n//                                                                        //\n//             REMOVE THE CODE BELOW FOR STUDY CONVERSION                 //\n//                                                                        //\n////////////////////////////////////////////////////////////////////////////\n\n// === Strategy Direction Switch ===\ndir = input(title = \"Strategy Direction\", defval=\"Long\") //, options=[\"Long\", \"Short\", \"Both\"]\n// === /END\n\n// === Backtesting Dates ===\ntestPeriodSwitch = input(false, \"Custom Backtesting Dates\")\ntestStartYear = input(2017, \"Backtest Start Year\")\ntestStartMonth = input(1, \"Backtest Start Month\")\ntestStartDay = input(1, \"Backtest Start Day\")\ntestPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)\ntestStopYear = input(9999, \"Backtest Stop Year\")\ntestStopMonth = input(1, \"Backtest Stop Month\")\ntestStopDay = input(1, \"Backtest Stop Day\")\ntestPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)\ntestPeriod() =>\n    time >= testPeriodStart and time <= testPeriodStop ? true : false\nisPeriod = testPeriodSwitch == true ? testPeriod() : true\n// === /END\n\n// === Strategy ===\nif isPeriod and dir==\"Both\"\n    if (longCondition)\n        strategy.entry(\"Long\",strategy.long)\n    if (closelong) and not shortCondition\n        strategy.close(\"Long\")\n    if (shortCondition)\n        strategy.entry(\"Short\",strategy.short)\n    if (closeshort) and not longCondition\n        strategy.close(\"Short\")\n\nif isPeriod and dir==\"Long\"\n    if (longCondition)\n        strategy.entry(\"Long\",strategy.long)\n    if (closelong)\n        strategy.close(\"Long\")\n\nif isPeriod and dir==\"Short\"\n    if (shortCondition)\n        strategy.entry(\"Short\",strategy.short)\n    if (closeshort)\n        strategy.close(\"Short\")\n// === /END\n\n////////////////////////////////////////////////////////////////////////////\n//                                                                        //\n//                 ULTIMATE PINE INJECTOR V1.2                            //\n//                                                                        //\n//////////////////////===ANION=CODE=END====/////////////////////////////////"
  },
  {
    "path": "extensions/strategies/ichimoku_score/strategy.js",
    "content": "\n//                    ======= Ichimoku Signals Score =======\n\n/*\n\nThe Ichimoku signals, indeed all Ichimoku elements, should never be taken in isolation, but considered in the context\nof the overall chart.  Ichimoku Kinko Hyo is a visual technical analysis system and the charts are designed to be\nconsidered in their entirety, with regard given to the relationships between all of the elements, including the price.\nAs such, Ichimoku is not suitable for automated or \"single event\" decision making.\n\nRemember that Ichimoku Kinko Hyo is a technical trend trading charting system and trends can and do change, so your\nreadings of the charts should be probabilistic, rather than predictive.  As with most technical analysis methods,\nIchimoku is likely to produce frequent conflicting signals in non-trending markets.\n\nThe five kinds of signal are described below.  Most can be classified as strong, neutral, or weak by their proximate\nrelationship to the Kumo (cloud), but each signal may be further strengthened, weakened, or nullified by the\nrelationships between other elements.  All signals must be considered in respect to the overall chart.\n\nFor a better understanding of how to read ichimoku please refer to http://www.ichimokutrader.com/signals.html\nCode based on a TradingView.com script at https://www.tradingview.com/v/u0NN8zNu/\n\nIf you appreciate the work and the man hours that went into creating this strategy, please consider giving back.\nLoneWolf345 ETH = 0xa42f6d21f1e52f7fbaeaa0f58d1cc4b9a58f2dcc , BTC = 15L8QstCQG4ho6139hVaqLxkAzcjnqBbf6\nTravis      ETH = 0xdA963A127BeCB08227583d11f912F400D5347060 , BTC = 3KKHdBJpEGxghxGazoE4X7ihyr2q6nHUvW\n\n*/\n\n\nlet z = require('zero-fill')\n  , n = require('numbro')\n  , Phenotypes = require('../../../lib/phenotype')\n  , crossover = require('../../../lib/helpers').crossover\n  , crossunder = require('../../../lib/helpers').crossunder\n\nmodule.exports = {\n  name: 'ichimoku_score',\n  description: 'Associate various ichimoku signals with a score.',\n\n  getOptions: function () {\n    this.option('period', 'period length eg 10m', String, '60m')\n    this.option('min_periods', 'min. number of history periods', Number, 150)\n\n    // == ichimoku inputs ==\n    this.option('tenkenSenPeriods', 'Tenkan-sen (Conversion Line) Periods', Number, 9)                           //default 9\n    this.option('kijunSenPeriods', 'Kijun-sen (Base Line) Periods', Number, 26)                                  //default 26\n    this.option('senkouSpanPeriods', 'Senkou (Leading) Span B Periods', Number, 52)                              //default 52\n    this.option('displacement', 'Displacement', Number, 26)                                                      //default 26\n\n    // == score inputs ==\n    this.option('tkCrossWeight', 'TK Cross Importance Weight', Number, 1)                                        //range 0 - 2 Default = 1\n    this.option('pkCrossWeight', 'PK Cross Importance Weight', Number, 1)                                        //range 0 - 2 Default = 1\n    this.option('kumoBreakoutWeight', 'Kumo Breakout Importance Weight', Number, 1)                              //range 0 - 2 Default = 1\n    this.option('senkouCrossWeight', 'Senkou (Leading) Span Cross Importance Weight', Number, 1)                 //range 0 - 2 Default = 1\n    this.option('chikouCrossWeight', 'Chikou (Lagging) Span Cross Importance Weight', Number, 1)                 //range 0 - 2 Default = 1\n    this.option('chikouPlacementWeight', 'Chikou (Lagging) Span Relative to Cloud Importance Weight', Number, 1) //range 0 - 2 Default = 1\n    this.option('pricePlacementWeight', 'Price Relative to Cloud Importance Weight', Number, 1)                  //range 0 - 2 Default = 1\n\n    this.option('weakPoints', 'Weak Point Value', Number, 0.5)                                                   //range 0 - 2 Default = 0.5\n    this.option('neutralPoints', 'Neutral Point Value', Number, 1)                                               //range 0 - 2 Default = 1\n    this.option('strongPoints', 'Strong Point Value', Number, 2)                                                 //range 0 - 2 Default = 2\n\n    this.option('buyLevel', 'when to signal buy', Number, 50)                                                    //range -100 - 100 Default = 50\n    this.option('sellLevel', 'when to signal sell', Number, 49)                                                  //range -100 - 100 Default = 50\n\n  },\n\n  calculate: function (s) {\n\n    if (s.lookback.length > s.options.min_periods) {\n\n\n\n      // == == generate ichimoku data == ==\n\n\n      s.period.tenkenSen = donchian(s, s.options.tenkenSenPeriods)\n      s.period.kijunSen = donchian(s, s.options.kijunSenPeriods)\n\n      s.period.senkouA = (s.period.tenkenSen + s.period.kijunSen) / 2\n      s.period.senkouB = donchian(s, s.options.senkouSpanPeriods)\n\n      // have to wait until displacement periods have passed\n      if (s.lookback.length > s.options.displacement) {\n\n        s.lookback[s.options.displacement].chikouSen = s.period.close\n\n        s.priceAboveKumo = valueAbove(s.period.close, s.period.senkouA, s.period.senkouB)\n        s.priceBelowKumo = valueBelow(s.period.close, s.period.senkouA, s.period.senkouB)\n        s.priceInsideKumo = !s.priceAboveKumo && !s.priceBelowKumo\n\n        // == == calculate score == ==\n\n\n        s.period.tkCrossScore = calcTkCross(s, s.lookback[0].tkCrossScore)\n        s.period.pkCrossScore = calcPkCross(s, s.lookback[0].pkCrossScore)\n        s.period.kumoBreakoutScore = calcKumoBreakout(s, s.lookback[0].kumoBreakoutScore)\n        s.period.senkouCrossScore =  calcSenkouCross(s, s.lookback[0].senkouCrossScore)\n        s.period.chikouCrossScore = calcChikouCross(s, s.lookback[0].chikouCrossScore)\n        s.period.pricePlacementScore = calcPricePlacement(s, s.lookback[0].pricePlacementScore)\n        s.period.chikouPlacementScore = calcChikouPlacement(s, s.lookback[0].chikouPlacementScore)\n\n        s.totalScore = (s.options.tkCrossWeight * s.period.tkCrossScore)\n        s.totalScore += (s.options.pkCrossWeight * s.period.pkCrossScore)\n        s.totalScore += (s.options.kumoBreakoutWeight * s.period.kumoBreakoutScore)\n        s.totalScore += (s.options.senkouCrossWeight * s.period.senkouCrossScore)\n        s.totalScore += (s.options.chikouCrossWeight * s.period.chikouCrossScore)\n        s.totalScore += (s.options.pricePlacementWeight * s.period.pricePlacementScore)\n        s.totalScore += (s.options.chikouPlacementWeight * s.period.chikouPlacementScore)\n\n        let maxScore = s.options.strongPoints * (s.options.tkCrossWeight + s.options.pkCrossWeight + s.options.kumoBreakoutWeight + s.options.senkouCrossWeight + s.options.chikouCrossWeight + s.options.pricePlacementWeight + s.options.chikouPlacementWeight)\n        s.normalizedScore = 100 * s.totalScore / maxScore\n\n      }\n    }\n  },\n\n  onPeriod: function (s, cb) {\n\n\n    //    == Debugging ==\n\n    if (s.options.debug) {console.log('\\n== Options ==')}\n\n    if (s.options.debug) {console.log('tenkenSenPeriods: ' + s.options.tenkenSenPeriods)}\n    if (s.options.debug) {console.log('kijunSenPeriods: ' + s.options.kijunSenPeriods)}\n    if (s.options.debug) {console.log('senkouSpanPeriods: ' + s.options.senkouSpanPeriods)}\n    if (s.options.debug) {console.log('displacement: ' + s.options.displacement)}\n\n    if (s.options.debug) {console.log('buyLevel: ' + s.options.buyLevel)}\n    if (s.options.debug) {console.log('sellLevel: ' + s.options.sellLevel)}\n\n\n    if (s.options.debug) {console.log('\\n== Ichimoku Data ==')}\n\n    if (s.options.debug) {console.log('Tenken-Sen (conversion Line):' + s.period.tenkenSen)}\n    if (s.options.debug) {console.log('Kijun-Sen (Base Line):' + s.period.kijunSen)}\n    if (s.options.debug) {console.log('senkouA (Leading):' + s.period.senkouA)}\n    if (s.options.debug) {console.log('senkouB (Leading):' + s.period.senkouB)}\n\n\n    if (s.options.debug) {console.log('\\n== Calculate Score ==')}\n\n    if (s.options.debug) {console.log('tkCrossScore:' + s.period.tkCrossScore)}\n    if (s.options.debug) {console.log('pkCrossScore:' + s.period.pkCrossScore)}\n    if (s.options.debug) {console.log('kumoBreakoutScore:' + s.period.kumoBreakoutScore)}\n    if (s.options.debug) {console.log('senkouCrossScore:' + s.period.senkouCrossScore)}\n    if (s.options.debug) {console.log('chikouCrossScore:' + s.period.chikouCrossScore)}\n    if (s.options.debug) {console.log('pricePlacementScore:' + s.period.pricePlacementScore)}\n    if (s.options.debug) {console.log('chikouPlacementScore:' + s.period.chikouPlacementScore)}\n\n\n    if (s.options.debug) {console.log('\\n== Buy / Sell signals ==')}\n\n    if (s.options.debug) {console.log('normalizedScore:' + s.normalizedScore)}\n    if (s.options.debug) {console.log('previousScore:' + s.previousScore)}\n    if (s.options.debug) {console.log('buy logic')}\n    if (s.options.debug) {console.log('if (s.normalizedScore > s.options.buyLevel && s.previousScore < s.options.buyLevel)')}\n    if (s.options.debug) {console.log('if (' + s.normalizedScore + ' > ' + s.options.buyLevel + ' && ' + s.previousScore + ' < ' + s.options.buyLevel + ')')}\n    if (s.options.debug) {console.log(s.normalizedScore > s.options.buyLevel && s.previousScore < s.options.buyLevel)}\n\n\n\n    // == == Buy / Sell Signals == ==\n\n\n\n    if (!s.previousScore) {s.previousScore = 0}\n\n    if (s.normalizedScore > s.options.buyLevel && s.previousScore < s.options.buyLevel) {\n      s.signal = 'buy'\n      s.previousScore = s.normalizedScore\n    } else if (s.normalizedScore > s.options.sellLevel && s.previousScore > s.options.buyLevel && s.previousScore < s.options.sellLevel) {\n      s.signal = 'buy'\n      s.previousScore = s.normalizedScore\n    } else if (s.normalizedScore < s.options.sellLevel && s.previousScore > s.options.sellLevel) {\n      s.signal = 'sell'\n      s.previousScore = s.normalizedScore\n    } else {\n      s.signal = null\n      s.previousScore = s.normalizedScore\n    }\n\n    cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    let color = 'cyan'\n\n    if (s.normalizedScore > 50) { color = 'green' } else if (s.normalizedScore < -50) { color = 'red' }\n    cols.push(z(10, 'S[' + n(s.normalizedScore).format('###.0') + ']', '')[color])\n\n    return cols\n  },\n\n  phenotypes: {\n\n    //General Options\n    period_length: Phenotypes.RangePeriod(45, 240, 'm'),\n    min_periods: Phenotypes.Range(150, 150), //Needs to be greater than senkouSpanPeriods\n    markdown_buy_pct: Phenotypes.RangeFloat(0, 0),\n    markup_sell_pct: Phenotypes.RangeFloat(0, 0),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,10),\n\n    //Strategy Specific\n    buyLevel: Phenotypes.RangeFactor(5, 100, 5),\n    sellLevel: Phenotypes.RangeFactor(5, 100, 5),\n\n    tenkenSenPeriods: Phenotypes.RangeFactor(5, 30, 1),\n    kijunSenPeriods: Phenotypes.RangeFactor(25, 75, 1),\n    senkouSpanPeriods: Phenotypes.RangeFactor(50, 150, 1),\n    displacement: Phenotypes.RangeFactor(20, 40, 1)\n\n  }\n}\n\n\n\n\n\n\n// == == Helpers == ==\n\n\n\nfunction resolve(src, fallback) { return isNaN(src) ? fallback : src}\n\n\nfunction donchian(s, len) {\n\n  let data = s.lookback.slice(0, len - 1),\n    lowData = [s.period.low, ...data.map(p => p.low)],\n    highData = [s.period.high, ...data.map(p => p.high)]\n\n  return (Math.min(...lowData) + Math.max(...highData)) / 2\n\n}\n\n\nfunction getIntersect(s, key1, key2) {\n\n  return (s.lookback[0][key1] * (s.period[key2] - s.lookback[0][key2]) -\n    s.lookback[0][key2] * (s.period[key1] - s.lookback[0][key1])) /\n      ((s.period[key2] - s.lookback[0][key2]) - (s.period[key1] - s.lookback[0][key1]))\n}\n\nfunction belowKumo(s, key, key1, key2) {\n\n  return valueBelowKumo(s, s.period[key], key1, key2)\n}\nfunction aboveKumo(s, key, key1, key2) {\n\n  return valueAboveKumo(s, s.period[key], key1, key2)\n}\n\nfunction valueBelowKumo(s, val, key1, key2) {\n\n  if(s.lookback.length >= s.options.displacement)\n    return valueBelow(val, s.lookback[s.options.displacement][key1], s.lookback[s.options.displacement][key2])\n  else\n    throw 'belowKumo, s.lookback.length < s.options.displacement'\n}\n\nfunction valueAboveKumo(s, val, key1, key2) {\n\n  if(s.lookback.length >= s.options.displacement)\n    return valueAbove(val, s.lookback[s.options.displacement][key1], s.lookback[s.options.displacement][key2])\n  else\n    throw 'aboveKumo, s.lookback.length < s.options.displacement'\n}\n\nfunction valueAbove(val, target1, target2) {\n  return val > Math.max(target1, target2)\n}\n\nfunction valueBelow(val, target1, target2) {\n  return val < Math.min(target1, target2)\n}\n\n\n\n// == == ichimoku cloud signals == ==\n\n\n\n\n\n// == Tenkan Sen (turning line) / Kijun Sen (standard line) Cross ==\nfunction calcTkCross(s, previousVal) {\n\n  let bullish = crossover(s, 'tenkenSen', 'kijunSen')\n  let bearish = crossunder(s, 'tenkenSen', 'kijunSen')\n\n  let intersect = getIntersect(s, 'tenkenSen', 'kijunSen')\n  let above = valueAboveKumo(s, intersect, 'senkouA', 'senkouB')\n  let below = valueBelowKumo(s, intersect, 'senkouA', 'senkouB')\n  let inside = !above && !below\n\n  let score =  resolve(previousVal, 0)\n  if (bullish && below) {score = s.options.weakPoints}      //A weak bullish signal occurs when the cross is below the Kumo.\n  if (bullish && inside) {score = s.options.neutralPoints}  //A neutral bullish signal occurs when the cross is inside the Kumo.\n  if (bullish && above) {score = s.options.strongPoints}    //A strong bullish signal occurs when the cross is above the Kumo.\n  if (bearish && below) {score = -s.options.strongPoints}   //A strong bearish signal occurs when the cross is below the Kumo.\n  if (bearish && inside) {score = -s.options.neutralPoints} //A neutral bearish signal occurs when the cross is inside the Kumo.\n  if (bearish && above) {score = -s.options.weakPoints}     //A weak bearish signal occurs when the cross is above the Kumo.\n\n  return (score)\n\n}\n\n// == Price and Kijun Sen (standard line) Cross ==\nfunction calcPkCross(s, previousVal) {\n\n  let bullish = crossover(s, 'close', 'kijunSen')\n  let bearish = crossunder(s, 'close', 'kijunSen')\n\n  let intersect = getIntersect(s, 'close', 'kijunSen')\n  let above = valueAboveKumo(s, intersect, 'senkouA', 'senkouB')\n  let below = valueBelowKumo(s, intersect, 'senkouA', 'senkouB')\n  let inside = !above && !below\n\n  let score =  resolve(previousVal, 0)\n  if (bullish && below) {score = s.options.weakPoints}      //A weak bullish signal occurs when the cross is below the Kumo.\n  if (bullish && inside) {score = s.options.neutralPoints}  //A neutral bullish signal occurs when the cross is inside the Kumo.\n  if (bullish && above) {score = s.options.strongPoints}    //A strong bullish signal occurs when the cross is above the Kumo.\n  if (bearish && below) {score = -s.options.strongPoints}   //A strong bearish signal occurs when the cross is below the Kumo.\n  if (bearish && inside) {score = -s.options.neutralPoints} //A neutral bearish signal occurs when the cross is inside the Kumo.\n  if (bearish && above) {score = -s.options.weakPoints}     //A weak bearish signal occurs when the cross is above the Kumo.\n\n  return (score)\n\n}\n\n// == Kumo Breakouts ==\nfunction calcKumoBreakout(s, previousVal) {\n\n  let bullish = (crossover(s, 'close', 'senkouA') && s.period.senkouA >= s.period.senkouB) || (crossover(s, 'close', 'senkouB') && s.senkouB >= s.senkouA)\n  let bearish = (crossunder(s, 'close', 'senkouB') && s.period.senkouA >= s.period.senkouB) || (crossover(s, 'close', 'senkouA') && s.senkouB >= s.senkouA)\n\n  let score =  resolve(previousVal, 0)\n  if (bullish) {score = s.options.strongPoints}  //A bullish signal occurs when the price goes upwards through the top of the Kumo.\n  if (bearish) {score = -s.options.strongPoints} //A bearish signal occurs when the price goes downwards through the bottom of the Kumo.\n\n  return (score)\n\n}\n\n// == Senkou Span Cross ==\n// The Senkou Span Cross signal occurs when the Senkou Span A (1st leading line) crosses the Senkou Span B (2nd leading line).\n// NOTE: this cross occurs ahead of the price, since it's displaced to the right; this displacement must be removed\nfunction calcSenkouCross(s, previousVal) {\n\n  s.period.noDpsenkouA = (s.period.tenkenSen + s.period.kijunSen) / 2 //Senkou Span A (no displacement)\n  s.period.noDpsenkouB = donchian(s, s.options.senkouSpanPeriods) //senkou Span B (no displacement)\n\n  let bullish = crossover(s, 'noDpsenkouA', 'noDpsenkouB')\n  let bearish = crossunder(s, 'noDpsenkouA', 'noDpsenkouB')\n\n  let score =  resolve(previousVal, 0)\n  if (bullish && s.priceBelowKumo) {score = s.options.weakPoints}      //A weak bullish signal occurs if the current price is below the Kumo.\n  if (bullish && s.priceInsideKumo) {score = s.options.neutralPoints}  //A neutral bullish signal occurs if the current price is inside the Kumo.\n  if (bullish && s.priceAboveKumo) {score = s.options.strongPoints}    //A strong bullish signal occurs if the current price is above the Kumo.\n  if (bearish && s.priceBelowKumo) {score = -s.options.strongPoints}   //A strong bearish signal occurs if the current price is below the Kumo.\n  if (bearish && s.priceInsideKumo) {score = -s.options.neutralPoints} //A neutral bearish signal occurs if the current price is inside the Kumo.\n  if (bearish && s.priceAboveKumo) {score = -s.options.weakPoints}     //A weak bearish signal occurs if the current price is above the Kumo.\n\n  return (score)\n\n}\n\n// == Chikou Span Cross ==\n// The Chikou Span Cross signal occurs when the Chikou Span (Lagging line) rises above or falls below the price.\nfunction calcChikouCross(s, previousVal) {\n\n  s.period.leadline = s.lookback[s.options.displacement].close//offset(s.period.close, s.options.displacement)\n  let bullish = crossover(s, 'close', 'leadline')\n  let bearish = crossunder(s, 'close', 'leadline')\n\n  let score =  resolve(previousVal, 0)\n  if (bullish && s.priceBelowKumo) {score = s.options.weakPoints}      //A weak bullish signal occurs if the current price is below the Kumo.\n  if (bullish && s.priceInsideKumo) {score = s.options.neutralPoints}  //A neutral bullish signal occurs if the current price is inside the Kumo.\n  if (bullish && s.priceAboveKumo) {score = s.options.strongPoints}    //A strong bullish signal occurs if the current price is above the Kumo.\n  if (bearish && s.priceBelowKumo) {score = -s.options.strongPoints}   //A weak bearish signal occurs if the current price is above the Kumo.\n  if (bearish && s.priceInsideKumo) {score = -s.options.neutralPoints} //A neutral bearish signal occurs if the current price is inside the Kumo.\n  if (bearish && s.priceAboveKumo) {score = -s.options.weakPoints}     //A strong bearish signal occurs if the current price is below the Kumo.\n\n  return (score)\n\n}\n\n\n// == price relative to cloud ==\nfunction calcPricePlacement(s, previousVal) {\n\n  let score =  resolve(previousVal, 0)\n  if (s.priceAboveKumo) {score = s.options.strongPoints}\n  if (s.priceInsideKumo) {score = s.options.neutralPoints}\n  if (s.priceBelowKumo) {score = -s.options.strongPoints}\n\n  return (score)\n\n}\n\n\n\n// == lag line releative to cloud ==\nfunction calcChikouPlacement(s, previousVal) {\n\n  let score =  resolve(previousVal, 0)\n  if(s.lookback.length >= s.options.displacement) {\n    // above\n    if(aboveKumo(s, 'close', 'senkouA', 'senkouB'))\n      score = s.options.strongPoints\n    // below\n    else if(belowKumo(s, 'close', 'senkouA', 'senkouB'))\n      score = -s.options.strongPoints\n    else\n      score = 0\n  }\n\n  return (score)\n}"
  },
  {
    "path": "extensions/strategies/kc/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , kc = require('../../../lib/kc')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'kc',\n  description: 'Buy when (Signal ≤ Lower Keltner Channel) and sell when (Signal ≥ Upper Keltner Channel).',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '1h')\n    this.option('period_length', 'period length, same as --period', String, '1h')\n    this.option('kc_size', 'period size', Number, 20)\n    this.option('kc_multiplier', 'multiplier for the average true range', Number, 1)\n    this.option('kc_upper_channel_pct', 'pct the current price should be near the keltner upper channel before we sell', Number, 0)\n    this.option('kc_lower_channel_pct', 'pct the current price should be near the keltner lower channel before we buy', Number, 0)\n  },\n\n  calculate: function (s) {\n    // calculate Keltner Channels\n    kc(s, 'kc', s.options.kc_size)\n  },\n\n  onPeriod: function (s, cb) {\n    if (s.period.kc) {\n      if (s.period.kc.upper && s.period.kc.lower) {\n        let upperChannel = s.period.kc.upper[s.period.kc.upper.length-1]\n        let lowerChannel = s.period.kc.lower[s.period.kc.lower.length-1]\n        if (s.period.close > (upperChannel / 100) * (100 - s.options.kc_upper_channel_pct)) {  \n          s.signal = 'sell'\n        } else if (s.period.close < (lowerChannel / 100) * (100 + s.options.kc_lower_channel_pct)) {\n          s.signal = 'buy'\n        } else {\n          s.signal = null // hold\n        }\n      }\n    }\n    cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    if (s.period.kc) {\n      if (s.period.kc.upper && s.period.kc.lower) {\n        let upperChannel = s.period.kc.upper[s.period.kc.upper.length-1]\n        let lowerChannel = s.period.kc.lower[s.period.kc.lower.length-1]\n        var color = 'grey'\n        if (s.period.close > (upperChannel / 100) * (100 - s.options.kc_upper_channel_pct)) {\n          color = 'green'\n        } else if (s.period.close < (lowerChannel / 100) * (100 + s.options.kc_lower_channel_pct)) {\n          color = 'red'\n        }\n        cols.push(z(8, n(s.period.close).format('+00.0000'), ' ')[color])\n        cols.push(z(8, n(lowerChannel).format('0.000000').substring(0,7), ' ').cyan)\n        cols.push(z(8, n(upperChannel).format('0.000000').substring(0,7), ' ').cyan)\n      }\n    }\n    else {\n      cols.push('         ')\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    kc_size: Phenotypes.Range(1, 40),\n    kc_upper_channel_pct: Phenotypes.RangeFloat(-1, 30),\n    kc_lower_channel_pct: Phenotypes.RangeFloat(-1, 30)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/macd/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , ema = require('../../../lib/ema')\n  , rsi = require('../../../lib/rsi')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'macd',\n  description: 'Buy when (MACD - Signal > 0) and sell when (MACD - Signal < 0).',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '1h')\n    this.option('period_length', 'period length, same as --period', String, '1h')\n    this.option('min_periods', 'min. number of history periods', Number, 52)\n    this.option('ema_short_period', 'number of periods for the shorter EMA', Number, 12)\n    this.option('ema_long_period', 'number of periods for the longer EMA', Number, 26)\n    this.option('signal_period', 'number of periods for the signal EMA', Number, 9)\n    this.option('up_trend_threshold', 'threshold to trigger a buy signal', Number, 0)\n    this.option('down_trend_threshold', 'threshold to trigger a sold signal', Number, 0)\n    this.option('overbought_rsi_periods', 'number of periods for overbought RSI', Number, 25)\n    this.option('overbought_rsi', 'sold when RSI exceeds this value', Number, 70)\n  },\n\n  calculate: function (s) {\n    if (s.options.overbought_rsi) {\n      // sync RSI display with overbought RSI periods\n      s.options.rsi_periods = s.options.overbought_rsi_periods\n      rsi(s, 'overbought_rsi', s.options.overbought_rsi_periods)\n      if (!s.in_preroll && s.period.overbought_rsi >= s.options.overbought_rsi && !s.overbought) {\n        s.overbought = true\n        if (s.options.mode === 'sim' && s.options.verbose) console.log(('\\noverbought at ' + s.period.overbought_rsi + ' RSI, preparing to sold\\n').cyan)\n      }\n    }\n\n    // compute MACD\n    ema(s, 'ema_short', s.options.ema_short_period)\n    ema(s, 'ema_long', s.options.ema_long_period)\n    if (s.period.ema_short && s.period.ema_long) {\n      s.period.macd = (s.period.ema_short - s.period.ema_long)\n      ema(s, 'signal', s.options.signal_period, 'macd')\n      if (s.period.signal) {\n        s.period.macd_histogram = s.period.macd - s.period.signal\n      }\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (!s.in_preroll && typeof s.period.overbought_rsi === 'number') {\n      if (s.overbought) {\n        s.overbought = false\n        s.trend = 'overbought'\n        s.signal = 'sell'\n        return cb()\n      }\n\n    }\n\n    if (typeof s.period.macd_histogram === 'number' && typeof s.lookback[0].macd_histogram === 'number') {\n      if ((s.period.macd_histogram - s.options.up_trend_threshold) > 0 && (s.lookback[0].macd_histogram - s.options.up_trend_threshold) <= 0) {\n        s.signal = 'buy'\n      } else if ((s.period.macd_histogram + s.options.down_trend_threshold) < 0 && (s.lookback[0].macd_histogram + s.options.down_trend_threshold) >= 0) {\n        s.signal = 'sell'\n      } else {\n        s.signal = null  // hold\n      }\n    }\n    cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    if (typeof s.period.macd_histogram === 'number') {\n      var color = 'grey'\n      if (s.period.macd_histogram > 0) {\n        color = 'green'\n      }\n      else if (s.period.macd_histogram < 0) {\n        color = 'red'\n      }\n      cols.push(z(8, n(s.period.macd_histogram).format('+00.0000'), ' ')[color])\n      cols.push(z(8, n(s.period.overbought_rsi).format('00'), ' ').cyan)\n    }\n    else {\n      cols.push('         ')\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 200),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    ema_short_period: Phenotypes.Range(1, 20),\n    ema_long_period: Phenotypes.Range(20, 100),\n    signal_period: Phenotypes.Range(1, 20),\n    up_trend_threshold: Phenotypes.Range(0, 50),\n    down_trend_threshold: Phenotypes.Range(0, 50),\n    overbought_rsi_periods: Phenotypes.Range(1, 50),\n    overbought_rsi: Phenotypes.Range(20, 100)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/momentum/strategy.js",
    "content": "let z = require('zero-fill')\n  , n = require('numbro')\n  , momentum = require('../../../lib/momentum')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'momentum',\n  description: 'MOM = Close(Period) - Close(Length)',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '1h')\n    this.option('period_length', 'period length, same as --period', String, '1h')\n    this.option('momentum_size', 'number of periods to look back for momentum', Number, 5)\n  },\n\n  calculate: function (s) {\n    if (s.in_preroll) { return }\n    momentum(s, 'mom0', 'close', s.options.momentum_size)\n    momentum(s, 'mom1', 'mom0', 1)\n  },\n\n  onPeriod: function (s, cb) {\n    if (s.in_preroll) {\n      cb()\n      return\n    }\n\n    if (s.period.mom0 > 0 && s.period.mom1 > 0) {\n      s.signal = 'buy'\n    }\n    if (s.period.mom0 < 0 && s.period.mom1 < 0) {\n      s.signal = 'sell'\n    }\n    cb()\n  },\n\n  onReport: function (s) {\n    let cols = [], color\n    if (s.period.mom0 != null) {\n      color = s.period.mom0 < 0 ? 'red' : s.period.mom0 > 0 ? 'green' : 'grey'\n      cols.push(z(5, n(s.period.mom0).format('000'), ' ')[color])\n    } else {\n      cols.push(' '.repeat(5))\n    }\n    if (s.period.mom1 != null) {\n      color = s.period.mom1 < 0 ? 'red' : s.period.mom1 > 0 ? 'green' : 'grey'\n      cols.push(z(5, n(s.period.mom1).format('000'), ' ')[color])\n    } else {\n      cols.push(' '.repeat(5))\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 2500),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    momentum_size: Phenotypes.Range(1,20)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/multi/strategy.js",
    "content": "var pivot = require('../pivot/strategy')\nvar macd = require('../macd/strategy')\nvar ehlers_ft = require('../ehlers_ft/strategy')\nvar momentum = require('../momentum/strategy')\n\nvar Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'multi',\n  description: 'This strategy utilize: pivot macd momentum ehlers_ft.',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '30m')\n    this.option('period_length', 'period length, same as --period', String, '30m')\n    \n    // PIVOT\n    // this.option('period_length', 'period length', String, '30m')\n    this.option('min_periods', 'min periods', Number, 50)\n    this.option('up', 'up', Number, 1)\n    this.option('down','down', Number, 1)\n\n    // MACD / TA_MACD\n    //this.option('period', 'period length, same as --period_length', String, '1h')\n    //this.option('period_length', 'period length, same as --period', String, '1h')\n    //this.option('min_periods', 'min. number of history periods', Number, 52)\n    this.option('ema_short_period', 'number of periods for the shorter EMA', Number, 12)\n    this.option('ema_long_period', 'number of periods for the longer EMA', Number, 26)\n    this.option('signal_period', 'number of periods for the signal EMA', Number, 9)\n    this.option('up_trend_threshold', 'threshold to trigger a buy signal', Number, 0)\n    this.option('down_trend_threshold', 'threshold to trigger a sold signal', Number, 0)\n    this.option('overbought_rsi_periods', 'number of periods for overbought RSI', Number, 25)\n    this.option('overbought_rsi', 'sold when RSI exceeds this value', Number, 70)\n\n    // ETHLERS_FT\n    //this.option('period', 'period length, same as --period_length', String, '30m')\n    //this.option('period_length', 'period length, same as --period', String, '30m')\n    this.option('fish_pct_change', 'percent change of fisher transform for reversal', Number, 0)\n    this.option('length', 'number of past periods to use including current', Number, 10)\n    this.option('src', 'use period.close if not defined. can be hl2, hlc3, ohlc4, HAhlc3, HAohlc4', String, 'hl2')\n    this.option('pos_length', 'check this number of previous periods have opposing pos value', Number, 1)\n\n    // MOMENTUM\n    //this.option('period', 'period length, same as --period_length', String, '1h')\n    //this.option('period_length', 'period length, same as --period', String, '1h')\n    this.option('momentum_size', 'number of periods to look back for momentum', Number, 5)\n  },\n\n  calculate: function (s) {\n    pivot.calculate(s)\n    macd.calculate(s)\n    ehlers_ft.calculate(s)\n    momentum.calculate(s)\n  },\n\n  onPeriod: function (s, cb) {\n    let totalBuy = 0\n    let totalSell = 0\n    if(s && s.lookback && s.lookback.constructor === Array && s.lookback.length > 5 && s.lookback[1].high && s.lookback[5].high) {\n      pivot.onPeriod(s, function(){})\n      if(s.signal == 'buy') \n        totalBuy += 1\n      if(s.signal == 'sell') \n        totalSell += 1\n    }\n    macd.onPeriod(s, function(){})\n    if(s.signal == 'buy') \n      totalBuy += 1\n    if(s.signal == 'sell') \n      totalSell += 1\n    ehlers_ft.onPeriod(s, function(){})\n    if(s.signal == 'buy') \n      totalBuy += 1\n    if(s.signal == 'sell') \n      totalSell += 1\n    momentum.onPeriod(s, function(){})\n    if(s.signal == 'buy') \n      totalBuy += 1\n    if(s.signal == 'sell') \n      totalSell += 1\n    \n    s.signal = null\n    if(totalBuy >= 2 && totalBuy >= totalSell && totalSell == 0)\n      s.signal = 'buy'\n    if(totalSell >= 2 && totalSell >= totalBuy && totalBuy == 0)\n      s.signal = 'sell'\n\n    if(s.signal == 'buy' && s.stopTriggered) {\n      s.stopTriggered = false\n    }\n\n    if(s.signal == 'sell' && s.stopTriggered) {\n      s.signal = null\n    }\n    return cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    return cols.concat(pivot.onReport(s), macd.onReport(s), ehlers_ft.onReport(s), momentum.onReport(s))\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 60, 'm'),\n    min_periods: Phenotypes.Range(1, 200),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    //sell_stop_pct: Phenotypes.Range0(1, 50),\n    //buy_stop_pct: Phenotypes.Range0(1, 50),\n    //profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    //profit_stop_pct: Phenotypes.Range(1,20),\n    sell_stop_pct: Phenotypes.RangeFloat(0.4, 0.6),\n    //profit_stop_enable_pct: Phenotypes.RangeFloat(0.5, 1),\n    //quarentine_time: Phenotypes.ListOption([240, 270, 300]),\n\n    // macd\n    ema_short_period: Phenotypes.Range(1, 20),\n    ema_long_period: Phenotypes.Range(20, 100),\n    signal_period: Phenotypes.Range(1, 20),\n    up_trend_threshold: Phenotypes.Range(0, 50),\n    down_trend_threshold: Phenotypes.Range(0, 50),\n    overbought_rsi_periods: Phenotypes.Range(1, 50),\n    overbought_rsi: Phenotypes.Range(20, 100),\n\n    // ehlers_ft\n    length: Phenotypes.Range(1, 30),\n    fish_pct_change: Phenotypes.Range(-25, 75),\n    pos_length: Phenotypes.Range(1, 6),\n    src: Phenotypes.ListOption(['close', 'hl2', 'hlc3', 'ohlc4', 'HAhlc3', 'HAohlc4']),\n\n    // momentum\n    momentum_size: Phenotypes.Range(1,20)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/neural/README.md",
    "content": "\n## Reading the console output\n\n![console](Capture.PNG)\n\nFrom left to right ( for trendline not pictured above, which is neural ):\n\n- Timestamp in local time (grey, blue when showing \"live\" stats)\n- Asset price in currency (yellow)\n- Percent change of price since last period (red/green)\n- Volume in asset since last period (grey)\n- [RSI](http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:relative_strength_index_rsi) ANSI graph (red/green)\n- strategy inormation, in order:\n```\n- col1: current last trade price\n- col2: The old trade last trade price averaged with the prediction. \n- If the predicted price and average of last trade price exceeds the current last trade price, then buy.. Like a neural-trendline.\n```\n- Current signal or action, including `buy`, `sell`, `buying`, `selling`, `bought`, `sold` and `last_trade_worth` (percent change in the trend direction since last buy/sell)\n- Account balance (asset)\n- Account balance (currency)\n- Profit or loss percent (can be reset with `--reset_profit`)\n- Gain or loss vs. buy/hold strategy\n\nThe signaling for this strategy example:\n\n```\n          learn();\n          var item = tlp.reverse();\n          s.prediction = predict(item)\n          s.mean = s.lookback[0].close\n          s.meanp = math.mean(s.prediction, oldmean)\n          oldmean = s.prediction\n        }\n        // NORMAL onPeriod STUFF here\n        global.meanp = s.meanp\n        global.mean = s.mean\n        //something strange is going on here\n        global.sig0 = global.meanp < global.mean\n        if (\n           global.sig0 === false\n           )\n           {\n            s.signal = 'sell'\n           }\n        else if\n           (\n           global.sig0 === true\n           )\n           {\n           s.signal = 'buy'\n           }\n      cb()\n     }\n    },\n    ```\n"
  },
  {
    "path": "extensions/strategies/neural/strategy.js",
    "content": "let convnetjs = require('convnetjs')\n  , z = require('zero-fill')\n  , n = require('numbro')\n  , ema = require('../../../lib/ema')\n  , Phenotypes = require('../../../lib/phenotype')\nconst cluster = require('cluster')\n\n// the below line starts you at 0 threads\nglobal.forks = 0\n// the below line is for calculating the last mean vs the now mean.\nvar oldmean = 0\nmodule.exports = {\n  name: 'neural',\n  description: 'Use neural learning to predict future price. Buy = mean(last 3 real prices) < mean(current & last prediction)',\n  getOptions: function () {\n    this.option('period', 'Period length - longer gets a better average', String, '30m')\n    this.option('period_length', 'Period length set same as --period', String, '30m')\n    this.option('activation_1_type', 'Neuron Activation Type: sigmoid, tanh, relu', String, 'sigmoid')\n    this.option('neurons_1', 'Neurons in layer 1', Number, 5)\n    this.option('activation_2_type', 'Neuron Activation Type: sigmoid, tanh, relu', String, 'sigmoid')\n    this.option('neurons_2', 'Neurons in layer 2', Number, 5)\n    this.option('depth', 'Generally the same as min_predict for accuracy', Number, 50)\n    this.option('min_periods', 'Periods to train neural network with from', Number, 2000)\n    this.option('min_predict', 'Periods to predict next number from less than min_periods', Number, 50)\n    this.option('momentum', 'momentum of prediction between 0 and 1 - 0 is stock', Number, 0.0)\n    this.option('decay', 'decay of prediction, use teeny tiny increments beteween 0 and 1 - stock', Number, 0.001)\n    this.option('threads', 'Number of processing threads you\\'d like to run (best for sim - Possibly broken', Number, 1)\n    this.option('learns', 'Number of times to \\'learn\\' the neural network with past data', Number, 10)\n    this.option('learningrate', 'The learning rate of the neural network between 0 and 1 - 0.01 is stock', Number, 0.01)\n  },\n  calculate: function () {\n  },\n  onPeriod: function (s, cb) {\n    ema(s, 'neural', s.options.neural)\n    if (s.neural === undefined) {\n      // Create the net the first time it is needed and NOT on every run\n      s.neural = {\n        net : new convnetjs.Net(),\n        layer_defs : [\n          {type:'input', out_sx:5, out_sy:1, out_depth:s.options.depth},\n          {type:'fc', num_neurons: s.options.neurons_1, activation: s.options.activation_1_type},\n          {type:'fc', num_neurons: s.options.neurons_2, activation: s.options.activation_2_type},\n          {type:'regression', num_neurons:5}\n        ],\n        neuralDepth: s.options.depth\n      }\n      s.neural.net.makeLayers(s.neural.layer_defs)\n      s.neural.trainer = new convnetjs.SGDTrainer(s.neural.net, {learning_rate:s.options.learningrate, momentum:s.options.momentum, batch_size:1, l2_decay:s.options.decay})\n    }\n    if (cluster.isMaster) {\n      ema(s, 'neural', s.options.neural)\n      if (global.forks < s.options.threads) { cluster.fork(); global.forks++ }\n      cluster.on('exit', (code) => { process.exit(code) })\n    }\n\n    if (cluster.isWorker) {\n      ema(s, 'neural', s.options.neural)\n      var tlp = []\n      var tll = []\n      // this thing is crazy run with trendline placed here. But there needs to be a coin lock so you dont buy late!\n      if (!s.in_preroll && s.lookback[s.options.min_periods]) {\n        var min_predict = s.options.min_predict > s.options.min_periods ? s.options.min_periods : s.options.min_predict\n        for (let i = 0; i < s.options.min_periods; i++) {\n          tll.push(s.lookback[i])\n        }\n        for (let i = 0; i < min_predict; i++) {\n          tlp.push(s.lookback[i])\n        }\n        var my_data = tll.reverse()\n        var learn = function () {\n          //Learns\n          for (var j = 0; j < s.options.learns; j++) {\n            for (var i = 0; i < my_data.length - s.neural.neuralDepth; i++) {\n              var data = my_data.slice(i, i + s.neural.neuralDepth)\n              var real_value = my_data[i + s.neural.neuralDepth]\n              var x = new convnetjs.Vol(5, 1, s.neural.neuralDepth, 0)\n\n              for (var k = 0; k < s.neural.neuralDepth; k++) {\n                x.set(0,0,k,data[k].open)\n                x.set(1,0,k,data[k].close)\n                x.set(2,0,k,data[k].high)\n                x.set(3,0,k,data[k].low)\n                x.set(4,0,k,data[k].volume)\n              }\n\n              s.neural.trainer.train(x, [real_value.open, real_value.close, real_value.high, real_value.low, real_value.volume])\n            }\n          }\n        }\n        var predict = function(data) {\n          var x = new convnetjs.Vol(5, 1, s.neural.neuralDepth, 0)\n\n          for (var k = 0; k < s.neural.neuralDepth; k++) {\n            x.set(0,0,k,data[k].open)\n            x.set(1,0,k,data[k].close)\n            x.set(2,0,k,data[k].high)\n            x.set(3,0,k,data[k].low)\n            x.set(4,0,k,data[k].volume)\n          }\n\n          var predicted_value = s.neural.net.forward(x)\n          return predicted_value.w[1] // close value - x.set(1,0,k,data[k].close)\n        }\n        learn()\n        var item = tlp.reverse()\n        s.prediction = predict(item)\n      }\n      // NORMAL onPeriod STUFF here\n      global.predi = s.prediction\n      //something strange is going on here\n      global.sig0 = global.predi > oldmean\n      if (\n        global.sig0 === false\n      )\n      {\n        s.signal = 'sell'\n      }\n      else if\n      (\n        global.sig0 === true\n      )\n      {\n        s.signal = 'buy'\n      }\n      oldmean = global.predi\n      cb()\n    }\n  },\n  onReport: function () {\n    var cols = []\n    cols.push(z(8, n(global.predi).format('0000.000000000'), ' '))\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 200),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    neurons_1: Phenotypes.Range(1, 20),\n    neurons_2: Phenotypes.Range(1, 20),\n    activation_1_type: Phenotypes.ListOption(['sigmoid', 'tanh', 'relu']),\n    activation_2_type: Phenotypes.ListOption(['sigmoid', 'tanh', 'relu']),\n    depth: Phenotypes.Range(1, 200),\n    min_predict: Phenotypes.Range(1, 200),\n    // momentum and decay and learning rate are decimals?\n    momentum: Phenotypes.RangeFloat(0, 1),\n    decay: Phenotypes.RangeFloat(0, 1),\n    learns: Phenotypes.Range(1, 500),\n    learningrate: Phenotypes.RangeFloat(0, 1)\n  }\n}\n"
  },
  {
    "path": "extensions/strategies/noop/strategy.js",
    "content": "module.exports = {\n  name: 'noop',\n  description: 'Just do nothing. Can be used to e.g. for training the strategy.',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '30m')\n    this.option('period_length', 'period length, same as --period', String, '30m')\n  },\n\n  calculate: function () {\n  },\n\n  onPeriod: function (s, cb) {\n    cb()\n  },\n\n  onReport: function () {\n    var cols = []\n    return cols\n  }\n}\n"
  },
  {
    "path": "extensions/strategies/pivot/strategy.js",
    "content": "var z = require('zero-fill'),\n  n = require('numbro')\n\nmodule.exports = {\n  name: 'pivot',\n  description: 'Pivot Reversal Strategy',\n\n  getOptions: function () {\n    this.option('period_length', 'period length', String, '30m')\n    this.option('min_periods', 'min periods', Number, 50)\n    this.option('up', 'up', Number, 1)\n    this.option('down','down', Number, 1)\n  },\n\n  calculate: function (s) {\n    if (s.lookback[s.options.min_periods]) {\n      if (s.lookback[5].high <= s.lookback[1].high && s.lookback[4].high <= s.lookback[1].high && s.lookback[3].high <= s.lookback[1].high && s.lookback[2].high <= s.lookback[1].high && s.lookback[0].high <= s.lookback[1].high && s.period.high <= s.lookback[1].high) {\n        s.pivothigh = s.lookback[1].high\n      }\n      if (s.lookback[3].low >= s.lookback[1].low && s.lookback[2].low >= s.lookback[1].low && s.lookback[0].low >= s.lookback[1].low && s.period.low >= s.lookback[1].low) {\n        s.pivotlow = s.lookback[1].low\n      }\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (s.lookback[s.options.min_periods]) {\n      if (s.period.high / s.pivothigh > s.options.up) {\n        if (s.trend != 'up')\n        {\n          s.signal = 'buy'\n        }\n        s.trend = 'up'\n      }\n      if (s.period.low / s.pivotlow < s.options.down) {\n        if (s.trend != 'down')\n        {\n          s.signal = 'sell'\n        }\n        s.trend = 'down'\n      }\n    }\n    cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    if (s.lookback[s.options.min_periods]) {\n      cols.push(z(8, n(s.pivothigh), ' '))\n      cols.push(z(1, ' '))\n      cols.push(z(8, n(s.pivotlow), ' '))\n    }\n    return cols\n  }\n}"
  },
  {
    "path": "extensions/strategies/renko/strategy.js",
    "content": "var z = require('zero-fill'),\n  n = require('numbro')\n\nmodule.exports = {\n  name: 'renko',\n  description: 'Renko Reversal Strategy',\n\n  getOptions: function () {\n    this.option('period_length', 'period length', String, '15m')\n    this.option('min_periods', 'min periods', Number, 200)\n    this.option('bricksize', 'Brick Size', Number, 1)\n  },\n\n\t\n  calculate: function (s) {\n    if (s.lookback[s.options.min_periods]) {\n      var prclose = Math.round(s.lookback[s.options.min_periods].close)\n      var propen = Math.round(s.lookback[s.options.min_periods].close)\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (s.lookback[s.options.min_periods]) {\n\t\t\n      // Sources\n      prclose = Math.round(s.lookback[s.options.min_periods].close)\n      propen = Math.round(s.lookback[s.options.min_periods].close)\n      for(var i = 0; i<s.options.min_periods;i++)\n      {\n        prclose = Math.round(renko_close(s, Math.round(s.lookback[i].close), prclose, propen))\n        propen = Math.round(renko_close(s, Math.round(s.lookback[i].close), prclose, propen))\n      }\n      // Renko\n      var rclose = renko_close(s, s.period.close, prclose, propen)\n      ropen = renko_open(s, s.period.close, prclose, propen)\n      var que\n      \n      if (rclose > prclose)\n        que = 1\n      else if (rclose < prclose)\n        que = -1\n      else\n        que = 0\n\n      if (que > 0) \n      {\n        if (s.trend != 'up')\n        {\n          s.signal = 'buy'\n        }\n        s.trend = 'up'\n      }\n      else if (que < 0) \n      {\n        if (s.trend != 'down')\n        {\n          s.signal = 'sell'\n        }\n        s.trend = 'down'\n      }\n      else\n      {\n        s.trend= 'null'\n      }\n    }\n    cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    if (s.lookback[s.options.min_periods]) {\n      cols.push(z(8, n(prclose), ' '))\n      cols.push(z(1, ' '))\n      cols.push(z(8, n(rclose), ' '))\n      cols.push(z(1, ' '))\n      cols.push(z(8, s.trend, ' '))\n    }\n    return cols\n  }\n}\n\nfunction renko_close(s, close, prclose, propen){\n  var type = s.options.bricksize*2\t\n  if (close > (prclose + type)) \n  {\n    if (prclose > propen)\n    {\t\n      return (prclose + s.options.bricksize) \n    }\n    else \n    {\n      return (prclose + type)\n    }\n  }\n  else if (close < (prclose - type))\n  {\n    if (prclose < propen)\n    {\n      return (prclose - s.options.bricksize)\n    }\n    else\n    { \n      return (prclose - type)\n    }\n  } \n  else \n  {\n    return (prclose)\n  }\n}\n\t\nfunction renko_open(s,close,prclose,propen)\n{\n  var type = s.options.bricksize*2\n  if (close > prclose) \n  {\n    if (prclose > propen)\n    {\t\n      return(prclose) \n    }\n    else \n    {\n      return(prclose + type)\n    }\n  }\n  else if (close < prclose)\n  {\n    if (prclose < propen)\n    {\n      return(prclose)\n    }\n    else\n    { \n      return(prclose - type)\n    }\n  } \n  else \n  {\n    return(propen)\n  }\n}\n"
  },
  {
    "path": "extensions/strategies/rsi/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , rsi = require('../../../lib/rsi')\n  , Phenotypes = require('../../../lib/phenotype')\n  , Asset_currency = require('../../../lib/engine')\n\nmodule.exports = {\n  name: 'rsi',\n  description: 'Attempts to buy low and sell high by tracking RSI high-water readings.',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '2m')\n    this.option('period_length', 'period length, same as --period', String, '2m')\n    this.option('min_periods', 'min. number of history periods', Number, 52)\n    this.option('rsi_periods', 'number of RSI periods', Number, 14)\n    this.option('oversold_rsi', 'buy when RSI reaches or drops below this value', Number, 30)\n    this.option('overbought_rsi', 'sell when RSI reaches or goes above this value', Number, 82)\n    this.option('rsi_recover', 'allow RSI to recover this many points before buying', Number, 3)\n    this.option('rsi_drop', 'allow RSI to fall this many points before selling', Number, 0)\n    this.option('rsi_divisor', 'sell when RSI reaches high-water reading divided by this value', Number, 2)\n  },\n\n  calculate: function (s) {\n    rsi(s, 'rsi', s.options.rsi_periods)\n  },\n\n  onPeriod: function (s, cb) {\n    if (s.in_preroll) return cb()\n    if (typeof s.period.rsi === 'number') {\n      if (s.trend === undefined && s.period.rsi <= s.options.oversold_rsi) {\n        s.rsi_low = s.period.rsi\n        s.trend = 'oversold'\n      }\n      if (s.trend === 'oversold' || s.asset_capital > 0) {\n        s.rsi_low = Math.min(s.rsi_low, s.period.rsi)\n        if (s.period.rsi >= s.rsi_low + s.options.rsi_recover) {\n          s.trend = 'long'\n          s.signal = 'buy'\n          s.rsi_high = s.period.rsi\n        }\n      }\n      if (s.trend !== 'oversold' && s.trend !== 'long' && s.period.rsi >= s.options.overbought_rsi) {\n        s.rsi_high = s.period.rsi\n        s.trend = 'long'\n      }\n      if (s.trend === 'long' || s.currency_capital > 0) {\n        s.rsi_high = Math.max(s.rsi_high, s.period.rsi)\n        if (s.period.rsi <= s.rsi_high / s.options.rsi_divisor) {\n          s.trend = 'short'\n          s.signal = 'sell'\n        }\n      }\n      if (s.trend === 'long' && s.period.rsi >= s.options.overbought_rsi) {\n        s.rsi_high = s.period.rsi\n        s.trend = 'overbought'\n      }\n      if (s.trend === 'overbought' || s.currency_capital > 0) {\n        s.rsi_high = Math.max(s.rsi_high, s.period.rsi)\n        if (s.period.rsi <= s.rsi_high - s.options.rsi_drop) {\n          s.trend = 'short'\n          s.signal = 'sell'\n        }\n      }\n    }\n    cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    if (typeof s.period.rsi === 'number') {\n      var color = 'grey'\n      if (s.period.rsi <= s.options.oversold_rsi) {\n        color = 'green'\n      }\n      if (s.period.rsi >= s.options.overbought_rsi) {\n        color = 'red'\n      }\n      cols.push(z(4, n(s.period.rsi).format('0'), ' ')[color])\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 200),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    rsi_periods: Phenotypes.Range(1, 200),\n    oversold_rsi: Phenotypes.Range(1, 100),\n    overbought_rsi: Phenotypes.Range(1, 100),\n    rsi_recover: Phenotypes.Range(1, 100),\n    rsi_drop: Phenotypes.Range(0, 100),\n    rsi_divisor: Phenotypes.Range(1, 10)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/sar/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports =  {\n  name: 'sar',\n  description: 'Parabolic SAR',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '2m')\n    this.option('period_length', 'period length, same as --period', String, '2m')\n    this.option('min_periods', 'min. number of history periods', Number, 52)\n    this.option('sar_af', 'acceleration factor for parabolic SAR', Number, 0.015)\n    this.option('sar_max_af', 'max acceleration factor for parabolic SAR', Number, 0.3)\n  },\n\n  calculate: function (s) {\n    if (s.lookback.length >= s.options.min_periods) {\n      if (!s.trend) {\n        if (s.period.high > s.lookback[s.lookback.length - 1].high) {\n          // start with uptrend\n          s.trend = 'up'\n          s.sar = Math.min(s.lookback[1].low, s.lookback[0].low)\n          s.sar_ep = s.period.high\n          s.sar_af = s.options.sar_af\n          for (var idx = 0; idx < s.lookback.length; idx++) {\n            s.sar_ep = Math.max(s.sar_ep, s.lookback[idx].high)\n          }\n        }\n        else {\n          s.trend = 'down'\n          s.sar = Math.max(s.lookback[1].high, s.lookback[0].high)\n          s.sar_ep = s.period.low\n          s.sar_af = s.options.sar_af\n          for (idx = 0; idx < s.lookback.length; idx++) {\n            s.sar_ep = Math.min(s.sar_ep, s.lookback[idx].low)\n          }\n        }\n      }\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (typeof s.sar === 'number') {\n      if (s.trend === 'up') {\n        s.sar = Math.min(s.lookback[1].low, s.lookback[0].low, s.sar + (s.sar_af * (s.sar_ep - s.sar)))\n      }\n      else {\n        s.sar = Math.max(s.lookback[1].high, s.lookback[0].high, s.sar - (s.sar_af * (s.sar - s.sar_ep)))\n      }\n      if (s.trend === 'down') {\n        if (s.period.high >= s.sar && s.period.close > s.lookback[0].close) {\n          s.trend = 'up'\n          s.signal = 'buy'\n          s.sar_ep = s.period.low\n          s.sar_af = s.options.sar_af\n          s.sar = Math.min(s.lookback[0].low, s.period.low, s.sar + (s.sar_af * (s.sar_ep - s.sar)))\n        }\n        else if (s.period.low < s.sar_ep) {\n          s.sar_ep = s.period.low\n          if (s.sar_af < s.options.sar_max_af) {\n            s.sar_af += s.options.sar_af\n          }\n        }\n      }\n      else if (s.trend === 'up') {\n        if (s.period.low <= s.sar && s.period.close < s.lookback[0].close) {\n          s.trend = 'down'\n          s.signal = 'sell'\n          s.sar_ep = s.period.high\n          s.sar_af = s.options.sar_af\n          s.sar = Math.max(s.lookback[0].high, s.period.high, s.sar - (s.sar_af * (s.sar - s.sar_ep)))\n        }\n        else if (s.period.high > s.sar_ep) {\n          s.sar_ep = s.period.high\n          if (s.sar_af < s.options.sar_max_af) {\n            s.sar_af += s.options.sar_af\n          }\n        }\n      }\n      if (!s.my_trades.length) {\n        s.signal = s.trend === 'up' ? 'buy' : 'sell'\n      }\n    }\n    cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    if (typeof s.sar === 'number') {\n      cols.push(z(8, n(s.sar).subtract(s.period.close).divide(s.period.close).format('0.00%'), ' ').grey)\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(2, 100),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    sar_af: Phenotypes.RangeFloat(0.01, 1.0),\n    sar_max_af: Phenotypes.RangeFloat(0.01, 1.0)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/speed/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , ema = require('../../../lib/ema')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'speed',\n  description: 'Trade when % change from last two 1m periods is higher than average.',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '1m')\n    this.option('period_length', 'period length, same as --period', String, '1m')\n    this.option('min_periods', 'min. number of history periods', Number, 3000)\n    this.option('baseline_periods', 'lookback periods for volatility baseline', Number, 3000)\n    this.option('trigger_factor', 'multiply with volatility baseline EMA to get trigger value', Number, 1.6)\n  },\n\n  calculate: function (s) {\n    if (s.lookback[1]) {\n      s.period.speed = (s.period.close - s.lookback[1].close) / s.lookback[1].close * 100\n      s.period.abs_speed = Math.abs((s.period.close - s.lookback[1].close) / s.lookback[1].close * 100)\n      if (s.lookback[s.options.baseline_periods + 1]) {\n        ema(s, 'baseline', s.options.baseline_periods, 'abs_speed')\n      }\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (typeof s.period.baseline === 'number') {\n      if (s.period.speed >= s.period.baseline * s.options.trigger_factor) {\n        if (s.trend !== 'up') {\n          s.acted_on_trend = false\n        }\n        s.trend = 'up'\n        s.signal = !s.acted_on_trend ? 'buy' : null\n      }\n      else if (s.period.speed <= s.period.baseline * s.options.trigger_factor * -1) {\n        if (s.trend !== 'down') {\n          s.acted_on_trend = false\n        }\n        s.trend = 'down'\n        s.signal = !s.acted_on_trend ? 'sell' : null\n      }\n    }\n    cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    cols.push(z(8, n(s.period.speed).format('0.0000'), ' ')[s.period.speed >= 0 ? 'green' : 'red'])\n    if (typeof s.period.baseline === 'number') {\n      cols.push(z(8, n(s.period.baseline).format('0.0000'), ' ').grey)\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 100),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    baseline_periods: Phenotypes.Range(1, 5000),\n    trigger_factor: Phenotypes.RangeFloat(0.1, 10)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/srsi_macd/strategy.js",
    "content": "let z = require('zero-fill')\n  , n = require('numbro')\n  , srsi = require('../../../lib/srsi')\n  , ema = require('../../../lib/ema')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'srsi_macd',\n  description: 'Stochastic MACD Strategy',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '30m')\n    this.option('period_length', 'period length, same as --period', String, '30m')\n    this.option('min_periods', 'min. number of history periods', Number, 200)\n    this.option('rsi_periods', 'number of RSI periods', Number, 14)\n    this.option('srsi_periods', 'number of RSI periods', Number, 9)\n    this.option('srsi_k', '%D line', Number, 5)\n    this.option('srsi_d', '%D line', Number, 3)\n    this.option('oversold_rsi', 'buy when RSI reaches or drops below this value', Number, 20)\n    this.option('overbought_rsi', 'sell when RSI reaches or goes above this value', Number, 80)\n    this.option('ema_short_period', 'number of periods for the shorter EMA', Number, 24)\n    this.option('ema_long_period', 'number of periods for the longer EMA', Number, 200)\n    this.option('signal_period', 'number of periods for the signal EMA', Number, 9)\n    this.option('up_trend_threshold', 'threshold to trigger a buy signal', Number, 0)\n    this.option('down_trend_threshold', 'threshold to trigger a sold signal', Number, 0)\n  },\n\n  calculate: function (s) {\n    // compute Stochastic RSI\n    srsi(s, 'srsi', s.options.rsi_periods, s.options.srsi_k, s.options.srsi_d)\n\n    // compute MACD\n    ema(s, 'ema_short', s.options.ema_short_period)\n    ema(s, 'ema_long', s.options.ema_long_period)\n    if (s.period.ema_short && s.period.ema_long) {\n      s.period.macd = (s.period.ema_short - s.period.ema_long)\n      ema(s, 'signal', s.options.signal_period, 'macd')\n      if (s.period.signal) {\n        s.period.macd_histogram = s.period.macd - s.period.signal\n      }\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (!s.in_preroll)\n      if (typeof s.period.macd_histogram === 'number' && typeof s.lookback[0].macd_histogram === 'number' && typeof s.period.srsi_K === 'number' && typeof s.period.srsi_D === 'number')\n      // Buy signal\n        if (s.period.macd_histogram >= s.options.up_trend_threshold)\n          if (s.period.srsi_K > s.period.srsi_D && s.period.srsi_K > s.lookback[0].srsi_K && s.period.srsi_K < s.options.oversold_rsi)\n            s.signal = 'buy'\n\n    // Sell signal\n    if (s.period.macd_histogram < s.options.down_trend_threshold)\n      if (s.period.srsi_K < s.period.srsi_D && s.period.srsi_K < s.lookback[0].srsi_K && s.period.srsi_K > s.options.overbought_rsi)\n        s.signal = 'sell'\n\n    // Hold\n    //s.signal = null;\n    cb()\n  },\n  onReport: function (s) {\n    var cols = []\n    if (typeof s.period.macd_histogram === 'number') {\n      var color = 'grey'\n      if (s.period.macd_histogram > 0) {\n        color = 'green'\n      }\n      else if (s.period.macd_histogram < 0) {\n        color = 'red'\n      }\n      cols.push(z(8, n(s.period.macd_histogram).format('+00.0000'), ' ')[color])\n      cols.push(z(8, n(s.period.srsi_K).format('00.00'), ' ').cyan)\n      cols.push(z(8, n(s.period.srsi_D).format('00.00'), ' ').yellow)\n    }\n    else {\n      cols.push('         ')\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 200),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    rsi_periods: Phenotypes.Range(1, 200),\n    srsi_periods: Phenotypes.Range(1, 200),\n    srsi_k: Phenotypes.Range(1, 50),\n    srsi_d: Phenotypes.Range(1, 50),\n    oversold_rsi: Phenotypes.Range(1, 100),\n    overbought_rsi: Phenotypes.Range(1, 100),\n    ema_short_period: Phenotypes.Range(1, 20),\n    ema_long_period: Phenotypes.Range(20, 100),\n    signal_period: Phenotypes.Range(1, 20),\n    up_trend_threshold: Phenotypes.Range(0, 20),\n    down_trend_threshold: Phenotypes.Range(0, 20)\n  }\n}\n"
  },
  {
    "path": "extensions/strategies/stddev/strategy.js",
    "content": "var z = require('zero-fill')\n  , stats = require('stats-lite')\n  , math = require('mathjs')\n  , ema = require('../../../lib/ema')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'stddev',\n  description: 'Buy when standard deviation and mean increase, sell on mean decrease.',\n  getOptions: function () {\n    this.option('period', 'period length, set poll trades to 100ms, poll order 1000ms. Same as --period_length', String, '100ms')\n    this.option('period_length', 'period length, set poll trades to 100ms, poll order 1000ms. Same as --period', String, '100ms')\n    this.option('trendtrades_1', 'Trades for array 1 to be subtracted stddev and mean from', Number, 5)\n    this.option('trendtrades_2', 'Trades for array 2 to be calculated stddev and mean from', Number, 53)\n    this.option('min_periods', 'min_periods', Number, 1250)\n  },\n  calculate: function () {\n  },\n  onPeriod: function (s, cb) {\n    ema(s, 'stddev', s.options.stddev)\n    var tl0 = []\n    var tl1 = []\n    if (s.lookback[s.options.min_periods]) {\n      for (let i = 0; i < s.options.trendtrades_1; i++) { tl0.push(s.lookback[i].close) }\n      for (let i = 0; i < s.options.trendtrades_2; i++) { tl1.push(s.lookback[i].close) }\n      s.std0 = stats.stdev(tl0) / 2\n      s.std1 = stats.stdev(tl1) / 2\n      s.mean0 = math.mean(tl0)\n      s.mean1 = math.mean(tl1)\n      s.sig0 = s.std0 > s.std1 ? 'Up' : 'Down'\n      s.sig1 = s.mean0 > s.mean1 ? 'Up' : 'Down'\n    }\n    if (s.sig1 === 'Down') {\n      s.signal = 'sell'\n    }\n    else if (s.sig0 === 'Up' && s.sig1 === 'Up') {\n      s.signal = 'buy'\n    }\n    cb()\n  },\n  onReport: function (s) {\n    var cols = []\n    cols.push(z(s.signal, ' ')[s.signal === false ? 'red' : 'green'])\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    // reference in extensions is given in ms have not heard of an exchange that supports 500ms thru api so setting min at 1 second\n    period_length: Phenotypes.RangePeriod(1, 7200, 's'),\n    min_periods: Phenotypes.Range(1, 2500),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    trendtrades_1: Phenotypes.Range(2, 20),\n    trendtrades_2: Phenotypes.Range(4, 100)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/ta_ema/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , ta_ema = require('../../../lib/ta_ema')\n  , rsi = require('../../../lib/rsi')\n  , stddev = require('../../../lib/stddev')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'ta_ema',\n  description: 'Buy when (EMA - last(EMA) > 0) and sell when (EMA - last(EMA) < 0). Optional buy on low RSI.',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '10m')\n    this.option('period_length', 'period length, same as --period', String, '10m')\n    this.option('min_periods', 'min. number of history periods', Number, 52)\n    this.option('trend_ema', 'number of periods for trend EMA', Number, 20)\n    this.option('neutral_rate', 'avoid trades if abs(trend_ema) under this float (0 to disable, \"auto\" for a variable filter)', Number, 0.06)\n    this.option('oversold_rsi_periods', 'number of periods for oversold RSI', Number, 20)\n    this.option('oversold_rsi', 'buy when RSI reaches this value', Number, 30)\n  },\n\n  calculate: function (s) {\n    if (s.options.oversold_rsi) {\n      // sync RSI display with oversold RSI periods\n      s.options.rsi_periods = s.options.oversold_rsi_periods\n      rsi(s, 'oversold_rsi', s.options.oversold_rsi_periods)\n      if (!s.in_preroll && s.period.oversold_rsi <= s.options.oversold_rsi && !s.oversold && !s.cancel_down) {\n        s.oversold = true\n        if (s.options.mode !== 'sim' || s.options.verbose) console.log(('\\noversold at ' + s.period.oversold_rsi + ' RSI, preparing to buy\\n').cyan)\n      }\n    }\n    if (s.options.neutral_rate === 'auto') {\n      stddev(s, 'trend_ema_stddev', Math.floor(s.options.trend_ema / 2), 'trend_ema_rate')\n    }\n    else {\n      s.period.trend_ema_stddev = s.options.neutral_rate\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (!s.in_preroll && typeof s.period.oversold_rsi === 'number') {\n      if (s.oversold) {\n        s.oversold = false\n        s.trend = 'oversold'\n        s.signal = 'buy'\n        s.cancel_down = true\n        return cb()\n      }\n    }\n\n    // wait for promise to be resolved\n    // we add all maybe we need more indicators\n    Promise.all([ta_ema(s, s.options.trend_ema)]).then(result => {\n      if(result && result.outReal) {\n        s.period.trend_ema = result.outReal\n      }\n    })\n\n    // calculate ema rate\n    if (s.period.trend_ema && s.lookback[0] && s.lookback[0].trend_ema) {\n      s.period.trend_ema_rate = (s.period.trend_ema - s.lookback[0].trend_ema) / s.lookback[0].trend_ema * 100\n    }\n\n    if (typeof s.period.trend_ema_stddev === 'number') {\n      if (s.period.trend_ema_rate > s.period.trend_ema_stddev) {\n        if (s.trend !== 'up') {\n          s.acted_on_trend = false\n        }\n        s.trend = 'up'\n        s.signal = !s.acted_on_trend ? 'buy' : null\n        s.cancel_down = false\n      }\n      else if (!s.cancel_down && s.period.trend_ema_rate < (s.period.trend_ema_stddev * -1)) {\n        if (s.trend !== 'down') {\n          s.acted_on_trend = false\n        }\n        s.trend = 'down'\n        s.signal = !s.acted_on_trend ? 'sell' : null\n      }\n    }\n    cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    if (typeof s.period.trend_ema_stddev === 'number') {\n      var color = 'grey'\n      if (s.period.trend_ema_rate > s.period.trend_ema_stddev) {\n        color = 'green'\n      }\n      else if (s.period.trend_ema_rate < (s.period.trend_ema_stddev * -1)) {\n        color = 'red'\n      }\n      cols.push(z(8, n(s.period.trend_ema_rate).format('0.0000'), ' ')[color])\n      if (s.period.trend_ema_stddev) {\n        cols.push(z(8, n(s.period.trend_ema_stddev).format('0.0000'), ' ').grey)\n      }\n    }\n    else {\n      if (s.period.trend_ema_stddev) {\n        cols.push('                  ')\n      }\n      else {\n        cols.push('         ')\n      }\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 100),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    trend_ema: Phenotypes.Range(1, 40),\n    oversold_rsi_periods: Phenotypes.Range(5, 50),\n    oversold_rsi: Phenotypes.Range(20, 100)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/ta_macd/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , rsi = require('../../../lib/rsi')\n  , ta_macd = require('../../../lib/ta_macd')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'ta_macd',\n  description: 'Buy when (MACD - Signal > 0) and sell when (MACD - Signal < 0).',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '1h')\n    this.option('period_length', 'period length, same as --period', String, '1h')\n    this.option('min_periods', 'min. number of history periods', Number, 52)\n    this.option('ema_short_period', 'number of periods for the shorter EMA', Number, 12)\n    this.option('ema_long_period', 'number of periods for the longer EMA', Number, 26)\n    this.option('signal_period', 'number of periods for the signal EMA', Number, 9)\n    this.option('up_trend_threshold', 'threshold to trigger a buy signal', Number, 0)\n    this.option('down_trend_threshold', 'threshold to trigger a sold signal', Number, 0)\n    this.option('overbought_rsi_periods', 'number of periods for overbought RSI', Number, 25)\n    this.option('overbought_rsi', 'sold when RSI exceeds this value', Number, 70)\n  },\n\n  calculate: function (s) {\n    if (s.options.overbought_rsi) {\n      // sync RSI display with overbought RSI periods\n      s.options.rsi_periods = s.options.overbought_rsi_periods\n      rsi(s, 'overbought_rsi', s.options.overbought_rsi_periods)\n      if (!s.in_preroll && s.period.overbought_rsi >= s.options.overbought_rsi && !s.overbought) {\n        s.overbought = true\n        if (s.options.mode === 'sim' && s.options.verbose) console.log(('\\noverbought at ' + s.period.overbought_rsi + ' RSI, preparing to sold\\n').cyan)\n      }\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (!s.in_preroll && typeof s.period.overbought_rsi === 'number') {\n      if (s.overbought) {\n        s.overbought = false\n        s.trend = 'overbought'\n        s.signal = 'sold'\n        return cb()\n      }\n    }\n\n    ta_macd(s, s.options.ema_long_period, s.options.ema_short_period, s.options.signal_period).then(function(signal) {\n      if(!signal) {\n        cb()\n        return\n      }\n\n      s.period['macd'] = signal.macd\n      s.period['macd_histogram'] = signal.macd_histogram\n      s.period['macd_signal'] = signal.macd_signal\n\n      if (typeof s.period.macd_histogram === 'number' && typeof s.lookback[0].macd_histogram === 'number') {\n        if ((s.period.macd_histogram - s.options.up_trend_threshold) > 0 && (s.lookback[0].macd_histogram - s.options.up_trend_threshold) <= 0) {\n          s.signal = 'buy'\n        } else if ((s.period.macd_histogram + s.options.down_trend_threshold) < 0 && (s.lookback[0].macd_histogram + s.options.down_trend_threshold) >= 0) {\n          s.signal = 'sell'\n        } else {\n          s.signal = null  // hold\n        }\n      }\n\n      cb()\n    }).catch(function(error) {\n      console.log(error)\n      cb()\n    })\n\n  },\n\n  onReport: function (s) {\n    var cols = []\n    if (typeof s.period.macd_histogram === 'number') {\n      var color = 'grey'\n      if (s.period.macd_histogram > 0) {\n        color = 'green'\n      }\n      else if (s.period.macd_histogram < 0) {\n        color = 'red'\n      }\n      cols.push(z(8, n(s.period.macd_histogram).format('+00.0000'), ' ')[color])\n      cols.push(z(8, n(s.period.overbought_rsi).format('00'), ' ').cyan)\n    }\n    else {\n      cols.push('         ')\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 200),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    // have to be minimum 2 because talib will throw an \"TA_BAD_PARAM\" error\n    ema_short_period: Phenotypes.Range(2, 20),\n    ema_long_period: Phenotypes.Range(20, 100),\n    signal_period: Phenotypes.Range(1, 20),\n    up_trend_threshold: Phenotypes.Range(0, 50),\n    down_trend_threshold: Phenotypes.Range(0, 50),\n    overbought_rsi_periods: Phenotypes.Range(1, 50),\n    overbought_rsi: Phenotypes.Range(20, 100)\n  }\n}\n"
  },
  {
    "path": "extensions/strategies/ta_macd_ext/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , rsi = require('../../../lib/rsi')\n  , ta_macd_ext = require('../../../lib/ta_macd_ext')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'ta_macd_ext',\n  description: 'Buy when (MACD - Signal > 0) and sell when (MACD - Signal < 0) with controllable talib TA types',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '1h')\n    this.option('min_periods', 'min. number of history periods', Number, 52)\n    this.option('ema_short_period', 'number of periods for the shorter EMA', Number, 12)\n    this.option('ema_long_period', 'number of periods for the longer EMA', Number, 26)\n    this.option('signal_period', 'number of periods for the signal EMA', Number, 9)\n    this.option('fast_ma_type', 'fast_ma_type of talib: SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3', String, null)\n    this.option('slow_ma_type', 'slow_ma_type of talib: SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3', String, null)\n    this.option('signal_ma_type', 'signal_ma_type of talib: SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3', String, null)\n    this.option('default_ma_type', 'set default ma_type for fast, slow and signal. You are able to overwrite single types separately (fast_ma_type, slow_ma_type, signal_ma_type)', String, 'SMA')\n    this.option('up_trend_threshold', 'threshold to trigger a buy signal', Number, 0)\n    this.option('down_trend_threshold', 'threshold to trigger a sold signal', Number, 0)\n    this.option('overbought_rsi_periods', 'number of periods for overbought RSI', Number, 25)\n    this.option('overbought_rsi', 'sold when RSI exceeds this value', Number, 70)\n  },\n\n  calculate: function (s) {\n    if (s.options.overbought_rsi) {\n      // sync RSI display with overbought RSI periods\n      s.options.rsi_periods = s.options.overbought_rsi_periods\n      rsi(s, 'overbought_rsi', s.options.overbought_rsi_periods)\n      if (!s.in_preroll && s.period.overbought_rsi >= s.options.overbought_rsi && !s.overbought) {\n        s.overbought = true\n        if (s.options.mode === 'sim' && s.options.verbose) {\n          console.log(('\\noverbought at ' + s.period.overbought_rsi + ' RSI, preparing to sold\\n').cyan)\n        }\n      }\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (!s.in_preroll && typeof s.period.overbought_rsi === 'number') {\n      if (s.overbought) {\n        s.overbought = false\n        s.signal = 'sell'\n        return cb()\n      }\n    }\n\n    let types = {\n      'fast_ma_type': s.options.default_ma_type || 'SMA',\n      'slow_ma_type': s.options.default_ma_type || 'SMA',\n      'signal_ma_type': s.options.default_ma_type || 'SMA',\n    }\n\n    if (s.options.fast_ma_type) {\n      types['fast_ma_type'] = s.options.fast_ma_type\n    }\n\n    if (s.options.slow_ma_type) {\n      types['slow_ma_type'] = s.options.slow_ma_type\n    }\n\n    if (s.options.signal_ma_type) {\n      types['signal_ma_type'] = s.options.signal_ma_type\n    }\n\n    ta_macd_ext(\n      s,\n      s.options.ema_long_period,\n      s.options.ema_short_period,\n      s.options.signal_period,\n      types['fast_ma_type'],\n      types['slow_ma_type'],\n      types['signal_ma_type']\n    ).then(function(signal) {\n      if(!signal) {\n        cb()\n        return\n      }\n\n      s.period['macd'] = signal.macd\n      s.period['macd_histogram'] = signal.macd_histogram\n      s.period['macd_signal'] = signal.macd_signal\n\n      if (typeof s.period.macd_histogram === 'number' && typeof s.lookback[0].macd_histogram === 'number') {\n        if ((s.period.macd_histogram - s.options.up_trend_threshold) > 0 && (s.lookback[0].macd_histogram - s.options.up_trend_threshold) <= 0) {\n          s.signal = 'buy'\n        } else if ((s.period.macd_histogram + s.options.down_trend_threshold) < 0 && (s.lookback[0].macd_histogram + s.options.down_trend_threshold) >= 0) {\n          s.signal = 'sell'\n        } else {\n          s.signal = null  // hold\n        }\n      }\n\n      cb()\n    }).catch(function(error) {\n      console.log(error)\n      cb()\n    })\n\n  },\n\n  onReport: function (s) {\n    var cols = []\n    if (typeof s.period.macd_histogram === 'number') {\n      var color = 'grey'\n      if (s.period.macd_histogram > 0) {\n        color = 'green'\n      }\n      else if (s.period.macd_histogram < 0) {\n        color = 'red'\n      }\n      cols.push(z(8, n(s.period.macd_histogram).format('+00.0000'), ' ')[color])\n      cols.push(z(8, n(s.period.overbought_rsi).format('00'), ' ').cyan)\n    }\n    else {\n      cols.push('         ')\n    }\n    return cols\n  },\n\n  phenotypes: {\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 104),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // have to be minimum 2 because talib will throw an \"TA_BAD_PARAM\" error\n    ema_short_period: Phenotypes.Range(2, 20),\n    ema_long_period: Phenotypes.Range(20, 100),\n    signal_period: Phenotypes.Range(1, 20),\n    fast_ma_type: Phenotypes.RangeMaType(),\n    slow_ma_type: Phenotypes.RangeMaType(),\n    signal_ma_type: Phenotypes.RangeMaType(),\n    default_ma_type: Phenotypes.RangeMaType(),\n    //    this.option('default_ma_type', 'set default ma_type for fast, slow and signal. You are able to overwrite single types separately (fast_ma_type, slow_ma_type, signal_ma_type)', String, 'SMA')\n    up_trend_threshold: Phenotypes.Range(0, 50),\n    down_trend_threshold: Phenotypes.Range(0, 50),\n    overbought_rsi_periods: Phenotypes.Range(1, 50),\n    overbought_rsi: Phenotypes.Range(20, 100)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/ta_ppo/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , rsi = require('../../../lib/rsi')\n  , ta_ppo = require('../../../lib/ta_ppo')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'ta_ppo',\n  description: 'PPO - Percentage Price Oscillator with rsi oversold',\n\n  getOptions: function () {\n    this.option('period', 'period length eg 10m', String, '10m')\n    this.option('min_periods', 'min. number of history periods', Number, 52)\n    this.option('ema_short_period', 'number of periods for the shorter EMA', Number, 12)\n    this.option('ema_long_period', 'number of periods for the longer EMA', Number, 26)\n    this.option('signal_period', 'number of periods for the signal EMA', Number, 9)\n    this.option('ma_type', 'matype of talib: SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3', String, 'SMA')\n    this.option('overbought_rsi_periods', 'number of periods for overbought RSI', Number, 25)\n    this.option('overbought_rsi', 'sold when RSI exceeds this value', Number, 70)\n  },\n\n  calculate: function (s) {\n    if (s.options.overbought_rsi) {\n      // sync RSI display with overbought RSI periods\n      s.options.rsi_periods = s.options.overbought_rsi_periods\n      rsi(s, 'overbought_rsi', s.options.overbought_rsi_periods)\n      if (!s.in_preroll && s.period.overbought_rsi >= s.options.overbought_rsi && !s.overbought) {\n        s.overbought = true\n\n        if (s.options.mode === 'sim' && s.options.verbose) {\n          console.log(('\\noverbought at ' + s.period.overbought_rsi + ' RSI, preparing to sold\\n').cyan)\n        }\n      }\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (!s.in_preroll && typeof s.period.overbought_rsi === 'number') {\n      if (s.overbought) {\n        s.overbought = false\n        s.signal = 'sell'\n        return cb()\n      }\n    }\n\n    ta_ppo(s, s.options.ema_long_period, s.options.ema_short_period, s.options.signal_period, s.options.ma_type).then(function(ppoSignal) {\n      s.period['ppo'] = ppoSignal\n\n      if (s.period.ppo && s.lookback[0] && s.lookback[0].ppo) {\n        s.period.trend_ppo = s.period.ppo >= 0 ? 'up' : 'down'\n      }\n\n      if (s.period.trend_ppo == 'up') {\n        if (s.trend !== 'up') {\n          s.acted_on_trend = false\n        }\n\n        s.trend = 'up'\n        s.signal = !s.acted_on_trend ? 'buy' : null\n      } else if (s.period.trend_ppo == 'down') {\n        if (s.trend !== 'down') {\n          s.acted_on_trend = false\n        }\n\n        s.trend = 'down'\n        s.signal = !s.acted_on_trend ? 'sell' : null\n      }\n\n      cb()\n    }).catch(function(error) {\n      console.log(error)\n      cb()\n    })\n  },\n\n  onReport: function (s) {\n    let cols = []\n\n    if (typeof s.period.ppo === 'number') {\n      let color = s.period.ppo > 0 ? 'green' : 'red'\n\n      cols.push(z(8, n(s.period.ppo).format('0.0000'), ' ')[color])\n    }\n\n    return cols\n  },\n\n  phenotypes: {\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 104),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // have to be minimum 2 because talib will throw an \"TA_BAD_PARAM\" error\n    ema_short_period: Phenotypes.Range(2, 20),\n    ema_long_period: Phenotypes.Range(20, 100),\n    signal_period: Phenotypes.Range(1, 20),\n    ma_type: Phenotypes.RangeMaType(),\n    overbought_rsi_periods: Phenotypes.Range(1, 50),\n    overbought_rsi: Phenotypes.Range(20, 100)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/ta_srsi_bollinger/strategy.js",
    "content": "let z = require('zero-fill')\n  , n = require('numbro')\n  , ta_srsi = require('../../../lib/ta_stochrsi')\n  , ta_bollinger = require('../../../lib/ta_bollinger')\n  , Phenotypes = require('../../../lib/phenotype')\nmodule.exports = {\n  name: 'srsi_bollinger',\n  description: 'Stochastic RSI BollingerBand Strategy',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '5m')\n    this.option('period_length', 'period length, same as --period', String, '5m')\n    this.option('min_periods', 'min. number of history periods', Number, 200)\n    this.option('rsi_periods', 'number of RSI periods', Number, 14)\n    this.option('srsi_periods', 'number of Stochastic RSI periods',Number, 9)\n    this.option('srsi_k', '%D line', Number, 3)\n    this.option('srsi_d', '%D line', Number, 3)\n    this.option('srsi_k_sell', 'K must be above this before selling', Number, 60)\n    this.option('srsi_k_buy', 'K must be below this before buying', Number, 30)\n    this.option('srsi_dType','D type mode : SMA,EMA,WMA,DEMA,TEMA,TRIMA,KAMA,MAMA,T3', String, 'SMA'),\n\n    //'SMA','EMA','WMA','DEMA','TEMA','TRIMA','KAMA','MAMA','T3'\n\n\n    this.option('bollinger_size', 'period size', Number, 14)\n    this.option('bollinger_updev', 'Upper Bollinger Time Divisor', Number, 2)\n    this.option('bollinger_dndev', 'Lower Bollinger Time Divisor', Number, 2)\n    this.option('bollinger_dType','mode: : SMA,EMA,WMA,DEMA,TEMA,TRIMA,KAMA,MAMA,T3', String, 'SMA')\n    this.option('bollinger_upper_bound_pct', 'pct the current price should be near the bollinger upper bound before we sell', Number, 1)\n    this.option('bollinger_lower_bound_pct', 'pct the current price should be near the bollinger lower bound before we buy', Number, 1)\n\n\n  },\n\n\n  calculate: function (s) {\n\n    if (s.in_preroll) return\n\n  },\n\n  onPeriod: function (s, cb) {\n    //make sure we have all values\n    if (s.in_preroll) return cb()\n\n    ta_bollinger(s,'tabollinger',s.options.bollinger_size, s.options.bollinger_updev, s.options.bollinger_dndev, s.options.bollinger_dType).\n      then(function(inbol){\n        ta_srsi(s, 'srsi', s.options.srsi_periods, s.options.srsi_k, s.options.srsi_d, s.options.srsi_dType).\n          then(function(inres) {\n\n            if (!inres) return cb()\n            var divergent = inres.outFastK[inres.outFastK.length-1] - inres.outFastD[inres.outFastD.length-1]\n            s.period.srsi_D = inres.outFastD[inres.outFastD.length-1]\n            s.period.srsi_K = inres.outFastK[inres.outFastK.length-1]\n            var last_divergent = inres.outFastK[inres.outFastK.length-2] - inres.outFastD[inres.outFastD.length-2]\n            var _switch = 0//s.lookback[0]._switch\n            var nextdivergent = (( divergent + last_divergent ) /2) + (divergent - last_divergent)\n            if ((last_divergent <= 0 && (divergent > 0)) ) _switch = 1 // price rising\n            if ((last_divergent >= 0 && (divergent < 0)) ) _switch = -1 // price falling\n\n            s.period.divergent = divergent\n            s.period._switch = _switch\n\n\n\n            let upperBound = inbol.outRealUpperBand[inbol.outRealUpperBand.length-1]\n            let lowerBound = inbol.outRealLowerBand[inbol.outRealLowerBand.length-1]\n            let midBound =inbol.outRealMiddleBand[inbol.outRealMiddleBand.length-1]\n            if (!s.period.bollinger) s.period.bollinger = {}\n\n            s.period.bollinger.upperBound = upperBound\n            s.period.bollinger.lowerBound = lowerBound\n            s.period.bollinger.midBound = midBound\n\n\n            // K is fast moving\n\n            s.signal = null\n            if (_switch != 0  )\n            {\n              if (s.period.close > ((upperBound / 100) * (100 - s.options.bollinger_upper_bound_pct))  && nextdivergent < divergent && _switch == -1 && s.period.srsi_K > s.options.srsi_k_sell)\n              {\n                s.signal = 'sell'\n              }\n              else\n              if (s.period.close < ((lowerBound / 100) * (100 + s.options.bollinger_lower_bound_pct))   &&  nextdivergent >= divergent  && _switch == 1    && s.period.srsi_K < s.options.srsi_k_buy)\n              {\n                s.signal = 'buy'\n              }\n\n            }\n\n            cb()\n          }).catch(function(){\n            cb()})\n\n      }).catch(function(){\n        cb()})\n\n  },\n\n  onReport: function (s) {\n    var cols = []\n    if (s.period.bollinger) {\n      if (s.period.bollinger.upperBound && s.period.bollinger.lowerBound) {\n        let upperBound = s.period.bollinger.upperBound\n        let lowerBound = s.period.bollinger.lowerBound\n        var color = 'grey'\n        if (s.period.close > (upperBound / 100) * (100 - s.options.bollinger_upper_bound_pct)) {\n          color = 'green'\n        } else if (s.period.close < (lowerBound / 100) * (100 + s.options.bollinger_lower_bound_pct)) {\n          color = 'red'\n        }\n        cols.push(z(8, n(s.period.close).format('+00.0000'), ' ')[color])\n        cols.push(z(8, n(lowerBound).format('0.000000').substring(0,7), ' ').cyan)\n        cols.push(z(8, n(upperBound).format('0.000000').substring(0,7), ' ').cyan)\n        cols.push(z(8, n(s.period.srsi_D).format('0.0000').substring(0,7), ' ').cyan)\n        cols.push(z(8, n(s.period.srsi_K).format('0.0000').substring(0,7), ' ').cyan)\n        cols.push(z(5, n(s.period.divergent).format('0').substring(0,7), ' ').cyan)\n        cols.push(z(2, n(s.period._switch).format('0').substring(0,2), ' ').cyan)\n      }\n    }\n    else {\n      cols.push('         ')\n    }\n    return cols\n  },\n\n  phenotypes:\n        {\n          // -- common\n          period_length: Phenotypes.ListOption(['1m', '2m', '3m', '4m', '5m', '10m','15m']),//, '10m','15m','30m','45m','60m'\n          min_periods: Phenotypes.Range(52, 150),\n          markdown_buy_pct: Phenotypes.RangeFactor(-1.0, 1.0, 0.1),\n          markup_sell_pct: Phenotypes.RangeFactor(-1.0, 1.0, 0.1),\n          order_type: Phenotypes.ListOption(['maker', 'taker']),\n          sell_stop_pct: Phenotypes.RangeFactor(0.0, 50.0,0.1),\n          buy_stop_pct: Phenotypes.RangeFactor(0.0, 50.0,0.1),\n          profit_stop_enable_pct: Phenotypes.RangeFactor(0.0, 5.0, 0.1),\n          profit_stop_pct: Phenotypes.RangeFactor(0.0, 50.0, 0.1),\n\n          // -- strategy\n          rsi_periods: Phenotypes.Range(10, 20),\n          srsi_periods: Phenotypes.Range(5, 30),\n          srsi_k: Phenotypes.Range(1, 30),\n          srsi_d: Phenotypes.Range(1, 30),\n          srsi_k_sell: Phenotypes.RangeFactor(0.0, 100.0, 1.0),\n          srsi_k_buy: Phenotypes.RangeFactor(0.0, 100.0, 1.0),\n          srsi_dType:  Phenotypes.ListOption(['SMA','EMA','WMA','DEMA','TEMA','TRIMA','KAMA','MAMA','T3']),\n\n\n\n          bollinger_size: Phenotypes.RangeFactor(10, 25, 1),\n          bollinger_updev: Phenotypes.RangeFactor(1, 3.0, 0.1),\n          bollinger_dndev: Phenotypes.RangeFactor(1, 3.0, 0.1),\n          bollinger_dType: Phenotypes.ListOption(['SMA','EMA','WMA','DEMA','TEMA','TRIMA','KAMA','MAMA','T3']),\n          bollinger_upper_bound_pct: Phenotypes.RangeFactor(0.0, 100.0, 1.0),\n          bollinger_lower_bound_pct: Phenotypes.RangeFactor(0.0, 100.0, 1.0)\n\n        }\n}\n"
  },
  {
    "path": "extensions/strategies/ta_stoch_bollinger/strategy.js",
    "content": "let z = require('zero-fill'),\n  n = require('numbro'),\n  ta_stoch = require('../../../lib/ta_stoch'),\n  ta_bollinger = require('../../../lib/ta_bollinger'),\n  Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'ta_stoch_bollinger',\n  description: 'Stochastic BollingerBand Strategy',\n\n  getOptions: function() {\n    this.option('period', 'period length, same as --period_length', String, '3m')\n    this.option('period_length', 'period length, same as --period', String, '3m')\n    this.option('min_periods', 'min. number of history periods', Number, 200)\n    // this.option('rsi_periods', 'Time period for building the Fast-K line', Number, 14)\n    this.option('stoch_periods', 'Time period for building the Fast-K line', Number, 14)\n    this.option('stoch_k', 'Smoothing for making the Slow-K line. Usually set to 3', Number, 3)\n    this.option('stoch_k_ma_type', 'Type of Moving Average for Slow-K : SMA,EMA,WMA,DEMA,TEMA,TRIMA,KAMA,MAMA,T3', String, 'DEMA'),\n    this.option('stoch_d', 'Smoothing for making the Slow-D line', Number, 3)\n    this.option('stoch_d_ma_type', 'Type of Moving Average for Slow-D : SMA,EMA,WMA,DEMA,TEMA,TRIMA,KAMA,MAMA,T3', String, 'DEMA'),\n    this.option('stoch_k_sell', 'K must be above this before selling', Number, 75)\n    this.option('stoch_k_buy', 'K must be below this before buying', Number, 25)\n\n    this.option('bollinger_size', 'period size', Number, 20)\n    this.option('bollinger_updev', '', Number, 2)\n    this.option('bollinger_dndev', '', Number, 2)\n    this.option('bollinger_dType', 'mode: : SMA,EMA,WMA,DEMA,TEMA,TRIMA,KAMA,MAMA,T3', String, 'SMA')\n    this.option('bollinger_upper_bound_pct', 'pct the current price should be near the bollinger upper bound before we sell', Number, 0)\n    this.option('bollinger_lower_bound_pct', 'pct the current price should be near the bollinger lower bound before we buy', Number, 0)\n  },\n\n  calculate: function(s) {\n    if (s.in_preroll) return\n  },\n\n  onPeriod: function(s, cb) {\n    //make sure we have all values\n    if (s.in_preroll) return cb()\n    ta_bollinger(s, 'tabollinger', s.options.bollinger_size, s.options.bollinger_updev, s.options.bollinger_dndev, s.options.bollinger_dType)\n    .then(function(inbol) {\n      ta_stoch(s, 'stoch', s.options.stoch_periods, s.options.stoch_k, s.options.stoch_k_ma_type, s.options.stoch_d, s.options.stoch_d_ma_type)\n      .then(function(inres) {\n        if (!inres) return cb()\n        var divergent = inres.k[inres.k.length - 1] - inres.d[inres.k.length - 1]\n        s.period.stoch_D = inres.d[inres.d.length - 1]\n        s.period.stoch_K = inres.k[inres.k.length - 1]\n        var last_divergent = inres.k[inres.k.length - 2] - inres.d[inres.d.length - 2]\n        var _switch = 0\n        var nextdivergent = ((divergent + last_divergent) / 2) + (divergent - last_divergent)\n        if (last_divergent <= 0 && divergent > 0) {\n          _switch = 1 // price rising\n        }\n        if (last_divergent >= 0 && divergent < 0) {\n          _switch = -1 // price falling\n        }\n\n        s.period.divergent = divergent\n        s.period._switch = _switch\n\n        let upperBound = inbol.outRealUpperBand[inbol.outRealUpperBand.length - 1]\n        let lowerBound = inbol.outRealLowerBand[inbol.outRealLowerBand.length - 1]\n        let midBound = inbol.outRealMiddleBand[inbol.outRealMiddleBand.length - 1]\n        if (!s.period.bollinger) {\n          s.period.bollinger = {}\n        }\n\n        s.period.bollinger.upperBound = upperBound\n        s.period.bollinger.lowerBound = lowerBound\n        s.period.bollinger.midBound = midBound\n\n        // K is fast moving\n\n        s.signal = null\n        if (_switch != 0) {\n          if (s.period.close >= midBound\n            && Math.max(s.period.close, s.period.open) >= (upperBound / 100) * (100 + s.options.bollinger_upper_bound_pct)\n            && nextdivergent < divergent \n            && _switch == -1 \n\t\t\t\t    && s.period.stoch_K > s.options.stoch_k_sell)\n          {\n            s.signal = 'sell'\n          } else if (Math.min(s.period.close, s.period.open) <= (lowerBound / 100) * (100 + s.options.bollinger_lower_bound_pct)\n            && nextdivergent > divergent \n            && _switch == 1 \n\t\t\t  \t  && s.period.stoch_K < s.options.stoch_k_buy)\n          {\n            s.signal = 'buy'\n          }\n        }\n        cb()\n      }).catch(function() {\n        cb()\n      })\n    }).catch(function() {\n      cb()\n    })\n  },\n\n  onReport: function(s) {\n    var cols = []\n    if (s.period.bollinger) {\n      if (s.period.bollinger.upperBound && s.period.bollinger.lowerBound) {\n        let upperBound = s.period.bollinger.upperBound\n        let lowerBound = s.period.bollinger.lowerBound\n        var color = 'grey'\n        if (Math.max(s.period.close, s.period.open) > (upperBound / 100) * (100 + s.options.bollinger_upper_bound_pct)) {\n          color = 'green'\n        }\n        if (Math.min(s.period.close, s.period.open) < (lowerBound / 100) * (100 - s.options.bollinger_lower_bound_pct)) {\n          color = 'red'\n        }\n        cols.push(z(8, n(s.period.close).format('+00.0000'), ' ')[color])\n        cols.push(z(8, n(lowerBound).format('0.0000').substring(0, 7), ' ').cyan)\n        cols.push(z(8, n(upperBound).format('0.0000').substring(0, 7), ' ').cyan)\n        cols.push(z(8, n(s.period.stoch_D).format('0.0000').substring(0, 7), ' ').cyan)\n        cols.push(z(8, n(s.period.stoch_K).format('0.0000').substring(0, 7), ' ').cyan)\n        cols.push(z(5, n(s.period.divergent).format('0').substring(0, 7), ' ').cyan)\n        cols.push(z(2, n(s.period._switch).format('0').substring(0, 2), ' ').cyan)\n      }\n    } else {\n      cols.push('         ')\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.ListOption(['1m', '2m', '3m', '4m', '5m', '10m', '15m']),\n    min_periods: Phenotypes.Range(52, 150),\n    markdown_buy_pct: Phenotypes.RangeFactor(-1.0, 1.0, 0.1),\n    markup_sell_pct: Phenotypes.RangeFactor(-1.0, 1.0, 0.1),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.RangeFactor(0.0, 50.0, 0.1),\n    buy_stop_pct: Phenotypes.RangeFactor(0.0, 50.0, 0.1),\n    profit_stop_enable_pct: Phenotypes.RangeFactor(0.0, 5.0, 0.1),\n    profit_stop_pct: Phenotypes.RangeFactor(0.0, 50.0, 0.1),\n\n    // -- strategy\n    // rsi_periods: Phenotypes.Range(10, 30),\n    stoch_periods: Phenotypes.Range(5, 30),\n    stoch_k: Phenotypes.Range(1, 10),\n    stoch_k_ma_type: Phenotypes.ListOption(['SMA', 'EMA', 'WMA', 'DEMA', 'TEMA', 'TRIMA', 'KAMA', 'MAMA', 'T3']),\n    stoch_d: Phenotypes.Range(1, 10),\n    stoch_k_sell: Phenotypes.RangeFactor(0.0, 100.0, 1.0),\n    stoch_k_buy: Phenotypes.RangeFactor(0.0, 100.0, 1.0),\n    stoch_d_ma_type: Phenotypes.ListOption(['SMA', 'EMA', 'WMA', 'DEMA', 'TEMA', 'TRIMA', 'KAMA', 'MAMA', 'T3']),\n\n    bollinger_size: Phenotypes.RangeFactor(10, 25, 1),\n    bollinger_updev: Phenotypes.RangeFactor(1, 3.0, 0.1),\n    bollinger_dndev: Phenotypes.RangeFactor(1, 3.0, 0.1),\n    bollinger_dType: Phenotypes.ListOption(['SMA', 'EMA', 'WMA', 'DEMA', 'TEMA', 'TRIMA', 'KAMA', 'MAMA', 'T3']),\n    bollinger_upper_bound_pct: Phenotypes.RangeFactor(0.0, 100.0, 1.0),\n    bollinger_lower_bound_pct: Phenotypes.RangeFactor(0.0, 100.0, 1.0)\n  }\n}\n"
  },
  {
    "path": "extensions/strategies/ta_trix/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , rsi = require('../../../lib/rsi')\n  , ta_trix = require('../../../lib/ta_trix')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'ta_trix',\n  description: 'TRIX - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA with rsi oversold',\n\n  getOptions: function () {\n    this.option('period', 'period length eg 10m', String, '5m')\n    this.option('min_periods', 'min. number of history periods', Number, 52)\n    this.option('timeperiod', 'timeperiod for TRIX', Number, 30)\n    this.option('overbought_rsi_periods', 'number of periods for overbought RSI', Number, 25)\n    this.option('overbought_rsi', 'sold when RSI exceeds this value', Number, 70)\n  },\n\n  calculate: function (s) {\n    if (s.options.overbought_rsi) {\n      // sync RSI display with overbought RSI periods\n      s.options.rsi_periods = s.options.overbought_rsi_periods\n      rsi(s, 'overbought_rsi', s.options.overbought_rsi_periods)\n      if (!s.in_preroll && s.period.overbought_rsi >= s.options.overbought_rsi && !s.overbought) {\n        s.overbought = true\n\n        if (s.options.mode === 'sim' && s.options.verbose) {\n          console.log(('\\noverbought at ' + s.period.overbought_rsi + ' RSI, preparing to sold\\n').cyan)\n        }\n      }\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (!s.in_preroll && typeof s.period.overbought_rsi === 'number') {\n      if (s.overbought) {\n        s.overbought = false\n        s.signal = 'sell'\n        return cb()\n      }\n    }\n\n    ta_trix(s, s.options.timeperiod).then(function(signal) {\n      s.period['trix'] = signal\n\n      if (s.period.trix && s.lookback[0] && s.lookback[0].trix) {\n        s.period.trend_trix = s.period.trix >= 0 ? 'up' : 'down'\n      }\n\n      if (s.period.trend_trix == 'up') {\n        if (s.trend !== 'up') {\n          s.acted_on_trend = false\n        }\n\n        s.trend = 'up'\n        s.signal = !s.acted_on_trend ? 'buy' : null\n      } else if (s.period.trend_trix == 'down') {\n        if (s.trend !== 'down') {\n          s.acted_on_trend = false\n        }\n\n        s.trend = 'down'\n        s.signal = !s.acted_on_trend ? 'sell' : null\n      }\n\n      cb()\n    }).catch(function(error) {\n      console.log(error)\n      cb()\n    })\n  },\n\n  onReport: function (s) {\n    let cols = []\n\n    if (typeof s.period.trix === 'number') {\n      let color = s.period.trix > 0 ? 'green' : 'red'\n\n      cols.push(z(8, n(s.period.trix).format('0.0000'), ' ')[color])\n    }\n\n    return cols\n  },\n\n  phenotypes: {\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 104),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    timeperiod: Phenotypes.Range(1,60),\n    overbought_rsi_periods: Phenotypes.Range(1, 50),\n    overbought_rsi: Phenotypes.Range(20, 100)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/ta_ultosc/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , rsi = require('../../../lib/rsi')\n  , ultosc = require('../../../lib/ta_ultosc')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'ta_ultosc',\n  description: 'ULTOSC - Ultimate Oscillator with rsi oversold',\n\n  getOptions: function () {\n    this.option('period', 'period length eg 5m', String, '5m')\n    this.option('min_periods', 'min. number of history periods', Number, 52)\n    this.option('signal', 'Provide signal and indicator \"simple\" (buy@65, sell@50), \"low\" (buy@65, sell@30), \"trend\" (buy@30, sell@70)', String, 'simple')\n    this.option('timeperiod1', 'talib ULTOSC timeperiod1', Number, 7)\n    this.option('timeperiod2', 'talib ULTOSC timeperiod2', Number, 14)\n    this.option('timeperiod3', 'talib ULTOSC timeperiod3', Number, 28)\n    this.option('overbought_rsi_periods', 'number of periods for overbought RSI', Number, 25)\n    this.option('overbought_rsi', 'sold when RSI exceeds this value', Number, 90)\n  },\n\n  calculate: function (s) {\n    if (s.options.overbought_rsi) {\n      // sync RSI display with overbought RSI periods\n      s.options.rsi_periods = s.options.overbought_rsi_periods\n      rsi(s, 'overbought_rsi', s.options.overbought_rsi_periods)\n      if (!s.in_preroll && s.period.overbought_rsi >= s.options.overbought_rsi && !s.overbought) {\n        s.overbought = true\n\n        if (s.options.mode === 'sim' && s.options.verbose) {\n          console.log(('\\noverbought at ' + s.period.overbought_rsi + ' RSI, preparing to sold\\n').cyan)\n        }\n      }\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (!s.in_preroll && typeof s.period.overbought_rsi === 'number') {\n      if (s.overbought) {\n        s.overbought = false\n        s.signal = 'sell'\n        return cb()\n      }\n    }\n\n    ultosc(s, s.options.min_periods, s.options.timeperiod1, s.options.timeperiod2, s.options.timeperiod3).then(function(signal) {\n      s.period['ultosc'] = signal\n\n      let t = s.signales || {}\n\n      var signals = {\n        bottom: t.bottom || 0, // 30 line\n        top: t.top || 0, // 70 line\n      }\n\n      if (s.period.ultosc && s.period.ultosc > 0) {\n\n        if (s.options.signal == 'simple') {\n          // use defensive indicator trigger\n\n          if (s.period.ultosc > 65) {\n            s.period.trend_ultosc = 'up'\n          } else if (s.period.ultosc < 50) {\n            s.period.trend_ultosc = 'down'\n          }\n\n        } else if (s.options.signal == 'low') {\n          // use recovery indicator trigger\n\n          if(s.period.ultosc > 65) {\n            s.period.trend_ultosc = 'up'\n          } else if(s.period.ultosc < 30 && signals.bottom == 0) {\n            s.period.trend_ultosc = 'down'\n          }\n        } else if (s.options.signal == 'trend') {\n          // lets got with the masses\n\n          if(s.period.ultosc > 30 && signals.bottom > 0) {\n            s.period.trend_ultosc = 'up'\n          } else if(s.period.ultosc < 70 && signals.top > 0) {\n            s.period.trend_ultosc = 'down'\n          }\n        }\n\n        signals.bottom = s.period.ultosc < 30 ? signals.bottom + 1 : 0\n        signals.top = s.period.ultosc > 70 ? signals.top + 1 : 0\n\n        s.signales = signals\n      }\n\n      if (s.period.trend_ultosc == 'up') {\n        if (s.trend !== 'up') {\n          s.acted_on_trend = false\n        }\n\n        s.trend = 'up'\n        s.signal = !s.acted_on_trend ? 'buy' : null\n      } else if (s.period.trend_ultosc == 'down') {\n        if (s.trend !== 'down') {\n          s.acted_on_trend = false\n        }\n\n        s.trend = 'down'\n        s.signal = !s.acted_on_trend ? 'sell' : null\n      }\n\n      cb()\n    }).catch(function(error) {\n      console.log(error)\n      cb()\n    })\n  },\n\n  onReport: function (s) {\n    let cols = []\n\n    if (typeof s.period.ultosc === 'number') {\n      let signal = z(8, n(s.period.ultosc).format('0.0000'), ' ')\n\n      if (s.period.ultosc <= 30) {\n        cols.push(signal.red)\n      } else if (s.period.ultosc > 30 && s.period.ultosc <= 50) {\n        cols.push(signal.yellow)\n      } else if (s.period.ultosc > 50 && s.period.ultosc < 70) {\n        cols.push(signal.green)\n      } else if (s.period.ultosc >= 70) {\n        cols.push(signal.bold.green)\n      }\n    }\n\n    return cols\n  },\n\n  phenotypes: {\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 104),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    signal: Phenotypes.ListOption(['simple', 'low', 'trend']),\n    timeperiod1: Phenotypes.Range(1,50),\n    timeperiod2: Phenotypes.Range(1,50),\n    timeperiod3: Phenotypes.Range(1,50),\n    overbought_rsi_periods: Phenotypes.Range(1, 50),\n    overbought_rsi: Phenotypes.Range(20, 100)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/ti_bollinger/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , tulip_bollinger = require('../../../lib/ti_bollinger')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'ti_bollinger',\n  description: 'Buy when (Signal ≤ Lower Bollinger Band) and sell when (Signal ≥ Upper Bollinger Band).',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '5m')\n    this.option('period_length', 'period length, same as --period', String, '5m')\n    this.option('bollinger_size', 'period size', Number, 14)\n    this.option('bollinger_time', 'times of standard deviation between the upper band and the moving averages', Number, 2)\n    this.option('bollinger_upper_bound_pct', 'pct the current price should be near the bollinger upper bound before we sell', Number, 0)\n    this.option('bollinger_lower_bound_pct', 'pct the current price should be near the bollinger lower bound before we buy', Number, 0)\n  },\n \n  calculate:  function (s) {\n    if (s.in_preroll) return \n  },\n\n  onPeriod: function (s, cb) {\n    \n    tulip_bollinger(s,'tulip_bollinger', s.options.bollinger_size, s.options.bollinger_time).\n      then(function(result)\n      {\n        if (!result) cb()\n        let bollinger = {\n          LowerBand: result.LowerBand[result.LowerBand.length-1],\n          MiddleBand: result.MiddleBand[result.MiddleBand.length-1],\n          UpperBand: result.UpperBand[result.UpperBand.length-1]\n        }\n        s.period.report = bollinger\n        if (bollinger.UpperBand) {\n          let upperBound =   (bollinger.UpperBand / 100) * (100 - s.options.bollinger_upper_bound_pct)\n          let lowerBound = (bollinger.LowerBand / 100) * (100 + s.options.bollinger_lower_bound_pct)\n          s.signal = null // hold\n          if (s.period.close < lowerBound ) {\n            s.signal = 'buy'\n          } \n          if (s.period.close > upperBound ) {\n            s.signal = 'sell'\n          } \n\n\n        }\n        cb()\n      }).catch(function(){\n        s.signal = null // hold\n        cb()\n      })\n  },\n\n  onReport: function (s) {\n    var cols = []\n    if (s.period.report) {\n      if (s.period.report.UpperBand && s.period.report.LowerBand) {\n        let upperBound = s.period.report.UpperBand\n        let lowerBound = s.period.report.LowerBand\n        var color = 'grey'\n        if (s.period.close > (upperBound / 100) * (100 - s.options.bollinger_upper_bound_pct)) {\n          color = 'green'\n        } else if (s.period.close < (lowerBound / 100) * (100 + s.options.bollinger_lower_bound_pct)) {\n          color = 'red'\n        }\n        cols.push(z(8, n(s.period.close).format('+00.0000'), ' ')[color])\n        cols.push(z(8, n(lowerBound).format('0.000000').substring(0,7), ' ').cyan)\n        cols.push(z(8, n(upperBound).format('0.000000').substring(0,7), ' ').cyan)\n      }\n    }\n    else {\n      cols.push('         ')\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    markdown_buy_pct: Phenotypes.RangeFactor(-1.0, 5.0, 0.1),\n    markup_sell_pct: Phenotypes.RangeFactor(-1.0, 5.0, 0.1),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.RangeFactor(0.0, 50.0,0.01),\n    buy_stop_pct: Phenotypes.RangeFactor(0.0, 50.0,0.01),\n    profit_stop_enable_pct: Phenotypes.RangeFactor(0.0, 5.0,0.1),\n    profit_stop_pct: Phenotypes.RangeFactor(0.0, 20.0,0.1),\n    rsi_periods: Phenotypes.Range(6, 16),\n\n    // -- strategy\n    bollinger_size: Phenotypes.RangeFactor(1, 30, 1),\n    bollinger_time: Phenotypes.RangeFactor(1.0, 14.0, 0.1),\n    bollinger_upper_bound_pct: Phenotypes.RangeFactor(0.0, 100.0, 0.1),\n    bollinger_lower_bound_pct: Phenotypes.RangeFactor(0.0, 100.0, 0.1)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/ti_hma/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , rsi = require('../../../lib/rsi')\n  , ti_hma = require('../../../lib/ti_hma')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'ti_hma',\n  description: 'HMA - Hull Moving Average',\n\n  getOptions: function () {\n    this.option('period', 'period length eg 10m', String, '15m')\n    this.option('min_periods', 'min. number of history periods', Number, 52)\n    this.option('trend_hma', 'number of periods for trend hma', Number, 36)\n    this.option('overbought_rsi_periods', 'number of periods for overbought RSI', Number, 25)\n    this.option('overbought_rsi', 'sold when RSI exceeds this value', Number, 70)\n  },\n\n  calculate: function (s) {\n    if (s.options.overbought_rsi) {\n      // sync RSI display with overbought RSI periods\n      s.options.rsi_periods = s.options.overbought_rsi_periods\n      rsi(s, 'overbought_rsi', s.options.overbought_rsi_periods)\n      if (!s.in_preroll && s.period.overbought_rsi >= s.options.overbought_rsi && !s.overbought) {\n        s.overbought = true\n\n        if (s.options.mode === 'sim' && s.options.verbose) {\n          console.log(('\\noverbought at ' + s.period.overbought_rsi + ' RSI, preparing to sold\\n').cyan)\n        }\n      }\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (!s.in_preroll && typeof s.period.overbought_rsi === 'number') {\n      if (s.overbought) {\n        s.overbought = false\n        s.signal = 'sell'\n        return cb()\n      }\n    }\n\n    ti_hma(s, s.options.min_periods, s.options.trend_hma).then(function(signal) {\n      s.period['trend_hma'] = signal\n\n      // percentage change\n      if (s.period.trend_hma && s.lookback[0] && s.lookback[0].trend_hma) {\n        s.period.trend_hma_rate = (s.period.trend_hma - s.lookback[0].trend_hma) / s.lookback[0].trend_hma * 100\n      }\n\n      if (s.period.trend_hma_rate > 0) {\n        if (s.trend !== 'up') {\n          s.acted_on_trend = false\n        }\n        s.trend = 'up'\n        s.signal = !s.acted_on_trend ? 'buy' : null\n        s.cancel_down = false\n      } else if (!s.cancel_down && s.period.trend_hma_rate < 0) {\n        if (s.trend !== 'down') {\n          s.acted_on_trend = false\n        }\n        s.trend = 'down'\n        s.signal = !s.acted_on_trend ? 'sell' : null\n      }\n\n      cb()\n    }).catch(function(error) {\n      console.log(error)\n      cb()\n    })\n  },\n\n  onReport: function (s) {\n    var cols = []\n\n    if (typeof s.period.trend_hma === 'number') {\n      var color = 'grey'\n\n      if (s.period.trend_hma_rate > 0) {\n        color = 'green'\n      } else if (s.period.trend_hma_rate < 0) {\n        color = 'red'\n      }\n\n      cols.push(z(8, n(s.period.trend_hma).format('0.0000'), ' ')[color])\n      cols.push(z(6, n(s.period.trend_hma_rate).format('0.00'), ' ')[color])\n    }\n\n    return cols\n  },\n\n  phenotypes: {\n    period_length: Phenotypes.RangePeriod(5, 120, 'm'),\n    min_periods: Phenotypes.Range(20, 104),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    trend_hma: Phenotypes.Range(6, 72),\n    overbought_rsi_periods: Phenotypes.Range(1, 50),\n    overbought_rsi: Phenotypes.Range(20, 100)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/ti_stoch/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , tulip_stoch = require('../../../lib/ti_stoch')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'ti_stoch',\n  description: 'Buy when (Signal ≤ srsi_k_buy) and sell when (Signal ≥ srsi_k_sell).  (this should not be used alone.  you will lose over time)',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '5m')\n    this.option('period_length', 'period length, same as --period', String, '5m')\n    this.option('rsi_periods', 'number of RSI periods', Number, 14)\n    this.option('stoch_kperiods', 'number of RSI periods', Number, 9)\n    this.option('stoch_k', '%D line', Number, 3)\n    this.option('stoch_d', '%D line', Number, 3)\n    this.option('stoch_k_sell', 'K must be above this before selling', Number, 80)\n    this.option('stoch_k_buy', 'K must be below this before buying', Number, 10)\n  },\n\n  calculate:  function (s) {\n    if (s.in_preroll) return\n  },\n\n  onPeriod: function (s, cb) {\n    if (s.in_preroll) return cb()\n    tulip_stoch(s,'tulip_stoch', s.options.rsi_periods, s.options.stoch_k, s.options.stoch_d).\n      then(function(result)\n      {\n        if (!result) return cb()\n        if (result.k.length == 0) return cb()\n        var divergent = result.k[result.k.length-1] - result.d[result.d.length-1]\n        s.period.srsi_D = result.d[result.d.length-1]\n        s.period.srsi_K = result.k[result.k.length-1]\n        var last_divergent = result.k[result.k.length-2] - result.d[result.d.length-2]\n        var _switch = 0//s.lookback[0]._switch\n        var nextdivergent = (( divergent + last_divergent ) /2) + (divergent - last_divergent)\n        if ((last_divergent <= 0 && (divergent > 0)) ) _switch = 1 // price rising\n        if ((last_divergent >= 0 && (divergent < 0)) ) _switch = -1 // price falling\n\n        s.period.divergent = divergent\n        s.period._switch = _switch\n\n        s.signal = null\n        if (_switch != 0  )\n        {\n          if (_switch == -1 && s.period.srsi_K > s.options.stoch_k_sell)\n          {\n            s.signal = 'sell'\n          }\n          else\n          if (  nextdivergent >= divergent  && _switch == 1    && s.period.srsi_K < s.options.stoch_k_buy)\n          {\n            s.signal = 'buy'\n          }\n\n        }\n\n        return cb()\n      }).catch(function(){\n        s.signal = null // hold\n        return cb()\n      })\n\n  },\n\n  onReport: function (s) {\n    var cols = []\n\n    cols.push(z(8, n(s.period.close).format('+00.0000'), ' ').cyan)\n    cols.push(z(8, n( s.period.srsi_D).format('0.000000').substring(0,7), ' ').cyan)\n    cols.push(z(8, n(s.period.srsi_K).format('0.000000').substring(0,7), ' ').cyan)\n    cols.push(z(8, n(s.period.divergent).format('0').substring(0,3), ' ').cyan)\n    cols.push(z(8, n( s.period._switch ).format('0').substring(0,2), ' ').cyan)\n\n\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    markdown_buy_pct: Phenotypes.RangeFactor(-1.0, 5.0, 0.1),\n    markup_sell_pct: Phenotypes.RangeFactor(-1.0, 5.0, 0.1),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.RangeFactor(0.0, 50.0,0.01),\n    buy_stop_pct: Phenotypes.RangeFactor(0.0, 50.0,0.01),\n    profit_stop_enable_pct: Phenotypes.RangeFactor(0.0, 5.0,0.1),\n    profit_stop_pct: Phenotypes.RangeFactor(0.0, 20.0,0.1),\n\n    // -- strategy\n    rsi_periods: Phenotypes.Range(10, 30),\n    stoch_periods: Phenotypes.Range(5, 30),\n    stoch_k: Phenotypes.Range(1, 10),\n    stoch_d: Phenotypes.Range(1, 10),\n    stoch_k_sell: Phenotypes.RangeFactor(0.0, 100.0, 1.0),\n    stoch_k_buy: Phenotypes.RangeFactor(0.0, 100.0, 1.0),\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/ti_stoch_bollinger/strategy.js",
    "content": "let z = require('zero-fill')\n  , n = require('numbro')\n  , ti_stoch = require('../../../lib/ti_stoch')\n  , ti_bollinger = require('../../../lib/ti_bollinger')\n  , Phenotypes = require('../../../lib/phenotype')\nmodule.exports = {\n  name: 'ti_stoch_bollinger',\n  description: 'Stochastic BollingerBand Strategy',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '5m')\n    this.option('period_length', 'period length, same as --period', String, '5m')\n    this.option('min_periods', 'min. number of history periods', Number, 200)\n    this.option('rsi_periods', 'number of RSI periods', Number, 14)\n    this.option('stoch_kperiods', 'number of RSI periods', Number, 9)\n    this.option('stoch_k', '%D line', Number, 5)\n    this.option('stoch_d', '%D line', Number, 3)\n    this.option('stoch_k_sell', 'K must be above this before selling', Number, 70)\n    this.option('stoch_k_buy', 'K must be below this before buying', Number, 20)\n\n    this.option('bollinger_size', 'period size', Number, 14)\n    this.option('bollinger_time', 'times of standard deviation between the upper band and the moving averages', Number, 2)\n    this.option('bollinger_upper_bound_pct', 'pct the current price should be near the bollinger upper bound before we sell', Number, 0)\n    this.option('bollinger_lower_bound_pct', 'pct the current price should be near the bollinger lower bound before we buy', Number, 0)\n  },\n\n\n  calculate: function (s) {\n    if (s.in_preroll) return\n  },\n\n  onPeriod: function (s, cb) {\n    //make sure we have all values\n    if (s.in_preroll) return cb()\n\n    ti_bollinger(s,'ti_bollinger', s.options.bollinger_size, s.options.bollinger_time).\n      then(function(inbol){\n        ti_stoch(s,'ti_stoch', s.options.stoch_kperiods, s.options.stoch_k, s.options.stoch_d).\n          then(function(inres) {\n\n            if (!inres) return cb()\n            if (inres.k.length == 0) return cb()\n            var divergent = inres.k[inres.k.length-1] - inres.d[inres.d.length-1]\n            s.period.stoch_D = inres.d[inres.d.length-1]\n            s.period.stoch_K = inres.k[inres.k.length-1]\n            var last_divergent = inres.k[inres.k.length-2] - inres.d[inres.d.length-2]\n            var _switch = 0\n            var nextdivergent = (( divergent + last_divergent ) /2) + (divergent - last_divergent)\n            if ((last_divergent <= 0 && (divergent > 0)) ) _switch = 1 // price rising\n            if ((last_divergent >= 0 && (divergent < 0)) ) _switch = -1 // price falling\n\n            s.period.divergent = divergent\n            s.period._switch = _switch\n\n\n            let LowerBand= inbol.LowerBand[inbol.LowerBand.length-1]\n            let MiddleBand= inbol.MiddleBand[inbol.MiddleBand.length-1]\n            let UpperBand= inbol.UpperBand[inbol.UpperBand.length-1]\n            let bollinger = {\n              LowerBand: LowerBand,\n              MiddleBand: MiddleBand,\n              UpperBand: UpperBand\n            }\n            s.period.report = bollinger\n\n\n            // K is fast moving\n\n            s.signal = null\n            if (_switch != 0  )\n            {\n              if (s.period.close >= MiddleBand && s.period.close >= ((UpperBand / 100) * (100 +  s.options.bollinger_upper_bound_pct)) && nextdivergent < divergent && _switch == -1 && s.period.stoch_K > s.options.stoch_k_sell)\n              {\n                s.signal = 'sell'\n              }\n              else\n              if (s.period.close < (LowerBand / 100) * (100 + s.options.bollinger_lower_bound_pct)   &&  nextdivergent >= divergent  && _switch == 1    && s.period.stoch_K < s.options.stoch_k_buy)\n              {\n                s.signal = 'buy'\n              }\n\n            }\n\n            cb()\n          }).catch(function(){\n            cb()})\n      }).catch(function(){\n        cb()})\n  },\n\n  onReport: function (s) {\n    var cols = []\n    if (s.period.report) {\n\n      let upperBound = s.period.report.UpperBand\n      let lowerBound = s.period.report.LowerBand\n      var color = 'grey'\n      if (s.period.close > (upperBound / 100) * ( 100 + s.options.bollinger_upper_bound_pct)) { color = 'green' }\n      if (s.period.close < (lowerBound / 100) * ( 100 - s.options.bollinger_lower_bound_pct)) { color = 'red' }\n      cols.push(z(8, n(s.period.close).format('+00.0000'), ' ')[color])\n      cols.push(z(8, n(lowerBound).format('0.000000').substring(0,7), ' ').cyan)\n      cols.push(z(8, n(upperBound).format('0.000000').substring(0,7), ' ').cyan)\n      cols.push(z(8, n(s.period.stoch_D).format('0.0000').substring(0,7), ' ').cyan)\n      cols.push(z(8, n(s.period.stoch_K).format('0.0000').substring(0,7), ' ').cyan)\n      cols.push(z(5, n(s.period.divergent).format('0').substring(0,7), ' ').cyan)\n      cols.push(z(2, n(s.period._switch).format('0').substring(0,2), ' ').cyan)\n\n    }\n    else {\n      cols.push('         ')\n    }\n    return cols\n  },\n\n  phenotypes:\n        {\n          // -- common\n          period_length: Phenotypes.ListOption(['1m', '2m', '3m', '4m', '5m', '10m','15m']),//, '10m','15m','30m','45m','60m'\n          min_periods: Phenotypes.Range(52, 150),\n          markdown_buy_pct: Phenotypes.RangeFactor(-1.0, 1.0, 0.1),\n          markup_sell_pct: Phenotypes.RangeFactor(-1.0, 1.0, 0.1),\n          order_type: Phenotypes.ListOption(['maker', 'taker']),\n          sell_stop_pct: Phenotypes.RangeFactor(0.0, 50.0,0.1),\n          buy_stop_pct: Phenotypes.RangeFactor(0.0, 50.0,0.1),\n          profit_stop_enable_pct: Phenotypes.RangeFactor(0.0, 5.0, 0.1),\n          profit_stop_pct: Phenotypes.RangeFactor(0.0, 50.0, 0.1),\n\n          // -- strategy\n          rsi_periods: Phenotypes.Range(10, 30),\n          stoch_periods: Phenotypes.Range(5, 30),\n          stoch_k: Phenotypes.Range(1, 10),\n          stoch_d: Phenotypes.Range(1, 10),\n          stoch_k_sell: Phenotypes.RangeFactor(0.0, 100.0, 1.0),\n          stoch_k_buy: Phenotypes.RangeFactor(0.0, 100.0, 1.0),\n\n          bollinger_size: Phenotypes.RangeFactor(10, 25, 1),\n          bollinger_time: Phenotypes.RangeFactor(1, 3.0, 0.1),\n          bollinger_upper_bound_pct: Phenotypes.RangeFactor(0.0, 100.0, 1.0),\n          bollinger_lower_bound_pct: Phenotypes.RangeFactor(0.0, 100.0, 1.0)\n\n        }\n}\n"
  },
  {
    "path": "extensions/strategies/trend_bollinger/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , bollinger = require('../../../lib/bollinger')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'trend_bollinger',\n  description: 'Buy when (Signal ≤ Lower Bollinger Band && trend up) and sell when (Signal ≥ Upper Bollinger Band && trend down).',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '1h')\n    this.option('period_length', 'period length, same as --period', String, '1h')\n    this.option('min_periods', 'min. number of history periods', Number, 52)\n    this.option('bollinger_size', 'period size', Number, 20)\n    this.option('bollinger_time', 'times of standard deviation between the upper band and the moving averages', Number, 2)\n    this.option('bollinger_upper_bound_pct', 'pct the current price should be near the bollinger upper bound before we sell', Number, 0)\n    this.option('bollinger_lower_bound_pct', 'pct the current price should be near the bollinger lower bound before we buy', Number, 0)\n  },\n\n  calculate: function (s) {\n    // calculate Bollinger Bands\n    bollinger(s, 'bollinger', s.options.bollinger_size)\n  },\n\n  onPeriod: function (s, cb) {\n    if (!s.in_preroll && typeof s.period.oversold_rsi === 'number') {\n      if (s.oversold) {\n        s.oversold = false\n        s.trend = 'oversold'\n        s.signal = 'buy'\n        s.cancel_down = true\n        return cb()\n      }\n    }\n\n    if (s.period.bollinger) {\n      if (s.period.bollinger.upperBound && s.period.bollinger.lowerBound) {\n        s.signal = null // hold\n        let upperBound = s.period.bollinger.upperBound\n        let lowerBound = s.period.bollinger.lowerBound\n        if (s.period.close > (upperBound / 100) * (100 - s.options.bollinger_upper_bound_pct)) {\n          s.last_hit_bollinger = 'upper'\n        } else if (s.period.close < (lowerBound / 100) * (100 + s.options.bollinger_lower_bound_pct)) {\n          s.last_hit_bollinger = 'lower'\n        } else {\n          if (s.last_hit_bollinger === 'upper' && s.period.close < s.last_hit_close) {\n            s.trend = 'down'\n          } else if (s.last_hit_bollinger === 'lower' && s.period.close > s.last_hit_close) {\n            s.trend = 'up'\n          }\n          s.last_hit_bollinger = 'middle'\n        }\n        s.last_hit_close = s.period.close\n\n        if (s.trend === 'down') {\n          s.signal = 'sell'\n          s.trend = null\n        } else if (s.trend === 'up') {\n          s.signal = 'buy'\n          s.trend = null\n        }\n      }\n    }\n    cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    if (s.period.bollinger) {\n      if (s.period.bollinger.upperBound && s.period.bollinger.lowerBound) {\n        let upperBound = s.period.bollinger.upperBound\n        let lowerBound = s.period.bollinger.lowerBound\n        var color = 'grey'\n        if (s.period.close > (upperBound / 100) * (100 - s.options.bollinger_upper_bound_pct)) {\n          color = 'green'\n        } else if (s.period.close < (lowerBound / 100) * (100 + s.options.bollinger_lower_bound_pct)) {\n          color = 'red'\n        }\n        cols.push(z(8, n(s.period.close).format('+00.0000'), ' ')[color])\n        cols.push(z(8, n(lowerBound).format('0.000000').substring(0,7), ' ').cyan)\n        cols.push(z(8, n(upperBound).format('0.000000').substring(0,7), ' ').cyan)\n      }\n    }\n    else {\n      cols.push('         ')\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    bollinger_size: Phenotypes.Range(1, 40),\n    bollinger_time: Phenotypes.RangeFloat(1,6),\n    bollinger_upper_bound_pct: Phenotypes.RangeFloat(-1, 30),\n    bollinger_lower_bound_pct: Phenotypes.RangeFloat(-1, 30)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/trend_ema/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , ema = require('../../../lib/ema')\n  , rsi = require('../../../lib/rsi')\n  , stddev = require('../../../lib/stddev')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'trend_ema',\n  description:\n    'Buy when (EMA - last(EMA) > 0) and sell when (EMA - last(EMA) < 0). Optional buy on low RSI.',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '2m')\n    this.option('period_length', 'period length, same as --period', String, '2m')\n    this.option('min_periods', 'min. number of history periods', Number, 52)\n    this.option('trend_ema', 'number of periods for trend EMA', Number, 26)\n    this.option('neutral_rate', 'avoid trades if abs(trend_ema) under this float (0 to disable, \"auto\" for a variable filter)', Number, 'auto')\n    this.option('oversold_rsi_periods', 'number of periods for oversold RSI', Number, 14)\n    this.option('oversold_rsi', 'buy when RSI reaches this value', Number, 10)\n  },\n\n  calculate: function(s) {\n    ema(s, 'trend_ema', s.options.trend_ema)\n    if (s.options.oversold_rsi) {\n      // sync RSI display with oversold RSI periods\n      s.options.rsi_periods = s.options.oversold_rsi_periods\n      rsi(s, 'oversold_rsi', s.options.oversold_rsi_periods)\n      if (!s.in_preroll && s.period.oversold_rsi <= s.options.oversold_rsi && !s.oversold && !s.cancel_down) {\n        s.oversold = true\n        if (s.options.mode !== 'sim' || s.options.verbose) console.log(('\\noversold at ' + s.period.oversold_rsi + ' RSI, preparing to buy\\n').cyan)\n      }\n    }\n    if (s.period.trend_ema && s.lookback[0] && s.lookback[0].trend_ema) {\n      s.period.trend_ema_rate = (s.period.trend_ema - s.lookback[0].trend_ema) / s.lookback[0].trend_ema * 100\n    }\n    if (s.options.neutral_rate === 'auto') {\n      stddev(s, 'trend_ema_stddev', Math.floor(s.options.trend_ema / 2), 'trend_ema_rate')\n    } else {\n      s.period.trend_ema_stddev = s.options.neutral_rate\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (!s.in_preroll && typeof s.period.oversold_rsi === 'number') {\n      if (s.oversold) {\n        s.oversold = false\n        s.trend = 'oversold'\n        s.signal = 'buy'\n        s.cancel_down = true\n        return cb()\n      }\n    }\n    if (typeof s.period.trend_ema_stddev === 'number') {\n      if (s.period.trend_ema_rate > s.period.trend_ema_stddev) {\n        if (s.trend !== 'up') {\n          s.acted_on_trend = false\n        }\n        s.trend = 'up'\n        s.signal = !s.acted_on_trend ? 'buy' : null\n        s.cancel_down = false\n      } else if (!s.cancel_down && s.period.trend_ema_rate < (s.period.trend_ema_stddev * -1)) {\n        if (s.trend !== 'down') {\n          s.acted_on_trend = false\n        }\n        s.trend = 'down'\n        s.signal = !s.acted_on_trend ? 'sell' : null\n      }\n    }\n    cb()\n  },\n\n  onReport: function(s) {\n    var cols = []\n    if (typeof s.period.trend_ema_stddev === 'number') {\n      var color = 'grey'\n      if (s.period.trend_ema_rate > s.period.trend_ema_stddev) {\n        color = 'green'\n      } else if (s.period.trend_ema_rate < s.period.trend_ema_stddev * -1) {\n        color = 'red'\n      }\n      cols.push(z(8, n(s.period.trend_ema_rate).format('0.0000'), ' ')[color])\n      if (s.period.trend_ema_stddev) {\n        cols.push(z(8, n(s.period.trend_ema_stddev).format('0.0000'), ' ').grey)\n      }\n    } else {\n      if (s.period.trend_ema_stddev) {\n        cols.push('                  ')\n      } else {\n        cols.push('         ')\n      }\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 100),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    trend_ema: Phenotypes.Range(1, 40),\n    oversold_rsi_periods: Phenotypes.Range(5, 50),\n    oversold_rsi: Phenotypes.Range(20, 100)\n  },\n}\n\n"
  },
  {
    "path": "extensions/strategies/trendline/README.md",
    "content": "\n## Reading the console output\n\n![console](Capture.PNG)\n\nFrom left to right ( for trendline not pictured above, which is neural ):\n\n- Timestamp in local time (grey, blue when showing \"live\" stats)\n- Asset price in currency (yellow)\n- Percent change of price since last period (red/green)\n- Volume in asset since last period (grey)\n- [RSI](http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:relative_strength_index_rsi) ANSI graph (red/green)\n- strategy inormation, in order:\n```\n- col1: trendline 10000/1000 trades \n- col2: trendline 1000/100 trades \n- col3:stdev of 10000 trades\n- col4: stdev of 1000 trades\n- col5: 10000trades mean\n- col6: 1000 trades mean\n- col7: the mean of the 10000 & 1000 trades and stdev calculated into 100* the stdev percentage of the mean of the long and short trades (in short the active-markup based on a multiplier to create a percentage of standard deviation.) \n- If the four cols on the right are green, that means its a currently increasing trend) when both on the left are green both trends are increasing)\n```\n- Current signal or action, including `buy`, `sell`, `buying`, `selling`, `bought`, `sold` and `last_trade_worth` (percent change in the trend direction since last buy/sell)\n- Account balance (asset)\n- Account balance (currency)\n- Profit or loss percent (can be reset with `--reset_profit`)\n- Gain or loss vs. buy/hold strategy\n\n"
  },
  {
    "path": "extensions/strategies/trendline/strategy.js",
    "content": "let math = require('mathjs')\n  , trend = require('trend')\n  , z = require('zero-fill')\n  , n = require('numbro')\n  , stats = require('stats-lite')\n  , ema = require('../../../lib/ema')\n  , Phenotypes = require('../../../lib/phenotype')\nvar oldgrowth = 1\n\nmodule.exports = {\n  name: 'trendline',\n  description: 'Calculate a trendline and trade when trend is positive vs negative.',\n\n  getOptions: function () {\n    this.option('period', 'period length', String, '30s')\n    this.option('period_length', 'period length', String, '30s')\n    this.option('lastpoints', 'Number of trades for short trend average', Number, 100)\n    this.option('avgpoints', 'Number of trades for long trend average', Number, 1000)\n    this.option('lastpoints2', 'Number of trades for short trend average', Number, 10)\n    this.option('avgpoints2', 'Number of trades for long trend average', Number, 100)\n    this.option('min_periods', 'Basically avgpoints + a BUNCH of more preroll periods for anything less than 5s period', Number, 15000)\n    this.option('markup_sell_pct', 'test', Number, 0)\n    this.option('markdown_buy_pct', 'test', Number, 0)\n  },\n\n  calculate: function () {\n\n  },\n\n  onPeriod: function (s, cb) {\n    ema(s, 'trendline', s.options.trendline)\n    var tl1 = []\n    var tls = []\n    var tll = []\n    if (s.lookback[s.options.avgpoints + 2000]) {\n      for (let i = 0; i < s.options.avgpoints + 1000; i++) { tl1.push(s.lookback[i].close) }\n      for (let i = 0; i < s.options.lastpoints; i++) { tls.push(s.lookback[i].close) }\n      for (let i = 0; i < s.options.avgpoints; i++) { tll.push(s.lookback[i].close) }\n\n      var chart = tl1\n\n      var growth = trend(chart, {\n        lastPoints: s.options.lastpoints,\n        avgPoints: s.options.avgpoints,\n        avgMinimum: 0,\n        reversed: true\n      })\n      var growth2 = trend(chart, {\n        lastPoints: s.options.lastpoints2,\n        avgPoints: s.options.avgpoints2,\n        avgMinimum: 0,\n        reversed: true\n      })\n\n      s.stats = growth\n      s.growth = growth > 1\n      s.stats2 = growth2\n      s.growth2 = growth2 > 1\n      s.stdevs = stats.stdev(tls)\n      s.stdevl = stats.stdev(tll)\n      s.means = math.mean(tls)\n      s.meanl = math.mean(tll)\n      s.pcts = s.stdevs / s.means\n      s.pctl = s.stdevl / s.meanl\n      s.options.markup_sell_pct = math.mean(s.pcts, s.pctl) * 100\n      s.options.markdown_buy_pct = math.mean(s.pcts, s.pctl) * 100\n      s.accel = growth > oldgrowth\n      oldgrowth = growth\n    }\n\n    if (\n      s.growth === true &&\n         s.growth2 === true\n    )\n    {\n      s.signal = 'buy'\n    }\n    else if (\n      s.growth === false |\n         s.growth2 === false |\n         s.accel === false\n    )\n    {\n      //s.signal = 'sell'\n    }\n    cb()\n  },\n  onReport: function (s) {\n    var cols = []\n    cols.push(' ')\n    cols.push(z(8, n(s.stats).format('0.00000000'), ' ')[s.growth === true ? 'green' : 'red'])\n    cols.push(' ')\n    cols.push(z(8, n(s.stats2).format('0.00000000'), ' ')[s.growth2 === true ? 'green' : 'red'])\n    cols.push(' ')\n    cols.push(z(8, n(s.stdevs).format('0.00000000'), ' ')[s.accel === true ? 'green' : 'red'])\n    cols.push(' ')\n    cols.push(z(8, n(s.stdevl).format('0.00000000'), ' ')[s.accel === true ? 'green' : 'red'])\n    cols.push(' ')\n    cols.push(z(8, n(s.means).format('0.00000000'), ' ')[s.accel === true ? 'green' : 'red'])\n    cols.push(' ')\n    cols.push(z(8, n(s.meanl).format('0.00000000'), ' ')[s.accel === true ? 'green' : 'red'])\n    cols.push(' ')\n    cols.push(z(8, n(s.options.markup_sell_pct).format('0.00000000'), ' ')[s.accel === true ? 'green' : 'red'])\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 400, 'm'),\n    min_periods: Phenotypes.Range(1, 200),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    lastpoints: Phenotypes.Range(20, 500),\n    avgpoints: Phenotypes.Range(300, 3000),\n    lastpoints2: Phenotypes.Range(5, 300),\n    avgpoints2: Phenotypes.Range(50, 1000),\n  }\n}\n"
  },
  {
    "path": "extensions/strategies/trust_distrust/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'trust_distrust',\n  description: 'Sell when price higher than $sell_min% and highest point - $sell_threshold% is reached. Buy when lowest price point + $buy_threshold% reached.',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '30m')\n    this.option('period_length', 'period length, same as --period', String, '30m')\n    this.option('min_periods', 'min. number of history periods', Number, 52)\n    this.option('sell_threshold', 'sell when the top drops at least below this percentage', Number, 2)\n    this.option('sell_threshold_max', 'sell when the top drops lower than this max, regardless of sell_min (panic sell, 0 to disable)', Number, 0)\n    this.option('sell_min', 'do not act on anything unless the price is this percentage above the original price', Number, 1)\n    this.option('buy_threshold', 'buy when the bottom increased at least above this percentage', Number, 2)\n    this.option('buy_threshold_max', 'wait for multiple buy signals before buying (kill whipsaw, 0 to disable)', Number, 0)\n    this.option('greed', 'sell if we reach this much profit (0 to be greedy and either win or lose)', Number, 0)\n  },\n\n  calculate: function (s) {\n    if (typeof s.trust_distrust_start_greed === 'undefined') {\n      s.trust_distrust_start_greed = s.period.high\n    }\n    if (typeof s.trust_distrust_start === 'undefined') {\n      s.trust_distrust_start = s.period.high\n    }\n    if (typeof s.trust_distrust_highest === 'undefined') {\n      s.trust_distrust_highest = s.period.high\n    }\n    if (typeof s.trust_distrust_lowest === 'undefined') {\n      s.trust_distrust_lowest = s.period.high\n    }\n    if (typeof s.trust_distrust_last_action === 'undefined') {\n      s.trust_distrust_last_action = null\n    }\n    if (typeof s.trust_distrust_buy_threshold_max === 'undefined') {\n      s.trust_distrust_buy_threshold_max = 0\n    }\n\n    // when our current price is higher than what we recorded, overwrite\n    if (s.period.high > s.trust_distrust_highest) {\n      s.trust_distrust_highest = s.period.high\n    }\n\n    // when our current price is lower than what we recorded, overwrite\n    if (s.trust_distrust_lowest > s.period.high) {\n      s.trust_distrust_lowest = s.period.high\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if (s.greedy) {\n      s.signal = s.trust_distrust_last_action\n      return cb()\n    }\n\n    // sell logic\n    if (s.trust_distrust_last_action !== 'sell') {\n      if ( s.period.high > (s.trust_distrust_start + (s.trust_distrust_start / 100 * s.options.sell_min))) { // we are above minimum we want to sell for, or going so low we should \"panic sell\"\n        if (s.period.high < (s.trust_distrust_highest - (s.trust_distrust_highest / 100 * s.options.sell_threshold))) { // we lost sell_threshold from highest point\n          s.signal = 'sell'\n\n          s.trust_distrust_last_action = 'sell'\n          s.trust_distrust_start = s.period.high\n          s.trust_distrust_highest = s.period.high\n          s.trust_distrust_lowest = s.period.high\n\n          return cb()\n        }\n      }\n\n      if (s.options.sell_threshold_max > 0 && s.period.high < (s.trust_distrust_highest - (s.trust_distrust_highest / 100 * s.options.sell_threshold_max))) { // we panic sell\n        s.signal = 'sell'\n\n        s.trust_distrust_last_action = 'sell'\n        s.trust_distrust_start = s.period.high\n        s.trust_distrust_highest = s.period.high\n        s.trust_distrust_lowest = s.period.high\n\n        return cb()\n      }\n    }\n\n    if (s.options.greed > 0 && s.period.high > (s.trust_distrust_start_greed + (s.trust_distrust_start_greed / 100 * s.options.greed))) { // we are not greedy, sell if this profit is reached\n      s.signal = 'sell'\n\n      s.trust_distrust_last_action = 'sell'\n      s.trust_distrust_start = s.period.high\n      s.trust_distrust_highest = s.period.high\n      s.trust_distrust_lowest = s.period.high\n      s.greedy = true\n\n      return cb()\n    }\n\n    // buy logic\n    if (s.trust_distrust_last_action !== 'buy') {\n      if(s.period.high < s.trust_distrust_start && s.period.high > (s.trust_distrust_lowest + (s.trust_distrust_lowest / 100 * s.options.buy_threshold))) { // we grew above buy threshold from lowest point\n        if (s.options.buy_threshold_max > 0 && s.trust_distrust_buy_threshold_max < s.options.buy_threshold_max) {\n          s.trust_distrust_buy_threshold_max++\n          return cb()\n        }\n        s.trust_distrust_buy_threshold_max = 0\n        s.signal = 'buy'\n\n        s.trust_distrust_last_action = 'buy'\n        s.trust_distrust_start = s.period.high\n        s.trust_distrust_highest = s.period.high\n        s.trust_distrust_lowest = s.period.high\n\n        return cb()\n      }\n    }\n\n    // repeat last signal\n    if (s.signal === null) {\n      s.signal = s.trust_distrust_last_action\n    }\n    return cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    var color = 'grey'\n    if (s.period.high > s.trust_distrust_start) {\n      color = 'green'\n    }\n    else if (s.period.high < s.trust_distrust_lowest) {\n      color = 'red'\n    }\n    cols.push(z(8, n(s.period.high).format('0.0000'), ' ')[color])\n    cols.push(z(8, n(s.trust_distrust_start).format('0.0000'), ' ').grey)\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 100),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    sell_threshold: Phenotypes.Range(1, 100),\n    sell_threshold_max: Phenotypes.Range0(1, 100),\n    sell_min: Phenotypes.Range(1, 100),\n    buy_threshold: Phenotypes.Range(1, 100),\n    buy_threshold_max: Phenotypes.Range0(1, 100),\n    greed: Phenotypes.Range(1, 100)\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/vpt/strategy.js",
    "content": "module.exports = {\n  name: 'vpt',\n  description:\n    'Vpt - Volume Price Trend Indicator.',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '30m')\n    this.option('period_length', 'period length, same as --period', String, '30m')\n    this.option('min_periods', 'min. number of history periods', Number, 50)\n  },\n\n  // called first, but without lookback, working on s.period\n  calculate: function(s) {\n    if(s.lookback && s.lookback[0] && s.lookback[0].vpt){\n      //s.period.vpt = s.lookback[0].volume + s.period.volume * ((s.period.close - s.lookback[0].close)/s.lookback[0].close)\n      s.period.vpt = s.lookback[0].vpt + s.period.volume * ((s.period.close - s.lookback[0].close)/s.lookback[0].close)\n    } else if(s.lookback && s.lookback[0]){\n      s.period.vpt = s.period.volume + s.period.volume * ((s.period.close - s.lookback[0].close)/s.lookback[0].close)\n    }\n  },\n\n  onPeriod: function (s, cb) {\n    if(s.lookback.length >= 1) {\n      if(s.period.vpt > s.lookback[0].vpt) \n        s.trend = \"up\"\n      else\n        s.trend = \"down\"\n\n      // if(s.trend == 'up')\n      //   s.signal = 'buy'\n      // else\n      //   s.signal = 'sell'\n    } \n    cb()\n  },\n\n  onReport: function(s) {\n    var cols = []\n    if(s) {\n      return cols\n    } else {\n      return cols\n    }\n  }\n}\n\n"
  },
  {
    "path": "extensions/strategies/wavetrend/strategy.js",
    "content": "var z = require('zero-fill')\n  , n = require('numbro')\n  , wto = require('../../../lib/wto')\n  , ema = require('../../../lib/ema')\n  , Phenotypes = require('../../../lib/phenotype')\n\nmodule.exports = {\n  name: 'wavetrend',\n  description: 'Buy when (Signal < Oversold) and sell when (Signal > Overbought).',\n\n  getOptions: function () {\n    this.option('period', 'period length, same as --period_length', String, '1h')\n    this.option('period_length', 'period length, same as --period', String, '1h')\n    this.option('min_periods', 'min. number of history periods', Number, 21)\n    this.option('wavetrend_channel_length', 'wavetrend channel length', Number, 10)\n    this.option('wavetrend_average_length', 'wavetrend average length', Number, 21)\n    this.option('wavetrend_overbought_1', 'wavetrend overbought limit 1', Number, 60)\n    this.option('wavetrend_overbought_2', 'wavetrend overbought limit 2', Number, 53)\n    this.option('wavetrend_oversold_1', 'wavetrend oversold limit 1', Number, -60)\n    this.option('wavetrend_oversold_2', 'wavetrend oversold limit 2', Number, -53)\n    this.option('wavetrend_trends', 'act on trends instead of limits', Boolean, false)\n  },\n\n  calculate: function (s) {\n    // calculate Wavetrend and EMA\n    wto(s, 'wto', s.options.wavetrend_channel_length)\n    ema(s, 'ema', s.options.wavetrend_channel_length)\n  },\n\n  onPeriod: function (s, cb) {\n    if (s.period.wto) {\n      s.signal = null // hold\n      let prev_wto = s.lookback[0].wto\n      let wto = s.period.wto\n      let prev_hcl3 = s.lookback[0].hcl3\n      let hcl3 = s.period.hcl3\n      let prev_ema = s.lookback[0].ema\n      let ema = s.period.ema\n\n      if (!s.sell_signal_close)\n        s.sell_signal_close = 0\n      if (!s.buy_signal_close)\n        s.buy_signal_close = 0\n      if (!s.sell_pct_orig)\n        s.sell_pct_orig = s.sell_pct\n      if (!s.buy_pct_orig)\n        s.buy_pct_orig = s.sell_pct\n\n      s.options.wavetrend_trends = (s.options.wavetrend_trends === 'true' || s.options.wavetrend_trends === true)\n\n      if (s.options.wavetrend_trends === true) {\n        if (wto > prev_wto) {\n          if (s.trend === 'down' && s.buy_signal_close < s.period.close) {\n            //console.log('\\n')\n            //console.log(s.period.hcl3, s.period.wto, s.lookback[0].wto, s.buy_signal_close)\n            //console.log('trend reversal, we should sell')\n            s.signal = 'sell'\n            s.sell_signal_close = s.period.close\n          }\n          s.trend = 'up'\n        }\n        if (wto < prev_wto) {\n          if (s.trend === 'up' && s.sell_signal_close > s.period.close) {\n            //console.log('\\n')\n            //console.log(s.period.hcl3, s.period.wto, s.lookback[0].wto, s.sell_signal_close)\n            //console.log('trend reversal, we should buy')\n            s.signal = 'buy'\n            s.buy_signal_close = s.period.close\n          }\n          s.trend = 'down'\n        }\n      }\n      if (s.options.wavetrend_trends === false) {\n        if ((wto < s.options.wavetrend_overbought_2) && (prev_wto < s.options.wavetrend_overbought_2)) {\n          s.sell_pct = 99\n          //console.log('\\n')\n          //console.log(prev_wto, wto, prev_hcl3, hcl3, prev_ema, ema)\n          //console.log('trend reversal, we should sell')\n          if (prev_wto > wto && prev_hcl3 > hcl3 && prev_ema > ema) {\n            if (s.trend === 'down' && s.buy_signal_close < s.period.close) {\n              s.signal = 'sell'\n              s.sell_signal_close = s.period.close\n            }\n            s.trend = 'up'\n          }\n        }\n        else if ((wto > s.options.wavetrend_oversold_2) && (prev_wto > s.options.wavetrend_oversold_2)) {\n          s.buy_pct = 99\n          //console.log('\\n')\n          //console.log(prev_wto, wto, prev_hcl3, hcl3, prev_ema, ema)\n          //console.log('trend reversal, we should buy')\n          if (prev_wto < wto && prev_hcl3 < hcl3 && prev_ema < ema) {\n            if (s.trend === 'up' && s.sell_signal_close > s.period.close) {\n              s.signal = 'buy'\n              s.buy_signal_close = s.period.close\n            }\n            s.trend = 'down'\n          }\n        }\n        else if ((wto < s.options.wavetrend_overbought_1) && (prev_wto < s.options.wavetrend_overbought_1)) {\n          s.sell_pct = 5\n          //console.log('\\n')\n          //console.log(prev_wto, wto, prev_hcl3, hcl3, prev_ema, ema)\n          //console.log('trend reversal, we should sell')\n          if (prev_wto > wto && prev_hcl3 > hcl3 && prev_ema > ema) {\n            if (s.trend === 'down' && s.buy_signal_close < s.period.close) {\n              s.signal = 'sell'\n              s.sell_signal_close = s.period.close\n            }\n            s.trend = 'up'\n          }\n        }\n        else if ((wto > s.options.wavetrend_oversold_1) && (prev_wto > s.options.wavetrend_oversold_1)) {\n          s.buy_pct = 5\n          //console.log('\\n')\n          //console.log(prev_wto, wto, prev_hcl3, hcl3, prev_ema, ema)\n          //console.log('trend reversal, we should buy')\n          if (prev_wto < wto && prev_hcl3 < hcl3 && prev_ema < ema) {\n            if (s.trend === 'up' && s.sell_signal_close > s.period.close) {\n              s.signal = 'buy'\n              s.buy_signal_close = s.period.close\n            }\n            s.trend = 'down'\n          }\n        }\n        else {\n          s.sell_pct = 1\n          s.buy_pct = 1\n          if (wto > prev_wto) {\n            if (s.trend === 'down' && s.buy_signal_close < s.period.close) {\n              //console.log('\\n')\n              //console.log(s.period.hcl3, s.period.wto, s.lookback[0].wto, s.buy_signal_close)\n              //console.log('trend reversal, we should sell')\n              s.signal = 'sell'\n              s.sell_signal_close = s.period.close\n            }\n            s.trend = 'up'\n          }\n          if (wto < prev_wto) {\n            if (s.trend === 'up' && s.sell_signal_close > s.period.close) {\n              //console.log('\\n')\n              //console.log(s.period.hcl3, s.period.wto, s.lookback[0].wto, s.sell_signal_close)\n              //console.log('trend reversal, we should buy')\n              s.signal = 'buy'\n              s.buy_signal_close = s.period.close\n            }\n            s.trend = 'down'\n          }\n        }\n      }\n    }\n    cb()\n  },\n\n  onReport: function (s) {\n    var cols = []\n    if (s.period.wto) {\n      var color = 'grey'\n      if (s.period.hcl3 > s.lookback[0].hcl3) {\n        color = 'green'\n      } else if (s.period.hcl3 < s.lookback[0].hcl3) {\n        color = 'red'\n      }\n      cols.push(z(8, n(s.period.hcl3).format('+00.0000'), ' ')[color])\n      cols.push(z(8, n(s.period.wto).format('00'), ' ').cyan)\n      cols.push(z(8, n(s.lookback[0].wto).format('00'), ' ').cyan)\n    }\n    else {\n      cols.push('         ')\n    }\n    return cols\n  },\n\n  phenotypes: {\n    // -- common\n    period_length: Phenotypes.RangePeriod(1, 120, 'm'),\n    min_periods: Phenotypes.Range(1, 200),\n    markdown_buy_pct: Phenotypes.RangeFloat(-1, 5),\n    markup_sell_pct: Phenotypes.RangeFloat(-1, 5),\n    order_type: Phenotypes.ListOption(['maker', 'taker']),\n    sell_stop_pct: Phenotypes.Range0(1, 50),\n    buy_stop_pct: Phenotypes.Range0(1, 50),\n    profit_stop_enable_pct: Phenotypes.Range0(1, 20),\n    profit_stop_pct: Phenotypes.Range(1,20),\n\n    // -- strategy\n    wavetrend_channel_length: Phenotypes.Range(1,20),\n    wavetrend_average_length: Phenotypes.Range(1,42),\n    wavetrend_overbought_1: Phenotypes.Range(1, 100),\n    wavetrend_overbought_2: Phenotypes.Range(1,100),\n    wavetrend_oversold_1: Phenotypes.Range(-100,0),\n    wavetrend_oversold_2: Phenotypes.Range(-100,0),\n    wavetrend_trends: Phenotypes.ListOption([true, false])\n  }\n}\n\n"
  },
  {
    "path": "lib/_data-structures/Queue.js",
    "content": "//module.exports = (function container (get, set, clear) {\nmodule.exports = \n//code.stephenmorley.org\n/*return*/ function Queue(){var a=[],b=0;this.getLength=function(){return a.length-b};this.isEmpty=function(){return 0==a.length};this.enqueue=function(b){a.push(b)};this.dequeue=function(){if(0!=a.length){var c=a[b];2*++b>=a.length&&(a=a.slice(b),b=0);return c}};this.peek=function(){return 0<a.length?a[b]:void 0}}\n//})"
  },
  {
    "path": "lib/adx.js",
    "content": "// ADX + DI\nmodule.exports = function adx (s, key, length) {\n  if (s.lookback[0] != undefined) {\n    let TrueRange = Math.max(Math.max(s.period.high-s.period.low, Math.abs(s.period.high-s.lookback[0].close)), \n      Math.abs(s.period.low-s.lookback[0].close))\n    let DirectionalMovementPlus = s.period.high-s.lookback[0].high > s.lookback[0].low-s.period.low ? \n      Math.max(s.period.high-s.lookback[0].high, 0): 0\n    let DirectionalMovementMinus = s.lookback[0].low-s.period.low > s.period.high-s.lookback[0].high ? \n      Math.max(s.lookback[0].low-s.period.low, 0): 0\n            \n    s.period['SmoothedTrueRange'] = (s.lookback[0]['SmoothedTrueRange'] == undefined) ? TrueRange :\n      s.lookback[0]['SmoothedTrueRange'] - s.lookback[0]['SmoothedTrueRange']/length + TrueRange\n    s.period['SmoothedDirectionalMovementPlus'] = (s.lookback[0]['SmoothedDirectionalMovementPlus'] == undefined) ? DirectionalMovementPlus :\n      s.lookback[0]['SmoothedDirectionalMovementPlus'] - s.lookback[0]['SmoothedDirectionalMovementPlus']/length + DirectionalMovementPlus\n    s.period['SmoothedDirectionalMovementMinus'] = (s.lookback[0]['SmoothedDirectionalMovementMinus'] == undefined) ? DirectionalMovementMinus :\n      s.lookback[0]['SmoothedDirectionalMovementMinus'] - s.lookback[0]['SmoothedDirectionalMovementMinus']/length + DirectionalMovementMinus\n            \n    s.period['DIPlus'] = s.period['SmoothedDirectionalMovementPlus'] / s.period['SmoothedTrueRange'] * 100\n    s.period['DIMinus'] = s.period['SmoothedDirectionalMovementMinus'] / s.period['SmoothedTrueRange'] * 100\n  }\n  if (s.lookback.length > length) {\n    let ADX = s.lookback\n      .slice(0, length)\n      .reduce((sum, cur) => {\n        let DX = Math.abs(cur['DIPlus']-cur['DIMinus']) / (cur['DIPlus']+cur['DIMinus'])*100\n        return sum + DX\n      }, 0)\n\n    s.period[key] = ADX / length\n  }\n}\n\n"
  },
  {
    "path": "lib/backtester.js",
    "content": "let _ = require('lodash')\n  , moment = require('moment')\n  , argv = require('yargs').argv\n  , tb = require('timebucket')\n  , readline = require('readline')\n  , z = require('zero-fill')\n  , n = require('numbro')\n  , shell = require('shelljs')\n  , StripAnsi = require('strip-ansi')\n  , path = require('path')\n  , fs = require('fs')\n  , roundp = require('round-precision')\n  , Phenotypes = require('./phenotype')\n\n\nconst spawn = require('child_process').spawn\n\nlet simArgs, simTotalCount, parallelLimit, writeFile\n\nlet processOutput = function (output, taskStrategyName, pheno) {\n  let selector = pheno.selector || pheno.exchangeMarketPair\n  let tFileName = path.resolve(__dirname, '..', 'simulations', 'sim_' + taskStrategyName.replace('_', '') + '_' + selector.toLowerCase().replace('_', '') + '_' + pheno.backtester_generation + '.json')\n  let simulationResults\n\n  let outputArray\n  let params\n  let assetPriceLastBuy\n  let lastAssestValue\n  let assetCapital\n  let profit\n  let startCapital\n  let endBalance\n  let buyHold\n  let vsBuyHold\n  //let wlMatch\n  //let errMatch\n  let wins\n  let losses\n  let errorRate\n  let days\n  let start\n  let end\n  // This can retrieve the results from 2 different places.  It defaults to reading it from the json file\n  // but if no file is found it will fall back to the older metheod of scraping the output of the sim process\n  // stdio scraping to be removed after full verification of functionality.\n  // todo: see above comment\n  if (fs.existsSync(tFileName)) {\n    let jsonBuffer\n    jsonBuffer = fs.readFileSync(tFileName, { encoding: 'utf8' })\n    simulationResults = JSON.parse(jsonBuffer)\n    fs.unlinkSync(tFileName)\n  }\n\n  // If somehow the sim file failed to write, this will most often recover it by parsing the last output\n  if (typeof (simulationResults) !== 'object') {\n    // Find everything between the first { and last }\n    outputArray = output.split('{')\n    outputArray.shift()\n    output = outputArray.join('{')\n\n    outputArray = output.split('}')\n    outputArray.pop()\n    output = outputArray.join('}')\n\n    simulationResults = JSON.parse(`{${output}}`)\n  }\n\n  if (typeof (simulationResults) === 'object' && typeof simulationResults.simresults !== typeof undefined) {\n    params = simulationResults\n    endBalance = simulationResults.simresults.currency\n    assetPriceLastBuy = simulationResults.simresults.last_buy_price\n    lastAssestValue = simulationResults.simresults.last_assest_value\n    assetCapital = simulationResults.simresults.asset_capital\n    startCapital = simulationResults.simresults.start_capital\n    profit = simulationResults.simresults.profit\n\n\n    buyHold = simulationResults.simresults.buy_hold\n    vsBuyHold = simulationResults.simresults.vs_buy_hold\n    //wlMatch = (simulationResults.simresults.total_sells - simulationResults.simresults.total_losses) +'/'+ simulationResults.simresults.total_losses\n    wins = simulationResults.simresults.total_sells - simulationResults.simresults.total_losses\n    losses = simulationResults.simresults.total_losses\n    errorRate = simulationResults.simresults.total_losses / simulationResults.simresults.total_sells\n    days = parseInt(simulationResults.days)\n    start = parseInt(simulationResults.start)\n    end = parseInt(simulationResults.end || null)\n  }\n  else {\n    console.log(`Couldn't find simulationResults for ${pheno.backtester_generation}`)\n    console.log(pheno.command.commandString)\n    // this should return a general bad result but not throw an error\n    // our job here is to use the result.  not diagnose an error at this point so a failing sim should just be ignored.\n    // idea here is to make the fitness of this calculation as bad as possible so darwin won't use the combonation of parameters again.\n    // todo:  make the result its own object, and in this function just set the values don't define the result here.\n    return {\n      params: 'module.exports = {}',\n      endBalance: 0,\n      buyHold: 0,\n      vsBuyHold: 0,\n      lastAssestValue: 0,\n      assetPriceLastBuy:0,\n      wins: 0,\n      losses: -1,\n      errorRate: 100,\n      days: 0,\n      period_length: 0,\n      min_periods: 0,\n      markdown_buy_pct: 0,\n      markup_sell_pct: 0,\n      order_type: 'maker',\n      wlRatio: 'Infinity',\n      roi: -1000,\n      selector: selector,\n      strategy: taskStrategyName,\n      frequency: 0,\n      assetCapital:0,\n      startCapital:0,\n      profit:0\n\n    }\n  }\n\n  if (typeof params === 'undefined') {\n    console.log('busted params')\n    console.log(`output: ${JSON.stringify(output)}`)\n    console.log(`simulationResults: ${JSON.stringify(simulationResults)}`)\n  }\n\n  let roi\n  if (params.currency_capital == 0.0) {\n    roi = roundp(endBalance, 3)\n  }\n  else {\n    roi = roundp(((endBalance - params.currency_capital) / params.currency_capital) * 100, 3)\n  }\n\n  //todo: figure out what this is trying to do.\n  let r = params\n  delete r.asset_capital\n  delete r.buy_pct\n  delete r.currency_capital\n  delete r.days\n  delete r.mode\n  delete r.order_adjust_time\n  delete r.population\n  delete r.population_data\n  delete r.sell_pct\n  delete r.start\n  delete r.end\n  delete r.stats\n  delete r.use_strategies\n  delete r.verbose\n  delete r.simresults\n  delete r.silent\n  delete r.generateLaunch\n  delete r.ignoreLaunchFitness\n  delete r.maxCores\n  delete r.minTrades\n  delete r.noStatSave\n  delete r.filename\n  //delete r.fitnessCalcType\n   \n  r.selector = r.selector.normalized\n\n  if (start) {\n    r.start = moment(start).format('YYYYMMDDHHmm')\n  }\n  if (end) {\n    r.end = moment(end).format('YYYYMMDDHHmm')\n  }\n  if (!start && !end && params.days) {\n    r.days = params.days\n  }\n  if (!days) {\n    days = parseInt(argv.days, 10)\n  }\n  if (!days || days < 1) days = 1\n\n  let results = {\n    params: 'module.exports = ' + JSON.stringify(r),\n    assetPriceLastBuy: assetPriceLastBuy,\n    lastAssestValue: lastAssestValue,\n    profit: profit,\n    assetCapital: assetCapital,\n    startCapital: startCapital,\n    endBalance: parseFloat(endBalance),\n    buyHold: parseFloat(buyHold),\n    vsBuyHold: parseFloat(vsBuyHold) || vsBuyHold,\n    wins: wins,\n    losses: losses,\n    errorRate: parseFloat(errorRate),\n    days: days,\n    period_length: params.period_length,\n    min_periods: params.min_periods,\n    markdown_buy_pct: params.markdown_buy_pct,\n    markup_sell_pct: params.markup_sell_pct,\n    order_type: params.order_type,\n    wlRatio: losses > 0 ? roundp(wins / losses, 3) : 'Infinity',\n    roi: roi,\n    selector: params.selector,\n    strategy: params.strategy,\n    frequency: roundp((wins + losses) / days, 3)\n  }\n\n\n\n  return results\n}\n\nlet runUpdate = function (days, selector) {\n  let zenbot_cmd = process.platform === 'win32' ? 'zenbot.bat' : './zenbot.sh'\n  let command = `${zenbot_cmd} backfill --days=${days} ${selector}`\n  console.log('Backfilling (might take some time) ...')\n  console.log(command)\n\n  shell.exec(command, {\n    silent: true,\n    async: false\n  })\n}\n\nlet ensureDirectoryExistence = function (filePath) {\n  var dirname = path.dirname(filePath)\n  if (fs.existsSync(dirname)) {\n    return true\n  }\n  ensureDirectoryExistence(dirname)\n  fs.mkdirSync(dirname)\n}\n\nlet monitor = {\n  periodDurations: [],\n  phenotypes: [],\n\n  distanceOfTimeInWords: (timeA, timeB) => {\n    var hourDiff = timeA.diff(timeB, 'hours')\n    let minDiff = 0\n    if (hourDiff == 0) {\n      minDiff = timeA.diff(timeB, 'minutes')\n      var secDiff = timeA.clone().subtract(minDiff, 'minutes').diff(timeB, 'seconds')\n      return `${minDiff}m ${secDiff}s`\n    }\n    else {\n      minDiff = timeA.clone().subtract(hourDiff, 'hours').diff(timeB, 'minutes')\n      return `${hourDiff}h ${minDiff}m`\n    }\n  },\n\n  actualRange: function (so) {\n    // Adapted from sim.js logic to similarly figure out how much time is being processed\n    if (so.start) {\n      so.start = moment(so.start, 'YYYYMMDDHHmm')\n      if (so.days && !so.end) {\n        so.end = so.start.clone().add(so.days, 'days')\n      }\n    }\n    if (so.end) {\n      so.end = moment(so.end, 'YYYYMMDDHHmm')\n      if (so.days && !so.start) {\n        so.start = so.end.clone().subtract(so.days, 'days')\n      }\n    }\n    if (!so.start && so.days) {\n      so.start = moment().subtract(so.days, 'days')\n    }\n\n    if (so.days && !so.end) {\n      so.end = so.start.clone().add(so.days, 'days')\n    }\n\n    if (so.start && so.end) {\n      var actualStart = moment(tb(so.start.valueOf()).resize(so.period_length).subtract(so.min_periods + 2).toMilliseconds())\n      return {\n        start: actualStart,\n        end: so.end\n      }\n    }\n\n    return { start: so.start, end: so.end }\n  },\n\n  reportStatus: function () {\n    var genCompleted = 0\n    // var genTotal = 0\n\n    var simsDone = 0\n    var simsActive = 0\n    var simsErrored = 0\n    var simsAll = simTotalCount\n    var simsRemaining = simsAll\n    // var self = this\n    // console.log(`simsAll: ${simsAll}, this.phenotypes: ${this.phenotypes.length}`);\n\n    readline.clearLine(process.stdout)\n    readline.cursorTo(process.stdout, 0)\n\n    var inProgress = []\n    var inProgressStr = []\n\n    var slowestP = null\n    var slowestEta = null\n\n    var bestP = null\n    var bestBalance = null\n\n    this.phenotypes.forEach(function (p) {\n      if ('sim' in p) {\n        if (Object.keys(p.sim).length === 0) {\n          simsActive++\n          inProgress.push(p)\n        }\n        else {\n          simsDone++\n\n          if (!p.command || !p.command.result)\n            simsErrored++\n\n          if (p.command) {\n            let balance = p.command.result.endBalance\n\n            if (bestP == null || bestBalance < balance) {\n              bestP = p\n              bestBalance = balance\n            }\n            else if (bestP && bestBalance == balance && bestP.command.iteration > p.command.iteration) {\n              // Always pick the earliest one so it doesn't look like the number is jumping all over the place\n              bestP = p\n              bestBalance = balance\n            }\n          }\n        }\n        simsRemaining--\n      }\n\n    })\n\n    var homeStretchMode = simsActive < (parallelLimit - 1) && simsRemaining == 0\n\n    inProgress.forEach(function (p) {\n      var c = p.command\n\n      var currentTime\n      if (c.currentTimeString) currentTime = moment(c.currentTimeString, 'YYYY-MM-DD HH:mm:ss')\n      if (currentTime && currentTime.isBefore(c.queryStart)) c.queryStart = currentTime\n      // console.log(`${c.iteration} currentTime: ${currentTime}, queryStart: ${c.queryStart}, queryEnd: ${c.queryEnd}, current: ${c.currentTimeString}`);\n\n      // var timeSoFar = moment().diff(c.startTime);\n      // console.log(`remaining: ${time} - ${timeSoFar} = ${time - timeSoFar}`);\n      // timeLeft += time - timeSoFar;\n      if (currentTime && c.queryStart && c.queryEnd) {\n        var totalTime = c.queryEnd.diff(c.queryStart)\n\n        // 2018-01-25 06:18:00\n        var progress = currentTime.diff(c.queryStart)\n\n        // console.log(`totalTime: ${totalTime} vs progress: ${progress}`);\n        var percentage = Math.min(progress / totalTime, 1)\n        genCompleted += percentage\n\n        var now = moment()\n        var timeElapsed = now.diff(c.startTime)\n        // console.log(`startTime: ${c.startTime}, timeElapsed: ${timeElapsed}, adding: ${timeElapsed / percentage}ms`);\n        var eta = c.startTime.clone().add(timeElapsed / percentage, 'milliseconds')\n\n        if (slowestP == null || slowestEta.isBefore(eta)) {\n          slowestP = p\n          slowestEta = eta\n        }\n\n        if (homeStretchMode)\n          inProgressStr.push(`${(c.iteration + ':').gray} ${(percentage * 100).toFixed(1)}% ETA: ${monitor.distanceOfTimeInWords(eta, now)}`)\n        else\n          inProgressStr.push(`${(c.iteration + ':').gray} ${(percentage * 100).toFixed(1)}%`)\n      }\n    })\n\n\n    // timeLeft /= simsActive; // how many run at one time\n    if (inProgressStr.length > 0) {\n      // process.stdout.write(\"\\u001b[1000D\") // Move left\n      process.stdout.write('\\u001b[1A')\n      readline.clearLine(process.stdout)\n      readline.cursorTo(process.stdout, 0)\n\n      process.stdout.write(inProgressStr.join(', '))\n      process.stdout.write('\\n')\n    }\n\n\n    var percentage = ((simsDone + genCompleted) / simsAll * 100).toFixed(1)\n    // z(8, n(s.period.trend_ema_rate).format('0.0000'), ' ')[color]\n    process.stdout.write(`Done: ${simsDone.toString().green}, Active: ${simsActive.toString().yellow}, Remaining: ${simsRemaining.toString().gray}, `)\n    if (simsErrored > 0)\n      process.stdout.write(`Errored: ${simsErrored.toString().red}, `)\n\n    process.stdout.write(`Completion: ${z(5, (n(percentage).format('0.0') + '%'), ' ').green} `)\n\n    let bestBColor = 'gray'\n\n    if (bestP) {\n      if (argv.currency_capital) {\n        let cc = parseFloat(argv.currency_capital)\n        if (cc < 0.1)\n          bestBColor = 'green'\n        else if (cc > bestBalance)\n          bestBColor = 'red'\n        else\n          bestBColor = 'yellow'\n      }\n    }\n\n    let bestBalanceString = z(5, n(bestBalance || 0).format('0.0000'), ' ')[bestBColor]\n    process.stdout.write(`Best Balance(${(bestP ? bestP.command.iteration.toString() : '?')[bestBColor]}): ${bestBalanceString}`)\n\n    if (inProgressStr.length > 0) {\n      if (!homeStretchMode)\n        process.stdout.write(`, Slowest(${slowestP.command.iteration.toString().yellow}) ETA: ${monitor.distanceOfTimeInWords(slowestEta, moment()).yellow}`)\n    }\n  },\n\n  reset: function () {\n    this.phenotypes.length = 0\n  },\n\n  start: function () {\n    process.stdout.write('\\n\\n')\n    this.generationStarted = moment()\n\n    this.reportInterval = setInterval(() => {\n      this.reportStatus()\n    }, 1000)\n  },\n\n  stop: function (label) {\n    this.generationEnded = moment()\n    clearInterval(this.reportInterval)\n    var timeStr = this.distanceOfTimeInWords(this.generationEnded, this.generationStarted)\n    console.log(`\\n\\n${label} completed at ${this.generationEnded.format('YYYY-MM-DD HH:mm:ss')}, took ${timeStr}, results saved to:`)\n  }\n}\n\nmodule.exports = {\n\n  init: function (options) {\n    simArgs = options.simArgs\n    simTotalCount = options.simTotalCount\n    parallelLimit = options.parallelLimit\n    writeFile = options.writeFile\n  },\n\n  deLint: function () {\n    //Clean up any generation files left over in the simulation directory\n    //they will be overwritten, but best not to confuse the issue.\n    //if it fails.   doesn't matter they will be overwritten anyways. not need to halt the system.\n    try {\n      let tDirName = path.resolve(__dirname, '..', 'simulations')\n      let tFileName = 'sim_'\n      let files = fs.readdirSync(tDirName)\n\n      for (let i = 0; i < files.length; i++) {\n        if (files[i].lastIndexOf(tFileName) == 0) {\n          let filePath = path.resolve(__dirname, '..', 'simulations', files[i])\n          fs.unlinkSync(filePath)\n        }\n\n      }\n    } catch (err) {\n      console.log('error deleting lint from prior run')\n    }\n  },\n\n  writeFileAndFolder: function (filePath, data) {\n    ensureDirectoryExistence(filePath)\n    fs.writeFileSync(filePath, data)\n  },\n\n  ensureBackfill: function () {\n    let days = argv.days\n    if (!days) {\n      if (argv.start) {\n        var start = moment(argv.start, 'YYYYMMDDHHmm')\n        days = Math.max(1, moment().diff(start, 'days'))\n      }\n      else {\n        var end = moment(argv.end, 'YYYYMMDDHHmm')\n        days = moment().diff(end, 'days') + 1\n      }\n    }\n    runUpdate(days, argv.selector)\n  },\n\n  buildCommand: function (taskStrategyName, phenotype, filename) {\n    var cmdArgs = Object.assign({}, phenotype)\n    cmdArgs.strategy = taskStrategyName\n    Object.assign(cmdArgs, simArgs)\n\n    var selector = cmdArgs.selector\n    delete cmdArgs.selector\n    delete cmdArgs.exchangeMarketPair\n    delete cmdArgs.sim\n    delete cmdArgs.command\n    delete cmdArgs.help\n    delete cmdArgs.version\n\n    if (argv.include_html)\n      cmdArgs.filename = filename\n\n    if (argv.silent)\n      cmdArgs.silent = true\n\n    cmdArgs.backtester_generation = phenotype.backtester_generation\n\n    let zenbot_cmd = process.platform === 'win32' ? 'zenbot.bat' : './zenbot.sh'\n    let command = `${zenbot_cmd} sim ${selector}`\n\n    for (const [key, value] of Object.entries(cmdArgs)) {\n      if (_.isBoolean(value)) {\n        command += ` --${value ? '' : 'no-'}${key}`\n      } else {\n        command += ` --${key}=${value}`\n      }\n    }\n\n    var actualRange = monitor.actualRange({\n      start: cmdArgs.start, end: cmdArgs.end, days: cmdArgs.days,\n      period_length: cmdArgs.period_length, min_periods: (cmdArgs.min_periods || 1)\n    })\n\n    return {\n      commandString: command,\n      queryStart: actualRange.start,\n      queryEnd: actualRange.end\n    }\n  },\n\n  runCommand: (taskStrategyName, phenotype, command, cb) => {\n    // console.log(`[ ${command.iteration}/${populationSize * selectedStrategies.length} ] ${command.commandString}`)\n\n    phenotype['sim'] = {}\n    phenotype['command'] = command\n\n    command.startTime = moment()\n    var cmdArgs = command.commandString.split(' ')\n    var cmdName = cmdArgs.shift()\n    const proc = spawn(cmdName, cmdArgs)\n    var endData = ''\n\n    proc.on('exit', () => {\n      let result = null\n      let stdout = endData.toString()\n      try {\n        result = processOutput(stdout, taskStrategyName, phenotype)\n\n        command.endTime = moment()\n        command.result = result\n\n        writeFile(command.iteration, JSON.stringify(command))\n\n        phenotype['sim'] = result\n        result['fitness'] = Phenotypes.fitness(phenotype)\n\n        monitor.reportStatus()\n\n      } catch (err) {\n        console.log(`Bad output detected on sim ${command.iteration} while running:`)\n        console.log(command.commandString)\n        console.log(err.toString())\n        console.log(stdout)\n        console.log(err.stack)\n      }\n\n      cb(null, result)\n    })\n    proc.stdout.on('data', (data) => {\n      if (data.length > 500) {\n        endData = data\n        // console.log(`${command.iteration}: ${data}`)\n      }\n      else {\n        var str = StripAnsi(data.toString()), lines = str.split(/(\\r?\\n)/g)\n        for (var i = 0; i < lines.length; i++) {\n          var line = lines[i]\n          // console.log(`${command.iteration}: ${line}`)\n          if (line.indexOf('-') == 4 && line.indexOf(':') == 13) {\n            var timeStr = line.slice(0, 20)\n            command.currentTimeString = timeStr\n            // console.log(`${command.iteration}: ${command.currentTimeString}`)\n          }\n        }\n\n      }\n    })\n  },\n\n  startMonitor: () => monitor.start(),\n  stopMonitor: (label) => monitor.stop(label),\n  resetMonitor: () => monitor.reset(),\n  reportStatus: () => monitor.reportStatus(),\n  trackPhenotype: function (phenotype) {\n    monitor.phenotypes.push(phenotype)\n  }\n\n}\n"
  },
  {
    "path": "lib/bollinger.js",
    "content": "// Bollinger Bands\nvar bollingerbands = require('bollinger-bands')\n\nmodule.exports = function bollinger (s, key, length, source_key) {\n  if (!source_key) source_key = 'close'\n  if (s.lookback.length > length) {\n    // skip calculation if result already presented as we use historical data only,\n    // no need to recalculate for each individual trade\n    if (key in s.period) return\n    let data = []\n    for (var i=length-1; i>=0; i--) {\n      data.push(s.lookback[i][source_key])\n    }\n    const result = bollingerbands(data, length, s.options.bollinger_time)\n    const upperBound = result.upper[result.upper.length-1]\n    const lowerBound = result.lower[result.lower.length-1]\n    const midBound = result.mid[result.mid.length-1]\n    const simple_result = {\n      upperBound : upperBound,\n      midBound: midBound,\n      lowerBound : lowerBound\n    }\n    s.period[key] = simple_result\n  }\n}\n\n"
  },
  {
    "path": "lib/cci.js",
    "content": "module.exports = function cci (s, key, length, c) {\n  s.period['TP'] = (s.period.high + s.period.low + s.period.close) / 3\n  if (s.lookback.length >= length - 1) {\n    let period_list = s.lookback\n      .slice(0, length - 1)\n    period_list.unshift(s.period)\n\n    let avg_TP = period_list\n      .reduce((sum, tp) => {\n        return sum + tp.TP\n      }, 0)\n    s.period['avg_TP'] = avg_TP / length\n    let meanDev = period_list\n      .reduce((sum, cur) => {\n        cur = Math.abs(cur.TP - s.period.avg_TP)\n        return sum + cur\n      }, 0)\n    meanDev = meanDev / length\n    let CCI = (s.period.TP - s.period.avg_TP) / (c * meanDev)\n    s.period[key] = CCI\n  }\n}\n\n\n/*\nCCI = (Typical Price  -  20-period SMA of TP) / (.015 x Mean Deviation)\n\nTypical Price (TP) = (High + Low + Close)/3\n\nConstant = .015\n\nThere are four steps to calculating the Mean Deviation. First, subtract the most recent 20-period average of the typical price from each period's\ntypical price. Second, take the absolute values of these numbers. Third,\nsum the absolute values. Fourth, divide by the total number of periods (20).\n*/\n"
  },
  {
    "path": "lib/cmf.js",
    "content": "// Chaikin Money Flow\nmodule.exports = function cmf (s, key, length) {\n  if (s.lookback.length >= length) {\n    let MFV = 0, SOV = 0\n    s.lookback.slice(0, length).forEach(function(cur) {\n      MFV += cur.volume * ((cur.close - cur.low) - (cur.high - cur.close)) / (cur.high - cur.low)\n      SOV += cur.volume\n    })\n    s.period[key] = MFV / SOV\n  }\n}\n\n"
  },
  {
    "path": "lib/debug.js",
    "content": "const boot = require('../boot')\nconst moment = require('moment')\n\nlet debug = boot.debug\nmodule.exports = {\n  flip: function() {\n    module.exports.on = debug = !debug\n  },\n  msg: function(str) {\n    if (debug) {\n      console.error('\\n' + moment().format('YYYY-MM-DD HH:mm:ss') + ' - ' + str)\n    }\n  },\n  on: debug\n}"
  },
  {
    "path": "lib/ema.js",
    "content": "module.exports = function ema (s, key, length, source_key) {\n  if (!source_key) source_key = 'close'\n  if (s.lookback.length >= length) {\n    var prev_ema = s.lookback[0][key]\n    if (typeof prev_ema === 'undefined' || isNaN(prev_ema)) {\n      var sum = 0\n      s.lookback.slice(0, length).forEach(function (period) {\n        sum += period[source_key]\n      })\n      prev_ema = sum / length\n    }\n    var multiplier = 2 / (length + 1)\n    s.period[key] = (s.period[source_key] - prev_ema) * multiplier + prev_ema\n  }\n}\n\n"
  },
  {
    "path": "lib/engine.js",
    "content": "let tb = require('timebucket')\n  , moment = require('moment')\n  , z = require('zero-fill')\n  , n = require('numbro')\n  // eslint-disable-next-line no-unused-vars\n  , colors = require('colors')\n  , abbreviate = require('number-abbreviate')\n  , readline = require('readline')\n  , path = require('path')\n  , _ = require('lodash')\n  , notify = require('./notify')\n  , rsi = require('./rsi')\n  , async = require('async')\n  , lolex = require('lolex')\n  , { formatAsset, formatPercent, formatCurrency } = require('./format')\n  , debug = require('./debug')\n\nlet clock\nlet nice_errors = new RegExp(/(slippage protection|loss protection)/)\n\nmodule.exports = function (s, conf) {\n  let eventBus = conf.eventBus\n  eventBus.on('trade', queueTrade)\n  eventBus.on('trades', onTrades)\n\n  let so = s.options\n  if(_.isUndefined(s.exchange)){\n    if (so.mode !== 'live') {\n      s.exchange = require(path.resolve(__dirname, '../extensions/exchanges/sim/exchange'))(conf, s)\n    }\n    else {\n      s.exchange = require(path.resolve(__dirname, `../extensions/exchanges/${so.selector.exchange_id}/exchange`))(conf)\n    }\n  }\n  else if (so.mode === 'paper') {\n    s.exchange = require(path.resolve(__dirname, '../extensions/exchanges/sim/exchange'))(conf, s)\n  }\n  if (!s.exchange) {\n    console.error('cannot trade ' + so.selector.normalized + ': exchange not implemented')\n    process.exit(1)\n  }\n  s.product_id = so.selector.product_id\n  s.asset = so.selector.asset\n  s.currency = so.selector.currency\n  s.asset_capital = 0\n\n  if (typeof so.period_length == 'undefined')\n    so.period_length = so.period\n  else\n    so.period = so.period_length\n\n  let products = s.exchange.getProducts()\n  products.forEach(function (product) {\n    if (product.asset === s.asset && product.currency === s.currency) {\n      s.product = product\n    }\n  })\n  if (!s.product) {\n    console.error('error: could not find product \"' + s.product_id + '\"')\n    process.exit(1)\n  }\n  if (s.exchange.dynamicFees) {\n    s.exchange.setFees({asset: s.asset, currency: s.currency})\n  }\n  if (so.mode === 'sim' || so.mode === 'paper') {\n    s.balance = {asset: so.asset_capital, currency: so.currency_capital, deposit: 0}\n  }\n  else {\n    s.balance = {asset: 0, currency: 0, deposit: 0}\n  }\n\n  function memDump () {\n    if (!debug.on) return\n    let s_copy = JSON.parse(JSON.stringify(s))\n    delete s_copy.options.mongo\n    delete s_copy.lookback\n    console.error(s_copy)\n  }\n\n  s.ctx = {\n    option: function (name, desc, type, def) {\n      if (typeof so[name] === 'undefined') {\n        so[name] = def\n      }\n    }\n  }\n\n  let asset_col_width = 0\n  let deposit_col_width = 0\n  let currency_col_width = 0\n  s.lookback = []\n  s.day_count = 1\n  s.my_trades = []\n  s.my_prev_trades = []\n  s.vol_since_last_blink = 0\n  if (so.mode !== 'sim' && conf.output.api.on) {\n    s.boot_time = (new Date).getTime()\n    s.tz_offset = new Date().getTimezoneOffset()\n    s.last_trade_id = 0\n    s.trades = []\n  }\n  if (so.strategy) {\n    s.strategy = require(path.resolve(__dirname, `../extensions/strategies/${so.strategy}/strategy`))\n    if (s.strategy.getOptions) {\n      s.strategy.getOptions.call(s.ctx, s)\n    }\n    if (s.strategy.orderExecuted) {\n      eventBus.on('orderExecuted', function(type) {\n        s.strategy.orderExecuted(s, type, executeSignal)\n      })\n    }\n  }\n\n  var notifier = notify(conf)\n\n  function pushMessage(title, message) {\n    if (so.mode === 'live' || so.mode === 'paper') {\n      notifier.pushMessage(title, message)\n    }\n  }\n\n  function onMessage(callback) {\n    if (so.mode === 'live' || so.mode === 'paper') {\n      notifier.onMessage(callback)\n    }\n  }\n\n  function isFiat() {\n    return !s.currency.match(/^BTC|ETH|XMR|USDT$/)\n  }\n\n  function initBuffer (trade) {\n    let d = tb(trade.time).resize(so.period_length)\n    let de = tb(trade.time).resize(so.period_length).add(1)\n    s.period = {\n      period_id: d.toString(),\n      size: so.period_length,\n      time: d.toMilliseconds(),\n      open: trade.price,\n      high: trade.price,\n      low: trade.price,\n      close: trade.price,\n      volume: 0,\n      close_time: de.toMilliseconds() - 1\n    }\n  }\n\n  function nextBuyForQuote(s, quote) {\n    if (s.next_buy_price)\n      return n(s.next_buy_price).format(s.product.increment, Math.floor)\n    else\n      return n(quote.bid).subtract(n(quote.bid).multiply(s.options.markdown_buy_pct / 100)).format(s.product.increment, Math.floor)\n  }\n\n  function nextSellForQuote(s, quote) {\n    if (s.next_sell_price)\n      return n(s.next_sell_price).format(s.product.increment, Math.ceil)\n    else\n      return n(quote.ask).add(n(quote.ask).multiply(s.options.markup_sell_pct / 100)).format(s.product.increment, Math.ceil)\n  }\n\n  function updatePeriod(trade) {\n    s.period.high = Math.max(trade.price, s.period.high)\n    s.period.low = Math.min(trade.price, s.period.low)\n    s.period.close = trade.price\n    s.period.volume += trade.size\n    s.period.latest_trade_time = trade.time\n    s.strategy.calculate(s)\n    s.vol_since_last_blink += trade.size\n    if (s.trades && s.last_trade_id !== trade.trade_id) {\n      s.trades.push(trade)\n      s.last_trade_id = trade.trade_id\n    }\n  }\n\n  function executeStop (do_sell_stop) {\n    let stop_signal\n    if (s.my_trades.length || s.my_prev_trades.length) {\n      var last_trade\n      if (s.my_trades.length) {\n        last_trade = s.my_trades[s.my_trades.length - 1]\n      } else {\n        last_trade = s.my_prev_trades[s.my_prev_trades.length - 1]\n      }\n      s.last_trade_worth = last_trade.type === 'buy' ? (s.period.close - last_trade.price) / last_trade.price : (last_trade.price - s.period.close) / last_trade.price\n      if (!s.acted_on_stop) {\n        if (last_trade.type === 'buy') {\n          if (do_sell_stop && s.sell_stop && s.period.close < s.sell_stop) {\n            stop_signal = 'sell'\n            console.log(('\\nsell stop triggered at ' + formatPercent(s.last_trade_worth) + ' trade worth\\n').red)\n            s.stopTriggered = true\n          }\n          else if (so.profit_stop_enable_pct && s.last_trade_worth >= (so.profit_stop_enable_pct / 100)) {\n            s.profit_stop_high = Math.max(s.profit_stop_high || s.period.close, s.period.close)\n            s.profit_stop = s.profit_stop_high - (s.profit_stop_high * (so.profit_stop_pct / 100))\n          }\n          if (s.profit_stop && s.period.close < s.profit_stop && s.last_trade_worth > 0) {\n            stop_signal = 'sell'\n            console.log(('\\nprofit stop triggered at ' + formatPercent(s.last_trade_worth) + ' trade worth\\n').green)\n          }\n        }\n        else {\n          if (s.buy_stop && s.period.close > s.buy_stop) {\n            stop_signal = 'buy'\n            console.log(('\\nbuy stop triggered at ' + formatPercent(s.last_trade_worth) + ' trade worth\\n').red)\n          }\n        }\n      }\n    }\n    if (stop_signal) {\n      if(so.reverse) {\n        s.signal = (stop_signal == 'sell') ? 'buy' : 'sell'\n        s.acted_on_stop = true\n      } else {\n        s.signal = stop_signal\n        s.acted_on_stop = true\n      }\n    }\n  }\n\n  function syncBalance (cb) {\n    let pre_asset = so.mode === 'sim' ? s.sim_asset : s.balance.asset\n    s.exchange.getBalance({currency: s.currency, asset: s.asset}, function (err, balance) {\n      if (err) return cb(err)\n      let diff_asset = n(pre_asset).subtract(balance.asset)\n      s.balance = balance\n      getQuote(function (err, quote) {\n        if (err) return cb(err)\n\n        let post_currency = n(diff_asset).multiply(quote.ask)\n        s.asset_capital = n(s.balance.asset).multiply(quote.ask).value()\n        let deposit = so.deposit ? Math.max(0, n(so.deposit).subtract(s.asset_capital)) : s.balance.currency // zero on negative\n        s.balance.deposit = n(deposit < s.balance.currency ? deposit : s.balance.currency).value()\n        if (!s.start_capital) {\n          s.start_price = n(quote.ask).value()\n          s.start_capital = n(s.balance.deposit).add(s.asset_capital).value()\n          s.real_capital = n(s.balance.currency).add(s.asset_capital).value()\n          s.net_currency = s.balance.deposit\n\n          if (so.mode !== 'sim') {\n            pushMessage('Balance ' + s.exchange.name.toUpperCase(), 'sync balance ' + s.real_capital + ' ' + s.currency  + '\\n')\n          }\n        } else {\n          s.net_currency = n(s.net_currency).add(post_currency).value()\n        }\n\n        cb(null, { balance, quote })\n      })\n    })\n  }\n\n  function placeOrder (type, opts, cb) {\n    if (!s[type + '_order']) {\n      s[type + '_order'] = {\n        price: opts.price,\n        size: opts.size,\n        fee: opts.fee,\n        orig_size: opts.size,\n        remaining_size: opts.size,\n        orig_price: opts.price,\n        order_type: opts.is_taker ? 'taker' : so.order_type,\n        cancel_after: so.cancel_after || 'day'\n      }\n    }\n    let order = s[type + '_order']\n    order.price = opts.price\n    order.size = opts.size\n    order.fee = opts.fee\n    order.remaining_size = opts.size\n\n\n    if (isNaN(order.size) || isNaN(order.price) || isNaN(order.fee)) {\n      // treat as a no-op.\n      debug.msg('invalid order for ' + type + ', aborting')\n      return cb(null, false)\n    }\n\n    order.product_id = s.product_id\n    order.post_only = conf.post_only\n    debug.msg('placing ' + type + ' order...')\n    let order_copy = JSON.parse(JSON.stringify(order))\n    s.exchange[type](order_copy, function (err, api_order) {\n      if (err) return cb(err)\n      s.api_order = api_order\n      if (api_order.status === 'rejected') {\n        if (api_order.reject_reason === 'post only') {\n          // trigger immediate price adjustment and re-order\n          debug.msg('post-only ' + type + ' failed, re-ordering')\n          return cb(null, null)\n        }\n        else if (api_order.reject_reason === 'balance') {\n          // treat as a no-op.\n          debug.msg('not enough balance for ' + type + ', aborting')\n          return cb(null, false)\n        }\n        else if (api_order.reject_reason === 'price') {\n          // treat as a no-op.\n          debug.msg('invalid price for ' + type + ', aborting')\n          return cb(null, false)\n        }\n        err = new Error('\\norder rejected')\n        err.order = api_order\n        return cb(err)\n      }\n      debug.msg(type + ' order placed at ' + formatCurrency(order.price, s.currency))\n      order.order_id = api_order.id\n      if (!order.time) {\n        order.orig_time = new Date(api_order.created_at).getTime()\n      }\n      order.time = new Date(api_order.created_at).getTime()\n      order.local_time = now()\n      order.status = api_order.status\n      //console.log('\\ncreated ' + order.status + ' ' + type + ' order: ' + formatAsset(order.size) + ' at ' + formatCurrency(order.price) + ' (total ' + formatCurrency(n(order.price).multiply(order.size)) + ')\\n')\n\n      setTimeout(function() { checkOrder(order, type, cb) }, so.order_poll_time)\n    })\n  }\n\n  function getQuote (cb) {\n    s.exchange.getQuote({product_id: s.product_id}, function (err, quote) {\n      if (err) return cb(err)\n      s.quote = quote\n      cb(null, quote)\n    })\n  }\n\n  function isOrderTooSmall(product, quantity, price) {\n    if (product.min_size && Number(quantity) < Number(product.min_size))\n      return true\n    if (product.min_total && n(quantity).multiply(price).value() < Number(product.min_total))\n      return true\n    return false\n  }\n\n  // if s.signal\n  // 1. sync balance\n  // 2. get quote\n  // 3. calculate size/price\n  // 4. validate size against min/max sizes\n  // 5. cancel old orders\n  // 6. place new order\n  // 7. record order ID and start poll timer\n  // 8. if not filled after timer, repeat process\n  // 9. if filled, record order stats\n  function executeSignal (signal, _cb, size, is_reorder, is_taker, reverseCalled) {\n    if(so.reverse && !reverseCalled && !size && !is_reorder) {\n      console.log(('\\nREVERSE SIGNAL MODE ON!\\n').red)\n      return executeSignal(signal == 'buy' ? 'sell' : 'buy', _cb, size, is_reorder, is_taker, true)\n    }\n    let price, expected_fee, buy_pct, sell_pct, trades\n    delete s[(signal === 'buy' ? 'sell' : 'buy') + '_order']\n    s.last_signal = signal\n    if (!is_reorder && s[signal + '_order']) {\n      if (is_taker) s[signal + '_order'].order_type = 'taker'\n      // order already placed\n      _cb && _cb(null, null)\n      return\n    }\n    s.acted_on_trend = true\n    let cb = function (err, order) {\n      if (!order) {\n        if (signal === 'buy') delete s.buy_order\n        else delete s.sell_order\n      }\n      if (_cb)\n        _cb(err, order)\n      else if (err) {\n        if (err.message.match(nice_errors)) {\n          console.error((err.message + ': ' + err.desc).red)\n        } else {\n          memDump()\n          console.error('\\n')\n          console.error(err)\n          console.error('\\n')\n        }\n      }\n    }\n    syncBalance(function (err, { quote }) {\n      let reorder_pct, fee, trade_balance, tradeable_balance, expected_fee\n      if (err) {\n        debug.msg('error getting balance')\n        err.desc = 'could not execute ' + signal + ': error fetching quote'\n        return cb(err)\n      }\n      if (is_reorder && s[signal + '_order']) {\n        if (signal === 'buy') {\n          reorder_pct = n(size).multiply(s.buy_order.price).add(s.buy_order.fee).divide(s.balance.deposit).multiply(100)\n        } else {\n          reorder_pct = n(size).divide(s.balance.asset).multiply(100)\n        }\n        debug.msg('price changed, resizing order, ' + reorder_pct + '% remain')\n        size = null\n      }\n      if (s.my_prev_trades.length) {\n        trades = _.concat(s.my_prev_trades, s.my_trades)\n      } else {\n        trades = _.cloneDeep(s.my_trades)\n      }\n      if (signal === 'buy') {\n        price = nextBuyForQuote(s, quote)\n\n        if (is_reorder) {\n          buy_pct = reorder_pct\n        } else {\n          buy_pct = so.buy_pct\n        }\n        if (so.use_fee_asset) {\n          fee = 0\n        } else if (so.order_type === 'maker' && (buy_pct + s.exchange.takerFee < 100 || !s.exchange.makerBuy100Workaround)) {\n          fee = s.exchange.makerFee\n        } else {\n          fee = s.exchange.takerFee\n        }\n        trade_balance = n(s.balance.deposit).divide(100).multiply(buy_pct)\n        tradeable_balance = n(s.balance.deposit).divide(100 + fee).multiply(buy_pct)\n        expected_fee = n(trade_balance).subtract(tradeable_balance).format('0.00000000', Math.ceil) // round up as the exchange will too\n        if (buy_pct + fee < 100) {\n          size = n(tradeable_balance).divide(price).format(s.product.asset_increment ? s.product.asset_increment : '0.00000000')\n        } else {\n          size = n(trade_balance).subtract(expected_fee).divide(price).format(s.product.asset_increment ? s.product.asset_increment : '0.00000000')\n        }\n\n        if (isOrderTooSmall(s.product, size, price))\n          return cb(null, null)\n\n        if (s.product.max_size && Number(size) > Number(s.product.max_size)) {\n          size = s.product.max_size\n        }\n        debug.msg('preparing buy order over ' + formatAsset(size, s.asset) + ' of ' + formatCurrency(tradeable_balance, s.currency) + ' (' + buy_pct + '%) tradeable balance with a expected fee of ' + formatCurrency(expected_fee, s.currency) + ' (' + fee + '%)')\n\n        if (so.quarentine_time > 0 && s.buy_quarentine_time && moment.duration(moment(now()).diff(s.buy_quarentine_time)).asMinutes() < so.quarentine_time){\n          console.log(('\\nbuy cancel quarentine time: '+moment(s.buy_quarentine_time).format('YYYY-MM-DD HH:mm:ss')).red)\n          return cb(null, null)\n        }\n\n        let latest_low_sell = _.chain(trades).dropRightWhile(['type','buy']).takeRightWhile(['type','sell']).sortBy(['price']).head().value() // return lowest price\n        let buy_loss = latest_low_sell ? (latest_low_sell.price - Number(price)) / latest_low_sell.price * -100 : null\n        if (so.max_buy_loss_pct != null && buy_loss > so.max_buy_loss_pct) {\n          let err = new Error('\\nloss protection')\n          err.desc = 'refusing to buy at ' + formatCurrency(price, s.currency) + ', buy loss of ' + formatPercent(buy_loss / 100)\n          return cb(err)\n        }\n\n        if (s.buy_order && so.max_slippage_pct != null) {\n          let slippage = n(price).subtract(s.buy_order.orig_price).divide(s.buy_order.orig_price).multiply(100).value()\n          if (so.max_slippage_pct != null && slippage > so.max_slippage_pct) {\n            let err = new Error('\\nslippage protection')\n            err.desc = 'refusing to buy at ' + formatCurrency(price, s.currency) + ', slippage of ' + formatPercent(slippage / 100)\n            return cb(err)\n          }\n        }\n        if (n(s.balance.deposit).subtract(s.balance.currency_hold || 0).value() < n(price).multiply(size).value() && s.balance.currency_hold > 0) {\n          debug.msg('buy delayed: ' + formatPercent(n(s.balance.currency_hold || 0).divide(s.balance.deposit).value()) + ' of funds (' + formatCurrency(s.balance.currency_hold, s.currency) + ') on hold')\n          return setTimeout(function () {\n            if (s.last_signal === signal) {\n              executeSignal(signal, cb, size, true)\n            }\n          }, conf.wait_for_settlement)\n        }\n\n        if(conf.notifiers && !conf.notifiers.only_completed_trades){\n          pushMessage('Buying ' + formatAsset(size, s.asset) + ' on ' + s.exchange.name.toUpperCase(), 'placing buy order at ' + formatCurrency(price, s.currency) + ', ' + formatCurrency(quote.bid - Number(price), s.currency) + ' under best bid\\n')\n        }\n        doOrder()\n\n      }\n      else if (signal === 'sell') {\n        price = nextSellForQuote(s, quote)\n\n        if (is_reorder) {\n          sell_pct = reorder_pct\n        } else {\n          sell_pct = so.sell_pct\n        }\n        size = n(s.balance.asset).multiply(sell_pct / 100).format(s.product.asset_increment ? s.product.asset_increment : '0.00000000')\n\n        if (isOrderTooSmall(s.product, size, price))\n          return cb(null, null)\n\n        if (s.product.max_size && Number(size) > Number(s.product.max_size)) {\n          size = s.product.max_size\n        }\n        let latest_high_buy = _.chain(trades).dropRightWhile(['type','sell']).takeRightWhile(['type','buy']).sortBy(['price']).reverse().head().value() // return highest price\n        let sell_loss = latest_high_buy ? (Number(price) - latest_high_buy.price) / latest_high_buy.price * -100 : null\n        if (latest_high_buy && so.sell_cancel_pct != null && Math.abs(sell_loss) < so.sell_cancel_pct) {\n          console.log(('\\nsell_cancel_pct: refusing to sell at ' + formatCurrency(latest_high_buy.price, s.currency) + '-' + formatCurrency(price, s.currency) + ', sell loss of ' + formatPercent(sell_loss/100) + ' - ' + formatPercent(so.sell_cancel_pct/100)+'\\n').red)\n          return cb(null, null)\n        }\n        if (so.max_sell_loss_pct != null && sell_loss > so.max_sell_loss_pct) {\n          let err = new Error('\\nloss protection')\n          err.desc = 'refusing to sell at ' + formatCurrency(price, s.currency) + ', sell loss of ' + formatPercent(sell_loss / 100)\n          return cb(err)\n        }\n\n        if (s.sell_order && so.max_slippage_pct != null) {\n          let slippage = n(s.sell_order.orig_price).subtract(price).divide(price).multiply(100).value()\n          if (slippage > so.max_slippage_pct) {\n            let err = new Error('\\nslippage protection')\n            err.desc = 'refusing to sell at ' + formatCurrency(price, s.currency) + ', slippage of ' + formatPercent(slippage / 100)\n            return cb(err)\n          }\n        }\n\n        if (n(s.balance.asset).subtract(s.balance.asset_hold || 0).value() < n(size).value()) {\n          debug.msg('sell delayed: ' + formatPercent(n(s.balance.asset_hold || 0).divide(s.balance.asset).value()) + ' of funds (' + formatAsset(s.balance.asset_hold, s.asset) + ') on hold')\n          return setTimeout(function () {\n            if (s.last_signal === signal) {\n              executeSignal(signal, cb, size, true)\n            }\n          }, conf.wait_for_settlement)\n        }\n\n        if(conf.notifiers && !conf.notifiers.only_completed_trades){\n          pushMessage('Selling ' + formatAsset(size, s.asset) + ' on ' + s.exchange.name.toUpperCase(), 'placing sell order at ' + formatCurrency(price, s.currency) + ', ' + formatCurrency(Number(price) - quote.bid, s.currency) + ' over best ask\\n')\n        }\n        doOrder()\n\n      }\n    })\n    function doOrder () {\n      placeOrder(signal, {\n        size: size,\n        price: price,\n        fee: expected_fee || null,\n        is_taker: is_taker,\n        cancel_after: so.cancel_after || 'day'\n      }, function (err, order) {\n        if (err) {\n          err.desc = 'could not execute ' + signal + ': error placing order'\n          return cb(err)\n        }\n        if (!order) {\n          if (order === false) {\n            // not enough balance, or signal switched.\n            debug.msg('not enough balance, or signal switched, cancel ' + signal)\n            return cb(null, null)\n          }\n          if (s.last_signal !== signal) {\n            // order timed out but a new signal is taking its place\n            debug.msg('signal switched, cancel ' + signal)\n            return cb(null, null)\n          }\n          // order timed out and needs adjusting\n          debug.msg(signal + ' order timed out, adjusting price')\n          let remaining_size = s[signal + '_order'] ? s[signal + '_order'].remaining_size : size\n          if (remaining_size !== size) {\n            debug.msg('remaining size: ' + remaining_size)\n          }\n          return executeSignal(signal, _cb, remaining_size, true)\n        }\n        cb(null, order)\n      })\n    }\n  }\n\n  // Called after an order has been completed.\n  // trade_type is either 'buy' or 'sell'\n  function executeOrder (order, trade_type) {\n    let order_type = so.order_type || 'maker'   // \"maker\" or \"taker\"\n    let price = order.price\n    let fee = 0\n\n\n    let percentage_fee = 0\n    if (order_type === 'maker' && s.exchange.makerFee)\n      percentage_fee = s.exchange.makerFee\n    else if (order_type === 'taker' && s.exchange.takerFee)\n      percentage_fee = s.exchange.takerFee\n    if (trade_type === 'sell')\n      fee = n(order.size).multiply(percentage_fee / 100).multiply(price).value()\n    else if (trade_type === 'buy')\n      fee = n(order.size).multiply(percentage_fee / 100).value()\n\n    s.action = trade_type === 'sell' ? 'sold' : 'bought'\n\n    // Compute profit from the last order price.\n    let last_price_type = `last_${trade_type}_price`\n    let previous_orders = s.my_prev_trades.filter(trade => trade.type === trade_type)\n    if (!s[last_price_type] && previous_orders.length) {\n      let last_price = previous_orders[previous_orders.length -1].price\n      s[last_price_type] = last_price\n    }\n    let profit = s[last_price_type] && (s[last_price_type] - price) / s[last_price_type]\n    s[last_price_type] = price\n\n    let my_trade = {\n      order_id: order.order_id,\n      time: order.time,\n      execution_time: order.time - order.orig_time,\n      slippage: trade_type === 'sell' ?\n        n(order.orig_price).subtract(price).divide(price).value() :\n        n(price).subtract(order.orig_price).divide(order.orig_price).value(),\n      type: trade_type,\n      size: order.orig_size,\n      fee: fee,\n      price: price,\n      order_type: order_type,\n      profit: profit\n    }\n    if (trade_type === 'buy')\n      my_trade.cancel_after = so.cancel_after || 'day'\n    s.my_trades.push(my_trade)\n\n    if (so.stats) {\n      let execution_time = moment.duration(my_trade.execution_time).humanize()\n      let completion_time = moment(order.time).format('YYYY-MM-DD HH:mm:ss')\n      let asset_qty = formatAsset(my_trade.size, s.asset)\n      let currency_price = formatCurrency(my_trade.price, s.currency)\n      let total_price = formatCurrency(my_trade.size * my_trade.price, s.currency)\n      let slippage = n(my_trade.slippage).format('0.0000%')\n      let orig_price = formatCurrency(order.orig_price, s.currency)\n      let order_complete = `\\n${trade_type} order completed at ${completion_time}:\\n\\n` +\n          `${asset_qty} at ${currency_price}\\n` +\n          `total ${total_price}\\n` +\n          `${slippage} slippage (orig. price ${orig_price})\\n` +\n          `execution: ${execution_time}\\n`\n      console.log((order_complete).cyan)\n      pushMessage(`${trade_type} ${s.exchange.name.toUpperCase()}`, order_complete)\n    }\n\n    if(trade_type == 'sell' && !isNaN(profit) && profit <= 0) {\n      s.buy_quarentine_time = now()\n    }\n\n    if (trade_type === 'buy')\n      delete s.buy_order\n    else\n      delete s.sell_order\n\n    delete s.buy_stop\n    delete s.sell_stop\n    if (trade_type === 'buy' && so.sell_stop_pct) {\n      s.sell_stop = n(price).subtract(n(price).multiply(so.sell_stop_pct / 100)).value()\n    } else if (trade_type === 'sell' && so.buy_stop_pct) {\n      s.buy_stop = n(price).add(n(price).multiply(so.buy_stop_pct / 100)).value()\n    }\n    delete s.profit_stop\n    delete s.profit_stop_high\n\n    eventBus.emit('orderExecuted', trade_type)\n  }\n\n  function now () {\n    return new Date().getTime()\n  }\n\n  function writeReport (is_progress, blink_off) {\n    if ((so.mode === 'sim' || so.mode === 'train') && !so.verbose) {\n      if(so.silent) return\n      is_progress = true\n    }\n    else if (is_progress && typeof blink_off === 'undefined' && s.vol_since_last_blink) {\n      s.vol_since_last_blink = 0\n      setTimeout(function () {\n        writeReport(true, true)\n      }, 200)\n      setTimeout(function () {\n        writeReport(true, false)\n      }, 400)\n      setTimeout(function () {\n        writeReport(true, true)\n      }, 600)\n      setTimeout(function () {\n        writeReport(true, false)\n      }, 800)\n    }\n    readline.clearLine(process.stdout)\n    readline.cursorTo(process.stdout, 0)\n    process.stdout.write(moment(is_progress ? s.period.latest_trade_time : tb(s.period.time).resize(so.period_length).add(1).toMilliseconds()).format('YYYY-MM-DD HH:mm:ss')[is_progress && !blink_off ? 'bgBlue' : 'grey'])\n    process.stdout.write('  ' + formatCurrency(s.period.close, s.currency, true, true, true) + ' ' + s.product_id.grey)\n    if (s.lookback[0]) {\n      let diff = (s.period.close - s.lookback[0].close) / s.lookback[0].close\n      process.stdout.write(z(8, formatPercent(diff), ' ')[diff >= 0 ? 'green' : 'red'])\n    }\n    else {\n      process.stdout.write(z(9, '', ' '))\n    }\n    let volume_display = s.period.volume > 99999 ? abbreviate(s.period.volume, 2) : n(s.period.volume).format('0')\n    volume_display = z(8, volume_display, ' ')\n    if (volume_display.indexOf('.') === -1) volume_display = ' ' + volume_display\n    process.stdout.write(volume_display[is_progress && blink_off ? 'cyan' : 'grey'])\n    rsi(s, 'rsi', so.rsi_periods)\n    if (typeof s.period.rsi === 'number') {\n      let half = 5\n      let bar = ''\n      let stars = 0\n      let rsi = n(s.period.rsi).format('00.00')\n      if (s.period.rsi >= 50) {\n        stars = Math.min(Math.round(((s.period.rsi - 50) / 50) * half) + 1, half)\n        bar += ' '.repeat(half - (rsi < 100 ? 3 : 4))\n        bar += rsi.green + ' '\n        bar += '+'.repeat(stars).green.bgGreen\n        bar += ' '.repeat(half - stars)\n      }\n      else {\n        stars = Math.min(Math.round(((50 - s.period.rsi) / 50) * half) + 1, half)\n        bar += ' '.repeat(half - stars)\n        bar += '-'.repeat(stars).red.bgRed\n        bar += rsi.length > 1 ? ' ' : '  '\n        bar += rsi.red\n        bar += ' '.repeat(half - 3)\n      }\n      process.stdout.write(' ' + bar)\n    }\n    else {\n      process.stdout.write(' '.repeat(11))\n    }\n    if (s.strategy.onReport) {\n      let cols = s.strategy.onReport.call(s.ctx, s)\n      cols.forEach(function (col) {\n        process.stdout.write(col)\n      })\n    }\n    if (s.buy_order) {\n      process.stdout.write(z(9, 'buying', ' ').green)\n    }\n    else if (s.sell_order) {\n      process.stdout.write(z(9, 'selling', ' ').red)\n    }\n    else if (s.action) {\n      process.stdout.write(z(9, s.action, ' ')[s.action === 'bought' ? 'green' : 'red'])\n    }\n    else if (s.signal) {\n      process.stdout.write(z(9, s.signal || '', ' ')[s.signal ? s.signal === 'buy' ? 'green' : 'red' : 'grey'])\n    }\n    else if (s.last_trade_worth && !s.buy_order && !s.sell_order) {\n      process.stdout.write(z(8, formatPercent(s.last_trade_worth), ' ')[s.last_trade_worth > 0 ? 'green' : 'red'])\n    }\n    else {\n      process.stdout.write(z(9, '', ' '))\n    }\n    let orig_capital = s.orig_capital || s.start_capital\n    let orig_price = s.orig_price || s.start_price\n    if (orig_capital) {\n      let asset_col = n(s.balance.asset).format(s.asset === 'BTC' ? '0.00000' : '0.00000000') + ' ' + s.asset\n      asset_col_width = Math.max(asset_col.length + 1, asset_col_width)\n      process.stdout.write(z(asset_col_width, asset_col, ' ').white)\n      let deposit_col = n(s.balance.deposit).format(isFiat() ? '0.00' : '0.00000000') + ' ' + s.currency\n      deposit_col_width = Math.max(deposit_col.length + 1, deposit_col_width)\n      process.stdout.write(z(deposit_col_width, deposit_col, ' ').yellow)\n      if (so.deposit) {\n        let currency_col = n(s.balance.currency).format(isFiat() ? '0.00' : '0.00000000') + ' ' + s.currency\n        currency_col_width = Math.max(currency_col.length + 1, currency_col_width)\n        process.stdout.write(z(currency_col_width, currency_col, ' ').green)\n        let circulating = s.balance.currency > 0 ? n(s.balance.deposit).divide(s.balance.currency) : n(0)\n        process.stdout.write(z(8, n(circulating).format('0.00%'), ' ').grey)\n      }\n      let consolidated = n(s.net_currency).add(n(s.balance.asset).multiply(s.period.close))\n      let profit = n(consolidated).divide(orig_capital).subtract(1).value()\n      process.stdout.write(z(8, formatPercent(profit), ' ')[profit >= 0 ? 'green' : 'red'])\n      let buy_hold = n(orig_capital).divide(orig_price).multiply(s.period.close)\n      let over_buy_hold_pct = n(consolidated).divide(buy_hold).subtract(1).value()\n      process.stdout.write(z(8, formatPercent(over_buy_hold_pct), ' ')[over_buy_hold_pct >= 0 ? 'green' : 'red'])\n    }\n    if (!is_progress) {\n      process.stdout.write('\\n')\n    }\n  }\n\n  function withOnPeriod (trade, period_id, cb) {\n    if (!clock && so.mode !== 'live' && so.mode !== 'paper') clock = lolex.install({ shouldAdvanceTime: false, now: trade.time })\n\n    updatePeriod(trade)\n    if (!s.in_preroll) {\n      if (so.mode !== 'live')\n        s.exchange.processTrade(trade)\n\n      if (!so.manual) {\n        executeStop()\n\n        if (clock) {\n          var diff = trade.time - now()\n\n          // Allow some catch-up if trades are too far apart. Don't want all calls happening at the same time\n          while (diff > 5000) {\n            clock.tick(5000)\n            diff -= 5000\n          }\n          clock.tick(diff)\n        }\n\n        if (s.signal) {\n          executeSignal(s.signal)\n          s.signal = null\n        }\n      }\n    }\n    s.last_period_id = period_id\n    cb()\n  }\n\n  function cancelOrder (order, type, do_reorder, cb) {\n    s.exchange.cancelOrder({order_id: order.order_id, product_id: s.product_id}, function () {\n      function checkHold (do_reorder, cb) {\n        s.exchange.getOrder({order_id: order.order_id, product_id: s.product_id}, function (err, api_order) {\n          if (api_order) {\n            if (api_order.status === 'done') {\n              order.time = new Date(api_order.done_at).getTime()\n              order.price = api_order.price || order.price // Use actual price if possible. In market order the actual price (api_order.price) could be very different from trade price\n              debug.msg('cancel failed, order done, executing')\n              executeOrder(order, type)\n              return syncBalance(function () {\n                cb(null, order)\n              })\n            }\n\n            s.api_order = api_order\n            if (api_order.filled_size) {\n              order.remaining_size = n(order.size).subtract(api_order.filled_size).format(s.product.asset_increment ? s.product.asset_increment : '0.00000000')\n            }\n          }\n          syncBalance(function () {\n            let on_hold\n            if (type === 'buy') on_hold = n(s.balance.deposit).subtract(s.balance.currency_hold || 0).value() < n(order.price).multiply(order.remaining_size).value()\n            else on_hold = n(s.balance.asset).subtract(s.balance.asset_hold || 0).value() < n(order.remaining_size).value()\n\n            if (on_hold && s.balance.currency_hold > 0) {\n              // wait a bit for settlement\n              debug.msg('funds on hold after cancel, waiting 5s')\n              setTimeout(function() { checkHold(do_reorder, cb) }, conf.wait_for_settlement)\n            }\n            else {\n              cb(null, do_reorder ? null : false)\n            }\n          })\n        })\n      }\n      checkHold(do_reorder, cb)\n    })\n  }\n  function checkOrder (order, type, cb) {\n    if (!s[type + '_order']) {\n      // signal switched, stop checking order\n      debug.msg('signal switched during ' + type + ', aborting')\n      return cancelOrder(order, type, false, cb)\n    }\n    s.exchange.getOrder({order_id: order.order_id, product_id: s.product_id}, function (err, api_order) {\n      if (err) return cb(err)\n      s.api_order = api_order\n      order.status = api_order.status\n      if (api_order.reject_reason) order.reject_reason = api_order.reject_reason\n      if (api_order.status === 'done') {\n        order.time = new Date(api_order.done_at).getTime()\n        order.price = api_order.price || order.price // Use actual price if possible. In market order the actual price (api_order.price) could be very different from trade price\n        executeOrder(order, type)\n        return syncBalance(function () {\n          cb(null, order)\n        })\n      }\n      if (order.status === 'rejected' && (order.reject_reason === 'post only' || api_order.reject_reason === 'post only')) {\n        debug.msg('post-only ' + type + ' failed, re-ordering')\n        return cb(null, null)\n      }\n      if (order.status === 'rejected' && order.reject_reason === 'balance') {\n        debug.msg('not enough balance for ' + type + ', aborting')\n        return cb(null, null)\n      }\n      if (now() - order.local_time >= so.order_adjust_time) {\n        getQuote(function (err, quote) {\n          if (err) {\n            err.desc = 'could not execute ' + type + ': error fetching quote'\n            return cb(err)\n          }\n          let marked_price\n          if (type === 'buy') {\n            marked_price = nextBuyForQuote(s, quote)\n            if (so.exact_buy_orders && n(order.price).value() != marked_price) {\n              debug.msg(marked_price + ' vs! our ' + order.price)\n              cancelOrder(order, type, true, cb)\n            }\n            else if (n(order.price).value() < marked_price) {\n              debug.msg(marked_price + ' vs our ' + order.price)\n              cancelOrder(order, type, true, cb)\n            }\n            else {\n              order.local_time = now()\n              setTimeout(function() { checkOrder(order, type, cb) }, so.order_poll_time)\n            }\n          }\n          else {\n            marked_price = nextSellForQuote(s, quote)\n            if (so.exact_sell_orders && n(order.price).value() != marked_price) {\n              debug.msg(marked_price + ' vs! our ' + order.price)\n              cancelOrder(order, type, true, cb)\n            }\n            else if (n(order.price).value() > marked_price) {\n              debug.msg(marked_price + ' vs our ' + order.price)\n              cancelOrder(order, type, true, cb)\n            }\n            else {\n              order.local_time = now()\n              setTimeout(function() { checkOrder(order, type, cb) }, so.order_poll_time)\n            }\n          }\n        })\n      }\n      else {\n        setTimeout(function() { checkOrder(order, type, cb) }, so.order_poll_time)\n      }\n    })\n  }\n\n  var tradeProcessingQueue = async.queue(function({trade, is_preroll}, callback){\n    onTrade(trade, is_preroll, callback)\n  })\n\n  function queueTrade(trade, is_preroll){\n    tradeProcessingQueue.push({trade, is_preroll})\n  }\n\n  function onTrade(trade, is_preroll, cb) {\n    if (s.period && trade.time < s.period.time) {\n      return cb()\n    }\n    var day = (new Date(trade.time)).getDate()\n    if (s.last_day && day !== s.last_day) {\n      s.day_count++\n    }\n    s.last_day = day\n    if (!s.period) {\n      initBuffer(trade)\n    }\n    s.in_preroll = is_preroll || (so.start && trade.time < so.start)\n    if (!s.period.last_try_trade && !s.in_preroll) {\n      s.period.last_try_trade = now()\n    }\n    if(trade.time > s.period.close_time ||\n      (!s.in_preroll && so.mode != 'sim' && moment.duration(moment(now()).diff(s.period.last_try_trade)).asMinutes() >= so.interval_trade)){\n      var period_id = tb(trade.time).resize(so.period_length).toString()\n      s.period.last_try_trade = now()\n      s.strategy.onPeriod.call(s.ctx, s, function () {\n        writeReport()\n        s.acted_on_stop = false\n        if (!s.in_preroll && !so.manual) {\n          executeStop(true)\n          if (s.signal) {\n            executeSignal(s.signal)\n          }\n        }\n        //s.action = null\n        s.signal = null\n        if (trade.time > s.period.close_time) {\n          s.lookback.unshift(s.period)\n          initBuffer(trade)\n        }\n        withOnPeriod(trade, period_id, cb)\n      })\n    }\n    else {\n      withOnPeriod(trade, period_id, cb)\n    }\n  }\n\n  function onTrades(trades, is_preroll, cb) {\n    if (_.isFunction(is_preroll)) {\n      cb = is_preroll\n      is_preroll = false\n    }\n    trades.sort(function (a, b) {\n      if (a.time < b.time) return -1\n      if (a.time > b.time) return 1\n      return 0\n    })\n    var local_trades = trades.slice(0)\n    var trade\n    while( (trade = local_trades.shift()) !== undefined ) {\n      queueTrade(trade, is_preroll)\n    }\n    if(_.isFunction(cb)) cb()\n  }\n\n  return {\n    writeHeader: function () {\n      process.stdout.write([\n        z(19, 'DATE', ' ').grey,\n        z(17, 'PRICE', ' ').grey,\n        z(9, 'DIFF', ' ').grey,\n        z(10, 'VOL', ' ').grey,\n        z(8, 'RSI', ' ').grey,\n        z(32, 'ACTIONS', ' ').grey,\n        z(so.deposit ? 38 : 25, 'BAL', ' ').grey,\n        z(22, 'PROFIT', ' ').grey\n      ].join('') + '\\n')\n    },\n    update: onTrades,\n    exit: function (cb) {\n      if(tradeProcessingQueue.length()){\n        tradeProcessingQueue.drain(() => {\n          if(s.strategy.onExit) {\n            s.strategy.onExit.call( s.ctx, s )\n          }\n          cb()\n        })\n      } else {\n        if(s.strategy.onExit) {\n          s.strategy.onExit.call( s.ctx, s )\n        }\n        cb()\n      }\n    },\n\n    executeSignal: executeSignal,\n    writeReport: writeReport,\n    syncBalance: syncBalance,\n    pushMessage: pushMessage,\n    onMessage: onMessage,\n  }\n}\n\n"
  },
  {
    "path": "lib/format.js",
    "content": "let n = require('numbro')\n\nlet max_fc_width = 0\nmodule.exports = {\n  formatAsset: function formatAsset (amt, asset) {\n    return n(amt).format('0.00000000') + ' ' + asset\n  },\n  formatPercent: function formatPercent (ratio) {\n    return (ratio >= 0 ? '+' : '') + n(ratio).format('0.00%')\n  },\n  formatCurrency: function formatCurrency (amt, currency, omit_currency, color_trick, do_pad) {\n    let str\n    let fstr\n    amt > 999 ? fstr = '0.00' :\n      amt > 99 ? fstr = '0.000' :\n        amt > 9 ? fstr = '0.0000' :\n          amt > 0.9 ? fstr = '0.00000' :\n            amt > 0.09 ? fstr = '0.000000' :\n              amt > 0.009 ? fstr = '0.0000000' :\n                fstr = '0.00000000'\n    str = n(amt).format(fstr)\n    if (do_pad) {\n      max_fc_width = Math.max(max_fc_width, str.length)\n      str = ' '.repeat(max_fc_width - str.length) + str\n    }\n    if (color_trick) {\n      str = str\n        .replace(/^(.*\\.)(.*?)(0*)$/, function (_, m1, m2, m3) {\n          return m1.cyan + m2.yellow + m3.grey\n        })\n    }\n    return str + (omit_currency ? '' : ' ' + currency)\n  }\n}"
  },
  {
    "path": "lib/heikinAshi.js",
    "content": "module.exports = function heikinAshi (s, key) {\n  if (s.lookback.length > 0) {\n    var prev = s.lookback[0]\n    if (typeof prev !== 'undefined') {\n      s.period[key] = {\n        open: (prev.open + prev.close) / 2,\n        high: Math.max(s.period.open, s.period.high, s.period.close),\n        low: Math.min(s.period.open, s.period.low, s.period.close),\n        close: (s.period.open + s.period.high + s.period.low + s.period.close) / 4,\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "lib/helpers.js",
    "content": "\n//Basic Usage\n// let crossover = require('../../../lib/helpers').crossover,\n// or\n// const tv = require('../../../lib/helpers')\n// ...\n// s.period.hl2 = tv.hl2(s.period)\n\nmodule.exports = {\n  crossover: function(s, key1, key2) {\n    return s.period[key1] > s.period[key2] && s.lookback[0][key1] <= s.lookback[0][key2]\n  },\n  crossunder: function(s, key1, key2) {\n    return s.period[key1] < s.period[key2] && s.lookback[0][key1] >= s.lookback[0][key2]\n  },\n  crossoverVal: function(p1val1, p1val2, p2val1, p2val2) {\n    return p1val1 > p1val2 && p2val1 <= p2val2\n  },\n  crossunderVal: function(p1val1, p1val2, p2val1, p2val2) {\n    return p1val1 < p1val2 && p2val1 >= p2val2\n  },\n  nz: function(src, val = 0) {\n    return typeof src != 'number' || isNaN(src) ? val : src\n  },\n  iff: function(v, r, r2) {\n    return v != undefined && v ? r : r2\n  },\n  hl2: function(period) {\n    return (period.high + period.low) / 2\n  },\n  hlc3: function(period) {\n    return (period.high + period.low + period.close) / 3\n  },\n  ohlc4: function(period) {\n    return (period.open + period.high + period.low + period.close) / 4\n  },\n  HAhlc3: function(period, lookback) {\n    /*\n    xClose = (Open+High+Low+Close)/4\n    xOpen = [xOpen(Previous Bar) + xClose(Previous Bar)]/2\n    xHigh = Max(High, xOpen, xClose)\n    xLow = Min(Low, xOpen, xClose)\n    */\n    let haClose = (period.open + period.high + period.low + period.close) / 4,\n      haClosePeriod = lookback != undefined ? lookback : period,\n      haClosePrev = (haClosePeriod.open + haClosePeriod.high + haClosePeriod.low + haClosePeriod.close) / 4,\n      haOpen = (period.haOpen ? period.haOpen : period.open + haClosePrev) / 2,\n      haHigh = Math.max(period.high, haOpen, haClose),\n      haLow = Math.min(period.low, haOpen, haClose)\n    // save haOpen\n    period.haOpen = haOpen\n    return (haClose + haHigh + haLow) / 3\n  },\n  HAohlc4: function(period, lookback) {\n    /*\n    xClose = (Open+High+Low+Close)/4\n    xOpen = [xOpen(Previous Bar) + xClose(Previous Bar)]/2\n    xHigh = Max(High, xOpen, xClose)\n    xLow = Min(Low, xOpen, xClose)\n    */\n    let haClose = (period.open + period.high + period.low + period.close) / 4,\n      haClosePeriod = lookback != undefined ? lookback : period,\n      haClosePrev = (haClosePeriod.open + haClosePeriod.high + haClosePeriod.low + haClosePeriod.close) / 4,\n      haOpen = (period.haOpen ? period.haOpen : period.open + haClosePrev) / 2,\n      haHigh = Math.max(period.high, haOpen, haClose),\n      haLow = Math.min(period.low, haOpen, haClose)\n    // save haOpen\n    period.haOpen = haOpen\n    return (haClose + haOpen + haHigh + haLow) / 4\n  },\n  // sample usage: let adjusted_lbks = s.lookback.map((period, i) => tv.src(period, s.options.src, s.lookback[i+1]))\n  src: function(src, period, lookback) {\n    if (!period)\n      throw 'helpers src(). period undefined'\n\n    if (!src || src === 'close') {\n      return period.close\n    } else if (src === 'hl2') {\n      return module.exports.hl2(period)\n    } else if (src === 'hlc3') {\n      return module.exports.hlc3(period)\n    } else if (src === 'ohlc4') {\n      return module.exports.ohlc4(period)\n    } else if (src === 'HAhlc3') {\n      return module.exports.HAhlc3(period, lookback)\n    } else if (src === 'HAohlc4') {\n      return module.exports.HAohlc4(period, lookback)\n    } else\n      throw src + ' not supported'\n  },\n  adjust_by_pct: function(pct, n) {\n    return n * (pct / 100 + 1)\n  },\n  pivot: function(s, leftBars, rightBars) {\n    let totalBars = leftBars + rightBars + 1,\n      periods = [s.period, ...s.lookback.slice(0, totalBars - 1)].reverse(),\n      lPeriods = periods.slice(0, leftBars),\n      rPeriods = periods.slice(leftBars + 1),\n      oPeriods = lPeriods.concat(rPeriods),\n      countH = oPeriods.reduce((p, c) => {\n        return p + (typeof c.high !== 'undefined' && periods[leftBars].high > c.high ? 1 : 0)\n      }, 0),\n      countL = oPeriods.reduce((p, c) => {\n        return p + (typeof c.low !== 'undefined' && periods[leftBars].low < c.low ? 1 : 0)\n      }, 0)\n    return {\n      high: countH == oPeriods.length ? periods[leftBars].high : null,\n      low: countL == oPeriods.length ? periods[leftBars].low : null\n    }\n  }\n}\n"
  },
  {
    "path": "lib/highest.js",
    "content": "module.exports = function highest(s, key, length) {\n  if (s.lookback.length < length) {\n    s.period[key] = 0\n  } else {\n    s.period[key] = s.period[key] = Math.max(s.period.high, ...s.lookback.slice(0, length - 1).map(period => period.high))\n  }\n}\n"
  },
  {
    "path": "lib/kc.js",
    "content": "// Keltner Channels\nvar keltnerchannel = require('keltnerchannel').kc\nmodule.exports = function kc (s, key, length, source_key) {\n  if (!source_key) source_key = 'close'\n  if (s.lookback.length > length) {\n    let data = []\n    for (var i=length-1; i>=0; i--) {\n      data.push({\n        high: s.lookback[i].high,\n        low: s.lookback[i].low,\n        close: s.lookback[i].close\n      })\n    }\n    let result = keltnerchannel(data, s.options.kc_size, s.options.kc_multiplier)\n    s.period[key] = result\n  }\n}\n\n"
  },
  {
    "path": "lib/lowest.js",
    "content": "module.exports = function lowest(s, key, length) {\n  if (s.lookback.length < length) {\n    s.period[key] = 0\n  } else {\n    s.period[key] = s.period[key] = Math.min(s.period.low, ...s.lookback.slice(0, length - 1).map(period => period.low))\n  }\n}\n"
  },
  {
    "path": "lib/lrc.js",
    "content": "// Linear Regression Curve\nvar regression = require('regression')\nmodule.exports = function lrc (s, key, length, source_key) {\n  if (!source_key) source_key = 'close'\n  if (s.lookback.length > length) {\n    let data = []\n    for (var i=length-1; i>=0; i--) {\n      data.push([length-1-i, s.lookback[i][source_key]])\n    }\n    let result = regression.linear(data)\n    s.period[key] = result.equation[1] + result.equation[0]*(length-1)\n  }\n}\n\n"
  },
  {
    "path": "lib/momentum.js",
    "content": "module.exports = function momentum(s, key, source_key, length) {\n  if (s.lookback == null || s.lookback.length < length || s.period == null || s.period[source_key] == null) {\n    s.period[key] = 0\n  } else {\n    s.period[key] = s.period[source_key] - s.lookback[length - 1][source_key]\n  }\n}\n\n"
  },
  {
    "path": "lib/normalize-selector.js",
    "content": "module.exports = function (selector) {\n  var parts = selector.split('.')\n  return parts[0].toLowerCase() + '.' + (parts[1] || '').toUpperCase()\n}"
  },
  {
    "path": "lib/notify.js",
    "content": "module.exports = function notifier (conf) {\n  var active_notifiers = []\n  var interactive_notifiers = []\n\n  for (var notifier in conf.notifiers) {\n    if (conf.notifiers[notifier].on) {\n      var notif = require(`../extensions/notifiers/${notifier}`)(conf.notifiers[notifier])\n      notif.notifier_name = notifier\n\n      active_notifiers.push(notif)\n      if (conf.notifiers[notifier].interactive) {\n        interactive_notifiers.push(notif)\n      }\n    }\n  }\n\n  return {\n    pushMessage: function (title, message) {\n      if (conf.debug) {\n        console.log(`${title}: ${message}`)\n      }\n\n      active_notifiers.forEach((notifier) => {\n        if (conf.debug) {\n          console.log(`Sending push message via ${notifier.notifier_name}`)\n        }\n        notifier.pushMessage(title, message)\n      })\n    },\n    onMessage: function (callback) {\n      interactive_notifiers.forEach((notifier) => {\n        if (conf.debug) {\n          console.log(`Receiving message from ${notifier.notifier_name}`)\n        }\n        notifier.onMessage(callback)\n      })\n    }\n  }\n}\n"
  },
  {
    "path": "lib/objectify-selector.js",
    "content": "var normalizeSelector = require('./normalize-selector')\nmodule.exports =  function(selector) {\n  var rtn\n\n  if (typeof selector == 'string') {\n    var s = normalizeSelector(selector)\n\n    var e_id = s.split('.')[0]\n    var p_id = s.split('.')[1]\n    var asset = p_id.split('-')[0]\n    var currency = p_id.split('-')[1]\n\n    rtn = {exchange_id: e_id, product_id: p_id, asset: asset, currency: currency, normalized: s}\n  } \n  else if (typeof selector == 'object') {\n    rtn = selector\n  }\n\n  return rtn\n}\n"
  },
  {
    "path": "lib/output.js",
    "content": "var path = require('path')\n\nmodule.exports = function output (conf) {\n\n  var initializeOutput = function(tradeObject) {\n    for (var output in conf.output) {\n      if (conf.output[output].on) {\n        if (conf.debug) {\n          console.log(`initializing output ${output}`)\n        }\n        require(path.resolve(__dirname, `../extensions/output/${output}`))(conf).run(conf.output[output], tradeObject)\n      }\n    }\n  }\n\n  return {\n    initializeOutput: initializeOutput\n  }\n}\n"
  },
  {
    "path": "lib/phenotype.js",
    "content": "/*\n * Zenbot 4 Genetic Backtester\n * Clifford Roche <clifford.roche@gmail.com>\n * 07/01/2017\n */\n\nlet PROPERTY_RANDOM_CHANCE = 0.30 // Chance of a Mutation to spawn a new species -- Try and prevent some stagnation\nlet PROPERTY_MUTATION_CHANCE = 0.30 // Chance of a Mutation in an aspect of the species\nlet PROPERTY_CROSSOVER_CHANCE = 0.50 // Chance of a aspect being inherited by another species\n\n\nmodule.exports = {\n  create: function(strategy) {\n    var r = {}\n    for (var k in strategy) {\n      var v = strategy[k]\n      if (v.type === 'int') {\n        r[k] = Math.floor((Math.random() * (v.max - v.min + 1)) + v.min)\n      } else if (v.type === 'int0') {\n        r[k] = 0\n        if (Math.random() >= 0.5) {\n          r[k] = Math.floor((Math.random() * (v.max - v.min + 1)) + v.min)\n        }\n      } else if (v.type === 'intfactor') {\n        let factorString = v.factor.toString(),\n          decimalIdx = factorString.indexOf('.') + 1,\n          decimals = decimalIdx === 0 ? 0 : factorString.length - decimalIdx\n        r[k] = (Math.floor(Math.random() * (v.max - v.min + v.factor) / v.factor) * v.factor + v.min).toFixed(decimals)\n      } else if (v.type === 'float') {\n        r[k] = (Math.random() * (v.max - v.min)) + v.min\n      } else if (v.type === 'period_length') {\n        var s = Math.floor((Math.random() * (v.max - v.min + 1)) + v.min)\n        r[k] = s + v.period_length\n      } else if (v.type === 'listOption') {\n        let index = Math.floor(Math.random() * v.options.length)\n        r[k] = v.options[index]\n      } else if (v.type === 'maType') {\n        let items = ['SMA', 'EMA', 'WMA', 'DEMA', 'TEMA', 'TRIMA', 'KAMA', 'MAMA', 'T3']\n        let index = Math.floor(Math.random() * items.length)\n        r[k] = items[index]\n      } else if (v.type === 'uscSignalType') {\n        let items = ['simple', 'low', 'trend']\n        let index = Math.floor(Math.random() * items.length)\n        r[k] = items[index]\n      }\n    }\n    return r\n  },\n\n  range: function(v, step, stepSize) {\n    var scale = step / (stepSize - 1)\n\n    if (v.type === 'int') {\n      return Math.floor((scale * (v.max - v.min)) + v.min)\n    } else if (v.type === 'int0') {\n      if (step == 0)\n        return 0\n\n      scale = (step - 1) / (stepSize - 2)\n      return Math.floor((scale * (v.max - v.min)) + v.min)\n    } else if (v.type === 'intfactor') {\n      let val = Math.floor((scale * (v.max - v.min)) + v.min)\n      return Math.floor(val / v.factor) * v.factor\n    } else if (v.type === 'float') {\n      return (scale * (v.max - v.min)) + v.min\n    } else if (v.type === 'period_length') {\n      var s = Math.floor((scale * (v.max - v.min)) + v.min)\n      return s + v.period_length\n    } else if (v.type === 'listOption') {\n      scale = step / stepSize\n      let index = Math.floor(scale * v.options.length)\n      return v.options[index]\n    }\n  },\n\n  mutation: function(oldPhenotype, strategy) {\n    var r = module.exports.create(strategy)\n    if(Math.random() > PROPERTY_RANDOM_CHANCE) {\n      for (var k in oldPhenotype) {\n        if (k === 'sim') continue\n\n        var v = oldPhenotype[k]\n        r[k] = (Math.random() < PROPERTY_MUTATION_CHANCE) ? r[k] : v\n      }\n    }\n    return r\n  },\n\n  crossover: function(phenotypeA, phenotypeB, strategy) {\n    var p1 = {}\n    var p2 = {}\n\n    for (var k in strategy) {\n      if (k === 'sim') continue\n      if (k === 'minTrades') continue\n      if (k === 'fitnessCalcType') continue\n\n      p1[k] = Math.random() <= PROPERTY_CROSSOVER_CHANCE ? phenotypeA[k] : phenotypeB[k]\n      p2[k] = Math.random() <= PROPERTY_CROSSOVER_CHANCE ? phenotypeA[k] : phenotypeB[k]\n    }\n\n    return [p1, p2]\n  },\n\n  fitness: function(phenotype) {\n    if (typeof phenotype.sim === 'undefined') return 0\n    let rate = 0\n    if (phenotype.fitnessCalcType == 'profitwl')\n    {\n      let profit = phenotype.sim.profit + (phenotype.sim.assetCapital * phenotype.sim.lastAssestValue)\n      // if minTrades is set use an alternate fitness calculation to hone in on a trade stratagy that has the minimum trade count\n      // once found use the normal fitness strsategy to find the best parameters.\n      if (phenotype.minTrades > 0) \n      {\n        if (phenotype.sim.wins < phenotype.minTrades && phenotype.sim.wins == 0) return 0.0\n        if (phenotype.sim.wins < phenotype.minTrades) return ((phenotype.sim.wins/phenotype.minTrades)+profit)/100\n      }\n      let wlRatio = phenotype.sim.wins / phenotype.sim.losses\n      if (isNaN(wlRatio)) { // zero trades will result in 0/0 which is NaN\n        wlRatio = 0\n      }\n      let wlRatioRate = 1.0 / (1.0 + Math.pow(Math.E,-wlRatio))\n      rate = (profit * wlRatioRate )\n\n    }\n    else  if (phenotype.fitnessCalcType == 'profit')\n    {\n      //let profit = phenotype.sim.profit\n      let profit = phenotype.sim.profit + (phenotype.sim.assetCapital * phenotype.sim.lastAssestValue)\n      // if minTrades is set use an alternate fitness calculation to hone in on a trade stratagy that has the minimum trade count\n      // once found use the normal fitness strsategy to find the best parameters.\n      if (phenotype.minTrades > 0) \n      {\n        if (phenotype.sim.wins < phenotype.minTrades && phenotype.sim.wins == 0) return 0.0\n        if (phenotype.sim.wins < phenotype.minTrades) return ((phenotype.minTrades)+profit)/1000\n      }\n\n      rate = profit\n    }  \n    if (phenotype.fitnessCalcType == 'wl')\n    {\n      //let vsBuyHoldRate = phenotype.sim.profit \n      // if minTrades is set use an alternate fitness calculation to hone in on a trade stratagy that has the minimum trade count\n      // once found use the normal fitness strsategy to find the best parameters.\n      if (phenotype.minTrades > 0) \n      {\n        if (phenotype.sim.wins < phenotype.minTrades && phenotype.sim.wins == 0) return 0.0\n        if (phenotype.sim.wins < phenotype.minTrades) return (phenotype.sim.wins/phenotype.minTrades)/100\n      }\n      let wlRatio = phenotype.sim.wins / phenotype.sim.losses\n      if (isNaN(wlRatio)) { // zero trades will result in 0/0 which is NaN\n        wlRatio = 0\n      }\n      let wlRatioRate = 1.0 / (1.0 + Math.pow(Math.E,-wlRatio))\n      rate = ( wlRatioRate )\n    }\n    else\n    {\n\n      let vsBuyHoldRate = ((phenotype.sim.vsBuyHold + 100) / 50)\n      if (phenotype.minTrades > 0) \n      {\n        if (phenotype.sim.wins < phenotype.minTrades && phenotype.sim.wins == 0) return 0.0\n        if (phenotype.sim.wins < phenotype.minTrades) return ((phenotype.sim.wins/phenotype.minTrades)+vsBuyHoldRate)/100\n      }\n      let wlRatio = phenotype.sim.wins / phenotype.sim.losses\n      if (isNaN(wlRatio)) { // zero trades will result in 0/0 which is NaN\n        wlRatio = 1\n      }\n      let wlRatioRate = 1.0 / (1.0 + Math.pow(Math.E, -wlRatio))\n      rate = vsBuyHoldRate * wlRatioRate\n   \n    }\n\n    return rate\n    \n  },\n  \n\n  competition: function(phenotypeA, phenotypeB) {\n    // TODO: Refer to geneticalgorithm documentation on how to improve this with diverstiy\n    return module.exports.fitness(phenotypeA) >= module.exports.fitness(phenotypeB)\n  },\n\n  Range: function(min, max) {\n    var r = {\n      type: 'int',\n      min: min,\n      max: max\n    }\n    return r\n  },\n\n  Range0: function(min, max) {\n    var r = {\n      type: 'int0',\n      min: min,\n      max: max\n    }\n    return r\n  },\n\n  RangeFactor: function(min, max, factor) {\n    var r = {\n      type: 'intfactor',\n      min: min,\n      max: max,\n      factor: factor\n    }\n    return r\n  },\n\n  RangeFloat: function(min, max) {\n    var r = {\n      type: 'float',\n      min: min,\n      max: max\n    }\n    return r\n  },\n\n  RangePeriod: function(min, max, period_length) {\n    var r = {\n      type: 'period_length',\n      min: min,\n      max: max,\n      period_length: period_length\n    }\n    return r\n  },\n\n  RangeMaType: function() {\n    var r = {\n      type: 'listOption',\n      options: ['SMA', 'EMA', 'WMA', 'DEMA', 'TEMA', 'TRIMA', 'KAMA', 'MAMA', 'T3']\n    }\n    return r\n  },\n\n  ListOption: function(options) {\n    var r = {\n      type: 'listOption',\n      options: options\n    }\n    return r\n  }\n\n}"
  },
  {
    "path": "lib/rsi.js",
    "content": "var precisionRound = function(number, precision) {\n  var factor = Math.pow(10, precision)\n  return Math.round(number * factor) / factor\n}\nmodule.exports = function rsi (s, key, length) {\n  if (s.lookback.length >= length) {\n    var avg_gain = s.lookback[0][key + '_avg_gain']\n    var avg_loss = s.lookback[0][key + '_avg_loss']\n    if (typeof avg_gain === 'undefined') {\n      var gain_sum = 0\n      var loss_sum = 0\n      var last_close\n      s.lookback.slice(0, length).reverse().forEach(function (period) {\n        if (last_close) {\n          if (period.close > last_close) {\n            gain_sum += period.close - last_close\n          }\n          else {\n            loss_sum += last_close - period.close\n          }\n        }\n        last_close = period.close\n      })\n      s.period[key + '_avg_gain'] = gain_sum / length\n      s.period[key + '_avg_loss'] = loss_sum / length\n    }\n    else {\n      var current_gain = s.period.close - s.lookback[0].close\n      s.period[key + '_avg_gain'] = ((avg_gain * (length - 1)) + (current_gain > 0 ? current_gain : 0)) / length\n      var current_loss = s.lookback[0].close - s.period.close\n      s.period[key + '_avg_loss'] = ((avg_loss * (length - 1)) + (current_loss > 0 ? current_loss : 0)) / length\n    }\n\n    if(s.period[key + '_avg_loss'] == 0) {\n      s.period[key] = 100\n    } else {\n      var rs = s.period[key + '_avg_gain'] / s.period[key + '_avg_loss']\n      s.period[key] = precisionRound(100 - (100 / (1 + rs)), 2)\n    }\n  }\n}\n\n"
  },
  {
    "path": "lib/sar.js",
    "content": "module.exports = function sar(s, key, initAccel, deltaAccel, accelMax) {\n\n  if (s.lookback.length < 2) {\n    return\n  }\n\n  // SAR#\n  if (!s.lookback[0][key + '_sar#']) {\n    s.period[key + '_sar#'] = -1\n  } else {\n    if (s.lookback[0][key + '_sar#'] < 0) {\n      if (s.period[key + '_tsar'] < s.period.high)\n        s.period[key + '_sar#'] = 1\n      else\n        s.period[key + '_sar#'] = s.lookback[0][key + '_sar#'] - 1\n    } else {\n      if (s.period[key + '_tsar'] > s.period.low)\n        s.period[key + '_sar#'] = -1\n      else\n        s.period[key + '_sar#'] = s.lookback[0][key + '_sar#'] + 1\n    }\n  }\n\n  // EP\n  if (s.period[key + '_sar#'] < 0) {\n    if (s.period[key + '_sar#'] == -1) {\n      s.period[key + '_ep'] = s.period.low\n    } else {\n      s.period[key + '_ep'] = Math.min(s.period.low, s.lookback[0][key + '_ep'])\n    }\n  } else {\n    if (s.period[key + '_sar#'] == 1) {\n      s.period[key + '_ep'] = s.period.high\n    } else {\n      s.period[key + '_ep'] = Math.max(s.period.high, s.lookback[0][key + '_ep'])\n    }\n  }\n\n  // AF\n  if (Math.abs(s.period[key + '_sar#']) == 1) {\n    s.period[key + '_af'] = initAccel\n  } else if (s.period[key + '_ep'] == s.lookback[0][key + '_ep']) {\n    s.period[key + '_af'] = s.lookback[0][key + '_af']\n  } else {\n    s.period[key + '_af'] = Math.min(accelMax, deltaAccel + s.lookback[0][key + '_af'])\n  }\n\n  // tentative sar\n  if (s.lookback[0][key + '_sar#'] < 0) {\n    s.period[key + '_tsar'] = Math.max(s.lookback[0][key] + s.lookback[0][key + '_af'] * (s.lookback[0][key + '_ep'] - s.lookback[0][key]), s.lookback[0].high, s.lookback[1].high)\n  } else {\n    s.period[key + '_tsar'] = Math.min(s.lookback[0][key] + s.lookback[0][key + '_af'] * (s.lookback[0][key + '_ep'] - s.lookback[0][key]), s.lookback[0].low, s.lookback[1].low)\n  }\n\n  // SAR\n  if (!s.lookback[0][key]) {\n    if (s.period[key + '_sar#'] < 0) {\n      s.period[key] = s.lookback[0].high\n    } else {\n      s.period[key] = s.lookback[0].low\n    }\n  } else if (s.period[key + '_sar#'] == -1) {\n    s.period[key] = Math.max(s.lookback[0][key + '_ep'], s.period.high)\n  } else if (s.period[key + '_sar#'] == 1) {\n    s.period[key] = Math.min(s.lookback[0][key + '_ep'], s.period.low)\n  } else {\n    s.period[key] = s.period[key + '_tsar']\n  }\n}\n\n"
  },
  {
    "path": "lib/services/collection-service.js",
    "content": "module.exports = function (conf) {\n  return {\n    getTrades: () => {\n      conf.db.mongo.collection('trades').createIndex({selector: 1, time: 1})\n      return conf.db.mongo.collection('trades')\n    },\t\n\n    getResumeMarkers: () => {\n      conf.db.mongo.collection('resume_markers').createIndex({selector: 1, to: -1})\n      return conf.db.mongo.collection('resume_markers')\n    },\n\n    getBalances: () => {\n      return conf.db.mongo.collection('balances')\n    },\n\n    getSessions: () => {\n      return conf.db.mongo.collection('sessions')\n    },\n\n    getPeriods: () => {\n      return conf.db.mongo.collection('periods')\n    },\n\n    getMyTrades: () => {\n      return conf.db.mongo.collection('my_trades')\n    },\n\n    getSimResults: () => {\n      return conf.db.mongo.collection('sim_results')\n    }\n  }\n}\n\n"
  },
  {
    "path": "lib/services/consume-and-process-service.js",
    "content": "var events = require('events'),\n  resumeMarkersService = require('./resume-marker-service')\n\n/**\n  This service makes it easy do the the two step process of getting a bunch of resources,\n  and then processing them.\n\n  You supply a function which calls the API, calls the database, reads a file, a socket, whatever.\n    When the records are retrieved, they are pushed into the supplied queue.\n\n  You supply a function which dequeues the queue, and does something with the records. Somthing like\n    calculating summary data, and/or storing them in a database.\n\n  Both functions you supply can exit with a code that indicates they are done, at which point the \n    consume-and-process process ends.\n**/\n\nmodule.exports = function (conf) {\n\n  var theService = {} \n  var onConsumeFunc\n  var onProcessFunc\n  var afterOnConsumeFunc\n  var afterOnProcessFunc\n\n  var Queue = require('../_data-structures/Queue.js')\n\n  var _emitter = new events.EventEmitter\n\n  theService.setOnConsumeFunc = (func) => {\n    onConsumeFunc = func\n  }\n\n  theService.setOnProcessFunc = (func) => {\n    onProcessFunc = func\n  }\n\n  theService.setAfterOnConsumeFunc = (func) => {\n    afterOnConsumeFunc = func\n  }\n\n  theService.setAfterOnProcessFunc = (func) => {\n    afterOnProcessFunc = func\n  }\n\n  theService.go = (targetTimeInMillis) => {\n    var rtn = new Promise((resolve/*, reject*/) => {\n      var resumeMarkerService = resumeMarkersService(conf)\n\n      _emitter = new events.EventEmitter\n      var _queue = new Queue()\n      _emitter.on('cp_consume', (record) => {\n        onConsumeFunc(record, _queue, (err, rtnCode, mostRecentlyProcessedRecordId) => {\n          if (rtnCode !== undefined) {\n            if (afterOnConsumeFunc)\n              afterOnConsumeFunc(mostRecentlyProcessedRecordId)\n\n            _emitter.emit(rtnCode, mostRecentlyProcessedRecordId)\n          }\n        })\n      })\n\n      _emitter.on('cp_process', () => {\n        onProcessFunc(targetTimeInMillis, _queue, resumeMarkerService.ping, (err, stopProcessingConditionReached, exitRecordId, data) => {\n          if (afterOnProcessFunc) {\n            data.pingCount = resumeMarkerService.getPingCount()\n            afterOnProcessFunc(exitRecordId, data)\n          }\n\n          if (stopProcessingConditionReached) {\n            setImmediate(() => {\n              resumeMarkerService.flush(() => {\n                _emitter.emit('cp_exit', exitRecordId)\n              })\n            })\n          } else {\n            setImmediate(() => {\n              resumeMarkerService.flush(() => {\n                _emitter.emit('cp_consume', exitRecordId)\n              })\n            })\n          }\n        })\n      })\n\n      _emitter.on('cp_exit', (mostRecentlyProcessedRecordId) => {\n        resumeMarkerService.flush(() => {\n          resolve(mostRecentlyProcessedRecordId)\n        })\n      })\n\n      // Get things started\n      resumeMarkerService.load(() => {\n        _emitter.emit('cp_consume', undefined)\n      })\n      \n    })\n\n    return rtn\n  }\n\n  return theService\n}"
  },
  {
    "path": "lib/services/exchange-service.js",
    "content": "var objectifySelector = require('../objectify-selector')\nvar path = require('path')\n\nmodule.exports = function (conf) {    \n  // ASSUMES c.selector has been set, for example, with whatever command line parameters there may have been. \n  //  Not that this class would know anything about command line parameters. It just assumes.\n  var selector = objectifySelector(conf.selector)\n\n  var theService = {}\n\n  theService.BACKWARD = 'backward'\n  theService.FORWARD = 'forward'\n\n  function _getExchange(exchangeId) {\n    \n    if (exchangeId === undefined) {\n      exchangeId = selector.exchange_id\n    }\n    var rtn = undefined\n    try {\n      rtn = require(path.resolve(__dirname, `../../extensions/exchanges/${exchangeId}/exchange`))(conf)\n    }\n    catch(err) {\n      // hold comment\n    }\n\n    return rtn\n  }\n\n  theService.getExchange = (exchangeId) => {\n    return _getExchange(exchangeId)\n  }\n\n  theService.getSelector = () => {\n    return selector\n  }\n\n  theService.isTimeSufficientlyLongAgo = (time, targetTimeInMillis) => {\n    if (time === undefined) \n      return false\n\n    var exchange = _getExchange()\n    var rtn = false\n\n    // TODO: phase out in favor of calling exchange.getDirection()\n    if (exchange.historyScan === 'backward')\n      rtn =  time < targetTimeInMillis\n    else\n      rtn = time > targetTimeInMillis\n\n    return rtn\n  }\n\n  return theService\n}"
  },
  {
    "path": "lib/services/resume-marker-service.js",
    "content": "var collectionService = require('./collection-service'),\n  objectifySelector = require('../objectify-selector'),\n  crypto = require('crypto')\n\nmodule.exports = function (conf) {\n    \n  // ASSUMES c.selector has been set, for example, with whatever command line parameters there may have been. \n  //  Not that this class would know anything about command line parameters. It just assumes.\n  var selector = objectifySelector(conf.selector)\n\n  var collectionServiceInstance = collectionService(conf)\n\n  var theService = {}\n\n  var ranges = []\n  var direction = 'backward'\n\n  var pingCount = 0\n\n  theService.setDirection = (d) => {\n    direction = d\n  }\n\n  theService.getRanges = () => {\n    return ranges\n  }\n\n  function _createNewRange(obj) {\n    var range = {from: obj.trade_id, to: obj.trade_id, oldest_time: obj.time, newest_time: obj.time, selector: selector.normalized}\n\n    ranges.push(range)\n    if (direction == 'backward') {\n      ranges = ranges.sort((a, b) => { return b.from - a.from })\n    } else {\n      ranges = ranges.sort((a, b) => { return a.to - b.to })\n    }\n\n    range.id = crypto.randomBytes(4).toString('hex')\n    range._id = range.id\n\n    return range\n  }\n\n  theService.createNewRange = (obj) => {\n    return _createNewRange(obj)\n  }\n\n  function _isWithinRange(obj) {\n    var id = obj.trade_id\n\n    var record = ranges.find((record) => {\n      return record.from <= id && record.to >= id \n    })\n\n    return record\n  }\n\n  theService.isWithinRange = (obj) => {\n    return _isWithinRange(obj)\n  }\n\n  function _isWithinDistanceOfOneOfAnyRange(obj) {\n    var id = obj.trade_id\n\n    var record = ranges.find((record) => {\n      return (record.from - 1) <= id && (record.to + 1) >= id \n    })\n\n    return record\n  }\n\n  theService.isWithinOneOfAnyRange = (obj) => {\n    return _isWithinDistanceOfOneOfAnyRange(obj)\n  }\n\n  function _extendARange(obj) {\n    var record = ranges.find((record) => {\n      return (record.from - 1) <= obj.trade_id && (record.to + 1) >= obj.trade_id \n    })\n\n    if (record !== undefined) {\n      if (direction == 'backward') {\n        record.from = obj.trade_id\n        record.oldest_time = obj.time\n\n      } else {\n        record.to = obj.trade_id\n        record.newest_time = obj.time\n      }\n    }\n\n    return record\n  }\n\n  theService.extendARange = (obj) => {\n    return _extendARange(obj)\n  }\n\n  function _merge() {\n    var rtn = false // true when we have gone through the list, and done one merge. Indicates another merge might be fruitful.\n\n    if (ranges.length > 1) {\n      var curr = 0\n      var next = 1\n      var newRanges = []\n\n      do {\n        if (direction == 'backward') {\n\n          if (ranges[curr].from === (ranges[next].to + 1)) {\n            ranges[curr].from = ranges[next].from\n            ranges[curr].oldest_time = ranges[next].oldest_time\n                        \n            newRanges.push(ranges[curr])\n\n            curr += 2\n            next += 2\n\n            rtn = true\n          } else {\n            newRanges.push(ranges[curr])\n            curr += 1\n\n            if (next+1 >= ranges.length)\n              newRanges.push(ranges[next])\n\n            next += 1\n          }\n        } else {\n\n          if (ranges[curr].to === (ranges[next].from - 1)) {\n            ranges[curr].to = ranges[next].to\n            ranges[curr].newest_time = ranges[next].newest_time\n                        \n            newRanges.push(ranges[curr])\n\n            curr += 2\n            next += 2\n\n            rtn = true\n          } else {\n            newRanges.push(ranges[curr])\n            curr += 1\n\n            if (next+1 >= ranges.length)\n              newRanges.push(ranges[next])\n\n            next += 1\n          }\n        }\n      } while (next < ranges.length)\n\n      ranges = newRanges\n    }\n\n    return rtn\t\t\n  }\n\n  theService.merge = () => {\n    return _merge()\n  }\n\n  theService.ping = (obj) => {\n    var theFarthestIdInRange = -1\n\n    var rtn = _isWithinRange(obj)\n    if (rtn !== undefined) {\n      if (direction == 'backward')\n        theFarthestIdInRange = rtn.from\n      else\n        theFarthestIdInRange = rtn.to\n\n    } else{\n      rtn = _isWithinDistanceOfOneOfAnyRange(obj)\n\n      if (rtn !== undefined) {\n        rtn = _extendARange(obj)\n                \n        while (_merge())\n          rtn = ranges[0]\n\n      } else {\n        rtn = _createNewRange(obj)\n      }\n\n      if (direction == 'backward')\n        theFarthestIdInRange = rtn.from\n      else\n        theFarthestIdInRange = rtn.to\n\n      pingCount++\n    }\n\n    return theFarthestIdInRange\n  }\n\n  theService.load = (cb) => {\n    collectionServiceInstance.getResumeMarkers().find({selector: selector.normalized}).toArray(function (err, data) {\n      ranges = data\n            \n      if (cb !== undefined)\n        cb()\n    })\n  }\n\n  theService.flush = (cb) => {\n    if (ranges.length > 0) {\n      collectionServiceInstance.getResumeMarkers().deleteMany({selector: selector.normalized}, function(/*err, data*/) {\n        if (ranges.length > 1) {\n          collectionServiceInstance.getResumeMarkers().insertMany(ranges, function(err/*, data*/) { \n            if (err) throw err\n\n            if (cb !== undefined)\n              cb()\n          })\n        } else {\n          collectionServiceInstance.getResumeMarkers().insertOne(ranges[0], function(err/*, data*/) { \n            if (err) throw err\n\n            if (cb !== undefined)\n              cb()\n          })\n        }\n      })\n    } else {\n      if (cb !== undefined)\n        cb()\n    }\n  }\n\n  theService.getPingCount = () => {\n    return pingCount\n  }\n\n  return theService\n}"
  },
  {
    "path": "lib/services/trades-service.js",
    "content": "var collectionService = require('./collection-service'),\n  exchangeService = require('./exchange-service')\n\nmodule.exports = function (conf) {\n\n  var collectionServiceInstance = collectionService(conf)\n  var exchangeServiceInstance = exchangeService(conf)\n\n  var theService = {}\n\n  theService.getTrades = function (tradeId, queryAttributes, exchangeAttributes) {\n    if (queryAttributes === undefined)\n      queryAttributes = _getInitialQueryAttributes(tradeId)\n\n    if (exchangeAttributes === undefined)\n      exchangeAttributes = _getInitialExchangeAttributes(tradeId)\n\n    return new Promise(function (resolve/*, reject*/) {\n\n      //  check the database,\n      collectionServiceInstance.getTrades().find(queryAttributes).limit(100).toArray(function (err, data) {\n        if (data.length === 0) {\n          //  if not the database, then check the exchange's api\n          if (exchangeServiceInstance.getExchange().historyScanUsesTime) {\n\n            var id = _getFromOrToFromExchangeAttributes(exchangeAttributes)\n\n            if (id) {\n\n              // this exchange uses time to get its trades. So before we call the exchange for\n              //  this batch of trades, we'll need to get the trade object belonging to the ID\n              //  that was passed in\n\n              // TODO: We should just be able to pass the exchange the tradeId, and if it needs\n              //  to get the trade object, it would do it itself. That keeps this tradesService\n              //  more general.\n\n              var selectorNormalized = exchangeServiceInstance.getSelector().normalized\n\n              collectionServiceInstance.getTrades()\n                .findOne({id: selectorNormalized+'-'+id})\n                .then((result) => {\n                  _setFromOrToOnExchangeAttributesToTime(result, exchangeAttributes)\n                  resolveUsingExchangeServiceGetTrades()\n                })\n\t\t\t\t\t\t\t\n            } else {\n              resolveUsingExchangeServiceGetTrades()\n            }\n          } else {\n            resolveUsingExchangeServiceGetTrades()\n          }\n        } else {\n          resolve(data)\n        }\n      })\n\n      function resolveUsingExchangeServiceGetTrades() {\n        exchangeServiceInstance.getExchange().getTrades(exchangeAttributes, function(err, results) {\n          if (err) throw err\n\n          // add our internal id to the trade\n          results.map((trade) => {\n            trade.trade_id *= 1 // force trade id to a number\n            trade.selector = exchangeServiceInstance.getSelector().normalized\n            trade.id = trade.selector + '-' + trade.trade_id\n          })\n\n          resolve(results)\n        })\n      }\n    })\n  }\n\n  function _getInitialQueryAttributes(tradeId) {\n    var q = {}\n\n    var selectorNormalized = exchangeServiceInstance.getSelector().normalized\n\n    q.id = new RegExp('/^' + selectorNormalized + '/')\n\n    if (tradeId !== undefined)\n      q.trade_id = { $lt: tradeId }\n\n    return q\n  }\n\n  function _getInitialExchangeAttributes(tradeId) {\n    var q = {}\n\n    q.product_id = exchangeServiceInstance.getSelector().asset + '-' + exchangeServiceInstance.getSelector().currency\n\n    if (tradeId !== undefined){\n      if (exchangeServiceInstance.getExchange().historyScan == exchangeServiceInstance.BACKWARD) {\n        q.to = tradeId\n      } else {\n        q.from = tradeId\n      }\n    }\n\n    return q\n  }\n\n  theService.getInitialQueryAttributes = function(tradeId) {\n    return _getInitialQueryAttributes(tradeId)\n  }\n\n  theService.getInitialExchangeAttributes = function(tradeId) {\n    return _getInitialExchangeAttributes(tradeId)\n  }\n\n  function _getFromOrToFromExchangeAttributes(ea) {\n    if (exchangeServiceInstance.getExchange().historyScan == exchangeServiceInstance.BACKWARD) {\n      return ea.to\n    } else {\n      return ea.from\n    }\n  }\n\n  function _setFromOrToOnExchangeAttributesToTime(trade, ea) {\n    if (exchangeServiceInstance.getExchange().historyScan == exchangeServiceInstance.BACKWARD) {\n      ea.to = trade.time\n    } else {\n      ea.from = trade.time\n    }\n  }\n\n  return theService\n\t\n}"
  },
  {
    "path": "lib/slow_stochastic.js",
    "content": "module.exports = function slow_stochastic (s, key, k, d) {\n  if (!k) k = 14\n  if (!d) d = 3\n  if (s.lookback.length >= k + d * 2) {\n    let stochK = []\n    for (let j = 0; j < d; j++) {\n      let stochs = []\n      for (let i = 0; i < d; i++)\n        stochs.push((function(x, length) {\n          let low = [], high = []\n          x.slice(0, length).forEach(function (period) {\n            low.push(period.low)\n            high.push(period.high)\n          })\n          return 100 * (x[0].close - Math.min(...low)) / (Math.max(...high) - Math.min(...low))\n        })(s.lookback.slice(i+j), k))\n      stochK.push(stochs.reduce((sum, cur) => { return sum + cur }, 0) / d)\n    }\n    let stochD = stochK.reduce((sum, cur) => { return sum + cur }, 0) / d\n    s.period[key] = { K: stochK[0], D: stochD }\n  }\n}\n\n"
  },
  {
    "path": "lib/sma.js",
    "content": "module.exports = function sma (s, key, length, source_key) {\n  if (!source_key) source_key = 'close'\n  if (s.lookback.length >= length) {\n    let SMA = s.lookback\n      .slice(0, length)\n      .reduce((sum, cur) => {\n        return sum + cur[source_key]\n      }, 0)\n\n    s.period[key] = SMA / length\n  }\n}\n\n"
  },
  {
    "path": "lib/srsi.js",
    "content": "var mathjs = require('mathjs')\nvar rsi = require('./rsi')\n\nmodule.exports = function srsi(s, key, rsi_periods, k_periods, d_periods) {\n  let samplesRequiredForStochRSI = rsi_periods + k_periods + 1\n\n  if (s.lookback.length >= samplesRequiredForStochRSI - 1) {\n    let RSI = []\n\n    if (typeof s.period.rsi !== 'undefined') {\n      RSI.push(s.period.rsi)\n    } else {\n      rsi(s, 'rsi', rsi_periods)\n      RSI.push(s.period.rsi)\n    }\n\n    s.lookback.slice(0, samplesRequiredForStochRSI - 1).forEach(function (period) {\n      if (period.rsi) {\n        RSI.push(period.rsi)\n      }\n    })\n\n    RSI.reverse()\n\n    if(RSI.length >= samplesRequiredForStochRSI) {\n      let stochRSI = []\n      for(let i = 0; i < (k_periods + d_periods - 1); i++) {\n        let rsiForPeriod = RSI.slice(i, rsi_periods + i)\n        let highestRSI = Math.max(...rsiForPeriod)\n        let lowestRSI = Math.min(...rsiForPeriod)\n        if(highestRSI == lowestRSI) {\n          stochRSI.push(0)\n        } else {\n          stochRSI.push(((RSI[(rsi_periods - 1) + i] - lowestRSI) / (highestRSI - lowestRSI)) * 100)\n        }\n      }\n\n      stochRSI.reverse()\n\n      let percentK = []\n      for(let i = 0; i < k_periods; i++) {\n        let kData = stochRSI.slice(i, k_periods + i)\n        if(kData.length == k_periods) {\n          percentK.push(mathjs.mean(kData))\n        }\n      }\n\n      let percentD = []\n      for(let i = 0; i < d_periods; i++) {\n        let dData = percentK.slice(i, d_periods + i)\n        if(dData.length == d_periods) {\n          percentD.push(mathjs.mean(dData))\n        }\n      }\n\n      s.period[key + '_K'] = percentK[0] == 0 ? 0 : mathjs.round(percentK[0], 2)\n      s.period[key + '_D'] = percentD[0] == 0 ? 0 : mathjs.round(percentD[0], 2)\n\n      //console.log('lib.srsi: For RSI', RSI[RSI.length - 1], '-', '%K is', s.period[key + '_K'], ', %D is', s.period[key + '_D'], ', period info', s.period);\n    }\n  }\n}\n\n"
  },
  {
    "path": "lib/stddev.js",
    "content": "module.exports = function stddev (s, key, length, source_key) {\n  if (typeof s.period[source_key] === 'number') {\n    var sum = s.period[source_key]\n    var sum_len = 1\n    for (var idx = 0; idx < length; idx++) {\n      if (typeof s.lookback[idx][source_key] === 'number') {\n        sum += s.lookback[idx][source_key]\n        sum_len++\n      }\n      else {\n        break\n      }\n    }\n    var avg = sum / sum_len\n    var var_sum = 0\n    for (idx = 0; idx < sum_len - 1; idx++) {\n      var_sum += Math.pow(s.lookback[idx][source_key] - avg, 2)\n    }\n    var variance = var_sum / sum_len\n    s.period[key] = Math.sqrt(variance)\n  }\n}\n"
  },
  {
    "path": "lib/ta_bollinger.js",
    "content": "var talib = require('talib')\n\nmodule.exports = function ta_bollinger(s, key, rsi_periods, DevUp, DevDn, d_ma_type) \n{\n  return new Promise(function(resolve, reject) {\n\n    //dont calculate until we have enough data\n    if (s.lookback.length >= rsi_periods) {\n\n      let tmpMarket = s.lookback.slice(0, 1000).map(x=>x.close)\n      tmpMarket.reverse()\n      //add current period\n      tmpMarket.push(s.period.close)\n    \n      //doublecheck length.\n      if (tmpMarket.length >= rsi_periods) {\n        // extract int from string input for ma_type\n        let optInMAType = getMaTypeFromString(d_ma_type)\n        talib.execute({\n          name: 'BBANDS',\n          startIdx: tmpMarket.length-1 ,\n          endIdx: tmpMarket.length -1,\n          inReal: tmpMarket,\n          optInTimePeriod: rsi_periods,  //RSI 14 default\n          optInNbDevUp: DevUp, // \"Deviation multiplier for upper band\" Real Default 2\n          optInNbDevDn: DevDn, //\"Deviation multiplier for lower band\" Real Default 2\n          optInMAType:optInMAType // \"Type of Moving Average\" default 0 \n\n        }, function (err, result) {\n          if (err) {\n            console.log(err)\n            reject(err, result)\n            return\n          }\n\n          resolve({\n            outRealUpperBand: result.result.outRealUpperBand,\n            outRealMiddleBand: result.result.outRealMiddleBand,\n            outRealLowerBand: result.result.outRealLowerBand\n          })\n\n        })\n      }\n      else {\n        reject('MarketLenth not populated enough')\n      }\n    }\n    else{\n      reject('MarketLenth not populated enough')\n    }\n    \n  })\n}\n\n/**\n     * Extract int from string input eg (SMA = 0)\n     *\n     * @see https://github.com/oransel/node-talib\n     * @see https://github.com/markcheno/go-talib/blob/master/talib.go#L20\n     */\nfunction getMaTypeFromString(maType) {\n  // no constant in lib?\n    \n  switch (maType.toUpperCase()) {\n  case 'SMA':\n    return 0\n  case 'EMA':\n    return 1\n  case 'WMA':\n    return 2\n  case 'DEMA':\n    return 3\n  case 'TEMA':\n    return 4\n  case 'TRIMA':\n    return 5\n  case 'KAMA':\n    return 6\n  case 'MAMA':\n    return 7\n  case 'T3':\n    return 8\n  default:\n    return 0\n  }\n}\n"
  },
  {
    "path": "lib/ta_ema.js",
    "content": "var talib = require('talib')\n\nmodule.exports = function ta_ema (s, length) {\n  return new Promise(function(resolve, reject) {\n    // create object for talib. only close is used for now but rest might come in handy\n    if (!s.marketData) {\n      s.marketData = { open: [], close: [], high: [], low: [], volume: [] }\n    }\n\n    if (s.lookback.length > s.marketData.close.length) {\n      for (var i = (s.lookback.length - s.marketData.close.length) - 1; i >= 0; i--) {\n        s.marketData.close.push(s.lookback[i].close)\n      }\n\n      //dont calculate until we have enough data\n      if (s.marketData.close.length >= length) {\n        //fillup marketData for talib.\n        //this might need improvment for performance.\n        //for (var i = 0; i < length; i++) {\n        //  s.marketData.close.push(s.lookback[i].close);\n        //}\n        //fillup marketData for talib.\n        let tmpMarket = s.marketData.close.slice()\n\n        //add current period\n        tmpMarket.push(s.period.close)\n\n        //doublecheck length.\n        if (tmpMarket.length >= length) {\n          talib.execute({\n            name: 'EMA',\n            startIdx: 0,\n            endIdx: tmpMarket.length -1,\n            inReal: tmpMarket,\n            optInTimePeriod: length\n          }, function (err, result) {\n            if (err) {\n              console.log(err)\n              reject(err, result)\n              return\n            }\n\n            //Result format: (note: outReal can have multiple items in the array)\n            // {\n            //   begIndex: 8,\n            //   nbElement: 1,\n            //   result: { outReal: [ 1820.8621111111108 ] }\n            // }\n            resolve({\n              'outReal': result.result.outReal[(result.nbElement - 1)],\n            })\n          })\n        }\n      } else {\n        resolve()\n      }\n    }\n  })\n}\n"
  },
  {
    "path": "lib/ta_macd.js",
    "content": "var talib = require('talib')\n\nmodule.exports = function macd (s, slow_period, fast_period, signal_period) {\n  return new Promise(function(resolve, reject) {\n    // check parameters\n    // if (fast_period > slow_period) {\n    //   console.log('incorrect parameters MACD. (fast_period < slow_period || signal_period > fast_period)')\n    //   return;\n    // }\n\n    //create object for talib. only close is used for now but rest might come in handy\n    if (!s.marketData) {\n      s.marketData = { open: [], close: [], high: [], low: [], volume: [] }\n    }\n    if (s.lookback.length > s.marketData.close.length) {\n      for (var i = (s.lookback.length - s.marketData.close.length) - 1; i >= 0; i--) {\n        s.marketData.close.push(s.lookback[i].close)\n      }\n    }\n\n    let periods_necessary = slow_period + signal_period - 1\n    //dont calculate until we have enough data\n\n    if (s.marketData.close.length >= periods_necessary) {\n      // fillup marketData for talib.\n      let tmpMarket = s.marketData.close.slice()\n\n      // add current period\n      tmpMarket.push(s.period.close)\n\n      talib.execute({\n        name: 'MACD',\n        startIdx: 0,\n        endIdx: tmpMarket.length - 1,\n        inReal: tmpMarket,\n        optInFastPeriod: fast_period,\n        optInSlowPeriod: slow_period,\n        optInSignalPeriod: signal_period\n      }, function (err, result) {\n        if (err) {\n          reject(err)\n          console.log(err)\n          return\n        }\n        //Result format: (note: outReal  can have multiple items in the array)\n        // {\n        //   begIndex: 8,\n        //   nbElement: 1,\n        //   result: { outReal: [ 1820.8621111111108 ] }\n        // }\n        resolve({\n          'macd': result.result.outMACD[(result.nbElement - 1)],\n          'macd_histogram': result.result.outMACDHist[(result.nbElement - 1)],\n          'macd_signal': result.result.outMACDSignal[(result.nbElement - 1)],\n        })\n      })\n    } else {\n      resolve()\n    }\n  })\n}\n"
  },
  {
    "path": "lib/ta_macd_ext.js",
    "content": "var talib = require('talib')\n\nmodule.exports = function ta_macd_ext (s, slow_period, fast_period, signal_period, fast_ma_type, slow_ma_type, signal_ma_type) {\n  return new Promise(function(resolve, reject) {\n    // create object for talib. only close is used for now but rest might come in handy\n    if (!s.marketData) {\n      s.marketData = { open: [], close: [], high: [], low: [], volume: [] }\n    }\n\n    if (s.lookback.length > s.marketData.close.length) {\n      for (var i = (s.lookback.length - s.marketData.close.length) - 1; i >= 0; i--) {\n        s.marketData.close.push(s.lookback[i].close)\n      }\n    }\n\n    var periods_necessary = slow_period + signal_period - 1\n    // Dont calculate until we have enough data\n\n    if (s.marketData.close.length >= periods_necessary) {\n      //fillup marketData for talib.\n      var tmpMarket = s.marketData.close.slice()\n\n      //add current period\n      tmpMarket.push(s.period.close)\n\n      talib.execute({\n        name: 'MACDEXT',\n        startIdx: 0,\n        endIdx: tmpMarket.length -1,\n        inReal: tmpMarket,\n        optInFastPeriod: fast_period,\n        optInSlowPeriod: slow_period,\n        optInSignalPeriod: signal_period,\n        optInFastMAType: getMaTypeFromString(fast_ma_type),\n        optInSlowMAType: getMaTypeFromString(slow_ma_type),\n        optInSignalMAType: getMaTypeFromString(signal_ma_type),\n      }, function (err, result) {\n        if (err) {\n          reject(err)\n          return\n        }\n        // Result format: (note: outReal  can have multiple items in the array)\n        // {\n        //   begIndex: 8,\n        //   nbElement: 1,\n        //   result: { outReal: [ 1820.8621111111108 ] }\n        // }\n        resolve({\n          'macd': result.result.outMACD[(result.nbElement - 1)],\n          'macd_histogram': result.result.outMACDHist[(result.nbElement - 1)],\n          'macd_signal': result.result.outMACDSignal[(result.nbElement - 1)],\n        })\n      })\n    } else {\n      resolve()\n    }\n  })\n}\n\n/**\n   * Extract int from string input eg (SMA = 0)\n   *\n   * @see https://github.com/oransel/node-talib\n   * @see https://github.com/markcheno/go-talib/blob/master/talib.go#L20\n   */\nfunction getMaTypeFromString(maType) {\n  // no constant in lib?\n\n  switch (maType.toUpperCase()) {\n  case 'SMA':\n    return 0\n  case 'EMA':\n    return 1\n  case 'WMA':\n    return 2\n  case 'DEMA':\n    return 3\n  case 'TEMA':\n    return 4\n  case 'TRIMA':\n    return 5\n  case 'KAMA':\n    return 6\n  case 'MAMA':\n    return 7\n  case 'T3':\n    return 8\n  default:\n    return 0\n  }\n}\n\n"
  },
  {
    "path": "lib/ta_ppo.js",
    "content": "var talib = require('talib')\n\nmodule.exports = function ppo(s, slow_period, fast_period, signal_period, ma_type) {\n  return new Promise(function(resolve, reject) {\n    // create object for talib. only close is used for now but rest might come in handy\n    if (!s.marketData) {\n      s.marketData = { open: [], close: [], high: [], low: [], volume: [] }\n    }\n\n    if (s.lookback.length > s.marketData.close.length) {\n      for (var i = (s.lookback.length - s.marketData.close.length) - 1; i >= 0; i--) {\n        s.marketData.close.push(s.lookback[i].close)\n      }\n    }\n\n    // dont calculate until we have enough data\n    let periods_necessary = slow_period + signal_period - 1\n\n    if (s.marketData.close.length < periods_necessary) {\n      resolve()\n      return\n    }\n\n    let tmpMarket = s.marketData.close.slice()\n\n    // add current period\n    tmpMarket.push(s.period.close)\n\n    // extract int from string input for ma_type\n    let optInMAType = getMaTypeFromString(ma_type)\n\n    talib.execute({\n      name: 'PPO',\n      startIdx: 0,\n      endIdx: tmpMarket.length -1,\n      inReal: tmpMarket,\n      optInFastPeriod: fast_period,\n      optInSlowPeriod: slow_period,\n      optInSignalPeriod: signal_period,\n      optInMAType: optInMAType\n    }, function (err, result) {\n      if (err) {\n        reject(err, result)\n        return\n      }\n\n      resolve(result.result.outReal[(result.nbElement - 1)])\n    })\n  })\n}\n\n/**\n   * Extract int from string input eg (SMA = 0)\n   *\n   * @see https://github.com/oransel/node-talib\n   * @see https://github.com/markcheno/go-talib/blob/master/talib.go#L20\n   */\nfunction getMaTypeFromString(maType) {\n  // no constant in lib?\n\n  switch (maType.toUpperCase()) {\n  case 'SMA':\n    return 0\n  case 'EMA':\n    return 1\n  case 'WMA':\n    return 2\n  case 'DEMA':\n    return 3\n  case 'TEMA':\n    return 4\n  case 'TRIMA':\n    return 5\n  case 'KAMA':\n    return 6\n  case 'MAMA':\n    return 7\n  case 'T3':\n    return 8\n  default:\n    return 0\n  }\n}\n\n"
  },
  {
    "path": "lib/ta_stoch.js",
    "content": "var talib = require('talib')\n\nmodule.exports = function stoch(s, key, k_periods, sk_periods, k_ma_type, d_periods, d_ma_type, optMarket) \n{\n  return new Promise(function(resolve, reject) {\n  \n\n    let tmpMarket = optMarket\n    if (!tmpMarket)\n    {\n      \n      tmpMarket = s.lookback.slice(0, 1000)\n      tmpMarket.reverse()\n      //add current period\n      tmpMarket.push(s.period)\n    }\n\n    let tmpMarketHigh = tmpMarket.map(x => x.high)\n    let tmpMarketClose = tmpMarket.map(x => x.close)\n    let tmpMarketLow = tmpMarket.map(x => x.low)\n\n\n    if (tmpMarket.length >= Math.max(k_periods,d_periods,sk_periods) ) {\n\n\n\n\n      let optInSlowDMAType = getMaTypeFromString(d_ma_type)\n      let optInSlowKMAType = getMaTypeFromString(k_ma_type)\n      talib.execute({\n        name: 'STOCH',\n        startIdx:  0 ,\n        endIdx: tmpMarketClose.length - 1,\n        high:  tmpMarketHigh,\n        low: tmpMarketLow,\n        close: tmpMarketClose,            \n        optInFastK_Period:k_periods, // K 5 default\n        optInSlowK_Period:sk_periods, //Slow K 3 default\n        optInSlowK_MAType:optInSlowKMAType, //Slow K maType default 0\n        optInSlowD_Period:d_periods, // D 3 default\n        optInSlowD_MAType:optInSlowDMAType // type of Fast D default 0 \n\n      }, function (err, result) {\n        if (err) {\n          console.log(err)\n          reject(err, result)\n          return\n        }\n\n        \n        resolve({\n          k: result.result.outSlowK,\n          d: result.result.outSlowD\n        })\n      })\n\n    }\n    else\n    { \n      resolve()\n    }\n  })\n}\n\n/**\n     * Extract int from string input eg (SMA = 0)\n     *\n     * @see https://github.com/oransel/node-talib\n     * @see https://github.com/markcheno/go-talib/blob/master/talib.go#L20\n     */\nfunction getMaTypeFromString(maType) {\n  // no constant in lib?\n    \n  switch (maType.toUpperCase()) {\n  case 'SMA':\n    return 0\n  case 'EMA':\n    return 1\n  case 'WMA':\n    return 2\n  case 'DEMA':\n    return 3\n  case 'TEMA':\n    return 4\n  case 'TRIMA':\n    return 5\n  case 'KAMA':\n    return 6\n  case 'MAMA':\n    return 7\n  case 'T3':\n    return 8\n  default:\n    return 0\n  }\n}\n"
  },
  {
    "path": "lib/ta_stochrsi.js",
    "content": "var talib = require('talib')\n\nmodule.exports = function srsi(s, key, rsi_periods, k_periods, d_periods, d_ma_type, optMarket) \n{\n  return new Promise(function(resolve, reject) {\n  \n\n\n    // Returns the parameters needed to execute left comment for latter reference\n    //var o = talib.explain('STOCHRSI')\n\n    let tmpMarket = optMarket\n    if (!tmpMarket)\n    {\n      tmpMarket = s.lookback.slice(0, 1000).map(x=>x.close)\n      tmpMarket.reverse()\n      //add current period\n      tmpMarket.push(s.period.close)\n    }\n    else\n    {\n      tmpMarket = tmpMarket.map(x=>x.close)\n    }\n\n\n    //dont calculate until we have enough data\n    if (tmpMarket.length > rsi_periods) {\n       \n      //doublecheck length.\n      if (tmpMarket.length >= rsi_periods) {\n        // extract int from string input for ma_type\n        let optInMAType = getMaTypeFromString(d_ma_type)\n        talib.execute({\n          name: 'STOCHRSI',\n          startIdx:  0 ,\n          endIdx: tmpMarket.length -1,\n          inReal: tmpMarket,\n          optInTimePeriod: rsi_periods,  //RSI 14 default\n          optInFastK_Period:k_periods, // K 5 default\n          optInFastD_Period:d_periods, // D 3 default\n          optInFastD_MAType:optInMAType // type of Fast D default 0 \n\n        }, function (err, result) {\n          if (err) {\n            console.log(err)\n            reject(err, result)\n            return\n          }\n\n          resolve({\n            outFastK: result.result.outFastK,\n            outFastD: result.result.outFastD\n          })\n  \n\n        })\n      }\n      else {\n        resolve()\n      }\n    }\n    else\n    {\n      resolve()\n    }\n\n  })\n}\n\n/**\n     * Extract int from string input eg (SMA = 0)\n     *\n     * @see https://github.com/oransel/node-talib\n     * @see https://github.com/markcheno/go-talib/blob/master/talib.go#L20\n     */\nfunction getMaTypeFromString(maType) {\n  // no constant in lib?\n    \n  switch (maType.toUpperCase()) {\n  case 'SMA':\n    return 0\n  case 'EMA':\n    return 1\n  case 'WMA':\n    return 2\n  case 'DEMA':\n    return 3\n  case 'TEMA':\n    return 4\n  case 'TRIMA':\n    return 5\n  case 'KAMA':\n    return 6\n  case 'MAMA':\n    return 7\n  case 'T3':\n    return 8\n  default:\n    return 0\n  }\n}\n"
  },
  {
    "path": "lib/ta_trix.js",
    "content": "var talib = require('talib')\n\nmodule.exports = function trix(s, timeperiod) {\n  return new Promise(function(resolve, reject) {\n    // create object for talib. only close is used for now but rest might come in handy\n    if (!s.marketData) {\n      s.marketData = { open: [], close: [], high: [], low: [], volume: [] }\n    }\n\n    if (s.lookback.length > s.marketData.close.length) {\n      for (var i = (s.lookback.length - s.marketData.close.length) - 1; i >= 0; i--) {\n        s.marketData.close.push(s.lookback[i].close)\n      }\n    }\n\n    if (s.marketData.close.length < timeperiod) {\n      resolve()\n      return\n    }\n\n    let tmpMarket = s.marketData.close.slice()\n\n    // add current period\n    tmpMarket.push(s.period.close)\n\n    talib.execute({\n      name: 'TRIX',\n      startIdx: 0,\n      endIdx: tmpMarket.length -1,\n      inReal: tmpMarket,\n      optInTimePeriod: timeperiod\n    }, function (err, result) {\n      if (err) {\n        reject(err, result)\n        return\n      }\n\n      resolve(result.result.outReal[(result.nbElement - 1)])\n    })\n  })\n}\n\n"
  },
  {
    "path": "lib/ta_ultosc.js",
    "content": "var talib = require('talib')\n\nmodule.exports = function ultosc(s, min_periods, timeperiod1, timeperiod2, timeperiod3) {\n  return new Promise(function(resolve, reject) {\n    // create object for talib. only close is used for now but rest might come in handy\n    if (!s.marketData) {\n      s.marketData = { open: [], close: [], high: [], low: [], volume: [] }\n    }\n\n    if (s.lookback.length > s.marketData.close.length) {\n      for (var i = (s.lookback.length - s.marketData.close.length) - 1; i >= 0; i--) {\n        s.marketData.high.push(s.lookback[i].high)\n        s.marketData.low.push(s.lookback[i].low)\n        s.marketData.close.push(s.lookback[i].close)\n      }\n    }\n\n    if (s.marketData.close.length < min_periods) {\n      resolve()\n      return\n    }\n\n    let tmpHigh = s.marketData.high.slice()\n    tmpHigh.push(s.period.high)\n\n    let tmpLow = s.marketData.low.slice()\n    tmpLow.push(s.period.low)\n\n    let tmpClose = s.marketData.close.slice()\n    tmpClose.push(s.period.close)\n\n    talib.execute({\n      name: 'ULTOSC',\n      startIdx: 0,\n      endIdx: tmpHigh.length -1,\n      high: tmpHigh,\n      low: tmpLow,\n      close: tmpClose,\n      optInTimePeriod1: timeperiod1,\n      optInTimePeriod2: timeperiod2,\n      optInTimePeriod3: timeperiod3,\n    }, function (err, result) {\n      if (err) {\n        reject(err, result)\n        return\n      }\n\n      resolve(result.result.outReal[(result.nbElement - 1)])\n    })\n  })\n}\n\n"
  },
  {
    "path": "lib/ta_volume.js",
    "content": "// allows to use all talib Volume Indicator Functions: https://mrjbq7.github.io/ta-lib/func_groups/volume_indicators.html\n// AD - Chaikin A/D Line\n// ADOSC - Chaikin A/D Oscillator\n// OBV - On Balance Volume\n\nvar talib = require('talib')\n\nmodule.exports = function volume(s, min_periods, indicator, fastperiod, slowperiod) {\n  return new Promise(function(resolve, reject) {\n    // create object for talib. only close is used for now but rest might come in handy\n    if (!s.marketData) {\n      s.marketData = { open: [], close: [], high: [], low: [], volume: [] }\n    }\n\n    if (s.lookback.length > s.marketData.close.length) {\n      for (var i = (s.lookback.length - s.marketData.close.length) - 1; i >= 0; i--) {\n        s.marketData.high.push(s.lookback[i].high)\n        s.marketData.low.push(s.lookback[i].low)\n        s.marketData.close.push(s.lookback[i].close)\n        s.marketData.volume.push(s.lookback[i].volume)\n      }\n    }\n\n    if (s.marketData.close.length < min_periods) {\n      resolve()\n      return\n    }\n\n    let tmpHigh = s.marketData.high.slice()\n    tmpHigh.push(s.period.high)\n\n    let tmpLow = s.marketData.low.slice()\n    tmpLow.push(s.period.low)\n\n    let tmpClose = s.marketData.close.slice()\n    tmpClose.push(s.period.close)\n\n    let tmpVolume = s.marketData.volume.slice()\n    tmpVolume.push(s.period.volume)\n\n    talib.execute({\n      name: indicator,\n      startIdx: 0,\n      endIdx: tmpHigh.length -1,\n      high: tmpHigh,\n      low: tmpLow,\n      close: tmpClose,\n      volume: tmpVolume,\n      inReal: tmpClose,\n      optInFastPeriod: fastperiod || 3,\n      optInSlowPeriod: slowperiod || 20\n    }, function (err, result) {\n      if (err) {\n        reject(err, result)\n        return\n      }\n\n      resolve(result.result.outReal[(result.nbElement - 1)])\n    })\n  })\n}\n\n"
  },
  {
    "path": "lib/ta_willr.js",
    "content": "// tablib: WILLR - Williams' %R https://mrjbq7.github.io/ta-lib/func_groups/momentum_indicators.html\n\nvar talib = require('talib')\n\nmodule.exports = function ppo(s, min_periods, timeperiod) {\n  return new Promise(function(resolve, reject) {\n    // create object for talib. only close is used for now but rest might come in handy\n    if (!s.marketData) {\n      s.marketData = { open: [], close: [], high: [], low: [], volume: [] }\n    }\n\n    if (s.lookback.length > s.marketData.close.length) {\n      for (var i = (s.lookback.length - s.marketData.close.length) - 1; i >= 0; i--) {\n        s.marketData.high.push(s.lookback[i].high)\n        s.marketData.low.push(s.lookback[i].low)\n        s.marketData.close.push(s.lookback[i].close)\n        s.marketData.volume.push(s.lookback[i].volume)\n      }\n    }\n\n    if (s.marketData.close.length < min_periods) {\n      resolve()\n      return\n    }\n\n    let tmpHigh = s.marketData.high.slice()\n    tmpHigh.push(s.period.high)\n\n    let tmpLow = s.marketData.low.slice()\n    tmpLow.push(s.period.low)\n\n    let tmpClose = s.marketData.close.slice()\n    tmpClose.push(s.period.close)\n\n    let tmpVolume = s.marketData.volume.slice()\n    tmpVolume.push(s.period.volume)\n\n    talib.execute({\n      name: 'WILLR',\n      startIdx: 0,\n      endIdx: tmpHigh.length -1,\n      high: tmpHigh,\n      low: tmpLow,\n      close: tmpClose,\n      optInTimePeriod: timeperiod || 14,\n    }, function (err, result) {\n      if (err) {\n        console.log(err)\n        reject(err, result)\n        return\n      }\n\n      resolve(result.result.outReal[(result.nbElement - 1)])\n    })\n  })\n}\n"
  },
  {
    "path": "lib/tcf.js",
    "content": "// Trend Continuation Factor, by M.H. Pee\nmodule.exports = function tcf (s, key, length, source_key) {\n  if (!source_key) source_key = 'close'\n  if (s.lookback[0] != undefined) {\n    let xChange = s.period[source_key]-s.lookback[0][source_key]\n    let xPlusChange = (xChange > 0) ? xChange : 0\n    let xMinusChange = (xChange < 0) ? -1*xChange : 0\n    s.period['xPlusCF'] = (xPlusChange == 0) ? 0 : ((s.lookback[0]['xPlusCF'] != undefined) ? s.lookback[0]['xPlusCF'] : 1) + xPlusChange\n    s.period['xMinusCF'] = (xMinusChange == 0) ? 0 : ((s.lookback[0]['xMinusCF'] != undefined) ? s.lookback[0]['xMinusCF'] : 1) + xMinusChange\n    s.period['xPlus'] = xPlusChange - s.period['xMinusCF']\n    s.period['xMinus'] = xMinusChange - s.period['xPlusCF']\n  }\n  if (s.lookback.length > length) {\n    let xPlusTCF = 0\n    let xMinusTCF = 0\n    for (var i=length-1; i>=0; i--) {\n      xPlusTCF += s.lookback[i]['xPlus']\n      xMinusTCF += s.lookback[i]['xMinus']\n    }\n    s.period[key] = { plus: xPlusTCF, minus: xMinusTCF }\n  }\n}\n\n"
  },
  {
    "path": "lib/ti_bollinger.js",
    "content": "var tulind = require('tulind')\n\n\nmodule.exports = function ti_bollinger(s, key, rsi_periods, StdDev, optMarket) \n{\n \n  return new Promise(function(resolve, reject) {\n\n    //dont calculate until we have enough data\n \n    let tmpMarket = optMarket\n    if (!tmpMarket)\n    {\n      tmpMarket = s.lookback.slice(0, 1000).map(x=>x.close)\n      tmpMarket.reverse()\n      //add current period\n      tmpMarket.push(s.period.close)\n    }\n    else\n    {\n      tmpMarket = tmpMarket.map(x=>x.close)\n    }\n    if ( tmpMarket.length >= rsi_periods) {\n      //doublecheck length.\n      if (tmpMarket.length >= rsi_periods) {\n        // extract int from string input for ma_type\n         \n        tulind.indicators.bbands.indicator(\n          [tmpMarket],\n          [rsi_periods, StdDev]\n          , function (err, result) {\n            if (err) {\n              console.log(err)\n              reject(err, result)\n              return\n            }\n\n            resolve({\n              LowerBand: result[0],\n              MiddleBand: result[1],\n              UpperBand: result[2]\n           \n            })\n          })\n      }\n      else {\n        reject('MarketLenth not populated enough')\n      }\n \n    } else {\n      reject('MarketLenth not populated enough')}\n  })\n}\n\n\n"
  },
  {
    "path": "lib/ti_hma.js",
    "content": "// Hull Moving Average:\n// https://tulipindicators.org/hma\n\nvar ti = require('tulind')\n\nmodule.exports = function hma(s, min_periods, trend_full) {\n  return new Promise(function(resolve) {\n    if (!s.marketData) {\n      s.marketData = { close: [] }\n    }\n\n    if (s.lookback.length > s.marketData.close.length) {\n      for (var i = (s.lookback.length - s.marketData.close.length) - 1; i >= 0; i--) {\n        s.marketData.close.push(s.lookback[i].close)\n      }\n    }\n\n    if (s.marketData.close.length < min_periods) {\n      resolve()\n      return\n    }\n\n    let tmpClose = s.marketData.close.slice()\n    tmpClose.push(s.period.close)\n\n    ti.indicators.hma.indicator([tmpClose], [trend_full], function(err, results) {\n      resolve(results[0][results[0].length-1])\n    })\n  })\n}\n"
  },
  {
    "path": "lib/ti_macd.js",
    "content": "var tulind = require('tulind')\n\n\nmodule.exports = function macd(s, key, shortPeriod, longPeriod, signalPeriod ,optMarket) \n{\n  return new Promise(function(resolve, reject) {\n  \n    if (s.lookback.length >= Math.max(shortPeriod,longPeriod) ) {\n\n      let tmpMarket = optMarket\n      if (!tmpMarket)\n      {\n        tmpMarket = s.lookback.slice(0, 1000).map(x=>x.close)\n        tmpMarket.reverse()\n        //add current period\n        tmpMarket.push(s.period.close)\n      }\n      else\n      {\n        tmpMarket = tmpMarket.map(x=>x.close)\n      }\n      tulind.indicators.macd.indicator(\n        [tmpMarket],\n        [shortPeriod, longPeriod, signalPeriod]\n        , function (err, result) {\n          if (err) {\n            console.log(err)\n            reject(err, result)\n            return\n          }\n\n          resolve({\n            macd: result[0],\n            macd_signal: result[1],\n            macd_histogram: result[2]\n          })\n        })\n         \n    }\n    else\n    { \n      reject()\n    }\n  })\n}\n\n"
  },
  {
    "path": "lib/ti_rsi.js",
    "content": "var tulind = require('tulind')\n\n\nmodule.exports = function ti_rsi(s, key, rsi_period,  optMarket) \n{\n \n  return new Promise(function(resolve, reject) {\n\n    //dont calculate until we have enough data\n \n    let tmpMarket = optMarket\n    if (!tmpMarket)\n    {\n      tmpMarket = s.lookback.slice(0, 1000).map(x=>x.close)\n      tmpMarket.reverse()\n      //add current period\n      tmpMarket.push(s.period.close)\n    }\n    else\n    {\n      tmpMarket = tmpMarket.map(x=>x.close)\n    }\n\n    if ( tmpMarket.length >= rsi_period) {\n      //doublecheck length.\n      if (tmpMarket.length >= rsi_period) {\n        // extract int from string input for ma_type\n         \n        tulind.indicators.rsi.indicator(\n          [tmpMarket],\n          [rsi_period]\n          , function (err, result) {\n            if (err) {\n              console.log(err)\n              reject(err, result)\n              return\n            }\n            resolve({\n              rsi: result[0]\n            })\n          })\n      }\n      else {\n        reject('MarketLenth not populated enough')\n      }\n \n    } else {\n      reject('MarketLenth not populated enough')}\n  })\n}\n\n\n"
  },
  {
    "path": "lib/ti_stoch.js",
    "content": "var tulind = require('tulind')\n\n\nmodule.exports = function stoch(s, key, k_periods, sk_periods, d_periods, optMarket) \n{\n  return new Promise(function(resolve, reject) {\n  \n    if (s.lookback.length >= Math.max(k_periods,d_periods,sk_periods) ) {\n\n      //dont calculate until we have enough data\n      let tmpMarket = optMarket\n      if (!tmpMarket)\n      {\n        \n        tmpMarket = s.lookback.slice(0, 1000)\n        tmpMarket.reverse()\n        //add current period\n        tmpMarket.push(s.period)\n      }\n\n      let tmpMarketHigh = tmpMarket.map(x => x.high)\n      let tmpMarketClose = tmpMarket.map(x => x.close)\n      let tmpMarketLow = tmpMarket.map(x => x.low)\n      // addCurrentPeriod\n\n\n      tulind.indicators.stoch.indicator(\n        [tmpMarketHigh,tmpMarketLow, tmpMarketClose ],\n        [k_periods, sk_periods, d_periods]\n        , function (err, result) {\n          if (err) {\n            console.log(err)\n            reject(err, result)\n            return\n          }\n\n          resolve({\n            k: result[0],\n            d: result[1]\n          })\n        })\n         \n    }\n    else\n    { \n      resolve()\n    }\n  })\n}\n\n"
  },
  {
    "path": "lib/ti_stochrsi.js",
    "content": "var tulind = require('tulind')\n\n\nmodule.exports = function ti_stochrsi(s, key, rsi_period, k_periods, d_periods, optMarket) \n{\n \n  return new Promise(function(resolve, reject) {\n\n    //dont calculate until we have enough data\n \n    let tmpMarket = optMarket\n    if (!tmpMarket)\n    {\n      tmpMarket = s.lookback.slice(0, 1000).map(x=>x.close)\n      tmpMarket.reverse()\n      //add current period\n      tmpMarket.push(s.period.close)\n    }\n    else\n    {\n      tmpMarket = tmpMarket.map(x=>x.close)\n    }\n\n    if ( tmpMarket.length >= rsi_period) {\n      //doublecheck length.\n      if (tmpMarket.length >= rsi_period) {\n        // extract int from string input for ma_type\n         \n        tulind.indicators.rsi.indicator(\n          [tmpMarket],\n          [rsi_period]\n          , function (err, result) {\n            if (err) {\n              console.log(err)\n              reject(err, result)\n              return\n            }\n            let trsi = result[0]\n            // 0 oldest -- end newest\n            trsi.reverse()\n            let stochRSI = []\n\n            for(let i = 0; i < (k_periods + d_periods - 1); i++) {\n              let rsiForPeriod = trsi.slice(i, rsi_period + i)\n              let highestRSI = Math.max(...rsiForPeriod)\n              let lowestRSI = Math.min(...rsiForPeriod)\n              \n              if(highestRSI == lowestRSI) {\n                stochRSI.push(0)\n              } else {\n                stochRSI.push(((trsi[ (rsi_period - 1) + i] - lowestRSI) / (highestRSI - lowestRSI)) )\n              }\n            }\n        \n            let percentK = []\n            for(let i = 0; i < k_periods; i++) {\n              let kData = stochRSI.slice(i, k_periods + i)\n              if(kData.length == k_periods) {\n                percentK.push(kData.reduce((a,b) => a + b, 0) / kData.length )\n              }\n            }\n      \n            let percentD = []\n            for(let i = 0; i < d_periods; i++) {\n              let dData = stochRSI.slice(i, d_periods + i)\n              if(dData.length == d_periods) {\n                percentD.push(dData.reduce((a,b) => a + b, 0) / dData.length)\n              }\n            }\n      \n   \n\n            resolve({\n              stochRSI: stochRSI,\n              stochk :percentK,\n              stochd :percentD\n            })\n          })\n      }\n      else {\n        reject('MarketLenth not populated enough')\n      }\n \n    } else {\n      reject('MarketLenth not populated enough')}\n  })\n}\n\n\n"
  },
  {
    "path": "lib/vma.js",
    "content": "// Variable Moving Average, by Tushar S. Chande\n// VMA automatically adjusts its smoothing constant on the basis of Market Volatility\nmodule.exports =  function vma (s, key, length, source_key) {\n  if (!source_key) source_key = 'close'\n  let k = 1.0 / length\n  if (s.lookback[0] != undefined)\n  {\n    let pdm = Math.max(s.period[source_key] - s.lookback[0][source_key], 0)\n    let mdm = Math.max(s.lookback[0][source_key] - s.period[source_key], 0)\n    let pdmS = s.period['pdmS'] = k * pdm + ((s.lookback[0]['pdmS'] != undefined) ? s.lookback[0]['pdmS'] * (1 - k) : 0)\n    let mdmS = s.period['mdmS'] = k * mdm + ((s.lookback[0]['mdmS'] != undefined) ? s.lookback[0]['mdmS'] * (1 - k) : 0)\n    let s0 = pdmS + mdmS\n    let pdi = pdmS / s0\n    let mdi = mdmS / s0\n    let pdiS = s.period['pdiS'] = k * pdi + ((s.lookback[0]['pdiS'] != undefined) ? s.lookback[0]['pdiS'] * (1 - k) : 0)\n    let mdiS = s.period['mdiS'] = k * mdi + ((s.lookback[0]['mdiS'] != undefined) ? s.lookback[0]['mdiS'] * (1 - k) : 0)\n    let d = Math.abs(pdiS - mdiS)\n    let s1 = pdiS + mdiS\n    var iS = s.period['iS'] = k * d / s1 + ((s.lookback[0]['iS'] != undefined) ? s.lookback[0]['iS'] * (1 - k) : 0)\n  }\n  if (s.lookback.length > length) {\n    let hhv, llv\n    s.lookback.slice(0, length).forEach(function (period) {\n      hhv = (hhv != undefined) ? Math.max(hhv, period['iS']) : period['iS']\n      llv = (llv != undefined) ? Math.min(llv, period['iS']) : period['iS']\n    })\n    hhv = Math.max(hhv, iS)\n    llv = Math.min(llv, iS)\n    let d1 = hhv - llv\n    let vI = (iS - llv) / d1\n    let vma = s.period['vma'] = k * vI * s.period[source_key] + \n            ((s.lookback[0]['vma'] != undefined) ? s.lookback[0]['vma'] * (1 - k * vI) : 0)\n    s.period[key] = vma\n  }   \n}\n\n"
  },
  {
    "path": "lib/vwap.js",
    "content": "module.exports = function vwap (s, key, length, max_period, source_key) {\n  if (!source_key) source_key = 'close'\n    \n  if (s.lookback.length >= length) {\n    if(!s.vwap){\n      s.vwap = 0, \n      s.vwapMultiplier = 0, \n      s.vwapDivider = 0,\n      s.vwapCount = 0\n    }\n      \n    if(max_period && s.vwapCount > max_period){\n      s.vwap = 0, \n      s.vwapMultiplier = 0, \n      s.vwapDivider = 0,\n      s.vwapCount = 0\n    }\n      \n    s.vwapMultiplier = s.vwapMultiplier + parseFloat(s.period[source_key]) * parseFloat(s.period['volume'])\n    s.vwapDivider = s.vwapDivider + parseFloat(s.period['volume'])\n      \n    s.period[key] = s.vwap = s.vwapMultiplier / s.vwapDivider\n      \n    s.vwapCount++\n  }\n}\n\n"
  },
  {
    "path": "lib/wto.js",
    "content": "module.exports = function wto (s, key, length, source_key) {\n  if (!source_key) source_key = 'close'\n\n  let ema = function(x, y, p) {\n    let alpha = (2 / (y + 1) )\n    let ema = (x - p) * alpha + p\n    return ema\n  }\n\n  if (!s.period['wto_d']) s.period['wto_d'] = 0\n  if (!s.period['wto_esa']) s.period['wto_esa'] = 0\n  if (!s.period[key]) s.period[key] = 0\n\n  if (s.lookback.length >= length) {\n    let ap = (s.period['close'] + s.period['high'] + s.period['low']) / 3\n    s.period['hcl3'] = ap\n\n    var prev_esa = s.lookback[0]['wto_esa']\n    if (typeof prev_esa !== 'undefined' && ! isNaN(prev_esa)) {\n      let esa = ema(ap, length, prev_esa)\n      s.period['wto_esa'] = esa\n\n      var prev_d = s.lookback[0]['wto_d']\n      if (typeof prev_d !== 'undefined' && ! isNaN(prev_d)) {\n        let d = ema(Math.abs(ap - esa), length, prev_d)\n        s.period['wto_d'] = d\n\n        let ci = (ap - esa) / (0.015 * d)\n\n        var prev_tci = s.lookback[0][key]\n        if (typeof prev_tci !== 'undefined' && ! isNaN(prev_tci)) {\n          let tci = ema(ci, s.options.wavetrend_average_length, prev_tci)\n          s.period[key] = tci\n        }\n      }\n    }\n  }\n}\n\n"
  },
  {
    "path": "models/README.md",
    "content": "\n## Models\n\nTrained models will be placed here!\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"zenbot4\",\n  \"version\": \"4.1.0\",\n  \"description\": \"Cryptocurrency trading bot\",\n  \"bugs\": \"https://github.com/deviavir/zenbot/issues\",\n  \"license\": \"MIT\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/deviavir/zenbot.git\"\n  },\n  \"main\": \"./index.js\",\n  \"bin\": {\n    \"zenbot\": \"./zenbot.sh\"\n  },\n  \"scripts\": {\n    \"lint\": \"eslint **/*.js\",\n    \"lint-fix\": \"eslint **/*.js --fix\",\n    \"precommit\": \"lint-staged\",\n    \"test\": \"jasmine test/**/**.test.js\",\n    \"test-one\": \"jasmine $PATH_TO_TEST\",\n    \"postinstall\": \"node post_install.js\",\n    \"snyk-protect\": \"snyk protect\",\n    \"prepare\": \"npm run snyk-protect\"\n  },\n  \"lint-staged\": {\n    \"*.js\": [\n      \"eslint --fix\",\n      \"git add\"\n    ]\n  },\n  \"dependencies\": {\n    \"@babel/core\": \"^7.17.2\",\n    \"@slack/client\": \"^5.0.2\",\n    \"adamant-api\": \"^1.3.0\",\n    \"async\": \"^3.2.3\",\n    \"babel-loader\": \"^8.2.3\",\n    \"babel-preset-env\": \"^1.6.1\",\n    \"bitfinex-api-node\": \"^4.0.16\",\n    \"bitstamp\": \"^1.0.4\",\n    \"bl\": \"^4.0.3\",\n    \"bollinger-bands\": \"^3.0.2\",\n    \"bootstrap\": \"^4.6.0\",\n    \"ccxt\": \"^1.72.64\",\n    \"cexio-api-node\": \"^1.0.8\",\n    \"cliff\": \"^0.1.10\",\n    \"coinbase-pro\": \"^0.9.0\",\n    \"colors\": \"^1.4.0\",\n    \"commander\": \"^5.1.0\",\n    \"convnetjs\": \"0.3.0\",\n    \"counterup\": \"^1.0.2\",\n    \"css-loader\": \"^5.2.6\",\n    \"echarts\": \"^5.3.0\",\n    \"ejs\": \"^3.1.6\",\n    \"exports-loader\": \"^0.7.0\",\n    \"expose-loader\": \"^1.0.3\",\n    \"express\": \"^4.17.2\",\n    \"express-rate-limit\": \"^5.5.1\",\n    \"file-loader\": \"^6.2.0\",\n    \"fs\": \"0.0.2\",\n    \"gemini-api\": \"^2.0.4\",\n    \"glob\": \"^7.2.0\",\n    \"har-validator\": \"^5.1.5\",\n    \"husky\": \"^5.2.0\",\n    \"idgen\": \"^2.0.2\",\n    \"imports-loader\": \"^0.8.0\",\n    \"ip\": \"~1.1.5\",\n    \"jasmine\": \"^3.99.0\",\n    \"jquery\": \"^3.6.0\",\n    \"jsonexport\": \"^2.5.2\",\n    \"keltnerchannel\": \"^1.4.2\",\n    \"kraken-api\": \"^1.0.1\",\n    \"lint-staged\": \"^10.5.3\",\n    \"lodash\": \"^4.17.21\",\n    \"lolex\": \"^6.0.0\",\n    \"mathjs\": \"^7.6.0\",\n    \"micro-request\": \"^666.0.10\",\n    \"mime\": \"^2.6.0\",\n    \"minimist\": \"^1.2.5\",\n    \"mini-css-extract-plugin\": \"^1.6.2\",\n    \"mock-require\": \"^3.0.2\",\n    \"moment\": \"^2.29.1\",\n    \"mongodb\": \"^3.7.3\",\n    \"node-bittrex-api\": \"^0.8.2\",\n    \"node-prowl\": \"^0.1.8\",\n    \"node-sass\": \"^7.0.1\",\n    \"node-telegram-bot-api\": \"^0.56.0\",\n    \"number-abbreviate\": \"^2.0.0\",\n    \"numbro\": \"github:highvelocityspace/numbro\",\n    \"path\": \"^0.12.7\",\n    \"poloniex.js\": \"1.0.1\",\n    \"popper.js\": \"^1.16.1\",\n    \"postcss-loader\": \"^4.3.0\",\n    \"progress\": \"^2.0.0\",\n    \"pushbullet\": \"2.4.0\",\n    \"pusher-js\": \"^5.1.1\",\n    \"random-port\": \"^0.1.0\",\n    \"regression\": \"^2.0.0\",\n    \"resolve-url-loader\": \"^4.0.0\",\n    \"sass-loader\": \"^8.0.2\",\n    \"semver\": \"^7.3.4\",\n    \"simple-xmpp\": \"^1.3.0\",\n    \"stats-lite\": \"2.2.0\",\n    \"style-loader\": \"^1.3.0\",\n    \"superagent\": \"^5.3.1\",\n    \"talib\": \"^1.1.4\",\n    \"timebucket\": \"^0.4.0\",\n    \"trend\": \"0.3.0\",\n    \"tulind\": \"^0.8.20\",\n    \"url-loader\": \"^4.1.1\",\n    \"waypoints\": \"^4.0.1\",\n    \"webpack\": \"^5.68.0\",\n    \"webpack-cli\": \"^4.9.2\",\n    \"ws\": \"^7.5.7\",\n    \"zero-fill\": \"^2.2.4\",\n    \"snyk\": \"^1.842.0\"\n  },\n  \"devDependencies\": {\n    \"eslint\": \"^4.19.1\",\n    \"geneticalgorithm\": \"^1.0.1\",\n    \"json2csv\": \"^5.0.0\",\n    \"round-precision\": \"^1.0.0\",\n    \"run-parallel-limit\": \"^1.0.4\",\n    \"shelljs\": \"^0.8.5\",\n    \"yargs\": \"^16.1.1\"\n  },\n  \"optionalDependencies\": {\n    \"fsevents\": \"^2.1.2\"\n  },\n  \"engines\": {\n    \"node\": \">=10.0.0\"\n  },\n  \"snyk\": true\n}\n"
  },
  {
    "path": "post_install.js",
    "content": "var shell = require('shelljs')\n\nconsole.log('bundling WebApp components')\nshell.exec('webpack --mode production')\nconsole.log('installing genetic_backtester components')\nshell.exec('(cd scripts/genetic_backtester/ && npm i)')\n"
  },
  {
    "path": "scripts/auto_backtester/.snyk",
    "content": "# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.\nversion: v1.19.0\nignore: {}\n# patches apply the minimum changes required to fix a vulnerability\npatch:\n  'npm:lodash:20180130':\n    - json2csv > cli-table2 > lodash:\n        patched: '2020-08-10T08:38:49.559Z'\n"
  },
  {
    "path": "scripts/auto_backtester/backtester.js",
    "content": "#!/usr/bin/env node\n\n/* Zenbot 4 Auto Backtester v2.0\n * glennfu\n *\n * Usage: Pass in the same parameters as you would to \"zenbot sim\", EXCEPT for:\n * 2 parameters you want to be backtested\n *\n * Imagine you've just run:\n *\n *    ./scripts/genetic_backtester/darwin.js --days=1 --asset_capital=0 --currency_capital=500 --selector=\"binance.EOS-BTC\" --population=20 --use_strategies=trend_ema\n *\n * and got the following result:\n *\n *    ./zenbot.sh sim binance.EOS-BTC --avg_slippage_pct=0.045 --buy_stop_pct=40 --markdown_buy_pct=0.37804270974174603 --markup_sell_pct=4.088646046027306 --max_buy_loss_pct=25 --max_sell_loss_pct=25 --max_slippage_pct=5 --min_periods=7 --neutral_rate=auto --order_poll_time=5000 --order_type=maker --oversold_rsi=78 --oversold_rsi_periods=15 --period=73m --period_length=73m --profit_stop_enable_pct=2 --profit_stop_pct=5 --rsi_periods=15 --sell_stop_pct=0 --strategy=trend_ema --trend_ema=4 --start=201802251900 --asset_capital=0 --currency_capital=500\n *\n * which performs like:\n *     end balance: 500.34778000 (0.06%)\n *     buy hold: 500.98047787 (0.19%)\n *     vs. buy hold: -0.13%\n *     2 trades over 3 days (avg 0.66 trades/day)\n *     win/loss: 1/0\n *     error rate: 0.00%\n *\n * To use the Auto Backtester, simply remove one or two parameters that are in strategies/trend_ema/strategy.js's phenotype definition.\n * Let's remove `order_type` and `oversold_rsi`\n *\n *    ./zenbot.sh sim binance.EOS-BTC --avg_slippage_pct=0.045 --buy_stop_pct=40 --markdown_buy_pct=0.37804270974174603 --markup_sell_pct=4.088646046027306 --max_buy_loss_pct=25 --max_sell_loss_pct=25 --max_slippage_pct=5 --min_periods=7 --neutral_rate=auto --order_poll_time=5000 --oversold_rsi_periods=15 --period=73m --period_length=73m --profit_stop_enable_pct=2 --profit_stop_pct=5 --rsi_periods=15 --sell_stop_pct=0 --strategy=trend_ema --trend_ema=4 --start=201802251900 --asset_capital=0 --currency_capital=500\n *\n * Now pass this to backtester.js and add a step_size, like 10, and re-add days=1 from darwin\n *\n *    ./scripts/auto_backtester/backtester.js --step_size=10 --days=1 --selector=binance.EOS-BTC --avg_slippage_pct=0.045 --buy_stop_pct=40 --markdown_buy_pct=0.37804270974174603 --markup_sell_pct=4.088646046027306 --max_buy_loss_pct=25 --max_sell_loss_pct=25 --max_slippage_pct=5 --min_periods=7 --neutral_rate=auto --order_poll_time=5000 --oversold_rsi_periods=15 --period=73m --period_length=73m --profit_stop_enable_pct=2 --profit_stop_pct=5 --rsi_periods=15 --sell_stop_pct=0 --strategy=trend_ema --trend_ema=4 --start=201802251900 --asset_capital=0 --currency_capital=500\n *\n * See output:\n *\n *   Auto Backtest of order_type and oversold_rsi completed at 2018-02-27 15:43:28, took 0m 7s, results saved to:\n *   simulations/auto_backtest_201802271543/results_auto_backtest_201802271543.csv\n *\n *\n *   Best Result had order_type=taker and oversold_rsi=73\n *   (trend_ema) Result Fitness 0.006083518953845421, VS Buy and Hold:   0.3% BuyAndHold Balance: 500.980477  End Balance: 502.504339, Wins/Losses 1/0, ROI 0.000000.\n *   ./zenbot.sh sim binance.EOS-BTC --period_length=73m --min_periods=7 --markdown_buy_pct=0.37804270974174603 --markup_sell_pct=4.088646046027306 --order_type=taker --sell_stop_pct=0 --buy_stop_pct=40 --profit_stop_enable_pct=2 --profit_stop_pct=5 --trend_ema=4 --oversold_rsi_periods=15 --oversold_rsi=73 --backtester_generation=16 --strategy=trend_ema --days=1 --avg_slippage_pct=0.045 --max_buy_loss_pct=25 --max_sell_loss_pct=25 --max_slippage_pct=5 --neutral_rate=auto --order_poll_time=5000 --rsi_periods=15 --start=201802251900 --asset_capital=0 --currency_capital=500\n *\n * So you can see our vsBuyHold has gone from -0.13% to 0.30%, an improvement!\n*/\n\nlet Phenotypes = require('../../lib/phenotype')\n  , Backtester = require('../../lib/backtester')\n  , argv = require('yargs').argv\n  , moment = require('moment')\n  , path = require('path')\n  , parallel = require('run-parallel-limit')\n  , colors = require('colors')\n  , z = require('zero-fill')\n  , n = require('numbro')\n  , _ = require('underscore')\n  , json2csv = require('json2csv')\n\nlet PARALLEL_LIMIT = (process.env.PARALLEL_LIMIT && +process.env.PARALLEL_LIMIT) || require('os').cpus().length\n\nsimArgs = Object.assign({}, argv)\nif (simArgs.period)\n  simArgs.period_length = simArgs.period\ndelete simArgs.period\ndelete simArgs['$0'] // This comes in to argv all by itself\ndelete simArgs['_']  // This comes in to argv all by itself\n\nlet debug = simArgs.debug\ndelete simArgs.debug\n\nif (simArgs.maxCores) {\n  if (simArgs.maxCores < 1)\n    PARALLEL_LIMIT = 1\n  else\n    PARALLEL_LIMIT = simArgs.maxCores\n\n  delete simArgs.maxCores\n}\n\nlet population_data = `auto_backtest_${moment().format('YYYYMMDDHHmm')}`\nlet iterationCount = 0\n\nif (simArgs.help || !simArgs.selector || !simArgs.step_size || simArgs.step_size < 2) {\n  console.log('--strategy=<stragegy_name> only one strategy')\n  console.log('--step_size=<int>    number of sims for each parameter, minimum 2')\n  console.log('--maxCores=<int>    maximum processes to execute at a time default is # of cpu cores in system')\n  console.log('--selector=<exchange.marketPair>  ')\n  console.log('--asset_capital=<float>    amount coin to start sim with ')\n  console.log('--currency_capital=<float>  amount of capital/base currency to start sim with'),\n  console.log('--days=<int>  amount of days to use when backfilling')\n  console.log('--sort_results  add if you want results.csv sorted by fitness')\n  process.exit(0)\n}\n\nvar timeCount = 0\nif (simArgs.days) timeCount++\nif (simArgs.start) timeCount++\nif (simArgs.end) timeCount++\n\nif (timeCount < 2) {\n  console.log('need at least 2 of: days, start, end')\n  process.exit(1)\n}\n\nfunction runAutoBacktester () {\n\n  let strategyName = simArgs.strategy\n  let strategyData = require(path.resolve(__dirname, `../../extensions/strategies/${strategyName}/strategy`))\n  let strategyPhenotypes = strategyData.phenotypes\n  if (!strategyPhenotypes) {\n    console.log(`No phenotypes definition found for strategy ${strategyName}`)\n    process.exit(1)\n  }\n\n  var pData = Object.assign({}, strategyPhenotypes)\n  var unsetKeys = []\n  Object.keys(strategyPhenotypes).forEach(function (key) {\n    if (key in simArgs) {\n      pData[key] = simArgs[key]\n    }\n    else {\n      unsetKeys.push(key)\n    }\n  })\n\n  if (unsetKeys.length > 2) {\n    console.log(`You omitted values for keys: ${unsetKeys.join(', ')}. You can have at most 2 unset keys`)\n    process.exit(1)\n  }\n  else if (unsetKeys.length <= 0) {\n    console.log(`You must omit at least one key in ${strategyName}'s phenotype for backtesting`)\n    process.exit(1)\n  }\n\n  console.log(`\\n\\n=== Running Auto Backtester on ${unsetKeys.join(' and ').blue} ===\\n`)\n\n  Backtester.resetMonitor()\n  Backtester.ensureBackfill()\n\n  let step_size = simArgs.step_size\n  delete simArgs.step_size\n\n  let phenotypes = []\n\n  let step_size_1 = step_size\n    , step_size_2 = step_size\n    , key1 = unsetKeys[0]\n    , key2 = unsetKeys[1]\n    , p1 = strategyPhenotypes[key1]\n    , p2 = strategyPhenotypes[key2]\n\n  // If you're iterating through a set, do the whole set regardless of step_size\n  if (p1 && p1.type === 'listOption')\n    step_size_1 = p1.options.length\n  if (p2 && p2.type === 'listOption')\n    step_size_2 = p2.options.length\n\n  // If we have 2 keys, build all combinations of both, otherwise just loop through the 1 key values\n  if (unsetKeys.length == 2) {\n    for (let i = 0; i < step_size_1; i++) {\n      for (let j = 0; j < step_size_2; j++) {\n        var phenotype = Object.assign({}, pData)\n        phenotype[key1] = Phenotypes.range(p1, i, step_size_1)\n        phenotype[key2] = Phenotypes.range(p2, j, step_size_2)\n        phenotypes.push(phenotype)\n      }\n    }\n  }\n  else {\n    for (let i = 0; i < step_size_1; i++) {\n      var phenotype = Object.assign({}, pData)\n      phenotype[key1] = Phenotypes.range(p1, i, step_size_1)\n      phenotypes.push(phenotype)\n    }\n  }\n\n  if (debug)\n    console.log(`Running options:`)\n\n  // Remove duplicates in case something is screwy in combination with step_size higher than the number of options.\n  // No sense in re-running the same thing multiple times\n  phenotypes = _.uniq(phenotypes, function(p, key, a) {\n    if (debug)\n      console.log(`${key1}: ${p[key1]}, ${key2}: ${p[key2]}`) // print all combinations of options\n    return JSON.stringify(p);\n  });\n\n  Backtester.init({\n    simArgs: simArgs,\n    simTotalCount: phenotypes.length,\n    parallelLimit: PARALLEL_LIMIT,\n    writeFile: writeSimDataFile\n  })\n\n  let tasks = phenotypes.map(phenotype => {\n\n    return cb => {\n      phenotype.backtester_generation = iterationCount\n      phenotype.selector = argv.selector\n      Backtester.trackPhenotype(phenotype)\n\n      var command = Backtester.buildCommand(strategyName, phenotype, `simulations/${population_data}/sim_${iterationCount}_result.html`)\n      command.iteration = iterationCount\n      writeSimDataFile(iterationCount, JSON.stringify(command))\n\n      iterationCount++\n      Backtester.runCommand(strategyName, phenotype, command, cb)\n    }\n  })\n\n  Backtester.startMonitor()\n\n  parallel(tasks, PARALLEL_LIMIT, (err, results) => {\n    Backtester.stopMonitor(`Auto Backtest of ${unsetKeys.join(' and ').blue}`)\n\n    results = results.filter(function(r) {\n      return !!r\n    })\n\n    if (argv.sort_results)\n      results.sort((a, b) => (Number(a.fitness) < Number(b.fitness)) ? 1 : ((Number(b.fitness) < Number(a.fitness)) ? -1 : 0))\n\n    // console.log(`results(${results.length}): ${JSON.stringify(results)}`)\n\n    results.forEach(function(result) {\n      let it = result.params.match(/backtester_generation\\\":(\\d+),/)\n      let phenotype = phenotypes[parseInt(it[1], 10)]\n      result.commandString = phenotype.command.commandString\n\n      unsetKeys.forEach(function(key) {\n        result[key] = phenotype[key]\n      })\n      // console.log(`it: ${JSON.stringify(it)}`)\n    })\n\n    let fieldsGeneral = unsetKeys.slice(0)\n    let fieldNamesGeneral = unsetKeys.slice(0)\n\n    fieldsGeneral = fieldsGeneral.concat(['selector', 'fitness', 'vsBuyHold', 'wlRatio', 'frequency', 'strategy', 'order_type', 'endBalance', 'buyHold', 'wins', 'losses', 'period_length', 'min_periods', 'days', 'commandString'])\n    fieldNamesGeneral = fieldNamesGeneral.concat(['Selector', 'Fitness', 'VS Buy Hold (%)', 'Win/Loss Ratio', '# Trades/Day', 'Strategy', 'Order Type', 'Ending Balance ($)', 'Buy Hold ($)', '# Wins', '# Losses', 'Period', 'Min Periods', '# Days', 'Command'])\n    \n    const json2csv = require('json2csv').parse;\n    let dataCSV = json2csv({\n      data: results,\n      fields: fieldsGeneral,\n      fieldNames: fieldNamesGeneral\n    })\n    let csvFileName = `simulations/${population_data}/results_${population_data}.csv` // MS Word whines about opening multiple files of the same name\n    console.log(csvFileName)\n    Backtester.writeFileAndFolder(csvFileName, dataCSV)\n\n\n    // If we didn't sort them before, definitely sort them now to get the best one\n    if (!argv.sort_results)\n      results.sort((a, b) => (Number(a.fitness) < Number(b.fitness)) ? 1 : ((Number(b.fitness) < Number(a.fitness)) ? -1 : 0))\n    let best = results[0]\n\n    // Display best of the generation\n    let best_string = []\n    unsetKeys.forEach(function(key) {\n      best_string.push(`${key}=${best[key]}`)\n    })\n    console.log(`\\n\\nBest Result had ${best_string.join(' and ').green}`)\n\n    console.log(`(${best.strategy}) Result Fitness ${best.fitness}, VS Buy and Hold: ${z(5, (n(best.vsBuyHold).format('0.0') + '%'), ' ').yellow} BuyAndHold Balance: ${z(5, (n(best.buyHold).format('0.000000')), ' ').yellow}  End Balance: ${z(5, (n(best.endBalance).format('0.000000')), ' ').yellow}, Wins/Losses ${best.wins}/${best.losses}, ROI ${z(5, (n(results.roi).format('0.000000') ), ' ').yellow}.`)\n    console.log(best.commandString + '\\n')\n  })\n\n}\n\nlet writeSimDataFile = (iteration, data) => {\n  let jsonFileName = `simulations/${population_data}/sim_${iteration}.json`\n  Backtester.writeFileAndFolder(jsonFileName, data)\n}\n\n\nBacktester.deLint()\nrunAutoBacktester()\n\n\n"
  },
  {
    "path": "scripts/auto_backtester/backtester_trust_distrust.js",
    "content": "#!/usr/bin/env node\n\n/* Zenbot 4.04 Backtester v0.2\n * Ali Anari <ali@anari.io>\n * 05/30/2017\n *\n * Usage: Pass in the same parameters as you would to \"zenbot sim\", EXCEPT for:\n * EMA Parameters: \"trend_ema\", \"neutral_rate\"\n * RSI Parameters: \"oversold_rsi\", \"oversold_rsi_periods\"\n *\n * Example: ./backtester.js gdax.ETH-USD --days=10 --currency_capital=5 --period_length=1m\n*/\n\nlet shell     = require('shelljs')\nlet parallel  = require('run-parallel-limit')\nlet json2csv  = require('json2csv')\nlet roundp    = require('round-precision')\nlet fs        = require('fs')\n\nlet VERSION = 'Zenbot 4.04 Backtester v0.2'\n\nlet PARALLEL_LIMIT = require('os').cpus().length\n\nlet SELL_THRESHOLD_MIN = 0\nlet SELL_THRESHOLD_MAX = 10\n\nlet SELL_THRESHOLD_MAX_MIN = 0\nlet SELL_THRESHOLD_MAX_MAX = 10\n\nlet BUY_THRESHOLD_MIN = 0\nlet BUY_THRESHOLD_MAX = 10\n\nlet SELL_MIN_MIN = 0\nlet SELL_MIN_MAX = 10\n\nlet PERIOD_MIN = 27\nlet PERIOD_MAX = 27\n\nlet countArr = []\n\nlet range = (start, end) => {\n  return Array(end - start + 1).fill().map((_, idx) => start + idx)\n}\n\nlet product = args => {\n  if(!args.length)\n    return [[]]\n  var prod = product(args.slice(1)), r = []\n  args[0].forEach(function(x) {\n    prod.forEach(function(p) {\n      r.push([x].concat(p))\n    })\n  })\n  return r\n}\n\nlet objectProduct = obj => {\n  var keys = Object.keys(obj),\n    values = keys.map(function(x) { return obj[x] })\n\n  return product(values).map(function(p) {\n    var e = {}\n    keys.forEach(function(k, n) { e[k] = p[n] })\n    return e\n  })\n}\n\nlet runCommand = (strategy, cb) => {\n  countArr.push(1)\n  let command = `./zenbot.sh sim ${simArgs} --strategy=trust_distrust --period_length=${strategy.period_length}m --sell_threshold=${strategy.sell_threshold} --sell_threshold_max=${strategy.sell_threshold_max} --sell_min=${strategy.sell_min} --buy_threshold=${strategy.buy_threshold} --days=30`\n  console.log(`[ ${countArr.length}/${strategies.length} ] ${command}`)\n\n  shell.exec(command, {silent:true, async:true}, (code, stdout, stderr) => {\n    if (code) {\n      console.error(command)\n      console.error(stderr)\n      return cb(null, null)\n    }\n    cb(null, processOutput(stdout))\n  })\n}\n\nlet processOutput = output => {\n  let jsonRegexp    = /(\\{[\\s\\S]*?\\})\\send balance/g\n  let endBalRegexp  = /end balance: (\\d+\\.\\d+) \\(/g\n  let wlRegexp      = /win\\/loss: (\\d+)\\/(\\d+)/g\n  let errRegexp     = /error rate: (.*)%/g\n\n  let output2 = output.substr(output.length - 3000)\n\n  let rawParams     = jsonRegexp.exec(output2)[1]\n  let params        = JSON.parse(rawParams)\n  \n  let endBalance    = endBalRegexp.exec(output2)[1]\n  let wlMatch       = wlRegexp.exec(output2)\n  let wins          = parseInt(wlMatch[1])\n  let losses        = parseInt(wlMatch[2])\n  let errorRate     = errRegexp.exec(output2)[1]\n  let days          = parseInt(params.days)\n\n  let roi = roundp(\n    ((endBalance - params.currency_capital) / params.currency_capital) * 100,\n    3\n  )\n\n  return {\n    params:             rawParams.replace(/[\\r\\n]/g, ''),\n    endBalance:         parseFloat(endBalance),\n    wins:               wins,\n    losses:             losses,\n    errorRate:          parseFloat(errorRate),\n    sellThreshold:           params.sell_threshold,\n    sellThresholdMax:           params.sell_threshold_max,\n    sellMin:        params.sell_min,\n    buyThreshold: params.buy_threshold,\n    days:               days,\n    period_length:       params.period_length,\n    roi:                roi,\n    wlRatio:            losses > 0 ? roundp(wins / losses, 3) : 'Infinity',\n    frequency:          roundp((wins + losses) / days, 3)\n  }\n}\n\nlet strategies = objectProduct({\n  sell_threshold: range(SELL_THRESHOLD_MIN, SELL_THRESHOLD_MAX),\n  sell_threshold_max: range(SELL_THRESHOLD_MAX_MIN, SELL_THRESHOLD_MAX_MAX),\n  sell_min: range(SELL_MIN_MIN, SELL_MIN_MAX),\n  buy_threshold: range(BUY_THRESHOLD_MIN, BUY_THRESHOLD_MAX),\n  period_length: range(PERIOD_MIN, PERIOD_MAX)\n})\n\nlet tasks = strategies.map(strategy => {\n  return cb => {\n    runCommand(strategy, cb)\n  }\n})\n\nlet args = process.argv\nargs.shift()\nargs.shift()\nlet simArgs = args.join(' ')\n\nconsole.log(`\\n--==${VERSION}==--`)\nconsole.log(new Date().toUTCString())\nconsole.log(`\\nBacktesting [${strategies.length}] iterations...\\n`)\n\nparallel(tasks, PARALLEL_LIMIT, (err, results) => {\n  console.log('\\nBacktesting complete, saving results...')\n  results = results.filter(function (r) {\n    return !!r\n  })\n  results.sort((a,b) => (a.roi < b.roi) ? 1 : ((b.roi < a.roi) ? -1 : 0))\n  let fileName = `backtesting_${Math.round(+new Date()/1000)}.csv`\n  let csv = json2csv({\n    data: results,\n    fields: ['roi', 'errorRate', 'wlRatio', 'frequency', 'endBalance', 'wins', 'losses', 'period', 'days', 'sellThreshold', 'sellThresholdMax', 'sellMin', 'buyThreshold', 'params'],\n    fieldNames: ['ROI (%)', 'Error Rate (%)', 'Win/Loss Ratio', '# Trades/Day', 'Ending Balance ($)', '# Wins', '# Losses', 'Period', '# Days', 'Sell Threshold', 'Sell Threshold Max', 'Sell Min', 'Buy Threshold', 'Full Parameters']\n  })\n\n  fs.writeFile(fileName, csv, err => {\n    if (err) throw err\n    console.log(`\\nResults successfully saved to ${fileName}!\\n`)\n  })\n})\n"
  },
  {
    "path": "scripts/auto_backtester/package.json",
    "content": "{\n  \"name\": \"zenbot4_auto_backtester\",\n  \"version\": \"0.2.0\",\n  \"description\": \"Parallel simulation runner with CSV results\",\n  \"dependencies\": {\n    \"json2csv\": \"^4.5.4\",\n    \"round-precision\": \"^1.0.0\",\n    \"run-parallel-limit\": \"^1.1.0\",\n    \"shelljs\": \"^0.8.5\",\n    \"strip-ansi\": \"^7.0.1\",\n    \"snyk\": \"^1.849.0\"\n  },\n  \"scripts\": {\n    \"snyk-protect\": \"snyk protect\",\n    \"prepare\": \"npm run snyk-protect\"\n  },\n  \"snyk\": true\n}\n"
  },
  {
    "path": "scripts/cron.sh",
    "content": "#!/bin/sh\n\nverify_environment() {\n  if [[ $(node -v | grep -q \"v9\" ; echo $?) -gt 0 ]];\n  then\n    echo \"not node 9\"\n    exit 0\n  fi\n}\n\nsetup_git() {\n  git config --global user.email \"travis@travis-ci.org\"\n  git config --global user.name \"Travis CI\"\n  git remote add upstream https://${GH_TOKEN}@github.com/DeviaVir/zenbot.git\n  git checkout unstable\n  git pull upstream unstable\n}\n\nrun_cron() {\n  for f in extensions/exchanges/*/update-products.sh;\n  do\n    echo \"processing ${f}\"\n    ./${f}\n  done\n}\n\nupload_files() {\n  git add .\n  git commit --message \"Exchanges: update-products $TRAVIS_BUILD_NUMBER\"\n  git push upstream unstable\n}\n\nverify_environment\nsetup_git\nrun_cron\nupload_files\n"
  },
  {
    "path": "scripts/genetic_algo/Dockerfile",
    "content": "FROM node:8\n\n\n\n# NOTE: THIS DOCKERFILE IS GENERATED VIA \"update.sh\"\n#\n# PLEASE DO NOT EDIT IT DIRECTLY.\n#\n\n\n# ensure local python is preferred over distribution python\nENV PATH /usr/local/bin:$PATH\n\n# http://bugs.python.org/issue19846\n# > At the moment, setting \"LANG=C\" on a Linux system *fundamentally breaks Python 3*, and that's not OK.\nENV LANG C.UTF-8\n\n# runtime dependencies\nRUN apt-get update && apt-get install -y --no-install-recommends \\\n\t\ttcl \\\n\t\ttk \\\n\t&& rm -rf /var/lib/apt/lists/*\n\nENV GPG_KEY 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D\nENV PYTHON_VERSION 3.6.0\n\n# if this is called \"PIP_VERSION\", pip explodes with \"ValueError: invalid truth value '<VERSION>'\"\nENV PYTHON_PIP_VERSION 9.0.1\n\nRUN set -ex \\\n\t&& buildDeps=' \\\n\t\ttcl-dev \\\n\t\ttk-dev \\\n\t' \\\n\t&& apt-get update && apt-get install -y $buildDeps --no-install-recommends && rm -rf /var/lib/apt/lists/* \\\n\t\\\n\t&& wget -O python.tar.xz \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz\" \\\n\t&& wget -O python.tar.xz.asc \"https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc\" \\\n\t&& export GNUPGHOME=\"$(mktemp -d)\" \\\n\t&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys \"$GPG_KEY\" \\\n\t&& gpg --batch --verify python.tar.xz.asc python.tar.xz \\\n\t&& rm -r \"$GNUPGHOME\" python.tar.xz.asc \\\n\t&& mkdir -p /usr/src/python \\\n\t&& tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \\\n\t&& rm python.tar.xz \\\n\t\\\n\t&& cd /usr/src/python \\\n\t&& ./configure \\\n\t\t--enable-loadable-sqlite-extensions \\\n\t&& make -j$(nproc) \\\n\t&& make install \\\n\t&& ldconfig \\\n\t\\\n# explicit path to \"pip3\" to ensure distribution-provided \"pip3\" cannot interfere\n\t&& if [ ! -e /usr/local/bin/pip3 ]; then : \\\n\t\t&& wget -O /tmp/get-pip.py 'https://bootstrap.pypa.io/get-pip.py' \\\n\t\t&& python3 /tmp/get-pip.py \"pip==$PYTHON_PIP_VERSION\" \\\n\t\t&& rm /tmp/get-pip.py \\\n\t; fi \\\n# we use \"--force-reinstall\" for the case where the version of pip we're trying to install is the same as the version bundled with Python\n# (\"Requirement already up-to-date: pip==8.1.2 in /usr/local/lib/python3.6/site-packages\")\n# https://github.com/docker-library/python/pull/143#issuecomment-241032683\n\t&& pip3 install --no-cache-dir --upgrade --force-reinstall \"pip==$PYTHON_PIP_VERSION\" \\\n# then we use \"pip list\" to ensure we don't have more than one pip version installed\n# https://github.com/docker-library/python/pull/100\n\t&& [ \"$(pip list |tac|tac| awk -F '[ ()]+' '$1 == \"pip\" { print $2; exit }')\" = \"$PYTHON_PIP_VERSION\" ] \\\n\t\\\n\t&& find /usr/local -depth \\\n\t\t\\( \\\n\t\t\t\\( -type d -a -name test -o -name tests \\) \\\n\t\t\t-o \\\n\t\t\t\\( -type f -a -name '*.pyc' -o -name '*.pyo' \\) \\\n\t\t\\) -exec rm -rf '{}' + \\\n\t&& apt-get purge -y --auto-remove $buildDeps \\\n\t&& rm -rf /usr/src/python ~/.cache\n\n# make some useful symlinks that are expected to exist\nRUN cd /usr/local/bin \\\n\t&& { [ -e easy_install ] || ln -s easy_install-* easy_install; } \\\n\t&& ln -s idle3 idle \\\n\t&& ln -s pydoc3 pydoc \\\n\t&& ln -s python3 python \\\n\t&& ln -s python3-config python-config\n\nRUN apt-get update\nRUN apt install -y  graphviz libgraphviz-dev pkg-config\nRUN PKG_CONFIG_ALLOW_SYSTEM_LIBS=OHYESPLEASE pip install pygraphviz\nADD requirements.txt /\nRUN pip3 install -r /requirements.txt\n\nADD ../../ /app\nADD fabfile.py /app\nWORKDIR /app\nRUN /usr/local/bin/npm install\nRUN npm update\n"
  },
  {
    "path": "scripts/genetic_algo/README.md",
    "content": "## Genetic Algorithm by @arpheno\n\nFor context:\n- #298 https://github.com/carlos8f/zenbot/issues/298\n- the original PR: https://github.com/carlos8f/zenbot/pull/299\n- merged PR https://github.com/carlos8f/zenbot/pull/598\n- please note that the code has decayed and you may encounter weird things\n\nOn your host:\n```\n$ docker-compose up\n$ docker-compose exec server bash\n```\n\nOn docker host (or without docker):\n```\n$ fab backfill_local:<days>\n$ cd scripts/genetic_algo\n$ python -m scoop main.py <product> <days> <individuals> <strategy>\n```\n\nexample:\n```\n$ fab backfill_local:5\n$ cd scripts/genetic_algo\n$ python -m scoop main.py BTC-CUR 3\n```\n\nImportant: before usage, create directory\nscripts/genetic_algo/logs/hof\n"
  },
  {
    "path": "scripts/genetic_algo/conda_environment.yaml",
    "content": "name: zenbot_env\ndependencies:\n    - python=3.6\n    - numpy\n    - networkx\n    - matplotlib\n    - termcolor\n    - pip:\n        - deap\n        - scoop\n        - names\n        - fabric3\n"
  },
  {
    "path": "scripts/genetic_algo/conf.py",
    "content": "import random\n\n\nselectors = {\n    'BTC-CUR': ['gdax.BTC-USD', 'gdax.BTC-EUR', 'gdax.BTC-GBP'],\n    'ETH-BTC': ['gdax.ETH-BTC'],\n    'ETH-EUR': ['gdax.ETH-EUR'],\n    'ETH-USD': ['gdax.ETH-USD'],\n    'ETH-CUR': ['gdax.ETH-USD', 'gdax.ETH-EUR'],\n}\npartitions = 2\nselectivity = 0.3\n\nrunid = random.randint(1000, 9999)\nsigma = 20\nindpb = 0.3\nmutpb = 0.3\ncxpb = 0.3\n"
  },
  {
    "path": "scripts/genetic_algo/constants.py",
    "content": "Product = str\n\"\"\" ETH-BTC or BTC-CUR\"\"\"\n\nSelector = str\n\"\"\" <exchange>.<product> like gdax.ETH-BTC \"\"\"\n"
  },
  {
    "path": "scripts/genetic_algo/docker-compose.yml",
    "content": "server:\n  build: .\n  volumes:\n    - ./conf.js:/app/conf.js\n    - ./extensions:/app/extensions\n  links:\n    - mongodb\n  command: [ \"trade\", \"--paper\" ]\n  restart: always\n  tty: true\n\nmongodb:\n  image: mongo:latest\n  volumes_from:\n    - mongodb-data\n  command: mongod --smallfiles\n\nmongodb-data:\n  image: mongo:latest\n  volumes:\n    - ./data/db:/data/db\n  command: \"true\"\n"
  },
  {
    "path": "scripts/genetic_algo/evaluation.py",
    "content": "import datetime\nimport os\nimport random\nimport shlex\nimport subprocess\nimport sys\nimport re\nimport numpy as np\nfrom typing import List\n\nfrom termcolor import colored\n\nfrom conf import partitions\nfrom evolution.individual_base import Individual\nfrom objective_function import soft_maximum_worst_case\nfrom parsing import parse_trades, args_for_strategy\n\n\ndef pct(x):\n    return x / 100.0\n\n\ndef minutes(x):\n    return str(int(x)) + 'm'\n\n\ndef runzen(cmdline):\n    ansi_escape = re.compile(b'\\x1b[^m]*m')\n    with open(os.devnull, 'w') as devnull:\n        try:\n            a = subprocess.check_output(shlex.split(cmdline), stderr=devnull)\n        except Exception as e:\n            # print(e)\n            return -100.0, 0.0\n    profit = a.split(b'}')[-1].splitlines()[3].split(b': ')[-1]\n    profit = ansi_escape.sub(b'', profit)[:-1]\n    trades = parse_trades(a.split(b'}')[-1].splitlines()[4])\n    trades = ansi_escape.sub(b'', trades)\n    return float(profit), float(trades)\n\n\nclass Andividual(Individual):\n    BASE_COMMAND = 'env node ../../zenbot.js sim {instrument} --strategy {strategy} --avg_slippage_pct 0.33 --filename temp.html'\n    def __init__(self, *args,**kwargs):\n        super(Andividual, self).__init__(*args, **kwargs)\n        self.args = args_for_strategy(self.strategy)\n        # period and periodLength are the same and yield errors\n        # if both are used.\n        self.args = [a for a in self.args if a != 'periodLength']\n\n        for _ in self.args:\n            self.append(50 + (random.random() - 0.5) * 100)\n\n    def __repr__(self):\n        return colored(f\"{self.cmdline}  {super(Andividual, self).__repr__()}\", 'grey')\n\n    def mate(p1, p2):\n        '''overriding function of individual\n        '''\n        print('overriding mating fct')\n        # do crossover\n        # c1args = np.random.randindt(2, size=len(self.args))\n        return p1, p2\n\n    @property\n    def instrument(self):\n        return random.choice(self.instruments)\n\n    @property\n    def strategy(self):\n        return random.choice(self.strategies)\n\n    @property\n    def objective(self):\n        return soft_maximum_worst_case(self)\n\n    def compress(self):\n        res = dict(zip(self.args, self))\n        period = res['period']\n        del res['period']\n        normalized = {param: self.normalize(value, period) if 'period' in param or param == 'trend_ema' else value for\n                      param, value in\n                      res.items()}\n        normalized['period'] = period\n        output = dict(self.convert(param, value) for param, value in normalized.items())\n        return output.items()\n\n    @property\n    def params(self) -> List[str]:\n        def format(key, value):\n            if isinstance(value, float):\n                return f'--{key} {value:.6f}'\n            else:\n                return f'--{key} {value}'\n\n        params = [format(key, value) for key, value in self.compress()]\n        return params\n\n    @property\n    def cmdline(self) -> str:\n        base = self.BASE_COMMAND.format(instrument=self.instrument, strategy=self.strategy)\n        result = ' '.join([base] + self.params)\n        return result\n\n    def normalize(self, value: float, period: int):\n        return (value / period)\n\n    def convert(self, param, value):\n        if param == 'period':\n            res = minutes(int(value/2))\n        elif param == 'min_periods':\n            res = int(value*20)\n        elif param == 'trend_ema':\n            res = int(value*15)\n        elif 'period' in param:\n            res = int(value*10)\n        elif 'pct' in param:\n            res = pct(value)\n        elif 'rate' in param:\n            res = pct(value)\n        elif 'rsi' in param:\n            res = float(value)\n        elif 'sell' in param:\n            res = value/10.0\n        elif 'buy' in param:\n            res = value/10.0\n        elif 'threshold' in param:\n            res = value/100000.0\n        elif 'sar_af' == param:\n            res = value/1000.0\n        elif 'sar_max_af' == param:\n            res = pct(value)\n        elif 'greed' == param:\n            res = value/10.0\n        elif 'lastpoints' == param:\n            res = int(value)\n        elif 'avgpoints' == param:\n            res = 10 * int(value)\n        elif 'lastpoints2' == param:\n            res = int(value/10)\n        elif 'avgpoints2' == param:\n            res = int(value/10)\n        elif 'markup_sell_pkt' == param:\n            res = value\n        elif 'markup_buy_pkt' == param:\n            res = value\n        elif 'sell_threshold' in param:\n            res = value/100000.0\n        elif 'sell_threshold_max' in param:\n            res = value/100000.0\n        elif 'sell_min' in param:\n            res = value/100000.0\n        elif 'buy_threshold' in param:\n            res = value/100000.0\n        elif 'buy_threshold_max' in param:\n            res = value/100000.0\n        elif 'trigger_factor' == param:\n            res = value/1000.0\n        elif 'ema_acc' == param:\n            res = value/1000000.0\n        elif 'srsi' in param:\n            res = value/100000.0\n        elif 'oversold_cci' == param:\n            res = -value/1000.0\n        elif 'overbought_cci' == param:\n            res = value/1000.0\n        elif 'constant' == param:\n            res = value/1000000.0\n        elif 'ema' in param:\n            res = value/100000.0\n        elif 'sma' in param:\n            res = value/100000.0\n        elif 'vwap_length' == param:\n            res = value/100000.0\n        elif 'vwap_max' == param:\n            res = value/1000.0\n        elif 'activation_1_type' == param:\n            res = np.random.choice(['sigmoid', 'tanh', 'relu'])\n        elif 'neurons_1' == param:\n            res = value/100000.0\n        elif 'depth' == param:\n            res = value/100000.0\n        elif 'selector' == param:\n            res = self.instrument\n        elif 'min_predict' == param:\n            res = value/1000000.0\n        elif 'momentum' == param:\n            res = value/1000000.0\n        elif 'threads' == param:\n            res = value/1000000.0\n        elif 'learns' == param:\n            res = value/1000000.0\n        elif 'decay' == param:\n            res = value/1000000.0\n        else:\n            raise ValueError(colored(f\"I don't understand {param} please add it to evaluation.py\", 'red'))\n        return param, res\n\n\n\n\ndef evaluate_zen(cmdline:str, days: int):\n    periods = time_params(days, partitions)\n    try:\n        fitness = []\n        for period in periods:\n            cmd = ' '.join([cmdline, period])\n            f,t = runzen(cmd)\n            fitness.append(f)\n            if t==0:\n                raise subprocess.CalledProcessError(-1,'TooFewTrades')\n        sys.stdout.write('.')\n    except subprocess.CalledProcessError:\n        fitness = [-100 for _ in periods]\n        sys.stdout.write('x')\n    sys.stdout.flush()\n    return tuple(fitness)\n\n\ndef time_params(days: int, partitions: int) -> List[str]:\n    now = datetime.date.today()\n    delta = datetime.timedelta(days=days)\n    splits = [now - delta / partitions * i for i in range(partitions + 1)][::-1]\n    return [f' --start {start} --end {end}' for start, end in zip(splits, splits[1:])]\n"
  },
  {
    "path": "scripts/genetic_algo/evolution/__init__.py",
    "content": "from functools import partial\n\nfrom deap.tools import History\nfrom scoop import futures\n\nfrom evolution.core import algorithm, breed, mutate\nfrom halloffame import ObjectiveFunctionHallOfFame\nfrom .selection import harsh_winter\nfrom .utils import statsa\n\n\ndef evolve(evaluate, cls, popsize=10):\n    select = partial(harsh_winter, count=popsize)\n\n    history = History()\n    stats = statsa()\n    hof = ObjectiveFunctionHallOfFame(maxsize=15)\n    return algorithm(cls, popsize, futures.map, evaluate, select, breed, mutate, stats, history, hof)\n"
  },
  {
    "path": "scripts/genetic_algo/evolution/core.py",
    "content": "import random\n\nfrom deap.tools import History, Statistics\nfrom termcolor import colored\n\nfrom conf import cxpb, mutpb\nfrom .utils import log_stuff\n\n\ndef algorithm(individual,popsize,map,evaluate,select,breed,mutate,stats,history,hof):\n    # Create initial Population and evaluate it\n    population = set()\n    print(colored(f\"Sampling an initial valid population, this may take a while...\", 'blue'))\n    while len(population) < popsize:\n        print(colored(f\"Currently {len(population)} valid individuals\", 'blue'))\n        would_be = [individual() for _ in range(popsize)]\n        evaluate_group(would_be,map,evaluate)\n        population = population | set(would_be)\n    # Commence evolution\n    for g in range(0, 1000):\n        log_stuff(g, history, hof, population, stats)\n        print(colored(f\"It's breeding season, we're expecting new members of the tribe...\", 'blue'))\n        offspring = breed(population)\n        print(colored(f\"Radiation and toxic waste are causing mutations in the population...\", 'blue'))\n        mutants = mutate(population)\n        print(colored(f\"Summer is here, evaluating our new arrivals...\", 'blue'))\n        evaluate_group(offspring + mutants, map,evaluate)\n        survivors = select(set(offspring) | set(mutants) | population)\n        population = survivors\n\n    return hof\n\n\ndef evaluate_group(population, map, evaluate):\n    invalid_ind = [ind for ind in population if not ind.fitness.valid]\n    print(' ' * len(invalid_ind) + '|')\n    fitnesses = map(evaluate, [ind.cmdline for ind in invalid_ind])\n    for ind, fit in zip(invalid_ind, fitnesses):\n        ind.fitness.values = fit\n\n\ndef breed(population):\n    offspring = []\n    while len(offspring) < len(population) * cxpb:\n        parent1, parent2 = random.sample(population, 2)\n        child1, child2 = parent1 + parent2\n        offspring.append(child1)\n        offspring.append(child2)\n    print(colored(len(offspring), 'green') + colored(f\" children have been born.\", 'blue'))\n    return offspring\n\n\ndef mutate(population):\n    mutants = []\n    for individual in population:\n        if random.random() < mutpb:\n            mutants.append(~individual)\n    print(colored(len(mutants), 'green') + colored(f\" individuals have mutated.\", 'blue'))\n    return mutants\n"
  },
  {
    "path": "scripts/genetic_algo/evolution/individual_base.py",
    "content": "from copy import deepcopy, copy\n\nimport names\nfrom deap.base import Fitness\n\nfrom conf import partitions\n\n\nclass FitnessMax(Fitness):\n    weights = tuple([1 for _ in range(partitions)])\n\n\nclass Individual(list):\n    mate = lambda *x: x\n    mutate = lambda x: x\n\n    @property\n    def objective(self):\n        return sum(self)\n\n    def __repr__(self):\n        return f\"{list(self.fitness.values)} {self.objective} {self.name}\"\n\n    def __init__(self, *args, **kwargs):\n        self.name = names.get_full_name()\n        self.fitness = FitnessMax()\n        super(Individual, self).__init__(*args, **kwargs)\n\n    def __deepcopy__(self, memodict={}):\n        obj = copy(self)\n        obj.fitness = deepcopy(self.fitness)\n        obj.name = names.get_full_name()\n        return obj\n\n\n    def __add__(self, other):\n        child1, child2 = self.__class__.mate(deepcopy(self), deepcopy(other))\n        if False:\n            print(f\"\\nMating: with {self.__class__.mate}\")\n            print(self)\n            print(other)\n            print('Children:')\n            print(child1)\n            print(child2)\n        del child1.fitness.values\n        del child2.fitness.values\n        return child1, child2\n\n    def __invert__(self):\n        mutant = self.__class__.mutate(deepcopy(self))[0]  # DON'T THINK ABOUT REMOVING THE ZERO\n        if False:\n            print(f\"\\nMutating: with {self.__class__.mutate}\")\n            print(self)\n            print(mutant)\n        del mutant.fitness.values\n        return mutant\n\n    # def __eq__(self, other):\n    #     '''when overriding __eq__ this way, all initial individuals are\n    #     considered the same and thus cannot be different set elements!\n    #     therefore commenting this out. look for usage of hash equality\n    #     '''\n    #     return hash(self)==hash(other)\n    def __hash__(self):\n        return hash(tuple(self.fitness.values))\n"
  },
  {
    "path": "scripts/genetic_algo/evolution/selection.py",
    "content": "import random\nfrom operator import attrgetter\nfrom typing import Iterable, Set\n\nfrom termcolor import colored\n\nfrom conf import partitions\nfrom evolution.individual_base import Individual\n\n\ndef harsh_winter(population: Set[Individual], count: int) -> Set[Individual]:\n    \"\"\" Selects `popsize` many individuals from the current population.\"\"\"\n    elitist_count = int(count * 0.3)\n    specialist_count = int(count * 0.4 / partitions)\n    elites = select_elites(population, elitist_count)\n    difference = population - elites\n    specialists = select_specialists(difference, specialist_count)\n    survivors = elites | specialists\n    difference = population - survivors\n    if difference:\n        rest = set(random.sample(difference, count - len(survivors)))\n        population = survivors | rest\n    else:\n        rest = set()\n        population = survivors\n    log_stuff(elites, rest, specialists)\n    return population\n\n\ndef select_elites(individuals: Iterable[Individual], count: int):\n    elites = set(sorted(individuals, key=attrgetter('objective'), reverse=True)[:count])\n    return elites\n\n\ndef select_specialists(individuals: Iterable[Individual], count: int):\n    guilds = [sorted(individuals, reverse=True, key=lambda x: x.fitness.values[i]) for i in range(partitions)]\n    specialists = set([ind for specialists in guilds for ind in specialists[:count]])\n    return specialists\n\n\ndef log_stuff(elites, rest: Set, specialists):\n    print(colored(\"\\n\\nWinter has come, weeding out the unworthy.\", 'blue'))\n    print(f\"{len(elites)} Elites will survive, they're currently the strongest:\")\n    for elite in sorted(elites, key=attrgetter('objective'), reverse=True):\n        print(elite)\n    print(f\"{len(specialists)} Specialists will survive, they're the best in their domain:\")\n    for specialist in specialists:\n        print(specialist)\n    print(f\"Some other have fought their way through:\")\n    for r in random.sample(rest, len(rest) // 5):\n        print(r)\n    print(colored('...', 'grey'))\n"
  },
  {
    "path": "scripts/genetic_algo/evolution/utils.py",
    "content": "import networkx as networkx\nimport numpy\nfrom deap.tools import Statistics\nfrom matplotlib import pyplot as plt\nfrom termcolor import colored\n\nfrom conf import runid\nfrom objective_function import soft_maximum_worst_case\n\n\ndef draw(history, toolbox):\n    ax = plt.figure()\n    ax.set_figheight(30)\n    ax.set_figwidth(30)\n    graph = networkx.DiGraph(history.genealogy_tree)\n    graph = graph.reverse()  # Make the grah top-down\n    colors_inds = (history.genealogy_history[i] for i in graph)\n    colors = [soft_maximum_worst_case(ind) if ind.fitness.valid else -10 for ind in colors_inds]\n\n    positions = networkx.drawing.nx_agraph.graphviz_layout(graph, prog=\"dot\")\n\n    networkx.draw(graph, positions, node_color=colors, ax=ax.add_subplot(111), figsize=(30, 30), node_size=150)\n    ax.savefig('logs/history/{runid}.png'.format(runid=runid))\n\n\ndef log_stuff(g, history, hof, population, stats):\n    # draw(history, toolbox)\n    record = stats.compile(population)\n    hof.update(population)\n    hof.persist()\n    print(colored(f'\\nGeneration {g} {record}', 'green') )\n    # print(hof)\n\n\ndef statsa():\n    stats = Statistics(key=lambda ind: soft_maximum_worst_case(ind))\n    stats.register(\"avg\", numpy.mean)\n    stats.register(\"std\", numpy.std)\n    stats.register(\"min\", numpy.min)\n    stats.register(\"max\", numpy.max)\n    stats.register(\"len\", len)\n    return stats\n"
  },
  {
    "path": "scripts/genetic_algo/fabfile.py",
    "content": "import datetime\nimport shlex\n\nimport subprocess\nfrom fabric.api import run, cd, local\n\n\ndef sim(instrument, days, popsize, strategy):\n    with cd('zenbot'):\n        params = dict(instrument=instrument, days=days, strategy=strategy, popsize=popsize,\n                      timestamp=datetime.datetime.now().strftime('%Y-%m-%d-%H-%M'))\n        cmd = \"cd scripts/genetic_algo && python -m scoop main.py {instrument} {days} {popsize} {strategy}\".format(**params)\n        total = '(nohup docker-compose exec -T server bash -c \"{cmd}\" > {instrument}_{strategy}_{days}_{popsize}_{timestamp}.out 2>&1 &) && sleep 1'.format(\n            cmd=cmd, **params)\n        print(total)\n        run(total)\n\n\ndef remote(cmd, logfile):\n    with cd('zenbot'):\n        total = '(nohup docker-compose exec -T server bash -c \"{cmd}\" > {logfile} 2>&1 &) && sleep 1'.format(\n            cmd=cmd,\n            logfile=logfile)\n        print(total)\n        run(total)\n\n\ndef backfill_remote(TOTAL_DAYS):\n    products = ['gdax.BTC-EUR', 'gdax.BTC-USD', 'gdax.BTC-GBP']+['gdax.ETH-BTC', 'poloniex.ETH-BTC']\n    for instrument in products:\n        cmd = 'env node ../../zenbot.js backfill {instrument} --days {days}'.format(days=TOTAL_DAYS, instrument=instrument)\n        remote(cmd, 'backfill_'+instrument)\n\n\ndef backfill_local(TOTAL_DAYS):\n    products = ['gdax.BTC-EUR', 'gdax.BTC-USD', 'gdax.BTC-GBP']+['gdax.ETH-BTC', 'poloniex.ETH-BTC']\n    for instrument in products:\n        cmd = 'env node ../../zenbot.js backfill {instrument} --days {days}'.format(days=TOTAL_DAYS, instrument=instrument)\n        local(cmd)\n"
  },
  {
    "path": "scripts/genetic_algo/halloffame.py",
    "content": "from operator import attrgetter\n\nfrom conf import runid\n\n\nclass ObjectiveFunctionHallOfFame(object):\n    def __init__(self, maxsize=30):\n        self.inner = set()\n        self.maxsize = maxsize\n\n    def update(self, newpop):\n        self.inner = self.inner.union(newpop)\n        self.inner = set(sorted(self.inner, key=attrgetter('objective'), reverse=True)[:self.maxsize])\n\n    def __iter__(self):\n        return iter(self.inner)\n\n    def len(self):\n        return len(self.inner)\n\n    def __repr__(self):\n        header = [\"Current Hall of Fame:\"]\n        report = [f\"{ind}\" for ind in sorted(self.inner, key=attrgetter('objective'), reverse=True)]\n        return \"\\n\".join(header + report)\n\n    def persist(self):\n        with open('logs/hof/{runid}.txt'.format(runid=runid), 'w') as f:\n            f.write(str(self))\n"
  },
  {
    "path": "scripts/genetic_algo/main.py",
    "content": "import sys\nfrom functools import partial\n\nfrom deap.tools import cxTwoPoint, mutGaussian\nfrom scoop import shared\nfrom termcolor import colored\n\nfrom conf import indpb, sigma, partitions, selectors\nfrom evaluation import evaluate_zen, Andividual\nfrom evolution import evolve\nimport parsing\n\nblue = partial(lambda text, color: colored(str(text), color), color='blue')\ngreen = partial(lambda text, color: colored(str(text), color), color='green')\n\n\ndef main(instrument, days, popsize, strategy='trend_ema'):\n    print(colored(\"Starting evolution....\", 'blue'))\n    evaluate = partial(evaluate_zen, days=days)\n    print(blue(\"Evaluating \")+green(popsize)+blue(\" individuals over \") + green(days) + blue(' days in ') + green(partitions) + blue(' partitions.'))\n    try:\n        Andividual.instruments = selectors[instrument]\n    except:\n        # if not in the list, assume it is one usable instrument\n        Andividual.instruments = [instrument]\n    Andividual.mate = cxTwoPoint\n    Andividual.mutate = partial(mutGaussian, mu=0, sigma=sigma, indpb=indpb)\n    # Andividual.strategy = strategy\n    strategies = parsing.strategies()\n    Andividual.strategies = [st for st in strategies]\n    print('using strategies:', Andividual.strategies)\n    print(colored(f\"Mating function is \", 'blue') + colored(Andividual.mate, 'green'))\n    print(colored(f\"Mutating function is \", 'blue') + colored(Andividual.mutate, 'green'))\n    res = evolve(evaluate, Andividual, popsize)\n    return res\n\n\nif __name__ == '__main__':\n    INSTRUMENT = sys.argv[1]\n    TOTAL_DAYS = int(sys.argv[2])\n    try:\n        popsize = int(sys.argv[3])\n    except:\n        popsize = 10\n    try:\n        strategy = sys.argv[4]\n    except:\n        strategy = 'trend_ema'\n    print(colored(\"MAKE SURE YOU RUN fab backfill_local:<days>\", 'red'))\n    print(colored(\"otherwise it's all crap\", 'red'))\n    res = main(INSTRUMENT, TOTAL_DAYS, popsize, strategy)\n    print(res)\n"
  },
  {
    "path": "scripts/genetic_algo/objective_function.py",
    "content": "import math\n\nsum = sum\n\n\ndef soft_maximum_worst_case(ind):\n    return -math.log(sum(math.exp(-f) for f in ind.fitness.values)+0.0000000000001)\n"
  },
  {
    "path": "scripts/genetic_algo/parsing.py",
    "content": "import shlex\nimport subprocess\nimport re\n\n\ndef parse_trades(stuff):\n    \"\"\"\n    >>> parse_trades(\"1 trades over 17 days (avg 0.06 trades/day)\")\n    '0.06'\n    :param stuff:\n    :return:\n    \"\"\"\n    return stuff.split(b'avg')[-1].strip().split()[0]\n\n\ndef args_for_strategy(strat):\n    ansi_escape = re.compile(b'\\x1b[^m]*m')\n    available = subprocess.check_output(shlex.split('env node ../../zenbot.js list-strategies'))\n    strats = [ansi_escape.sub(b'', strat.strip()) for strat in available.split(b'\\n\\n')]\n    groups = [group.splitlines() for group in strats]\n    output = {split[0].split()[0]: split[1:] for split in groups if split}\n    result = {strategy: [line.strip().strip(b'-').split(b'=')[0]\n                         for line in lines if b'--' in line]\n              for strategy, lines in output.items()}\n    result = {key.decode(): [p.decode() for p in val]\n              for key, val in result.items()}\n\n    return result[strat]\n\n\ndef strategies():\n    ansi_escape = re.compile(b'\\x1b[^m]*m')\n    available = subprocess.check_output(shlex.split('env node ../../zenbot.js list-strategies'))\n    strats = [ansi_escape.sub(b'', strat.strip()) for strat in available.split(b'\\n\\n')]\n    groups = [group.splitlines() for group in strats]\n    output = {split[0].split()[0]: split[1:] for split in groups if split}\n    result = {strategy: [line.strip().strip(b'-').split(b'=')[0]\n                         for line in lines if b'--' in line]\n              for strategy, lines in output.items()}\n    result = [key.decode() for key, val in result.items()]\n    return result\n"
  },
  {
    "path": "scripts/genetic_algo/requirements.txt",
    "content": "deap\nnumpy\nnetworkx\nmatplotlib\nscoop\nnames\nfabric3\ntermcolor\n"
  },
  {
    "path": "scripts/genetic_algo/tests/__init__.py",
    "content": ""
  },
  {
    "path": "scripts/genetic_algo/tests/test_evaluation.py",
    "content": "from evaluation import fuzz_product\nfrom parsing import args_for_strategy\nfrom unittest.mock import patch\n\n\ndef test_parse_strategies():\n    asd = b'''\nmacd\n  description:\n    Buy when (MACD - Signal > 0) and sell when (MACD - Signal < 0).\n  options:\n    --period=<value>  period length (default: 1h)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --ema_short_period=<value>  number of periods for the shorter EMA (default: 12)\n    --ema_long_period=<value>  number of periods for the longer EMA (default: 26)\n    --signal_period=<value>  number of periods for the signal EMA (default: 9)\n    --up_trend_threshold=<value>  threshold to trigger a buy signal (default: 0)\n    --down_trend_threshold=<value>  threshold to trigger a sold signal (default: 0)\n    --overbought_rsi_periods=<value>  number of periods for overbought RSI (default: 25)\n    --overbought_rsi=<value>  sold when RSI exceeds this value (default: 70)\nsar\n  description:\n    Parabolic SAR\n  options:\n    --period=<value>  period length (default: 2m)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --sar_af=<value>  acceleration factor for parabolic SAR (default: 0.015)\n    --sar_max_af=<value>  max acceleration factor for parabolic SAR (default: 0.3)\ntrend_ema (default)\n  description:\n    Buy when (EMA - last(EMA) > 0) and sell when (EMA - last(EMA) < 0). Optional buy on low RSI.\n  options:\n    --period=<value>  period length (default: 10m)\n    --min_periods=<value>  min. number of history periods (default: 52)\n    --trend_ema=<value>  number of periods for trend EMA (default: 20)\n    --neutral_rate=<value>  avoid trades if abs(trend_ema) under this float (0 to disable, \"auto\" for a variable filter) (default: 0.06)\n    --oversold_rsi_periods=<value>  number of periods for oversold RSI (default: 20)\n    --oversold_rsi=<value>  buy when RSI reaches this value (default: 30)\n    '''\n\n\n    with patch('evaluation.subprocess.check_output', lambda *x, **y: asd):\n        assert args_for_strategy('sar') == ['period', 'min_periods', 'sar_af', 'sar_max_af']\n"
  },
  {
    "path": "scripts/genetic_algo/tests/test_evolution.py",
    "content": "import random\n\nfrom evolution import evolve\nfrom evolution.individual import Individual\n\n\ndef test_evolve():\n    class TestIndividual(Individual):\n        def __init__(self,*args,**kwargs):\n            super(TestIndividual, self).__init__(*args,**kwargs)\n            for x in range(5):\n                self.append(random.random())\n\n    evolve(lambda x: ((sum(x), sum(x), sum(x))), TestIndividual)\n"
  },
  {
    "path": "scripts/genetic_algo/tests/test_integration.py",
    "content": "import random\nfrom subprocess import CalledProcessError\nfrom unittest.mock import patch\n\nfrom main import main\n\ndef myoutput(cmdline):\n    print(cmdline)\n    if random.random()<0.9:\n        return str(random.random()),str(random.random())\n    else:\n        raise CalledProcessError('a','b')\ndef test_integration():\n    with patch('evaluation.runzen',myoutput) as cmd:\n        with patch('evaluation.subprocess.check_output',myoutput):\n            main('gdax.BTC-ETH',120)\n"
  },
  {
    "path": "scripts/genetic_algo/tests/test_objective.py",
    "content": "from unittest.mock import MagicMock\n\nfrom objective_function import soft_maximum_worst_case\n\n\ndef test_obj():\n    k = lambda x: MagicMock(fitness=MagicMock(values=x))\n    assert soft_maximum_worst_case(MagicMock(fitness=MagicMock(values=[1, -1.1]))) < soft_maximum_worst_case(MagicMock(fitness=MagicMock(values=[0.1, -0.1])))\n    assert soft_maximum_worst_case(k([17, -5])) < soft_maximum_worst_case(MagicMock(fitness=MagicMock(values=[7, 5])))\n    print(soft_maximum_worst_case(k([10, 10, 10, 2, 10])), soft_maximum_worst_case(k([1, 1, 1, 1, 1])))\n    assert soft_maximum_worst_case(k([10, 10, 10, -10, 10])) < soft_maximum_worst_case(k([1, 1, 1, 1, 1]))\n    assert soft_maximum_worst_case(k([-100, -100])) < soft_maximum_worst_case(k([1, 1, 1, 1, 1]))\n"
  },
  {
    "path": "scripts/genetic_algo/utils.py",
    "content": ""
  },
  {
    "path": "scripts/genetic_algo/zendividual.py",
    "content": ""
  },
  {
    "path": "scripts/genetic_backtester/darwin.js",
    "content": "#!/usr/bin/env node\n\n/* Zenbot 4 Genetic Backtester\n * Clifford Roche <clifford.roche@gmail.com>\n * 07/01/2017\n *\n * Example: ./darwin.js --selector=\"bitfinex.ETH-USD\" --days=\"10\" --currency_capital=\"5000\" --use_strategies=\"all | macd,trend_ema,etc\" --population=\"101\" --population_data=\"simulations/generation_data_NUMBERS\"\n * Params:\n * --use_strategies=<strategy_name>       One or more strategies comma separated. Requires at least one named strategy. \n * --population_data=<filename>           The filename used for continuing backtesting from a previous run.\n * --generateLaunch=<true>|<false>        Generate .sh and .bat files using the best generation discovered.\n * --ignoreLaunchFitness=<true>|<false>   If used with --generateLaunch it will always write a new launch file regardless of if the latest fitness is greater.\n * --floatScanWindow                      Time window used for analyzing data be adjusted for every generation.\n * --population=<int>                     Population per strategy.\n * --maxCores=<int>                       Maximum processes to execute at a time. Default is the # of cpu cores in the system.\n * --selector=<exchange.marketPair>       The exchange and market pair to target. For example, --selector=gdax.BTC-USDC for Coinbase Pro market with Bitcoin-USDCoin pair.\n * --asset_capital=<float>                Amount of coin available to the simulator to start with.\n * --currency_capital=<float>             Amount of capital/base currency available to the sim to start with.\n * --days=<int>                           Amount of days to use when backfilling. \n * --noStatSave=<true>|<false>            Set to true and statistics will not be saved to the simulation folder.\n * --silent=<true>|<false>                Setting to true may improve performance.\n * --runGenerations=<int>                 Set the number of generations to be used. Count shown is zero based so, count + 1 = # of generations.\n * --minTrades=<int>                      Minimum number of wins before generation is considured fit to evolve.\n * --fitnessCalcType=<wl / profit / classic / profitwl> Default: Classic. wl will score the highes for wins and losses, profit doesn't care about wins and losses only the higest end balance, classic uses original claculation / profitwl tries to get the highest profit using the lowest win/loss ratio\n *\n *\n * Any parameters for sim and/or strategy can be passed in and will override the genetic test generated parameters.\n * i.e. if --period_length=1m is passed all tests will be performed using --period_length=1m instead of trying to find that parameter.\n *\n */\n\nlet parallel = require('run-parallel-limit')\nlet Json2csvParser = require('json2csv').Parser\nlet fs = require('fs')\nlet GeneticAlgorithmCtor = require('geneticalgorithm')\nlet moment = require('moment')\nlet path = require('path')\n// eslint-disable-next-line no-unused-vars\nlet colors = require('colors')\nlet Phenotypes = require('../../lib/phenotype')\nlet Backtester = require('../../lib/backtester')\nlet argv = require('yargs').argv\nlet z = require('zero-fill')\nlet n = require('numbro')\n\n\nlet VERSION = 'Zenbot 4 Genetic Backtester v0.2.3'\n\nlet PARALLEL_LIMIT = (process.env.PARALLEL_LIMIT && +process.env.PARALLEL_LIMIT) || require('os').cpus().length\n\nlet iterationCount = 0\n\nlet selectedStrategies\nlet pools = {}\nlet simArgs\nlet populationSize = 0\nlet generationCount = 1\nlet runGenerations = undefined\nlet generationProcessing = false\nlet population_data = ''\nlet noStatSave = false\n//let floatScanWindow = false\nlet ignoreLaunchFitness = false\nlet minimumTrades = 0\nlet fitnessCalcType = 'classic'\n\nlet readSimDataFile = (iteration) => {\n  let jsonFileName = `simulations/${population_data}/gen_${generationCount}/sim_${iteration}.json`\n\n  if (fs.existsSync(jsonFileName)) {\n    let simData = JSON.parse(fs.readFileSync(jsonFileName, { encoding: 'utf8' }))\n    return simData\n  }\n  else {\n    return null\n  }\n}\n\nlet writeSimDataFile = (iteration, data) => {\n  let jsonFileName = `simulations/${population_data}/gen_${generationCount}/sim_${iteration}.json`\n  Backtester.writeFileAndFolder(jsonFileName, data)\n}\n\nfunction allStrategyNames() {\n  let pathName = path.resolve(__dirname, '..', '..', 'extensions', 'strategies')\n  return fs.readdirSync(pathName).filter(function (file) {\n    return fs.statSync(pathName + '/' + file).isDirectory()\n  })\n}\n\nfunction isUsefulKey(key) {\n  if (key == 'filename' || key == 'show_options' || key == 'sim') return false\n  return true\n}\n\nfunction generateCommandParams(input) {\n  if (!isUndefined(input) && !isUndefined(input.params)) {\n    input = input.params.replace('module.exports =', '')\n  }\n\n  input = JSON.parse(input)\n\n  var result = ''\n  var keys = Object.keys(input)\n  for (let i = 0; i < keys.length; i++) {\n    var key = keys[i]\n    if (isUsefulKey(key)) {\n      // selector should be at start before keys\n      if (key == 'selector') {\n        result = input[key] + result\n      }\n\n      else result += ' --' + key + '=' + input[key]\n    }\n  }\n  return result\n}\n\nfunction saveGenerationData(csvFileName, jsonFileName, dataCSV, dataJSON) {\n  try {\n    fs.writeFileSync(csvFileName, dataCSV)\n    console.log('> Finished writing generation csv to ' + csvFileName)\n  }\n  catch (err) {\n    throw err\n  }\n\n  try {\n    fs.writeFileSync(jsonFileName, dataJSON)\n    console.log('> Finished writing generation json to ' + jsonFileName)\n  }\n  catch (err) {\n    throw err\n  }\n}\n\n// Find the first incomplete generation of this session, where incomplete means no \"results\" files\nwhile (fs.existsSync(`simulations/${population_data}/gen_${generationCount}`)) {\n  generationCount++\n}\ngenerationCount--\n\nif (generationCount > 0 && !fs.existsSync(`simulations/${population_data}/gen_${generationCount}/results.csv`)) {\n  generationCount--\n}\n\nfunction saveLaunchFiles(saveLauchFile, configuration) {\n  if (!saveLauchFile) return\n  //let lConfiguration = configuration.replace(' sim ', ' trade ')\n  let lFilenameNix = new String().concat('./gen.', configuration.selector.toLowerCase(), '.sh')\n  let lFinenamewin32 = new String().concat('./gen.', configuration.selector.toLowerCase(), '.bat')\n  delete configuration.generateLaunch\n  delete configuration.backtester_generation\n\n  let bestOverallCommand = generateCommandParams(configuration)\n  let lastFitnessLevel = -9999.0\n\n  // get prior fitness level nix\n  if (fs.existsSync(lFilenameNix)) {\n    let lFileCont = fs.readFileSync(lFilenameNix, { encoding: 'utf8', flag: 'r' })\n    let lines = lFileCont.split('\\n')\n    if (lines.length > 2)\n      if (lines[1].includes('fitness=')) {\n        let th = lines[1].split('=')\n        lastFitnessLevel = th[1]\n      }\n  }\n\n  // get prior firness level win32\n  if (fs.existsSync(lFinenamewin32)) {\n    let lFileCont = fs.readFileSync(lFinenamewin32, { encoding: 'utf8', flag: 'r' })\n    let lines = lFileCont.split('\\n')\n    if (lines.length > 1)\n      if (lines[1].includes('fitness=')) {\n        let th = lines[1].split('=')\n        lastFitnessLevel = th[1]\n      }\n  }\n\n  //write Nix Version\n  let lNixContents = '#!/bin/bash\\n'.concat('#fitness=', configuration.fitness, '\\n',\n    'env node zenbot.js trade ',\n    bestOverallCommand, ' $@\\n')\n\n  let lWin32Contents = '@echo off\\n'.concat('rem fitness=', configuration.fitness, '\\n',\n    'node zenbot.js trade ',\n    bestOverallCommand, ' %*\\n')\n\n  if (((Number(configuration.fitness) > Number(lastFitnessLevel)) || (ignoreLaunchFitness)) && Number(configuration.fitness) > 0.0) {\n    fs.writeFileSync(lFilenameNix, lNixContents)\n    fs.writeFileSync(lFinenamewin32, lWin32Contents)\n    // using the string instead of octet as eslint compaines about an invalid number if the number starts with 0\n    fs.chmodSync(lFilenameNix, '777')\n    fs.chmodSync(lFinenamewin32, '777')\n  }\n}\n\nlet cycleCount = -1\n\nfunction isUndefined(variable) {\n  return typeof variable === typeof undefined\n}\n\nfunction simulateGeneration(generateLaunchFile) {\n  generationProcessing = true\n\n  // Find the first incomplete generation of this session, where incomplete means no \"results\" files\n  while (fs.existsSync(`simulations/${population_data}/gen_${generationCount}`)) {\n    generationCount++\n  }\n\n  generationCount--\n\n  if (generationCount > 0 && !fs.existsSync(`simulations/${population_data}/gen_${generationCount}/results.csv`)) {\n    generationCount--\n  }\n\n  if (noStatSave) {\n    cycleCount++\n    generationCount = cycleCount\n  }\n\n  let ofGenerations = (!isUndefined(runGenerations)) ? `of ${runGenerations}` : ''\n\n  console.log(`\\n\\n=== Simulating generation ${++generationCount} ${ofGenerations} ===\\n`)\n  Backtester.resetMonitor()\n  Backtester.ensureBackfill()\n\n  iterationCount = 0\n\n  let tasks = selectedStrategies.map(v => pools[v]['pool'].population().map(phenotype => {\n    return cb => {\n      phenotype.backtester_generation = iterationCount\n      phenotype.exchangeMarketPair = argv.selector\n      Backtester.trackPhenotype(phenotype)\n\n      var command\n      let simData = readSimDataFile(iterationCount)\n\n      if (simData) {\n        if (simData.result) {\n          // Found a complete and cached sim, don't run anything, just forward the results of it\n          phenotype['sim'] = simData.result\n          iterationCount++\n          return cb(null, simData.result)\n        }\n        else {\n          command = {\n            iteration: iterationCount,\n            commandString: simData.commandString,\n            queryStart: moment(simData.queryStart),\n            queryEnd: moment(simData.queryEnd)\n          }\n        }\n      }\n\n      if (!command) {\n        // Default flow, build the command to run, and cache it so there's no need to duplicate work when resuming\n        command = Backtester.buildCommand(v, phenotype, `simulations/${population_data}/gen_${generationCount}/sim_${iterationCount}_result.html`)\n        command.iteration = iterationCount\n        writeSimDataFile(iterationCount, JSON.stringify(command))\n      }\n\n      iterationCount++\n      phenotype.minTrades = minimumTrades\n      phenotype.fitnessCalcType = fitnessCalcType\n      Backtester.runCommand(v, phenotype, command, cb)\n    }\n  })).reduce((a, b) => a.concat(b))\n\n  Backtester.startMonitor()\n\n  parallel(tasks, PARALLEL_LIMIT, (err, results) => {\n    Backtester.stopMonitor(`Generation ${generationCount}`)\n\n    results = results.filter(function (r) {\n      return !!r\n    })\n\n    results.sort((a, b) => (Number(a.fitness) < Number(b.fitness)) ? 1 : ((Number(b.fitness) < Number(a.fitness)) ? -1 : 0))\n\n    const fields = [\n      {\n        \"label\": \"Selector\",\n        \"value\": \"selector\"\n      },\n      {\n        \"label\": \"Fitness\",\n        \"value\": \"fitness\"\n      },\n      {\n        \"label\": \"VS Buy Hold (%)\",\n        \"value\": \"vsBuyHold\"\n      },\n      {\n        \"label\": \"Win/Loss Ratio\",\n        \"value\": \"wlRatio\"\n      },\n      {\n        \"label\": \"# Trades/Day\",\n        \"value\": \"frequency\"\n      },\n      {\n        \"label\": \"Strategy\",\n        \"value\": \"strategy\"\n      },\n      {\n        \"label\": \"Order Type\",\n        \"value\": \"order_type\"\n      },\n      {\n        \"label\": \"Ending Balance ($)\",\n        \"value\": \"endBalance\"\n      },\n      {\n        \"label\": \"Buy Hold ($)\",\n        \"value\": \"buyHold\"\n      },\n      {\n        \"label\": \"# Wins\",\n        \"value\": \"wins\"\n      },\n      {\n        \"label\": \"# Losses\",\n        \"value\": \"losses\"\n      },\n      {\n        \"label\": \"Period\",\n        \"value\": \"period_length\"\n      },\n      {\n        \"label\": \"Min Periods\",\n        \"value\": \"min_periods\"\n      },\n      {\n        \"label\": \"# Days\",\n        \"value\": \"days\"\n      },\n      {\n        \"label\": \"Full Parameters\",\n        \"value\": \"params\"\n      }\n    ]\n\n    let json2csvParser = new Json2csvParser({ fields })\n    let dataCSV = json2csvParser.parse(results)\n    let csvFileName = `simulations/${population_data}/gen_${generationCount}/results.csv`\n    let poolData = {}\n    selectedStrategies.forEach(function (v) {\n      poolData[v] = pools[v]['pool'].population()\n    })\n\n    let jsonFileName = `simulations/${population_data}/gen_${generationCount}/results.json`\n    let dataJSON = JSON.stringify(poolData, null, 2)\n    if (!noStatSave)\n      saveGenerationData(csvFileName, jsonFileName, dataCSV, dataJSON)\n\n    //Display best of the generation\n    console.log('\\n\\nGeneration\\'s Best Results')\n    let bestOverallResult = []\n    let prefix = './zenbot.sh sim '\n    selectedStrategies.forEach((v) => {\n      let best = results.find(r => r.strategy == v)\n      let bestCommand\n\n      if (best) {\n        console.log(`(${best.strategy}) Sim Fitness ${best.fitness}, VS Buy and Hold: ${z(5, (n(best.vsBuyHold).format('0.0') + '%'), ' ').yellow} BuyAndHold Balance: ${z(5, (n(best.buyHold).format('0.000000')), ' ').yellow}  End Balance: ${z(5, (n(best.endBalance).format('0.000000')), ' ').yellow}, Wins/Losses ${best.wins}/${best.losses}, ROI ${z(5, (n(best.roi).format('0.000000')), ' ').yellow}.`)\n        bestCommand = generateCommandParams(best)\n        bestOverallResult.push(best)\n      } else {\n        console.log(`(${results[0].strategy}) Result Fitness ${results[0].fitness}, VS Buy and Hold: ${z(5, (n(results[0].vsBuyHold).format('0.0') + '%'), ' ').yellow} BuyAndHold Balance: ${z(5, (n(results[0].buyHold).format('0.000000')), ' ').yellow}  End Balance: ${z(5, (n(results[0].endBalance).format('0.000000')), ' ').yellow}, Wins/Losses ${results[0].wins}/${results[0].losses}, ROI ${z(5, (n(results.roi).format('0.000000')), ' ').yellow}.`)\n        bestCommand = generateCommandParams(results[0])\n        bestOverallResult.push(results[0])\n      }\n\n      // prepare command snippet from top result for this strat\n      if (bestCommand != '') {\n        bestCommand = prefix + bestCommand\n        bestCommand = bestCommand + ' --asset_capital=' + argv.asset_capital + ' --currency_capital=' + argv.currency_capital\n        console.log(bestCommand + '\\n')\n      }\n    })\n\n    bestOverallResult.sort((a, b) =>\n      (isUndefined(a.fitness)) ? 1 :\n        (isUndefined(b.fitness)) ? 0 :\n          (a.fitness < b.fitness) ? 1 :\n            (b.fitness < a.fitness) ? -1 : 0)\n\n    // let bestOverallCommand = generateCommandParams(bestOverallResult[0])\n    // bestOverallCommand = prefix + bestOverallCommand\n    // bestOverallCommand = bestOverallCommand + ' --asset_capital=' + argv.asset_capital + ' --currency_capital=' + argv.currency_capital\n\n    saveLaunchFiles(generateLaunchFile, bestOverallResult[0])\n\n    if (selectedStrategies.length > 1) {\n      console.log(`(${bestOverallResult[0].strategy}) Best Overall Fitness ${bestOverallResult[0].fitness}, VS Buy and Hold: ${z(5, (n(bestOverallResult[0].vsBuyHold).format('0.00') + '%'), ' ').yellow} BuyAndHold Balance: ${z(5, (n(bestOverallResult[0].buyHold).format('0.000000')), ' ').yellow}  End Balance: ${z(5, (n(bestOverallResult[0].endBalance).format('0.000000')), ' ').yellow}, Wins/Losses ${bestOverallResult[0].wins}/${bestOverallResult[0].losses}, ROI ${z(5, (n(bestOverallResult[0].roi).format('0.000000')), ' ').yellow}.`)\n    }\n\n    selectedStrategies.forEach((v) => {\n      pools[v]['pool'] = pools[v]['pool'].evolve()\n    })\n\n    if (!isUndefined(runGenerations) && runGenerations <= generationCount) {\n      process.exit()\n    }\n\n    generationProcessing = false\n  })\n}\n\nconsole.log(`\\n--==${VERSION}==--`)\nconsole.log(new Date().toUTCString() + '\\n')\n\nsimArgs = Object.assign({}, argv)\nif (!simArgs.selector) {\n  simArgs.selector = 'bitfinex.ETH-USD'\n}\n\nif (!simArgs.filename) {\n  simArgs.filename = 'none'\n}\n\nif (simArgs.help || !(simArgs.use_strategies)) {\n  console.log('--use_strategies=<stragegy_name>,<stragegy_name>,<stragegy_name>   Min one strategy, can include more than one')\n  console.log('--population_data=<filename>    filename used for continueing backtesting from previous run')\n  console.log('--generateLaunch=<true>|<false>        will generate .sh and .bat file using the best generation discovered')\n  console.log('--population=<int>    populate per strategy')\n  console.log('--maxCores=<int>    maximum processes to execute at a time default is # of cpu cores in system')\n  console.log('--selector=<exchange.marketPair>  ')\n  console.log('--asset_capital=<float>    amount coin to start sim with ')\n  console.log('--currency_capital=<float>  amount of capital/base currency to start sim with')\n  console.log('--days=<int>  amount of days to use when backfilling')\n  console.log('--noStatSave=<true>|<false>')\n  console.log('--runGenerations=<int>  if used run this number of generations, will be shown 1 less due to generations starts at 0')\n  console.log('--minTrades=<int>  Minimum wins before generation is considured fit to evolve')\n  console.log('--fitnessCalcType=<wl / profit / classic / profitwl> Default: Classic.')\n  console.log('                  wl will score the highes for wins and losses, profit does not care about wins and losses only the higest end balance,')\n  console.log('                  classic uses original claculation / profitwl tries to get the highest profit using the lowest win/loss ratio')\n  process.exit(0)\n}\n\ndelete simArgs.use_strategies\ndelete simArgs.population_data\ndelete simArgs.population\ndelete simArgs['$0'] // This comes in to argv all by itself\ndelete simArgs['_']  // This comes in to argv all by itself\n\nif (simArgs.maxCores) {\n  if (simArgs.maxCores < 1) PARALLEL_LIMIT = 1\n  else PARALLEL_LIMIT = simArgs.maxCores\n}\nfitnessCalcType = 'classic'\nif (simArgs.fitnessCalcType) {\n\n  if (simArgs.fitnessCalcType == 'classic') fitnessCalcType = 'classic'\n  if (simArgs.fitnessCalcType == 'wl') fitnessCalcType = 'wl'\n  if (simArgs.fitnessCalcType == 'profit') fitnessCalcType = 'profit'\n  if (simArgs.fitnessCalcType == 'profitwl') fitnessCalcType = 'profitwl'\n\n\n}\n\n\nif (!isUndefined(simArgs.runGenerations)) {\n  if (simArgs.runGenerations) {\n    runGenerations = simArgs.runGenerations - 1\n  }\n}\n\nlet generateLaunchFile = (simArgs.generateLaunch) ? true : false\nnoStatSave = (simArgs.noStatSave) ? true : false\n\nlet strategyName = (argv.use_strategies) ? argv.use_strategies : 'all'\npopulationSize = (argv.population) ? argv.population : 100\nminimumTrades = (argv.minTrades) ? argv.minTrades : 0\n//floatScanWindow = (argv.floatScanWindow) ? argv.floatScanWindow : false\nignoreLaunchFitness = (argv.ignoreLaunchFitness) ? argv.ignoreLaunchFitness : false\n\npopulation_data = argv.population_data || `backtest.${simArgs.selector.toLowerCase()}.${moment().format('YYYYMMDDHHmmss')}`\n\nconsole.log(`Backtesting strategy ${strategyName} ...\\n`)\nconsole.log(`Creating population of ${populationSize} ...\\n`)\n\nselectedStrategies = (strategyName === 'all') ? allStrategyNames() : strategyName.split(',')\n\nBacktester.deLint()\n\nfor (var i = 0; i < selectedStrategies.length; i++) {\n  let v = selectedStrategies[i]\n  let strategyPool = pools[v] = {}\n  let strategyData = require(path.resolve(__dirname, `../../extensions/strategies/${v}/strategy`))\n  let strategyPhenotypes = strategyData.phenotypes\n\n  if (strategyPhenotypes) {\n    let evolve = true\n    let population = []\n\n    for (var i2 = population.length; i2 < populationSize; ++i2) {\n      var lPheno = Phenotypes.create(strategyPhenotypes)\n      population.push(lPheno)\n      evolve = false\n    }\n\n    strategyPool['config'] = {\n      mutationFunction: function (phenotype) {\n        return Phenotypes.mutation(phenotype, strategyPhenotypes)\n      },\n      crossoverFunction: function (phenotypeA, phenotypeB) {\n        return Phenotypes.crossover(phenotypeA, phenotypeB, strategyPhenotypes)\n      },\n      fitnessFunction: Phenotypes.fitness,\n      doesABeatBFunction: Phenotypes.competition,\n      population: population,\n      populationSize: populationSize\n    }\n\n    strategyPool['pool'] = GeneticAlgorithmCtor(strategyPool.config)\n\n    if (evolve) {\n      strategyPool['pool'].evolve()\n    }\n  }\n  else {\n    if (strategyName === 'all') {\n      // skip it\n      selectedStrategies.splice(i, 1)\n      i--\n    }\n    else {\n      console.log(`No phenotypes definition found for strategy ${v}`)\n      process.exit(1)\n    }\n  }\n}\n\n// BEGIN - exitHandler\nvar exitHandler = function (options, exitErr) {\n  if (generationCount && options.cleanup && (isUndefined(runGenerations) || runGenerations !== generationCount)) {\n    console.log('Resume this backtest later with:')\n    var darwin_args = process.argv.slice(2, process.argv.length)\n\n    var hasPopData = false\n    var popDataArg = `--population_data=${population_data}`\n    darwin_args.forEach(function (arg) {\n      if (arg === popDataArg) {\n        hasPopData = true\n      }\n    })\n\n    if (!hasPopData) {\n      darwin_args.push(popDataArg)\n    }\n\n    console.log(`./scripts/genetic_backtester/darwin.js ${darwin_args.join(' ')}`)\n  }\n\n  if (exitErr) console.log(exitErr.stack || exitErr)\n  if (options.exit) process.exit()\n}\n\nprocess.on('exit', exitHandler.bind(null, { cleanup: true }))\n\n//catches ctrl+c event\nprocess.on('SIGINT', exitHandler.bind(null, { exit: true }))\n\n// catches \"kill pid\" (for example: nodemon restart)\nprocess.on('SIGUSR1', exitHandler.bind(null, { exit: true }))\nprocess.on('SIGUSR2', exitHandler.bind(null, { exit: true }))\n\n//catches uncaught exceptions\nprocess.on('uncaughtException', exitHandler.bind(null, { exit: true }))\n// END - exitHandler\n\nBacktester.init({\n  simArgs: simArgs,\n  simTotalCount: populationSize * selectedStrategies.length,\n  parallelLimit: PARALLEL_LIMIT,\n  writeFile: writeSimDataFile\n})\nsetInterval(() => {\n  if (generationProcessing == false) simulateGeneration(generateLaunchFile)\n}, 1000)\n"
  },
  {
    "path": "scripts/genetic_backtester/package.json",
    "content": "{\n  \"name\": \"zenbot4_auto_backtester\",\n  \"version\": \"0.2.0\",\n  \"description\": \"Parallel simulation runner with CSV results\",\n  \"dependencies\": {\n    \"geneticalgorithm\": \"git+https://github.com/panchishin/geneticalgorithm.git\",\n    \"json2csv\": \"^4.5.4\",\n    \"round-precision\": \"^1.0.0\",\n    \"run-parallel-limit\": \"^1.1.0\",\n    \"shelljs\": \"^0.8.5\",\n    \"yargs\": \"^16.2.0\",\n    \"strip-ansi\": \"^7.0.1\"\n  }\n}\n"
  },
  {
    "path": "stats/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"utf-8\">\n    <title>cexio.ETH-USD - zenbot 4.0.5 trade result</title>\n    <style type=\"text/css\">\n        html {\n            height: 100%;\n        }\n\n        body {\n            font: 10px sans-serif;\n            background-color: #1f2d35;\n            color: #888;\n            position: relative;\n        }\n\n        svg {\n            margin: 50px 0 0 0;\n            width: 100%;\n            height: auto;\n            z-index: 2;\n        }\n\n        .axis path,\n        .axis line {\n            fill: none;\n            stroke: #444;\n            shape-rendering: crispEdges;\n        }\n\n        .axis.x path {\n            stroke: none;\n        }\n\n        text {\n            fill: #888;\n        }\n\n        text.symbol {\n            fill: #BBBBBB;\n        }\n\n        path {\n            fill: none;\n            stroke-width: 1;\n        }\n\n        path.candle {\n            stroke: #888;\n        }\n\n        path.candle.up {\n            stroke: rgb(85, 255, 14);\n        }\n\n        path.candle.down {\n            fill: rgb(232, 87, 35);\n            stroke: #944329;\n        }\n\n        .close.annotation.up path {\n            stroke: #8ff;\n            stroke-width: 1;\n            fill: #8ff;\n        }\n\n        .close.annotation.up text {\n            fill: #000;\n        }\n\n        path.volume {\n            fill: #588bbd;\n        }\n\n        .indicator-plot path.line {\n            fill: none;\n            stroke-width: 1;\n        }\n\n        .ma-0 path.line {\n            stroke: #1f77b4;\n        }\n\n        .ma-1 path.line {\n            stroke: #aec7e8;\n        }\n\n        .ma-2 path.line {\n            stroke: #ff7f0e;\n        }\n\n        button {\n            position: absolute;\n            right: 110px;\n            top: 25px;\n        }\n\n        path.macd {\n            stroke: #a0f;\n        }\n\n        path.signal {\n            stroke: #0f0;\n        }\n\n        path.difference {\n            fill: #35474c;\n        }\n\n        path.rsi {\n            stroke: #09d;\n        }\n\n        path.overbought {\n            stroke: #9f9;\n            stroke-dasharray: 1, 5;\n        }\n\n        path.oversold {\n            stroke: #f99;\n            stroke-dasharray: 1, 5;\n        }\n\n        path.middle, path.zero {\n            stroke: #888;\n            stroke-opacity: 0.5;\n            stroke-dasharray: 1, 5;\n        }\n\n        .analysis path, .analysis circle {\n            stroke: blue;\n            stroke-width: 0.8;\n        }\n\n        .trendline circle {\n            stroke-width: 0;\n            display: none;\n        }\n\n        .mouseover .trendline path {\n            stroke-width: 1.2;\n        }\n\n        .mouseover .trendline circle {\n            stroke-width: 1;\n            display: inline;\n        }\n\n        .dragging .trendline path, .dragging .trendline circle {\n            stroke: darkblue;\n        }\n\n        .interaction path, .interaction circle {\n            pointer-events: all;\n        }\n\n        .interaction .body {\n            cursor: move;\n        }\n\n        .trendlines .interaction .start, .trendlines .interaction .end {\n            cursor: nwse-resize;\n        }\n\n        .supstance path {\n            stroke-dasharray: 2, 2;\n        }\n\n        .supstances .interaction path {\n            pointer-events: all;\n            cursor: ns-resize;\n        }\n\n        .mouseover .supstance path {\n            stroke-width: 1.5;\n        }\n\n        .dragging .supstance path {\n            stroke: darkblue;\n        }\n\n        .crosshair {\n            cursor: crosshair;\n        }\n\n        .crosshair path.wire {\n            stroke: #fff;\n            stroke-opacity: 0.5;\n            stroke-dasharray: 1, 5;\n        }\n\n        .crosshair .axisannotation path {\n            fill: #000;\n            stroke: #fff;\n        }\n\n        .axisannotation.y path {\n            stroke: #fff;\n        }\n\n        .tradearrow path.tradearrow {\n            stroke: none;\n        }\n\n        .tradearrow path.buy, .tradearrow path.sell {\n            fill: #ff0056;\n        }\n\n        .tradearrow path.highlight {\n            fill: none;\n            stroke-width: 2;\n        }\n\n        .tradearrow path.highlight.buy {\n            stroke: #0000FF;\n        }\n\n        .tradearrow path.highlight.sell {\n            stroke: #9900FF;\n        }\n\n        .loading {\n            width: 50%;\n            height: 50%;\n            overflow: auto;\n            margin: auto;\n            position: absolute;\n            top: 0; left: 0; bottom: 0; right: 0;\n            text-align: center;\n            font-size: 80px;\n            z-index: 1;\n            color: #888;\n        }\n\n        .no-data {\n            display: none;\n            color: #888;\n            font-size: 80px;\n            text-align: center;\n        }\n\n        .options {\n            position: absolute;\n            top: 20px;\n            left: 20px;\n            z-index: 3;\n        }\n\n        .footer {\n            position: fixed;\n            right: 20px;\n            bottom: 20px;\n            color: #aac;\n            font-size: 1.2em;\n        }\n\n        .footer a {\n            color: cyan;\n            text-decoration: none;\n        }\n        pre {\n            font-size: 2em;\n        }\n    </style>\n</head>\n<body>\n<div class=\"ticker-graph\"></div>\n<script>\n    /*! jQuery v3.0.0 | (c) jQuery Foundation | jquery.org/license */\n    !function(a,b){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error(\"jQuery requires a window with a document\");return b(a)}:b(a)}(\"undefined\"!=typeof window?window:this,function(a,b){\"use strict\";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement(\"script\");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q=\"3.0.0\",r=function(a,b){return new r.fn.init(a,b)},s=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:f.call(this)},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for(\"boolean\"==typeof g&&(j=g,g=arguments[h]||{},h++),\"object\"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=r.isArray(d)))?(e?(e=!1,f=c&&r.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:\"jQuery\"+(q+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return\"function\"===r.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return(\"number\"===b||\"string\"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return a&&\"[object Object]\"===k.call(a)?(b=e(a))?(c=l.call(b,\"constructor\")&&b.constructor,\"function\"==typeof c&&m.call(c)===n):!0:!1},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+\"\":\"object\"==typeof a||\"function\"==typeof a?j[k.call(a)]||\"object\":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,\"ms-\").replace(u,v)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?\"\":(a+\"\").replace(s,\"\")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,\"string\"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;d>f;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;return\"string\"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a)?(d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e):void 0},now:Date.now,support:o}),\"function\"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),function(a,b){j[\"[object \"+b+\"]\"]=b.toLowerCase()});function w(a){var b=!!a&&\"length\"in a&&a.length,c=r.type(a);return\"function\"===c||r.isWindow(a)?!1:\"array\"===c||0===b||\"number\"==typeof b&&b>0&&b-1 in a}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u=\"sizzle\"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},J=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",K=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",L=\"(?:\\\\\\\\.|[\\\\w-]|[^\\x00-\\\\xa0])+\",M=\"\\\\[\"+K+\"*(\"+L+\")(?:\"+K+\"*([*^$|!~]?=)\"+K+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+L+\"))|)\"+K+\"*\\\\]\",N=\":(\"+L+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+M+\")*)|.*)\\\\)|)\",O=new RegExp(K+\"+\",\"g\"),P=new RegExp(\"^\"+K+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+K+\"+$\",\"g\"),Q=new RegExp(\"^\"+K+\"*,\"+K+\"*\"),R=new RegExp(\"^\"+K+\"*([>+~]|\"+K+\")\"+K+\"*\"),S=new RegExp(\"=\"+K+\"*([^\\\\]'\\\"]*?)\"+K+\"*\\\\]\",\"g\"),T=new RegExp(N),U=new RegExp(\"^\"+L+\"$\"),V={ID:new RegExp(\"^#(\"+L+\")\"),CLASS:new RegExp(\"^\\\\.(\"+L+\")\"),TAG:new RegExp(\"^(\"+L+\"|[*])\"),ATTR:new RegExp(\"^\"+M),PSEUDO:new RegExp(\"^\"+N),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+K+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+K+\"*(?:([+-]|)\"+K+\"*(\\\\d+)|))\"+K+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+J+\")$\",\"i\"),needsContext:new RegExp(\"^\"+K+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+K+\"*((?:-\\\\d)?\\\\d*)\"+K+\"*\\\\)|)(?=[^-]|$)\",\"i\")},W=/^(?:input|select|textarea|button)$/i,X=/^h\\d$/i,Y=/^[^{]+\\{\\s*\\[native \\w/,Z=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,$=/[+~]/,_=new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+K+\"?|(\"+K+\")|.)\",\"ig\"),aa=function(a,b,c){var d=\"0x\"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g,ca=function(a,b){return b?\"\\x00\"===a?\"\\ufffd\":a.slice(0,-1)+\"\\\\\"+a.charCodeAt(a.length-1).toString(16)+\" \":\"\\\\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0},{dir:\"parentNode\",next:\"legend\"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],\"string\"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+\" \"]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if(\"object\"!==b.nodeName.toLowerCase()){(k=b.getAttribute(\"id\"))?k=k.replace(ba,ca):b.setAttribute(\"id\",k=u),o=g(a),h=o.length;while(h--)o[h]=\"#\"+k+\" \"+sa(o[h]);r=o.join(\",\"),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute(\"id\")}}}return i(a.replace(P,\"$1\"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+\" \")>d.cacheLength&&delete b[a.shift()],b[c+\" \"]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement(\"fieldset\");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split(\"|\"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return\"input\"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return(\"input\"===c||\"button\"===c)&&b.type===a}}function oa(a){return function(b){return\"label\"in b&&b.disabled===a||\"form\"in b&&b.disabled===a||\"form\"in b&&b.disabled===!1&&(b.isDisabled===a||b.isDisabled!==!a&&(\"label\"in b||!ea(b))!==a)}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&\"undefined\"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?\"HTML\"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener(\"unload\",da,!1):e.attachEvent&&e.attachEvent(\"onunload\",da)),c.attributes=ja(function(a){return a.className=\"i\",!a.getAttribute(\"className\")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment(\"\")),!a.getElementsByTagName(\"*\").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(\"undefined\"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute(\"id\")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c=\"undefined\"!=typeof a.getAttributeNode&&a.getAttributeNode(\"id\");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return\"undefined\"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if(\"*\"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return\"undefined\"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML=\"<a id='\"+u+\"'></a><select id='\"+u+\"-\\r\\\\' msallowcapture=''><option selected=''></option></select>\",a.querySelectorAll(\"[msallowcapture^='']\").length&&q.push(\"[*^$]=\"+K+\"*(?:''|\\\"\\\")\"),a.querySelectorAll(\"[selected]\").length||q.push(\"\\\\[\"+K+\"*(?:value|\"+J+\")\"),a.querySelectorAll(\"[id~=\"+u+\"-]\").length||q.push(\"~=\"),a.querySelectorAll(\":checked\").length||q.push(\":checked\"),a.querySelectorAll(\"a#\"+u+\"+*\").length||q.push(\".#.+[+~]\")}),ja(function(a){a.innerHTML=\"<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>\";var b=n.createElement(\"input\");b.setAttribute(\"type\",\"hidden\"),a.appendChild(b).setAttribute(\"name\",\"D\"),a.querySelectorAll(\"[name=d]\").length&&q.push(\"name\"+K+\"*[*^$|!~]?=\"),2!==a.querySelectorAll(\":enabled\").length&&q.push(\":enabled\",\":disabled\"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(\":disabled\").length&&q.push(\":enabled\",\":disabled\"),a.querySelectorAll(\"*,:x\"),q.push(\",.*:\")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,\"*\"),s.call(a,\"[s!='']:x\"),r.push(\"!=\",N)}),q=q.length&&new RegExp(q.join(\"|\")),r=r.length&&new RegExp(r.join(\"|\")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,\"='$1']\"),c.matchesSelector&&p&&!A[b+\" \"]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+\"\").replace(ba,ca)},ga.error=function(a){throw new Error(\"Syntax error, unrecognized expression: \"+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c=\"\",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if(\"string\"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||\"\").replace(_,aa),\"~=\"===a[2]&&(a[3]=\" \"+a[3]+\" \"),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),\"nth\"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*(\"even\"===a[3]||\"odd\"===a[3])),a[5]=+(a[7]+a[8]||\"odd\"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||\"\":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(\")\",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return\"*\"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+\" \"];return b||(b=new RegExp(\"(^|\"+K+\")\"+a+\"(\"+K+\"|$)\"))&&y(a,function(a){return b.test(\"string\"==typeof a.className&&a.className||\"undefined\"!=typeof a.getAttribute&&a.getAttribute(\"class\")||\"\")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?\"!=\"===b:b?(e+=\"\",\"=\"===b?e===c:\"!=\"===b?e!==c:\"^=\"===b?c&&0===e.indexOf(c):\"*=\"===b?c&&e.indexOf(c)>-1:\"$=\"===b?c&&e.slice(-c.length)===c:\"~=\"===b?(\" \"+e.replace(O,\" \")+\" \").indexOf(c)>-1:\"|=\"===b?e===c||e.slice(0,c.length+1)===c+\"-\":!1):!0}},CHILD:function(a,b,c,d,e){var f=\"nth\"!==a.slice(0,3),g=\"last\"!==a.slice(-4),h=\"of-type\"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?\"nextSibling\":\"previousSibling\",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p=\"only\"===a&&!o&&\"nextSibling\"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error(\"unsupported pseudo: \"+a);return e[u]?e(b):e.length>1?(c=[a,a,\"\",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,\"$1\"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||\"\")||ga.error(\"unsupported lang: \"+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute(\"xml:lang\")||b.getAttribute(\"lang\"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+\"-\");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return\"input\"===b&&!!a.checked||\"option\"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return\"input\"===b&&\"button\"===a.type||\"button\"===b},text:function(a){var b;return\"input\"===a.nodeName.toLowerCase()&&\"text\"===a.type&&(null==(b=a.getAttribute(\"type\"))||\"text\"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[0>c?c+b:c]}),even:pa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+\" \"];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P,\" \")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d=\"\";c>b;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&\"parentNode\"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e)}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||\"*\",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[\" \"],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:\" \"===a[i-2].type?\"*\":\"\"})).replace(P,\"$1\"),c,e>i&&ya(a.slice(i,e)),f>e&&ya(a=a.slice(e)),f>e&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s=\"0\",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG(\"*\",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+\" \"];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n=\"function\"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&\"ID\"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(_,aa),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=V.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(_,aa),$.test(j[0].type)&&qa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&sa(j),!a)return G.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||$.test(a)&&qa(b.parentNode)||b),e},c.sortStable=u.split(\"\").sort(B).join(\"\")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement(\"fieldset\"))}),ja(function(a){return a.innerHTML=\"<a href='#'></a>\",\"#\"===a.firstChild.getAttribute(\"href\")})||ka(\"type|href|height|width\",function(a,b,c){return c?void 0:a.getAttribute(b,\"type\"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML=\"<input/>\",a.firstChild.setAttribute(\"value\",\"\"),\"\"===a.firstChild.getAttribute(\"value\")})||ka(\"value\",function(a,b,c){return c||\"input\"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute(\"disabled\")})||ka(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[\":\"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i,C=/^.[^:#\\[\\.,]*$/;function D(a,b,c){if(r.isFunction(b))return r.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return r.grep(a,function(a){return a===b!==c});if(\"string\"==typeof b){if(C.test(b))return r.filter(b,a,c);b=r.filter(b,a)}return r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType})}r.filter=function(a,b,c){var d=b[0];return c&&(a=\":not(\"+a+\")\"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if(\"string\"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;d>b;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;d>b;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,\"string\"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,\"string\"==typeof a){if(e=\"<\"===a[0]&&\">\"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g=\"string\"!=typeof a&&r(a);if(!A.test(a))for(;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?\"string\"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,\"parentNode\")},parentsUntil:function(a,b,c){return y(a,\"parentNode\",c)},next:function(a){return J(a,\"nextSibling\")},prev:function(a){return J(a,\"previousSibling\")},nextAll:function(a){return y(a,\"nextSibling\")},prevAll:function(a){return y(a,\"previousSibling\")},nextUntil:function(a,b,c){return y(a,\"nextSibling\",c)},prevUntil:function(a,b,c){return y(a,\"previousSibling\",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return\"Until\"!==a.slice(-5)&&(d=c),d&&\"string\"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/\\S+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a=\"string\"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:\"\")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&\"string\"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c=\"\",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=\"\"),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[[\"notify\",\"progress\",r.Callbacks(\"memory\"),r.Callbacks(\"memory\"),2],[\"resolve\",\"done\",r.Callbacks(\"once memory\"),r.Callbacks(\"once memory\"),0,\"resolved\"],[\"reject\",\"fail\",r.Callbacks(\"once memory\"),r.Callbacks(\"once memory\"),1,\"rejected\"]],d=\"pending\",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},\"catch\":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+\"With\"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(f>b)){if(a=d.apply(h,i),a===c.promise())throw new TypeError(\"Thenable self-resolution\");j=a&&(\"object\"==typeof a||\"function\"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+\"With\"](this===f?void 0:this,arguments),this},f[b[0]+\"With\"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(1>=b&&(O(a,g.done(h(c)).resolve,g.reject),\"pending\"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn(\"jQuery.Deferred exception: \"+b.message,b.stack,c)};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener(\"DOMContentLoaded\",R),a.removeEventListener(\"load\",R),r.ready()}\"complete\"===d.readyState||\"loading\"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener(\"DOMContentLoaded\",R),a.addEventListener(\"load\",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if(\"object\"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){\n            return j.call(r(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},T=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function U(){this.expando=r.expando+U.uid++}U.uid=1,U.prototype={cache:function(a){var b=a[this.expando];return b||(b={},T(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if(\"string\"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&\"string\"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){r.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(K)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var V=new U,W=new U,X=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,Y=/[A-Z]/g;function Z(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d=\"data-\"+b.replace(Y,\"-$&\").toLowerCase(),c=a.getAttribute(d),\"string\"==typeof c){try{c=\"true\"===c?!0:\"false\"===c?!1:\"null\"===c?null:+c+\"\"===c?+c:X.test(c)?JSON.parse(c):c}catch(e){}W.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return W.hasData(a)||V.hasData(a)},data:function(a,b,c){return W.access(a,b,c)},removeData:function(a,b){W.remove(a,b)},_data:function(a,b,c){return V.access(a,b,c)},_removeData:function(a,b){V.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=W.get(f),1===f.nodeType&&!V.get(f,\"hasDataAttrs\"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf(\"data-\")&&(d=r.camelCase(d.slice(5)),Z(f,d,e[d])));V.set(f,\"hasDataAttrs\",!0)}return e}return\"object\"==typeof a?this.each(function(){W.set(this,a)}):S(this,function(b){var c;if(f&&void 0===b){if(c=W.get(f,a),void 0!==c)return c;if(c=Z(f,a),void 0!==c)return c}else this.each(function(){W.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;return a?(b=(b||\"fx\")+\"queue\",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||\"fx\";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};\"inprogress\"===e&&(e=c.shift(),d--),e&&(\"fx\"===b&&c.unshift(\"inprogress\"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+\"queueHooks\";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks(\"once memory\").add(function(){V.remove(a,[b+\"queue\",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return\"string\"!=typeof a&&(b=a,a=\"fx\",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),\"fx\"===a&&\"inprogress\"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||\"fx\",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};\"string\"!=typeof a&&(b=a,a=void 0),a=a||\"fx\";while(g--)c=V.get(f[g],a+\"queueHooks\"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var $=/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,_=new RegExp(\"^(?:([+-])=|)(\"+$+\")([a-z%]*)$\",\"i\"),aa=[\"Top\",\"Right\",\"Bottom\",\"Left\"],ba=function(a,b){return a=b||a,\"none\"===a.style.display||\"\"===a.style.display&&r.contains(a.ownerDocument,a)&&\"none\"===r.css(a,\"display\")},ca=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function da(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,\"\")},i=h(),j=c&&c[3]||(r.cssNumber[b]?\"\":\"px\"),k=(r.cssNumber[b]||\"px\"!==j&&+i)&&_.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||\".5\",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ea={};function fa(a){var b,c=a.ownerDocument,d=a.nodeName,e=ea[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,\"display\"),b.parentNode.removeChild(b),\"none\"===e&&(e=\"block\"),ea[d]=e,e)}function ga(a,b){for(var c,d,e=[],f=0,g=a.length;g>f;f++)d=a[f],d.style&&(c=d.style.display,b?(\"none\"===c&&(e[f]=V.get(d,\"display\")||null,e[f]||(d.style.display=\"\")),\"\"===d.style.display&&ba(d)&&(e[f]=fa(d))):\"none\"!==c&&(e[f]=\"none\",V.set(d,\"display\",c)));for(f=0;g>f;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ga(this,!0)},hide:function(){return ga(this)},toggle:function(a){return\"boolean\"==typeof a?a?this.show():this.hide():this.each(function(){ba(this)?r(this).show():r(this).hide()})}});var ha=/^(?:checkbox|radio)$/i,ia=/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]+)/i,ja=/^$|\\/(?:java|ecma)script/i,ka={option:[1,\"<select multiple='multiple'>\",\"</select>\"],thead:[1,\"<table>\",\"</table>\"],col:[2,\"<table><colgroup>\",\"</colgroup></table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],_default:[0,\"\",\"\"]};ka.optgroup=ka.option,ka.tbody=ka.tfoot=ka.colgroup=ka.caption=ka.thead,ka.th=ka.td;function la(a,b){var c=\"undefined\"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||\"*\"):\"undefined\"!=typeof a.querySelectorAll?a.querySelectorAll(b||\"*\"):[];return void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function ma(a,b){for(var c=0,d=a.length;d>c;c++)V.set(a[c],\"globalEval\",!b||V.get(b[c],\"globalEval\"))}var na=/<|&#?\\w+;/;function oa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;o>n;n++)if(f=a[n],f||0===f)if(\"object\"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(na.test(f)){g=g||l.appendChild(b.createElement(\"div\")),h=(ia.exec(f)||[\"\",\"\"])[1].toLowerCase(),i=ka[h]||ka._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=\"\"}else m.push(b.createTextNode(f));l.textContent=\"\",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=la(l.appendChild(f),\"script\"),j&&ma(g),c){k=0;while(f=g[k++])ja.test(f.type||\"\")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement(\"div\")),c=d.createElement(\"input\");c.setAttribute(\"type\",\"radio\"),c.setAttribute(\"checked\",\"checked\"),c.setAttribute(\"name\",\"t\"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML=\"<textarea>x</textarea>\",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var pa=d.documentElement,qa=/^key/,ra=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,sa=/^([^.]*)(?:\\.(.+)|)/;function ta(){return!0}function ua(){return!1}function va(){try{return d.activeElement}catch(a){}}function wa(a,b,c,d,e,f){var g,h;if(\"object\"==typeof b){\"string\"!=typeof c&&(d=d||c,c=void 0);for(h in b)wa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&(\"string\"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ua;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(pa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return\"undefined\"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||\"\").match(K)||[\"\"],j=b.length;while(j--)h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||\"\").split(\".\").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(\".\")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||\"\").match(K)||[\"\"],j=b.length;while(j--)if(h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||\"\").split(\".\").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp(\"(^|\\\\.)\"+o.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&(\"**\"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,\"handle events\")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,\"events\")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(\"click\"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||\"click\"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+\" \",void 0===d[e]&&(d[e]=f.needsContext?r(e,this).index(i)>-1:r.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){return this.originalEvent?b(this.originalEvent):void 0}:function(){return this.originalEvent?this.originalEvent[a]:void 0},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==va()&&this.focus?(this.focus(),!1):void 0},delegateType:\"focusin\"},blur:{trigger:function(){return this===va()&&this.blur?(this.blur(),!1):void 0},delegateType:\"focusout\"},click:{trigger:function(){return\"checkbox\"===this.type&&this.click&&r.nodeName(this,\"input\")?(this.click(),!1):void 0},_default:function(a){return r.nodeName(a.target,\"a\")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ta:ua,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:ua,isPropagationStopped:ua,isImmediatePropagationStopped:ua,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ta,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ta,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ta,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,\"char\":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&qa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ra.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\",pointerenter:\"pointerover\",pointerleave:\"pointerout\"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return wa(this,a,b,c,d)},one:function(a,b,c,d){return wa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+\".\"+d.namespace:d.origType,d.selector,d.handler),this;if(\"object\"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&\"function\"!=typeof b||(c=b,b=void 0),c===!1&&(c=ua),this.each(function(){r.event.remove(this,a,c,b)})}});var xa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,ya=/<script|<style|<link/i,za=/checked\\s*(?:[^=]|=\\s*.checked.)/i,Aa=/^true\\/(.*)/,Ba=/^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;function Ca(a,b){return r.nodeName(a,\"table\")&&r.nodeName(11!==b.nodeType?b:b.firstChild,\"tr\")?a.getElementsByTagName(\"tbody\")[0]||a:a}function Da(a){return a.type=(null!==a.getAttribute(\"type\"))+\"/\"+a.type,a}function Ea(a){var b=Aa.exec(a.type);return b?a.type=b[1]:a.removeAttribute(\"type\"),a}function Fa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)r.event.add(b,e,j[e][c])}W.hasData(a)&&(h=W.access(a),i=r.extend({},h),W.set(b,i))}}function Ga(a,b){var c=b.nodeName.toLowerCase();\"input\"===c&&ha.test(a.type)?b.checked=a.checked:\"input\"!==c&&\"textarea\"!==c||(b.defaultValue=a.defaultValue)}function Ha(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&\"string\"==typeof q&&!o.checkClone&&za.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(m&&(e=oa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(la(e,\"script\"),Da),i=h.length;m>l;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,la(j,\"script\"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ea),l=0;i>l;l++)j=h[l],ja.test(j.type||\"\")&&!V.access(j,\"globalEval\")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Ba,\"\"),k))}return a}function Ia(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(la(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&ma(la(d,\"script\")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(xa,\"<$1></$2>\")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=la(h),f=la(a),d=0,e=f.length;e>d;d++)Ga(f[d],g[d]);if(b)if(c)for(f=f||la(a),g=g||la(h),d=0,e=f.length;e>d;d++)Fa(f[d],g[d]);else Fa(a,h);return g=la(h,\"script\"),g.length>0&&ma(g,!i&&la(a,\"script\")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(la(a,!1)),a.textContent=\"\");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if(\"string\"==typeof a&&!ya.test(a)&&!ka[(ia.exec(a)||[\"\",\"\"])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(la(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(la(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var Ja=/^margin/,Ka=new RegExp(\"^(\"+$+\")(?!px)[a-z%]+$\",\"i\"),La=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText=\"box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%\",i.innerHTML=\"\",pa.appendChild(h);var b=a.getComputedStyle(i);c=\"1%\"!==b.top,g=\"2px\"===b.marginLeft,e=\"4px\"===b.width,i.style.marginRight=\"50%\",f=\"4px\"===b.marginRight,pa.removeChild(h),i=null}}var c,e,f,g,h=d.createElement(\"div\"),i=d.createElement(\"div\");i.style&&(i.style.backgroundClip=\"content-box\",i.cloneNode(!0).style.backgroundClip=\"\",o.clearCloneStyle=\"content-box\"===i.style.backgroundClip,h.style.cssText=\"border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute\",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Ma(a,b,c){var d,e,f,g,h=a.style;return c=c||La(a),c&&(g=c.getPropertyValue(b)||c[b],\"\"!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ka.test(g)&&Ja.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+\"\":g}function Na(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Oa=/^(none|table(?!-c[ea]).+)/,Pa={position:\"absolute\",visibility:\"hidden\",display:\"block\"},Qa={letterSpacing:\"0\",fontWeight:\"400\"},Ra=[\"Webkit\",\"Moz\",\"ms\"],Sa=d.createElement(\"div\").style;function Ta(a){if(a in Sa)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ra.length;while(c--)if(a=Ra[c]+b,a in Sa)return a}function Ua(a,b,c){var d=_.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||\"px\"):b}function Va(a,b,c,d,e){for(var f=c===(d?\"border\":\"content\")?4:\"width\"===b?1:0,g=0;4>f;f+=2)\"margin\"===c&&(g+=r.css(a,c+aa[f],!0,e)),d?(\"content\"===c&&(g-=r.css(a,\"padding\"+aa[f],!0,e)),\"margin\"!==c&&(g-=r.css(a,\"border\"+aa[f]+\"Width\",!0,e))):(g+=r.css(a,\"padding\"+aa[f],!0,e),\"padding\"!==c&&(g+=r.css(a,\"border\"+aa[f]+\"Width\",!0,e)));return g}function Wa(a,b,c){var d,e=!0,f=La(a),g=\"border-box\"===r.css(a,\"boxSizing\",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),0>=d||null==d){if(d=Ma(a,b,f),(0>d||null==d)&&(d=a.style[b]),Ka.test(d))return d;e=g&&(o.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+Va(a,b,c||(g?\"border\":\"content\"),e,f)+\"px\"}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ma(a,\"opacity\");return\"\"===c?\"1\":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{\"float\":\"cssFloat\"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=a.style;return b=r.cssProps[h]||(r.cssProps[h]=Ta(h)||h),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&\"get\"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,\"string\"===f&&(e=_.exec(c))&&e[1]&&(c=da(a,b,e),f=\"number\"),null!=c&&c===c&&(\"number\"===f&&(c+=e&&e[3]||(r.cssNumber[h]?\"\":\"px\")),o.clearCloneStyle||\"\"!==c||0!==b.indexOf(\"background\")||(i[b]=\"inherit\"),g&&\"set\"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b);return b=r.cssProps[h]||(r.cssProps[h]=Ta(h)||h),g=r.cssHooks[b]||r.cssHooks[h],g&&\"get\"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Ma(a,b,d)),\"normal\"===e&&b in Qa&&(e=Qa[b]),\"\"===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each([\"height\",\"width\"],function(a,b){r.cssHooks[b]={get:function(a,c,d){return c?!Oa.test(r.css(a,\"display\"))||a.getClientRects().length&&a.getBoundingClientRect().width?Wa(a,b,d):ca(a,Pa,function(){return Wa(a,b,d)}):void 0},set:function(a,c,d){var e,f=d&&La(a),g=d&&Va(a,b,d,\"border-box\"===r.css(a,\"boxSizing\",!1,f),f);return g&&(e=_.exec(c))&&\"px\"!==(e[3]||\"px\")&&(a.style[b]=c,c=r.css(a,b)),Ua(a,c,g)}}}),r.cssHooks.marginLeft=Na(o.reliableMarginLeft,function(a,b){return b?(parseFloat(Ma(a,\"marginLeft\"))||a.getBoundingClientRect().left-ca(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+\"px\":void 0}),r.each({margin:\"\",padding:\"\",border:\"Width\"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f=\"string\"==typeof c?c.split(\" \"):[c];4>d;d++)e[a+aa[d]+b]=f[d]||f[d-2]||f[0];return e}},Ja.test(a)||(r.cssHooks[a+b].set=Ua)}),r.fn.extend({css:function(a,b){return S(this,function(a,b,c){var d,e,f={},g=0;if(r.isArray(b)){for(d=La(a),e=b.length;e>g;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function Xa(a,b,c,d,e){return new Xa.prototype.init(a,b,c,d,e)}r.Tween=Xa,Xa.prototype={constructor:Xa,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?\"\":\"px\")},cur:function(){var a=Xa.propHooks[this.prop];return a&&a.get?a.get(this):Xa.propHooks._default.get(this)},run:function(a){var b,c=Xa.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Xa.propHooks._default.set(this),this}},Xa.prototype.init.prototype=Xa.prototype,Xa.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,\"\"),b&&\"auto\"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Xa.propHooks.scrollTop=Xa.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:\"swing\"},r.fx=Xa.prototype.init,r.fx.step={};var Ya,Za,$a=/^(?:toggle|show|hide)$/,_a=/queueHooks$/;function ab(){Za&&(a.requestAnimationFrame(ab),r.fx.tick())}function bb(){return a.setTimeout(function(){Ya=void 0}),Ya=r.now()}function cb(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=aa[d],e[\"margin\"+c]=e[\"padding\"+c]=a;return b&&(e.opacity=e.width=a),e}function db(a,b,c){for(var d,e=(gb.tweeners[b]||[]).concat(gb.tweeners[\"*\"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function eb(a,b,c){var d,e,f,g,h,i,j,k,l=\"width\"in b||\"height\"in b,m=this,n={},o=a.style,p=a.nodeType&&ba(a),q=V.get(a,\"fxshow\");c.queue||(g=r._queueHooks(a,\"fx\"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,\"fx\").length||g.empty.fire()})}));for(d in b)if(e=b[d],$a.test(e)){if(delete b[d],f=f||\"toggle\"===e,e===(p?\"hide\":\"show\")){if(\"show\"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=V.get(a,\"display\")),k=r.css(a,\"display\"),\"none\"===k&&(j?k=j:(ga([a],!0),j=a.style.display||j,k=r.css(a,\"display\"),ga([a]))),(\"inline\"===k||\"inline-block\"===k&&null!=j)&&\"none\"===r.css(a,\"float\")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j=\"none\"===k?\"\":k)),o.display=\"inline-block\")),c.overflow&&(o.overflow=\"hidden\",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?\"hidden\"in q&&(p=q.hidden):q=V.access(a,\"fxshow\",{display:j}),f&&(q.hidden=!p),p&&ga([a],!0),m.done(function(){p||ga([a]),V.remove(a,\"fxshow\");for(d in n)r.style(a,d,n[d])})),i=db(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function fb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],r.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&\"expand\"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function gb(a,b,c){var d,e,f=0,g=gb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Ya||bb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:Ya||bb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(fb(k,j.opts.specialEasing);g>f;f++)if(d=gb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,db,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}r.Animation=r.extend(gb,{tweeners:{\"*\":[function(a,b){var c=this.createTween(a,b);return da(c.elem,a,_.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=[\"*\"]):a=a.match(K);for(var c,d=0,e=a.length;e>d;d++)c=a[d],gb.tweeners[c]=gb.tweeners[c]||[],gb.tweeners[c].unshift(b)},prefilters:[eb],prefilter:function(a,b){b?gb.prefilters.unshift(a):gb.prefilters.push(a)}}),r.speed=function(a,b,c){var e=a&&\"object\"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off||d.hidden?e.duration=0:e.duration=\"number\"==typeof e.duration?e.duration:e.duration in r.fx.speeds?r.fx.speeds[e.duration]:r.fx.speeds._default,null!=e.queue&&e.queue!==!0||(e.queue=\"fx\"),e.old=e.complete,e.complete=function(){r.isFunction(e.old)&&e.old.call(this),e.queue&&r.dequeue(this,e.queue)},e},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(ba).css(\"opacity\",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=gb(this,r.extend({},a),f);(e||V.get(this,\"finish\"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return\"string\"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||\"fx\",[]),this.each(function(){var b=!0,e=null!=a&&a+\"queueHooks\",f=r.timers,g=V.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&_a.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||\"fx\"),this.each(function(){var b,c=V.get(this),d=c[a+\"queue\"],e=c[a+\"queueHooks\"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each([\"toggle\",\"show\",\"hide\"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||\"boolean\"==typeof a?c.apply(this,arguments):this.animate(cb(b,!0),a,d,e)}}),r.each({slideDown:cb(\"show\"),slideUp:cb(\"hide\"),slideToggle:cb(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(Ya=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),Ya=void 0},r.fx.timer=function(a){r.timers.push(a),a()?r.fx.start():r.timers.pop()},r.fx.interval=13,r.fx.start=function(){Za||(Za=a.requestAnimationFrame?a.requestAnimationFrame(ab):a.setInterval(r.fx.tick,r.fx.interval))},r.fx.stop=function(){a.cancelAnimationFrame?a.cancelAnimationFrame(Za):a.clearInterval(Za),Za=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||\"fx\",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement(\"input\"),b=d.createElement(\"select\"),c=b.appendChild(d.createElement(\"option\"));a.type=\"checkbox\",o.checkOn=\"\"!==a.value,o.optSelected=c.selected,a=d.createElement(\"input\"),a.value=\"t\",a.type=\"radio\",o.radioValue=\"t\"===a.value}();var hb,ib=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return S(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return\"undefined\"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?hb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&\"set\"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+\"\"),c):e&&\"get\"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&\"radio\"===b&&r.nodeName(a,\"input\")){var c=a.value;return a.setAttribute(\"type\",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c);\n        }}),hb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\\w+/g),function(a,b){var c=ib[b]||r.find.attr;ib[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ib[g],ib[g]=e,e=null!=c(a,b,d)?g:null,ib[g]=f),e}});var jb=/^(?:input|select|textarea|button)$/i,kb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&\"set\"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&\"get\"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,\"tabindex\");return b?parseInt(b,10):jb.test(a.nodeName)||kb.test(a.nodeName)&&a.href?0:-1}}},propFix:{\"for\":\"htmlFor\",\"class\":\"className\"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],function(){r.propFix[this.toLowerCase()]=this});var lb=/[\\t\\r\\n\\f]/g;function mb(a){return a.getAttribute&&a.getAttribute(\"class\")||\"\"}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,mb(this)))});if(\"string\"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(\" \"+e+\" \").replace(lb,\" \")){g=0;while(f=b[g++])d.indexOf(\" \"+f+\" \")<0&&(d+=f+\" \");h=r.trim(d),e!==h&&c.setAttribute(\"class\",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,mb(this)))});if(!arguments.length)return this.attr(\"class\",\"\");if(\"string\"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(\" \"+e+\" \").replace(lb,\" \")){g=0;while(f=b[g++])while(d.indexOf(\" \"+f+\" \")>-1)d=d.replace(\" \"+f+\" \",\" \");h=r.trim(d),e!==h&&c.setAttribute(\"class\",h)}}return this},toggleClass:function(a,b){var c=typeof a;return\"boolean\"==typeof b&&\"string\"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,mb(this),b),b)}):this.each(function(){var b,d,e,f;if(\"string\"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&\"boolean\"!==c||(b=mb(this),b&&V.set(this,\"__className__\",b),this.setAttribute&&this.setAttribute(\"class\",b||a===!1?\"\":V.get(this,\"__className__\")||\"\"))})},hasClass:function(a){var b,c,d=0;b=\" \"+a+\" \";while(c=this[d++])if(1===c.nodeType&&(\" \"+mb(c)+\" \").replace(lb,\" \").indexOf(b)>-1)return!0;return!1}});var nb=/\\r/g,ob=/[\\x20\\t\\r\\n\\f]+/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e=\"\":\"number\"==typeof e?e+=\"\":r.isArray(e)&&(e=r.map(e,function(a){return null==a?\"\":a+\"\"})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&\"set\"in b&&void 0!==b.set(this,e,\"value\")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&\"get\"in b&&void 0!==(c=b.get(e,\"value\"))?c:(c=e.value,\"string\"==typeof c?c.replace(nb,\"\"):null==c?\"\":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,\"value\");return null!=b?b:r.trim(r.text(a)).replace(ob,\" \")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f=\"select-one\"===a.type,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,\"optgroup\"))){if(b=r(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each([\"radio\",\"checkbox\"],function(){r.valHooks[this]={set:function(a,b){return r.isArray(b)?a.checked=r.inArray(r(a).val(),b)>-1:void 0}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute(\"value\")?\"on\":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,\"type\")?b.type:b,q=l.call(b,\"namespace\")?b.namespace.split(\".\"):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(\".\")>-1&&(q=p.split(\".\"),p=q.shift(),q.sort()),k=p.indexOf(\":\")<0&&\"on\"+p,b=b[r.expando]?b:new r.Event(p,\"object\"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join(\".\"),b.rnamespace=b.namespace?new RegExp(\"(^|\\\\.)\"+q.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,\"events\")||{})[b.type]&&V.get(h,\"handle\"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?r.event.trigger(a,b,c,!0):void 0}}),r.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin=\"onfocusin\"in a,o.focusin||r.each({focus:\"focusin\",blur:\"focusout\"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\\?/;r.parseXML=function(b){var c;if(!b||\"string\"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,\"text/xml\")}catch(d){c=void 0}return c&&!c.getElementsByTagName(\"parsererror\").length||r.error(\"Invalid XML: \"+b),c};var tb=/\\[\\]$/,ub=/\\r?\\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+\"[\"+(\"object\"==typeof e&&null!=e?b:\"\")+\"]\",e,c,d)});else if(c||\"object\"!==r.type(b))d(a,b);else for(e in b)xb(a+\"[\"+e+\"]\",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+\"=\"+encodeURIComponent(null==c?\"\":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join(\"&\")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,\"elements\");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(\":disabled\")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ha.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,\"\\r\\n\")}}):{name:b.name,value:c.replace(ub,\"\\r\\n\")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\\/\\//,Fb={},Gb={},Hb=\"*/\".concat(\"*\"),Ib=d.createElement(\"a\");Ib.href=qb.href;function Jb(a){return function(b,c){\"string\"!=typeof b&&(c=b,b=\"*\");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])\"+\"===d[0]?(d=d.slice(1)||\"*\",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return\"string\"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e[\"*\"]&&g(\"*\")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while(\"*\"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader(\"Content-Type\"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+\" \"+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if(\"*\"===f)f=i;else if(\"*\"!==i&&i!==f){if(g=j[i+\" \"+f]||j[\"* \"+f],!g)for(e in j)if(h=e.split(\" \"),h[1]===f&&(g=j[i+\" \"+h[0]]||j[\"* \"+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a[\"throws\"])b=g(b);else try{b=g(b)}catch(l){return{state:\"parsererror\",error:g?l:\"No conversion from \"+i+\" to \"+f}}}return{state:\"success\",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:\"GET\",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":Hb,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/\\bxml\\b/,html:/\\bhtml/,json:/\\bjson\\b/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":JSON.parse,\"text xml\":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){\"object\"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks(\"once memory\"),u=o.statusCode||{},v={},w={},x=\"canceled\",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+\"\").replace(Eb,qb.protocol+\"//\"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||\"*\").toLowerCase().match(K)||[\"\"],null==o.crossDomain){j=d.createElement(\"a\");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+\"//\"+Ib.host!=j.protocol+\"//\"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&\"string\"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger(\"ajaxStart\"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,\"\"),o.hasContent?o.data&&o.processData&&0===(o.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&(o.data=o.data.replace(yb,\"+\")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?\"&\":\"?\")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,\"\"),n=(sb.test(f)?\"&\":\"?\")+\"_=\"+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader(\"If-Modified-Since\",r.lastModified[f]),r.etag[f]&&y.setRequestHeader(\"If-None-Match\",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader(\"Content-Type\",o.contentType),y.setRequestHeader(\"Accept\",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+(\"*\"!==o.dataTypes[0]?\", \"+Hb+\"; q=0.01\":\"\"):o.accepts[\"*\"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x=\"abort\",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger(\"ajaxSend\",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort(\"timeout\")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,\"No Transport\");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||\"\",y.readyState=b>0?4:0,j=b>=200&&300>b||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader(\"Last-Modified\"),w&&(r.lastModified[f]=w),w=y.getResponseHeader(\"etag\"),w&&(r.etag[f]=w)),204===b||\"HEAD\"===o.type?x=\"nocontent\":304===b?x=\"notmodified\":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x=\"error\",0>b&&(b=0))),y.status=b,y.statusText=(c||x)+\"\",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?\"ajaxSuccess\":\"ajaxError\",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger(\"ajaxComplete\",[y,o]),--r.active||r.event.trigger(\"ajaxStop\")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,\"json\")},getScript:function(a,b){return r.get(a,void 0,b,\"script\")}}),r.each([\"get\",\"post\"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:\"GET\",dataType:\"script\",cache:!0,async:!1,global:!1,\"throws\":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not(\"body\").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&\"withCredentials\"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;return o.cors||Pb&&!b.crossDomain?{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e[\"X-Requested-With\"]||(e[\"X-Requested-With\"]=\"XMLHttpRequest\");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,\"abort\"===a?h.abort():\"error\"===a?\"number\"!=typeof h.status?f(0,\"error\"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,\"text\"!==(h.responseType||\"text\")||\"string\"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c(\"error\"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c(\"abort\");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}:void 0}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/\\b(?:java|ecma)script\\b/},converters:{\"text script\":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter(\"script\",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type=\"GET\")}),r.ajaxTransport(\"script\",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(\"<script>\").prop({charset:a.scriptCharset,src:a.url}).on(\"load error\",c=function(a){b.remove(),c=null,a&&f(\"error\"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Qb=[],Rb=/(=)\\?(?=&|$)|\\?\\?/;r.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var a=Qb.pop()||r.expando+\"_\"+rb++;return this[a]=!0,a}}),r.ajaxPrefilter(\"json jsonp\",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Rb.test(b.url)?\"url\":\"string\"==typeof b.data&&0===(b.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Rb.test(b.data)&&\"data\");return h||\"jsonp\"===b.dataTypes[0]?(e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Rb,\"$1\"+e):b.jsonp!==!1&&(b.url+=(sb.test(b.url)?\"&\":\"?\")+b.jsonp+\"=\"+e),b.converters[\"script json\"]=function(){return g||r.error(e+\" was not called\"),g[0]},b.dataTypes[0]=\"json\",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Qb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),\"script\"):void 0}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument(\"\").body;return a.innerHTML=\"<form></form><form></form>\",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if(\"string\"!=typeof a)return[];\"boolean\"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(\"\"),e=b.createElement(\"base\"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=B.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=oa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(\" \");return h>-1&&(d=r.trim(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&\"object\"==typeof b&&(e=\"POST\"),g.length>0&&r.ajax({url:a,type:e||\"GET\",dataType:\"html\",data:b}).done(function(a){f=arguments,g.html(d?r(\"<div>\").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length};function Sb(a){return r.isWindow(a)?a:9===a.nodeType&&a.defaultView}r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,\"position\"),l=r(a),m={};\"static\"===k&&(a.style.position=\"relative\"),h=l.offset(),f=r.css(a,\"top\"),i=r.css(a,\"left\"),j=(\"absolute\"===k||\"fixed\"===k)&&(f+i).indexOf(\"auto\")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),\"using\"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Sb(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return\"fixed\"===r.css(c,\"position\")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),r.nodeName(a[0],\"html\")||(d=a.offset()),d={top:d.top+r.css(a[0],\"borderTopWidth\",!0),left:d.left+r.css(a[0],\"borderLeftWidth\",!0)}),{top:b.top-d.top-r.css(c,\"marginTop\",!0),left:b.left-d.left-r.css(c,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&\"static\"===r.css(a,\"position\"))a=a.offsetParent;return a||pa})}}),r.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(a,b){var c=\"pageYOffset\"===b;r.fn[a]=function(d){return S(this,function(a,d,e){var f=Sb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each([\"top\",\"left\"],function(a,b){r.cssHooks[b]=Na(o.pixelPosition,function(a,c){return c?(c=Ma(a,b),Ka.test(c)?r(a).position()[b]+\"px\":c):void 0})}),r.each({Height:\"height\",Width:\"width\"},function(a,b){r.each({padding:\"inner\"+a,content:b,\"\":\"outer\"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||\"boolean\"!=typeof e),h=c||(e===!0||f===!0?\"margin\":\"border\");return S(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf(\"outer\")?b[\"inner\"+a]:b.document.documentElement[\"client\"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body[\"scroll\"+a],f[\"scroll\"+a],b.body[\"offset\"+a],f[\"offset\"+a],f[\"client\"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,\"**\"):this.off(b,a||\"**\",c)}}),r.parseJSON=JSON.parse,\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return r});var Tb=a.jQuery,Ub=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Ub),b&&a.jQuery===r&&(a.jQuery=Tb),r},b||(a.jQuery=a.$=r),r});\n</script>\n<script>\n    // https://d3js.org Version 4.8.0. Copyright 2017 Mike Bostock.\n    (function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?n(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],n):n(t.d3=t.d3||{})})(this,function(t){\"use strict\";function n(t){return function(n,e){return Rs(t(n),e)}}function e(t,n){return[t,n]}function r(t,n,e){var r=(n-t)/Math.max(0,e),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=Qs?10:o>=Ks?5:o>=tf?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=Qs?10:o>=Ks?5:o>=tf?2:1)}function i(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=Qs?i*=10:o>=Ks?i*=5:o>=tf&&(i*=2),n<t?-i:i}function o(t){return t.length}function u(t){return\"translate(\"+t+\",0)\"}function a(t){return\"translate(0,\"+t+\")\"}function c(t){var n=t.bandwidth()/2;return t.round()&&(n=Math.round(n)),function(e){return t(e)+n}}function s(){return!this.__axis}function f(t,n){function e(e){var u=null==o?n.ticks?n.ticks.apply(n,i):n.domain():o,a=null==f?n.tickFormat?n.tickFormat.apply(n,i):xf:f,g=Math.max(l,0)+p,y=n.range(),m=y[0]+.5,x=y[y.length-1]+.5,b=(n.bandwidth?c:xf)(n.copy()),w=e.selection?e.selection():e,M=w.selectAll(\".domain\").data([null]),T=w.selectAll(\".tick\").data(u,n).order(),S=T.exit(),N=T.enter().append(\"g\").attr(\"class\",\"tick\"),k=T.select(\"line\"),E=T.select(\"text\");M=M.merge(M.enter().insert(\"path\",\".tick\").attr(\"class\",\"domain\").attr(\"stroke\",\"#000\")),T=T.merge(N),k=k.merge(N.append(\"line\").attr(\"stroke\",\"#000\").attr(r+\"2\",d*l).attr(v+\"1\",.5).attr(v+\"2\",.5)),E=E.merge(N.append(\"text\").attr(\"fill\",\"#000\").attr(r,d*g).attr(v,.5).attr(\"dy\",t===bf?\"0em\":t===Mf?\"0.71em\":\"0.32em\")),e!==w&&(M=M.transition(e),T=T.transition(e),k=k.transition(e),E=E.transition(e),S=S.transition(e).attr(\"opacity\",Sf).attr(\"transform\",function(t){return isFinite(t=b(t))?_(t):this.getAttribute(\"transform\")}),N.attr(\"opacity\",Sf).attr(\"transform\",function(t){var n=this.parentNode.__axis;return _(n&&isFinite(n=n(t))?n:b(t))})),S.remove(),M.attr(\"d\",t===Tf||t==wf?\"M\"+d*h+\",\"+m+\"H0.5V\"+x+\"H\"+d*h:\"M\"+m+\",\"+d*h+\"V0.5H\"+x+\"V\"+d*h),T.attr(\"opacity\",1).attr(\"transform\",function(t){return _(b(t))}),k.attr(r+\"2\",d*l),E.attr(r,d*g).text(a),w.filter(s).attr(\"fill\",\"none\").attr(\"font-size\",10).attr(\"font-family\",\"sans-serif\").attr(\"text-anchor\",t===wf?\"start\":t===Tf?\"end\":\"middle\"),w.each(function(){this.__axis=b})}var r,i=[],o=null,f=null,l=6,h=6,p=3,d=t===bf||t===Tf?-1:1,v=t===Tf||t===wf?(r=\"x\",\"y\"):(r=\"y\",\"x\"),_=t===bf||t===Mf?u:a;return e.scale=function(t){return arguments.length?(n=t,e):n},e.ticks=function(){return i=mf.call(arguments),e},e.tickArguments=function(t){return arguments.length?(i=null==t?[]:mf.call(t),e):i.slice()},e.tickValues=function(t){return arguments.length?(o=null==t?null:mf.call(t),e):o&&o.slice()},e.tickFormat=function(t){return arguments.length?(f=t,e):f},e.tickSize=function(t){return arguments.length?(l=h=+t,e):l},e.tickSizeInner=function(t){return arguments.length?(l=+t,e):l},e.tickSizeOuter=function(t){return arguments.length?(h=+t,e):h},e.tickPadding=function(t){return arguments.length?(p=+t,e):p},e}function l(t){return f(bf,t)}function h(t){return f(wf,t)}function p(t){return f(Mf,t)}function d(t){return f(Tf,t)}function v(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+\"\")||t in r)throw new Error(\"illegal type: \"+t);r[t]=[]}return new _(r)}function _(t){this._=t}function g(t,n){return t.trim().split(/^|\\s+/).map(function(t){var e=\"\",r=t.indexOf(\".\");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);return{type:t,name:e}})}function y(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}function m(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=Nf,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}function x(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===kf&&n.documentElement.namespaceURI===kf?n.createElement(t):n.createElementNS(e,t)}}function b(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function w(){return new M}function M(){this._=\"@\"+(++zf).toString(36)}function T(t,n,e){return t=S(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function S(n,e,r){return function(i){var o=t.event;t.event=i;try{n.call(this,this.__data__,e,r)}finally{t.event=o}}}function N(t){return t.trim().split(/^|\\s+/).map(function(t){var n=\"\",e=t.indexOf(\".\");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}})}function k(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.capture);++i?n.length=i:delete this.__on}}}function E(t,n,e){var r=Uf.hasOwnProperty(t.type)?T:S;return function(i,o,u){var a,c=this.__on,s=r(n,o,u);if(c)for(var f=0,l=c.length;f<l;++f)if((a=c[f]).type===t.type&&a.name===t.name)return this.removeEventListener(a.type,a.listener,a.capture),this.addEventListener(a.type,a.listener=s,a.capture=e),void(a.value=n);this.addEventListener(t.type,s,e),a={type:t.type,name:t.name,value:n,listener:s,capture:e},c?c.push(a):this.__on=[a]}}function A(n,e,r,i){var o=t.event;n.sourceEvent=t.event,t.event=n;try{return e.apply(r,i)}finally{t.event=o}}function C(){}function z(){return[]}function P(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function L(t,n,e,r,i,o){for(var u,a=0,c=n.length,s=o.length;a<s;++a)(u=n[a])?(u.__data__=o[a],r[a]=u):e[a]=new P(t,o[a]);for(;a<c;++a)(u=n[a])&&(i[a]=u)}function R(t,n,e,r,i,o,u){var a,c,s,f={},l=n.length,h=o.length,p=new Array(l);for(a=0;a<l;++a)(c=n[a])&&(p[a]=s=Zf+u.call(c,c.__data__,a,n),s in f?i[a]=c:f[s]=c);for(a=0;a<h;++a)s=Zf+u.call(t,o[a],a,o),(c=f[s])?(r[a]=c,c.__data__=o[a],f[s]=null):e[a]=new P(t,o[a]);for(a=0;a<l;++a)(c=n[a])&&f[p[a]]===c&&(i[a]=c)}function q(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function U(t){return function(){this.removeAttribute(t)}}function D(t){return function(){this.removeAttributeNS(t.space,t.local)}}function O(t,n){return function(){this.setAttribute(t,n)}}function F(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function I(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function Y(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function B(t){return function(){this.style.removeProperty(t)}}function j(t,n,e){return function(){this.style.setProperty(t,n,e)}}function H(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function X(t){return function(){delete this[t]}}function V(t,n){return function(){this[t]=n}}function $(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function W(t){return t.trim().split(/^|\\s+/)}function Z(t){return t.classList||new G(t)}function G(t){this._node=t,this._names=W(t.getAttribute(\"class\")||\"\")}function J(t,n){for(var e=Z(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function Q(t,n){for(var e=Z(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function K(t){return function(){J(this,t)}}function tt(t){return function(){Q(this,t)}}function nt(t,n){return function(){(n.apply(this,arguments)?J:Q)(this,t)}}function et(){this.textContent=\"\"}function rt(t){return function(){this.textContent=t}}function it(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?\"\":n}}function ot(){this.innerHTML=\"\"}function ut(t){return function(){this.innerHTML=t}}function at(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?\"\":n}}function ct(){this.nextSibling&&this.parentNode.appendChild(this)}function st(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ft(){return null}function lt(){var t=this.parentNode;t&&t.removeChild(this)}function ht(t,n,e){var r=cl(t),i=r.CustomEvent;i?i=new i(n,e):(i=r.document.createEvent(\"Event\"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function pt(t,n){return function(){return ht(this,t,n)}}function dt(t,n){return function(){return ht(this,t,n.apply(this,arguments))}}function vt(t,n){this._groups=t,this._parents=n}function _t(){return new vt([[document.documentElement]],bl)}function gt(){t.event.stopImmediatePropagation()}function yt(t,n){var e=t.document.documentElement,r=wl(t).on(\"dragstart.drag\",null);n&&(r.on(\"click.drag\",Nl,!0),setTimeout(function(){r.on(\"click.drag\",null)},0)),\"onselectstart\"in e?r.on(\"selectstart.drag\",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}function mt(t,n,e,r,i,o,u,a,c,s){this.target=t,this.type=n,this.subject=e,this.identifier=r,this.active=i,this.x=o,this.y=u,this.dx=a,this.dy=c,this._=s}function xt(){return!t.event.button}function bt(){return this.parentNode}function wt(n){return null==n?{x:t.event.x,y:t.event.y}:n}function Mt(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function Tt(){}function St(t){var n;return t=(t+\"\").trim().toLowerCase(),(n=Rl.exec(t))?(n=parseInt(n[1],16),new Ct(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1)):(n=ql.exec(t))?Nt(parseInt(n[1],16)):(n=Ul.exec(t))?new Ct(n[1],n[2],n[3],1):(n=Dl.exec(t))?new Ct(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=Ol.exec(t))?kt(n[1],n[2],n[3],n[4]):(n=Fl.exec(t))?kt(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Il.exec(t))?zt(n[1],n[2]/100,n[3]/100,1):(n=Yl.exec(t))?zt(n[1],n[2]/100,n[3]/100,n[4]):Bl.hasOwnProperty(t)?Nt(Bl[t]):\"transparent\"===t?new Ct(NaN,NaN,NaN,0):null}function Nt(t){return new Ct(t>>16&255,t>>8&255,255&t,1)}function kt(t,n,e,r){return r<=0&&(t=n=e=NaN),new Ct(t,n,e,r)}function Et(t){return t instanceof Tt||(t=St(t)),t?(t=t.rgb(),new Ct(t.r,t.g,t.b,t.opacity)):new Ct}function At(t,n,e,r){return 1===arguments.length?Et(t):new Ct(t,n,e,null==r?1:r)}function Ct(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function zt(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Rt(t,n,e,r)}function Pt(t){if(t instanceof Rt)return new Rt(t.h,t.s,t.l,t.opacity);if(t instanceof Tt||(t=St(t)),!t)return new Rt;if(t instanceof Rt)return t;t=t.rgb();var n=t.r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),u=NaN,a=o-i,c=(o+i)/2;return a?(u=n===o?(e-r)/a+6*(e<r):e===o?(r-n)/a+2:(n-e)/a+4,a/=c<.5?o+i:2-o-i,u*=60):a=c>0&&c<1?0:u,new Rt(u,a,c,t.opacity)}function Lt(t,n,e,r){return 1===arguments.length?Pt(t):new Rt(t,n,e,null==r?1:r)}function Rt(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function qt(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function Ut(t){if(t instanceof Ot)return new Ot(t.l,t.a,t.b,t.opacity);if(t instanceof Xt){var n=t.h*jl;return new Ot(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}t instanceof Ct||(t=Et(t));var e=Bt(t.r),r=Bt(t.g),i=Bt(t.b),o=Ft((.4124564*e+.3575761*r+.1804375*i)/Xl),u=Ft((.2126729*e+.7151522*r+.072175*i)/Vl);return new Ot(116*u-16,500*(o-u),200*(u-Ft((.0193339*e+.119192*r+.9503041*i)/$l)),t.opacity)}function Dt(t,n,e,r){return 1===arguments.length?Ut(t):new Ot(t,n,e,null==r?1:r)}function Ot(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function Ft(t){return t>Jl?Math.pow(t,1/3):t/Gl+Wl}function It(t){return t>Zl?t*t*t:Gl*(t-Wl)}function Yt(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Bt(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function jt(t){if(t instanceof Xt)return new Xt(t.h,t.c,t.l,t.opacity);t instanceof Ot||(t=Ut(t));var n=Math.atan2(t.b,t.a)*Hl;return new Xt(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Ht(t,n,e,r){return 1===arguments.length?jt(t):new Xt(t,n,e,null==r?1:r)}function Xt(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}function Vt(t){if(t instanceof Wt)return new Wt(t.h,t.s,t.l,t.opacity);t instanceof Ct||(t=Et(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(oh*r+rh*n-ih*e)/(oh+rh-ih),o=r-i,u=(eh*(e-i)-th*o)/nh,a=Math.sqrt(u*u+o*o)/(eh*i*(1-i)),c=a?Math.atan2(u,o)*Hl-120:NaN;return new Wt(c<0?c+360:c,a,i,t.opacity)}function $t(t,n,e,r){return 1===arguments.length?Vt(t):new Wt(t,n,e,null==r?1:r)}function Wt(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Zt(t,n,e,r,i){var o=t*t,u=o*t;return((1-3*t+3*o-u)*n+(4-6*o+3*u)*e+(1+3*t+3*o-3*u)*r+u*i)/6}function Gt(t,n){return function(e){return t+e*n}}function Jt(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}function Qt(t,n){var e=n-t;return e?Gt(t,e>180||e<-180?e-360*Math.round(e/360):e):dh(isNaN(t)?n:t)}function Kt(t){return 1==(t=+t)?tn:function(n,e){return e-n?Jt(n,e,t):dh(isNaN(n)?e:n)}}function tn(t,n){var e=n-t;return e?Gt(t,e):dh(isNaN(t)?n:t)}function nn(t){return function(n){var e,r,i=n.length,o=new Array(i),u=new Array(i),a=new Array(i);for(e=0;e<i;++e)r=At(n[e]),o[e]=r.r||0,u[e]=r.g||0,a[e]=r.b||0;return o=t(o),u=t(u),a=t(a),r.opacity=1,function(t){return r.r=o(t),r.g=u(t),r.b=a(t),r+\"\"}}}function en(t){return function(){return t}}function rn(t){return function(n){return t(n)+\"\"}}function on(t){return\"none\"===t?Eh:(uh||(uh=document.createElement(\"DIV\"),ah=document.documentElement,ch=document.defaultView),uh.style.transform=t,t=ch.getComputedStyle(ah.appendChild(uh),null).getPropertyValue(\"transform\"),ah.removeChild(uh),t=t.slice(7,-1).split(\",\"),Ah(+t[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}function un(t){return null==t?Eh:(sh||(sh=document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\")),sh.setAttribute(\"transform\",t),(t=sh.transform.baseVal.consolidate())?(t=t.matrix,Ah(t.a,t.b,t.c,t.d,t.e,t.f)):Eh)}function an(t,n,e,r){function i(t){return t.length?t.pop()+\" \":\"\"}function o(t,r,i,o,u,a){if(t!==i||r!==o){var c=u.push(\"translate(\",null,n,null,e);a.push({i:c-4,x:xh(t,i)},{i:c-2,x:xh(r,o)})}else(i||o)&&u.push(\"translate(\"+i+n+o+e)}function u(t,n,e,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+\"rotate(\",null,r)-2,x:xh(t,n)})):n&&e.push(i(e)+\"rotate(\"+n+r)}function a(t,n,e,o){t!==n?o.push({i:e.push(i(e)+\"skewX(\",null,r)-2,x:xh(t,n)}):n&&e.push(i(e)+\"skewX(\"+n+r)}function c(t,n,e,r,o,u){if(t!==e||n!==r){var a=o.push(i(o)+\"scale(\",null,\",\",null,\")\");u.push({i:a-4,x:xh(t,e)},{i:a-2,x:xh(n,r)})}else 1===e&&1===r||o.push(i(o)+\"scale(\"+e+\",\"+r+\")\")}return function(n,e){var r=[],i=[];return n=t(n),e=t(e),o(n.translateX,n.translateY,e.translateX,e.translateY,r,i),u(n.rotate,e.rotate,r,i),a(n.skewX,e.skewX,r,i),c(n.scaleX,n.scaleY,e.scaleX,e.scaleY,r,i),n=e=null,function(t){for(var n,e=-1,o=i.length;++e<o;)r[(n=i[e]).i]=n.x(t);return r.join(\"\")}}}function cn(t){return((t=Math.exp(t))+1/t)/2}function sn(t){return((t=Math.exp(t))-1/t)/2}function fn(t){return((t=Math.exp(2*t))-1)/(t+1)}function ln(t){return function(n,e){var r=t((n=Lt(n)).h,(e=Lt(e)).h),i=tn(n.s,e.s),o=tn(n.l,e.l),u=tn(n.opacity,e.opacity);return function(t){return n.h=r(t),n.s=i(t),n.l=o(t),n.opacity=u(t),n+\"\"}}}function hn(t,n){var e=tn((t=Dt(t)).l,(n=Dt(n)).l),r=tn(t.a,n.a),i=tn(t.b,n.b),o=tn(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+\"\"}}function pn(t){return function(n,e){var r=t((n=Ht(n)).h,(e=Ht(e)).h),i=tn(n.c,e.c),o=tn(n.l,e.l),u=tn(n.opacity,e.opacity);return function(t){return n.h=r(t),n.c=i(t),n.l=o(t),n.opacity=u(t),n+\"\"}}}function dn(t){return function n(e){function r(n,r){var i=t((n=$t(n)).h,(r=$t(r)).h),o=tn(n.s,r.s),u=tn(n.l,r.l),a=tn(n.opacity,r.opacity);return function(t){return n.h=i(t),n.s=o(t),n.l=u(Math.pow(t,e)),n.opacity=a(t),n+\"\"}}return e=+e,r.gamma=n,r}(1)}function vn(){return Vh||(Zh(_n),Vh=Wh.now()+$h)}function _n(){Vh=0}function gn(){this._call=this._time=this._next=null}function yn(t,n,e){var r=new gn;return r.restart(t,n,e),r}function mn(){vn(),++Yh;for(var t,n=fh;n;)(t=Vh-n._time)>=0&&n._call.call(null,t),n=n._next;--Yh}function xn(){Vh=(Xh=Wh.now())+$h,Yh=Bh=0;try{mn()}finally{Yh=0,wn(),Vh=0}}function bn(){var t=Wh.now(),n=t-Xh;n>Hh&&($h-=n,Xh=t)}function wn(){for(var t,n,e=fh,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:fh=n);lh=t,Mn(r)}function Mn(t){if(!Yh){Bh&&(Bh=clearTimeout(Bh));var n=t-Vh;n>24?(t<1/0&&(Bh=setTimeout(xn,n)),jh&&(jh=clearInterval(jh))):(jh||(Xh=Vh,jh=setInterval(bn,Hh)),Yh=1,Zh(xn))}}function Tn(t,n){var e=t.__transition;if(!e||!(e=e[n])||e.state>tp)throw new Error(\"too late\");return e}function Sn(t,n){var e=t.__transition;if(!e||!(e=e[n])||e.state>ep)throw new Error(\"too late\");return e}function Nn(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error(\"too late\");return e}function kn(t,n,e){function r(t){e.state=np,e.timer.restart(i,e.delay,e.time),e.delay<=t&&i(t-e.delay)}function i(r){var s,f,l,h;if(e.state!==np)return u();for(s in c)if(h=c[s],h.name===e.name){if(h.state===rp)return Gh(i);h.state===ip?(h.state=up,h.timer.stop(),h.on.call(\"interrupt\",t,t.__data__,h.index,h.group),delete c[s]):+s<n&&(h.state=up,h.timer.stop(),delete c[s])}if(Gh(function(){e.state===rp&&(e.state=ip,e.timer.restart(o,e.delay,e.time),o(r))}),e.state=ep,e.on.call(\"start\",t,t.__data__,e.index,e.group),e.state===ep){for(e.state=rp,a=new Array(l=e.tween.length),s=0,f=-1;s<l;++s)(h=e.tween[s].value.call(t,t.__data__,e.index,e.group))&&(a[++f]=h);a.length=f+1}}function o(n){for(var r=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(u),e.state=op,1),i=-1,o=a.length;++i<o;)a[i].call(null,r);e.state===op&&(e.on.call(\"end\",t,t.__data__,e.index,e.group),u())}function u(){e.state=up,e.timer.stop(),delete c[n];for(var r in c)return;delete t.__transition}var a,c=t.__transition;c[n]=e,e.timer=yn(r,0,e.time)}function En(t,n){var e,r;return function(){var i=Sn(this,t),o=i.tween;if(o!==e){r=e=o;for(var u=0,a=r.length;u<a;++u)if(r[u].name===n){r=r.slice(),r.splice(u,1);break}}i.tween=r}}function An(t,n,e){var r,i;if(\"function\"!=typeof e)throw new Error;return function(){var o=Sn(this,t),u=o.tween;if(u!==r){i=(r=u).slice();for(var a={name:n,value:e},c=0,s=i.length;c<s;++c)if(i[c].name===n){i[c]=a;break}c===s&&i.push(a)}o.tween=i}}function Cn(t,n,e){var r=t._id;return t.each(function(){var t=Sn(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return Nn(t,r).value[n]}}function zn(t){return function(){this.removeAttribute(t)}}function Pn(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Ln(t,n,e){var r,i;return function(){var o=this.getAttribute(t);return o===e?null:o===r?i:i=n(r=o,e)}}function Rn(t,n,e){var r,i;return function(){var o=this.getAttributeNS(t.space,t.local);return o===e?null:o===r?i:i=n(r=o,e)}}function qn(t,n,e){var r,i,o;return function(){var u,a=e(this);return null==a?void this.removeAttribute(t):(u=this.getAttribute(t),u===a?null:u===r&&a===i?o:o=n(r=u,i=a))}}function Un(t,n,e){var r,i,o;return function(){var u,a=e(this);return null==a?void this.removeAttributeNS(t.space,t.local):(u=this.getAttributeNS(t.space,t.local),u===a?null:u===r&&a===i?o:o=n(r=u,i=a))}}function Dn(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttributeNS(t.space,t.local,r(n))}}return e._value=n,e}function On(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttribute(t,r(n))}}return e._value=n,e}function Fn(t,n){return function(){Tn(this,t).delay=+n.apply(this,arguments)}}function In(t,n){return n=+n,function(){Tn(this,t).delay=n}}function Yn(t,n){return function(){Sn(this,t).duration=+n.apply(this,arguments)}}function Bn(t,n){return n=+n,function(){Sn(this,t).duration=n}}function jn(t,n){if(\"function\"!=typeof n)throw new Error;return function(){Sn(this,t).ease=n}}function Hn(t){return(t+\"\").trim().split(/^|\\s+/).every(function(t){var n=t.indexOf(\".\");return n>=0&&(t=t.slice(0,n)),!t||\"start\"===t})}function Xn(t,n,e){var r,i,o=Hn(n)?Tn:Sn;return function(){var u=o(this,t),a=u.on;a!==r&&(i=(r=a).copy()).on(n,e),u.on=i}}function Vn(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}function $n(t,n){var e,r,i;return function(){var o=cl(this).getComputedStyle(this,null),u=o.getPropertyValue(t),a=(this.style.removeProperty(t),o.getPropertyValue(t));return u===a?null:u===e&&a===r?i:i=n(e=u,r=a)}}function Wn(t){return function(){this.style.removeProperty(t)}}function Zn(t,n,e){var r,i;return function(){var o=cl(this).getComputedStyle(this,null).getPropertyValue(t);return o===e?null:o===r?i:i=n(r=o,e)}}function Gn(t,n,e){var r,i,o;return function(){var u=cl(this).getComputedStyle(this,null),a=u.getPropertyValue(t),c=e(this);return null==c&&(this.style.removeProperty(t),c=u.getPropertyValue(t)),a===c?null:a===r&&c===i?o:o=n(r=a,i=c)}}function Jn(t,n,e){function r(){var r=this,i=n.apply(r,arguments);return i&&function(n){r.style.setProperty(t,i(n),e)}}return r._value=n,r}function Qn(t){return function(){this.textContent=t}}function Kn(t){return function(){var n=t(this);this.textContent=null==n?\"\":n}}function te(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function ne(t){return _t().transition(t)}function ee(){return++Ap}function re(t){return+t}function ie(t){return t*t}function oe(t){return t*(2-t)}function ue(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function ae(t){return t*t*t}function ce(t){return--t*t*t+1}function se(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}function fe(t){return 1-Math.cos(t*qp)}function le(t){return Math.sin(t*qp)}function he(t){return(1-Math.cos(Rp*t))/2}function pe(t){return Math.pow(2,10*t-10)}function de(t){return 1-Math.pow(2,-10*t)}function ve(t){return((t*=2)<=1?Math.pow(2,10*t-10):2-Math.pow(2,10-10*t))/2}function _e(t){return 1-Math.sqrt(1-t*t)}function ge(t){return Math.sqrt(1- --t*t)}function ye(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}function me(t){return 1-xe(1-t)}function xe(t){return(t=+t)<Up?Xp*t*t:t<Op?Xp*(t-=Dp)*t+Fp:t<Yp?Xp*(t-=Ip)*t+Bp:Xp*(t-=jp)*t+Hp}function be(t){return((t*=2)<=1?1-xe(1-t):xe(t-1)+1)/2}function we(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))return Kp.time=vn(),Kp;return e}function Me(){t.event.stopImmediatePropagation()}function Te(t){return{type:t}}function Se(){return!t.event.button}function Ne(){var t=this.ownerSVGElement||this;return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function ke(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function Ee(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function Ae(t){var n=t.__brush;return n?n.dim.output(n.selection):null}function Ce(){return Pe(fd)}function ze(){return Pe(ld)}function Pe(n){function e(t){var e=t.property(\"__brush\",a).selectAll(\".overlay\").data([Te(\"overlay\")]);e.enter().append(\"rect\").attr(\"class\",\"overlay\").attr(\"pointer-events\",\"all\").attr(\"cursor\",pd.overlay).merge(e).each(function(){var t=ke(this).extent;wl(this).attr(\"x\",t[0][0]).attr(\"y\",t[0][1]).attr(\"width\",t[1][0]-t[0][0]).attr(\"height\",t[1][1]-t[0][1])}),t.selectAll(\".selection\").data([Te(\"selection\")]).enter().append(\"rect\").attr(\"class\",\"selection\").attr(\"cursor\",pd.selection).attr(\"fill\",\"#777\").attr(\"fill-opacity\",.3).attr(\"stroke\",\"#fff\").attr(\"shape-rendering\",\"crispEdges\");var i=t.selectAll(\".handle\").data(n.handles,function(t){return t.type});i.exit().remove(),i.enter().append(\"rect\").attr(\"class\",function(t){return\"handle handle--\"+t.type}).attr(\"cursor\",function(t){return pd[t.type]}),t.each(r).attr(\"fill\",\"none\").attr(\"pointer-events\",\"all\").style(\"-webkit-tap-highlight-color\",\"rgba(0,0,0,0)\").on(\"mousedown.brush touchstart.brush\",u)}function r(){var t=wl(this),n=ke(this).selection;n?(t.selectAll(\".selection\").style(\"display\",null).attr(\"x\",n[0][0]).attr(\"y\",n[0][1]).attr(\"width\",n[1][0]-n[0][0]).attr(\"height\",n[1][1]-n[0][1]),t.selectAll(\".handle\").style(\"display\",null).attr(\"x\",function(t){return\"e\"===t.type[t.type.length-1]?n[1][0]-h/2:n[0][0]-h/2}).attr(\"y\",function(t){return\"s\"===t.type[0]?n[1][1]-h/2:n[0][1]-h/2}).attr(\"width\",function(t){return\"n\"===t.type||\"s\"===t.type?n[1][0]-n[0][0]+h:h}).attr(\"height\",function(t){return\"e\"===t.type||\"w\"===t.type?n[1][1]-n[0][1]+h:h})):t.selectAll(\".selection,.handle\").style(\"display\",\"none\").attr(\"x\",null).attr(\"y\",null).attr(\"width\",null).attr(\"height\",null)}function i(t,n){return t.__brush.emitter||new o(t,n)}function o(t,n){this.that=t,this.args=n,this.state=t.__brush,this.active=0}function u(){function e(){var t=If(T);!U||w||M||(Math.abs(t[0]-O[0])>Math.abs(t[1]-O[1])?M=!0:w=!0),O=t,b=!0,od(),o()}function o(){var t;switch(m=O[0]-D[0],x=O[1]-D[1],N){case ad:case ud:k&&(m=Math.max(P-l,Math.min(R-v,m)),h=l+m,_=v+m),E&&(x=Math.max(L-p,Math.min(q-g,x)),d=p+x,y=g+x);break;case cd:k<0?(m=Math.max(P-l,Math.min(R-l,m)),h=l+m,_=v):k>0&&(m=Math.max(P-v,Math.min(R-v,m)),h=l,_=v+m),E<0?(x=Math.max(L-p,Math.min(q-p,x)),d=p+x,y=g):E>0&&(x=Math.max(L-g,Math.min(q-g,x)),d=p,y=g+x);break;case sd:k&&(h=Math.max(P,Math.min(R,l-m*k)),_=Math.max(P,Math.min(R,v+m*k))),E&&(d=Math.max(L,Math.min(q,p-x*E)),y=Math.max(L,Math.min(q,g+x*E)))}_<h&&(k*=-1,t=l,l=v,v=t,t=h,h=_,_=t,S in dd&&Y.attr(\"cursor\",pd[S=dd[S]])),y<d&&(E*=-1,t=p,p=g,g=t,t=d,d=y,y=t,S in vd&&Y.attr(\"cursor\",pd[S=vd[S]])),A.selection&&(z=A.selection),w&&(h=z[0][0],_=z[1][0]),M&&(d=z[0][1],y=z[1][1]),z[0][0]===h&&z[0][1]===d&&z[1][0]===_&&z[1][1]===y||(A.selection=[[h,d],[_,y]],r.call(T),F.brush())}function u(){if(Me(),t.event.touches){if(t.event.touches.length)return;c&&clearTimeout(c),c=setTimeout(function(){c=null},500),I.on(\"touchmove.brush touchend.brush touchcancel.brush\",null)}else yt(t.event.view,b),B.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\",null);I.attr(\"pointer-events\",\"all\"),Y.attr(\"cursor\",pd.overlay),A.selection&&(z=A.selection),Ee(z)&&(A.selection=null,r.call(T)),F.end()}function a(){switch(t.event.keyCode){case 16:U=k&&E;break;case 18:N===cd&&(k&&(v=_-m*k,l=h+m*k),E&&(g=y-x*E,p=d+x*E),N=sd,o());break;case 32:N!==cd&&N!==sd||(k<0?v=_-m:k>0&&(l=h-m),E<0?g=y-x:E>0&&(p=d-x),N=ad,Y.attr(\"cursor\",pd.selection),o());break;default:return}od()}function s(){switch(t.event.keyCode){case 16:U&&(w=M=U=!1,o());break;case 18:N===sd&&(k<0?v=_:k>0&&(l=h),E<0?g=y:E>0&&(p=d),N=cd,o());break;case 32:N===ad&&(t.event.altKey?(k&&(v=_-m*k,l=h+m*k),E&&(g=y-x*E,p=d+x*E),N=sd):(k<0?v=_:k>0&&(l=h),E<0?g=y:E>0&&(p=d),N=cd),Y.attr(\"cursor\",pd[S]),o());break;default:return}od()}if(t.event.touches){if(t.event.changedTouches.length<t.event.touches.length)return od()}else if(c)return;if(f.apply(this,arguments)){var l,h,p,d,v,_,g,y,m,x,b,w,M,T=this,S=t.event.target.__data__.type,N=\"selection\"===(t.event.metaKey?S=\"overlay\":S)?ud:t.event.altKey?sd:cd,k=n===ld?null:_d[S],E=n===fd?null:gd[S],A=ke(T),C=A.extent,z=A.selection,P=C[0][0],L=C[0][1],R=C[1][0],q=C[1][1],U=k&&E&&t.event.shiftKey,D=If(T),O=D,F=i(T,arguments).beforestart();\"overlay\"===S?A.selection=z=[[l=n===ld?P:D[0],p=n===fd?L:D[1]],[v=n===ld?R:l,g=n===fd?q:p]]:(l=z[0][0],p=z[0][1],v=z[1][0],g=z[1][1]),h=l,d=p,_=v,y=g;var I=wl(T).attr(\"pointer-events\",\"none\"),Y=I.selectAll(\".overlay\").attr(\"cursor\",pd[S]);if(t.event.touches)I.on(\"touchmove.brush\",e,!0).on(\"touchend.brush touchcancel.brush\",u,!0);else{var B=wl(t.event.view).on(\"keydown.brush\",a,!0).on(\"keyup.brush\",s,!0).on(\"mousemove.brush\",e,!0).on(\"mouseup.brush\",u,!0);kl(t.event.view)}Me(),cp(T),r.call(T),F.start()}}function a(){var t=this.__brush||{selection:null};return t.extent=s.apply(this,arguments),t.dim=n,t}var c,s=Ne,f=Se,l=v(e,\"start\",\"brush\",\"end\"),h=6;return e.move=function(t,e){t.selection?t.on(\"start.brush\",function(){i(this,arguments).beforestart().start()}).on(\"interrupt.brush end.brush\",function(){i(this,arguments).end()}).tween(\"brush\",function(){function t(t){u.selection=1===t&&Ee(s)?null:f(t),r.call(o),a.brush()}var o=this,u=o.__brush,a=i(o,arguments),c=u.selection,s=n.input(\"function\"==typeof e?e.apply(this,arguments):e,u.extent),f=Sh(c,s);return c&&s?t:t(1)}):t.each(function(){var t=this,o=arguments,u=t.__brush,a=n.input(\"function\"==typeof e?e.apply(t,o):e,u.extent),c=i(t,o).beforestart();cp(t),u.selection=null==a||Ee(a)?null:a,r.call(t),c.start().brush().end()})},o.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting&&(this.starting=!1,this.emit(\"start\")),this},brush:function(){return this.emit(\"brush\"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit(\"end\")),this},emit:function(t){A(new id(e,t,n.output(this.state.selection)),l.apply,l,[t,this.that,this.args])}},e.extent=function(t){return arguments.length?(s=\"function\"==typeof t?t:rd([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),e):s},e.filter=function(t){return arguments.length?(f=\"function\"==typeof t?t:rd(!!t),e):f},e.handleSize=function(t){return arguments.length?(h=+t,e):h},e.on=function(){var t=l.on.apply(l,arguments);return t===l?e:t},e}function Le(t){return function(n,e){return t(n.source.value+n.target.value,e.source.value+e.target.value)}}function Re(){this._x0=this._y0=this._x1=this._y1=null,this._=\"\"}function qe(){return new Re}function Ue(t){return t.source}function De(t){return t.target}function Oe(t){return t.radius}function Fe(t){return t.startAngle}function Ie(t){return t.endAngle}function Ye(){}function Be(t,n){var e=new Ye;if(t instanceof Ye)t.each(function(t,n){e.set(n,t)});else if(Array.isArray(t)){var r,i=-1,o=t.length;if(null==n)for(;++i<o;)e.set(i,t[i]);else for(;++i<o;)e.set(n(r=t[i],i,t),r)}else if(t)for(var u in t)e.set(u,t[u]);return e}function je(){return{}}function He(t,n,e){t[n]=e}function Xe(){return Be()}function Ve(t,n,e){t.set(n,e)}function $e(){}function We(t,n){var e=new $e;if(t instanceof $e)t.each(function(t){e.add(t)});else if(t){var r=-1,i=t.length;if(null==n)for(;++r<i;)e.add(t[r]);else for(;++r<i;)e.add(n(t[r],r,t))}return e}function Ze(t){return new Function(\"d\",\"return {\"+t.map(function(t,n){return JSON.stringify(t)+\": d[\"+n+\"]\"}).join(\",\")+\"}\")}function Ge(t,n){var e=Ze(t);return function(r,i){return n(e(r),i,t)}}function Je(t){var n=Object.create(null),e=[];return t.forEach(function(t){for(var r in t)r in n||e.push(n[r]=r)}),e}function Qe(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,u,a,c,s,f,l,h,p=t._root,d={data:r},v=t._x0,_=t._y0,g=t._x1,y=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((s=n>=(o=(v+g)/2))?v=o:g=o,(f=e>=(u=(_+y)/2))?_=u:y=u,i=p,!(p=p[l=f<<1|s]))return i[l]=d,t;if(a=+t._x.call(null,p.data),c=+t._y.call(null,p.data),n===a&&e===c)return d.next=p,i?i[l]=d:t._root=d,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(s=n>=(o=(v+g)/2))?v=o:g=o,(f=e>=(u=(_+y)/2))?_=u:y=u}while((l=f<<1|s)==(h=(c>=u)<<1|a>=o));return i[h]=p,i[l]=d,t}function Ke(t){var n,e,r,i,o=t.length,u=new Array(o),a=new Array(o),c=1/0,s=1/0,f=-1/0,l=-1/0;for(e=0;e<o;++e)isNaN(r=+this._x.call(null,n=t[e]))||isNaN(i=+this._y.call(null,n))||(u[e]=r,a[e]=i,r<c&&(c=r),r>f&&(f=r),i<s&&(s=i),i>l&&(l=i));for(f<c&&(c=this._x0,f=this._x1),l<s&&(s=this._y0,l=this._y1),this.cover(c,s).cover(f,l),e=0;e<o;++e)Qe(this,u[e],a[e],t[e]);return this}function tr(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this}function nr(t){return t[0]}function er(t){return t[1]}function rr(t,n,e){var r=new ir(null==n?nr:n,null==e?er:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function ir(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function or(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}function ur(t){return t.x+t.vx}function ar(t){return t.y+t.vy}function cr(t){return t.index}function sr(t,n){var e=t.get(n);if(!e)throw new Error(\"missing: \"+n);return e}function fr(t){return t.x}function lr(t){return t.y}function hr(t){return new pr(t)}function pr(t){if(!(n=Ev.exec(t)))throw new Error(\"invalid format: \"+t);var n,e=n[1]||\" \",r=n[2]||\">\",i=n[3]||\"-\",o=n[4]||\"\",u=!!n[5],a=n[6]&&+n[6],c=!!n[7],s=n[8]&&+n[8].slice(1),f=n[9]||\"\";\"n\"===f?(c=!0,\n        f=\"g\"):kv[f]||(f=\"\"),(u||\"0\"===e&&\"=\"===r)&&(u=!0,e=\"0\",r=\"=\"),this.fill=e,this.align=r,this.sign=i,this.symbol=o,this.zero=u,this.width=a,this.comma=c,this.precision=s,this.type=f}function dr(n){return Av=Pv(n),t.format=Av.format,t.formatPrefix=Av.formatPrefix,Av}function vr(){this.reset()}function _r(t,n,e){var r=t.s=n+e,i=r-n,o=r-i;t.t=n-o+(e-i)}function gr(t){return t>1?0:t<-1?__:Math.acos(t)}function yr(t){return t>1?g_:t<-1?-g_:Math.asin(t)}function mr(t){return(t=C_(t/2))*t}function xr(){}function br(t,n){t&&q_.hasOwnProperty(t.type)&&q_[t.type](t,n)}function wr(t,n,e){var r,i=-1,o=t.length-e;for(n.lineStart();++i<o;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function Mr(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)wr(t[e],n,1);n.polygonEnd()}function Tr(){F_.point=Nr}function Sr(){kr(Dv,Ov)}function Nr(t,n){F_.point=kr,Dv=t,Ov=n,t*=b_,n*=b_,Fv=t,Iv=S_(n=n/2+y_),Yv=C_(n)}function kr(t,n){t*=b_,n*=b_,n=n/2+y_;var e=t-Fv,r=e>=0?1:-1,i=r*e,o=S_(n),u=C_(n),a=Yv*u,c=Iv*o+a*S_(i),s=a*r*C_(i);D_.add(T_(s,c)),Fv=t,Iv=o,Yv=u}function Er(t){return[T_(t[1],t[0]),yr(t[2])]}function Ar(t){var n=t[0],e=t[1],r=S_(e);return[r*S_(n),r*C_(n),C_(e)]}function Cr(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function zr(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Pr(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function Lr(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function Rr(t){var n=P_(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}function qr(t,n){Gv.push(Jv=[Bv=t,Hv=t]),n<jv&&(jv=n),n>Xv&&(Xv=n)}function Ur(t,n){var e=Ar([t*b_,n*b_]);if(Zv){var r=zr(Zv,e),i=[r[1],-r[0],0],o=zr(i,r);Rr(o),o=Er(o);var u,a=t-Vv,c=a>0?1:-1,s=o[0]*x_*c,f=w_(a)>180;f^(c*Vv<s&&s<c*t)?(u=o[1]*x_)>Xv&&(Xv=u):(s=(s+360)%360-180,f^(c*Vv<s&&s<c*t)?(u=-o[1]*x_)<jv&&(jv=u):(n<jv&&(jv=n),n>Xv&&(Xv=n))),f?t<Vv?Br(Bv,t)>Br(Bv,Hv)&&(Hv=t):Br(t,Hv)>Br(Bv,Hv)&&(Bv=t):Hv>=Bv?(t<Bv&&(Bv=t),t>Hv&&(Hv=t)):t>Vv?Br(Bv,t)>Br(Bv,Hv)&&(Hv=t):Br(t,Hv)>Br(Bv,Hv)&&(Bv=t)}else Gv.push(Jv=[Bv=t,Hv=t]);n<jv&&(jv=n),n>Xv&&(Xv=n),Zv=e,Vv=t}function Dr(){B_.point=Ur}function Or(){Jv[0]=Bv,Jv[1]=Hv,B_.point=qr,Zv=null}function Fr(t,n){if(Zv){var e=t-Vv;Y_.add(w_(e)>180?e+(e>0?360:-360):e)}else $v=t,Wv=n;F_.point(t,n),Ur(t,n)}function Ir(){F_.lineStart()}function Yr(){Fr($v,Wv),F_.lineEnd(),w_(Y_)>v_&&(Bv=-(Hv=180)),Jv[0]=Bv,Jv[1]=Hv,Zv=null}function Br(t,n){return(n-=t)<0?n+360:n}function jr(t,n){return t[0]-n[0]}function Hr(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}function Xr(t,n){t*=b_,n*=b_;var e=S_(n);Vr(e*S_(t),e*C_(t),C_(n))}function Vr(t,n,e){++Qv,t_+=(t-t_)/Qv,n_+=(n-n_)/Qv,e_+=(e-e_)/Qv}function $r(){H_.point=Wr}function Wr(t,n){t*=b_,n*=b_;var e=S_(n);l_=e*S_(t),h_=e*C_(t),p_=C_(n),H_.point=Zr,Vr(l_,h_,p_)}function Zr(t,n){t*=b_,n*=b_;var e=S_(n),r=e*S_(t),i=e*C_(t),o=C_(n),u=T_(P_((u=h_*o-p_*i)*u+(u=p_*r-l_*o)*u+(u=l_*i-h_*r)*u),l_*r+h_*i+p_*o);Kv+=u,r_+=u*(l_+(l_=r)),i_+=u*(h_+(h_=i)),o_+=u*(p_+(p_=o)),Vr(l_,h_,p_)}function Gr(){H_.point=Xr}function Jr(){H_.point=Kr}function Qr(){ti(s_,f_),H_.point=Xr}function Kr(t,n){s_=t,f_=n,t*=b_,n*=b_,H_.point=ti;var e=S_(n);l_=e*S_(t),h_=e*C_(t),p_=C_(n),Vr(l_,h_,p_)}function ti(t,n){t*=b_,n*=b_;var e=S_(n),r=e*S_(t),i=e*C_(t),o=C_(n),u=h_*o-p_*i,a=p_*r-l_*o,c=l_*i-h_*r,s=P_(u*u+a*a+c*c),f=yr(s),l=s&&-f/s;u_+=l*u,a_+=l*a,c_+=l*c,Kv+=f,r_+=f*(l_+(l_=r)),i_+=f*(h_+(h_=i)),o_+=f*(p_+(p_=o)),Vr(l_,h_,p_)}function ni(t,n){return[t>__?t-m_:t<-__?t+m_:t,n]}function ei(t,n,e){return(t%=m_)?n||e?$_(ii(t),oi(n,e)):ii(t):n||e?oi(n,e):ni}function ri(t){return function(n,e){return n+=t,[n>__?n-m_:n<-__?n+m_:n,e]}}function ii(t){var n=ri(t);return n.invert=ri(-t),n}function oi(t,n){function e(t,n){var e=S_(n),a=S_(t)*e,c=C_(t)*e,s=C_(n),f=s*r+a*i;return[T_(c*o-f*u,a*r-s*i),yr(f*o+c*u)]}var r=S_(t),i=C_(t),o=S_(n),u=C_(n);return e.invert=function(t,n){var e=S_(n),a=S_(t)*e,c=C_(t)*e,s=C_(n),f=s*o-c*u;return[T_(c*o+s*u,a*r+f*i),yr(f*r-a*i)]},e}function ui(t,n,e,r,i,o){if(e){var u=S_(n),a=C_(n),c=r*e;null==i?(i=n+r*m_,o=n-c/2):(i=ai(u,i),o=ai(u,o),(r>0?i<o:i>o)&&(i+=r*m_));for(var s,f=i;r>0?f>o:f<o;f-=c)s=Er([u,-a*S_(f),-a*C_(f)]),t.point(s[0],s[1])}}function ai(t,n){n=Ar(n),n[0]-=t,Rr(n);var e=gr(-n[1]);return((-n[2]<0?-e:e)+m_-v_)%m_}function ci(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function si(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}function fi(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,a,s){var f=0,l=0;if(null==i||(f=u(i,a))!==(l=u(o,a))||c(i,o)<0^a>0)do{s.point(0===f||3===f?t:e,f>1?r:n)}while((f=(f+a+4)%4)!==l);else s.point(o[0],o[1])}function u(r,i){return w_(r[0]-t)<v_?i>0?0:3:w_(r[0]-e)<v_?i>0?2:1:w_(r[1]-n)<v_?i>0?1:0:i>0?3:2}function a(t,n){return c(t.x,n.x)}function c(t,n){var e=u(t,1),r=u(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(u){function c(t,n){i(t,n)&&N.point(t,n)}function s(){for(var n=0,e=0,i=_.length;e<i;++e)for(var o,u,a=_[e],c=1,s=a.length,f=a[0],l=f[0],h=f[1];c<s;++c)o=l,u=h,f=a[c],l=f[0],h=f[1],u<=r?h>r&&(l-o)*(r-u)>(h-u)*(t-o)&&++n:h<=r&&(l-o)*(r-u)<(h-u)*(t-o)&&--n;return n}function f(){N=k,v=[],_=[],S=!0}function l(){var t=s(),n=S&&t,e=(v=lf(v)).length;(n||e)&&(u.polygonStart(),n&&(u.lineStart(),o(null,null,1,u),u.lineEnd()),e&&fg(v,a,t,o,u),u.polygonEnd()),N=u,v=_=g=null}function h(){E.point=d,_&&_.push(g=[]),T=!0,M=!1,b=w=NaN}function p(){v&&(d(y,m),x&&M&&k.rejoin(),v.push(k.result())),E.point=c,M&&N.lineEnd()}function d(o,u){var a=i(o,u);if(_&&g.push([o,u]),T)y=o,m=u,x=a,T=!1,a&&(N.lineStart(),N.point(o,u));else if(a&&M)N.point(o,u);else{var c=[b=Math.max(hg,Math.min(lg,b)),w=Math.max(hg,Math.min(lg,w))],s=[o=Math.max(hg,Math.min(lg,o)),u=Math.max(hg,Math.min(lg,u))];cg(c,s,t,n,e,r)?(M||(N.lineStart(),N.point(c[0],c[1])),N.point(s[0],s[1]),a||N.lineEnd(),S=!1):a&&(N.lineStart(),N.point(o,u),S=!1)}b=o,w=u,M=a}var v,_,g,y,m,x,b,w,M,T,S,N=u,k=ag(),E={point:c,lineStart:h,lineEnd:p,polygonStart:f,polygonEnd:l};return E}}function li(){gg.point=pi,gg.lineEnd=hi}function hi(){gg.point=gg.lineEnd=xr}function pi(t,n){t*=b_,n*=b_,W_=t,Z_=C_(n),G_=S_(n),gg.point=di}function di(t,n){t*=b_,n*=b_;var e=C_(n),r=S_(n),i=w_(t-W_),o=S_(i),u=C_(i),a=r*u,c=G_*e-Z_*r*o,s=Z_*e+G_*r*o;_g.add(T_(P_(a*a+c*c),s)),W_=t,Z_=e,G_=r}function vi(t,n){return!(!t||!Mg.hasOwnProperty(t.type))&&Mg[t.type](t,n)}function _i(t,n){return 0===bg(t,n)}function gi(t,n){var e=bg(t[0],t[1]);return bg(t[0],n)+bg(n,t[1])<=e+v_}function yi(t,n){return!!vg(t.map(mi),xi(n))}function mi(t){return t=t.map(xi),t.pop(),t}function xi(t){return[t[0]*b_,t[1]*b_]}function bi(t,n,e){var r=Js(t,n-v_,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function wi(t,n,e){var r=Js(t,n-v_,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function Mi(){function t(){return{type:\"MultiLineString\",coordinates:n()}}function n(){return Js(N_(o/_)*_,i,_).map(h).concat(Js(N_(s/g)*g,c,g).map(p)).concat(Js(N_(r/d)*d,e,d).filter(function(t){return w_(t%_)>v_}).map(f)).concat(Js(N_(a/v)*v,u,v).filter(function(t){return w_(t%g)>v_}).map(l))}var e,r,i,o,u,a,c,s,f,l,h,p,d=10,v=d,_=90,g=360,y=2.5;return t.lines=function(){return n().map(function(t){return{type:\"LineString\",coordinates:t}})},t.outline=function(){return{type:\"Polygon\",coordinates:[h(o).concat(p(c).slice(1),h(i).reverse().slice(1),p(s).reverse().slice(1))]}},t.extent=function(n){return arguments.length?t.extentMajor(n).extentMinor(n):t.extentMinor()},t.extentMajor=function(n){return arguments.length?(o=+n[0][0],i=+n[1][0],s=+n[0][1],c=+n[1][1],o>i&&(n=o,o=i,i=n),s>c&&(n=s,s=c,c=n),t.precision(y)):[[o,s],[i,c]]},t.extentMinor=function(n){return arguments.length?(r=+n[0][0],e=+n[1][0],a=+n[0][1],u=+n[1][1],r>e&&(n=r,r=e,e=n),a>u&&(n=a,a=u,u=n),t.precision(y)):[[r,a],[e,u]]},t.step=function(n){return arguments.length?t.stepMajor(n).stepMinor(n):t.stepMinor()},t.stepMajor=function(n){return arguments.length?(_=+n[0],g=+n[1],t):[_,g]},t.stepMinor=function(n){return arguments.length?(d=+n[0],v=+n[1],t):[d,v]},t.precision=function(n){return arguments.length?(y=+n,f=bi(a,u,90),l=wi(r,e,y),h=bi(s,c,90),p=wi(o,i,y),t):y},t.extentMajor([[-180,-90+v_],[180,90-v_]]).extentMinor([[-180,-80-v_],[180,80+v_]])}function Ti(){return Mi()()}function Si(){Ag.point=Ni}function Ni(t,n){Ag.point=ki,J_=K_=t,Q_=tg=n}function ki(t,n){Eg.add(tg*t-K_*n),K_=t,tg=n}function Ei(){ki(J_,Q_)}function Ai(t,n){t<Cg&&(Cg=t),t>Pg&&(Pg=t),n<zg&&(zg=n),n>Lg&&(Lg=n)}function Ci(t,n){qg+=t,Ug+=n,++Dg}function zi(){Hg.point=Pi}function Pi(t,n){Hg.point=Li,Ci(rg=t,ig=n)}function Li(t,n){var e=t-rg,r=n-ig,i=P_(e*e+r*r);Og+=i*(rg+t)/2,Fg+=i*(ig+n)/2,Ig+=i,Ci(rg=t,ig=n)}function Ri(){Hg.point=Ci}function qi(){Hg.point=Di}function Ui(){Oi(ng,eg)}function Di(t,n){Hg.point=Oi,Ci(ng=rg=t,eg=ig=n)}function Oi(t,n){var e=t-rg,r=n-ig,i=P_(e*e+r*r);Og+=i*(rg+t)/2,Fg+=i*(ig+n)/2,Ig+=i,i=ig*t-rg*n,Yg+=i*(rg+t),Bg+=i*(ig+n),jg+=3*i,Ci(rg=t,ig=n)}function Fi(t){this._context=t}function Ii(t,n){Jg.point=Yi,Vg=Wg=t,$g=Zg=n}function Yi(t,n){Wg-=t,Zg-=n,Gg.add(P_(Wg*Wg+Zg*Zg)),Wg=t,Zg=n}function Bi(){this._string=[]}function ji(t){return\"m0,\"+t+\"a\"+t+\",\"+t+\" 0 1,1 0,\"+-2*t+\"a\"+t+\",\"+t+\" 0 1,1 0,\"+2*t+\"z\"}function Hi(t){return t.length>1}function Xi(t,n){return((t=t.x)[0]<0?t[1]-g_-v_:g_-t[1])-((n=n.x)[0]<0?n[1]-g_-v_:g_-n[1])}function Vi(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,u){var a=o>0?__:-__,c=w_(o-e);w_(c-__)<v_?(t.point(e,r=(r+u)/2>0?g_:-g_),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),t.point(o,r),n=0):i!==a&&c>=__&&(w_(e-i)<v_&&(e-=i*v_),w_(o-a)<v_&&(o-=a*v_),r=$i(e,r,o,u),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),n=0),t.point(e=o,r=u),i=a},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}}function $i(t,n,e,r){var i,o,u=C_(t-e);return w_(u)>v_?M_((C_(n)*(o=S_(r))*C_(e)-C_(r)*(i=S_(n))*C_(t))/(i*o*u)):(n+r)/2}function Wi(t,n,e,r){var i;if(null==t)i=e*g_,r.point(-__,i),r.point(0,i),r.point(__,i),r.point(__,0),r.point(__,-i),r.point(0,-i),r.point(-__,-i),r.point(-__,0),r.point(-__,i);else if(w_(t[0]-n[0])>v_){var o=t[0]<n[0]?__:-__;i=e*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(n[0],n[1])}function Zi(t){return function(n){var e=new Gi;for(var r in t)e[r]=t[r];return e.stream=n,e}}function Gi(){}function Ji(t,n,e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=t.clipExtent&&t.clipExtent();t.scale(150).translate([0,0]),null!=o&&t.clipExtent(null),U_(e,t.stream(Rg));var u=Rg.result(),a=Math.min(r/(u[1][0]-u[0][0]),i/(u[1][1]-u[0][1])),c=+n[0][0]+(r-a*(u[1][0]+u[0][0]))/2,s=+n[0][1]+(i-a*(u[1][1]+u[0][1]))/2;return null!=o&&t.clipExtent(o),t.scale(150*a).translate([c,s])}function Qi(t,n,e){return Ji(t,[[0,0],n],e)}function Ki(t){return Zi({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}function to(t,n){function e(r,i,o,u,a,c,s,f,l,h,p,d,v,_){var g=s-r,y=f-i,m=g*g+y*y;if(m>4*n&&v--){var x=u+h,b=a+p,w=c+d,M=P_(x*x+b*b+w*w),T=yr(w/=M),S=w_(w_(w)-1)<v_||w_(o-l)<v_?(o+l)/2:T_(b,x),N=t(S,T),k=N[0],E=N[1],A=k-r,C=E-i,z=y*A-g*C;(z*z/m>n||w_((g*A+y*C)/m-.5)>.3||u*h+a*p+c*d<iy)&&(e(r,i,o,u,a,c,k,E,S,x/=M,b/=M,w,v,_),_.point(k,E),e(k,E,S,x,b,w,s,f,l,h,p,d,v,_))}}return function(n){function r(e,r){e=t(e,r),n.point(e[0],e[1])}function i(){g=NaN,w.point=o,n.lineStart()}function o(r,i){var o=Ar([r,i]),u=t(r,i);e(g,y,_,m,x,b,g=u[0],y=u[1],_=r,m=o[0],x=o[1],b=o[2],ry,n),n.point(g,y)}function u(){w.point=r,n.lineEnd()}function a(){i(),w.point=c,w.lineEnd=s}function c(t,n){o(f=t,n),l=g,h=y,p=m,d=x,v=b,w.point=o}function s(){e(g,y,_,m,x,b,l,h,f,p,d,v,ry,n),w.lineEnd=u,u()}var f,l,h,p,d,v,_,g,y,m,x,b,w={point:r,lineStart:i,lineEnd:u,polygonStart:function(){n.polygonStart(),w.lineStart=a},polygonEnd:function(){n.polygonEnd(),w.lineStart=i}};return w}}function no(t){return eo(function(){return t})()}function eo(t){function n(t){return t=f(t[0]*b_,t[1]*b_),[t[0]*_+a,c-t[1]*_]}function e(t){return(t=f.invert((t[0]-a)/_,(c-t[1])/_))&&[t[0]*x_,t[1]*x_]}function r(t,n){return t=u(t,n),[t[0]*_+a,c-t[1]*_]}function i(){f=$_(s=ei(b,w,M),u);var t=u(m,x);return a=g-t[0]*_,c=y+t[1]*_,o()}function o(){return d=v=null,n}var u,a,c,s,f,l,h,p,d,v,_=150,g=480,y=250,m=0,x=0,b=0,w=0,M=0,T=null,S=ty,N=null,k=Ng,E=.5,A=oy(r,E);return n.stream=function(t){return d&&v===t?d:d=uy(S(s,A(k(v=t))))},n.clipAngle=function(t){return arguments.length?(S=+t?ny(T=t*b_,6*b_):(T=null,ty),o()):T*x_},n.clipExtent=function(t){return arguments.length?(k=null==t?(N=l=h=p=null,Ng):fi(N=+t[0][0],l=+t[0][1],h=+t[1][0],p=+t[1][1]),o()):null==N?null:[[N,l],[h,p]]},n.scale=function(t){return arguments.length?(_=+t,i()):_},n.translate=function(t){return arguments.length?(g=+t[0],y=+t[1],i()):[g,y]},n.center=function(t){return arguments.length?(m=t[0]%360*b_,x=t[1]%360*b_,i()):[m*x_,x*x_]},n.rotate=function(t){return arguments.length?(b=t[0]%360*b_,w=t[1]%360*b_,M=t.length>2?t[2]%360*b_:0,i()):[b*x_,w*x_,M*x_]},n.precision=function(t){return arguments.length?(A=oy(r,E=t*t),o()):P_(E)},n.fitExtent=function(t,e){return Ji(n,t,e)},n.fitSize=function(t,e){return Qi(n,t,e)},function(){return u=t.apply(this,arguments),n.invert=u.invert&&e,i()}}function ro(t){var n=0,e=__/3,r=eo(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*b_,e=t[1]*b_):[n*x_,e*x_]},i}function io(t){function n(t,n){return[t*e,C_(n)/e]}var e=S_(t);return n.invert=function(t,n){return[t/e,yr(n*e)]},n}function oo(t,n){function e(t,n){var e=P_(o-2*i*C_(n))/i;return[e*C_(t*=i),u-e*S_(t)]}var r=C_(t),i=(r+C_(n))/2;if(w_(i)<v_)return io(t);var o=1+r*(2*i-r),u=P_(o)/i;return e.invert=function(t,n){var e=u-n;return[T_(t,w_(e))/i*z_(e),yr((o-(t*t+e*e)*i*i)/(2*i))]},e}function uo(t){var n=t.length;return{point:function(e,r){for(var i=-1;++i<n;)t[i].point(e,r)},sphere:function(){for(var e=-1;++e<n;)t[e].sphere()},lineStart:function(){for(var e=-1;++e<n;)t[e].lineStart()},lineEnd:function(){for(var e=-1;++e<n;)t[e].lineEnd()},polygonStart:function(){for(var e=-1;++e<n;)t[e].polygonStart()},polygonEnd:function(){for(var e=-1;++e<n;)t[e].polygonEnd()}}}function ao(t){return function(n,e){var r=S_(n),i=S_(e),o=t(r*i);return[o*i*C_(n),o*C_(e)]}}function co(t){return function(n,e){var r=P_(n*n+e*e),i=t(r),o=C_(i),u=S_(i);return[T_(n*o,r*u),yr(r&&e*o/r)]}}function so(t,n){return[t,E_(L_((g_+n)/2))]}function fo(t){function n(){var n=__*a(),u=o(og(o.rotate()).invert([0,0]));return s(null==f?[[u[0]-n,u[1]-n],[u[0]+n,u[1]+n]]:t===so?[[Math.max(u[0]-n,f),e],[Math.min(u[0]+n,r),i]]:[[f,Math.max(u[1]-n,e)],[r,Math.min(u[1]+n,i)]])}var e,r,i,o=no(t),u=o.center,a=o.scale,c=o.translate,s=o.clipExtent,f=null;return o.scale=function(t){return arguments.length?(a(t),n()):a()},o.translate=function(t){return arguments.length?(c(t),n()):c()},o.center=function(t){return arguments.length?(u(t),n()):u()},o.clipExtent=function(t){return arguments.length?(null==t?f=e=r=i=null:(f=+t[0][0],e=+t[0][1],r=+t[1][0],i=+t[1][1]),n()):null==f?null:[[f,e],[r,i]]},n()}function lo(t){return L_((g_+t)/2)}function ho(t,n){function e(t,n){o>0?n<-g_+v_&&(n=-g_+v_):n>g_-v_&&(n=g_-v_);var e=o/A_(lo(n),i);return[e*C_(i*t),o-e*S_(i*t)]}var r=S_(t),i=t===n?C_(t):E_(r/S_(n))/E_(lo(n)/lo(t)),o=r*A_(lo(t),i)/i;return i?(e.invert=function(t,n){var e=o-n,r=z_(i)*P_(t*t+e*e);return[T_(t,w_(e))/i*z_(e),2*M_(A_(o/r,1/i))-g_]},e):so}function po(t,n){return[t,n]}function vo(t,n){function e(t,n){var e=o-n,r=i*t;return[e*C_(r),o-e*S_(r)]}var r=S_(t),i=t===n?C_(t):(r-S_(n))/(n-t),o=r/i+t;return w_(i)<v_?po:(e.invert=function(t,n){var e=o-n;return[T_(t,w_(e))/i*z_(e),o-z_(i)*P_(t*t+e*e)]},e)}function _o(t,n){var e=S_(n),r=S_(t)*e;return[e*C_(t)/r,C_(n)/r]}function go(t,n,e,r){return 1===t&&1===n&&0===e&&0===r?Ng:Zi({point:function(i,o){this.stream.point(i*t+e,o*n+r)}})}function yo(t,n){return[S_(n)*C_(t),C_(n)]}function mo(t,n){var e=S_(n),r=1+S_(t)*e;return[e*C_(t)/r,C_(n)/r]}function xo(t,n){return[E_(L_((g_+n)/2)),-t]}function bo(t,n){return t.parent===n.parent?1:2}function wo(t){return t.reduce(Mo,0)/t.length}function Mo(t,n){return t+n.x}function To(t){return 1+t.reduce(So,0)}function So(t,n){return Math.max(t,n.y)}function No(t){for(var n;n=t.children;)t=n[0];return t}function ko(t){for(var n;n=t.children;)t=n[n.length-1];return t}function Eo(t){var n=0,e=t.children,r=e&&e.length;if(r)for(;--r>=0;)n+=e[r].value;else n=1;t.value=n}function Ao(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}function Co(t,n){var e,r,i,o,u,a=new qo(t),c=+t.value&&(a.value=t.value),s=[a];for(null==n&&(n=Po);e=s.pop();)if(c&&(e.value=+e.data.value),(i=n(e.data))&&(u=i.length))for(e.children=new Array(u),o=u-1;o>=0;--o)s.push(r=e.children[o]=new qo(i[o])),r.parent=e,r.depth=e.depth+1;return a.eachBefore(Ro)}function zo(){return Co(this).eachBefore(Lo)}function Po(t){return t.children}function Lo(t){t.data=t.data.data}function Ro(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function qo(t){this.data=t,this.depth=this.height=0,this.parent=null}function Uo(t){this._=t,this.next=null}function Do(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r-n.r;return i*i+1e-6>e*e+r*r}function Oo(t,n){var e,r,i,o=null,u=t.head;switch(n.length){case 1:e=Fo(n[0]);break;case 2:e=Io(n[0],n[1]);break;case 3:e=Yo(n[0],n[1],n[2])}for(;u;)i=u._,r=u.next,e&&Do(e,i)?o=u:(o?(t.tail=o,o.next=null):t.head=t.tail=null,n.push(i),e=Oo(t,n),n.pop(),t.head?(u.next=t.head,t.head=u):(u.next=null,t.head=t.tail=u),o=t.tail,o.next=r),u=r;return t.tail=o,e}function Fo(t){return{x:t.x,y:t.y,r:t.r}}function Io(t,n){var e=t.x,r=t.y,i=t.r,o=n.x,u=n.y,a=n.r,c=o-e,s=u-r,f=a-i,l=Math.sqrt(c*c+s*s);return{x:(e+o+c/l*f)/2,y:(r+u+s/l*f)/2,r:(l+i+a)/2}}function Yo(t,n,e){var r=t.x,i=t.y,o=t.r,u=n.x,a=n.y,c=n.r,s=e.x,f=e.y,l=e.r,h=2*(r-u),p=2*(i-a),d=2*(c-o),v=r*r+i*i-o*o-u*u-a*a+c*c,_=2*(r-s),g=2*(i-f),y=2*(l-o),m=r*r+i*i-o*o-s*s-f*f+l*l,x=_*p-h*g,b=(p*m-g*v)/x-r,w=(g*d-p*y)/x,M=(_*v-h*m)/x-i,T=(h*y-_*d)/x,S=w*w+T*T-1,N=2*(b*w+M*T+o),k=b*b+M*M-o*o,E=(-N-Math.sqrt(N*N-4*S*k))/(2*S);return{x:b+w*E+r,y:M+T*E+i,r:E}}function Bo(t,n,e){var r=t.x,i=t.y,o=n.r+e.r,u=t.r+e.r,a=n.x-r,c=n.y-i,s=a*a+c*c;if(s){var f=.5+((u*=u)-(o*=o))/(2*s),l=Math.sqrt(Math.max(0,2*o*(u+s)-(u-=s)*u-o*o))/(2*s);e.x=r+f*a+l*c,e.y=i+f*c-l*a}else e.x=r+u,e.y=i}function jo(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r+n.r;return i*i-1e-6>e*e+r*r}function Ho(t,n,e){var r=t._,i=t.next._,o=r.r+i.r,u=(r.x*i.r+i.x*r.r)/o-n,a=(r.y*i.r+i.y*r.r)/o-e;return u*u+a*a}function Xo(t){this._=t,this.next=null,this.previous=null}function Vo(t){if(!(i=t.length))return 0;var n,e,r,i;if(n=t[0],n.x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;Bo(e,n,r=t[2]);var o,u,a,c,s,f,l,h=n.r*n.r,p=e.r*e.r,d=r.r*r.r,v=h+p+d,_=h*n.x+p*e.x+d*r.x,g=h*n.y+p*e.y+d*r.y;n=new Xo(n),e=new Xo(e),r=new Xo(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(a=3;a<i;++a){Bo(n._,e._,r=t[a]),r=new Xo(r),c=e.next,s=n.previous,f=e._.r,l=n._.r;do{if(f<=l){if(jo(c._,r._)){e=c,n.next=e,e.previous=n,--a;continue t}f+=c._.r,c=c.next}else{if(jo(s._,r._)){n=s,n.next=e,e.previous=n,--a;continue t}l+=s._.r,s=s.previous}}while(c!==s.next);for(r.previous=n,r.next=e,n.next=e.previous=e=r,v+=d=r._.r*r._.r,_+=d*r._.x,g+=d*r._.y,h=Ho(n,o=_/v,u=g/v);(r=r.next)!==e;)(d=Ho(r,o,u))<h&&(n=r,h=d);e=n.next}for(n=[e._],r=e;(r=r.next)!==e;)n.push(r._);for(r=Uy(n),a=0;a<i;++a)n=t[a],n.x-=r.x,n.y-=r.y;return r.r}function $o(t){return null==t?null:Wo(t)}function Wo(t){if(\"function\"!=typeof t)throw new Error;return t}function Zo(){return 0}function Go(t){return Math.sqrt(t.value)}function Jo(t){return function(n){n.children||(n.r=Math.max(0,+t(n)||0))}}function Qo(t,n){return function(e){if(r=e.children){var r,i,o,u=r.length,a=t(e)*n||0;if(a)for(i=0;i<u;++i)r[i].r+=a;if(o=Vo(r),a)for(i=0;i<u;++i)r[i].r-=a;e.r=o+a}}}function Ko(t){return function(n){var e=n.parent;n.r*=t,e&&(n.x=e.x+t*n.x,n.y=e.y+t*n.y)}}function tu(t){return t.id}function nu(t){return t.parentId}function eu(t,n){return t.parent===n.parent?1:2}function ru(t){var n=t.children;return n?n[0]:t.t}function iu(t){var n=t.children;return n?n[n.length-1]:t.t}function ou(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function uu(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)n=i[o],n.z+=e,n.m+=e,e+=n.s+(r+=n.c)}function au(t,n,e){return t.a.parent===n.parent?t.a:e}function cu(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}function su(t){for(var n,e,r,i,o,u=new cu(t,0),a=[u];n=a.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)a.push(e=n.children[i]=new cu(r[i],i)),e.parent=n;return(u.parent=new cu(null,0)).children=[u],u}function fu(t,n,e,r,i,o){for(var u,a,c,s,f,l,h,p,d,v,_,g=[],y=n.children,m=0,x=0,b=y.length,w=n.value;m<b;){c=i-e,s=o-r;do{f=y[x++].value}while(!f&&x<b);for(l=h=f,v=Math.max(s/c,c/s)/(w*t),_=f*f*v,d=Math.max(h/_,_/l);x<b;++x){if(f+=a=y[x].value,a<l&&(l=a),a>h&&(h=a),_=f*f*v,(p=Math.max(h/_,_/l))>d){f-=a;break}d=p}g.push(u={value:f,dice:c<s,children:y.slice(m,x)}),u.dice?Yy(u,e,r,i,w?r+=s*f/w:o):Wy(u,e,r,w?e+=c*f/w:i,o),w-=f,m=x}return g}function lu(t,n){return t[0]-n[0]||t[1]-n[1]}function hu(t){for(var n=t.length,e=[0,1],r=2,i=2;i<n;++i){for(;r>1&&rm(t[e[r-2]],t[e[r-1]],t[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function pu(t){if(!(t>=1))throw new Error;this._size=t,this._call=this._error=null,this._tasks=[],this._data=[],this._waiting=this._active=this._ended=this._start=0}function du(t){if(!t._start)try{vu(t)}catch(n){if(t._tasks[t._ended+t._active-1])gu(t,n);else if(!t._data)throw n}}function vu(t){for(;t._start=t._waiting&&t._active<t._size;){var n=t._ended+t._active,e=t._tasks[n],r=e.length-1,i=e[r];e[r]=_u(t,n),--t._waiting,++t._active,e=i.apply(null,e),t._tasks[n]&&(t._tasks[n]=e||cm)}}function _u(t,n){return function(e,r){t._tasks[n]&&(--t._active,++t._ended,t._tasks[n]=null,null==t._error&&(null!=e?gu(t,e):(t._data[n]=r,t._waiting?du(t):yu(t))))}}function gu(t,n){var e,r=t._tasks.length;for(t._error=n,t._data=void 0,t._waiting=NaN;--r>=0;)if((e=t._tasks[r])&&(t._tasks[r]=null,e.abort))try{e.abort()}catch(n){}t._active=NaN,yu(t)}function yu(t){if(!t._active&&t._call){var n=t._data;t._data=void 0,t._call(t._error,n)}}function mu(t){return new pu(arguments.length?+t:1/0)}function xu(t){return function(n,e){t(null==n?e:null)}}function bu(t){var n=t.responseType;return n&&\"text\"!==n?t.response:t.responseText}function wu(t,n){return function(e){return t(e.responseText,n)}}function Mu(t){function n(n){var o=n+\"\",u=e.get(o);if(!u){if(i!==km)return i;e.set(o,u=r.push(n))}return t[(u-1)%t.length]}var e=Be(),r=[],i=km;return t=null==t?[]:Nm.call(t),n.domain=function(t){if(!arguments.length)return r.slice();r=[],e=Be();for(var i,o,u=-1,a=t.length;++u<a;)e.has(o=(i=t[u])+\"\")||e.set(o,r.push(i));return n},n.range=function(e){return arguments.length?(t=Nm.call(e),n):t.slice()},n.unknown=function(t){return arguments.length?(i=t,n):i},n.copy=function(){return Mu().domain(r).range(t).unknown(i)},n}function Tu(){function t(){var t=i().length,r=u[1]<u[0],l=u[r-0],h=u[1-r];n=(h-l)/Math.max(1,t-c+2*s),a&&(n=Math.floor(n)),l+=(h-l-n*(t-c))*f,e=n*(1-c),a&&(l=Math.round(l),e=Math.round(e));var p=Js(t).map(function(t){return l+n*t});return o(r?p.reverse():p)}var n,e,r=Mu().unknown(void 0),i=r.domain,o=r.range,u=[0,1],a=!1,c=0,s=0,f=.5;return delete r.unknown,r.domain=function(n){return arguments.length?(i(n),t()):i()},r.range=function(n){return arguments.length?(u=[+n[0],+n[1]],t()):u.slice()},r.rangeRound=function(n){return u=[+n[0],+n[1]],a=!0,t()},r.bandwidth=function(){return e},r.step=function(){return n},r.round=function(n){return arguments.length?(a=!!n,t()):a},r.padding=function(n){return arguments.length?(c=s=Math.max(0,Math.min(1,n)),t()):c},r.paddingInner=function(n){return arguments.length?(c=Math.max(0,Math.min(1,n)),t()):c},r.paddingOuter=function(n){return arguments.length?(s=Math.max(0,Math.min(1,n)),t()):s},r.align=function(n){return arguments.length?(f=Math.max(0,Math.min(1,n)),t()):f},r.copy=function(){return Tu().domain(i()).range(u).round(a).paddingInner(c).paddingOuter(s).align(f)},t()}function Su(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return Su(n())},t}function Nu(){return Su(Tu().paddingInner(1))}function ku(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:Em(n)}function Eu(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=n?0:t>=e?1:r(t)}}}function Au(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=0?n:t>=1?e:r(t)}}}function Cu(t,n,e,r){var i=t[0],o=t[1],u=n[0],a=n[1];return o<i?(i=e(o,i),u=r(a,u)):(i=e(i,o),u=r(u,a)),function(t){return u(i(t))}}function zu(t,n,e,r){var i=Math.min(t.length,n.length)-1,o=new Array(i),u=new Array(i),a=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++a<i;)o[a]=e(t[a],t[a+1]),u[a]=r(n[a],n[a+1]);return function(n){var e=Ds(t,n,1,i)-1;return u[e](o[e](n))}}function Pu(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp())}function Lu(t,n){function e(){return i=Math.min(a.length,c.length)>2?zu:Cu,o=u=null,r}function r(n){return(o||(o=i(a,c,f?Eu(t):t,s)))(+n)}var i,o,u,a=Cm,c=Cm,s=Sh,f=!1;return r.invert=function(t){return(u||(u=i(c,a,ku,f?Au(n):n)))(+t)},r.domain=function(t){return arguments.length?(a=Sm.call(t,Am),e()):a.slice()},r.range=function(t){return arguments.length?(c=Nm.call(t),e()):c.slice()},r.rangeRound=function(t){return c=Nm.call(t),s=Nh,e()},r.clamp=function(t){return arguments.length?(f=!!t,e()):f},r.interpolate=function(t){return arguments.length?(s=t,e()):s},e()}function Ru(t){var n=t.domain;return t.ticks=function(t){var e=n();return nf(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){return zm(n(),t,e)},t.nice=function(e){var r=n(),o=r.length-1,u=null==e?10:e,a=r[0],c=r[o],s=i(a,c,u);return s&&(s=i(Math.floor(a/s)*s,Math.ceil(c/s)*s,u),r[0]=Math.floor(a/s)*s,r[o]=Math.ceil(c/s)*s,n(r)),t},t}function qu(){var t=Lu(ku,xh);return t.copy=function(){return Pu(t,qu())},Ru(t)}function Uu(){function t(t){return+t}var n=[0,1];return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=Sm.call(e,Am),t):n.slice()},t.copy=function(){return Uu().domain(n)},Ru(t)}function Du(t,n){return(n=Math.log(n/t))?function(e){return Math.log(e/t)/n}:Em(n)}function Ou(t,n){return t<0?function(e){return-Math.pow(-n,e)*Math.pow(-t,1-e)}:function(e){return Math.pow(n,e)*Math.pow(t,1-e)}}function Fu(t){return isFinite(t)?+(\"1e\"+t):t<0?0:t}function Iu(t){return 10===t?Fu:t===Math.E?Math.exp:function(n){return Math.pow(t,n)}}function Yu(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(n){return Math.log(n)/t})}function Bu(t){return function(n){return-t(-n)}}function ju(){function n(){return o=Yu(i),u=Iu(i),r()[0]<0&&(o=Bu(o),u=Bu(u)),e}var e=Lu(Du,Ou).domain([1,10]),r=e.domain,i=10,o=Yu(10),u=Iu(10);return e.base=function(t){return arguments.length?(i=+t,n()):i},e.domain=function(t){return arguments.length?(r(t),n()):r()},e.ticks=function(t){var n,e=r(),a=e[0],c=e[e.length-1];(n=c<a)&&(h=a,a=c,c=h);var s,f,l,h=o(a),p=o(c),d=null==t?10:+t,v=[];if(!(i%1)&&p-h<d){if(h=Math.round(h)-1,p=Math.round(p)+1,a>0){for(;h<p;++h)for(f=1,s=u(h);f<i;++f)if(!((l=s*f)<a)){if(l>c)break;v.push(l)}}else for(;h<p;++h)for(f=i-1,s=u(h);f>=1;--f)if(!((l=s*f)<a)){if(l>c)break;v.push(l)}}else v=nf(h,p,Math.min(p-h,d)).map(u);return n?v.reverse():v},e.tickFormat=function(n,r){if(null==r&&(r=10===i?\".0e\":\",\"),\"function\"!=typeof r&&(r=t.format(r)),n===1/0)return r;null==n&&(n=10);var a=Math.max(1,i*n/e.ticks().length);return function(t){var n=t/u(Math.round(o(t)));return n*i<i-.5&&(n*=i),n<=a?r(t):\"\"}},e.nice=function(){return r(Pm(r(),{floor:function(t){return u(Math.floor(o(t)))},ceil:function(t){return u(Math.ceil(o(t)))}}))},e.copy=function(){return Pu(e,ju().base(i))},e}function Hu(t,n){return t<0?-Math.pow(-t,n):Math.pow(t,n)}function Xu(){function t(t,n){return(n=Hu(n,e)-(t=Hu(t,e)))?function(r){return(Hu(r,e)-t)/n}:Em(n)}function n(t,n){return n=Hu(n,e)-(t=Hu(t,e)),function(r){return Hu(t+n*r,1/e)}}var e=1,r=Lu(t,n),i=r.domain;return r.exponent=function(t){return arguments.length?(e=+t,i(i())):e},r.copy=function(){return Pu(r,Xu().exponent(e))},Ru(r)}function Vu(){return Xu().exponent(.5)}function $u(){function t(){var t=0,o=Math.max(1,r.length);for(i=new Array(o-1);++t<o;)i[t-1]=of(e,t/o);return n}function n(t){if(!isNaN(t=+t))return r[Ds(i,t)]}var e=[],r=[],i=[];return n.invertExtent=function(t){var n=r.indexOf(t);return n<0?[NaN,NaN]:[n>0?i[n-1]:e[0],n<i.length?i[n]:e[e.length-1]]},n.domain=function(n){if(!arguments.length)return e.slice();e=[];for(var r,i=0,o=n.length;i<o;++i)null==(r=n[i])||isNaN(r=+r)||e.push(r);return e.sort(Rs),t()},n.range=function(n){return arguments.length?(r=Nm.call(n),t()):r.slice()},n.quantiles=function(){return i.slice()},n.copy=function(){return $u().domain(e).range(r)},n}function Wu(){function t(t){if(t<=t)return u[Ds(o,t,0,i)]}function n(){var n=-1;for(o=new Array(i);++n<i;)o[n]=((n+1)*r-(n-i)*e)/(i+1);return t}var e=0,r=1,i=1,o=[.5],u=[0,1];return t.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],n()):[e,r]},t.range=function(t){return arguments.length?(i=(u=Nm.call(t)).length-1,n()):u.slice()},t.invertExtent=function(t){var n=u.indexOf(t);return n<0?[NaN,NaN]:n<1?[e,o[0]]:n>=i?[o[i-1],r]:[o[n-1],o[n]]},t.copy=function(){return Wu().domain([e,r]).range(u)},Ru(t)}function Zu(){function t(t){if(t<=t)return e[Ds(n,t,0,r)]}var n=[.5],e=[0,1],r=1;return t.domain=function(i){return arguments.length?(n=Nm.call(i),r=Math.min(n.length,e.length-1),t):n.slice()},t.range=function(i){return arguments.length?(e=Nm.call(i),r=Math.min(n.length,e.length-1),t):e.slice()},t.invertExtent=function(t){var r=e.indexOf(t);return[n[r-1],n[r]]},t.copy=function(){return Zu().domain(n).range(e)},t}function Gu(t,n,e,r){function i(n){return t(n=new Date(+n)),n}return i.floor=i,i.ceil=function(e){return t(e=new Date(e-1)),n(e,1),t(e),e},i.round=function(t){var n=i(t),e=i.ceil(t);return t-n<e-t?n:e},i.offset=function(t,e){return n(t=new Date(+t),null==e?1:Math.floor(e)),t},i.range=function(e,r,o){var u=[];if(e=i.ceil(e),o=null==o?1:Math.floor(o),!(e<r&&o>0))return u;do{u.push(new Date(+e))}while(n(e,o),t(e),e<r);return u},i.filter=function(e){return Gu(function(n){if(n>=n)for(;t(n),!e(n);)n.setTime(n-1)},function(t,r){if(t>=t)for(;--r>=0;)for(;n(t,1),!e(t););})},e&&(i.count=function(n,r){return Lm.setTime(+n),Rm.setTime(+r),t(Lm),t(Rm),Math.floor(e(Lm,Rm))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t==0}:function(n){return i.count(0,n)%t==0}):i:null}),i}function Ju(t){return Gu(function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+7*n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Dm)/Om})}function Qu(t){return Gu(function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+7*n)},function(t,n){return(n-t)/Om})}function Ku(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function ta(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function na(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function ea(t){function n(t,n){return function(e){var r,i,o,u=[],a=-1,c=0,s=t.length;for(e instanceof Date||(e=new Date(+e));++a<s;)37===t.charCodeAt(a)&&(u.push(t.slice(c,a)),null!=(i=Ux[r=t.charAt(++a)])?r=t.charAt(++a):i=\"e\"===r?\" \":\"0\",(o=n[r])&&(r=o(e,i)),u.push(r),c=a+1);return u.push(t.slice(c,a)),u.join(\"\")}}function e(t,n){return function(e){var i=na(1900)\n    ;if(r(i,t,e+=\"\",0)!=e.length)return null;if(\"p\"in i&&(i.H=i.H%12+12*i.p),\"W\"in i||\"U\"in i){\"w\"in i||(i.w=\"W\"in i?1:0);var o=\"Z\"in i?ta(na(i.y)).getUTCDay():n(na(i.y)).getDay();i.m=0,i.d=\"W\"in i?(i.w+6)%7+7*i.W-(o+5)%7:i.w+7*i.U-(o+6)%7}return\"Z\"in i?(i.H+=i.Z/100|0,i.M+=i.Z%100,ta(i)):n(i)}}function r(t,n,e,r){for(var i,o,u=0,a=n.length,c=e.length;u<a;){if(r>=c)return-1;if(37===(i=n.charCodeAt(u++))){if(i=n.charAt(u++),!(o=B[i in Ux?n.charAt(u++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function i(t,n,e){var r=C.exec(n.slice(e));return r?(t.p=z[r[0].toLowerCase()],e+r[0].length):-1}function o(t,n,e){var r=R.exec(n.slice(e));return r?(t.w=q[r[0].toLowerCase()],e+r[0].length):-1}function u(t,n,e){var r=P.exec(n.slice(e));return r?(t.w=L[r[0].toLowerCase()],e+r[0].length):-1}function a(t,n,e){var r=O.exec(n.slice(e));return r?(t.m=F[r[0].toLowerCase()],e+r[0].length):-1}function c(t,n,e){var r=U.exec(n.slice(e));return r?(t.m=D[r[0].toLowerCase()],e+r[0].length):-1}function s(t,n,e){return r(t,w,n,e)}function f(t,n,e){return r(t,M,n,e)}function l(t,n,e){return r(t,T,n,e)}function h(t){return k[t.getDay()]}function p(t){return N[t.getDay()]}function d(t){return A[t.getMonth()]}function v(t){return E[t.getMonth()]}function _(t){return S[+(t.getHours()>=12)]}function g(t){return k[t.getUTCDay()]}function y(t){return N[t.getUTCDay()]}function m(t){return A[t.getUTCMonth()]}function x(t){return E[t.getUTCMonth()]}function b(t){return S[+(t.getUTCHours()>=12)]}var w=t.dateTime,M=t.date,T=t.time,S=t.periods,N=t.days,k=t.shortDays,E=t.months,A=t.shortMonths,C=oa(S),z=ua(S),P=oa(N),L=ua(N),R=oa(k),q=ua(k),U=oa(E),D=ua(E),O=oa(A),F=ua(A),I={a:h,A:p,b:d,B:v,c:null,d:ba,e:ba,H:wa,I:Ma,j:Ta,L:Sa,m:Na,M:ka,p:_,S:Ea,U:Aa,w:Ca,W:za,x:null,X:null,y:Pa,Y:La,Z:Ra,\"%\":Za},Y={a:g,A:y,b:m,B:x,c:null,d:qa,e:qa,H:Ua,I:Da,j:Oa,L:Fa,m:Ia,M:Ya,p:b,S:Ba,U:ja,w:Ha,W:Xa,x:null,X:null,y:Va,Y:$a,Z:Wa,\"%\":Za},B={a:o,A:u,b:a,B:c,c:s,d:da,e:da,H:_a,I:_a,j:va,L:ma,m:pa,M:ga,p:i,S:ya,U:ca,w:aa,W:sa,x:f,X:l,y:la,Y:fa,Z:ha,\"%\":xa};return I.x=n(M,I),I.X=n(T,I),I.c=n(w,I),Y.x=n(M,Y),Y.X=n(T,Y),Y.c=n(w,Y),{format:function(t){var e=n(t+=\"\",I);return e.toString=function(){return t},e},parse:function(t){var n=e(t+=\"\",Ku);return n.toString=function(){return t},n},utcFormat:function(t){var e=n(t+=\"\",Y);return e.toString=function(){return t},e},utcParse:function(t){var n=e(t,ta);return n.toString=function(){return t},n}}}function ra(t,n,e){var r=t<0?\"-\":\"\",i=(r?-t:t)+\"\",o=i.length;return r+(o<e?new Array(e-o+1).join(n)+i:i)}function ia(t){return t.replace(Fx,\"\\\\$&\")}function oa(t){return new RegExp(\"^(?:\"+t.map(ia).join(\"|\")+\")\",\"i\")}function ua(t){for(var n={},e=-1,r=t.length;++e<r;)n[t[e].toLowerCase()]=e;return n}function aa(t,n,e){var r=Dx.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function ca(t,n,e){var r=Dx.exec(n.slice(e));return r?(t.U=+r[0],e+r[0].length):-1}function sa(t,n,e){var r=Dx.exec(n.slice(e));return r?(t.W=+r[0],e+r[0].length):-1}function fa(t,n,e){var r=Dx.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function la(t,n,e){var r=Dx.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function ha(t,n,e){var r=/^(Z)|([+-]\\d\\d)(?:\\:?(\\d\\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||\"00\")),e+r[0].length):-1}function pa(t,n,e){var r=Dx.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function da(t,n,e){var r=Dx.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function va(t,n,e){var r=Dx.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function _a(t,n,e){var r=Dx.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function ga(t,n,e){var r=Dx.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function ya(t,n,e){var r=Dx.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function ma(t,n,e){var r=Dx.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function xa(t,n,e){var r=Ox.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function ba(t,n){return ra(t.getDate(),n,2)}function wa(t,n){return ra(t.getHours(),n,2)}function Ma(t,n){return ra(t.getHours()%12||12,n,2)}function Ta(t,n){return ra(1+Xm.count(sx(t),t),n,3)}function Sa(t,n){return ra(t.getMilliseconds(),n,3)}function Na(t,n){return ra(t.getMonth()+1,n,2)}function ka(t,n){return ra(t.getMinutes(),n,2)}function Ea(t,n){return ra(t.getSeconds(),n,2)}function Aa(t,n){return ra($m.count(sx(t),t),n,2)}function Ca(t){return t.getDay()}function za(t,n){return ra(Wm.count(sx(t),t),n,2)}function Pa(t,n){return ra(t.getFullYear()%100,n,2)}function La(t,n){return ra(t.getFullYear()%1e4,n,4)}function Ra(t){var n=t.getTimezoneOffset();return(n>0?\"-\":(n*=-1,\"+\"))+ra(n/60|0,\"0\",2)+ra(n%60,\"0\",2)}function qa(t,n){return ra(t.getUTCDate(),n,2)}function Ua(t,n){return ra(t.getUTCHours(),n,2)}function Da(t,n){return ra(t.getUTCHours()%12||12,n,2)}function Oa(t,n){return ra(1+vx.count(Lx(t),t),n,3)}function Fa(t,n){return ra(t.getUTCMilliseconds(),n,3)}function Ia(t,n){return ra(t.getUTCMonth()+1,n,2)}function Ya(t,n){return ra(t.getUTCMinutes(),n,2)}function Ba(t,n){return ra(t.getUTCSeconds(),n,2)}function ja(t,n){return ra(gx.count(Lx(t),t),n,2)}function Ha(t){return t.getUTCDay()}function Xa(t,n){return ra(yx.count(Lx(t),t),n,2)}function Va(t,n){return ra(t.getUTCFullYear()%100,n,2)}function $a(t,n){return ra(t.getUTCFullYear()%1e4,n,4)}function Wa(){return\"+0000\"}function Za(){return\"%\"}function Ga(n){return Rx=ea(n),t.timeFormat=Rx.format,t.timeParse=Rx.parse,t.utcFormat=Rx.utcFormat,t.utcParse=Rx.utcParse,Rx}function Ja(t){return t.toISOString()}function Qa(t){var n=new Date(t);return isNaN(n)?null:n}function Ka(t){return new Date(t)}function tc(t){return t instanceof Date?+t:+new Date(+t)}function nc(t,n,e,r,o,u,a,c,s){function f(i){return(a(i)<i?v:u(i)<i?_:o(i)<i?g:r(i)<i?y:n(i)<i?e(i)<i?m:x:t(i)<i?b:w)(i)}function l(n,e,r,o){if(null==n&&(n=10),\"number\"==typeof n){var u=Math.abs(r-e)/n,a=qs(function(t){return t[2]}).right(M,u);a===M.length?(o=i(e/Wx,r/Wx,n),n=t):a?(a=M[u/M[a-1][2]<M[a][2]/u?a-1:a],o=a[1],n=a[0]):(o=i(e,r,n),n=c)}return null==o?n:n.every(o)}var h=Lu(ku,xh),p=h.invert,d=h.domain,v=s(\".%L\"),_=s(\":%S\"),g=s(\"%I:%M\"),y=s(\"%I %p\"),m=s(\"%a %d\"),x=s(\"%b %d\"),b=s(\"%B\"),w=s(\"%Y\"),M=[[a,1,Bx],[a,5,5*Bx],[a,15,15*Bx],[a,30,30*Bx],[u,1,jx],[u,5,5*jx],[u,15,15*jx],[u,30,30*jx],[o,1,Hx],[o,3,3*Hx],[o,6,6*Hx],[o,12,12*Hx],[r,1,Xx],[r,2,2*Xx],[e,1,Vx],[n,1,$x],[n,3,3*$x],[t,1,Wx]];return h.invert=function(t){return new Date(p(t))},h.domain=function(t){return arguments.length?d(Sm.call(t,tc)):d().map(Ka)},h.ticks=function(t,n){var e,r=d(),i=r[0],o=r[r.length-1],u=o<i;return u&&(e=i,i=o,o=e),e=l(t,i,o,n),e=e?e.range(i,o+1):[],u?e.reverse():e},h.tickFormat=function(t,n){return null==n?f:s(n)},h.nice=function(t,n){var e=d();return(t=l(t,e[0],e[e.length-1],n))?d(Pm(e,t)):h},h.copy=function(){return Pu(h,nc(t,n,e,r,o,u,a,c,s))},h}function ec(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}function rc(t){function n(n){var o=(n-e)/(r-e);return t(i?Math.max(0,Math.min(1,o)):o)}var e=0,r=1,i=!1;return n.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],n):[e,r]},n.clamp=function(t){return arguments.length?(i=!!t,n):i},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return rc(t).domain([e,r]).clamp(i)},Ru(n)}function ic(t){return t>1?0:t<-1?xb:Math.acos(t)}function oc(t){return t>=1?bb:t<=-1?-bb:Math.asin(t)}function uc(t){return t.innerRadius}function ac(t){return t.outerRadius}function cc(t){return t.startAngle}function sc(t){return t.endAngle}function fc(t){return t&&t.padAngle}function lc(t,n,e,r,i,o,u,a){var c=e-t,s=r-n,f=u-i,l=a-o,h=(f*(n-o)-l*(t-i))/(l*c-f*s);return[t+h*c,n+h*s]}function hc(t,n,e,r,i,o,u){var a=t-e,c=n-r,s=(u?o:-o)/yb(a*a+c*c),f=s*c,l=-s*a,h=t+f,p=n+l,d=e+f,v=r+l,_=(h+d)/2,g=(p+v)/2,y=d-h,m=v-p,x=y*y+m*m,b=i-o,w=h*v-d*p,M=(m<0?-1:1)*yb(vb(0,b*b*x-w*w)),T=(w*m-y*M)/x,S=(-w*y-m*M)/x,N=(w*m+y*M)/x,k=(-w*y+m*M)/x,E=T-_,A=S-g,C=N-_,z=k-g;return E*E+A*A>C*C+z*z&&(T=N,S=k),{cx:T,cy:S,x01:-f,y01:-l,x11:T*(i/b-1),y11:S*(i/b-1)}}function pc(t){this._context=t}function dc(t){return t[0]}function vc(t){return t[1]}function _c(t){this._curve=t}function gc(t){function n(n){return new _c(t(n))}return n._curve=t,n}function yc(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(gc(t)):n()._curve},t}function mc(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function xc(t){this._context=t}function bc(t){this._context=t}function wc(t){this._context=t}function Mc(t,n){this._basis=new xc(t),this._beta=n}function Tc(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function Sc(t,n){this._context=t,this._k=(1-n)/6}function Nc(t,n){this._context=t,this._k=(1-n)/6}function kc(t,n){this._context=t,this._k=(1-n)/6}function Ec(t,n,e){var r=t._x1,i=t._y1,o=t._x2,u=t._y2;if(t._l01_a>mb){var a=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*a-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*a-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>mb){var s=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*s+t._x1*t._l23_2a-n*t._l12_2a)/f,u=(u*s+t._y1*t._l23_2a-e*t._l12_2a)/f}t._context.bezierCurveTo(r,i,o,u,t._x2,t._y2)}function Ac(t,n){this._context=t,this._alpha=n}function Cc(t,n){this._context=t,this._alpha=n}function zc(t,n){this._context=t,this._alpha=n}function Pc(t){this._context=t}function Lc(t){return t<0?-1:1}function Rc(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),u=(e-t._y1)/(i||r<0&&-0),a=(o*i+u*r)/(r+i);return(Lc(o)+Lc(u))*Math.min(Math.abs(o),Math.abs(u),.5*Math.abs(a))||0}function qc(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function Uc(t,n,e){var r=t._x0,i=t._y0,o=t._x1,u=t._y1,a=(o-r)/3;t._context.bezierCurveTo(r+a,i+a*n,o-a,u-a*e,o,u)}function Dc(t){this._context=t}function Oc(t){this._context=new Fc(t)}function Fc(t){this._context=t}function Ic(t){return new Dc(t)}function Yc(t){return new Oc(t)}function Bc(t){this._context=t}function jc(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),u=new Array(r);for(i[0]=0,o[0]=2,u[0]=t[0]+2*t[1],n=1;n<r-1;++n)i[n]=1,o[n]=4,u[n]=4*t[n]+2*t[n+1];for(i[r-1]=2,o[r-1]=7,u[r-1]=8*t[r-1]+t[r],n=1;n<r;++n)e=i[n]/o[n-1],o[n]-=e,u[n]-=e*u[n-1];for(i[r-1]=u[r-1]/o[r-1],n=r-2;n>=0;--n)i[n]=(u[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n<r-1;++n)o[n]=2*t[n+1]-i[n+1];return[i,o]}function Hc(t,n){this._context=t,this._t=n}function Xc(t){return new Hc(t,0)}function Vc(t){return new Hc(t,1)}function $c(t,n){return t[n]}function Wc(t){for(var n,e=0,r=-1,i=t.length;++r<i;)(n=+t[r][1])&&(e+=n);return e}function Zc(t){return t[0]}function Gc(t){return t[1]}function Jc(){this._=null}function Qc(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function Kc(t,n){var e=n,r=n.R,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function ts(t,n){var e=n,r=n.L,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function ns(t){for(;t.L;)t=t.L;return t}function es(t,n,e,r){var i=[null,null],o=Ew.push(i)-1;return i.left=t,i.right=n,e&&is(i,t,n,e),r&&is(i,n,t,r),Nw[t.index].halfedges.push(o),Nw[n.index].halfedges.push(o),i}function rs(t,n,e){var r=[n,e];return r.left=t,r}function is(t,n,e,r){t[0]||t[1]?t.left===e?t[1]=r:t[0]=r:(t[0]=r,t.left=n,t.right=e)}function os(t,n,e,r,i){var o,u=t[0],a=t[1],c=u[0],s=u[1],f=a[0],l=a[1],h=0,p=1,d=f-c,v=l-s;if(o=n-c,d||!(o>0)){if(o/=d,d<0){if(o<h)return;o<p&&(p=o)}else if(d>0){if(o>p)return;o>h&&(h=o)}if(o=r-c,d||!(o<0)){if(o/=d,d<0){if(o>p)return;o>h&&(h=o)}else if(d>0){if(o<h)return;o<p&&(p=o)}if(o=e-s,v||!(o>0)){if(o/=v,v<0){if(o<h)return;o<p&&(p=o)}else if(v>0){if(o>p)return;o>h&&(h=o)}if(o=i-s,v||!(o<0)){if(o/=v,v<0){if(o>p)return;o>h&&(h=o)}else if(v>0){if(o<h)return;o<p&&(p=o)}return!(h>0||p<1)||(h>0&&(t[0]=[c+h*d,s+h*v]),p<1&&(t[1]=[c+p*d,s+p*v]),!0)}}}}}function us(t,n,e,r,i){var o=t[1];if(o)return!0;var u,a,c=t[0],s=t.left,f=t.right,l=s[0],h=s[1],p=f[0],d=f[1],v=(l+p)/2,_=(h+d)/2;if(d===h){if(v<n||v>=r)return;if(l>p){if(c){if(c[1]>=i)return}else c=[v,e];o=[v,i]}else{if(c){if(c[1]<e)return}else c=[v,i];o=[v,e]}}else if(u=(l-p)/(d-h),a=_-u*v,u<-1||u>1)if(l>p){if(c){if(c[1]>=i)return}else c=[(e-a)/u,e];o=[(i-a)/u,i]}else{if(c){if(c[1]<e)return}else c=[(i-a)/u,i];o=[(e-a)/u,e]}else if(h<d){if(c){if(c[0]>=r)return}else c=[n,u*n+a];o=[r,u*r+a]}else{if(c){if(c[0]<n)return}else c=[r,u*r+a];o=[n,u*n+a]}return t[0]=c,t[1]=o,!0}function as(t,n,e,r){for(var i,o=Ew.length;o--;)us(i=Ew[o],t,n,e,r)&&os(i,t,n,e,r)&&(Math.abs(i[0][0]-i[1][0])>zw||Math.abs(i[0][1]-i[1][1])>zw)||delete Ew[o]}function cs(t){return Nw[t.index]={site:t,halfedges:[]}}function ss(t,n){var e=t.site,r=n.left,i=n.right;return e===i&&(i=r,r=e),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(e===r?(r=n[1],i=n[0]):(r=n[0],i=n[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function fs(t,n){return n[+(n.left!==t.site)]}function ls(t,n){return n[+(n.left===t.site)]}function hs(){for(var t,n,e,r,i=0,o=Nw.length;i<o;++i)if((t=Nw[i])&&(r=(n=t.halfedges).length)){var u=new Array(r),a=new Array(r);for(e=0;e<r;++e)u[e]=e,a[e]=ss(t,Ew[n[e]]);for(u.sort(function(t,n){return a[n]-a[t]}),e=0;e<r;++e)a[e]=n[u[e]];for(e=0;e<r;++e)n[e]=a[e]}}function ps(t,n,e,r){var i,o,u,a,c,s,f,l,h,p,d,v,_=Nw.length,g=!0;for(i=0;i<_;++i)if(o=Nw[i]){for(u=o.site,c=o.halfedges,a=c.length;a--;)Ew[c[a]]||c.splice(a,1);for(a=0,s=c.length;a<s;)p=ls(o,Ew[c[a]]),d=p[0],v=p[1],f=fs(o,Ew[c[++a%s]]),l=f[0],h=f[1],(Math.abs(d-l)>zw||Math.abs(v-h)>zw)&&(c.splice(a,0,Ew.push(rs(u,p,Math.abs(d-t)<zw&&r-v>zw?[t,Math.abs(l-t)<zw?h:r]:Math.abs(v-r)<zw&&e-d>zw?[Math.abs(h-r)<zw?l:e,r]:Math.abs(d-e)<zw&&v-n>zw?[e,Math.abs(l-e)<zw?h:n]:Math.abs(v-n)<zw&&d-t>zw?[Math.abs(h-n)<zw?l:t,n]:null))-1),++s);s&&(g=!1)}if(g){var y,m,x,b=1/0;for(i=0,g=null;i<_;++i)(o=Nw[i])&&(u=o.site,y=u[0]-t,m=u[1]-n,(x=y*y+m*m)<b&&(b=x,g=o));if(g){var w=[t,n],M=[t,r],T=[e,r],S=[e,n];g.halfedges.push(Ew.push(rs(u=g.site,w,M))-1,Ew.push(rs(u,M,T))-1,Ew.push(rs(u,T,S))-1,Ew.push(rs(u,S,w))-1)}}for(i=0;i<_;++i)(o=Nw[i])&&(o.halfedges.length||delete Nw[i])}function ds(){Qc(this),this.x=this.y=this.arc=this.site=this.cy=null}function vs(t){var n=t.P,e=t.N;if(n&&e){var r=n.site,i=t.site,o=e.site;if(r!==o){var u=i[0],a=i[1],c=r[0]-u,s=r[1]-a,f=o[0]-u,l=o[1]-a,h=2*(c*l-s*f);if(!(h>=-Pw)){var p=c*c+s*s,d=f*f+l*l,v=(l*p-s*d)/h,_=(c*d-f*p)/h,g=Aw.pop()||new ds;g.arc=t,g.site=i,g.x=v+u,g.y=(g.cy=_+a)+Math.sqrt(v*v+_*_),t.circle=g;for(var y=null,m=kw._;m;)if(g.y<m.y||g.y===m.y&&g.x<=m.x){if(!m.L){y=m.P;break}m=m.L}else{if(!m.R){y=m;break}m=m.R}kw.insert(y,g),y||(Tw=g)}}}}function _s(t){var n=t.circle;n&&(n.P||(Tw=n.N),kw.remove(n),Aw.push(n),Qc(n),t.circle=null)}function gs(){Qc(this),this.edge=this.site=this.circle=null}function ys(t){var n=Cw.pop()||new gs;return n.site=t,n}function ms(t){_s(t),Sw.remove(t),Cw.push(t),Qc(t)}function xs(t){var n=t.circle,e=n.x,r=n.cy,i=[e,r],o=t.P,u=t.N,a=[t];ms(t);for(var c=o;c.circle&&Math.abs(e-c.circle.x)<zw&&Math.abs(r-c.circle.cy)<zw;)o=c.P,a.unshift(c),ms(c),c=o;a.unshift(c),_s(c);for(var s=u;s.circle&&Math.abs(e-s.circle.x)<zw&&Math.abs(r-s.circle.cy)<zw;)u=s.N,a.push(s),ms(s),s=u;a.push(s),_s(s);var f,l=a.length;for(f=1;f<l;++f)s=a[f],c=a[f-1],is(s.edge,c.site,s.site,i);c=a[0],s=a[l-1],s.edge=es(c.site,s.site,null,i),vs(c),vs(s)}function bs(t){for(var n,e,r,i,o=t[0],u=t[1],a=Sw._;a;)if((r=ws(a,u)-o)>zw)a=a.L;else{if(!((i=o-Ms(a,u))>zw)){r>-zw?(n=a.P,e=a):i>-zw?(n=a,e=a.N):n=e=a;break}if(!a.R){n=a;break}a=a.R}cs(t);var c=ys(t);if(Sw.insert(n,c),n||e){if(n===e)return _s(n),e=ys(n.site),Sw.insert(c,e),c.edge=e.edge=es(n.site,c.site),vs(n),void vs(e);if(!e)return void(c.edge=es(n.site,c.site));_s(n),_s(e);var s=n.site,f=s[0],l=s[1],h=t[0]-f,p=t[1]-l,d=e.site,v=d[0]-f,_=d[1]-l,g=2*(h*_-p*v),y=h*h+p*p,m=v*v+_*_,x=[(_*y-p*m)/g+f,(h*m-v*y)/g+l];is(e.edge,s,d,x),c.edge=es(s,t,null,x),e.edge=es(t,d,null,x),vs(n),vs(e)}}function ws(t,n){var e=t.site,r=e[0],i=e[1],o=i-n;if(!o)return r;var u=t.P;if(!u)return-1/0;e=u.site;var a=e[0],c=e[1],s=c-n;if(!s)return a;var f=a-r,l=1/o-1/s,h=f/s;return l?(-h+Math.sqrt(h*h-2*l*(f*f/(-2*s)-c+s/2+i-o/2)))/l+r:(r+a)/2}function Ms(t,n){var e=t.N;if(e)return ws(e,n);var r=t.site;return r[1]===n?r[0]:1/0}function Ts(t,n,e){return(t[0]-e[0])*(n[1]-t[1])-(t[0]-n[0])*(e[1]-t[1])}function Ss(t,n){return n[1]-t[1]||n[0]-t[0]}function Ns(t,n){var e,r,i,o=t.sort(Ss).pop();for(Ew=[],Nw=new Array(t.length),Sw=new Jc,kw=new Jc;;)if(i=Tw,o&&(!i||o[1]<i.y||o[1]===i.y&&o[0]<i.x))o[0]===e&&o[1]===r||(bs(o),e=o[0],r=o[1]),o=t.pop();else{if(!i)break;xs(i.arc)}if(hs(),n){var u=+n[0][0],a=+n[0][1],c=+n[1][0],s=+n[1][1];as(u,a,c,s),ps(u,a,c,s)}this.edges=Ew,this.cells=Nw,Sw=kw=Ew=Nw=null}function ks(t,n,e){this.target=t,this.type=n,this.transform=e}function Es(t,n,e){this.k=t,this.x=n,this.y=e}function As(t){return t.__zoom||qw}function Cs(){t.event.stopImmediatePropagation()}function zs(){return!t.event.button}function Ps(){var t,n,e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,t=e.width.baseVal.value,n=e.height.baseVal.value):(t=e.clientWidth,n=e.clientHeight),[[0,0],[t,n]]}function Ls(){return this.__zoom||qw}var Rs=function(t,n){return t<n?-1:t>n?1:t>=n?0:NaN},qs=function(t){return 1===t.length&&(t=n(t)),{left:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)<0?r=o+1:i=o}return r},right:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)>0?i=o:r=o+1}return r}}},Us=qs(Rs),Ds=Us.right,Os=Us.left,Fs=function(t,n){null==n&&(n=e);for(var r=0,i=t.length-1,o=t[0],u=new Array(i<0?0:i);r<i;)u[r]=n(o,o=t[++r]);return u},Is=function(t,n,r){var i,o,u,a,c=t.length,s=n.length,f=new Array(c*s);for(null==r&&(r=e),i=u=0;i<c;++i)for(a=t[i],o=0;o<s;++o,++u)f[u]=r(a,n[o]);return f},Ys=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},Bs=function(t){return null===t?NaN:+t},js=function(t,n){var e,r,i=t.length,o=0,u=-1,a=0,c=0;if(null==n)for(;++u<i;)isNaN(e=Bs(t[u]))||(r=e-a,a+=r/++o,c+=r*(e-a));else for(;++u<i;)isNaN(e=Bs(n(t[u],u,t)))||(r=e-a,a+=r/++o,c+=r*(e-a));if(o>1)return c/(o-1)},Hs=function(t,n){var e=js(t,n);return e?Math.sqrt(e):e},Xs=function(t,n){var e,r,i,o=t.length,u=-1;if(null==n){for(;++u<o;)if(null!=(e=t[u])&&e>=e)for(r=i=e;++u<o;)null!=(e=t[u])&&(r>e&&(r=e),i<e&&(i=e))}else for(;++u<o;)if(null!=(e=n(t[u],u,t))&&e>=e)for(r=i=e;++u<o;)null!=(e=n(t[u],u,t))&&(r>e&&(r=e),i<e&&(i=e));return[r,i]},Vs=Array.prototype,$s=Vs.slice,Ws=Vs.map,Zs=function(t){return function(){return t}},Gs=function(t){return t},Js=function(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r<i;)o[r]=t+r*e;return o},Qs=Math.sqrt(50),Ks=Math.sqrt(10),tf=Math.sqrt(2),nf=function(t,n,e){var i,o,u,a=n<t,c=-1;if(a&&(i=t,t=n,n=i),0===(u=r(t,n,e))||!isFinite(u))return[];if(u>0)for(t=Math.ceil(t/u),n=Math.floor(n/u),o=new Array(i=Math.ceil(n-t+1));++c<i;)o[c]=(t+c)*u;else for(t=Math.floor(t*u),n=Math.ceil(n*u),o=new Array(i=Math.ceil(t-n+1));++c<i;)o[c]=(t-c)/u;return a&&o.reverse(),o},ef=function(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1},rf=function(){function t(t){var o,u,a=t.length,c=new Array(a);for(o=0;o<a;++o)c[o]=n(t[o],o,t);var s=e(c),f=s[0],l=s[1],h=r(c,f,l);Array.isArray(h)||(h=i(f,l,h),h=Js(Math.ceil(f/h)*h,Math.floor(l/h)*h,h));for(var p=h.length;h[0]<=f;)h.shift(),--p;for(;h[p-1]>l;)h.pop(),--p;var d,v=new Array(p+1);for(o=0;o<=p;++o)d=v[o]=[],d.x0=o>0?h[o-1]:f,d.x1=o<p?h[o]:l;for(o=0;o<a;++o)u=c[o],f<=u&&u<=l&&v[Ds(h,u,0,p)].push(t[o]);return v}var n=Gs,e=Xs,r=ef;return t.value=function(e){return arguments.length?(n=\"function\"==typeof e?e:Zs(e),t):n},t.domain=function(n){return arguments.length?(e=\"function\"==typeof n?n:Zs([n[0],n[1]]),t):e},t.thresholds=function(n){return arguments.length?(r=\"function\"==typeof n?n:Zs(Array.isArray(n)?$s.call(n):n),t):r},t},of=function(t,n,e){if(null==e&&(e=Bs),r=t.length){if((n=+n)<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,o=Math.floor(i),u=+e(t[o],o,t);return u+(+e(t[o+1],o+1,t)-u)*(i-o)}},uf=function(t,n,e){return t=Ws.call(t,Bs).sort(Rs),Math.ceil((e-n)/(2*(of(t,.75)-of(t,.25))*Math.pow(t.length,-1/3)))},af=function(t,n,e){return Math.ceil((e-n)/(3.5*Hs(t)*Math.pow(t.length,-1/3)))},cf=function(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o<i;)if(null!=(e=t[o])&&e>=e)for(r=e;++o<i;)null!=(e=t[o])&&e>r&&(r=e)}else for(;++o<i;)if(null!=(e=n(t[o],o,t))&&e>=e)for(r=e;++o<i;)null!=(e=n(t[o],o,t))&&e>r&&(r=e);return r},sf=function(t,n){var e,r=t.length,i=r,o=-1,u=0;if(null==n)for(;++o<r;)isNaN(e=Bs(t[o]))?--i:u+=e;else for(;++o<r;)isNaN(e=Bs(n(t[o],o,t)))?--i:u+=e;if(i)return u/i},ff=function(t,n){var e,r=t.length,i=-1,o=[];if(null==n)for(;++i<r;)isNaN(e=Bs(t[i]))||o.push(e);else for(;++i<r;)isNaN(e=Bs(n(t[i],i,t)))||o.push(e);return of(o.sort(Rs),.5)},lf=function(t){for(var n,e,r,i=t.length,o=-1,u=0;++o<i;)u+=t[o].length;for(e=new Array(u);--i>=0;)for(r=t[i],n=r.length;--n>=0;)e[--u]=r[n];return e},hf=function(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o<i;)if(null!=(e=t[o])&&e>=e)for(r=e;++o<i;)null!=(e=t[o])&&r>e&&(r=e)}else for(;++o<i;)if(null!=(e=n(t[o],o,t))&&e>=e)for(r=e;++o<i;)null!=(e=n(t[o],o,t))&&r>e&&(r=e);return r},pf=function(t,n){for(var e=n.length,r=new Array(e);e--;)r[e]=t[n[e]];return r},df=function(t,n){if(e=t.length){var e,r,i=0,o=0,u=t[o];for(null==n&&(n=Rs);++i<e;)(n(r=t[i],u)<0||0!==n(u,u))&&(u=r,o=i);return 0===n(u,u)?o:void 0}},vf=function(t,n,e){for(var r,i,o=(null==e?t.length:e)-(n=null==n?0:+n);o;)i=Math.random()*o--|0,r=t[o+n],t[o+n]=t[i+n],t[i+n]=r;return t},_f=function(t,n){var e,r=t.length,i=-1,o=0;if(null==n)for(;++i<r;)(e=+t[i])&&(o+=e);else for(;++i<r;)(e=+n(t[i],i,t))&&(o+=e);return o},gf=function(t){if(!(i=t.length))return[];for(var n=-1,e=hf(t,o),r=new Array(e);++n<e;)for(var i,u=-1,a=r[n]=new Array(i);++u<i;)a[u]=t[u][n];return r},yf=function(){return gf(arguments)},mf=Array.prototype.slice,xf=function(t){return t},bf=1,wf=2,Mf=3,Tf=4,Sf=1e-6,Nf={value:function(){}};_.prototype=v.prototype={constructor:_,on:function(t,n){var e,r=this._,i=g(t+\"\",r),o=-1,u=i.length;{if(!(arguments.length<2)){if(null!=n&&\"function\"!=typeof n)throw new Error(\"invalid callback: \"+n);for(;++o<u;)if(e=(t=i[o]).type)r[e]=m(r[e],t.name,n);else if(null==n)for(e in r)r[e]=m(r[e],t.name,null);return this}for(;++o<u;)if((e=(t=i[o]).type)&&(e=y(r[e],t.name)))return e}},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new _(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);for(r=this._[t],o=0,e=r.length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var kf=\"http://www.w3.org/1999/xhtml\",Ef={svg:\"http://www.w3.org/2000/svg\",xhtml:kf,xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"},Af=function(t){var n=t+=\"\",e=n.indexOf(\":\");return e>=0&&\"xmlns\"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),Ef.hasOwnProperty(n)?{space:Ef[n],local:t}:t},Cf=function(t){var n=Af(t);return(n.local?b:x)(n)},zf=0;M.prototype=w.prototype={constructor:M,get:function(t){for(var n=this._;!(n in t);)if(!(t=t.parentNode))return;return t[n]},set:function(t,n){return t[this._]=n},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};var Pf=function(t){return function(){return this.matches(t)}};if(\"undefined\"!=typeof document){var Lf=document.documentElement;if(!Lf.matches){var Rf=Lf.webkitMatchesSelector||Lf.msMatchesSelector||Lf.mozMatchesSelector||Lf.oMatchesSelector;Pf=function(t){return function(){return Rf.call(this,t)}}}}var qf=Pf,Uf={};if(t.event=null,\"undefined\"!=typeof document){\"onmouseenter\"in document.documentElement||(Uf={mouseenter:\"mouseover\",mouseleave:\"mouseout\"})}var Df=function(t,n,e){var r,i,o=N(t+\"\"),u=o.length;{if(!(arguments.length<2)){for(a=n?E:k,null==e&&(e=!1),r=0;r<u;++r)this.each(a(o[r],n,e));return this}var a=this.node().__on;if(a)for(var c,s=0,f=a.length;s<f;++s)for(r=0,c=a[s];r<u;++r)if((i=o[r]).type===c.type&&i.name===c.name)return c.value}},Of=function(){for(var n,e=t.event;n=e.sourceEvent;)e=n;return e},Ff=function(t,n){var e=t.ownerSVGElement||t;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=n.clientX,r.y=n.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}var i=t.getBoundingClientRect();return[n.clientX-i.left-t.clientLeft,n.clientY-i.top-t.clientTop]},If=function(t){var n=Of();return n.changedTouches&&(n=n.changedTouches[0]),Ff(t,n)},Yf=function(t){return null==t?C:function(){return this.querySelector(t)}},Bf=function(t){\"function\"!=typeof t&&(t=Yf(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u,a=n[i],c=a.length,s=r[i]=new Array(c),f=0;f<c;++f)(o=a[f])&&(u=t.call(o,o.__data__,f,a))&&(\"__data__\"in o&&(u.__data__=o.__data__),s[f]=u);return new vt(r,this._parents)},jf=function(t){return null==t?z:function(){return this.querySelectorAll(t)}},Hf=function(t){\"function\"!=typeof t&&(t=jf(t));for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var u,a=n[o],c=a.length,s=0;s<c;++s)(u=a[s])&&(r.push(t.call(u,u.__data__,s,a)),i.push(u));return new vt(r,i)},Xf=function(t){\"function\"!=typeof t&&(t=qf(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u=n[i],a=u.length,c=r[i]=[],s=0;s<a;++s)(o=u[s])&&t.call(o,o.__data__,s,u)&&c.push(o);return new vt(r,this._parents)},Vf=function(t){return new Array(t.length)},$f=function(){return new vt(this._enter||this._groups.map(Vf),this._parents)};P.prototype={constructor:P,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var Wf=function(t){return function(){return t}},Zf=\"$\",Gf=function(t,n){if(!t)return p=new Array(this.size()),s=-1,this.each(function(t){p[++s]=t}),p;var e=n?R:L,r=this._parents,i=this._groups;\"function\"!=typeof t&&(t=Wf(t));for(var o=i.length,u=new Array(o),a=new Array(o),c=new Array(o),s=0;s<o;++s){var f=r[s],l=i[s],h=l.length,p=t.call(f,f&&f.__data__,s,r),d=p.length,v=a[s]=new Array(d),_=u[s]=new Array(d);e(f,l,v,_,c[s]=new Array(h),p,n);for(var g,y,m=0,x=0;m<d;++m)if(g=v[m]){for(m>=x&&(x=m+1);!(y=_[x])&&++x<d;);g._next=y||null}}return u=new vt(u,r),u._enter=a,u._exit=c,u},Jf=function(){return new vt(this._exit||this._groups.map(Vf),this._parents)},Qf=function(t){for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),u=new Array(r),a=0;a<o;++a)for(var c,s=n[a],f=e[a],l=s.length,h=u[a]=new Array(l),p=0;p<l;++p)(c=s[p]||f[p])&&(h[p]=c);for(;a<r;++a)u[a]=n[a];return new vt(u,this._parents)},Kf=function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,u=i[o];--o>=0;)(r=i[o])&&(u&&u!==r.nextSibling&&u.parentNode.insertBefore(r,u),u=r);return this},tl=function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=q);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var u,a=e[o],c=a.length,s=i[o]=new Array(c),f=0;f<c;++f)(u=a[f])&&(s[f]=u);s.sort(n)}return new vt(i,this._parents).order()},nl=function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},el=function(){var t=new Array(this.size()),n=-1;return this.each(function(){t[++n]=this}),t},rl=function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var u=r[i];if(u)return u}return null},il=function(){var t=0;return this.each(function(){++t}),t},ol=function(){return!this.node()},ul=function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],u=0,a=o.length;u<a;++u)(i=o[u])&&t.call(i,i.__data__,u,o);return this},al=function(t,n){var e=Af(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?D:U:\"function\"==typeof n?e.local?Y:I:e.local?F:O)(e,n))},cl=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView},sl=function(t,n,e){var r;return arguments.length>1?this.each((null==n?B:\"function\"==typeof n?H:j)(t,n,null==e?\"\":e)):cl(r=this.node()).getComputedStyle(r,null).getPropertyValue(t)},fl=function(t,n){return arguments.length>1?this.each((null==n?X:\"function\"==typeof n?$:V)(t,n)):this.node()[t]};G.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute(\"class\",this._names.join(\" \")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute(\"class\",this._names.join(\" \")))},contains:function(t){return this._names.indexOf(t)>=0}};var ll=function(t,n){var e=W(t+\"\");if(arguments.length<2){for(var r=Z(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each((\"function\"==typeof n?nt:n?K:tt)(e,n))},hl=function(t){return arguments.length?this.each(null==t?et:(\"function\"==typeof t?it:rt)(t)):this.node().textContent},pl=function(t){return arguments.length?this.each(null==t?ot:(\"function\"==typeof t?at:ut)(t)):this.node().innerHTML},dl=function(){return this.each(ct)},vl=function(){return this.each(st)},_l=function(t){var n=\"function\"==typeof t?t:Cf(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},gl=function(t,n){var e=\"function\"==typeof t?t:Cf(t),r=null==n?ft:\"function\"==typeof n?n:Yf(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})},yl=function(){return this.each(lt)},ml=function(t){return arguments.length?this.property(\"__data__\",t):this.node().__data__},xl=function(t,n){return this.each((\"function\"==typeof n?dt:pt)(t,n))},bl=[null];vt.prototype=_t.prototype={constructor:vt,select:Bf,selectAll:Hf,filter:Xf,data:Gf,enter:$f,exit:Jf,merge:Qf,order:Kf,sort:tl,call:nl,nodes:el,node:rl,size:il,empty:ol,each:ul,attr:al,style:sl,property:fl,classed:ll,text:hl,html:pl,raise:dl,lower:vl,append:_l,insert:gl,remove:yl,datum:ml,on:Df,dispatch:xl};var wl=function(t){return\"string\"==typeof t?new vt([[document.querySelector(t)]],[document.documentElement]):new vt([[t]],bl)},Ml=function(t){return\"string\"==typeof t?new vt([document.querySelectorAll(t)],[document.documentElement]):new vt([null==t?[]:t],bl)},Tl=function(t,n,e){arguments.length<3&&(e=n,n=Of().changedTouches);for(var r,i=0,o=n?n.length:0;i<o;++i)if((r=n[i]).identifier===e)return Ff(t,r);return null},Sl=function(t,n){null==n&&(n=Of().touches);for(var e=0,r=n?n.length:0,i=new Array(r);e<r;++e)i[e]=Ff(t,n[e]);return i},Nl=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()},kl=function(t){var n=t.document.documentElement,e=wl(t).on(\"dragstart.drag\",Nl,!0);\"onselectstart\"in n?e.on(\"selectstart.drag\",Nl,!0):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect=\"none\")},El=function(t){return function(){return t}};mt.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var Al=function(){function n(t){t.on(\"mousedown.drag\",e).on(\"touchstart.drag\",o).on(\"touchmove.drag\",u).on(\"touchend.drag touchcancel.drag\",a).style(\"-webkit-tap-highlight-color\",\"rgba(0,0,0,0)\")}function e(){if(!f&&l.apply(this,arguments)){var n=c(\"mouse\",h.apply(this,arguments),If,this,arguments);n&&(wl(t.event.view).on(\"mousemove.drag\",r,!0).on(\"mouseup.drag\",i,!0),kl(t.event.view),gt(),s=!1,n(\"start\"))}}function r(){Nl(),s=!0,d.mouse(\"drag\")}function i(){\n        wl(t.event.view).on(\"mousemove.drag mouseup.drag\",null),yt(t.event.view,s),Nl(),d.mouse(\"end\")}function o(){if(l.apply(this,arguments)){var n,e,r=t.event.changedTouches,i=h.apply(this,arguments),o=r.length;for(n=0;n<o;++n)(e=c(r[n].identifier,i,Tl,this,arguments))&&(gt(),e(\"start\"))}}function u(){var n,e,r=t.event.changedTouches,i=r.length;for(n=0;n<i;++n)(e=d[r[n].identifier])&&(Nl(),e(\"drag\"))}function a(){var n,e,r=t.event.changedTouches,i=r.length;for(f&&clearTimeout(f),f=setTimeout(function(){f=null},500),n=0;n<i;++n)(e=d[r[n].identifier])&&(gt(),e(\"end\"))}function c(e,r,i,o,u){var a,c,s,f=i(r,e),l=_.copy();if(A(new mt(n,\"beforestart\",a,e,g,f[0],f[1],0,0,l),function(){return null!=(t.event.subject=a=p.apply(o,u))&&(c=a.x-f[0]||0,s=a.y-f[1]||0,!0)}))return function t(h){var p,v=f;switch(h){case\"start\":d[e]=t,p=g++;break;case\"end\":delete d[e],--g;case\"drag\":f=i(r,e),p=g}A(new mt(n,h,a,e,p,f[0]+c,f[1]+s,f[0]-v[0],f[1]-v[1],l),l.apply,l,[h,o,u])}}var s,f,l=xt,h=bt,p=wt,d={},_=v(\"start\",\"drag\",\"end\"),g=0;return n.filter=function(t){return arguments.length?(l=\"function\"==typeof t?t:El(!!t),n):l},n.container=function(t){return arguments.length?(h=\"function\"==typeof t?t:El(t),n):h},n.subject=function(t){return arguments.length?(p=\"function\"==typeof t?t:El(t),n):p},n.on=function(){var t=_.on.apply(_,arguments);return t===_?n:t},n},Cl=function(t,n,e){t.prototype=n.prototype=e,e.constructor=t},zl=\"\\\\s*([+-]?\\\\d+)\\\\s*\",Pl=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",Ll=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",Rl=/^#([0-9a-f]{3})$/,ql=/^#([0-9a-f]{6})$/,Ul=new RegExp(\"^rgb\\\\(\"+[zl,zl,zl]+\"\\\\)$\"),Dl=new RegExp(\"^rgb\\\\(\"+[Ll,Ll,Ll]+\"\\\\)$\"),Ol=new RegExp(\"^rgba\\\\(\"+[zl,zl,zl,Pl]+\"\\\\)$\"),Fl=new RegExp(\"^rgba\\\\(\"+[Ll,Ll,Ll,Pl]+\"\\\\)$\"),Il=new RegExp(\"^hsl\\\\(\"+[Pl,Ll,Ll]+\"\\\\)$\"),Yl=new RegExp(\"^hsla\\\\(\"+[Pl,Ll,Ll,Pl]+\"\\\\)$\"),Bl={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Cl(Tt,St,{displayable:function(){return this.rgb().displayable()},toString:function(){return this.rgb()+\"\"}}),Cl(Ct,At,Mt(Tt,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Ct(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Ct(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},toString:function(){var t=this.opacity;return t=isNaN(t)?1:Math.max(0,Math.min(1,t)),(1===t?\"rgb(\":\"rgba(\")+Math.max(0,Math.min(255,Math.round(this.r)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.g)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?\")\":\", \"+t+\")\")}})),Cl(Rt,Lt,Mt(Tt,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Rt(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Rt(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new Ct(qt(t>=240?t-240:t+120,i,r),qt(t,i,r),qt(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var jl=Math.PI/180,Hl=180/Math.PI,Xl=.95047,Vl=1,$l=1.08883,Wl=4/29,Zl=6/29,Gl=3*Zl*Zl,Jl=Zl*Zl*Zl;Cl(Ot,Dt,Mt(Tt,{brighter:function(t){return new Ot(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new Ot(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return t=Vl*It(t),n=Xl*It(n),e=$l*It(e),new Ct(Yt(3.2404542*n-1.5371385*t-.4985314*e),Yt(-.969266*n+1.8760108*t+.041556*e),Yt(.0556434*n-.2040259*t+1.0572252*e),this.opacity)}})),Cl(Xt,Ht,Mt(Tt,{brighter:function(t){return new Xt(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new Xt(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return Ut(this).rgb()}}));var Ql=-.14861,Kl=1.78277,th=-.29227,nh=-.90649,eh=1.97294,rh=eh*nh,ih=eh*Kl,oh=Kl*th-nh*Ql;Cl(Wt,$t,Mt(Tt,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Wt(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Wt(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*jl,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new Ct(255*(n+e*(Ql*r+Kl*i)),255*(n+e*(th*r+nh*i)),255*(n+e*(eh*r)),this.opacity)}}));var uh,ah,ch,sh,fh,lh,hh=function(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],u=r>0?t[r-1]:2*i-o,a=r<n-1?t[r+2]:2*o-i;return Zt((e-r/n)*n,u,i,o,a)}},ph=function(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],u=t[(r+1)%n],a=t[(r+2)%n];return Zt((e-r/n)*n,i,o,u,a)}},dh=function(t){return function(){return t}},vh=function t(n){function e(t,n){var e=r((t=At(t)).r,(n=At(n)).r),i=r(t.g,n.g),o=r(t.b,n.b),u=tn(t.opacity,n.opacity);return function(n){return t.r=e(n),t.g=i(n),t.b=o(n),t.opacity=u(n),t+\"\"}}var r=Kt(n);return e.gamma=t,e}(1),_h=nn(hh),gh=nn(ph),yh=function(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,o=new Array(r),u=new Array(r);for(e=0;e<i;++e)o[e]=Sh(t[e],n[e]);for(;e<r;++e)u[e]=n[e];return function(t){for(e=0;e<i;++e)u[e]=o[e](t);return u}},mh=function(t,n){var e=new Date;return t=+t,n-=t,function(r){return e.setTime(t+n*r),e}},xh=function(t,n){return t=+t,n-=t,function(e){return t+n*e}},bh=function(t,n){var e,r={},i={};null!==t&&\"object\"==typeof t||(t={}),null!==n&&\"object\"==typeof n||(n={});for(e in n)e in t?r[e]=Sh(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}},wh=/[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,Mh=new RegExp(wh.source,\"g\"),Th=function(t,n){var e,r,i,o=wh.lastIndex=Mh.lastIndex=0,u=-1,a=[],c=[];for(t+=\"\",n+=\"\";(e=wh.exec(t))&&(r=Mh.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),a[u]?a[u]+=i:a[++u]=i),(e=e[0])===(r=r[0])?a[u]?a[u]+=r:a[++u]=r:(a[++u]=null,c.push({i:u,x:xh(e,r)})),o=Mh.lastIndex;return o<n.length&&(i=n.slice(o),a[u]?a[u]+=i:a[++u]=i),a.length<2?c[0]?rn(c[0].x):en(n):(n=c.length,function(t){for(var e,r=0;r<n;++r)a[(e=c[r]).i]=e.x(t);return a.join(\"\")})},Sh=function(t,n){var e,r=typeof n;return null==n||\"boolean\"===r?dh(n):(\"number\"===r?xh:\"string\"===r?(e=St(n))?(n=e,vh):Th:n instanceof St?vh:n instanceof Date?mh:Array.isArray(n)?yh:isNaN(n)?bh:xh)(t,n)},Nh=function(t,n){return t=+t,n-=t,function(e){return Math.round(t+n*e)}},kh=180/Math.PI,Eh={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},Ah=function(t,n,e,r,i,o){var u,a,c;return(u=Math.sqrt(t*t+n*n))&&(t/=u,n/=u),(c=t*e+n*r)&&(e-=t*c,r-=n*c),(a=Math.sqrt(e*e+r*r))&&(e/=a,r/=a,c/=a),t*r<n*e&&(t=-t,n=-n,c=-c,u=-u),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*kh,skewX:Math.atan(c)*kh,scaleX:u,scaleY:a}},Ch=an(on,\"px, \",\"px)\",\"deg)\"),zh=an(un,\", \",\")\",\")\"),Ph=Math.SQRT2,Lh=function(t,n){var e,r,i=t[0],o=t[1],u=t[2],a=n[0],c=n[1],s=n[2],f=a-i,l=c-o,h=f*f+l*l;if(h<1e-12)r=Math.log(s/u)/Ph,e=function(t){return[i+t*f,o+t*l,u*Math.exp(Ph*t*r)]};else{var p=Math.sqrt(h),d=(s*s-u*u+4*h)/(2*u*2*p),v=(s*s-u*u-4*h)/(2*s*2*p),_=Math.log(Math.sqrt(d*d+1)-d),g=Math.log(Math.sqrt(v*v+1)-v);r=(g-_)/Ph,e=function(t){var n=t*r,e=cn(_),a=u/(2*p)*(e*fn(Ph*n+_)-sn(_));return[i+a*f,o+a*l,u*e/cn(Ph*n+_)]}}return e.duration=1e3*r,e},Rh=ln(Qt),qh=ln(tn),Uh=pn(Qt),Dh=pn(tn),Oh=dn(Qt),Fh=dn(tn),Ih=function(t,n){for(var e=new Array(n),r=0;r<n;++r)e[r]=t(r/(n-1));return e},Yh=0,Bh=0,jh=0,Hh=1e3,Xh=0,Vh=0,$h=0,Wh=\"object\"==typeof performance&&performance.now?performance:Date,Zh=\"function\"==typeof requestAnimationFrame?requestAnimationFrame:function(t){setTimeout(t,17)};gn.prototype=yn.prototype={constructor:gn,restart:function(t,n,e){if(\"function\"!=typeof t)throw new TypeError(\"callback is not a function\");e=(null==e?vn():+e)+(null==n?0:+n),this._next||lh===this||(lh?lh._next=this:fh=this,lh=this),this._call=t,this._time=e,Mn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Mn())}};var Gh=function(t,n,e){var r=new gn;return n=null==n?0:+n,r.restart(function(e){r.stop(),t(e+n)},n,e),r},Jh=function(t,n,e){var r=new gn,i=n;return null==n?(r.restart(t,n,e),r):(n=+n,e=null==e?vn():+e,r.restart(function o(u){u+=i,r.restart(o,i+=n,e),t(u)},n,e),r)},Qh=v(\"start\",\"end\",\"interrupt\"),Kh=[],tp=0,np=1,ep=2,rp=3,ip=4,op=5,up=6,ap=function(t,n,e,r,i,o){var u=t.__transition;if(u){if(e in u)return}else t.__transition={};kn(t,e,{name:n,index:r,group:i,on:Qh,tween:Kh,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:tp})},cp=function(t,n){var e,r,i,o=t.__transition,u=!0;if(o){n=null==n?null:n+\"\";for(i in o)(e=o[i]).name===n?(r=e.state>ep&&e.state<op,e.state=up,e.timer.stop(),r&&e.on.call(\"interrupt\",t,t.__data__,e.index,e.group),delete o[i]):u=!1;u&&delete t.__transition}},sp=function(t){return this.each(function(){cp(this,t)})},fp=function(t,n){var e=this._id;if(t+=\"\",arguments.length<2){for(var r,i=Nn(this.node(),e).tween,o=0,u=i.length;o<u;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?En:An)(e,t,n))},lp=function(t,n){var e;return(\"number\"==typeof n?xh:n instanceof St?vh:(e=St(n))?(n=e,vh):Th)(t,n)},hp=function(t,n){var e=Af(t),r=\"transform\"===e?zh:lp;return this.attrTween(t,\"function\"==typeof n?(e.local?Un:qn)(e,r,Cn(this,\"attr.\"+t,n)):null==n?(e.local?Pn:zn)(e):(e.local?Rn:Ln)(e,r,n+\"\"))},pp=function(t,n){var e=\"attr.\"+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if(\"function\"!=typeof n)throw new Error;var r=Af(t);return this.tween(e,(r.local?Dn:On)(r,n))},dp=function(t){var n=this._id;return arguments.length?this.each((\"function\"==typeof t?Fn:In)(n,t)):Nn(this.node(),n).delay},vp=function(t){var n=this._id;return arguments.length?this.each((\"function\"==typeof t?Yn:Bn)(n,t)):Nn(this.node(),n).duration},_p=function(t){var n=this._id;return arguments.length?this.each(jn(n,t)):Nn(this.node(),n).ease},gp=function(t){\"function\"!=typeof t&&(t=qf(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u=n[i],a=u.length,c=r[i]=[],s=0;s<a;++s)(o=u[s])&&t.call(o,o.__data__,s,u)&&c.push(o);return new te(r,this._parents,this._name,this._id)},yp=function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),u=new Array(r),a=0;a<o;++a)for(var c,s=n[a],f=e[a],l=s.length,h=u[a]=new Array(l),p=0;p<l;++p)(c=s[p]||f[p])&&(h[p]=c);for(;a<r;++a)u[a]=n[a];return new te(u,this._parents,this._name,this._id)},mp=function(t,n){var e=this._id;return arguments.length<2?Nn(this.node(),e).on.on(t):this.each(Xn(e,t,n))},xp=function(){return this.on(\"end.remove\",Vn(this._id))},bp=function(t){var n=this._name,e=this._id;\"function\"!=typeof t&&(t=Yf(t));for(var r=this._groups,i=r.length,o=new Array(i),u=0;u<i;++u)for(var a,c,s=r[u],f=s.length,l=o[u]=new Array(f),h=0;h<f;++h)(a=s[h])&&(c=t.call(a,a.__data__,h,s))&&(\"__data__\"in a&&(c.__data__=a.__data__),l[h]=c,ap(l[h],n,e,h,l,Nn(a,e)));return new te(o,this._parents,n,e)},wp=function(t){var n=this._name,e=this._id;\"function\"!=typeof t&&(t=jf(t));for(var r=this._groups,i=r.length,o=[],u=[],a=0;a<i;++a)for(var c,s=r[a],f=s.length,l=0;l<f;++l)if(c=s[l]){for(var h,p=t.call(c,c.__data__,l,s),d=Nn(c,e),v=0,_=p.length;v<_;++v)(h=p[v])&&ap(h,n,e,v,p,d);o.push(p),u.push(c)}return new te(o,u,n,e)},Mp=_t.prototype.constructor,Tp=function(){return new Mp(this._groups,this._parents)},Sp=function(t,n,e){var r=\"transform\"==(t+=\"\")?Ch:lp;return null==n?this.styleTween(t,$n(t,r)).on(\"end.style.\"+t,Wn(t)):this.styleTween(t,\"function\"==typeof n?Gn(t,r,Cn(this,\"style.\"+t,n)):Zn(t,r,n+\"\"),e)},Np=function(t,n,e){var r=\"style.\"+(t+=\"\");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if(\"function\"!=typeof n)throw new Error;return this.tween(r,Jn(t,n,null==e?\"\":e))},kp=function(t){return this.tween(\"text\",\"function\"==typeof t?Kn(Cn(this,\"text\",t)):Qn(null==t?\"\":t+\"\"))},Ep=function(){for(var t=this._name,n=this._id,e=ee(),r=this._groups,i=r.length,o=0;o<i;++o)for(var u,a=r[o],c=a.length,s=0;s<c;++s)if(u=a[s]){var f=Nn(u,n);ap(u,t,e,s,a,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new te(r,this._parents,t,e)},Ap=0,Cp=_t.prototype;te.prototype=ne.prototype={constructor:te,select:bp,selectAll:wp,filter:gp,merge:yp,selection:Tp,transition:Ep,call:Cp.call,nodes:Cp.nodes,node:Cp.node,size:Cp.size,empty:Cp.empty,each:Cp.each,on:mp,attr:hp,attrTween:pp,style:Sp,styleTween:Np,text:kp,remove:xp,tween:fp,delay:dp,duration:vp,ease:_p};var zp=function t(n){function e(t){return Math.pow(t,n)}return n=+n,e.exponent=t,e}(3),Pp=function t(n){function e(t){return 1-Math.pow(1-t,n)}return n=+n,e.exponent=t,e}(3),Lp=function t(n){function e(t){return((t*=2)<=1?Math.pow(t,n):2-Math.pow(2-t,n))/2}return n=+n,e.exponent=t,e}(3),Rp=Math.PI,qp=Rp/2,Up=4/11,Dp=6/11,Op=8/11,Fp=.75,Ip=9/11,Yp=10/11,Bp=.9375,jp=21/22,Hp=63/64,Xp=1/Up/Up,Vp=function t(n){function e(t){return t*t*((n+1)*t-n)}return n=+n,e.overshoot=t,e}(1.70158),$p=function t(n){function e(t){return--t*t*((n+1)*t+n)+1}return n=+n,e.overshoot=t,e}(1.70158),Wp=function t(n){function e(t){return((t*=2)<1?t*t*((n+1)*t-n):(t-=2)*t*((n+1)*t+n)+2)/2}return n=+n,e.overshoot=t,e}(1.70158),Zp=2*Math.PI,Gp=function t(n,e){function r(t){return n*Math.pow(2,10*--t)*Math.sin((i-t)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=Zp);return r.amplitude=function(n){return t(n,e*Zp)},r.period=function(e){return t(n,e)},r}(1,.3),Jp=function t(n,e){function r(t){return 1-n*Math.pow(2,-10*(t=+t))*Math.sin((t+i)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=Zp);return r.amplitude=function(n){return t(n,e*Zp)},r.period=function(e){return t(n,e)},r}(1,.3),Qp=function t(n,e){function r(t){return((t=2*t-1)<0?n*Math.pow(2,10*t)*Math.sin((i-t)/e):2-n*Math.pow(2,-10*t)*Math.sin((i+t)/e))/2}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=Zp);return r.amplitude=function(n){return t(n,e*Zp)},r.period=function(e){return t(n,e)},r}(1,.3),Kp={time:null,delay:0,duration:250,ease:se},td=function(t){var n,e;t instanceof te?(n=t._id,t=t._name):(n=ee(),(e=Kp).time=vn(),t=null==t?null:t+\"\");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var u,a=r[o],c=a.length,s=0;s<c;++s)(u=a[s])&&ap(u,t,n,s,a,e||we(u,n));return new te(r,this._parents,t,n)};_t.prototype.interrupt=sp,_t.prototype.transition=td;var nd=[null],ed=function(t,n){var e,r,i=t.__transition;if(i){n=null==n?null:n+\"\";for(r in i)if((e=i[r]).state>np&&e.name===n)return new te([[t]],nd,n,+r)}return null},rd=function(t){return function(){return t}},id=function(t,n,e){this.target=t,this.type=n,this.selection=e},od=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()},ud={name:\"drag\"},ad={name:\"space\"},cd={name:\"handle\"},sd={name:\"center\"},fd={name:\"x\",handles:[\"e\",\"w\"].map(Te),input:function(t,n){return t&&[[t[0],n[0][1]],[t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},ld={name:\"y\",handles:[\"n\",\"s\"].map(Te),input:function(t,n){return t&&[[n[0][0],t[0]],[n[1][0],t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},hd={name:\"xy\",handles:[\"n\",\"e\",\"s\",\"w\",\"nw\",\"ne\",\"se\",\"sw\"].map(Te),input:function(t){return t},output:function(t){return t}},pd={overlay:\"crosshair\",selection:\"move\",n:\"ns-resize\",e:\"ew-resize\",s:\"ns-resize\",w:\"ew-resize\",nw:\"nwse-resize\",ne:\"nesw-resize\",se:\"nwse-resize\",sw:\"nesw-resize\"},dd={e:\"w\",w:\"e\",nw:\"ne\",ne:\"nw\",se:\"sw\",sw:\"se\"},vd={n:\"s\",s:\"n\",nw:\"sw\",ne:\"se\",se:\"ne\",sw:\"nw\"},_d={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},gd={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1},yd=function(){return Pe(hd)},md=Math.cos,xd=Math.sin,bd=Math.PI,wd=bd/2,Md=2*bd,Td=Math.max,Sd=function(){function t(t){var o,u,a,c,s,f,l=t.length,h=[],p=Js(l),d=[],v=[],_=v.groups=new Array(l),g=new Array(l*l);for(o=0,s=-1;++s<l;){for(u=0,f=-1;++f<l;)u+=t[s][f];h.push(u),d.push(Js(l)),o+=u}for(e&&p.sort(function(t,n){return e(h[t],h[n])}),r&&d.forEach(function(n,e){n.sort(function(n,i){return r(t[e][n],t[e][i])})}),o=Td(0,Md-n*l)/o,c=o?n:Md/l,u=0,s=-1;++s<l;){for(a=u,f=-1;++f<l;){var y=p[s],m=d[y][f],x=t[y][m],b=u,w=u+=x*o;g[m*l+y]={index:y,subindex:m,startAngle:b,endAngle:w,value:x}}_[y]={index:y,startAngle:a,endAngle:u,value:h[y]},u+=c}for(s=-1;++s<l;)for(f=s-1;++f<l;){var M=g[f*l+s],T=g[s*l+f];(M.value||T.value)&&v.push(M.value<T.value?{source:T,target:M}:{source:M,target:T})}return i?v.sort(i):v}var n=0,e=null,r=null,i=null;return t.padAngle=function(e){return arguments.length?(n=Td(0,e),t):n},t.sortGroups=function(n){return arguments.length?(e=n,t):e},t.sortSubgroups=function(n){return arguments.length?(r=n,t):r},t.sortChords=function(n){return arguments.length?(null==n?i=null:(i=Le(n))._=n,t):i&&i._},t},Nd=Array.prototype.slice,kd=function(t){return function(){return t}},Ed=Math.PI,Ad=2*Ed,Cd=Ad-1e-6;Re.prototype=qe.prototype={constructor:Re,moveTo:function(t,n){this._+=\"M\"+(this._x0=this._x1=+t)+\",\"+(this._y0=this._y1=+n)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+=\"Z\")},lineTo:function(t,n){this._+=\"L\"+(this._x1=+t)+\",\"+(this._y1=+n)},quadraticCurveTo:function(t,n,e,r){this._+=\"Q\"+ +t+\",\"+ +n+\",\"+(this._x1=+e)+\",\"+(this._y1=+r)},bezierCurveTo:function(t,n,e,r,i,o){this._+=\"C\"+ +t+\",\"+ +n+\",\"+ +e+\",\"+ +r+\",\"+(this._x1=+i)+\",\"+(this._y1=+o)},arcTo:function(t,n,e,r,i){t=+t,n=+n,e=+e,r=+r,i=+i;var o=this._x1,u=this._y1,a=e-t,c=r-n,s=o-t,f=u-n,l=s*s+f*f;if(i<0)throw new Error(\"negative radius: \"+i);if(null===this._x1)this._+=\"M\"+(this._x1=t)+\",\"+(this._y1=n);else if(l>1e-6)if(Math.abs(f*a-c*s)>1e-6&&i){var h=e-o,p=r-u,d=a*a+c*c,v=h*h+p*p,_=Math.sqrt(d),g=Math.sqrt(l),y=i*Math.tan((Ed-Math.acos((d+l-v)/(2*_*g)))/2),m=y/g,x=y/_;Math.abs(m-1)>1e-6&&(this._+=\"L\"+(t+m*s)+\",\"+(n+m*f)),this._+=\"A\"+i+\",\"+i+\",0,0,\"+ +(f*h>s*p)+\",\"+(this._x1=t+x*a)+\",\"+(this._y1=n+x*c)}else this._+=\"L\"+(this._x1=t)+\",\"+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n,e=+e;var u=e*Math.cos(r),a=e*Math.sin(r),c=t+u,s=n+a,f=1^o,l=o?r-i:i-r;if(e<0)throw new Error(\"negative radius: \"+e);null===this._x1?this._+=\"M\"+c+\",\"+s:(Math.abs(this._x1-c)>1e-6||Math.abs(this._y1-s)>1e-6)&&(this._+=\"L\"+c+\",\"+s),e&&(l<0&&(l=l%Ad+Ad),l>Cd?this._+=\"A\"+e+\",\"+e+\",0,1,\"+f+\",\"+(t-u)+\",\"+(n-a)+\"A\"+e+\",\"+e+\",0,1,\"+f+\",\"+(this._x1=c)+\",\"+(this._y1=s):l>1e-6&&(this._+=\"A\"+e+\",\"+e+\",0,\"+ +(l>=Ed)+\",\"+f+\",\"+(this._x1=t+e*Math.cos(i))+\",\"+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+=\"M\"+(this._x0=this._x1=+t)+\",\"+(this._y0=this._y1=+n)+\"h\"+ +e+\"v\"+ +r+\"h\"+-e+\"Z\"},toString:function(){return this._}};var zd=function(){function t(){var t,a=Nd.call(arguments),c=n.apply(this,a),s=e.apply(this,a),f=+r.apply(this,(a[0]=c,a)),l=i.apply(this,a)-wd,h=o.apply(this,a)-wd,p=f*md(l),d=f*xd(l),v=+r.apply(this,(a[0]=s,a)),_=i.apply(this,a)-wd,g=o.apply(this,a)-wd;if(u||(u=t=qe()),u.moveTo(p,d),u.arc(0,0,f,l,h),l===_&&h===g||(u.quadraticCurveTo(0,0,v*md(_),v*xd(_)),u.arc(0,0,v,_,g)),u.quadraticCurveTo(0,0,p,d),u.closePath(),t)return u=null,t+\"\"||null}var n=Ue,e=De,r=Oe,i=Fe,o=Ie,u=null;return t.radius=function(n){return arguments.length?(r=\"function\"==typeof n?n:kd(+n),t):r},t.startAngle=function(n){return arguments.length?(i=\"function\"==typeof n?n:kd(+n),t):i},t.endAngle=function(n){return arguments.length?(o=\"function\"==typeof n?n:kd(+n),t):o},t.source=function(e){return arguments.length?(n=e,t):n},t.target=function(n){return arguments.length?(e=n,t):e},t.context=function(n){return arguments.length?(u=null==n?null:n,t):u},t};Ye.prototype=Be.prototype={constructor:Ye,has:function(t){return\"$\"+t in this},get:function(t){return this[\"$\"+t]},set:function(t,n){return this[\"$\"+t]=n,this},remove:function(t){var n=\"$\"+t;return n in this&&delete this[n]},clear:function(){for(var t in this)\"$\"===t[0]&&delete this[t]},keys:function(){var t=[];for(var n in this)\"$\"===n[0]&&t.push(n.slice(1));return t},values:function(){var t=[];for(var n in this)\"$\"===n[0]&&t.push(this[n]);return t},entries:function(){var t=[];for(var n in this)\"$\"===n[0]&&t.push({key:n.slice(1),value:this[n]});return t},size:function(){var t=0;for(var n in this)\"$\"===n[0]&&++t;return t},empty:function(){for(var t in this)if(\"$\"===t[0])return!1;return!0},each:function(t){for(var n in this)\"$\"===n[0]&&t(this[n],n.slice(1),this)}};var Pd=function(){function t(n,i,u,a){if(i>=o.length)return null!=r?r(n):null!=e?n.sort(e):n;for(var c,s,f,l=-1,h=n.length,p=o[i++],d=Be(),v=u();++l<h;)(f=d.get(c=p(s=n[l])+\"\"))?f.push(s):d.set(c,[s]);return d.each(function(n,e){a(v,e,t(n,i,u,a))}),v}function n(t,e){if(++e>o.length)return t;var i,a=u[e-1];return null!=r&&e>=o.length?i=t.entries():(i=[],t.each(function(t,r){i.push({key:r,values:n(t,e)})})),null!=a?i.sort(function(t,n){return a(t.key,n.key)}):i}var e,r,i,o=[],u=[];return i={object:function(n){return t(n,0,je,He)},map:function(n){return t(n,0,Xe,Ve)},entries:function(e){return n(t(e,0,Xe,Ve),0)},key:function(t){return o.push(t),i},sortKeys:function(t){return u[o.length-1]=t,i},sortValues:function(t){return e=t,i},rollup:function(t){return r=t,i}}},Ld=Be.prototype;$e.prototype=We.prototype={constructor:$e,has:Ld.has,add:function(t){return t+=\"\",this[\"$\"+t]=t,this},remove:Ld.remove,clear:Ld.clear,values:Ld.keys,size:Ld.size,empty:Ld.empty,each:Ld.each};var Rd=function(t){var n=[];for(var e in t)n.push(e);return n},qd=function(t){var n=[];for(var e in t)n.push(t[e]);return n},Ud=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},Dd=function(t){function n(t,n){var r,i,o=e(t,function(t,e){if(r)return r(t,e-1);i=t,r=n?Ge(t,n):Ze(t)});return o.columns=i,o}function e(t,n){function e(){if(f>=s)return u;if(i)return i=!1,o;var n,e=f;if(34===t.charCodeAt(e)){for(var r=e;r++<s;)if(34===t.charCodeAt(r)){if(34!==t.charCodeAt(r+1))break;++r}return f=r+2,n=t.charCodeAt(r+1),13===n?(i=!0,10===t.charCodeAt(r+2)&&++f):10===n&&(i=!0),t.slice(e+1,r).replace(/\"\"/g,'\"')}for(;f<s;){var a=1;if(10===(n=t.charCodeAt(f++)))i=!0;else if(13===n)i=!0,10===t.charCodeAt(f)&&(++f,++a);else if(n!==c)continue;return t.slice(e,f-a)}return t.slice(e)}for(var r,i,o={},u={},a=[],s=t.length,f=0,l=0;(r=e())!==u;){for(var h=[];r!==o&&r!==u;)h.push(r),r=e();n&&null==(h=n(h,l++))||a.push(h)}return a}function r(n,e){return null==e&&(e=Je(n)),[e.map(u).join(t)].concat(n.map(function(n){return e.map(function(t){return u(n[t])}).join(t)})).join(\"\\n\")}function i(t){return t.map(o).join(\"\\n\")}function o(n){return n.map(u).join(t)}function u(t){return null==t?\"\":a.test(t+=\"\")?'\"'+t.replace(/\\\"/g,'\"\"')+'\"':t}var a=new RegExp('[\"'+t+\"\\n\\r]\"),c=t.charCodeAt(0);return{parse:n,parseRows:e,format:r,formatRows:i}},Od=Dd(\",\"),Fd=Od.parse,Id=Od.parseRows,Yd=Od.format,Bd=Od.formatRows,jd=Dd(\"\\t\"),Hd=jd.parse,Xd=jd.parseRows,Vd=jd.format,$d=jd.formatRows,Wd=function(t,n){function e(){var e,i,o=r.length,u=0,a=0;for(e=0;e<o;++e)i=r[e],u+=i.x,a+=i.y;for(u=u/o-t,a=a/o-n,e=0;e<o;++e)i=r[e],i.x-=u,i.y-=a}var r;return null==t&&(t=0),null==n&&(n=0),e.initialize=function(t){r=t},e.x=function(n){return arguments.length?(t=+n,e):t},e.y=function(t){return arguments.length?(n=+t,e):n},e},Zd=function(t){return function(){return t}},Gd=function(){return 1e-6*(Math.random()-.5)},Jd=function(t){var n=+this._x.call(null,t),e=+this._y.call(null,t);return Qe(this.cover(n,e),n,e,t)},Qd=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,o=(r=Math.floor(n))+1;else{if(!(e>t||t>i||r>n||n>o))return this;var u,a,c=i-e,s=this._root;switch(a=(n<(r+o)/2)<<1|t<(e+i)/2){case 0:do{u=new Array(4),u[a]=s,s=u}while(c*=2,i=e+c,o=r+c,t>i||n>o);break;case 1:do{u=new Array(4),u[a]=s,s=u}while(c*=2,e=i-c,o=r+c,e>t||n>o);break;case 2:do{u=new Array(4),u[a]=s,s=u}while(c*=2,i=e+c,r=o-c,t>i||r>n);break;case 3:do{u=new Array(4),u[a]=s,s=u}while(c*=2,e=i-c,r=o-c,e>t||r>n)}this._root&&this._root.length&&(this._root=s)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},Kd=function(){var t=[];return this.visit(function(n){if(!n.length)do{t.push(n.data)}while(n=n.next)}),t},tv=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},nv=function(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i},ev=function(t,n,e){var r,i,o,u,a,c,s,f=this._x0,l=this._y0,h=this._x1,p=this._y1,d=[],v=this._root;for(v&&d.push(new nv(v,f,l,h,p)),null==e?e=1/0:(f=t-e,l=n-e,h=t+e,p=n+e,e*=e);c=d.pop();)if(!(!(v=c.node)||(i=c.x0)>h||(o=c.y0)>p||(u=c.x1)<f||(a=c.y1)<l))if(v.length){var _=(i+u)/2,g=(o+a)/2;d.push(new nv(v[3],_,g,u,a),new nv(v[2],i,g,_,a),new nv(v[1],_,o,u,g),new nv(v[0],i,o,_,g)),(s=(n>=g)<<1|t>=_)&&(c=d[d.length-1],d[d.length-1]=d[d.length-1-s],d[d.length-1-s]=c)}else{var y=t-+this._x.call(null,v.data),m=n-+this._y.call(null,v.data),x=y*y+m*m;if(x<e){var b=Math.sqrt(e=x);f=t-b,l=n-b,h=t+b,p=n+b,r=v.data}}return r},rv=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(u=+this._y.call(null,t)))return this;var n,e,r,i,o,u,a,c,s,f,l,h,p=this._root,d=this._x0,v=this._y0,_=this._x1,g=this._y1;if(!p)return this;if(p.length)for(;;){if((s=o>=(a=(d+_)/2))?d=a:_=a,(f=u>=(c=(v+g)/2))?v=c:g=c,n=p,!(p=p[l=f<<1|s]))return this;if(!p.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;p.data!==t;)if(r=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(p=n[0]||n[1]||n[2]||n[3])&&p===(n[3]||n[2]||n[1]||n[0])&&!p.length&&(e?e[h]=p:this._root=p),this):(this._root=i,this)},iv=function(){return this._root},ov=function(){var t=0;return this.visit(function(n){if(!n.length)do{++t}while(n=n.next)}),t},uv=function(t){var n,e,r,i,o,u,a=[],c=this._root;for(c&&a.push(new nv(c,this._x0,this._y0,this._x1,this._y1));n=a.pop();)if(!t(c=n.node,r=n.x0,i=n.y0,o=n.x1,u=n.y1)&&c.length){var s=(r+o)/2,f=(i+u)/2;(e=c[3])&&a.push(new nv(e,s,f,o,u)),(e=c[2])&&a.push(new nv(e,r,f,s,u)),(e=c[1])&&a.push(new nv(e,s,i,o,f)),(e=c[0])&&a.push(new nv(e,r,i,s,f))}return this},av=function(t){var n,e=[],r=[];for(this._root&&e.push(new nv(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var o,u=n.x0,a=n.y0,c=n.x1,s=n.y1,f=(u+c)/2,l=(a+s)/2;(o=i[0])&&e.push(new nv(o,u,a,f,l)),(o=i[1])&&e.push(new nv(o,f,a,c,l)),(o=i[2])&&e.push(new nv(o,u,l,f,s)),(o=i[3])&&e.push(new nv(o,f,l,c,s))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},cv=function(t){return arguments.length?(this._x=t,this):this._x},sv=function(t){return arguments.length?(this._y=t,this):this._y},fv=rr.prototype=ir.prototype;fv.copy=function(){var t,n,e=new ir(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=or(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=or(n));return e},fv.add=Jd,fv.addAll=Ke,fv.cover=Qd,fv.data=Kd,fv.extent=tv,fv.find=ev,fv.remove=rv,fv.removeAll=tr,fv.root=iv,fv.size=ov,fv.visit=uv,fv.visitAfter=av,fv.x=cv,fv.y=sv;var lv,hv=function(t){function n(){function t(t,n,e,r,i){var o=t.data,a=t.r,p=l+a;{if(!o)return n>s+p||r<s-p||e>f+p||i<f-p;if(o.index>c.index){var d=s-o.x-o.vx,v=f-o.y-o.vy,_=d*d+v*v;_<p*p&&(0===d&&(d=Gd(),_+=d*d),0===v&&(v=Gd(),_+=v*v),_=(p-(_=Math.sqrt(_)))/_*u,c.vx+=(d*=_)*(p=(a*=a)/(h+a)),c.vy+=(v*=_)*p,o.vx-=d*(p=1-p),o.vy-=v*p)}}}for(var n,r,c,s,f,l,h,p=i.length,d=0;d<a;++d)for(r=rr(i,ur,ar).visitAfter(e),n=0;n<p;++n)c=i[n],l=o[c.index],h=l*l,s=c.x+c.vx,f=c.y+c.vy,r.visit(t)}function e(t){if(t.data)return t.r=o[t.data.index];for(var n=t.r=0;n<4;++n)t[n]&&t[n].r>t.r&&(t.r=t[n].r)}function r(){if(i){var n,e,r=i.length;for(o=new Array(r),n=0;n<r;++n)e=i[n],o[e.index]=+t(e,n,i)}}var i,o,u=1,a=1;return\"function\"!=typeof t&&(t=Zd(null==t?1:+t)),n.initialize=function(t){i=t,r()},n.iterations=function(t){return arguments.length?(a=+t,n):a},n.strength=function(t){return arguments.length?(u=+t,n):u},n.radius=function(e){return arguments.length?(t=\"function\"==typeof e?e:Zd(+e),r(),n):t},n},pv=function(t){function n(t){return 1/Math.min(s[t.source.index],s[t.target.index])}function e(n){for(var e=0,r=t.length;e<d;++e)for(var i,o,c,s,l,h,p,v=0;v<r;++v)i=t[v],o=i.source,c=i.target,s=c.x+c.vx-o.x-o.vx||Gd(),l=c.y+c.vy-o.y-o.vy||Gd(),h=Math.sqrt(s*s+l*l),h=(h-a[v])/h*n*u[v],s*=h,l*=h,c.vx-=s*(p=f[v]),c.vy-=l*p,o.vx+=s*(p=1-p),o.vy+=l*p}function r(){if(c){var n,e,r=c.length,h=t.length,p=Be(c,l);for(n=0,s=new Array(r);n<h;++n)e=t[n],e.index=n,\"object\"!=typeof e.source&&(e.source=sr(p,e.source)),\"object\"!=typeof e.target&&(e.target=sr(p,e.target)),s[e.source.index]=(s[e.source.index]||0)+1,s[e.target.index]=(s[e.target.index]||0)+1;for(n=0,f=new Array(h);n<h;++n)e=t[n],f[n]=s[e.source.index]/(s[e.source.index]+s[e.target.index]);u=new Array(h),i(),a=new Array(h),o()}}function i(){if(c)for(var n=0,e=t.length;n<e;++n)u[n]=+h(t[n],n,t)}function o(){if(c)for(var n=0,e=t.length;n<e;++n)a[n]=+p(t[n],n,t)}var u,a,c,s,f,l=cr,h=n,p=Zd(30),d=1;return null==t&&(t=[]),e.initialize=function(t){c=t,r()},e.links=function(n){return arguments.length?(t=n,r(),e):t},e.id=function(t){return arguments.length?(l=t,\n        e):l},e.iterations=function(t){return arguments.length?(d=+t,e):d},e.strength=function(t){return arguments.length?(h=\"function\"==typeof t?t:Zd(+t),i(),e):h},e.distance=function(t){return arguments.length?(p=\"function\"==typeof t?t:Zd(+t),o(),e):p},e},dv=10,vv=Math.PI*(3-Math.sqrt(5)),_v=function(t){function n(){e(),p.call(\"tick\",o),u<a&&(h.stop(),p.call(\"end\",o))}function e(){var n,e,r=t.length;for(u+=(s-u)*c,l.each(function(t){t(u)}),n=0;n<r;++n)e=t[n],null==e.fx?e.x+=e.vx*=f:(e.x=e.fx,e.vx=0),null==e.fy?e.y+=e.vy*=f:(e.y=e.fy,e.vy=0)}function r(){for(var n,e=0,r=t.length;e<r;++e){if(n=t[e],n.index=e,isNaN(n.x)||isNaN(n.y)){var i=dv*Math.sqrt(e),o=e*vv;n.x=i*Math.cos(o),n.y=i*Math.sin(o)}(isNaN(n.vx)||isNaN(n.vy))&&(n.vx=n.vy=0)}}function i(n){return n.initialize&&n.initialize(t),n}var o,u=1,a=.001,c=1-Math.pow(a,1/300),s=0,f=.6,l=Be(),h=yn(n),p=v(\"tick\",\"end\");return null==t&&(t=[]),r(),o={tick:e,restart:function(){return h.restart(n),o},stop:function(){return h.stop(),o},nodes:function(n){return arguments.length?(t=n,r(),l.each(i),o):t},alpha:function(t){return arguments.length?(u=+t,o):u},alphaMin:function(t){return arguments.length?(a=+t,o):a},alphaDecay:function(t){return arguments.length?(c=+t,o):+c},alphaTarget:function(t){return arguments.length?(s=+t,o):s},velocityDecay:function(t){return arguments.length?(f=1-t,o):1-f},force:function(t,n){return arguments.length>1?(null==n?l.remove(t):l.set(t,i(n)),o):l.get(t)},find:function(n,e,r){var i,o,u,a,c,s=0,f=t.length;for(null==r?r=1/0:r*=r,s=0;s<f;++s)a=t[s],i=n-a.x,o=e-a.y,(u=i*i+o*o)<r&&(c=a,r=u);return c},on:function(t,n){return arguments.length>1?(p.on(t,n),o):p.on(t)}}},gv=function(){function t(t){var n,a=i.length,c=rr(i,fr,lr).visitAfter(e);for(u=t,n=0;n<a;++n)o=i[n],c.visit(r)}function n(){if(i){var t,n,e=i.length;for(a=new Array(e),t=0;t<e;++t)n=i[t],a[n.index]=+c(n,t,i)}}function e(t){var n,e,r,i,o,u=0;if(t.length){for(r=i=o=0;o<4;++o)(n=t[o])&&(e=n.value)&&(u+=e,r+=e*n.x,i+=e*n.y);t.x=r/u,t.y=i/u}else{n=t,n.x=n.data.x,n.y=n.data.y;do{u+=a[n.data.index]}while(n=n.next)}t.value=u}function r(t,n,e,r){if(!t.value)return!0;var i=t.x-o.x,c=t.y-o.y,h=r-n,p=i*i+c*c;if(h*h/l<p)return p<f&&(0===i&&(i=Gd(),p+=i*i),0===c&&(c=Gd(),p+=c*c),p<s&&(p=Math.sqrt(s*p)),o.vx+=i*t.value*u/p,o.vy+=c*t.value*u/p),!0;if(!(t.length||p>=f)){(t.data!==o||t.next)&&(0===i&&(i=Gd(),p+=i*i),0===c&&(c=Gd(),p+=c*c),p<s&&(p=Math.sqrt(s*p)));do{t.data!==o&&(h=a[t.data.index]*u/p,o.vx+=i*h,o.vy+=c*h)}while(t=t.next)}}var i,o,u,a,c=Zd(-30),s=1,f=1/0,l=.81;return t.initialize=function(t){i=t,n()},t.strength=function(e){return arguments.length?(c=\"function\"==typeof e?e:Zd(+e),n(),t):c},t.distanceMin=function(n){return arguments.length?(s=n*n,t):Math.sqrt(s)},t.distanceMax=function(n){return arguments.length?(f=n*n,t):Math.sqrt(f)},t.theta=function(n){return arguments.length?(l=n*n,t):Math.sqrt(l)},t},yv=function(t){function n(t){for(var n,e=0,u=r.length;e<u;++e)n=r[e],n.vx+=(o[e]-n.x)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+u(r[n],n,r)}}var r,i,o,u=Zd(.1);return\"function\"!=typeof t&&(t=Zd(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(u=\"function\"==typeof t?t:Zd(+t),e(),n):u},n.x=function(r){return arguments.length?(t=\"function\"==typeof r?r:Zd(+r),e(),n):t},n},mv=function(t){function n(t){for(var n,e=0,u=r.length;e<u;++e)n=r[e],n.vy+=(o[e]-n.y)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+u(r[n],n,r)}}var r,i,o,u=Zd(.1);return\"function\"!=typeof t&&(t=Zd(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(u=\"function\"==typeof t?t:Zd(+t),e(),n):u},n.y=function(r){return arguments.length?(t=\"function\"==typeof r?r:Zd(+r),e(),n):t},n},xv=function(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf(\"e\"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]},bv=function(t){return t=xv(Math.abs(t)),t?t[1]:NaN},wv=function(t,n){return function(e,r){for(var i=e.length,o=[],u=0,a=t[0],c=0;i>0&&a>0&&(c+a+1>r&&(a=Math.max(1,r-c)),o.push(e.substring(i-=a,i+a)),!((c+=a+1)>r));)a=t[u=(u+1)%t.length];return o.reverse().join(n)}},Mv=function(t){return function(n){return n.replace(/[0-9]/g,function(n){return t[+n]})}},Tv=function(t,n){t=t.toPrecision(n);t:for(var e,r=t.length,i=1,o=-1;i<r;++i)switch(t[i]){case\".\":o=e=i;break;case\"0\":0===o&&(o=i),e=i;break;case\"e\":break t;default:o>0&&(o=0)}return o>0?t.slice(0,o)+t.slice(e+1):t},Sv=function(t,n){var e=xv(t,n);if(!e)return t+\"\";var r=e[0],i=e[1],o=i-(lv=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,u=r.length;return o===u?r:o>u?r+new Array(o-u+1).join(\"0\"):o>0?r.slice(0,o)+\".\"+r.slice(o):\"0.\"+new Array(1-o).join(\"0\")+xv(t,Math.max(0,n+o-1))[0]},Nv=function(t,n){var e=xv(t,n);if(!e)return t+\"\";var r=e[0],i=e[1];return i<0?\"0.\"+new Array(-i).join(\"0\")+r:r.length>i+1?r.slice(0,i+1)+\".\"+r.slice(i+1):r+new Array(i-r.length+2).join(\"0\")},kv={\"\":Tv,\"%\":function(t,n){return(100*t).toFixed(n)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+\"\"},d:function(t){return Math.round(t).toString(10)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},g:function(t,n){return t.toPrecision(n)},o:function(t){return Math.round(t).toString(8)},p:function(t,n){return Nv(100*t,n)},r:Nv,s:Sv,X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},Ev=/^(?:(.)?([<>=^]))?([+\\-\\( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?([a-z%])?$/i;hr.prototype=pr.prototype,pr.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?\"0\":\"\")+(null==this.width?\"\":Math.max(1,0|this.width))+(this.comma?\",\":\"\")+(null==this.precision?\"\":\".\"+Math.max(0,0|this.precision))+this.type};var Av,Cv=function(t){return t},zv=[\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"],Pv=function(t){function n(t){function n(t){var n,i,a,f=_,x=g;if(\"c\"===v)x=y(t)+x,t=\"\";else{t=+t;var b=t<0;if(t=y(Math.abs(t),d),b&&0==+t&&(b=!1),f=(b?\"(\"===s?s:\"-\":\"-\"===s||\"(\"===s?\"\":s)+f,x=x+(\"s\"===v?zv[8+lv/3]:\"\")+(b&&\"(\"===s?\")\":\"\"),m)for(n=-1,i=t.length;++n<i;)if(48>(a=t.charCodeAt(n))||a>57){x=(46===a?o+t.slice(n+1):t.slice(n))+x,t=t.slice(0,n);break}}p&&!l&&(t=r(t,1/0));var w=f.length+t.length+x.length,M=w<h?new Array(h-w+1).join(e):\"\";switch(p&&l&&(t=r(M+t,M.length?h-x.length:1/0),M=\"\"),c){case\"<\":t=f+t+x+M;break;case\"=\":t=f+M+t+x;break;case\"^\":t=M.slice(0,w=M.length>>1)+f+t+x+M.slice(w);break;default:t=M+f+t+x}return u(t)}t=hr(t);var e=t.fill,c=t.align,s=t.sign,f=t.symbol,l=t.zero,h=t.width,p=t.comma,d=t.precision,v=t.type,_=\"$\"===f?i[0]:\"#\"===f&&/[boxX]/.test(v)?\"0\"+v.toLowerCase():\"\",g=\"$\"===f?i[1]:/[%p]/.test(v)?a:\"\",y=kv[v],m=!v||/[defgprs%]/.test(v);return d=null==d?v?6:12:/[gprs]/.test(v)?Math.max(1,Math.min(21,d)):Math.max(0,Math.min(20,d)),n.toString=function(){return t+\"\"},n}function e(t,e){var r=n((t=hr(t),t.type=\"f\",t)),i=3*Math.max(-8,Math.min(8,Math.floor(bv(e)/3))),o=Math.pow(10,-i),u=zv[8+i/3];return function(t){return r(o*t)+u}}var r=t.grouping&&t.thousands?wv(t.grouping,t.thousands):Cv,i=t.currency,o=t.decimal,u=t.numerals?Mv(t.numerals):Cv,a=t.percent||\"%\";return{format:n,formatPrefix:e}};dr({decimal:\".\",thousands:\",\",grouping:[3],currency:[\"$\",\"\"]});var Lv=function(t){return Math.max(0,-bv(Math.abs(t)))},Rv=function(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(bv(n)/3)))-bv(Math.abs(t)))},qv=function(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,bv(n)-bv(t))+1},Uv=function(){return new vr};vr.prototype={constructor:vr,reset:function(){this.s=this.t=0},add:function(t){_r(d_,t,this.t),_r(this,d_.s,this.s),this.s?this.t+=d_.t:this.s=d_.t},valueOf:function(){return this.s}};var Dv,Ov,Fv,Iv,Yv,Bv,jv,Hv,Xv,Vv,$v,Wv,Zv,Gv,Jv,Qv,Kv,t_,n_,e_,r_,i_,o_,u_,a_,c_,s_,f_,l_,h_,p_,d_=new vr,v_=1e-6,__=Math.PI,g_=__/2,y_=__/4,m_=2*__,x_=180/__,b_=__/180,w_=Math.abs,M_=Math.atan,T_=Math.atan2,S_=Math.cos,N_=Math.ceil,k_=Math.exp,E_=Math.log,A_=Math.pow,C_=Math.sin,z_=Math.sign||function(t){return t>0?1:t<0?-1:0},P_=Math.sqrt,L_=Math.tan,R_={Feature:function(t,n){br(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)br(e[r].geometry,n)}},q_={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){wr(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)wr(e[r],n,0)},Polygon:function(t,n){Mr(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)Mr(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)br(e[r],n)}},U_=function(t,n){t&&R_.hasOwnProperty(t.type)?R_[t.type](t,n):br(t,n)},D_=Uv(),O_=Uv(),F_={point:xr,lineStart:xr,lineEnd:xr,polygonStart:function(){D_.reset(),F_.lineStart=Tr,F_.lineEnd=Sr},polygonEnd:function(){var t=+D_;O_.add(t<0?m_+t:t),this.lineStart=this.lineEnd=this.point=xr},sphere:function(){O_.add(m_)}},I_=function(t){return O_.reset(),U_(t,F_),2*O_},Y_=Uv(),B_={point:qr,lineStart:Dr,lineEnd:Or,polygonStart:function(){B_.point=Fr,B_.lineStart=Ir,B_.lineEnd=Yr,Y_.reset(),F_.polygonStart()},polygonEnd:function(){F_.polygonEnd(),B_.point=qr,B_.lineStart=Dr,B_.lineEnd=Or,D_<0?(Bv=-(Hv=180),jv=-(Xv=90)):Y_>v_?Xv=90:Y_<-v_&&(jv=-90),Jv[0]=Bv,Jv[1]=Hv}},j_=function(t){var n,e,r,i,o,u,a;if(Xv=Hv=-(Bv=jv=1/0),Gv=[],U_(t,B_),e=Gv.length){for(Gv.sort(jr),n=1,r=Gv[0],o=[r];n<e;++n)i=Gv[n],Hr(r,i[0])||Hr(r,i[1])?(Br(r[0],i[1])>Br(r[0],r[1])&&(r[1]=i[1]),Br(i[0],r[1])>Br(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(u=-1/0,e=o.length-1,n=0,r=o[e];n<=e;r=i,++n)i=o[n],(a=Br(r[1],i[0]))>u&&(u=a,Bv=i[0],Hv=r[1])}return Gv=Jv=null,Bv===1/0||jv===1/0?[[NaN,NaN],[NaN,NaN]]:[[Bv,jv],[Hv,Xv]]},H_={sphere:xr,point:Xr,lineStart:$r,lineEnd:Gr,polygonStart:function(){H_.lineStart=Jr,H_.lineEnd=Qr},polygonEnd:function(){H_.lineStart=$r,H_.lineEnd=Gr}},X_=function(t){Qv=Kv=t_=n_=e_=r_=i_=o_=u_=a_=c_=0,U_(t,H_);var n=u_,e=a_,r=c_,i=n*n+e*e+r*r;return i<1e-12&&(n=r_,e=i_,r=o_,Kv<v_&&(n=t_,e=n_,r=e_),(i=n*n+e*e+r*r)<1e-12)?[NaN,NaN]:[T_(e,n)*x_,yr(r/P_(i))*x_]},V_=function(t){return function(){return t}},$_=function(t,n){function e(e,r){return e=t(e,r),n(e[0],e[1])}return t.invert&&n.invert&&(e.invert=function(e,r){return(e=n.invert(e,r))&&t.invert(e[0],e[1])}),e};ni.invert=ni;var W_,Z_,G_,J_,Q_,K_,tg,ng,eg,rg,ig,og=function(t){function n(n){return n=t(n[0]*b_,n[1]*b_),n[0]*=x_,n[1]*=x_,n}return t=ei(t[0]*b_,t[1]*b_,t.length>2?t[2]*b_:0),n.invert=function(n){return n=t.invert(n[0]*b_,n[1]*b_),n[0]*=x_,n[1]*=x_,n},n},ug=function(){function t(t,n){e.push(t=r(t,n)),t[0]*=x_,t[1]*=x_}function n(){var t=i.apply(this,arguments),n=o.apply(this,arguments)*b_,c=u.apply(this,arguments)*b_;return e=[],r=ei(-t[0]*b_,-t[1]*b_,0).invert,ui(a,n,c,1),t={type:\"Polygon\",coordinates:[e]},e=r=null,t}var e,r,i=V_([0,0]),o=V_(90),u=V_(6),a={point:t};return n.center=function(t){return arguments.length?(i=\"function\"==typeof t?t:V_([+t[0],+t[1]]),n):i},n.radius=function(t){return arguments.length?(o=\"function\"==typeof t?t:V_(+t),n):o},n.precision=function(t){return arguments.length?(u=\"function\"==typeof t?t:V_(+t),n):u},n},ag=function(){var t,n=[];return{point:function(n,e){t.push([n,e])},lineStart:function(){n.push(t=[])},lineEnd:xr,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}},cg=function(t,n,e,r,i,o){var u,a=t[0],c=t[1],s=n[0],f=n[1],l=0,h=1,p=s-a,d=f-c;if(u=e-a,p||!(u>0)){if(u/=p,p<0){if(u<l)return;u<h&&(h=u)}else if(p>0){if(u>h)return;u>l&&(l=u)}if(u=i-a,p||!(u<0)){if(u/=p,p<0){if(u>h)return;u>l&&(l=u)}else if(p>0){if(u<l)return;u<h&&(h=u)}if(u=r-c,d||!(u>0)){if(u/=d,d<0){if(u<l)return;u<h&&(h=u)}else if(d>0){if(u>h)return;u>l&&(l=u)}if(u=o-c,d||!(u<0)){if(u/=d,d<0){if(u>h)return;u>l&&(l=u)}else if(d>0){if(u<l)return;u<h&&(h=u)}return l>0&&(t[0]=a+l*p,t[1]=c+l*d),h<1&&(n[0]=a+h*p,n[1]=c+h*d),!0}}}}},sg=function(t,n){return w_(t[0]-n[0])<v_&&w_(t[1]-n[1])<v_},fg=function(t,n,e,r,i){var o,u,a=[],c=[];if(t.forEach(function(t){if(!((n=t.length-1)<=0)){var n,e,r=t[0],u=t[n];if(sg(r,u)){for(i.lineStart(),o=0;o<n;++o)i.point((r=t[o])[0],r[1]);return void i.lineEnd()}a.push(e=new ci(r,t,null,!0)),c.push(e.o=new ci(r,null,e,!1)),a.push(e=new ci(u,t,null,!1)),c.push(e.o=new ci(u,null,e,!0))}}),a.length){for(c.sort(n),si(a),si(c),o=0,u=c.length;o<u;++o)c[o].e=e=!e;for(var s,f,l=a[0];;){for(var h=l,p=!0;h.v;)if((h=h.n)===l)return;s=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(p)for(o=0,u=s.length;o<u;++o)i.point((f=s[o])[0],f[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(p)for(s=h.p.z,o=s.length-1;o>=0;--o)i.point((f=s[o])[0],f[1]);else r(h.x,h.p.x,-1,i);h=h.p}h=h.o,s=h.z,p=!p}while(!h.v);i.lineEnd()}}},lg=1e9,hg=-lg,pg=function(){var t,n,e,r=0,i=0,o=960,u=500;return e={stream:function(e){return t&&n===e?t:t=fi(r,i,o,u)(n=e)},extent:function(a){return arguments.length?(r=+a[0][0],i=+a[0][1],o=+a[1][0],u=+a[1][1],t=n=null,e):[[r,i],[o,u]]}}},dg=Uv(),vg=function(t,n){var e=n[0],r=n[1],i=[C_(e),-S_(e),0],o=0,u=0;dg.reset();for(var a=0,c=t.length;a<c;++a)if(f=(s=t[a]).length)for(var s,f,l=s[f-1],h=l[0],p=l[1]/2+y_,d=C_(p),v=S_(p),_=0;_<f;++_,h=y,d=x,v=b,l=g){var g=s[_],y=g[0],m=g[1]/2+y_,x=C_(m),b=S_(m),w=y-h,M=w>=0?1:-1,T=M*w,S=T>__,N=d*x;if(dg.add(T_(N*M*C_(T),v*b+N*S_(T))),o+=S?w+M*m_:w,S^h>=e^y>=e){var k=zr(Ar(l),Ar(g));Rr(k);var E=zr(i,k);Rr(E);var A=(S^w>=0?-1:1)*yr(E[2]);(r>A||r===A&&(k[0]||k[1]))&&(u+=S^w>=0?1:-1)}}return(o<-v_||o<v_&&dg<-v_)^1&u},_g=Uv(),gg={sphere:xr,point:xr,lineStart:li,lineEnd:xr,polygonStart:xr,polygonEnd:xr},yg=function(t){return _g.reset(),U_(t,gg),+_g},mg=[null,null],xg={type:\"LineString\",coordinates:mg},bg=function(t,n){return mg[0]=t,mg[1]=n,yg(xg)},wg={Feature:function(t,n){return vi(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)if(vi(e[r].geometry,n))return!0;return!1}},Mg={Sphere:function(){return!0},Point:function(t,n){return _i(t.coordinates,n)},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(_i(e[r],n))return!0;return!1},LineString:function(t,n){return gi(t.coordinates,n)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(gi(e[r],n))return!0;return!1},Polygon:function(t,n){return yi(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(yi(e[r],n))return!0;return!1},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)if(vi(e[r],n))return!0;return!1}},Tg=function(t,n){return(t&&wg.hasOwnProperty(t.type)?wg[t.type]:vi)(t,n)},Sg=function(t,n){var e=t[0]*b_,r=t[1]*b_,i=n[0]*b_,o=n[1]*b_,u=S_(r),a=C_(r),c=S_(o),s=C_(o),f=u*S_(e),l=u*C_(e),h=c*S_(i),p=c*C_(i),d=2*yr(P_(mr(o-r)+u*c*mr(i-e))),v=C_(d),_=d?function(t){var n=C_(t*=d)/v,e=C_(d-t)/v,r=e*f+n*h,i=e*l+n*p,o=e*a+n*s;return[T_(i,r)*x_,T_(o,P_(r*r+i*i))*x_]}:function(){return[e*x_,r*x_]};return _.distance=d,_},Ng=function(t){return t},kg=Uv(),Eg=Uv(),Ag={point:xr,lineStart:xr,lineEnd:xr,polygonStart:function(){Ag.lineStart=Si,Ag.lineEnd=Ei},polygonEnd:function(){Ag.lineStart=Ag.lineEnd=Ag.point=xr,kg.add(w_(Eg)),Eg.reset()},result:function(){var t=kg/2;return kg.reset(),t}},Cg=1/0,zg=Cg,Pg=-Cg,Lg=Pg,Rg={point:Ai,lineStart:xr,lineEnd:xr,polygonStart:xr,polygonEnd:xr,result:function(){var t=[[Cg,zg],[Pg,Lg]];return Pg=Lg=-(zg=Cg=1/0),t}},qg=0,Ug=0,Dg=0,Og=0,Fg=0,Ig=0,Yg=0,Bg=0,jg=0,Hg={point:Ci,lineStart:zi,lineEnd:Ri,polygonStart:function(){Hg.lineStart=qi,Hg.lineEnd=Ui},polygonEnd:function(){Hg.point=Ci,Hg.lineStart=zi,Hg.lineEnd=Ri},result:function(){var t=jg?[Yg/jg,Bg/jg]:Ig?[Og/Ig,Fg/Ig]:Dg?[qg/Dg,Ug/Dg]:[NaN,NaN];return qg=Ug=Dg=Og=Fg=Ig=Yg=Bg=jg=0,t}};Fi.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,m_)}},result:xr};var Xg,Vg,$g,Wg,Zg,Gg=Uv(),Jg={point:xr,lineStart:function(){Jg.point=Ii},lineEnd:function(){Xg&&Yi(Vg,$g),Jg.point=xr},polygonStart:function(){Xg=!0},polygonEnd:function(){Xg=null},result:function(){var t=+Gg;return Gg.reset(),t}};Bi.prototype={_circle:ji(4.5),pointRadius:function(t){return this._circle=ji(t),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push(\"Z\"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push(\"M\",t,\",\",n),this._point=1;break;case 1:this._string.push(\"L\",t,\",\",n);break;default:this._string.push(\"M\",t,\",\",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join(\"\");return this._string=[],t}}};var Qg=function(t,n){function e(t){return t&&(\"function\"==typeof o&&i.pointRadius(+o.apply(this,arguments)),U_(t,r(i))),i.result()}var r,i,o=4.5;return e.area=function(t){return U_(t,r(Ag)),Ag.result()},e.measure=function(t){return U_(t,r(Jg)),Jg.result()},e.bounds=function(t){return U_(t,r(Rg)),Rg.result()},e.centroid=function(t){return U_(t,r(Hg)),Hg.result()},e.projection=function(n){return arguments.length?(r=null==n?(t=null,Ng):(t=n).stream,e):t},e.context=function(t){return arguments.length?(i=null==t?(n=null,new Bi):new Fi(n=t),\"function\"!=typeof o&&i.pointRadius(o),e):n},e.pointRadius=function(t){return arguments.length?(o=\"function\"==typeof t?t:(i.pointRadius(+t),+t),e):o},e.projection(t).context(n)},Kg=function(t,n,e,r){return function(i,o){function u(n,e){var r=i(n,e);t(n=r[0],e=r[1])&&o.point(n,e)}function a(t,n){var e=i(t,n);_.point(e[0],e[1])}function c(){b.point=a,_.lineStart()}function s(){b.point=u,_.lineEnd()}function f(t,n){v.push([t,n]);var e=i(t,n);m.point(e[0],e[1])}function l(){m.lineStart(),v=[]}function h(){f(v[0][0],v[0][1]),m.lineEnd();var t,n,e,r,i=m.clean(),u=y.result(),a=u.length;if(v.pop(),p.push(v),v=null,a)if(1&i){if(e=u[0],(n=e.length-1)>0){for(x||(o.polygonStart(),x=!0),o.lineStart(),t=0;t<n;++t)o.point((r=e[t])[0],r[1]);o.lineEnd()}}else a>1&&2&i&&u.push(u.pop().concat(u.shift())),d.push(u.filter(Hi))}var p,d,v,_=n(o),g=i.invert(r[0],r[1]),y=ag(),m=n(y),x=!1,b={point:u,lineStart:c,lineEnd:s,polygonStart:function(){b.point=f,b.lineStart=l,b.lineEnd=h,d=[],p=[]},polygonEnd:function(){b.point=u,b.lineStart=c,b.lineEnd=s,d=lf(d);var t=vg(p,g);d.length?(x||(o.polygonStart(),x=!0),fg(d,Xi,t,e,o)):t&&(x||(o.polygonStart(),x=!0),o.lineStart(),e(null,null,1,o),o.lineEnd()),x&&(o.polygonEnd(),x=!1),d=p=null},sphere:function(){o.polygonStart(),o.lineStart(),e(null,null,1,o),o.lineEnd(),o.polygonEnd()}};return b}},ty=Kg(function(){return!0},Vi,Wi,[-__,-g_]),ny=function(t,n){function e(e,r,i,o){ui(o,t,n,i,e,r)}function r(t,n){return S_(t)*S_(n)>a}function i(t){var n,e,i,a,f;return{lineStart:function(){a=i=!1,f=1},point:function(l,h){var p,d=[l,h],v=r(l,h),_=c?v?0:u(l,h):v?u(l+(l<0?__:-__),h):0;if(!n&&(a=i=v)&&t.lineStart(),v!==i&&(p=o(n,d),(sg(n,p)||sg(d,p))&&(d[0]+=v_,d[1]+=v_,v=r(d[0],d[1]))),v!==i)f=0,v?(t.lineStart(),p=o(d,n),t.point(p[0],p[1])):(p=o(n,d),t.point(p[0],p[1]),t.lineEnd()),n=p;else if(s&&n&&c^v){var g;_&e||!(g=o(d,n,!0))||(f=0,c?(t.lineStart(),t.point(g[0][0],g[0][1]),t.point(g[1][0],g[1][1]),t.lineEnd()):(t.point(g[1][0],g[1][1]),t.lineEnd(),t.lineStart(),t.point(g[0][0],g[0][1])))}!v||n&&sg(n,d)||t.point(d[0],d[1]),n=d,i=v,e=_},lineEnd:function(){i&&t.lineEnd(),n=null},clean:function(){return f|(a&&i)<<1}}}function o(t,n,e){var r=Ar(t),i=Ar(n),o=[1,0,0],u=zr(r,i),c=Cr(u,u),s=u[0],f=c-s*s;if(!f)return!e&&t;var l=a*c/f,h=-a*s/f,p=zr(o,u),d=Lr(o,l);Pr(d,Lr(u,h));var v=p,_=Cr(d,v),g=Cr(v,v),y=_*_-g*(Cr(d,d)-1);if(!(y<0)){var m=P_(y),x=Lr(v,(-_-m)/g);if(Pr(x,d),x=Er(x),!e)return x;var b,w=t[0],M=n[0],T=t[1],S=n[1];M<w&&(b=w,w=M,M=b);var N=M-w,k=w_(N-__)<v_,E=k||N<v_;if(!k&&S<T&&(b=T,T=S,S=b),E?k?T+S>0^x[1]<(w_(x[0]-w)<v_?T:S):T<=x[1]&&x[1]<=S:N>__^(w<=x[0]&&x[0]<=M)){var A=Lr(v,(-_+m)/g);return Pr(A,d),[x,Er(A)]}}}function u(n,e){var r=c?t:__-t,i=0;return n<-r?i|=1:n>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}var a=S_(t),c=a>0,s=w_(a)>v_;return Kg(r,i,e,c?[0,-t]:[-__,t-__])},ey=function(t){return{stream:Zi(t)}};Gi.prototype={constructor:Gi,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var ry=16,iy=S_(30*b_),oy=function(t,n){return+n?to(t,n):Ki(t)},uy=Zi({point:function(t,n){this.stream.point(t*b_,n*b_)}}),ay=function(){return ro(oo).scale(155.424).center([0,33.6442])},cy=function(){return ay().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])},sy=function(){function t(t){var n=t[0],e=t[1];return a=null,i.point(n,e),a||(o.point(n,e),a)||(u.point(n,e),a)}function n(){return e=r=null,t}var e,r,i,o,u,a,c=cy(),s=ay().rotate([154,0]).center([-2,58.5]).parallels([55,65]),f=ay().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,n){a=[t,n]}};return t.invert=function(t){var n=c.scale(),e=c.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?s:i>=.166&&i<.234&&r>=-.214&&r<-.115?f:c).invert(t)},t.stream=function(t){return e&&r===t?e:e=uo([c.stream(r=t),s.stream(t),f.stream(t)])},t.precision=function(t){return arguments.length?(c.precision(t),s.precision(t),f.precision(t),n()):c.precision()},t.scale=function(n){return arguments.length?(c.scale(n),s.scale(.35*n),f.scale(n),t.translate(c.translate())):c.scale()},t.translate=function(t){if(!arguments.length)return c.translate();var e=c.scale(),r=+t[0],a=+t[1];return i=c.translate(t).clipExtent([[r-.455*e,a-.238*e],[r+.455*e,a+.238*e]]).stream(l),o=s.translate([r-.307*e,a+.201*e]).clipExtent([[r-.425*e+v_,a+.12*e+v_],[r-.214*e-v_,a+.234*e-v_]]).stream(l),u=f.translate([r-.205*e,a+.212*e]).clipExtent([[r-.214*e+v_,a+.166*e+v_],[r-.115*e-v_,a+.234*e-v_]]).stream(l),n()},t.fitExtent=function(n,e){return Ji(t,n,e)},t.fitSize=function(n,e){return Qi(t,n,e)},t.scale(1070)},fy=ao(function(t){return P_(2/(1+t))});fy.invert=co(function(t){return 2*yr(t/2)});var ly=function(){return no(fy).scale(124.75).clipAngle(179.999)},hy=ao(function(t){return(t=gr(t))&&t/C_(t)});hy.invert=co(function(t){return t});var py=function(){return no(hy).scale(79.4188).clipAngle(179.999)};so.invert=function(t,n){return[t,2*M_(k_(n))-g_]};var dy=function(){return fo(so).scale(961/m_)},vy=function(){return ro(ho).scale(109.5).parallels([30,30])};po.invert=po;var _y=function(){return no(po).scale(152.63)},gy=function(){return ro(vo).scale(131.154).center([0,13.9389])};_o.invert=co(M_);var yy=function(){return no(_o).scale(144.049).clipAngle(60)},my=function(){function t(){return i=o=null,u}var n,e,r,i,o,u,a=1,c=0,s=0,f=1,l=1,h=Ng,p=null,d=Ng;return u={stream:function(t){return i&&o===t?i:i=h(d(o=t))},clipExtent:function(i){return arguments.length?(d=null==i?(p=n=e=r=null,Ng):fi(p=+i[0][0],n=+i[0][1],e=+i[1][0],r=+i[1][1]),t()):null==p?null:[[p,n],[e,r]]},scale:function(n){return arguments.length?(h=go((a=+n)*f,a*l,c,s),t()):a},translate:function(n){return arguments.length?(h=go(a*f,a*l,c=+n[0],s=+n[1]),t()):[c,s]},reflectX:function(n){return arguments.length?(h=go(a*(f=n?-1:1),a*l,c,s),t()):f<0},reflectY:function(n){return arguments.length?(h=go(a*f,a*(l=n?-1:1),c,s),t()):l<0},fitExtent:function(t,n){return Ji(u,t,n)},fitSize:function(t,n){return Qi(u,t,n)}}};yo.invert=co(yr);var xy=function(){return no(yo).scale(249.5).clipAngle(90+v_)};mo.invert=co(function(t){return 2*M_(t)});var by=function(){return no(mo).scale(250).clipAngle(142)};xo.invert=function(t,n){return[-n,2*M_(k_(t))-g_]};var wy=function(){var t=fo(xo),n=t.center,e=t.rotate;return t.center=function(t){return arguments.length?n([-t[1],t[0]]):(t=n(),[t[1],-t[0]])},t.rotate=function(t){return arguments.length?e([t[0],t[1],t.length>2?t[2]+90:90]):(t=e(),[t[0],t[1],t[2]-90])},e([0,0,90]).scale(159.155)},My=function(){function t(t){var o,u=0;t.eachAfter(function(t){var e=t.children;e?(t.x=wo(e),t.y=To(e)):(t.x=o?u+=n(t,o):0,t.y=0,o=t)});var a=No(t),c=ko(t),s=a.x-n(a,c)/2,f=c.x+n(c,a)/2;return t.eachAfter(i?function(n){n.x=(n.x-t.x)*e,n.y=(t.y-n.y)*r}:function(n){n.x=(n.x-s)/(f-s)*e,n.y=(1-(t.y?n.y/t.y:1))*r})}var n=bo,e=1,r=1,i=!1;return t.separation=function(e){return arguments.length?(n=e,t):n},t.size=function(n){return arguments.length?(i=!1,e=+n[0],r=+n[1],t):i?null:[e,r]},t.nodeSize=function(n){return arguments.length?(i=!0,e=+n[0],r=+n[1],t):i?[e,r]:null},t},Ty=function(){return this.eachAfter(Eo)},Sy=function(t){var n,e,r,i,o=this,u=[o];do{for(n=u.reverse(),u=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r<i;++r)u.push(e[r])}while(u.length);return this},Ny=function(t){for(var n,e,r=this,i=[r];r=i.pop();)if(t(r),n=r.children)for(e=n.length-1;e>=0;--e)i.push(n[e]);return this},ky=function(t){for(var n,e,r,i=this,o=[i],u=[];i=o.pop();)if(u.push(i),n=i.children)for(e=0,r=n.length;e<r;++e)o.push(n[e]);for(;i=u.pop();)t(i);return this},Ey=function(t){return this.eachAfter(function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e})},Ay=function(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},Cy=function(t){for(var n=this,e=Ao(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},zy=function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},Py=function(){var t=[];return this.each(function(n){t.push(n)}),t},Ly=function(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},Ry=function(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n};qo.prototype=Co.prototype={constructor:qo,count:Ty,each:Sy,eachAfter:ky,eachBefore:Ny,sum:Ey,sort:Ay,path:Cy,ancestors:zy,descendants:Py,leaves:Ly,links:Ry,copy:zo};var qy=function(t){for(var n=(t=t.slice()).length,e=null,r=e;n;){var i=new Uo(t[n-1]);r=r?r.next=i:e=i,t[void 0]=t[--n]}return{head:e,tail:r}},Uy=function(t){return Oo(qy(t),[])},Dy=function(t){return Vo(t),t},Oy=function(t){return function(){return t}},Fy=function(){function t(t){return t.x=e/2,t.y=r/2,n?t.eachBefore(Jo(n)).eachAfter(Qo(i,.5)).eachBefore(Ko(1)):t.eachBefore(Jo(Go)).eachAfter(Qo(Zo,1)).eachAfter(Qo(i,t.r/Math.min(e,r))).eachBefore(Ko(Math.min(e,r)/(2*t.r))),t}var n=null,e=1,r=1,i=Zo;return t.radius=function(e){return arguments.length?(n=$o(e),t):n},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i=\"function\"==typeof n?n:Oy(+n),t):i},t},Iy=function(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)},Yy=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(r-n)/t.value;++a<c;)o=u[a],o.y0=e,o.y1=i,o.x0=n,o.x1=n+=o.value*s},By=function(){function t(t){var u=t.height+1;return t.x0=t.y0=i,t.x1=e,t.y1=r/u,t.eachBefore(n(r,u)),o&&t.eachBefore(Iy),t}function n(t,n){return function(e){e.children&&Yy(e,e.x0,t*(e.depth+1)/n,e.x1,t*(e.depth+2)/n);var r=e.x0,o=e.y0,u=e.x1-i,a=e.y1-i;u<r&&(r=u=(r+u)/2),a<o&&(o=a=(o+a)/2),e.x0=r,e.y0=o,e.x1=u,e.y1=a}}var e=1,r=1,i=0,o=!1;return t.round=function(n){return arguments.length?(o=!!n,t):o},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i=+n,t):i},t},jy=\"$\",Hy={depth:-1},Xy={},Vy=function(){function t(t){var r,i,o,u,a,c,s,f=t.length,l=new Array(f),h={};for(i=0;i<f;++i)r=t[i],a=l[i]=new qo(r),null!=(c=n(r,i,t))&&(c+=\"\")&&(s=jy+(a.id=c),h[s]=s in h?Xy:a);for(i=0;i<f;++i)if(a=l[i],null!=(c=e(t[i],i,t))&&(c+=\"\")){if(!(u=h[jy+c]))throw new Error(\"missing: \"+c);if(u===Xy)throw new Error(\"ambiguous: \"+c);u.children?u.children.push(a):u.children=[a],a.parent=u}else{if(o)throw new Error(\"multiple roots\");o=a}if(!o)throw new Error(\"no root\");if(o.parent=Hy,o.eachBefore(function(t){t.depth=t.parent.depth+1,--f}).eachBefore(Ro),o.parent=null,f>0)throw new Error(\"cycle\");return o}var n=tu,e=nu;return t.id=function(e){return arguments.length?(n=Wo(e),t):n},t.parentId=function(n){return arguments.length?(e=Wo(n),t):e},t};cu.prototype=Object.create(qo.prototype);var $y=function(){function t(t){var r=su(t);if(r.eachAfter(n),r.parent.m=-r.z,r.eachBefore(e),c)t.eachBefore(i);else{var s=t,f=t,l=t;t.eachBefore(function(t){t.x<s.x&&(s=t),t.x>f.x&&(f=t),t.depth>l.depth&&(l=t)});var h=s===f?1:o(s,f)/2,p=h-s.x,d=u/(f.x+h+p),v=a/(l.depth||1);t.eachBefore(function(t){t.x=(t.x+p)*d,t.y=t.depth*v})}return t}function n(t){var n=t.children,e=t.parent.children,i=t.i?e[t.i-1]:null;if(n){uu(t);var u=(n[0].z+n[n.length-1].z)/2;i?(t.z=i.z+o(t._,i._),t.m=t.z-u):t.z=u}else i&&(t.z=i.z+o(t._,i._));t.parent.A=r(t,i,t.parent.A||e[0])}function e(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function r(t,n,e){if(n){for(var r,i=t,u=t,a=n,c=i.parent.children[0],s=i.m,f=u.m,l=a.m,h=c.m;a=iu(a),i=ru(i),a&&i;)c=ru(c),u=iu(u),u.a=t,r=a.z+l-i.z-s+o(a._,i._),r>0&&(ou(au(a,t,e),t,r),s+=r,f+=r),l+=a.m,s+=i.m,h+=c.m,f+=u.m;a&&!iu(u)&&(u.t=a,u.m+=l-f),i&&!ru(c)&&(c.t=i,c.m+=s-h,e=t)}return e}function i(t){t.x*=u,t.y=t.depth*a}var o=eu,u=1,a=1,c=null;return t.separation=function(n){return arguments.length?(o=n,t):o},t.size=function(n){return arguments.length?(c=!1,u=+n[0],a=+n[1],t):c?null:[u,a]},t.nodeSize=function(n){return arguments.length?(c=!0,u=+n[0],a=+n[1],t):c?[u,a]:null},t},Wy=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(i-e)/t.value;++a<c;)o=u[a],o.x0=n,o.x1=r,o.y0=e,o.y1=e+=o.value*s},Zy=(1+Math.sqrt(5))/2,Gy=function t(n){function e(t,e,r,i,o){fu(n,t,e,r,i,o)}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(Zy),Jy=function(){function t(t){return t.x0=t.y0=0,t.x1=i,t.y1=o,t.eachBefore(n),u=[0],r&&t.eachBefore(Iy),t}function n(t){var n=u[t.depth],r=t.x0+n,i=t.y0+n,o=t.x1-n,h=t.y1-n;o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),t.x0=r,t.y0=i,t.x1=o,t.y1=h,t.children&&(n=u[t.depth+1]=a(t)/2,r+=l(t)-n,i+=c(t)-n,o-=s(t)-n,h-=f(t)-n,o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),e(t,r,i,o,h))}var e=Gy,r=!1,i=1,o=1,u=[0],a=Zo,c=Zo,s=Zo,f=Zo,l=Zo;return t.round=function(n){return arguments.length?(r=!!n,t):r},t.size=function(n){return arguments.length?(i=+n[0],o=+n[1],t):[i,o]},t.tile=function(n){return arguments.length?(e=Wo(n),t):e},t.padding=function(n){return arguments.length?t.paddingInner(n).paddingOuter(n):t.paddingInner()},t.paddingInner=function(n){return arguments.length?(a=\"function\"==typeof n?n:Oy(+n),t):a},t.paddingOuter=function(n){return arguments.length?t.paddingTop(n).paddingRight(n).paddingBottom(n).paddingLeft(n):t.paddingTop()},t.paddingTop=function(n){return arguments.length?(c=\"function\"==typeof n?n:Oy(+n),t):c},t.paddingRight=function(n){return arguments.length?(s=\"function\"==typeof n?n:Oy(+n),t):s},t.paddingBottom=function(n){return arguments.length?(f=\"function\"==typeof n?n:Oy(+n),t):f},t.paddingLeft=function(n){return arguments.length?(l=\"function\"==typeof n?n:Oy(+n),t):l},t},Qy=function(t,n,e,r,i){function o(t,n,e,r,i,u,a){if(t>=n-1){var s=c[t];return s.x0=r,s.y0=i,s.x1=u,s.y1=a,void 0}for(var l=f[t],h=e/2+l,p=t+1,d=n-1;p<d;){var v=p+d>>>1;f[v]<h?p=v+1:d=v}h-f[p-1]<f[p]-h&&t+1<p&&--p;var _=f[p]-l,g=e-_;if(u-r>a-i){var y=(r*g+u*_)/e;o(t,p,_,r,i,y,a),o(p,n,g,y,i,u,a)}else{var m=(i*g+a*_)/e;o(t,p,_,r,i,u,m),o(p,n,g,r,m,u,a)}}var u,a,c=t.children,s=c.length,f=new Array(s+1);for(f[0]=a=u=0;u<s;++u)f[u+1]=a+=c[u].value;o(0,s,t.value,n,e,r,i)\n    },Ky=function(t,n,e,r,i){(1&t.depth?Wy:Yy)(t,n,e,r,i)},tm=function t(n){function e(t,e,r,i,o){if((u=t._squarify)&&u.ratio===n)for(var u,a,c,s,f,l=-1,h=u.length,p=t.value;++l<h;){for(a=u[l],c=a.children,s=a.value=0,f=c.length;s<f;++s)a.value+=c[s].value;a.dice?Yy(a,e,r,i,r+=(o-r)*a.value/p):Wy(a,e,r,e+=(i-e)*a.value/p,o),p-=a.value}else t._squarify=u=fu(n,t,e,r,i,o),u.ratio=n}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(Zy),nm=function(t){for(var n,e=-1,r=t.length,i=t[r-1],o=0;++e<r;)n=i,i=t[e],o+=n[1]*i[0]-n[0]*i[1];return o/2},em=function(t){for(var n,e,r=-1,i=t.length,o=0,u=0,a=t[i-1],c=0;++r<i;)n=a,a=t[r],c+=e=n[0]*a[1]-a[0]*n[1],o+=(n[0]+a[0])*e,u+=(n[1]+a[1])*e;return c*=3,[o/c,u/c]},rm=function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])-(n[1]-t[1])*(e[0]-t[0])},im=function(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n<e;++n)r[n]=[+t[n][0],+t[n][1],n];for(r.sort(lu),n=0;n<e;++n)i[n]=[r[n][0],-r[n][1]];var o=hu(r),u=hu(i),a=u[0]===o[0],c=u[u.length-1]===o[o.length-1],s=[];for(n=o.length-1;n>=0;--n)s.push(t[r[o[n]][2]]);for(n=+a;n<u.length-c;++n)s.push(t[r[u[n]][2]]);return s},om=function(t,n){for(var e,r,i=t.length,o=t[i-1],u=n[0],a=n[1],c=o[0],s=o[1],f=!1,l=0;l<i;++l)o=t[l],e=o[0],r=o[1],r>a!=s>a&&u<(c-e)*(a-r)/(s-r)+e&&(f=!f),c=e,s=r;return f},um=function(t){for(var n,e,r=-1,i=t.length,o=t[i-1],u=o[0],a=o[1],c=0;++r<i;)n=u,e=a,o=t[r],u=o[0],a=o[1],n-=u,e-=a,c+=Math.sqrt(n*n+e*e);return c},am=[].slice,cm={};pu.prototype=mu.prototype={constructor:pu,defer:function(t){if(\"function\"!=typeof t||this._call)throw new Error;if(null!=this._error)return this;var n=am.call(arguments,1);return n.push(t),++this._waiting,this._tasks.push(n),du(this),this},abort:function(){return null==this._error&&gu(this,new Error(\"abort\")),this},await:function(t){if(\"function\"!=typeof t||this._call)throw new Error;return this._call=function(n,e){t.apply(null,[n].concat(e))},yu(this),this},awaitAll:function(t){if(\"function\"!=typeof t||this._call)throw new Error;return this._call=t,yu(this),this}};var sm=function(t,n){return t=null==t?0:+t,n=null==n?1:+n,1===arguments.length?(n=t,t=0):n-=t,function(){return Math.random()*n+t}},fm=function(t,n){var e,r;return t=null==t?0:+t,n=null==n?1:+n,function(){var i;if(null!=e)i=e,e=null;else do{e=2*Math.random()-1,i=2*Math.random()-1,r=e*e+i*i}while(!r||r>1);return t+n*i*Math.sqrt(-2*Math.log(r)/r)}},lm=function(){var t=fm.apply(this,arguments);return function(){return Math.exp(t())}},hm=function(t){return function(){for(var n=0,e=0;e<t;++e)n+=Math.random();return n}},pm=function(t){var n=hm(t);return function(){return n()/t}},dm=function(t){return function(){return-Math.log(1-Math.random())/t}},vm=function(t,n){function e(t){var n,e=s.status;if(!e&&bu(s)||e>=200&&e<300||304===e){if(o)try{n=o.call(r,s)}catch(t){return void a.call(\"error\",r,t)}else n=s;a.call(\"load\",r,n)}else a.call(\"error\",r,t)}var r,i,o,u,a=v(\"beforesend\",\"progress\",\"load\",\"error\"),c=Be(),s=new XMLHttpRequest,f=null,l=null,h=0;if(\"undefined\"==typeof XDomainRequest||\"withCredentials\"in s||!/^(http(s)?:)?\\/\\//.test(t)||(s=new XDomainRequest),\"onload\"in s?s.onload=s.onerror=s.ontimeout=e:s.onreadystatechange=function(t){s.readyState>3&&e(t)},s.onprogress=function(t){a.call(\"progress\",r,t)},r={header:function(t,n){return t=(t+\"\").toLowerCase(),arguments.length<2?c.get(t):(null==n?c.remove(t):c.set(t,n+\"\"),r)},mimeType:function(t){return arguments.length?(i=null==t?null:t+\"\",r):i},responseType:function(t){return arguments.length?(u=t,r):u},timeout:function(t){return arguments.length?(h=+t,r):h},user:function(t){return arguments.length<1?f:(f=null==t?null:t+\"\",r)},password:function(t){return arguments.length<1?l:(l=null==t?null:t+\"\",r)},response:function(t){return o=t,r},get:function(t,n){return r.send(\"GET\",t,n)},post:function(t,n){return r.send(\"POST\",t,n)},send:function(n,e,o){return s.open(n,t,!0,f,l),null==i||c.has(\"accept\")||c.set(\"accept\",i+\",*/*\"),s.setRequestHeader&&c.each(function(t,n){s.setRequestHeader(n,t)}),null!=i&&s.overrideMimeType&&s.overrideMimeType(i),null!=u&&(s.responseType=u),h>0&&(s.timeout=h),null==o&&\"function\"==typeof e&&(o=e,e=null),null!=o&&1===o.length&&(o=xu(o)),null!=o&&r.on(\"error\",o).on(\"load\",function(t){o(null,t)}),a.call(\"beforesend\",r,s),s.send(null==e?null:e),r},abort:function(){return s.abort(),r},on:function(){var t=a.on.apply(a,arguments);return t===a?r:t}},null!=n){if(\"function\"!=typeof n)throw new Error(\"invalid callback: \"+n);return r.get(n)}return r},_m=function(t,n){return function(e,r){var i=vm(e).mimeType(t).response(n);if(null!=r){if(\"function\"!=typeof r)throw new Error(\"invalid callback: \"+r);return i.get(r)}return i}},gm=_m(\"text/html\",function(t){return document.createRange().createContextualFragment(t.responseText)}),ym=_m(\"application/json\",function(t){return JSON.parse(t.responseText)}),mm=_m(\"text/plain\",function(t){return t.responseText}),xm=_m(\"application/xml\",function(t){var n=t.responseXML;if(!n)throw new Error(\"parse error\");return n}),bm=function(t,n){return function(e,r,i){arguments.length<3&&(i=r,r=null);var o=vm(e).mimeType(t);return o.row=function(t){return arguments.length?o.response(wu(n,r=t)):r},o.row(r),i?o.get(i):o}},wm=bm(\"text/csv\",Fd),Mm=bm(\"text/tab-separated-values\",Hd),Tm=Array.prototype,Sm=Tm.map,Nm=Tm.slice,km={name:\"implicit\"},Em=function(t){return function(){return t}},Am=function(t){return+t},Cm=[0,1],zm=function(n,e,r){var o,u=n[0],a=n[n.length-1],c=i(u,a,null==e?10:e);switch(r=hr(null==r?\",f\":r),r.type){case\"s\":var s=Math.max(Math.abs(u),Math.abs(a));return null!=r.precision||isNaN(o=Rv(c,s))||(r.precision=o),t.formatPrefix(r,s);case\"\":case\"e\":case\"g\":case\"p\":case\"r\":null!=r.precision||isNaN(o=qv(c,Math.max(Math.abs(u),Math.abs(a))))||(r.precision=o-(\"e\"===r.type));break;case\"f\":case\"%\":null!=r.precision||isNaN(o=Lv(c))||(r.precision=o-2*(\"%\"===r.type))}return t.format(r)},Pm=function(t,n){t=t.slice();var e,r=0,i=t.length-1,o=t[r],u=t[i];return u<o&&(e=r,r=i,i=e,e=o,o=u,u=e),t[r]=n.floor(o),t[i]=n.ceil(u),t},Lm=new Date,Rm=new Date,qm=Gu(function(){},function(t,n){t.setTime(+t+n)},function(t,n){return n-t});qm.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Gu(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):qm:null};var Um=qm.range,Dm=6e4,Om=6048e5,Fm=Gu(function(t){t.setTime(1e3*Math.floor(t/1e3))},function(t,n){t.setTime(+t+1e3*n)},function(t,n){return(n-t)/1e3},function(t){return t.getUTCSeconds()}),Im=Fm.range,Ym=Gu(function(t){t.setTime(Math.floor(t/Dm)*Dm)},function(t,n){t.setTime(+t+n*Dm)},function(t,n){return(n-t)/Dm},function(t){return t.getMinutes()}),Bm=Ym.range,jm=Gu(function(t){var n=t.getTimezoneOffset()*Dm%36e5;n<0&&(n+=36e5),t.setTime(36e5*Math.floor((+t-n)/36e5)+n)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getHours()}),Hm=jm.range,Xm=Gu(function(t){t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Dm)/864e5},function(t){return t.getDate()-1}),Vm=Xm.range,$m=Ju(0),Wm=Ju(1),Zm=Ju(2),Gm=Ju(3),Jm=Ju(4),Qm=Ju(5),Km=Ju(6),tx=$m.range,nx=Wm.range,ex=Zm.range,rx=Gm.range,ix=Jm.range,ox=Qm.range,ux=Km.range,ax=Gu(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,n){t.setMonth(t.getMonth()+n)},function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())},function(t){return t.getMonth()}),cx=ax.range,sx=Gu(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t,n){return n.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});sx.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Gu(function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,e){n.setFullYear(n.getFullYear()+e*t)}):null};var fx=sx.range,lx=Gu(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*Dm)},function(t,n){return(n-t)/Dm},function(t){return t.getUTCMinutes()}),hx=lx.range,px=Gu(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getUTCHours()}),dx=px.range,vx=Gu(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/864e5},function(t){return t.getUTCDate()-1}),_x=vx.range,gx=Qu(0),yx=Qu(1),mx=Qu(2),xx=Qu(3),bx=Qu(4),wx=Qu(5),Mx=Qu(6),Tx=gx.range,Sx=yx.range,Nx=mx.range,kx=xx.range,Ex=bx.range,Ax=wx.range,Cx=Mx.range,zx=Gu(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCMonth(t.getUTCMonth()+n)},function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()}),Px=zx.range,Lx=Gu(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)},function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});Lx.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Gu(function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)}):null};var Rx,qx=Lx.range,Ux={\"-\":\"\",_:\" \",0:\"0\"},Dx=/^\\s*\\d+/,Ox=/^%/,Fx=/[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g;Ga({dateTime:\"%x, %X\",date:\"%-m/%-d/%Y\",time:\"%-I:%M:%S %p\",periods:[\"AM\",\"PM\"],days:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],shortDays:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],shortMonths:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]});var Ix=Date.prototype.toISOString?Ja:t.utcFormat(\"%Y-%m-%dT%H:%M:%S.%LZ\"),Yx=+new Date(\"2000-01-01T00:00:00.000Z\")?Qa:t.utcParse(\"%Y-%m-%dT%H:%M:%S.%LZ\"),Bx=1e3,jx=60*Bx,Hx=60*jx,Xx=24*Hx,Vx=7*Xx,$x=30*Xx,Wx=365*Xx,Zx=function(){return nc(sx,ax,$m,Xm,jm,Ym,Fm,qm,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)])},Gx=function(){return nc(Lx,zx,gx,vx,px,lx,Fm,qm,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)])},Jx=function(t){return t.match(/.{6}/g).map(function(t){return\"#\"+t})},Qx=Jx(\"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf\"),Kx=Jx(\"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6\"),tb=Jx(\"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9\"),nb=Jx(\"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5\"),eb=Fh($t(300,.5,0),$t(-240,.5,1)),rb=Fh($t(-100,.75,.35),$t(80,1.5,.8)),ib=Fh($t(260,.75,.35),$t(80,1.5,.8)),ob=$t(),ub=function(t){(t<0||t>1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return ob.h=360*t-100,ob.s=1.5-1.5*n,ob.l=.8-.9*n,ob+\"\"},ab=ec(Jx(\"44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725\")),cb=ec(Jx(\"00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf\")),sb=ec(Jx(\"00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4\")),fb=ec(Jx(\"0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921\")),lb=function(t){return function(){return t}},hb=Math.abs,pb=Math.atan2,db=Math.cos,vb=Math.max,_b=Math.min,gb=Math.sin,yb=Math.sqrt,mb=1e-12,xb=Math.PI,bb=xb/2,wb=2*xb,Mb=function(){function t(){var t,s,f=+n.apply(this,arguments),l=+e.apply(this,arguments),h=o.apply(this,arguments)-bb,p=u.apply(this,arguments)-bb,d=hb(p-h),v=p>h;if(c||(c=t=qe()),l<f&&(s=l,l=f,f=s),l>mb)if(d>wb-mb)c.moveTo(l*db(h),l*gb(h)),c.arc(0,0,l,h,p,!v),f>mb&&(c.moveTo(f*db(p),f*gb(p)),c.arc(0,0,f,p,h,v));else{var _,g,y=h,m=p,x=h,b=p,w=d,M=d,T=a.apply(this,arguments)/2,S=T>mb&&(i?+i.apply(this,arguments):yb(f*f+l*l)),N=_b(hb(l-f)/2,+r.apply(this,arguments)),k=N,E=N;if(S>mb){var A=oc(S/f*gb(T)),C=oc(S/l*gb(T));(w-=2*A)>mb?(A*=v?1:-1,x+=A,b-=A):(w=0,x=b=(h+p)/2),(M-=2*C)>mb?(C*=v?1:-1,y+=C,m-=C):(M=0,y=m=(h+p)/2)}var z=l*db(y),P=l*gb(y),L=f*db(b),R=f*gb(b);if(N>mb){var q=l*db(m),U=l*gb(m),D=f*db(x),O=f*gb(x);if(d<xb){var F=w>mb?lc(z,P,D,O,q,U,L,R):[L,R],I=z-F[0],Y=P-F[1],B=q-F[0],j=U-F[1],H=1/gb(ic((I*B+Y*j)/(yb(I*I+Y*Y)*yb(B*B+j*j)))/2),X=yb(F[0]*F[0]+F[1]*F[1]);k=_b(N,(f-X)/(H-1)),E=_b(N,(l-X)/(H+1))}}M>mb?E>mb?(_=hc(D,O,z,P,l,E,v),g=hc(q,U,L,R,l,E,v),c.moveTo(_.cx+_.x01,_.cy+_.y01),E<N?c.arc(_.cx,_.cy,E,pb(_.y01,_.x01),pb(g.y01,g.x01),!v):(c.arc(_.cx,_.cy,E,pb(_.y01,_.x01),pb(_.y11,_.x11),!v),c.arc(0,0,l,pb(_.cy+_.y11,_.cx+_.x11),pb(g.cy+g.y11,g.cx+g.x11),!v),c.arc(g.cx,g.cy,E,pb(g.y11,g.x11),pb(g.y01,g.x01),!v))):(c.moveTo(z,P),c.arc(0,0,l,y,m,!v)):c.moveTo(z,P),f>mb&&w>mb?k>mb?(_=hc(L,R,q,U,f,-k,v),g=hc(z,P,D,O,f,-k,v),c.lineTo(_.cx+_.x01,_.cy+_.y01),k<N?c.arc(_.cx,_.cy,k,pb(_.y01,_.x01),pb(g.y01,g.x01),!v):(c.arc(_.cx,_.cy,k,pb(_.y01,_.x01),pb(_.y11,_.x11),!v),c.arc(0,0,f,pb(_.cy+_.y11,_.cx+_.x11),pb(g.cy+g.y11,g.cx+g.x11),v),c.arc(g.cx,g.cy,k,pb(g.y11,g.x11),pb(g.y01,g.x01),!v))):c.arc(0,0,f,b,x,v):c.lineTo(L,R)}else c.moveTo(0,0);if(c.closePath(),t)return c=null,t+\"\"||null}var n=uc,e=ac,r=lb(0),i=null,o=cc,u=sc,a=fc,c=null;return t.centroid=function(){var t=(+n.apply(this,arguments)+ +e.apply(this,arguments))/2,r=(+o.apply(this,arguments)+ +u.apply(this,arguments))/2-xb/2;return[db(r)*t,gb(r)*t]},t.innerRadius=function(e){return arguments.length?(n=\"function\"==typeof e?e:lb(+e),t):n},t.outerRadius=function(n){return arguments.length?(e=\"function\"==typeof n?n:lb(+n),t):e},t.cornerRadius=function(n){return arguments.length?(r=\"function\"==typeof n?n:lb(+n),t):r},t.padRadius=function(n){return arguments.length?(i=null==n?null:\"function\"==typeof n?n:lb(+n),t):i},t.startAngle=function(n){return arguments.length?(o=\"function\"==typeof n?n:lb(+n),t):o},t.endAngle=function(n){return arguments.length?(u=\"function\"==typeof n?n:lb(+n),t):u},t.padAngle=function(n){return arguments.length?(a=\"function\"==typeof n?n:lb(+n),t):a},t.context=function(n){return arguments.length?(c=null==n?null:n,t):c},t};pc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var Tb=function(t){return new pc(t)},Sb=function(){function t(t){var a,c,s,f=t.length,l=!1;for(null==i&&(u=o(s=qe())),a=0;a<=f;++a)!(a<f&&r(c=t[a],a,t))===l&&((l=!l)?u.lineStart():u.lineEnd()),l&&u.point(+n(c,a,t),+e(c,a,t));if(s)return u=null,s+\"\"||null}var n=dc,e=vc,r=lb(!0),i=null,o=Tb,u=null;return t.x=function(e){return arguments.length?(n=\"function\"==typeof e?e:lb(+e),t):n},t.y=function(n){return arguments.length?(e=\"function\"==typeof n?n:lb(+n),t):e},t.defined=function(n){return arguments.length?(r=\"function\"==typeof n?n:lb(!!n),t):r},t.curve=function(n){return arguments.length?(o=n,null!=i&&(u=o(i)),t):o},t.context=function(n){return arguments.length?(null==n?i=u=null:u=o(i=n),t):i},t},Nb=function(){function t(t){var n,f,l,h,p,d=t.length,v=!1,_=new Array(d),g=new Array(d);for(null==a&&(s=c(p=qe())),n=0;n<=d;++n){if(!(n<d&&u(h=t[n],n,t))===v)if(v=!v)f=n,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),l=n-1;l>=f;--l)s.point(_[l],g[l]);s.lineEnd(),s.areaEnd()}v&&(_[n]=+e(h,n,t),g[n]=+i(h,n,t),s.point(r?+r(h,n,t):_[n],o?+o(h,n,t):g[n]))}if(p)return s=null,p+\"\"||null}function n(){return Sb().defined(u).curve(c).context(a)}var e=dc,r=null,i=lb(0),o=vc,u=lb(!0),a=null,c=Tb,s=null;return t.x=function(n){return arguments.length?(e=\"function\"==typeof n?n:lb(+n),r=null,t):e},t.x0=function(n){return arguments.length?(e=\"function\"==typeof n?n:lb(+n),t):e},t.x1=function(n){return arguments.length?(r=null==n?null:\"function\"==typeof n?n:lb(+n),t):r},t.y=function(n){return arguments.length?(i=\"function\"==typeof n?n:lb(+n),o=null,t):i},t.y0=function(n){return arguments.length?(i=\"function\"==typeof n?n:lb(+n),t):i},t.y1=function(n){return arguments.length?(o=null==n?null:\"function\"==typeof n?n:lb(+n),t):o},t.lineX0=t.lineY0=function(){return n().x(e).y(i)},t.lineY1=function(){return n().x(e).y(o)},t.lineX1=function(){return n().x(r).y(i)},t.defined=function(n){return arguments.length?(u=\"function\"==typeof n?n:lb(!!n),t):u},t.curve=function(n){return arguments.length?(c=n,null!=a&&(s=c(a)),t):c},t.context=function(n){return arguments.length?(null==n?a=s=null:s=c(a=n),t):a},t},kb=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},Eb=function(t){return t},Ab=function(){function t(t){var a,c,s,f,l,h=t.length,p=0,d=new Array(h),v=new Array(h),_=+i.apply(this,arguments),g=Math.min(wb,Math.max(-wb,o.apply(this,arguments)-_)),y=Math.min(Math.abs(g)/h,u.apply(this,arguments)),m=y*(g<0?-1:1);for(a=0;a<h;++a)(l=v[d[a]=a]=+n(t[a],a,t))>0&&(p+=l);for(null!=e?d.sort(function(t,n){return e(v[t],v[n])}):null!=r&&d.sort(function(n,e){return r(t[n],t[e])}),a=0,s=p?(g-h*m)/p:0;a<h;++a,_=f)c=d[a],l=v[c],f=_+(l>0?l*s:0)+m,v[c]={data:t[c],index:a,value:l,startAngle:_,endAngle:f,padAngle:y};return v}var n=Eb,e=kb,r=null,i=lb(0),o=lb(wb),u=lb(0);return t.value=function(e){return arguments.length?(n=\"function\"==typeof e?e:lb(+e),t):n},t.sortValues=function(n){return arguments.length?(e=n,r=null,t):e},t.sort=function(n){return arguments.length?(r=n,e=null,t):r},t.startAngle=function(n){return arguments.length?(i=\"function\"==typeof n?n:lb(+n),t):i},t.endAngle=function(n){return arguments.length?(o=\"function\"==typeof n?n:lb(+n),t):o},t.padAngle=function(n){return arguments.length?(u=\"function\"==typeof n?n:lb(+n),t):u},t},Cb=gc(Tb);_c.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var zb=function(){return yc(Sb().curve(Cb))},Pb=function(){var t=Nb().curve(Cb),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return yc(e())},delete t.lineX0,t.lineEndAngle=function(){return yc(r())},delete t.lineX1,t.lineInnerRadius=function(){return yc(i())},delete t.lineY0,t.lineOuterRadius=function(){return yc(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(gc(t)):n()._curve},t},Lb={draw:function(t,n){var e=Math.sqrt(n/xb);t.moveTo(e,0),t.arc(0,0,e,0,wb)}},Rb={draw:function(t,n){var e=Math.sqrt(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}},qb=Math.sqrt(1/3),Ub=2*qb,Db={draw:function(t,n){var e=Math.sqrt(n/Ub),r=e*qb;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},Ob=Math.sin(xb/10)/Math.sin(7*xb/10),Fb=Math.sin(wb/10)*Ob,Ib=-Math.cos(wb/10)*Ob,Yb={draw:function(t,n){var e=Math.sqrt(.8908130915292852*n),r=Fb*e,i=Ib*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var u=wb*o/5,a=Math.cos(u),c=Math.sin(u);t.lineTo(c*e,-a*e),t.lineTo(a*r-c*i,c*r+a*i)}t.closePath()}},Bb={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},jb=Math.sqrt(3),Hb={draw:function(t,n){var e=-Math.sqrt(n/(3*jb));t.moveTo(0,2*e),t.lineTo(-jb*e,-e),t.lineTo(jb*e,-e),t.closePath()}},Xb=-.5,Vb=Math.sqrt(3)/2,$b=1/Math.sqrt(12),Wb=3*($b/2+1),Zb={draw:function(t,n){var e=Math.sqrt(n/Wb),r=e/2,i=e*$b,o=r,u=e*$b+e,a=-o,c=u;t.moveTo(r,i),t.lineTo(o,u),t.lineTo(a,c),t.lineTo(Xb*r-Vb*i,Vb*r+Xb*i),t.lineTo(Xb*o-Vb*u,Vb*o+Xb*u),t.lineTo(Xb*a-Vb*c,Vb*a+Xb*c),t.lineTo(Xb*r+Vb*i,Xb*i-Vb*r),t.lineTo(Xb*o+Vb*u,Xb*u-Vb*o),t.lineTo(Xb*a+Vb*c,Xb*c-Vb*a),t.closePath()}},Gb=[Lb,Rb,Db,Bb,Yb,Hb,Zb],Jb=function(){function t(){var t;if(r||(r=t=qe()),n.apply(this,arguments).draw(r,+e.apply(this,arguments)),t)return r=null,t+\"\"||null}var n=lb(Lb),e=lb(64),r=null;return t.type=function(e){return arguments.length?(n=\"function\"==typeof e?e:lb(e),t):n},t.size=function(n){return arguments.length?(e=\"function\"==typeof n?n:lb(+n),t):e},t.context=function(n){return arguments.length?(r=null==n?null:n,t):r},t},Qb=function(){};xc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:mc(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:mc(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var Kb=function(t){return new xc(t)};bc.prototype={areaStart:Qb,areaEnd:Qb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:mc(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var tw=function(t){return new bc(t)};wc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:mc(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var nw=function(t){return new wc(t)};Mc.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],u=t[e]-i,a=n[e]-o,c=-1;++c<=e;)r=c/e,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*u),this._beta*n[c]+(1-this._beta)*(o+r*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var ew=function t(n){function e(t){return 1===n?new xc(t):new Mc(t,n)}return e.beta=function(n){return t(+n)},e}(.85);Sc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Tc(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:Tc(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var rw=function t(n){function e(t){return new Sc(t,n)}return e.tension=function(n){return t(+n)},e}(0);Nc.prototype={areaStart:Qb,areaEnd:Qb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Tc(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var iw=function t(n){function e(t){return new Nc(t,n)}return e.tension=function(n){return t(+n)},e}(0);kc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Tc(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var ow=function t(n){function e(t){return new kc(t,n)}return e.tension=function(n){return t(+n)},e}(0);Ac.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,\n            this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:Ec(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var uw=function t(n){function e(t){return n?new Ac(t,n):new Sc(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Cc.prototype={areaStart:Qb,areaEnd:Qb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Ec(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var aw=function t(n){function e(t){return n?new Cc(t,n):new Nc(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);zc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Ec(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var cw=function t(n){function e(t){return n?new zc(t,n):new kc(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Pc.prototype={areaStart:Qb,areaEnd:Qb,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}};var sw=function(t){return new Pc(t)};Dc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Uc(this,this._t0,qc(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var e=NaN;if(t=+t,n=+n,t!==this._x1||n!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,Uc(this,qc(this,e=Rc(this,t,n)),e);break;default:Uc(this,this._t0,e=Rc(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(Oc.prototype=Object.create(Dc.prototype)).point=function(t,n){Dc.prototype.point.call(this,n,t)},Fc.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,e,r,i,o){this._context.bezierCurveTo(n,t,r,e,o,i)}},Bc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,e=t.length;if(e)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),2===e)this._context.lineTo(t[1],n[1]);else for(var r=jc(t),i=jc(n),o=0,u=1;u<e;++o,++u)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],t[u],n[u]);(this._line||0!==this._line&&1===e)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var fw=function(t){return new Bc(t)};Hc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}};var lw=function(t){return new Hc(t,.5)},hw=Array.prototype.slice,pw=function(t,n){if((r=t.length)>1)for(var e,r,i=1,o=t[n[0]],u=o.length;i<r;++i){e=o,o=t[n[i]];for(var a=0;a<u;++a)o[a][1]+=o[a][0]=isNaN(e[a][1])?e[a][0]:e[a][1]}},dw=function(t){for(var n=t.length,e=new Array(n);--n>=0;)e[n]=n;return e},vw=function(){function t(t){var o,u,a=n.apply(this,arguments),c=t.length,s=a.length,f=new Array(s);for(o=0;o<s;++o){for(var l,h=a[o],p=f[o]=new Array(c),d=0;d<c;++d)p[d]=l=[0,+i(t[d],h,d,t)],l.data=t[d];p.key=h}for(o=0,u=e(f);o<s;++o)f[u[o]].index=o;return r(f,u),f}var n=lb([]),e=dw,r=pw,i=$c;return t.keys=function(e){return arguments.length?(n=\"function\"==typeof e?e:lb(hw.call(e)),t):n},t.value=function(n){return arguments.length?(i=\"function\"==typeof n?n:lb(+n),t):i},t.order=function(n){return arguments.length?(e=null==n?dw:\"function\"==typeof n?n:lb(hw.call(n)),t):e},t.offset=function(n){return arguments.length?(r=null==n?pw:n,t):r},t},_w=function(t,n){if((r=t.length)>0){for(var e,r,i,o=0,u=t[0].length;o<u;++o){for(i=e=0;e<r;++e)i+=t[e][o][1]||0;if(i)for(e=0;e<r;++e)t[e][o][1]/=i}pw(t,n)}},gw=function(t,n){if((e=t.length)>0){for(var e,r=0,i=t[n[0]],o=i.length;r<o;++r){for(var u=0,a=0;u<e;++u)a+=t[u][r][1]||0;i[r][1]+=i[r][0]=-a/2}pw(t,n)}},yw=function(t,n){if((i=t.length)>0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,u=1;u<r;++u){for(var a=0,c=0,s=0;a<i;++a){for(var f=t[n[a]],l=f[u][1]||0,h=f[u-1][1]||0,p=(l-h)/2,d=0;d<a;++d){var v=t[n[d]];p+=(v[u][1]||0)-(v[u-1][1]||0)}c+=l,s+=p*l}e[u-1][1]+=e[u-1][0]=o,c&&(o-=s/c)}e[u-1][1]+=e[u-1][0]=o,pw(t,n)}},mw=function(t){var n=t.map(Wc);return dw(t).sort(function(t,e){return n[t]-n[e]})},xw=function(t){return mw(t).reverse()},bw=function(t){var n,e,r=t.length,i=t.map(Wc),o=dw(t).sort(function(t,n){return i[n]-i[t]}),u=0,a=0,c=[],s=[];for(n=0;n<r;++n)e=o[n],u<a?(u+=i[e],c.push(e)):(a+=i[e],s.push(e));return s.reverse().concat(c)},ww=function(t){return dw(t).reverse()},Mw=function(t){return function(){return t}};Jc.prototype={constructor:Jc,insert:function(t,n){var e,r,i;if(t){if(n.P=t,n.N=t.N,t.N&&(t.N.P=n),t.N=n,t.R){for(t=t.R;t.L;)t=t.L;t.L=n}else t.R=n;e=t}else this._?(t=ns(this._),n.P=null,n.N=t,t.P=t.L=n,e=t):(n.P=n.N=null,this._=n,e=null);for(n.L=n.R=null,n.U=e,n.C=!0,t=n;e&&e.C;)r=e.U,e===r.L?(i=r.R,i&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.R&&(Kc(this,e),t=e,e=t.U),e.C=!1,r.C=!0,ts(this,r))):(i=r.L,i&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.L&&(ts(this,e),t=e,e=t.U),e.C=!1,r.C=!0,Kc(this,r))),e=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var n,e,r,i=t.U,o=t.L,u=t.R;if(e=o?u?ns(u):o:u,i?i.L===t?i.L=e:i.R=e:this._=e,o&&u?(r=e.C,e.C=t.C,e.L=o,o.U=e,e!==u?(i=e.U,e.U=t.U,t=e.R,i.L=t,e.R=u,u.U=e):(e.U=i,i=e,t=e.R)):(r=t.C,t=e),t&&(t.U=i),!r){if(t&&t.C)return void(t.C=!1);do{if(t===this._)break;if(t===i.L){if(n=i.R,n.C&&(n.C=!1,i.C=!0,Kc(this,i),n=i.R),n.L&&n.L.C||n.R&&n.R.C){n.R&&n.R.C||(n.L.C=!1,n.C=!0,ts(this,n),n=i.R),n.C=i.C,i.C=n.R.C=!1,Kc(this,i),t=this._;break}}else if(n=i.L,n.C&&(n.C=!1,i.C=!0,ts(this,i),n=i.L),n.L&&n.L.C||n.R&&n.R.C){n.L&&n.L.C||(n.R.C=!1,n.C=!0,Kc(this,n),n=i.L),n.C=i.C,i.C=n.L.C=!1,ts(this,i),t=this._;break}n.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}};var Tw,Sw,Nw,kw,Ew,Aw=[],Cw=[],zw=1e-6,Pw=1e-12;Ns.prototype={constructor:Ns,polygons:function(){var t=this.edges;return this.cells.map(function(n){var e=n.halfedges.map(function(e){return fs(n,t[e])});return e.data=n.site.data,e})},triangles:function(){var t=[],n=this.edges;return this.cells.forEach(function(e,r){if(o=(i=e.halfedges).length)for(var i,o,u,a=e.site,c=-1,s=n[i[o-1]],f=s.left===a?s.right:s.left;++c<o;)u=f,s=n[i[c]],f=s.left===a?s.right:s.left,u&&f&&r<u.index&&r<f.index&&Ts(a,u,f)<0&&t.push([a.data,u.data,f.data])}),t},links:function(){return this.edges.filter(function(t){return t.right}).map(function(t){return{source:t.left.data,target:t.right.data}})},find:function(t,n,e){for(var r,i,o=this,u=o._found||0,a=o.cells.length;!(i=o.cells[u]);)if(++u>=a)return null;var c=t-i.site[0],s=n-i.site[1],f=c*c+s*s;do{i=o.cells[r=u],u=null,i.halfedges.forEach(function(e){var r=o.edges[e],a=r.left;if(a!==i.site&&a||(a=r.right)){var c=t-a[0],s=n-a[1],l=c*c+s*s;l<f&&(f=l,u=a.index)}})}while(null!==u);return o._found=r,null==e||f<=e*e?i.site:null}};var Lw=function(){function t(t){return new Ns(t.map(function(r,i){var o=[Math.round(n(r,i,t)/zw)*zw,Math.round(e(r,i,t)/zw)*zw];return o.index=i,o.data=r,o}),r)}var n=Zc,e=Gc,r=null;return t.polygons=function(n){return t(n).polygons()},t.links=function(n){return t(n).links()},t.triangles=function(n){return t(n).triangles()},t.x=function(e){return arguments.length?(n=\"function\"==typeof e?e:Mw(+e),t):n},t.y=function(n){return arguments.length?(e=\"function\"==typeof n?n:Mw(+n),t):e},t.extent=function(n){return arguments.length?(r=null==n?null:[[+n[0][0],+n[0][1]],[+n[1][0],+n[1][1]]],t):r&&[[r[0][0],r[0][1]],[r[1][0],r[1][1]]]},t.size=function(n){return arguments.length?(r=null==n?null:[[0,0],[+n[0],+n[1]]],t):r&&[r[1][0]-r[0][0],r[1][1]-r[0][1]]},t},Rw=function(t){return function(){return t}};Es.prototype={constructor:Es,scale:function(t){return 1===t?this:new Es(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new Es(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return\"translate(\"+this.x+\",\"+this.y+\") scale(\"+this.k+\")\"}};var qw=new Es(1,0,0);As.prototype=Es.prototype;var Uw=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()},Dw=function(){function n(t){t.on(\"wheel.zoom\",s).on(\"mousedown.zoom\",f).on(\"dblclick.zoom\",l).on(\"touchstart.zoom\",h).on(\"touchmove.zoom\",p).on(\"touchend.zoom touchcancel.zoom\",d).style(\"-webkit-tap-highlight-color\",\"rgba(0,0,0,0)\").property(\"__zoom\",Ls)}function e(t,n){return n=Math.max(x,Math.min(b,n)),n===t.k?t:new Es(n,t.x,t.y)}function r(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new Es(t.k,r,i)}function i(t,n){var e=t.invertX(n[0][0])-w,r=t.invertX(n[1][0])-M,i=t.invertY(n[0][1])-T,o=t.invertY(n[1][1])-S;return t.translate(r>e?(e+r)/2:Math.min(0,e)||Math.max(0,r),o>i?(i+o)/2:Math.min(0,i)||Math.max(0,o))}function o(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function u(t,n,e){t.on(\"start.zoom\",function(){a(this,arguments).start()}).on(\"interrupt.zoom end.zoom\",function(){a(this,arguments).end()}).tween(\"zoom\",function(){var t=this,r=arguments,i=a(t,r),u=m.apply(t,r),c=e||o(u),s=Math.max(u[1][0]-u[0][0],u[1][1]-u[0][1]),f=t.__zoom,l=\"function\"==typeof n?n.apply(t,r):n,h=k(f.invert(c).concat(s/f.k),l.invert(c).concat(s/l.k));return function(t){if(1===t)t=l;else{var n=h(t),e=s/n[2];t=new Es(e,c[0]-n[0]*e,c[1]-n[1]*e)}i.zoom(null,t)}})}function a(t,n){for(var e,r=0,i=E.length;r<i;++r)if((e=E[r]).that===t)return e;return new c(t,n)}function c(t,n){this.that=t,this.args=n,this.index=-1,this.active=0,this.extent=m.apply(t,n)}function s(){function n(){o.wheel=null,o.end()}if(y.apply(this,arguments)){var o=a(this,arguments),u=this.__zoom,c=Math.max(x,Math.min(b,u.k*Math.pow(2,-t.event.deltaY*(t.event.deltaMode?120:1)/500))),s=If(this);if(o.wheel)o.mouse[0][0]===s[0]&&o.mouse[0][1]===s[1]||(o.mouse[1]=u.invert(o.mouse[0]=s)),clearTimeout(o.wheel);else{if(u.k===c)return;o.mouse=[s,u.invert(s)],cp(this),o.start()}Uw(),o.wheel=setTimeout(n,P),o.zoom(\"mouse\",i(r(e(u,c),o.mouse[0],o.mouse[1]),o.extent))}}function f(){function n(){Uw(),o.moved=!0,o.zoom(\"mouse\",i(r(o.that.__zoom,o.mouse[0]=If(o.that),o.mouse[1]),o.extent))}function e(){u.on(\"mousemove.zoom mouseup.zoom\",null),yt(t.event.view,o.moved),Uw(),o.end()}if(!g&&y.apply(this,arguments)){var o=a(this,arguments),u=wl(t.event.view).on(\"mousemove.zoom\",n,!0).on(\"mouseup.zoom\",e,!0),c=If(this);kl(t.event.view),Cs(),o.mouse=[c,this.__zoom.invert(c)],cp(this),o.start()}}function l(){if(y.apply(this,arguments)){var o=this.__zoom,a=If(this),c=o.invert(a),s=o.k*(t.event.shiftKey?.5:2),f=i(r(e(o,s),a,c),m.apply(this,arguments));Uw(),N>0?wl(this).transition().duration(N).call(u,f,a):wl(this).call(n.transform,f)}}function h(){if(y.apply(this,arguments)){var n,e,r,i,o=a(this,arguments),u=t.event.changedTouches,c=u.length;for(Cs(),e=0;e<c;++e)r=u[e],i=Tl(this,u,r.identifier),i=[i,this.__zoom.invert(i),r.identifier],o.touch0?o.touch1||(o.touch1=i):(o.touch0=i,n=!0);if(_&&(_=clearTimeout(_),!o.touch1))return o.end(),void((i=wl(this).on(\"dblclick.zoom\"))&&i.apply(this,arguments));n&&(_=setTimeout(function(){_=null},z),cp(this),o.start())}}function p(){var n,o,u,c,s=a(this,arguments),f=t.event.changedTouches,l=f.length;for(Uw(),_&&(_=clearTimeout(_)),n=0;n<l;++n)o=f[n],u=Tl(this,f,o.identifier),s.touch0&&s.touch0[2]===o.identifier?s.touch0[0]=u:s.touch1&&s.touch1[2]===o.identifier&&(s.touch1[0]=u);if(o=s.that.__zoom,s.touch1){var h=s.touch0[0],p=s.touch0[1],d=s.touch1[0],v=s.touch1[1],g=(g=d[0]-h[0])*g+(g=d[1]-h[1])*g,y=(y=v[0]-p[0])*y+(y=v[1]-p[1])*y;o=e(o,Math.sqrt(g/y)),u=[(h[0]+d[0])/2,(h[1]+d[1])/2],c=[(p[0]+v[0])/2,(p[1]+v[1])/2]}else{if(!s.touch0)return;u=s.touch0[0],c=s.touch0[1]}s.zoom(\"touch\",i(r(o,u,c),s.extent))}function d(){var n,e,r=a(this,arguments),i=t.event.changedTouches,o=i.length;for(Cs(),g&&clearTimeout(g),g=setTimeout(function(){g=null},z),n=0;n<o;++n)e=i[n],r.touch0&&r.touch0[2]===e.identifier?delete r.touch0:r.touch1&&r.touch1[2]===e.identifier&&delete r.touch1;r.touch1&&!r.touch0&&(r.touch0=r.touch1,delete r.touch1),r.touch0?r.touch0[1]=this.__zoom.invert(r.touch0[0]):r.end()}var _,g,y=zs,m=Ps,x=0,b=1/0,w=-b,M=b,T=w,S=M,N=250,k=Lh,E=[],C=v(\"start\",\"zoom\",\"end\"),z=500,P=150;return n.transform=function(t,n){var e=t.selection?t.selection():t;e.property(\"__zoom\",Ls),t!==e?u(t,n):e.interrupt().each(function(){a(this,arguments).start().zoom(null,\"function\"==typeof n?n.apply(this,arguments):n).end()})},n.scaleBy=function(t,e){n.scaleTo(t,function(){return this.__zoom.k*(\"function\"==typeof e?e.apply(this,arguments):e)})},n.scaleTo=function(t,u){n.transform(t,function(){var t=m.apply(this,arguments),n=this.__zoom,a=o(t),c=n.invert(a);return i(r(e(n,\"function\"==typeof u?u.apply(this,arguments):u),a,c),t)})},n.translateBy=function(t,e,r){n.transform(t,function(){return i(this.__zoom.translate(\"function\"==typeof e?e.apply(this,arguments):e,\"function\"==typeof r?r.apply(this,arguments):r),m.apply(this,arguments))})},c.prototype={start:function(){return 1==++this.active&&(this.index=E.push(this)-1,this.emit(\"start\")),this},zoom:function(t,n){return this.mouse&&\"mouse\"!==t&&(this.mouse[1]=n.invert(this.mouse[0])),this.touch0&&\"touch\"!==t&&(this.touch0[1]=n.invert(this.touch0[0])),this.touch1&&\"touch\"!==t&&(this.touch1[1]=n.invert(this.touch1[0])),this.that.__zoom=n,this.emit(\"zoom\"),this},end:function(){return 0==--this.active&&(E.splice(this.index,1),this.index=-1,this.emit(\"end\")),this},emit:function(t){A(new ks(n,t,this.that.__zoom),C.apply,C,[t,this.that,this.args])}},n.filter=function(t){return arguments.length?(y=\"function\"==typeof t?t:Rw(!!t),n):y},n.extent=function(t){return arguments.length?(m=\"function\"==typeof t?t:Rw([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),n):m},n.scaleExtent=function(t){return arguments.length?(x=+t[0],b=+t[1],n):[x,b]},n.translateExtent=function(t){return arguments.length?(w=+t[0][0],M=+t[1][0],T=+t[0][1],S=+t[1][1],n):[[w,T],[M,S]]},n.duration=function(t){return arguments.length?(N=+t,n):N},n.interpolate=function(t){return arguments.length?(k=t,n):k},n.on=function(){var t=C.on.apply(C,arguments);return t===C?n:t},n};t.version=\"4.8.0\",t.bisect=Ds,t.bisectRight=Ds,t.bisectLeft=Os,t.ascending=Rs,t.bisector=qs,t.cross=Is,t.descending=Ys,t.deviation=Hs,t.extent=Xs,t.histogram=rf,t.thresholdFreedmanDiaconis=uf,t.thresholdScott=af,t.thresholdSturges=ef,t.max=cf,t.mean=sf,t.median=ff,t.merge=lf,t.min=hf,t.pairs=Fs,t.permute=pf,t.quantile=of,t.range=Js,t.scan=df,t.shuffle=vf,t.sum=_f,t.ticks=nf,t.tickIncrement=r,t.tickStep=i,t.transpose=gf,t.variance=js,t.zip=yf,t.axisTop=l,t.axisRight=h,t.axisBottom=p,t.axisLeft=d,t.brush=yd,t.brushX=Ce,t.brushY=ze,t.brushSelection=Ae,t.chord=Sd,t.ribbon=zd,t.nest=Pd,t.set=We,t.map=Be,t.keys=Rd,t.values=qd,t.entries=Ud,t.color=St,t.rgb=At,t.hsl=Lt,t.lab=Dt,t.hcl=Ht,t.cubehelix=$t,t.dispatch=v,t.drag=Al,t.dragDisable=kl,t.dragEnable=yt,t.dsvFormat=Dd,t.csvParse=Fd,t.csvParseRows=Id,t.csvFormat=Yd,t.csvFormatRows=Bd,t.tsvParse=Hd,t.tsvParseRows=Xd,t.tsvFormat=Vd,t.tsvFormatRows=$d,t.easeLinear=re,t.easeQuad=ue,t.easeQuadIn=ie,t.easeQuadOut=oe,t.easeQuadInOut=ue,t.easeCubic=se,t.easeCubicIn=ae,t.easeCubicOut=ce,t.easeCubicInOut=se,t.easePoly=Lp,t.easePolyIn=zp,t.easePolyOut=Pp,t.easePolyInOut=Lp,t.easeSin=he,t.easeSinIn=fe,t.easeSinOut=le,t.easeSinInOut=he,t.easeExp=ve,t.easeExpIn=pe,t.easeExpOut=de,t.easeExpInOut=ve,t.easeCircle=ye,t.easeCircleIn=_e,t.easeCircleOut=ge,t.easeCircleInOut=ye,t.easeBounce=xe,t.easeBounceIn=me,t.easeBounceOut=xe,t.easeBounceInOut=be,t.easeBack=Wp,t.easeBackIn=Vp,t.easeBackOut=$p,t.easeBackInOut=Wp,t.easeElastic=Jp,t.easeElasticIn=Gp,t.easeElasticOut=Jp,t.easeElasticInOut=Qp,t.forceCenter=Wd,t.forceCollide=hv,t.forceLink=pv,t.forceManyBody=gv,t.forceSimulation=_v,t.forceX=yv,t.forceY=mv,t.formatDefaultLocale=dr,t.formatLocale=Pv,t.formatSpecifier=hr,t.precisionFixed=Lv,t.precisionPrefix=Rv,t.precisionRound=qv,t.geoArea=I_,t.geoBounds=j_,t.geoCentroid=X_,t.geoCircle=ug,t.geoClipExtent=pg,t.geoContains=Tg,t.geoDistance=bg,t.geoGraticule=Mi,t.geoGraticule10=Ti,t.geoInterpolate=Sg,t.geoLength=yg,t.geoPath=Qg,t.geoAlbers=cy,t.geoAlbersUsa=sy,t.geoAzimuthalEqualArea=ly,t.geoAzimuthalEqualAreaRaw=fy,t.geoAzimuthalEquidistant=py,t.geoAzimuthalEquidistantRaw=hy,t.geoConicConformal=vy,t.geoConicConformalRaw=ho,t.geoConicEqualArea=ay,t.geoConicEqualAreaRaw=oo,t.geoConicEquidistant=gy,t.geoConicEquidistantRaw=vo,t.geoEquirectangular=_y,t.geoEquirectangularRaw=po,t.geoGnomonic=yy,t.geoGnomonicRaw=_o,t.geoIdentity=my,t.geoProjection=no,t.geoProjectionMutator=eo,t.geoMercator=dy,t.geoMercatorRaw=so,t.geoOrthographic=xy,t.geoOrthographicRaw=yo,t.geoStereographic=by,t.geoStereographicRaw=mo,t.geoTransverseMercator=wy,t.geoTransverseMercatorRaw=xo,t.geoRotation=og,t.geoStream=U_,t.geoTransform=ey,t.cluster=My,t.hierarchy=Co,t.pack=Fy,t.packSiblings=Dy,t.packEnclose=Uy,t.partition=By,t.stratify=Vy,t.tree=$y,t.treemap=Jy,t.treemapBinary=Qy,t.treemapDice=Yy,t.treemapSlice=Wy,t.treemapSliceDice=Ky,t.treemapSquarify=Gy,t.treemapResquarify=tm,t.interpolate=Sh,t.interpolateArray=yh,t.interpolateBasis=hh,t.interpolateBasisClosed=ph,t.interpolateDate=mh,t.interpolateNumber=xh,t.interpolateObject=bh,t.interpolateRound=Nh,t.interpolateString=Th,t.interpolateTransformCss=Ch,t.interpolateTransformSvg=zh,t.interpolateZoom=Lh,t.interpolateRgb=vh,t.interpolateRgbBasis=_h,t.interpolateRgbBasisClosed=gh,t.interpolateHsl=Rh,t.interpolateHslLong=qh,t.interpolateLab=hn,t.interpolateHcl=Uh,t.interpolateHclLong=Dh,t.interpolateCubehelix=Oh,t.interpolateCubehelixLong=Fh,t.quantize=Ih,t.path=qe,t.polygonArea=nm,t.polygonCentroid=em;t.polygonHull=im,t.polygonContains=om,t.polygonLength=um,t.quadtree=rr,t.queue=mu,t.randomUniform=sm,t.randomNormal=fm,t.randomLogNormal=lm,t.randomBates=pm,t.randomIrwinHall=hm,t.randomExponential=dm,t.request=vm,t.html=gm,t.json=ym,t.text=mm,t.xml=xm,t.csv=wm,t.tsv=Mm,t.scaleBand=Tu,t.scalePoint=Nu,t.scaleIdentity=Uu,t.scaleLinear=qu,t.scaleLog=ju,t.scaleOrdinal=Mu,t.scaleImplicit=km,t.scalePow=Xu,t.scaleSqrt=Vu,t.scaleQuantile=$u,t.scaleQuantize=Wu,t.scaleThreshold=Zu,t.scaleTime=Zx,t.scaleUtc=Gx,t.schemeCategory10=Qx,t.schemeCategory20b=Kx,t.schemeCategory20c=tb,t.schemeCategory20=nb,t.interpolateCubehelixDefault=eb,t.interpolateRainbow=ub,t.interpolateWarm=rb,t.interpolateCool=ib,t.interpolateViridis=ab,t.interpolateMagma=cb,t.interpolateInferno=sb,t.interpolatePlasma=fb,t.scaleSequential=rc,t.creator=Cf,t.local=w,t.matcher=qf,t.mouse=If,t.namespace=Af,t.namespaces=Ef,t.select=wl,t.selectAll=Ml,t.selection=_t,t.selector=Yf,t.selectorAll=jf,t.touch=Tl,t.touches=Sl,t.window=cl,t.customEvent=A,t.arc=Mb,t.area=Nb,t.line=Sb,t.pie=Ab,t.radialArea=Pb,t.radialLine=zb,t.symbol=Jb,t.symbols=Gb,t.symbolCircle=Lb,t.symbolCross=Rb,t.symbolDiamond=Db,t.symbolSquare=Bb,t.symbolStar=Yb,t.symbolTriangle=Hb,t.symbolWye=Zb,t.curveBasisClosed=tw,t.curveBasisOpen=nw,t.curveBasis=Kb,t.curveBundle=ew,t.curveCardinalClosed=iw,t.curveCardinalOpen=ow,t.curveCardinal=rw,t.curveCatmullRomClosed=aw,t.curveCatmullRomOpen=cw,t.curveCatmullRom=uw,t.curveLinearClosed=sw,t.curveLinear=Tb,t.curveMonotoneX=Ic,t.curveMonotoneY=Yc,t.curveNatural=fw,t.curveStep=lw,t.curveStepAfter=Vc,t.curveStepBefore=Xc,t.stack=vw,t.stackOffsetExpand=_w,t.stackOffsetNone=pw,t.stackOffsetSilhouette=gw,t.stackOffsetWiggle=yw,t.stackOrderAscending=mw,t.stackOrderDescending=xw,t.stackOrderInsideOut=bw,t.stackOrderNone=dw,t.stackOrderReverse=ww,t.timeInterval=Gu,t.timeMillisecond=qm,t.timeMilliseconds=Um,t.utcMillisecond=qm,t.utcMilliseconds=Um,t.timeSecond=Fm,t.timeSeconds=Im,t.utcSecond=Fm,t.utcSeconds=Im,t.timeMinute=Ym,t.timeMinutes=Bm,t.timeHour=jm,t.timeHours=Hm,t.timeDay=Xm,t.timeDays=Vm,t.timeWeek=$m,t.timeWeeks=tx,t.timeSunday=$m,t.timeSundays=tx,t.timeMonday=Wm,t.timeMondays=nx,t.timeTuesday=Zm,t.timeTuesdays=ex,t.timeWednesday=Gm,t.timeWednesdays=rx,t.timeThursday=Jm,t.timeThursdays=ix,t.timeFriday=Qm,t.timeFridays=ox,t.timeSaturday=Km,t.timeSaturdays=ux,t.timeMonth=ax,t.timeMonths=cx,t.timeYear=sx,t.timeYears=fx,t.utcMinute=lx,t.utcMinutes=hx,t.utcHour=px,t.utcHours=dx,t.utcDay=vx,t.utcDays=_x,t.utcWeek=gx,t.utcWeeks=Tx,t.utcSunday=gx,t.utcSundays=Tx,t.utcMonday=yx,t.utcMondays=Sx,t.utcTuesday=mx,t.utcTuesdays=Nx,t.utcWednesday=xx,t.utcWednesdays=kx,t.utcThursday=bx,t.utcThursdays=Ex,t.utcFriday=wx,t.utcFridays=Ax,t.utcSaturday=Mx,t.utcSaturdays=Cx,t.utcMonth=zx,t.utcMonths=Px,t.utcYear=Lx,t.utcYears=qx,t.timeFormatDefaultLocale=Ga,t.timeFormatLocale=ea,t.isoFormat=Ix,t.isoParse=Yx,t.now=vn,t.timer=yn,t.timerFlush=mn,t.timeout=Gh,t.interval=Jh,t.transition=ne,t.active=ed,t.interrupt=cp,t.voronoi=Lw,t.zoom=Dw,t.zoomTransform=As,t.zoomIdentity=qw,Object.defineProperty(t,\"__esModule\",{value:!0})});\n</script>\n<script>\n    /*\n     TechanJS v0.8.0-0\n     (c) 2014 - 2016 Andre Dumas | https://github.com/andredumas/techan.js\n    */\n    !function(a){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=a();else if(\"function\"==typeof define&&define.amd)define([],a);else{var b;b=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this,b.techan=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i=\"function\"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error(\"Cannot find module '\"+g+\"'\");throw j.code=\"MODULE_NOT_FOUND\",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f=\"function\"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){\"use strict\";b.exports=\"0.8.0-0\"},{}],2:[function(a,b,c){\"use strict\";b.exports=function(){function a(b){return a.r(b)}function b(){return a.d=c,a.adx=d,a.plusDi=e,a.minusDi=f,a}var c=function(a){return a.date},d=function(a){return a.adx},e=function(a){return a.plusDi},f=function(a){return a.minusDi};return a.date=function(a){return arguments.length?(c=a,b()):c},a.adx=function(a){return arguments.length?(d=a,b()):d},a.plusDi=function(a){return arguments.length?(e=a,b()):e},a.minusDi=function(a){return arguments.length?(f=a,b()):f},b()}},{}],3:[function(a,b,c){\"use strict\";b.exports=function(){function a(b){return a.r(b)}function b(){return a.d=c,a.up=d,a.down=e,a.oscillator=f,a.ob=g,a.os=h,a.m=i,a}var c=function(a){return a.date},d=function(a){return a.up},e=function(a){return a.down},f=function(a){return a.oscillator},g=function(a){return a.overbought},h=function(a){return a.oversold},i=function(a){return a.middle};return a.date=function(a){return arguments.length?(c=a,b()):c},a.up=function(a){return arguments.length?(d=a,b()):d},a.down=function(a){return arguments.length?(e=a,b()):e},a.oscillator=function(a){return arguments.length?(f=a,b()):f},a.overbought=function(a){return arguments.length?(g=a,b()):g},a.oversold=function(a){return arguments.length?(h=a,b()):h},a.middle=function(a){return arguments.length?(i=a,b()):i},b()}},{}],4:[function(a,b,c){\"use strict\";b.exports=function(){function a(b){return a.up(b)}function b(){return a.d=c,a.up=d,a.dn=e,a}var c=function(a){return a.date},d=function(a){return a.up},e=function(a){return a.down};return a.date=function(a){return arguments.length?(c=a,b()):c},a.up=function(a){return arguments.length?(d=a,b()):d},a.down=function(a){return arguments.length?(e=a,b()):e},b()}},{}],5:[function(a,b,c){\"use strict\";b.exports=function(){function a(b){return a.r(b)}function b(){return a.d=c,a.middle=d,a.upper=e,a.lower=f,a}var c=function(a){return a.date},d=function(a){return a.middleBand},e=function(a){return a.upperBand},f=function(a){return a.lowerBand};return a.date=function(a){return arguments.length?(c=a,b()):c},a.middle=function(a){return arguments.length?(d=a,b()):d},a.upper=function(a){return arguments.length?(e=a,b()):e},a.lower=function(a){return arguments.length?(f=a,b()):f},b()}},{}],6:[function(a,b,c){\"use strict\";b.exports=function(){function a(b){return a.xv(b)}function b(){return a.xv=c,a.yv=d,a}var c=function(b,c){return arguments.length<2?b.x:(b.x=c,a)},d=function(b,c){return arguments.length<2?b.y:(b.y=c,a)};return a.x=function(a){return arguments.length?(c=a,b()):c},a.y=function(a){return arguments.length?(d=a,b()):d},b()}},{}],7:[function(a,b,c){\"use strict\";b.exports=function(){function a(b){return a.ts(b)}function b(){return a.d=c,a.ts=d,a.ks=e,a.sa=f,a.sb=g,a.c=h,a.pts=i,a.pks=j,a.pssb=k,a}var c=function(a){return a.date},d=function(a){return a.tenkanSen},e=function(a){return a.kijunSen},f=function(a){return a.senkouSpanA},g=function(a){return a.senkouSpanB},h=function(a){return a.chikouSpan},i=function(a){return a.parameters.tenkanSen},j=function(a){return a.parameters.kijunSen},k=function(a){return a.parameters.senkouSpanB};return a.date=function(a){return arguments.length?(c=a,b()):c},a.tenkanSen=function(a){return arguments.length?(d=a,b()):d},a.kijunSen=function(a){return arguments.length?(e=a,b()):e},a.senkouSpanA=function(a){return arguments.length?(f=a,b()):f},a.senkouSpanB=function(a){return arguments.length?(g=a,b()):g},a.chikouSpan=function(a){return arguments.length?(h=a,b()):h},a.ptenanSen=function(a){return arguments.length?(i=a,b()):i},a.pkijunSen=function(a){return arguments.length?(j=a,b()):j},a.psenkouSpanB=function(a){return arguments.length?(k=a,b()):k},b()}},{}],8:[function(a,b,c){\"use strict\";b.exports=function(){return{atrtrailingstop:a(\"./atrtrailingstop\"),crosshair:a(\"./crosshair\"),ichimoku:a(\"./ichimoku\"),macd:a(\"./macd\"),ohlc:a(\"./ohlc\"),rsi:a(\"./rsi\"),trendline:a(\"./trendline\"),value:a(\"./value\"),volume:a(\"./volume\"),tick:a(\"./tick\"),trade:a(\"./trade\"),adx:a(\"./adx\"),aroon:a(\"./aroon\"),stochastic:a(\"./stochastic\"),supstance:a(\"./supstance\"),williams:a(\"./williams\"),bollinger:a(\"./bollinger\")}}},{\"./adx\":2,\"./aroon\":3,\"./atrtrailingstop\":4,\"./bollinger\":5,\"./crosshair\":6,\"./ichimoku\":7,\"./macd\":9,\"./ohlc\":10,\"./rsi\":11,\"./stochastic\":12,\"./supstance\":13,\"./tick\":14,\"./trade\":15,\"./trendline\":16,\"./value\":17,\"./volume\":18,\"./williams\":19}],9:[function(a,b,c){\"use strict\";b.exports=function(){function a(b){return a.m(b)}function b(){return a.d=c,a.m=d,a.s=f,a.dif=g,a.z=e,a}var c=function(a){return a.date},d=function(a){return a.macd},e=function(a){return a.zero},f=function(a){return a.signal},g=function(a){return a.difference};return a.date=function(a){return arguments.length?(c=a,b()):c},a.macd=function(a){return arguments.length?(d=a,b()):d},a.signal=function(a){return arguments.length?(f=a,b()):f},a.difference=function(a){return arguments.length?(g=a,b()):g},b()}},{}],10:[function(a,b,c){\"use strict\";b.exports=function(){function a(b){return a.c(b)}function b(){return a.d=c,a.o=d,a.h=e,a.l=f,a.c=g,a.v=h,a}var c=function(a){return a.date},d=function(a){return a.open},e=function(a){return a.high},f=function(a){return a.low},g=function(a){return a.close},h=function(a){return a.volume};return a.date=function(a){return arguments.length?(c=a,b()):c},a.open=function(a){return arguments.length?(d=a,b()):d},a.high=function(a){return arguments.length?(e=a,b()):e},a.low=function(a){return arguments.length?(f=a,b()):f},a.close=function(a){return arguments.length?(g=a,b()):g},a.volume=function(a){return arguments.length?(h=a,b()):h},b()}},{}],11:[function(a,b,c){\"use strict\";b.exports=function(){function a(b){return a.r(b)}function b(){return a.d=c,a.r=d,a.ob=e,a.os=f,a.m=g,a}var c=function(a){return a.date},d=function(a){return a.rsi},e=function(a){return a.overbought},f=function(a){return a.oversold},g=function(a){return a.middle};return a.date=function(a){return arguments.length?(c=a,b()):c},a.rsi=function(a){return arguments.length?(d=a,b()):d},a.overbought=function(a){return arguments.length?(e=a,b()):e},a.oversold=function(a){return arguments.length?(f=a,b()):f},a.middle=function(a){return arguments.length?(g=a,b()):g},b()}},{}],12:[function(a,b,c){\"use strict\";b.exports=function(){function a(b){return a.r(b)}function b(){return a.d=c,a.k=d,a.sd=e,a.ob=f,a.os=g,a.m=h,a}var c=function(a){return a.date},d=function(a){return a.stochasticK},e=function(a){return a.stochasticD},f=function(a){return a.overbought},g=function(a){return a.oversold},h=function(a){return a.middle};return a.date=function(a){return arguments.length?(c=a,b()):c},a.stochasticK=function(a){return arguments.length?(d=a,b()):d},a.stochasticD=function(a){return arguments.length?(e=a,b()):e},a.overbought=function(a){return arguments.length?(f=a,b()):f},a.oversold=function(a){return arguments.length?(g=a,b()):g},a.middle=function(a){return arguments.length?(h=a,b()):h},b()}},{}],13:[function(a,b,c){\"use strict\";b.exports=function(){function a(b){return a.v(b)}function b(){return a.s=c,a.e=d,a.v=e,a}var c=function(a){return a.start},d=function(a){return a.end},e=function(b,c){return arguments.length<2?b.value:(b.value=c,a)};return a.start=function(a){return arguments.length?(c=a,b()):c},a.end=function(a){return arguments.length?(d=a,b()):d},a.value=function(a){return arguments.length?(e=a,b()):e},b()}},{}],14:[function(a,b,c){\"use strict\";b.exports=function(){function a(a){b()}function b(){return a.d=c,a.h=d,a.l=e,a.s=f,a}var c=function(a){return a.date},d=function(a){return a.high},e=function(a){return a.low},f=function(a){return a.spread};return a.date=function(a){return arguments.length?(c=a,b()):c},a.high=function(a){return arguments.length?(d=a,b()):d},a.low=function(a){return arguments.length?(e=a,b()):e},a.spread=function(a){return arguments.length?(f=a,b()):f},b()}},{}],15:[function(a,b,c){\"use strict\";b.exports=function(){function a(b){return a.p(b)}function b(){return a.d=c,a.t=d,a.p=e,a}var c=function(a){return a.date},d=function(a){return a.type},e=function(a){return a.price};return a.date=function(a){return arguments.length?(c=a,b()):c},a.type=function(a){return arguments.length?(d=a,b()):d},a.price=function(a){return arguments.length?(e=a,b()):e},b()}},{}],16:[function(a,b,c){\"use strict\";b.exports=function(){function a(b){return a.sv(b)}function b(){return a.sd=c,a.sv=d,a.ed=e,a.ev=f,a}var c=function(a,b){return arguments.length<2?a.start.date:void(a.start.date=b)},d=function(a,b){return arguments.length<2?a.start.value:void(a.start.value=b)},e=function(a,b){return arguments.length<2?a.end.date:void(a.end.date=b)},f=function(a,b){return arguments.length<2?a.end.value:void(a.end.value=b)};return a.startDate=function(a){return arguments.length?(c=a,b()):c},a.startValue=function(a){return arguments.length?(d=a,b()):d},a.endDate=function(a){return arguments.length?(e=a,b()):e},a.endValue=function(a){return arguments.length?(f=a,b()):f},b()}},{}],17:[function(a,b,c){\"use strict\";b.exports=function(){function a(b){return a.v(b)}function b(){return a.d=c,a.v=d,a.z=e,a}var c=function(a){return a.date},d=function(b,c){return arguments.length<2?b.value:(b.value=c,a)},e=function(a){return a.zero};return a.date=function(a){return arguments.length?(c=a,b()):c},a.value=function(a){return arguments.length?(d=a,b()):d},a.zero=function(a){return arguments.length?(e=a,b()):e},b()}},{}],18:[function(a,b,c){\"use strict\";b.exports=function(){function a(b){return a.v(b)}function b(){return a.d=c,a.v=d,a}var c=function(a){return a.date},d=function(a){return a.volume};return a.date=function(a){return arguments.length?(c=a,b()):c},a.volume=function(a){return arguments.length?(d=a,b()):d},b()}},{}],19:[function(a,b,c){\"use strict\";b.exports=function(){function a(b){return a.r(b)}function b(){return a.d=c,a.w=d,a}var c=function(a){return a.date},d=function(a){return a.williams};return a.date=function(a){return arguments.length?(c=a,b()):c},a.williams=function(a){return arguments.length?(d=a,b()):d},b()}},{}],20:[function(a,b,c){\"use strict\";function d(a,b,c,d){return c?{date:a,adx:b,plusDi:c,minusDi:d}:{date:a,adx:null,plusDi:null,minusDi:null}}b.exports=function(a,b,c,e){return function(){function f(b){var c=e().accessor(f.accessor()).period(h).init(),i=e().accessor(f.accessor()).period(h).init(),j=e().accessor(f.accessor()).period(h).init(),k=e().accessor(f.accessor()).period(h).init();return h=parseInt(h),b.map(function(e,f){if(f<1)return d(g.accessor.d(e));var l=g.accessor.h(b[f])-g.accessor.h(b[f-1]),m=g.accessor.l(b[f-1])-g.accessor.l(b[f]),n=0;l>m&&l>0&&(n=l);var o=0;m>l&&m>0&&(o=m);var p=a([g.accessor.h(e)-g.accessor.l(e),Math.abs(g.accessor.h(e)-g.accessor.c(b[f-1])),Math.abs(g.accessor.l(e)-g.accessor.c(b[f-1]))]),q=c.average(n),r=i.average(o),s=j.average(p);if(f>h){var t=100*q/s,u=100*r/s,v=0;t-u!==0&&(v=Math.abs((t-u)/(t+u)));var w=100*k.average(v);return f>=2*h?d(g.accessor.d(e),w,t,u):d(g.accessor.d(e))}return d(g.accessor.d(e))}).filter(function(a){return a.adx})}var g={},h=14;return f.period=function(a){return arguments.length?(h=a,f):h},b(f,g).accessor(c()),f}}},{}],21:[function(a,b,c){\"use strict\";function d(a,b,c,d,e,f,g){return b?{date:a,up:b,down:c,oscillator:d,middle:e,overbought:f,oversold:g}:{date:a,up:null,down:null,oscillator:null,middle:null,overbought:null,oversold:null}}b.exports=function(a,b){return function(){function c(a){return a.map(function(b,c){if(c>=f-1){for(var j=0,k=0,l=1e4,m=0,n=0;n<f;n++)e.accessor.h(a[c-n])>j&&(j=e.accessor.h(a[c-n]),k=n),e.accessor.l(a[c-n])<l&&(l=e.accessor.l(a[c-n]),m=n);var o=(f-k)/f*100,p=(f-m)/f*100,q=o-p;return d(e.accessor.d(b),o,p,q,h,g,i)}return d(e.accessor.d(b))}).filter(function(a){return a.up})}var e={},f=20,g=70,h=0,i=30;return c.period=function(a){return arguments.length?(f=a,c):f},c.overbought=function(a){return arguments.length?(g=a,c):g},c.middle=function(a){return arguments.length?(h=a,c):h},c.oversold=function(a){return arguments.length?(i=a,c):i},a(c,e).accessor(b()),c}}},{}],22:[function(a,b,c){\"use strict\";function d(a,b){return b?{date:a,value:b}:{date:a,value:null}}b.exports=function(a,b,c){return function(){function e(a){return e.init(),a.map(function(a,b){var c=e.atr(a);return b>=f.period?d(f.accessor.d(a),c):d(f.accessor.d(a))}).filter(function(a){return null!==a.value})}var f={},g=c(),h=null,i=0,j=0;return e.init=function(){return g.accessor(e.accessor()).period(f.period).init(),h=null,i=0,j=0,e},e.atr=function(a){var b=null===h?f.accessor.h(a)-f.accessor.l(a):Math.max(f.accessor.h(a)-f.accessor.l(a),Math.abs(f.accessor.h(a)-f.accessor.c(h)),Math.abs(f.accessor.l(a)-f.accessor.c(h)));return h=a,i=j++<=f.period?g.average(b):(i*(f.period-1)+b)/f.period},a(e,f).accessor(b()).period(14),e}}},{}],23:[function(a,b,c){\"use strict\";b.exports=function(a,b,c){return function(){function d(a){return g.accessor(e.accessor).period(e.period).init(),a.map(function(a,b){var c=e.accessor.c(a),d=g.atr(a)*f;return b>=e.period?{date:e.accessor.d(a),close:c,up:c-d,down:c+d}:{date:e.accessor.d(a),up:null,down:null}}).filter(function(a){return null!==a.up&&null!==a.down}).reduce(function(a,b,c){var d=a[c-1],e=0===c?b.up:null,f=null;return d&&null!==d.up&&(b.close>d.up?e=Math.max(b.up,d.up):f=b.down),d&&null!==d.down&&(b.close<d.down?f=Math.min(b.down,d.down):e=b.up),a.push({date:b.date,up:e,down:f}),a},[])}var e={},f=3,g=c();return d.multiplier=function(a){return arguments.length?(f=a,d):f},a(d,e).accessor(b()).period(14),d}}},{}],24:[function(a,b,c){\"use strict\";function d(a,b,c,d){return b?{date:a,middleBand:b,upperBand:c,lowerBand:d}:{date:a,middleBand:null,upperBand:null,lowerBand:null}}b.exports=function(a,b,c){return function(){function e(a){var b,j=c().accessor(e.accessor()).period(h).init();return a.map(function(c,e){var k=j.average(g.accessor(c));if(e>=h){var l=0;for(b=0;b<h;b++)l+=Math.pow(g.accessor.c(a[e-b])-k,2);f=Math.sqrt(l/h);var m=k+i*f,n=k-i*f;return d(g.accessor.d(c),k,m,n)}return d(g.accessor.d(c))}).filter(function(a){return a.middleBand})}var f,g={},h=20,i=2;return e.period=function(a){return arguments.length?(h=a,e):h},e.sdMultiplication=function(a){return arguments.length?(i=a,e):i},a(e,g).accessor(b()),e}}},{}],25:[function(a,b,c){\"use strict\";b.exports=function(a,b,c){return function(){function d(a){return d.init(),a.map(e).filter(function(a){return null!==a.value})}function e(a,b){var c=d.average(j.accessor(a));return b+1<j.period&&(c=null),{date:j.accessor.d(a),value:c}}var f,g,h,i,j={};return d.init=function(){return f=null,g=c(j.period),h=0,i=0,d},d.average=function(a){return i<j.period?f=(h+=a)/++i:f+=g*(a-f)},a(d,j).accessor(b()).period(10),d}}},{}],26:[function(a,b,c){\"use strict\";b.exports=function(a,b,c,d){return function(){function e(a){var b;return a.map(function(a){var e={date:f.accessor.d(a),open:(void 0===b?f.accessor.o(a)+f.accessor.c(a):b.open+b.close)/2,close:(f.accessor.o(a)+f.accessor.h(a)+f.accessor.l(a)+f.accessor.c(a))/4};return e.high=d([e.open,e.close,f.accessor.h(a)]),e.low=c([e.open,e.close,f.accessor.l(a)]),void 0!==f.accessor.v&&void 0!==f.accessor.v(a)&&(e.volume=f.accessor.v(a)),b=e})}var f={};return a(e,f).accessor(b()),e}}},{}],27:[function(a,b,c){\"use strict\";function d(a,b,c){return{parameters:a,date:b,chikouSpan:c,tenkanSen:null,kijunSen:null,senkouSpanA:null,senkouSpanB:null}}function e(a,b){return null!==a&&null!==b?f(a,b):null}function f(a,b){return(a+b)/2}b.exports=function(a,b){return function(){function c(a){for(var b={tenkanSen:i,kijunSen:j,senkouSpanB:k},c=new Array(a.length),d=c.length-1;d>=0;d--)c[d]=g(b,a,d);return c}function g(a,b,c){for(var g=b[c],i=h.accessor.l(g),j=h.accessor.h(g),k=d(a,h.accessor.d(g),h.accessor.c(g)),l=0,m=l+1;l<a.senkouSpanB&&c-l>=0;l++,m=l+1)g=b[c-l],i=Math.min(i,h.accessor.l(g)),j=Math.max(j,h.accessor.h(g)),k.tenkanSen=m===a.tenkanSen?f(i,j):k.tenkanSen,k.kijunSen=m===a.kijunSen?f(i,j):k.kijunSen,k.senkouSpanB=m===a.senkouSpanB?f(i,j):k.senkouSpanB;return k.senkouSpanA=e(k.tenkanSen,k.kijunSen),k}var h={},i=9,j=26,k=52;return c.tenkanSen=function(a){return arguments.length?(i=a,c):i},c.kijunSen=function(a){return arguments.length?(j=a,c):j},c.senkouSpanB=function(a){return arguments.length?(k=a,c):k},a(c,h).accessor(b()),c}}},{}],28:[function(a,b,c){\"use strict\";function d(a){return 2/(a+1)}function e(a){return 1/a}b.exports=function(b){var c=a(\"./indicatormixin\")(),f=a(\"../accessor\")(),g=a(\"./ema\"),h=g(c,f.ohlc,d),i=a(\"./sma\")(c,f.ohlc),j=a(\"./atr\")(c,f.ohlc,i),k=a(\"./vwap\")(c,f.ohlc);return{atr:j,atrtrailingstop:a(\"./atrtrailingstop\")(c,f.ohlc,j),ema:h,heikinashi:a(\"./heikinashi\")(c,f.ohlc,b.min,b.max),ichimoku:a(\"./ichimoku\")(c,f.ohlc),macd:a(\"./macd\")(c,f.ohlc,h),rsi:a(\"./rsi\")(c,f.ohlc,h),sma:i,wilderma:g(c,f.ohlc,e),aroon:a(\"./aroon\")(c,f.ohlc),stochastic:a(\"./stochastic\")(c,f.ohlc,h),williams:a(\"./williams\")(c,f.ohlc,h),adx:a(\"./adx\")(b.max,c,f.ohlc,h),bollinger:a(\"./bollinger\")(c,f.ohlc,i),vwap:k}}},{\"../accessor\":8,\"./adx\":20,\"./aroon\":21,\"./atr\":22,\"./atrtrailingstop\":23,\"./bollinger\":24,\"./ema\":25,\"./heikinashi\":26,\"./ichimoku\":27,\"./indicatormixin\":29,\"./macd\":30,\"./rsi\":31,\"./sma\":32,\"./stochastic\":33,\"./vwap\":34,\"./williams\":35}],29:[function(a,b,c){\"use strict\";b.exports=function(){return function(a,b){var c={};return c.period=function(d){return b.period=d,a.period=function(c){return arguments.length?(b.period=+c,a):b.period},c},c.accessor=function(d){return b.accessor=d,a.accessor=function(c){return arguments.length?(b.accessor=c,a):b.accessor},c},c}}},{}],30:[function(a,b,c){\"use strict\";function d(a,b,c,d,e){return b?{date:a,macd:b,signal:c,difference:d,zero:e}:{date:a,macd:null,signal:null,difference:null,zero:null}}b.exports=function(a,b,c){return function(){function e(a){var b=Math.max(g,h)-1,c=b+i-1;return j.accessor(e.accessor()).period(i).init(),k.accessor(e.accessor()).period(g).init(),l.accessor(e.accessor()).period(h).init(),a.map(function(a,e){var g=k.average(f.accessor(a))-l.average(f.accessor(a)),h=e>=b?j.average(g):null;return e>=c?d(f.accessor.d(a),g,h,g-h,0):d(f.accessor.d(a))}).filter(function(a){return null!==a.macd})}var f={},g=12,h=26,i=9,j=c(),k=c(),l=c();return e.fast=function(a){return arguments.length?(g=a,e):g},e.slow=function(a){return arguments.length?(h=a,e):h},e.signal=function(a){return arguments.length?(i=a,e):i},a(e,f).accessor(b()),e}}},{}],31:[function(a,b,c){\"use strict\";function d(a,b,c,d,e){return b?{date:a,rsi:b,middle:c,overbought:d,oversold:e}:{date:a,rsi:null,middle:null,overbought:null,oversold:null}}b.exports=function(a,b,c){return function(){function e(a){return j.accessor(e.accessor()).period(f.period).init(),k.accessor(e.accessor()).period(f.period).init(),a.map(function(b,c){if(c<1)return d(f.accessor.d(b));var e=f.accessor(b)-f.accessor(a[c-1]),l=k.average(Math.max(e,0)),m=Math.abs(j.average(Math.min(e,0)));if(c>=f.period){var n=100-100/(1+l/m);return d(f.accessor.d(b),n,h,g,i)}return d(f.accessor.d(b))}).filter(function(a){return null!==a.rsi})}var f={},g=70,h=50,i=30,j=c(),k=c();return e.overbought=function(a){return arguments.length?(g=a,e):g},e.middle=function(a){return arguments.length?(h=a,e):h},e.oversold=function(a){return arguments.length?(i=a,e):i},a(e,f).accessor(b()).period(14),e}}},{}],32:[function(a,b,c){\"use strict\";b.exports=function(a,b){return function(){function c(a){return c.init(),a.map(d).filter(function(a){return null!==a.value})}function d(a,b){var d=c.average(h.accessor(a));return b+1<h.period&&(d=null),{date:h.accessor.d(a),value:d}}var e,f,g,h={};return c.init=function(){return g=0,e=[],f=0,c},c.average=function(a){return g+=a,e.length+1<h.period?(e.push(a),g/++f):(e.length<h.period&&(e.push(a),g+=a),g-=e[f],e[f]=a,++f===h.period&&(f=0),g/h.period)},a(c,h).accessor(b()).period(10),c}}},{}],33:[function(a,b,c){\"use strict\";function d(a,b,c,d,e,f){return b?{date:a,stochasticK:b,stochasticD:c,middle:d,overbought:e,oversold:f}:{date:a,stochasticK:null,stochasticD:null,middle:d,overbought:e,oversold:f}}b.exports=function(a,b){return function(){function c(a){var b=parseInt(f)+parseInt(g);return a.map(function(c,k){if(k>=b){for(var l=[],m=[],n=[],o=0;o<g;o++)l.push(0),m.push(1e4),n.push(0);for(var p=0,q=0;q<g;q++){for(var r=0;r<f;r++)e.accessor.h(a[k-r-q])>l[q]&&(l[q]=e.accessor.h(a[k-r-q])),e.accessor.l(a[k-r-q])<m[q]&&(m[q]=e.accessor.l(a[k-r-q]));var s=l[q]-m[q];s>0?n[q]=(e.accessor.c(a[k-q])-m[q])/(l[q]-m[q])*100:n[q]=50,p+=n[q]}var t=n[0];return p/=g,d(e.accessor.d(c),t,p,i,h,j)}return d(e.accessor.d(c),null,null,i,h,j)}).filter(function(a){return a.stochasticK})}var e={},f=20,g=3,h=80,i=50,j=20;return c.period=function(a){return arguments.length?(f=a,c):f},c.periodD=function(a){return arguments.length?(g=a,c):g},c.overbought=function(a){return arguments.length?(h=a,c):h},c.middle=function(a){return arguments.length?(i=a,c):i},c.oversold=function(a){return arguments.length?(j=a,c):j},a(c,e).accessor(b()),c}}},{}],34:[function(a,b,c){\"use strict\";b.exports=function(a,b){return function(){function c(a){return c.init(),a.map(d).filter(function(a){return null!==a.value})}function d(a,b){b>0&&g.getDate()!=h.accessor.d(a).getDate()&&(e=0,f=0);var c=(h.accessor.h(a)+h.accessor.l(a)+h.accessor.c(a))/3;return e+=c*h.accessor.v(a),f+=h.accessor.v(a),g=h.accessor.d(a),{date:h.accessor.d(a),value:e/f}}var e,f,g,h={};return c.init=function(){return e=0,f=0,c},a(c,h).accessor(b()).period(1),c}}},{}],35:[function(a,b,c){\"use strict\";function d(a,b,c,d,e){return b?{date:a,williams:b,middle:c,overbought:d,oversold:e}:{date:a,williams:null,middle:null,overbought:null,oversold:null}}b.exports=function(a,b){return function(){function c(a){return a.map(function(b,c){if(c>=f){for(var j=0,k=0,l=1e4,m=0,n=0;n<f;n++)e.accessor.h(a[c-n])>j&&(j=e.accessor.h(a[c-n]),k=n),e.accessor.l(a[c-n])<l&&(l=e.accessor.l(a[c-n]),m=n);var o=(e.accessor.c(a[c])-l)/(j-l)*100;return d(e.accessor.d(b),o,h,g,i)}return d(e.accessor.d(b))}).filter(function(a){return a.williams})}var e={},f=20,g=80,h=50,i=20;return c.period=function(a){return arguments.length?(f=a,c):f},c.overbought=function(a){return arguments.length?(g=a,c):g},c.middle=function(a){return arguments.length?(h=a,c):h},c.oversold=function(a){return arguments.length?(i=a,c):i},a(c,e).accessor(b()),c}}},{}],36:[function(a,b,c){\"use strict\";function d(a,b,c,d){a.select(\"path.adx\").attr(\"d\",b),a.select(\"path.plusDi\").attr(\"d\",c),a.select(\"path.minusDi\").attr(\"d\",d)}b.exports=function(a,b,c){return function(){function e(a){var b=g.dataSelector(a);b.entry.append(\"path\").attr(\"class\",\"adx\"),b.entry.append(\"path\").attr(\"class\",\"plusDi\"),b.entry.append(\"path\").attr(\"class\",\"minusDi\"),e.refresh(a)}function f(){h.init(g.accessor.d,g.xScale,g.accessor.adx,g.yScale),i.init(g.accessor.d,g.xScale,g.accessor.plusDi,g.yScale),j.init(g.accessor.d,g.xScale,g.accessor.minusDi,g.yScale)}var g={},h=b.pathLine(),i=b.pathLine(),j=b.pathLine();return e.refresh=function(a){d(g.dataSelector.select(a),h,i,j)},c(e,g).plot(a(),f).dataSelector(c.dataMapper.array),f(),e}}},{}],37:[function(a,b,c){\"use strict\";function d(a,b,c,d,e,f,g,h,i,j){a.select(\"path.overbought\").attr(\"d\",e.horizontalPathLine(b.d,c,b.ob,d)),a.select(\"path.oversold\").attr(\"d\",e.horizontalPathLine(b.d,c,b.os,d)),a.select(\"path.aroon.oscillator\").attr(\"d\",f),a.select(\"path.aroon.oscillatorArea\").attr(\"d\",g),a.select(\"path.aroon.middle\").attr(\"d\",h),a.select(\"path.aroon.up\").attr(\"d\",i),a.select(\"path.aroon.down\").attr(\"d\",j)}b.exports=function(a,b,c){return function(){function e(a){var b=g.dataSelector(a);b.entry.append(\"path\").attr(\"class\",\"overbought\"),b.entry.append(\"path\").attr(\"class\",\"oversold\"),b.entry.append(\"path\").attr(\"class\",\"aroon oscillator\"),b.entry.append(\"path\").attr(\"class\",\"aroon oscillatorArea\"),b.entry.append(\"path\").attr(\"class\",\"aroon middle\"),b.entry.append(\"path\").attr(\"class\",\"aroon up\"),b.entry.append(\"path\").attr(\"class\",\"aroon down\"),e.refresh(a)}function f(){h.init(g.accessor.d,g.xScale,g.accessor.oscillator,g.yScale),i.init(g.accessor.d,g.xScale,g.accessor.oscillator,g.yScale,0),j.init(g.accessor.d,g.xScale,g.accessor.m,g.yScale),k.init(g.accessor.d,g.xScale,g.accessor.up,g.yScale),l.init(g.accessor.d,g.xScale,g.accessor.down,g.yScale)}var g={},h=b.pathLine(),i=b.pathArea(),j=b.pathLine(),k=b.pathLine(),l=b.pathLine();return e.refresh=function(a){d(g.dataSelector.select(a),g.accessor,g.xScale,g.yScale,b,h,i,j,k,l)},c(e,g).plot(a(),f).dataSelector(c.dataMapper.array),f(),e}}},{}],38:[function(a,b,c){\"use strict\";function d(a,b,c){a.select(\"path.up\").attr(\"d\",b),a.select(\"path.down\").attr(\"d\",c)}b.exports=function(a,b,c){return function(){function e(a){var b=g.dataSelector(a);b.entry.append(\"path\").attr(\"class\",\"up\"),b.entry.append(\"path\").attr(\"class\",\"down\"),e.refresh(a)}function f(){h.init(g.accessor.d,g.xScale,g.accessor.up,g.yScale),i.init(g.accessor.d,g.xScale,g.accessor.dn,g.yScale)}var g={},h=b.pathLine(),i=b.pathLine();return e.refresh=function(a){d(g.dataSelector.select(a),h,i)},c(e,g).plot(a(),f).dataSelector(c.dataMapper.array),f(),e}}},{}],39:[function(a,b,c){\"use strict\";function d(a,b,c,d,e,g,j,k,l){var m=\"left\"===d||\"top\"===d?-1:1;a.attr(\"transform\",\"translate(\"+l[0]+\",\"+l[1]+\")\"),a.select(\"path\").attr(\"d\",i(b,c,d,g,j,k,m)),a.select(\"text\").text(h(b,e)).call(f,b,c,d,m)}function e(a,b){return function(c){var d=b.range(),e=d[0],f=d[d.length-1];return d=e<f?[e,f]:[f,e],c.filter(function(c){if(null===a(c)||void 0===a(c))return!1;var e=b(a(c));return null!==e&&!isNaN(e)&&d[0]<=e&&e<=d[1]})}}function f(a,b,c,d,e){var f=c.scale();switch(d){case\"left\":case\"right\":a.attr(\"x\",e*(Math.max(c.tickSizeInner(),0)+c.tickPadding())).attr(\"y\",g(b,f)).attr(\"dy\",\".32em\").style(\"text-anchor\",e<0?\"end\":\"start\");break;case\"top\":case\"bottom\":a.attr(\"x\",g(b,f)).attr(\"y\",e*(Math.max(c.tickSizeInner(),0)+c.tickPadding())).attr(\"dy\",e<0?\"0em\":\".72em\").style(\"text-anchor\",\"middle\")}}function g(a,b){return function(c){return b(a(c))}}function h(a,b){return function(c){return b(a(c))}}function i(a,b,c,d,e,f,g){return function(h){var i=b.scale(),j=i(a(h)),k=f;switch(c){case\"left\":case\"right\":var l=0;return d/2<f?k=d/2:l=d/2-f,\"M 0 \"+j+\" l \"+g*Math.max(b.tickSizeInner(),1)+\" \"+-k+\" l 0 \"+-l+\" l \"+g*e+\" 0 l 0 \"+d+\" l \"+g*-e+\" 0 l 0 \"+-l;case\"top\":case\"bottom\":var m=0;return e/2<f?k=e/2:m=e/2-f,\"M \"+j+\" 0 l \"+-k+\" \"+g*Math.max(b.tickSizeInner(),1)+\" l \"+-m+\" 0 l 0 \"+g*d+\" l \"+e+\" 0 l 0 \"+g*-d+\" l \"+-m+\" 0\";default:throw\"Unsupported orient value: axisannotation.orient(\"+c+\"). Set to one of: 'top', 'bottom', 'left', 'right'\"}}}b.exports=function(a,b,c,f,g){return function(){function f(a){var b=i.dataSelector.mapper(e(i.accessor,j.scale()))(a);b.entry.append(\"path\"),b.entry.append(\"text\"),f.refresh(a)}var h,i={},j=a(b()),k=4,l=14,m=50,n=[0,0],o=\"bottom\";return f.refresh=function(a){var b=h?h:j.tickFormat()?j.tickFormat():j.scale().tickFormat();d(i.dataSelector.select(a),i.accessor,j,o,b,l,m,k,n)},f.axis=function(a){return arguments.length?(j=a,f):j},f.orient=function(a){return arguments.length?(o=a,f):o},f.format=function(a){return arguments.length?(h=a,f):h},f.height=function(a){return arguments.length?(l=a,f):l},f.width=function(a){return arguments.length?(m=a,f):m},f.translate=function(a){return arguments.length?(n=a,f):n},g(f,i).accessor(c()).dataSelector(),f}}},{}],40:[function(a,b,c){\"use strict\";function d(a,b,c,d){a.select(\"path.upper\").attr(\"d\",b),a.select(\"path.middle\").attr(\"d\",c),a.select(\"path.lower\").attr(\"d\",d)}b.exports=function(a,b,c){return function(){function e(a){var b=g.dataSelector(a);b.entry.append(\"path\").attr(\"class\",\"upper\"),b.entry.append(\"path\").attr(\"class\",\"middle\"),b.entry.append(\"path\").attr(\"class\",\"lower\"),e.refresh(a)}function f(){h.init(g.accessor.d,g.xScale,g.accessor.upper,g.yScale),i.init(g.accessor.d,g.xScale,g.accessor.middle,g.yScale),j.init(g.accessor.d,g.xScale,g.accessor.lower,g.yScale)}var g={},h=b.pathLine(),i=b.pathLine(),j=b.pathLine();return e.refresh=function(a){d(g.dataSelector.select(a),h,i,j)},c(e,g).plot(a(),f).dataSelector(c.dataMapper.array),f(),e}}},{}],41:[function(a,b,c){\"use strict\";b.exports=function(a,b,c,d,e){return function(){function a(b){var c=k.dataSelector(b);d.appendPathsUpDownEqual(c.selection,k.accessor,[\"candle\",\"body\"]),d.appendPathsUpDownEqual(c.selection,k.accessor,[\"candle\",\"wick\"]),a.refresh(b)}function b(){h=d.joinPath(f),i=d.joinPath(g),j=d.scaledStrokeWidth(k.xScale,1,4)}function f(){var a=k.accessor,b=k.xScale,c=k.yScale,d=k.width(b);return function(e){var f=c(a.o(e)),g=c(a.c(e)),h=b(a.d(e))-d/2,i=\"M \"+h+\" \"+f+\" l \"+d+\" 0\";return f!=g&&(i+=\" L \"+(h+d)+\" \"+g+\" l \"+-d+\" 0 L \"+h+\" \"+f),i}}function g(){var a=k.accessor,b=k.xScale,c=k.yScale,d=k.width(b);return function(e){var f=c(a.o(e)),g=c(a.c(e)),h=b(a.d(e)),i=h-d/2,j=\"M \"+h+\" \"+c(a.h(e))+\" L \"+h+\" \"+Math.min(f,g);return f==g&&(j+=\" M \"+i+\" \"+f+\" l \"+d+\" 0\"),j+\" M \"+h+\" \"+Math.max(f,g)+\" L \"+h+\" \"+c(a.l(e))}}var h,i,j,k={};return a.refresh=function(a){a.selectAll(\"path.candle.body\").attr(\"d\",h),a.selectAll(\"path.candle.wick\").attr(\"d\",i).style(\"stroke-width\",j)},e(a,k).plot(c(),b).width(b).dataSelector(e.dataMapper.array),b(),a}}},{}],42:[function(a,b,c){\"use strict\";b.exports=function(a,b,c,d,e,f,g){return function(){function a(b){var c=s.dataSelector(b);c.entry.append(\"path\").attr(\"class\",\"horizontal wire\"),c.entry.append(\"path\").attr(\"class\",\"vertical wire\"),c.entry.append(\"g\").attr(\"class\",\"axisannotation x\").call(u),c.entry.append(\"g\").attr(\"class\",\"axisannotation y\").call(v),b.selectAll(\"rect\").data([void 0]).enter().append(\"rect\").style(\"fill\",\"none\").style(\"pointer-events\",\"all\"),a.refresh(b)}function b(a,b,d,e,f){return function(){a.node().__coord__=c(this),h(a,b,d,e,f)}}function h(a,b,c,d,e){var f=a.node().__coord__;if(void 0!==f){var g=a.datum(),h=s.xScale.invert(f[0]),i=s.yScale.invert(f[1]),j=null!==h&&null!==i&&(s.accessor.xv(g)!==h||s.accessor.yv(g)!==i);s.accessor.xv(g,h),s.accessor.yv(g,i),j&&t.call(\"move\",a.node(),g)}b.attr(\"d\",o),c.attr(\"d\",p),d.call(u.refresh),e.call(v.refresh),a.attr(\"display\",n)}function i(){return o=k(),p=j(),u.accessor(s.accessor.xv).scale(s.xScale),v.accessor(s.accessor.yv).scale(s.yScale),a}function j(){var a=r||s.xScale.range();return function(b){if(null===s.accessor.yv(b))return null;var c=s.yScale(s.accessor.yv(b));return isNaN(c)?null:\"M \"+a[0]+\" \"+c+\" L \"+a[a.length-1]+\" \"+c}}function k(){var a=q||s.yScale.range();return function(b){if(null===s.accessor.xv(b))return null;var c=s.xScale(s.accessor.xv(b)),d=s.xScale.range();return c<Math.min(d[0],d[d.length-1])||c>Math.max(d[0],d[d.length-1])?null:\"M \"+c+\" \"+a[0]+\" L \"+c+\" \"+a[a.length-1]}}function l(a){return a=a||{},s.accessor.xv(a,null),s.accessor.yv(a,null),a}function m(a){return void 0===a||null===s.accessor.xv(a)||null===s.accessor.yv(a)}function n(a){return m(a)?\"none\":null}var o,p,q,r,s={},t=d(\"enter\",\"out\",\"move\"),u=f.plotComposer().scope(\"composed-annotation\").plotScale(function(a){return a.axis().scale()}),v=f.plotComposer().scope(\"composed-annotation\").plotScale(function(a){return a.axis().scale()});return a.refresh=function(a){var c=s.xScale.range(),d=s.yScale.range(),e=s.dataSelector.select(a),f=e.select(\"path.vertical\"),g=e.select(\"path.horizontal\"),i=e.select(\"g.axisannotation.x\"),j=e.select(\"g.axisannotation.y\");a.selectAll(\"rect\").attr(\"x\",Math.min.apply(null,c)).attr(\"y\",Math.min.apply(null,d)).attr(\"height\",Math.abs(d[d.length-1]-d[0])).attr(\"width\",Math.abs(c[c.length-1]-c[0])).on(\"mouseenter\",function(){\n            t.call(\"enter\",this)}).on(\"mouseout\",function(){t.call(\"out\",this),delete e.node().__coord__,l(e.datum()),h(e,f,g,i,j)}).on(\"mousemove\",b(e,f,g,i,j)),h(e,f,g,i,j)},a.xAnnotation=function(a){return arguments.length?(u.plots(a instanceof Array?a:[a]),i()):u.plots()},a.yAnnotation=function(a){return arguments.length?(v.plots(a instanceof Array?a:[a]),i()):v.plots()},a.verticalWireRange=function(a){return arguments.length?(q=a,i()):q},a.horizontalWireRange=function(a){return arguments.length?(r=a,i()):r},g(a,s).plot(e(),i).dataSelector(function(a){return m(a)?[l()]:[a]}).on(t),s.dataSelector.scope(\"crosshair\"),i()}}},{}],43:[function(a,b,c){\"use strict\";function d(a){return function(b){return-a(b)}}function e(){return Math.random().toString(36).substr(2,9)}b.exports=function(a,b,c,f,g){return function(){function h(a){var b=m.dataSelector(a),c=\"kumoclipup-\"+e(),d=\"kumoclipdown-\"+e();b.entry.append(\"clipPath\").attr(\"id\",d).attr(\"class\",\"kumoclipdown\").append(\"path\"),b.entry.append(\"clipPath\").attr(\"id\",c).attr(\"class\",\"kumoclipup\").append(\"path\"),b.entry.append(\"path\").attr(\"class\",\"kumo down\").attr(\"clip-path\",\"url(#\"+d+\")\"),b.entry.append(\"path\").attr(\"class\",\"kumo up\").attr(\"clip-path\",\"url(#\"+c+\")\"),b.entry.append(\"path\").attr(\"class\",\"senkouspanb\"),b.entry.append(\"path\").attr(\"class\",\"senkouspana\"),b.entry.append(\"path\").attr(\"class\",\"chikouspan\"),b.entry.append(\"path\").attr(\"class\",\"kijunsen\"),b.entry.append(\"path\").attr(\"class\",\"tenkansen\"),h.refresh(a)}function i(a,b){a.select(\".kumoclipdown path\").attr(\"d\",n.y1(b.range()[0])),a.select(\".kumoclipup path\").attr(\"d\",n.y1(b.range()[1])),a.select(\"path.kumo.down\").attr(\"d\",o),a.select(\"path.kumo.up\").attr(\"d\",o),a.select(\"path.senkouspanb\").attr(\"d\",q),a.select(\"path.senkouspana\").attr(\"d\",p),a.select(\"path.chikouspan\").attr(\"d\",r),a.select(\"path.kijunsen\").attr(\"d\",t),a.select(\"path.tenkansen\").attr(\"d\",s)}function j(){p.init(m.accessor.d,m.xScale,m.accessor.sa,m.yScale,m.accessor.pks),q.init(m.accessor.d,m.xScale,m.accessor.sb,m.yScale,m.accessor.pks),r.init(m.accessor.d,m.xScale,m.accessor.c,m.yScale,d(m.accessor.pks)),s.init(m.accessor.d,m.xScale,m.accessor.ts,m.yScale),t.init(m.accessor.d,m.xScale,m.accessor.ks,m.yScale)}function k(){return a().curve(b).defined(function(a){return null!==m.accessor.sb(a)}).x(function(a){return m.xScale(m.accessor.d(a),m.accessor.pks(a))}).y0(function(a){return m.yScale(m.accessor.sb(a))})}function l(){return a().curve(b).defined(function(a){return null!==m.accessor.sa(a)&&null!==m.accessor.sb(a)}).x(function(a){return m.xScale(m.accessor.d(a),m.accessor.pks(a))}).y0(function(a){return m.yScale(m.accessor.sa(a))}).y1(function(a){return m.yScale(m.accessor.sb(a))})}var m={},n=k(),o=l(),p=f.pathLine(),q=f.pathLine(),r=f.pathLine(),s=f.pathLine(),t=f.pathLine();return h.refresh=function(a){i(m.dataSelector.select(a),m.yScale)},g(h,m).plot(c(),j).dataSelector(g.dataMapper.array),j(),h}}},{}],44:[function(a,b,c){\"use strict\";function d(){return d3.event}b.exports=function(b){var c=a(\"../scale\")(b),e=a(\"../accessor\")(),f=a(\"./plot\")(b.line,b.area,b.curveMonotoneX,b.select),g=a(\"../util\")().functor,h=a(\"./plotmixin\")(b.scaleLinear,g,c.financetime,f.dataSelector,f.barWidth),i=a(\"./candlestick\")(b.scaleLinear,b.extent,e.ohlc,f,h),j=a(\"./line\"),k=a(\"./axisannotation\")(b.axisTop,b.scaleLinear,e.value,f,h),l=a(\"../svg\")(b);return{tradearrow:a(\"./tradearrow\")(b.select,g,b.mouse,b.dispatch,e.trade,f,h,l.arrow),atr:j(e.value,f,h),atrtrailingstop:a(\"./atrtrailingstop\")(e.atrtrailingstop,f,h),axisannotation:k,candlestick:i,crosshair:a(\"./crosshair\")(b.select,d,b.mouse,b.dispatch,e.crosshair,f,h),ema:j(e.value,f,h),heikinashi:i,ichimoku:a(\"./ichimoku\")(b.area,b.curveMonotoneX,e.ichimoku,f,h),ohlc:a(\"./ohlc\")(b.scaleLinear,b.extent,e.ohlc,f,h),tick:a(\"./tick\")(b.scaleLinear,b.extent,e.tick,f,h),close:j(e.ohlc,f,h),volume:a(\"./volume\")(e.volume,f,h),rsi:a(\"./rsi\")(e.rsi,f,h),macd:a(\"./macd\")(e.macd,f,h),momentum:j(e.value,f,h,!0),moneyflow:j(e.value,f,h,!0),sma:j(e.value,f,h),supstance:a(\"./supstance\")(b.drag,d,b.select,b.dispatch,e.supstance,f,h),trendline:a(\"./trendline\")(b.drag,d,b.select,b.dispatch,e.trendline,f,h),wilderma:j(e.value,f,h),adx:a(\"./adx\")(e.adx,f,h),aroon:a(\"./aroon\")(e.aroon,f,h),stochastic:a(\"./stochastic\")(e.stochastic,f,h),williams:a(\"./williams\")(e.williams,f,h),bollinger:a(\"./bollinger\")(e.bollinger,f,h),vwap:j(e.value,f,h)}}},{\"../accessor\":8,\"../scale\":59,\"../svg\":62,\"../util\":64,\"./adx\":36,\"./aroon\":37,\"./atrtrailingstop\":38,\"./axisannotation\":39,\"./bollinger\":40,\"./candlestick\":41,\"./crosshair\":42,\"./ichimoku\":43,\"./line\":45,\"./macd\":46,\"./ohlc\":47,\"./plot\":48,\"./plotmixin\":49,\"./rsi\":50,\"./stochastic\":51,\"./supstance\":52,\"./tick\":53,\"./tradearrow\":54,\"./trendline\":55,\"./volume\":56,\"./williams\":57}],45:[function(a,b,c){\"use strict\";function d(a,b,c,d,e,f,g){a.select(\"path.line\").attr(\"d\",f),g&&a.select(\"path.zero\").attr(\"d\",e.horizontalPathLine(c,b.z,d))}b.exports=function(a,b,c,e){return e=e||!1,function(){function f(a){var b=h.dataSelector(a);b.entry.append(\"path\").attr(\"class\",\"line\"),e&&b.selection.append(\"path\").attr(\"class\",\"zero\"),f.refresh(a)}function g(){i.init(h.accessor.d,h.xScale,h.accessor,h.yScale)}var h={},i=b.pathLine();return f.refresh=function(a){d(h.dataSelector.select(a),h.accessor,h.xScale,h.yScale,b,i,e)},c(f,h).plot(a(),g).dataSelector(c.dataMapper.array),g(),f}}},{}],46:[function(a,b,c){\"use strict\";function d(a,b,c,d,e,f,g,h){a.select(\"path.difference\").attr(\"d\",f),a.select(\"path.zero\").attr(\"d\",e.horizontalPathLine(b.d,c,b.z,d)),a.select(\"path.macd\").attr(\"d\",g),a.select(\"path.signal\").attr(\"d\",h)}b.exports=function(a,b,c){return function(){function e(a){var b=i.dataSelector(a);b.selection.append(\"path\").attr(\"class\",\"difference\"),b.selection.append(\"path\").attr(\"class\",\"zero\"),b.selection.append(\"path\").attr(\"class\",\"macd\"),b.selection.append(\"path\").attr(\"class\",\"signal\"),e.refresh(a)}function f(){h=b.joinPath(g),j.init(i.accessor.d,i.xScale,i.accessor.m,i.yScale),k.init(i.accessor.d,i.xScale,i.accessor.s,i.yScale)}function g(){var a=i.accessor,b=i.xScale,c=i.yScale,d=i.width(b);return function(e){var f=c(0),g=c(a.dif(e))-f,h=b(a.d(e))-d/2;return\"M \"+h+\" \"+f+\" l 0 \"+g+\" l \"+d+\" 0 l 0 \"+-g}}var h,i={},j=b.pathLine(),k=b.pathLine();return e.refresh=function(a){d(i.dataSelector.select(a),i.accessor,i.xScale,i.yScale,b,h,j,k)},c(e,i).plot(a(),f).width(f).dataSelector(c.dataMapper.array),f(),e}}},{}],47:[function(a,b,c){\"use strict\";b.exports=function(a,b,c,d,e){return function(){function a(b){d.appendPathsUpDownEqual(i.dataSelector(b).selection,i.accessor,\"ohlc\"),a.refresh(b)}function b(){g=d.joinPath(f),h=d.scaledStrokeWidth(i.xScale,1,2)}function f(){var a=i.accessor,b=i.xScale,c=i.yScale,d=i.width(b);return function(e){var f=c(a.o(e)),g=c(a.c(e)),h=b(a.d(e)),i=h-d/2;return\"M \"+i+\" \"+f+\" l \"+d/2+\" 0 M \"+h+\" \"+c(a.h(e))+\" L \"+h+\" \"+c(a.l(e))+\" M \"+h+\" \"+g+\" l \"+d/2+\" 0\"}}var g,h,i={};return a.refresh=function(a){a.selectAll(\"path.ohlc\").attr(\"d\",g).style(\"stroke-width\",h)},e(a,i).plot(c(),b).width(b).dataSelector(e.dataMapper.array),b(),a}}},{}],48:[function(a,b,c){\"use strict\";b.exports=function(a,b,c,d){function e(){function b(a){return d(a)}var d=a().curve(c);return b.init=function(a,b,c,e,f){return d.defined(function(a){return null!==c(a)}).x(function(c){return b(a(c),void 0===f?f:f(c))}).y(function(a){return e(c(a))})},b.d3=function(){return d},b}function f(){function a(a){return d(a)}var d=b().curve(c);return a.init=function(a,b,c,e,f){return d.defined(function(a){return null!==c(a)}).x(function(c){return b(a(c))}).y0(function(a){return e(f)}).y1(function(a){return e(c(a))})},a.d3=function(){return d},a}function g(a){return{up:function(b){return a.o(b)<a.c(b)},down:function(b){return a.o(b)>a.c(b)},equal:function(b){return a.o(b)===a.c(b)}}}function h(a,b,c,d){var e=c instanceof Array?c:[c];d=d||g(b),Object.keys(d).forEach(function(b){j(a,d[b],e,b)})}function i(a,b,c){h(a,b,c,g(b))}function j(a,b,c,d){a.selectAll(\"path.\"+l(c,\".\")+\".\"+d).data(function(a){return[a.filter(b)]}).enter().append(\"path\").attr(\"class\",l(c,\" \")+\" \"+d)}function k(a){return void 0!==a.band?Math.max(a.band(),1):3}function l(a,b){if(a.length){for(var c=a[0],d=1;d<a.length;d++)c+=b+a[d];return c}}function m(){function a(b){var c=e.mapper(function(){return f.map(function(){return[]})})(b);c.selection.each(function(a,b){f[b](d(this))}),a.refresh(b)}var b,c,e=n(),f=[],g=function(a){return a.scale()};return a.refresh=function(a){e.select(a).data(function(a){var d=c(a);if(null===d||void 0===d)return f.map(function(){return[]});var e=b(d);return f.map(function(a){var c=g(a)===b?d:g(a).invert(e);return[{value:c}]})}).each(function(a,b){f[b](d(this))})},a.plots=function(b){return arguments.length?(f=b,a):f},a.scale=function(c){return arguments.length?(b=c,a):b},a.accessor=function(b){return arguments.length?(c=b,a):c},a.scope=function(b){return arguments.length?(e.scope(b),a):e.scope()},a.plotScale=function(b){return arguments.length?(g=b,a):g},a}var n=function(a){function b(d){var f=b.select(d).data(a,c),g=f.enter().append(\"g\").attr(\"class\",l(e,\" \"));return f.exit().remove(),{entry:g,selection:g.merge(f)}}var c,d,e=[\"data\"];return b.select=function(a){return a.selectAll(\"g.\"+l(e,\".\"))},b.mapper=function(c){return arguments.length?(a=c,b):a},b.scope=function(a){return arguments.length?(d=a,e=[\"data\",\"scope-\"+d],b):d},b.key=function(a){return arguments.length?(c=a,b):c},b};return n.mapper={unity:function(a){return a},array:function(a){return[a]}},{dataSelector:n,appendPathsGroupBy:h,appendPathsUpDownEqual:i,horizontalPathLine:function(a,b,c,d){return function(e){if(!e.length)return null;var f=e[0],g=e[e.length-1];return\"M \"+b(a(f))+\" \"+d(c(f))+\" L \"+b(a(g))+\" \"+d(c(g))}},pathLine:e,pathArea:f,barWidth:k,scaledStrokeWidth:function(a,b,c){return b=b||1,c=c||1,function(){return Math.min(b,k(a)/c)+\"px\"}},joinPath:function(a){return function(b){return l(b.map(a()),\" \")}},interaction:{mousedispatch:function(a){return function(b){return b.on(\"mouseenter\",function(b){d(this.parentNode).classed(\"mouseover\",!0),a.call(\"mouseenter\",this,b)}).on(\"mouseleave\",function(b){var c=d(this.parentNode);c.classed(\"dragging\")||(c.classed(\"mouseover\",!1),a.call(\"mouseout\",this,b))}).on(\"mousemove\",function(b){a.call(\"mousemove\",this,b)})}},dragStartEndDispatch:function(a,b){return a.on(\"start\",function(a){d(this.parentNode.parentNode).classed(\"dragging\",!0),b.call(\"dragstart\",this,a)}).on(\"end\",function(a){d(this.parentNode.parentNode).classed(\"dragging\",!1),b.call(\"dragend\",this,a)})}},plotComposer:m}}},{}],49:[function(a,b,c){\"use strict\";b.exports=function(a,b,c,d,e){var f=function(f,g){var h={};return h.dataSelector=function(a,b){return g.dataSelector=d(a).key(b),h},h.xScale=function(a){return g.xScale=c(),f.xScale=function(b){return arguments.length?(g.xScale=b,a&&a(),f):g.xScale},h},h.yScale=function(b){return g.yScale=a(),f.yScale=function(a){return arguments.length?(g.yScale=a,b&&b(),f):g.yScale},h},h.accessor=function(a,b){return g.accessor=a,f.accessor=function(a){return arguments.length?(g.accessor=a,b&&b(),f):g.accessor},h},h.width=function(a){return g.width=e,f.width=function(c){return arguments.length?(g.width=b(c),a&&a(),f):g.width},h},h.on=function(a,b){return f.on=function(c,d){return a.on(c,d),b&&b(),f},h},h.plot=function(a,b){return h.xScale(b).yScale(b).accessor(a,b)},h};return f.dataMapper=d.mapper,f}},{}],50:[function(a,b,c){\"use strict\";function d(a,b,c,d,e,f){a.select(\"path.overbought\").attr(\"d\",e.horizontalPathLine(b.d,c,b.ob,d)),a.select(\"path.middle\").attr(\"d\",e.horizontalPathLine(b.d,c,b.m,d)),a.select(\"path.oversold\").attr(\"d\",e.horizontalPathLine(b.d,c,b.os,d)),a.select(\"path.rsi\").attr(\"d\",f)}b.exports=function(a,b,c){return function(){function e(a){var b=g.dataSelector(a);b.entry.append(\"path\").attr(\"class\",\"overbought\"),b.entry.append(\"path\").attr(\"class\",\"middle\"),b.entry.append(\"path\").attr(\"class\",\"oversold\"),b.entry.append(\"path\").attr(\"class\",\"rsi\"),e.refresh(a)}function f(){h.init(g.accessor.d,g.xScale,g.accessor.r,g.yScale)}var g={},h=b.pathLine();return e.refresh=function(a){d(g.dataSelector.select(a),g.accessor,g.xScale,g.yScale,b,h)},c(e,g).plot(a(),f).dataSelector(c.dataMapper.array),f(),e}}},{}],51:[function(a,b,c){\"use strict\";function d(a,b,c,d,e,f,g){a.select(\"path.overbought\").attr(\"d\",e.horizontalPathLine(b.d,c,b.ob,d)),a.select(\"path.oversold\").attr(\"d\",e.horizontalPathLine(b.d,c,b.os,d)),a.select(\"path.stochastic.up\").attr(\"d\",f),a.select(\"path.stochastic.down\").attr(\"d\",g)}b.exports=function(a,b,c){return function(){function e(a){var b=g.dataSelector(a);b.entry.append(\"path\").attr(\"class\",\"overbought\"),b.entry.append(\"path\").attr(\"class\",\"oversold\"),b.entry.append(\"path\").attr(\"class\",\"stochastic up\"),b.entry.append(\"path\").attr(\"class\",\"stochastic down\"),e.refresh(a)}function f(){h.init(g.accessor.d,g.xScale,g.accessor.k,g.yScale),i.init(g.accessor.d,g.xScale,g.accessor.sd,g.yScale)}var g={},h=b.pathLine(),i=b.pathLine();return e.refresh=function(a){d(g.dataSelector.select(a),g.accessor,g.xScale,g.yScale,b,h,i)},c(e,g).plot(a(),f).dataSelector(c.dataMapper.array),f(),e}}},{}],52:[function(a,b,c){\"use strict\";function d(a,b,c,d,f){a.select(\".supstance path\").attr(\"d\",e(b,c,d)),a.select(\".interaction path\").attr(\"d\",e(b,c,d)),a.select(\".axisannotation.y\").call(f.refresh)}function e(a,b,c){return function(d){var e;return f(a)?(e=[a.s(d),a.e(d)],e[0]=void 0!==e[0]?b(e[0]):b.range()[0],e[1]=void 0!==e[1]?b(e[1]):b.range()[1]):e=b.range(),\"M \"+e[0]+\" \"+c(a(d))+\" L \"+e[e.length-1]+\" \"+c(a(d))}}function f(a){return void 0!==a.s&&void 0!==a.e}b.exports=function(a,b,c,e,f,g,h){function i(){function a(b){var d=c.dataSelector(b);d.entry.append(\"g\").attr(\"class\",\"supstance\").append(\"path\"),d.entry.append(\"g\").attr(\"class\",\"axisannotation y\").call(k);var e=d.entry.append(\"g\").attr(\"class\",\"interaction\").style(\"opacity\",0).style(\"fill\",\"none\").call(g.interaction.mousedispatch(i));e.append(\"path\").style(\"stroke-width\",\"16px\"),a.refresh(b)}function b(){return k.accessor(c.accessor.v).scale(c.yScale),a}var c={},i=e(\"mouseenter\",\"mouseout\",\"mousemove\",\"drag\",\"dragstart\",\"dragend\"),k=g.plotComposer().scope(\"composed-annotation\").plotScale(function(a){return a.axis().scale()});return a.refresh=function(a){d(c.dataSelector.select(a),c.accessor,c.xScale,c.yScale,k)},a.drag=function(a){a.selectAll(\".interaction path\").call(j(i,c.accessor,c.xScale,c.yScale,k))},a.annotation=function(b){return arguments.length?(k.plots(b instanceof Array?b:[b]),a):k.plots()},h(a,c).dataSelector(h.dataMapper.unity).plot(f(),b).on(i),c.dataSelector.scope(\"supstance\"),b()}function j(e,f,h,i,j){var k=a().subject(function(a){return{x:0,y:i(f(a))}}).on(\"drag\",function(a){var g=i.invert(b().y),k=c(this.parentNode.parentNode);f.v(a,g),d(k,f,h,i,j),e.call(\"drag\",this,a)});return g.interaction.dragStartEndDispatch(k,e)}return i}},{}],53:[function(a,b,c){\"use strict\";b.exports=function(a,b,c,d,e){return function(){function a(b){i.dataSelector(b).entry.append(\"path\").attr(\"class\",\"tick\"),a.refresh(b)}function b(){g=d.joinPath(f),h=d.scaledStrokeWidth(i.xScale,1,2)}function f(){var a=i.accessor,b=i.xScale,c=i.yScale,d=i.width(b);return function(e){var f=c(a.h(e)),g=c(a.l(e)),h=b(a.d(e)),i=h-d/2;return\"M \"+i+\" \"+f+\" l \"+d+\" 0 M \"+h+\" \"+f+\" L \"+h+\" \"+g+\" M \"+i+\" \"+g+\" l \"+d+\" 0\"}}var g,h,i={};return a.refresh=function(a){i.dataSelector.select(a).select(\"path.tick\").attr(\"d\",g).style(\"stroke-width\",h)},e(a,i).plot(c(),b).width(b).dataSelector(e.dataMapper.array),b(),a}}},{}],54:[function(a,b,c){\"use strict\";function d(a,b){Object.keys(b).forEach(function(c){a.classed(c,b[c])})}b.exports=function(a,b,c,e,f,g,h,i){return function(){function j(b){var e=o.dataSelector(b),f=m(b.datum());g.appendPathsGroupBy(e.selection,o.accessor,\"tradearrow\",f),e.entry.append(\"path\").attr(\"class\",\"highlight\").style(\"pointer-events\",\"none\"),e.selection.selectAll(\"path.tradearrow\").on(\"mouseenter\",function(b){var e=l(b,c(this)[0]);a(this.parentNode).select(\"path.highlight\").datum(e.d).attr(\"d\",r).call(d,f),p.call(\"mouseenter\",this,e.d,e.i)}).on(\"mouseout\",function(b){a(this.parentNode).selectAll(\"path.highlight\").datum([]).attr(\"d\",null).attr(\"class\",\"highlight\");var d=l(b,c(this)[0]);p.call(\"mouseout\",this,d.d,d.i)}),j.refresh(b)}function k(){return r.x(function(a){return o.xScale(o.accessor.d(a))}).y(q),n=g.joinPath(function(){return r}),j}function l(a,b){return a.map(function(a,b){return{d:a,i:b,x:o.xScale(o.accessor.d(a))}}).reduce(function(a,c){return Math.abs(a.x-b)<Math.abs(c.x-b)?a:c})}function m(a){return a.map(function(a){return o.accessor.t(a)}).reduce(function(a,b){return void 0===a[b]&&(a[b]=function(a){return b===o.accessor.t(a)}),a},{})}var n,o={},p=e(\"mouseenter\",\"mouseout\"),q=function(a){return o.yScale(o.accessor.p(a))},r=i().orient(function(a){return\"buy\"===o.accessor.t(a)?\"up\":\"down\"});return j.refresh=function(a){a.selectAll(\"path.tradearrow\").attr(\"d\",n)},j.orient=function(a){return arguments.length?(r.orient(a),k()):r.orient()},j.y=function(a){return arguments.length?(q=b(a),k()):q},j.arrow=function(){return r},h(j,o).plot(f(),k).on(p).dataSelector(h.dataMapper.array),k(),j}}},{}],55:[function(a,b,c){\"use strict\";function d(a,b,c,d){a.selectAll(\"path.body\").attr(\"d\",e(b,c,d)),a.selectAll(\"circle.start\").attr(\"cx\",f(b.sd,c)).attr(\"cy\",g(b.sv,d)),a.selectAll(\"circle.end\").attr(\"cx\",f(b.ed,c)).attr(\"cy\",g(b.ev,d))}function e(a,b,c){return function(d){return\"M \"+b(a.sd(d))+\" \"+c(a.sv(d))+\" L \"+b(a.ed(d))+\" \"+c(a.ev(d))}}function f(a,b){return function(c){return b(a(c))}}function g(a,b){return function(c){return b(a(c))}}b.exports=function(a,b,c,e,f,g,h){function i(){function a(d){var e=b.dataSelector(d),f=e.entry.append(\"g\").attr(\"class\",\"trendline\");f.append(\"path\").attr(\"class\",\"body\"),f.append(\"circle\").attr(\"class\",\"start\").attr(\"r\",1),f.append(\"circle\").attr(\"class\",\"end\").attr(\"r\",1);var h=e.entry.append(\"g\").attr(\"class\",\"interaction\").style(\"opacity\",0).style(\"fill\",\"none\").call(g.interaction.mousedispatch(c));h.append(\"path\").attr(\"class\",\"body\").style(\"stroke-width\",\"16px\"),h.append(\"circle\").attr(\"class\",\"start\").attr(\"r\",8),h.append(\"circle\").attr(\"class\",\"end\").attr(\"r\",8),a.refresh(d)}var b={},c=e(\"mouseenter\",\"mouseout\",\"mousemove\",\"drag\",\"dragstart\",\"dragend\");return a.refresh=function(a){d(b.dataSelector.select(a),b.accessor,b.xScale,b.yScale)},a.drag=function(a){a.selectAll(\".interaction circle.start\").call(j(c,b.accessor,b.accessor.sd,b.xScale,b.accessor.sv,b.yScale)),a.selectAll(\".interaction circle.end\").call(j(c,b.accessor,b.accessor.ed,b.xScale,b.accessor.ev,b.yScale)),a.selectAll(\".interaction path.body\").call(k(c,b.accessor,b.xScale,b.yScale))},h(a,b).dataSelector(h.dataMapper.unity).plot(f()).on(c),a}function j(e,f,h,i,j,k){var m=a();return m.subject(function(a){return{x:i(h(a)),y:k(j(a))}}).on(\"drag\",function(a){l(h,i,b().x,j,k,b().y,a),d(c(this.parentNode.parentNode.parentNode),f,i,k),e.call(\"drag\",this,a)}),g.interaction.dragStartEndDispatch(m,e)}function k(e,f,h,i){var j={},k=a();return k.subject(function(a){return j.start={date:h(f.sd(a)),value:i(f.sv(a))},j.end={date:h(f.ed(a)),value:i(f.ev(a))},{x:0,y:0}}).on(\"drag\",function(a){l(f.sd,h,b().x+j.start.date,f.sv,i,b().y+j.start.value,a),l(f.ed,h,b().x+j.end.date,f.ev,i,b().y+j.end.value,a),d(c(this.parentNode.parentNode.parentNode),f,h,i),e.call(\"drag\",this,a)}),g.interaction.dragStartEndDispatch(k,e)}function l(a,b,c,d,e,f,g){var h=b.invert(c);null!==h&&void 0!==h&&a(g,h),d(g,e.invert(f))}return i}},{}],56:[function(a,b,c){\"use strict\";b.exports=function(a,b,c){return function(){function d(a){var c=i.dataSelector(a);f()?b.appendPathsUpDownEqual(c.selection,i.accessor,\"volume\"):c.entry.append(\"path\").attr(\"class\",\"volume\"),d.refresh(a)}function e(){h=b.joinPath(g)}function f(){return i.accessor.o&&i.accessor.c}function g(){var a=i.accessor,b=i.xScale,c=i.yScale,d=i.width(b);return function(e){var f=a.v(e);if(isNaN(f))return null;var g=c(0),h=c(f)-g,i=b(a.d(e))-d/2;return\"M \"+i+\" \"+g+\" l 0 \"+h+\" l \"+d+\" 0 l 0 \"+-h}}var h,i={};return d.refresh=function(a){f()?a.selectAll(\"path.volume\").attr(\"d\",h):i.dataSelector.select(a).select(\"path.volume\").attr(\"d\",h)},c(d,i).plot(a(),e).width(e).dataSelector(c.dataMapper.array),e(),d}}},{}],57:[function(a,b,c){\"use strict\";b.exports=function(a,b,c){return function(){function d(a){f.dataSelector(a).entry.append(\"path\").attr(\"class\",\"williams up\"),d.refresh(a)}function e(){g.init(f.accessor.d,f.xScale,f.accessor.w,f.yScale)}var f={},g=b.pathLine();return d.refresh=function(a){f.dataSelector.select(a).select(\"path.williams.up\").attr(\"d\",g)},c(d,f).plot(a(),e).dataSelector(c.dataMapper.array),e(),d}}},{}],58:[function(a,b,c){\"use strict\";function d(a){return function(b){for(var c=0;c<a.length;c++)if(a[c][1](b))return a[c][0](b)}}b.exports=function(a,b,c,e,f,g){function h(b,d,n,r,s,t,u,v,w){function x(a,b){var d=C[a instanceof Date?a.getTime():+a];return b=b||0,void 0===d&&(d=r[0]>a?-1:c(r,a)),n(d+b)}function y(){return E=i(n,r,s),x}function z(){C=k(r)}function A(){return z(),n.domain([0,r.length-1]),y(),n.domain(n.range().map(f(t,E)).map(n.invert)),u.domain=n.domain(),y()}function B(a,e,f){if(1==a.length)return d;var g=a[a.length-1]-a[0],h=g/o<1,i=h?b.intraday:b.daily,k=h?q:p,l=Math.min(Math.round(j(a,e)*f),f),m=g/l,n=c(k,m);return n==i.length?i[n-1]:n?i[m/k[n-1]<k[n]/m?n-1:n]:i[n]}var C,D={tickFormat:b.daily[b.daily.length-1][2]},E=3;return n=n||a(),r=r||[new Date(0),new Date(1)],s=void 0===s?.2:s,t=void 0===t?.65:t,u=u||{domain:n.domain()},v=v||!1,w=w||g(n,y,u),x.invert=function(a){var b=r[x.invertToIndex(a)];return b?b:null},x.invertToIndex=function(a){return Math.round(n.invert(a))},x.domain=function(a){if(!arguments.length){var b=n.domain();return b[0]<0&&b[b.length-1]<0?[]:(b=[Math.max(Math.ceil(b[0]),0),Math.min(Math.floor(b[b.length-1]),r.length-1)],r.slice(b[0],b[b.length-1]+1))}return r=a,A()},x.copy=function(){return h(b,d,n.copy(),r,s,t,u,v,w)},x.band=function(){return E},x.outerPadding=function(a){return arguments.length?(t=a,A()):t},x.padding=function(a){return arguments.length?(s=a,A()):s},x.zoomable=function(){return w},x.ticks=function(a,b){var c=x.domain(),d=n.domain();if(!c.length)return[];var e=void 0===a?B(c,d,10):\"number\"==typeof a?B(c,d,a):null;D.tickFormat=e?e[2]:B(c,d,10)[2],e&&(a=e[0],b=e[1]);var f=a.every(b).range(c[0],+c[c.length-1]+1);return f.map(l(c,v)).reduce(m,[])},x.closestTicks=function(a){return arguments.length?(v=a,x):v},x.tickFormat=function(){return function(a){return D.tickFormat(a)}},e(x,n,y,\"range\"),z(),y()}function i(a,b,c){return Math.abs(a(b.length-1)-a(0))/Math.max(1,b.length-1)*(1-c)}function j(a,b){return a.length/(b[b.length-1]-b[0])}function k(a){var b={};return a.forEach(function(a,c){b[+a]=c}),b}function l(a,b){var d=k(a);return function(e){var f=d[+e];if(void 0!==f)return a[f];var g=c(a,e);return b&&g>0&&+e-+a[g-1]<+a[g]-+e&&g--,a[g]}}function m(a,b){return 0!==a.length&&a[a.length-1]===b||a.push(b),a}function n(){return h({daily:z,intraday:A},u)}var o=864e5,p=[o,6048e5,2592e6,7776e6,31536e6],q=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5],r=b.timeFormat(\"%b %e\"),s=d([[b.timeFormat(\"%b %Y\"),function(a){return a.getMonth()}],[b.timeFormat(\"%Y\"),function(){return!0}]]),t=d([[b.timeFormat(\":%S\"),function(a){return a.getSeconds()}],[b.timeFormat(\"%I:%M\"),function(a){return a.getMinutes()}],[b.timeFormat(\"%I %p\"),function(){return!0}]]),u=[b.timeSecond,1,d([[b.timeFormat(\":%S\"),function(a){return a.getSeconds()}],[b.timeFormat(\"%I:%M\"),function(a){return a.getMinutes()}],[b.timeFormat(\"%I %p\"),function(a){return a.getHours()}],[b.timeFormat(\"%b %e\"),function(){return!0}]])],v=b.utcFormat(\"%b %e\"),w=d([[b.utcFormat(\"%b %Y\"),function(a){return a.getUTCMonth()}],[b.utcFormat(\"%Y\"),function(){return!0}]]),x=d([[b.utcFormat(\":%S\"),function(a){return a.getUTCSeconds()}],[b.utcFormat(\"%I:%M\"),function(a){return a.getUTCMinutes()}],[b.utcFormat(\"%I %p\"),function(){return!0}]]),y=[b.timeSecond,1,d([[b.utcFormat(\":%S\"),function(a){return a.getUTCSeconds()}],[b.utcFormat(\"%I:%M\"),function(a){return a.getUTCMinutes()}],[b.utcFormat(\"%I %p\"),function(a){return a.getUTCHours()}],[b.utcFormat(\"%b %e\"),function(){return!0}]])],z=[[b.timeDay,1,r],[b.timeMonday,1,r],[b.timeMonth,1,s],[b.timeMonth,3,s],[b.timeYear,1,s]],A=[[b.timeSecond,1,t],[b.timeSecond,5,t],[b.timeSecond,15,t],[b.timeSecond,30,t],[b.timeMinute,1,t],[b.timeMinute,5,t],[b.timeMinute,15,t],[b.timeMinute,30,t],[b.timeHour,1,t],[b.timeHour,3,t],[b.timeHour,6,t],[b.timeHour,12,t],[b.timeDay,1,r]],B=[[b.utcDay,1,v],[b.utcMonday,1,v],[b.utcMonth,1,w],[b.utcMonth,3,w],[b.utcYear,1,w]],C=[[b.utcSecond,1,x],[b.utcSecond,5,x],[b.utcSecond,15,x],[b.utcSecond,30,x],[b.utcMinute,1,x],[b.utcMinute,5,x],[b.utcMinute,15,x],[b.utcMinute,30,x],[b.utcHour,1,x],[b.utcHour,3,x],[b.utcHour,6,x],[b.utcHour,12,x],[b.utcDay,1,v]];return n.utc=function(){return h({daily:B,intraday:C},y)},n}},{}],59:[function(a,b,c){\"use strict\";function d(a,b,c,d){return b.length>0?a.extent(b,c).map(f(d)):[]}function e(a,b,c,e){return a.scaleLinear().domain(d(a,b,c,e)).range([1,0])}function f(a,b){return a=a||0,function(c,d,e){if(e.length>2)throw\"array.length > 2 unsupported. array.length = \"+e.length;return b=b||e[e.length-1]-e[0],c+(2*d-1)*b*a}}function g(a,b){return a.map(b).reduce(function(a,b){return a.concat(b)}).filter(function(a){return null!==a})}b.exports=function(b){var c=a(\"./zoomable\")(),d=a(\"../util\")(),h=a(\"../accessor\")(),i=a(\"./financetime\")(b.scaleLinear,b,b.bisect,d.rebindCallback,f,c);return{financetime:i,analysis:{supstance:function(a,c){return b.scaleLinear()},trendline:function(a,c){return b.scaleLinear()}},plot:{time:function(a,b){return b=b||h.value(),i().domain(a.map(b.d))},atr:function(a,c){return c=c||h.value(),e(b,a,c,.04)},ichimoku:function(a,c){c=c||h.ichimoku();var d=g(a,function(b,d){var e=a[d+c.pks(b)],f=a[d-c.pks(b)];return[c.ts(b),c.ks(b),f?c.sa(f):null,f?c.sb(f):null,e?c.c(e):null]});return b.scaleLinear().domain(b.extent(d).map(f(.02))).range([1,0])},percent:function(a,b){var c=a.domain();return b=b||c[0],a.copy().domain([c[0],c[c.length-1]].map(function(a){return(a-b)/b}))},ohlc:function(a,c){return c=c||h.ohlc(),b.scaleLinear().domain([b.min(a.map(c.low())),b.max(a.map(c.high()))].map(f(.02))).range([1,0])},volume:function(a,c){return c=c||h.ohlc().v,b.scaleLinear().domain([0,1.15*b.max(a.map(c))]).range([1,0])},atrtrailingstop:function(a,c){c=c||h.atrtrailingstop();var d=g(a,function(a){return[c.up(a),c.dn(a)]});return b.scaleLinear().domain(b.extent(d).map(f(.04))).range([1,0])},rsi:function(){return b.scaleLinear().domain([0,100]).range([1,0])},momentum:function(a,c){return c=c||h.value(),e(b,a,c,.04)},moneyflow:function(a,c){return c=c||h.value(),e(b,a,c,.04)},macd:function(a,c){return c=c||h.macd(),e(b,a,c,.04)},movingaverage:function(a,c){return c=c||h.value(),e(b,a,c)},adx:function(){return b.scaleLinear().domain([0,100]).range([1,0])},aroon:function(){return b.scaleLinear().domain([-100,100]).range([1,0])},stochastic:function(){return b.scaleLinear().domain([0,100]).range([1,0])},williams:function(){return b.scaleLinear().domain([0,100]).range([1,0])},bollinger:function(a,c){return c=c||h.bollinger(),b.scaleLinear().domain([b.min(a.map(function(a){return c.lower(a)})),b.max(a.map(function(a){return c.upper(a)}))].map(f(.02))).range([1,0])}},position:{}}}},{\"../accessor\":8,\"../util\":64,\"./financetime\":58,\"./zoomable\":60}],60:[function(a,b,c){\"use strict\";b.exports=function(){function a(b,c,d,e){function f(a){return b.apply(b,arguments)}return e=void 0===e||e,f.invert=b.invert,f.domain=function(a){return arguments.length?(e?b.domain([Math.max(d.domain[0],a[0]),Math.min(d.domain[1],a[1])]):b.domain(a),c&&c(),f):b.domain()},f.range=function(a){if(!arguments.length)return b.range();throw\"zoomable is a read only range. Use this scale for zooming only\"},f.copy=function(){return a(b.copy(),c,d,e)},f.clamp=function(a){return arguments.length?(e=a,f):e},f}return a}},{}],61:[function(a,b,c){\"use strict\";b.exports=function(a){return function(){function b(a,b){var i,j=c(a,b),k=d(a,b),l=e(a,b),m=f(a,b),n=g(a,b),o=h(a,b),p=\"left\"===n||\"up\"===n?1:-1,q=l/3,r=l/2,s=o?m/2:m;switch(i=\"M \"+j+\" \"+k,n){case\"up\":case\"down\":i+=\" l \"+-r+\" \"+p*s+\" l \"+q+\" 0\",o&&(i+=\" l 0 \"+p*s),i+=\" l \"+q+\" 0\",o&&(i+=\" l 0 \"+-p*s),i+=\" l \"+q+\" 0\";break;case\"left\":case\"right\":i+=\" l \"+p*s+\" \"+-r+\" l 0 \"+q,o&&(i+=\" l \"+p*s+\" 0\"),i+=\" l 0 \"+q,o&&(i+=\" l \"+-p*s+\" 0\"),i+=\" l 0 \"+q;break;default:throw\"Unsupported arrow.orient() = \"+g}return i+\" z\"}var c=a(0),d=a(0),e=a(12),f=a(15),g=a(\"up\"),h=a(!0);return b.x=function(d){return arguments.length?(c=a(d),b):c},b.y=function(c){return arguments.length?(d=a(c),b):d},b.height=function(c){return arguments.length?(f=a(c),b):f},b.width=function(c){return arguments.length?(e=a(c),b):e},b.orient=function(c){return arguments.length?(g=a(c),b):g},b.tail=function(c){return arguments.length?(h=a(c),b):h},b}}},{}],62:[function(a,b,c){\"use strict\";b.exports=function(b){return{arrow:a(\"./arrow\")(a(\"../util\")().functor)}}},{\"../util\":64,\"./arrow\":61}],63:[function(a,b,c){\"use strict\";var d;if(\"undefined\"!=typeof window)d=window.d3;else{if(\"object\"!=typeof b)throw\"Unsupported runtime environment: Could not find d3. Ensure defined globally on window, or available as dependency.\";d=a(\"d3\")}b.exports=function(b){return{version:a(\"../build/version\"),accessor:a(\"./accessor\")(),indicator:a(\"./indicator\")(b),plot:a(\"./plot\")(b),scale:a(\"./scale\")(b),svg:a(\"./svg\")(b)}}(d)},{\"../build/version\":1,\"./accessor\":8,\"./indicator\":28,\"./plot\":44,\"./scale\":59,\"./svg\":62,d3:\"d3\"}],64:[function(a,b,c){\"use strict\";function d(a,b,c){for(var d,f=2,g=arguments.length;++f<g;)a[d=arguments[f]]=e(a,b,b[d],c);return a}function e(a,b,c,d){return function(){var e=c.apply(b,arguments);return d&&e===b&&d(),e===b?a:e}}b.exports=function(){return{rebindCallback:d,rebind:function(a,b){var c=Array.prototype.slice.call(arguments,0);return c.splice(2,0,void 0),d.apply(this,c)},functor:function(a){return\"function\"==typeof a?a:function(){return a}}}}},{}]},{},[63])(63)});\n</script>\n<script>\n    var withData = function (data, trades) {\n        var dim = {\n            width: 1280, height: 520,\n            margin: { top: 20, right: 50, bottom: 20, left: 50 },\n            ohlc: { height: 450 }\n        };\n        dim.plot = {\n            width: dim.width - dim.margin.left - dim.margin.right,\n            height: dim.height - dim.margin.top - dim.margin.bottom\n        };\n\n        var yInit, yPercentInit, zoomableInit;\n\n        var x = techan.scale.financetime()\n            .range([0, dim.plot.width]);\n\n        var y = d3.scaleLinear()\n            .range([dim.ohlc.height, 0]);\n\n        var zoom = d3.zoom()\n            .on(\"zoom\", zoomed);\n\n        var yPercent = y.copy();   // Same as y at this stage, will get a different domain later\n\n        var yVolume = d3.scaleLinear()\n            .range([y(0), y(1)]);\n\n        var candlestick = techan.plot.candlestick()\n            .xScale(x)\n            .yScale(y);\n\n        var tradearrow = techan.plot.tradearrow()\n            .xScale(x)\n            .yScale(y)\n            .y(function(d) {\n                // Display the buy and sell arrows a bit above and below the price, so the price is still visible\n                if(d.type === 'buy') return y(d.price)+5;\n                if(d.type === 'sell') return y(d.price)-5;\n                else return y(d.price);\n            });\n\n        var ema2 = techan.plot.ema()\n            .xScale(x)\n            .yScale(y);\n\n        var volume = techan.plot.volume()\n            .accessor(candlestick.accessor())   // Set the accessor to a ohlc accessor so we get highlighted bars\n            .xScale(x)\n            .yScale(yVolume);\n\n        var xAxis = d3.axisBottom(x);\n\n        var timeAnnotation = techan.plot.axisannotation()\n            .axis(xAxis)\n            .orient('bottom')\n            .format(d3.timeFormat('%c'))\n            .width(140)\n            .translate([0, dim.plot.height]);\n\n        var yAxis = d3.axisRight(y);\n\n        var ohlcAnnotation = techan.plot.axisannotation()\n            .axis(yAxis)\n            .orient('right')\n            .format(d3.format(',.8f'))\n            .translate([x(1), 0]);\n\n        var percentAxis = d3.axisLeft(yPercent)\n            .tickFormat(d3.format('+.1%'));\n\n        var percentAnnotation = techan.plot.axisannotation()\n            .axis(percentAxis)\n            .orient('left');\n\n        var volumeAxis = d3.axisRight(yVolume)\n            .ticks(3)\n            .tickFormat(d3.format(\",.3s\"));\n\n        var volumeAnnotation = techan.plot.axisannotation()\n            .axis(volumeAxis)\n            .orient(\"right\")\n            .width(35);\n\n        var ohlcCrosshair = techan.plot.crosshair()\n            .xScale(timeAnnotation.axis().scale())\n            .yScale(ohlcAnnotation.axis().scale())\n            .xAnnotation(timeAnnotation)\n            .yAnnotation([ohlcAnnotation, percentAnnotation, volumeAnnotation])\n            .verticalWireRange([0, dim.plot.height]);\n\n        var svg = d3.select(\"body\").append(\"svg\")\n            .attr(\"viewBox\", \"0 0 \" + dim.width + \" \" + dim.height)\n            .attr(\"width\", dim.width)\n            .attr(\"height\", dim.height);\n\n        var defs = svg.append(\"defs\");\n\n        defs.append(\"clipPath\")\n            .attr(\"id\", \"ohlcClip\")\n            .append(\"rect\")\n            .attr(\"x\", 0)\n            .attr(\"y\", 0)\n            .attr(\"width\", dim.plot.width)\n            .attr(\"height\", dim.ohlc.height);\n\n        svg = svg.append(\"g\")\n            .attr(\"transform\", \"translate(\" + dim.margin.left + \",\" + dim.margin.top + \")\");\n\n        svg.append('text')\n            .attr(\"class\", \"symbol\")\n            .attr(\"x\", 50)\n            .text(\"cexio.ETH-USD - zenbot 4.0.5\");\n\n        svg.append(\"g\")\n            .attr(\"class\", \"x axis\")\n            .attr(\"transform\", \"translate(0,\" + (dim.plot.height - 30) + \")\");\n\n        var ohlcSelection = svg.append(\"g\")\n            .attr(\"class\", \"ohlc\")\n            .attr(\"transform\", \"translate(0,0)\");\n\n        ohlcSelection.append(\"g\")\n            .attr(\"class\", \"axis\")\n            .attr(\"transform\", \"translate(\" + x(1) + \",0)\")\n            .append(\"text\")\n            .attr(\"transform\", \"rotate(-90)\")\n            .attr(\"y\", -12)\n            .attr(\"dy\", \".71em\")\n            .style(\"text-anchor\", \"end\")\n            .text(\"Price\");\n\n        ohlcSelection.append(\"g\")\n            .attr(\"class\", \"close annotation up\")\n            .attr(\"font-weight\", \"900\")\n\n        ohlcSelection.append(\"g\")\n            .attr(\"class\", \"volume\")\n            .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n        ohlcSelection.append(\"g\")\n            .attr(\"class\", \"candlestick\")\n            .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n        ohlcSelection.append(\"g\")\n            .attr(\"class\", \"indicator ema ma-2\")\n            .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n        ohlcSelection.append(\"g\")\n            .attr(\"class\", \"percent axis\");\n\n        ohlcSelection.append(\"g\")\n            .attr(\"class\", \"volume axis\");\n\n        // Add trendlines and other interactions last to be above zoom pane\n        svg.append('g')\n            .attr(\"class\", \"crosshair ohlc\");\n\n        svg.append(\"g\")\n            .attr(\"class\", \"tradearrow\")\n            .attr(\"clip-path\", \"url(#ohlcClip)\");\n\n        var accessor = candlestick.accessor();\n\n        data = data.map(function (d) {\n            d.date = new Date(d.time)\n            return d\n        })\n        data.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n        trades = trades.map(function (t) {\n            t.date = new Date(t.time)\n            return t\n        })\n        trades.sort(function(a, b) { return d3.ascending(accessor.d(a), accessor.d(b)); });\n\n        $('body').css('backgroundColor', '#1f2d35')\n        x.domain(techan.scale.plot.time(data).domain());\n        y.domain(techan.scale.plot.ohlc(data).domain());\n        yPercent.domain(techan.scale.plot.percent(y, accessor(data[0])).domain());\n        yVolume.domain(techan.scale.plot.volume(data).domain());\n\n        svg.select(\"g.candlestick\").datum(data)\n        var last = data[data.length-1]\n        if (!last) {\n            return\n        }\n        svg.select(\"g.volume\").datum(data)\n        svg.select(\"g.ema.ma-2\").datum(techan.indicator.ema().period(36)(data)).call(ema2);\n        svg.select(\"g.tradearrow\").datum(trades).call(tradearrow);\n\n        // Stash for zooming\n        zoomableInit = x.zoomable().domain([0, data.length]).copy(); // Zoom in a little to hide indicator preroll\n        yInit = y.copy();\n        yPercentInit = yPercent.copy();\n\n        draw();\n\n        function draw() {\n            svg.select(\"g.x.axis\").call(xAxis);\n            svg.select(\"g.ohlc .axis\").call(yAxis);\n            svg.select(\"g.volume.axis\").call(volumeAxis);\n            svg.select(\"g.percent.axis\").call(percentAxis);\n            svg.select(\"g.candlestick\").call(candlestick);\n            svg.select(\"g.volume\").call(volume);\n            svg.select(\"g.crosshair.ohlc\").call(ohlcCrosshair).call(zoom);\n            svg.select(\"g.tradearrow\").call(tradearrow);\n            svg.select(\"g .ema.ma-2\").call(ema2.refresh).call(zoom);\n        }\n\n        function zoomed() {\n            x.zoomable().domain(d3.event.transform.rescaleX(zoomableInit).domain());\n            y.domain(d3.event.transform.rescaleY(yInit).domain());\n            yPercent.domain(d3.event.transform.rescaleY(yPercentInit).domain());\n\n            draw();\n        }\n    }\n</script>\n<script>\n    var data = [{\"time\":1512686640000,\"open\":438.6986,\"high\":438.6986,\"low\":435,\"close\":437.4985,\"volume\":41.91726300000001},{\"time\":1512686520000,\"open\":437.0001,\"high\":438.828,\"low\":436.0001,\"close\":438.6987,\"volume\":45.87272600000001},{\"time\":1512686400000,\"open\":438.9874,\"high\":438.9895,\"low\":437,\"close\":437,\"volume\":19.474097},{\"time\":1512686280000,\"open\":438.9876,\"high\":438.9879,\"low\":438.98,\"close\":438.9877,\"volume\":11.498073999999999},{\"time\":1512686160000,\"open\":438.988,\"high\":438.988,\"low\":438.9876,\"close\":438.9876,\"volume\":16.326320999999997},{\"time\":1512686040000,\"open\":437.465,\"high\":438.9993,\"low\":437.465,\"close\":438.9879,\"volume\":32.59340300000001},{\"time\":1512685920000,\"open\":440.0699,\"high\":440.0699,\"low\":437.465,\"close\":437.465,\"volume\":14.032073999999998},{\"time\":1512685800000,\"open\":440.16,\"high\":442.2727,\"low\":440,\"close\":440.0699,\"volume\":54.948750999999994},{\"time\":1512685680000,\"open\":440.33,\"high\":442.4431,\"low\":440.1,\"close\":440.1,\"volume\":12.548364999999997},{\"time\":1512685560000,\"open\":441.45,\"high\":441.49,\"low\":441,\"close\":441.35,\"volume\":8.558183},{\"time\":1512685440000,\"open\":442.9975,\"high\":442.9975,\"low\":440.1707,\"close\":440.1707,\"volume\":30.632328000000005},{\"time\":1512685320000,\"open\":443.7398,\"high\":443.7398,\"low\":441.6004,\"close\":442.9984,\"volume\":2.4212149999999997},{\"time\":1512685200000,\"open\":443.9282,\"high\":443.9282,\"low\":441.0101,\"close\":443.8797,\"volume\":19.972890999999994},{\"time\":1512685080000,\"open\":443.9399,\"high\":443.9599,\"low\":442.3671,\"close\":443,\"volume\":16.479122},{\"time\":1512684960000,\"open\":443.0026,\"high\":443.1001,\"low\":443.0026,\"close\":443.1001,\"volume\":7.897372},{\"time\":1512684840000,\"open\":444.5593,\"high\":444.5593,\"low\":443.0001,\"close\":443.0007,\"volume\":22.675228},{\"time\":1512684720000,\"open\":444.5006,\"high\":444.5689,\"low\":443,\"close\":443.0001,\"volume\":24.816352999999992},{\"time\":1512684600000,\"open\":447.6693,\"high\":447.6693,\"low\":444.5002,\"close\":445.8986,\"volume\":4.203110999999999},{\"time\":1512684480000,\"open\":445.5,\"high\":448.8,\"low\":444.3604,\"close\":444.3605,\"volume\":31.578222},{\"time\":1512684360000,\"open\":449.9986,\"high\":449.9986,\"low\":445.5,\"close\":446.01,\"volume\":16.167162},{\"time\":1512684240000,\"open\":444.6118,\"high\":447.0031,\"low\":444.6118,\"close\":447.0031,\"volume\":13.853976000000001},{\"time\":1512684120000,\"open\":445.6162,\"high\":445.6162,\"low\":444.2303,\"close\":445.6162,\"volume\":15.221658},{\"time\":1512684000000,\"open\":444.2898,\"high\":445.0032,\"low\":442.02,\"close\":445.0032,\"volume\":59.17466399999999},{\"time\":1512683880000,\"open\":444.4715,\"high\":444.4715,\"low\":442.0004,\"close\":442.0004,\"volume\":6.835103},{\"time\":1512683760000,\"open\":443.0001,\"high\":444.4769,\"low\":443,\"close\":443,\"volume\":15.738007},{\"time\":1512683640000,\"open\":443.9984,\"high\":443.9985,\"low\":443.4964,\"close\":443.4964,\"volume\":5.0584489999999995},{\"time\":1512683520000,\"open\":445.5992,\"high\":445.5992,\"low\":444.5987,\"close\":444.5987,\"volume\":3.4086570000000003},{\"time\":1512683400000,\"open\":443.3124,\"high\":445.6875,\"low\":443,\"close\":443,\"volume\":14.707385},{\"time\":1512683280000,\"open\":445.0001,\"high\":445.9999,\"low\":444.4999,\"close\":445.9192,\"volume\":22.444331000000002},{\"time\":1512683160000,\"open\":446.0003,\"high\":446.0003,\"low\":445,\"close\":445.9998,\"volume\":99.39944899999999},{\"time\":1512683040000,\"open\":446.9899,\"high\":446.9899,\"low\":446.0002,\"close\":446.0003,\"volume\":0.75292},{\"time\":1512682920000,\"open\":446.0045,\"high\":446.9968,\"low\":446,\"close\":446.9962,\"volume\":15.180396},{\"time\":1512682800000,\"open\":449.6956,\"high\":449.6956,\"low\":446,\"close\":446,\"volume\":21.868229},{\"time\":1512682680000,\"open\":450.4785,\"high\":450.4785,\"low\":450.0996,\"close\":450.0996,\"volume\":0.83906},{\"time\":1512682560000,\"open\":448.5247,\"high\":450.4943,\"low\":448.5247,\"close\":450.4884,\"volume\":1.08414},{\"time\":1512682440000,\"open\":446.02,\"high\":448.521,\"low\":446.02,\"close\":446.0245,\"volume\":3.5594810000000003},{\"time\":1512682320000,\"open\":450.5047,\"high\":450.5047,\"low\":446.02,\"close\":446.0211,\"volume\":34.816495},{\"time\":1512682200000,\"open\":450,\"high\":450.51,\"low\":449.1011,\"close\":450,\"volume\":12.146737999999997},{\"time\":1512682080000,\"open\":450.6021,\"high\":451.8994,\"low\":450.51,\"close\":450.5102,\"volume\":8.824235},{\"time\":1512681960000,\"open\":450.7,\"high\":451.8998,\"low\":450.6054,\"close\":451.8998,\"volume\":4.316824},{\"time\":1512681840000,\"open\":450.5506,\"high\":451.9987,\"low\":450.5506,\"close\":450.6001,\"volume\":8.061348},{\"time\":1512681720000,\"open\":450.5101,\"high\":451.9998,\"low\":450.5101,\"close\":451.8,\"volume\":8.297263000000001},{\"time\":1512681600000,\"open\":452,\"high\":452.4986,\"low\":450.51,\"close\":451.9996,\"volume\":22.077249000000002},{\"time\":1512681480000,\"open\":452,\"high\":453.9702,\"low\":452,\"close\":452,\"volume\":5.790898},{\"time\":1512681360000,\"open\":453.9737,\"high\":453.9737,\"low\":451.1341,\"close\":452,\"volume\":14.042977},{\"time\":1512681240000,\"open\":453.7101,\"high\":453.9991,\"low\":453,\"close\":453.9803,\"volume\":20.504939999999998},{\"time\":1512681120000,\"open\":454.8965,\"high\":454.8965,\"low\":453.9157,\"close\":454,\"volume\":3.026719},{\"time\":1512681000000,\"open\":453.4023,\"high\":454.9286,\"low\":453.4023,\"close\":454.9286,\"volume\":0.42797},{\"time\":1512680880000,\"open\":453.3002,\"high\":454.9508,\"low\":453.2,\"close\":454.9462,\"volume\":19.692727},{\"time\":1512680760000,\"open\":454.9659,\"high\":454.9659,\"low\":453.2003,\"close\":454.9574,\"volume\":12.511566},{\"time\":1512680640000,\"open\":453.2,\"high\":453.2,\"low\":453.2,\"close\":453.2,\"volume\":2.069148},{\"time\":1512680520000,\"open\":453.0163,\"high\":454.9794,\"low\":453,\"close\":453.0063,\"volume\":12.4021},{\"time\":1512680400000,\"open\":454.9905,\"high\":454.9921,\"low\":453.0106,\"close\":453.0124,\"volume\":2.497031},{\"time\":1512680280000,\"open\":455.7977,\"high\":455.7977,\"low\":452.8058,\"close\":452.8058,\"volume\":1.525687},{\"time\":1512680160000,\"open\":452.2,\"high\":456.3247,\"low\":452,\"close\":455.9941,\"volume\":37.470138999999996},{\"time\":1512680040000,\"open\":454.1013,\"high\":455.9993,\"low\":452,\"close\":452.0014,\"volume\":15.041955},{\"time\":1512679920000,\"open\":454.9958,\"high\":454.9997,\"low\":453.5107,\"close\":454.0012,\"volume\":14.143952},{\"time\":1512679800000,\"open\":456.3286,\"high\":456.3286,\"low\":453.3921,\"close\":454.9979,\"volume\":3.101722},{\"time\":1512679680000,\"open\":456.1376,\"high\":457.9995,\"low\":453.3875,\"close\":453.3875,\"volume\":57.189139000000004},{\"time\":1512679560000,\"open\":458.4933,\"high\":458.4933,\"low\":458.4933,\"close\":458.4933,\"volume\":0.503475},{\"time\":1512679440000,\"open\":458.0033,\"high\":458.5001,\"low\":456.1328,\"close\":458.4972,\"volume\":62.999385000000004},{\"time\":1512679320000,\"open\":458,\"high\":458,\"low\":457.9999,\"close\":458,\"volume\":15.480374999999999},{\"time\":1512679200000,\"open\":457.9999,\"high\":458,\"low\":457.9989,\"close\":458,\"volume\":38.42091},{\"time\":1512679080000,\"open\":456.5,\"high\":457.9999,\"low\":456.1216,\"close\":457.9997,\"volume\":5.193771},{\"time\":1512678960000,\"open\":456.4862,\"high\":456.4866,\"low\":456.1169,\"close\":456.4864,\"volume\":15.347555},{\"time\":1512678840000,\"open\":455.9894,\"high\":456.4868,\"low\":454.5005,\"close\":455.98,\"volume\":3.471517},{\"time\":1512678720000,\"open\":456.4791,\"high\":456.4791,\"low\":453.3938,\"close\":453.394,\"volume\":2.890826},{\"time\":1512678600000,\"open\":456.4828,\"high\":456.4828,\"low\":456.4791,\"close\":456.4791,\"volume\":0.819792},{\"time\":1512678480000,\"open\":456.4927,\"high\":456.4927,\"low\":456.486,\"close\":456.486,\"volume\":0.907293},{\"time\":1512678360000,\"open\":457.2998,\"high\":457.2998,\"low\":453.3875,\"close\":453.3875,\"volume\":26.040909000000006},{\"time\":1512678240000,\"open\":457,\"high\":457.2983,\"low\":455.5745,\"close\":457.2937,\"volume\":2.395662},{\"time\":1512678120000,\"open\":458,\"high\":458,\"low\":455.5727,\"close\":455.5742,\"volume\":14.041998999999997},{\"time\":1512678000000,\"open\":455.11,\"high\":458,\"low\":455.1018,\"close\":458,\"volume\":55.132478000000006},{\"time\":1512677880000,\"open\":455.1007,\"high\":456.0938,\"low\":455.1007,\"close\":455.1099,\"volume\":8.938684},{\"time\":1512677760000,\"open\":456.1003,\"high\":457.7698,\"low\":455.1004,\"close\":456.1,\"volume\":13.396170000000001},{\"time\":1512677640000,\"open\":456.9999,\"high\":457.77,\"low\":456.1001,\"close\":457.77,\"volume\":3.3295939999999997},{\"time\":1512677520000,\"open\":456.899,\"high\":456.9999,\"low\":456.0041,\"close\":456.9999,\"volume\":9.500882},{\"time\":1512677400000,\"open\":455.91,\"high\":456.8991,\"low\":455.91,\"close\":456.8991,\"volume\":26.339367},{\"time\":1512677280000,\"open\":452.9999,\"high\":456.8991,\"low\":452.9999,\"close\":455,\"volume\":45.385664},{\"time\":1512677160000,\"open\":452.0016,\"high\":453,\"low\":452.0016,\"close\":452.9999,\"volume\":6.101384},{\"time\":1512677040000,\"open\":451.0202,\"high\":453.2997,\"low\":451.0202,\"close\":452.9997,\"volume\":26.053598},{\"time\":1512676920000,\"open\":453.2998,\"high\":453.2998,\"low\":451.0201,\"close\":452.6005,\"volume\":36.494911999999985},{\"time\":1512676800000,\"open\":454.7999,\"high\":454.8,\"low\":453.3,\"close\":453.3,\"volume\":19.105894},{\"time\":1512676680000,\"open\":453.399,\"high\":454.8,\"low\":452.6005,\"close\":452.6005,\"volume\":21.04512},{\"time\":1512676560000,\"open\":453.7001,\"high\":453.9999,\"low\":453,\"close\":453.399,\"volume\":7.642006000000001},{\"time\":1512676440000,\"open\":454.004,\"high\":454.7999,\"low\":453.6601,\"close\":453.87,\"volume\":13.531305},{\"time\":1512676320000,\"open\":453.5709,\"high\":454.8,\"low\":451.0152,\"close\":454.0029,\"volume\":24.657237},{\"time\":1512676200000,\"open\":450.5088,\"high\":454.799,\"low\":450.5,\"close\":454.7912,\"volume\":2.167253},{\"time\":1512676080000,\"open\":450.0136,\"high\":454.9996,\"low\":450.0136,\"close\":454.7999,\"volume\":8.305133999999999},{\"time\":1512675960000,\"open\":457.0079,\"high\":457.0087,\"low\":450,\"close\":454.9998,\"volume\":66.289049},{\"time\":1512675840000,\"open\":459.9,\"high\":459.9,\"low\":456.0084,\"close\":456.0084,\"volume\":45.324763999999995},{\"time\":1512675720000,\"open\":454.3605,\"high\":459.9,\"low\":454.3605,\"close\":459,\"volume\":33.552798},{\"time\":1512675600000,\"open\":453.57,\"high\":454.9997,\"low\":453.4336,\"close\":454.9979,\"volume\":7.095498},{\"time\":1512675480000,\"open\":454.9997,\"high\":454.9997,\"low\":454.9997,\"close\":454.9997,\"volume\":0.205384},{\"time\":1512675360000,\"open\":452.088,\"high\":455,\"low\":452.088,\"close\":453.4302,\"volume\":54.410202999999996},{\"time\":1512675240000,\"open\":449.66,\"high\":452.5398,\"low\":449.66,\"close\":452.088,\"volume\":5.935690000000001},{\"time\":1512675120000,\"open\":449.4002,\"high\":455.0979,\"low\":449.4002,\"close\":455.0979,\"volume\":37.122924},{\"time\":1512675000000,\"open\":451.4999,\"high\":454,\"low\":451.4999,\"close\":451.4999,\"volume\":4.169032},{\"time\":1512674880000,\"open\":451.4998,\"high\":451.5,\"low\":451.4998,\"close\":451.4999,\"volume\":2.313066},{\"time\":1512674760000,\"open\":450,\"high\":451.4998,\"low\":448.0504,\"close\":451.4998,\"volume\":39.12336999999999},{\"time\":1512674640000,\"open\":450,\"high\":450,\"low\":450,\"close\":450,\"volume\":4.902285},{\"time\":1512674520000,\"open\":446.0156,\"high\":450,\"low\":446.0154,\"close\":449.8998,\"volume\":87.93986199999998},{\"time\":1512674400000,\"open\":447.7503,\"high\":449.2,\"low\":446.006,\"close\":446.0117,\"volume\":21.793645},{\"time\":1512674280000,\"open\":449.1979,\"high\":449.1979,\"low\":447.7502,\"close\":447.7503,\"volume\":5.942531},{\"time\":1512674160000,\"open\":449.2903,\"high\":449.2903,\"low\":447.75,\"close\":447.75,\"volume\":15.749975},{\"time\":1512674040000,\"open\":448.7602,\"high\":449.2949,\"low\":448.76,\"close\":448.76,\"volume\":2.9281550000000003},{\"time\":1512673920000,\"open\":449.2901,\"high\":449.2991,\"low\":448.76,\"close\":448.7614,\"volume\":4.881409},{\"time\":1512673800000,\"open\":447.9798,\"high\":449.3953,\"low\":447.9798,\"close\":449.3,\"volume\":26.399934999999996},{\"time\":1512673680000,\"open\":447.9792,\"high\":447.9803,\"low\":446.998,\"close\":446.998,\"volume\":19.941633},{\"time\":1512673560000,\"open\":447.9802,\"high\":447.9802,\"low\":447.9795,\"close\":447.9795,\"volume\":0.445905},{\"time\":1512673440000,\"open\":447.5001,\"high\":447.993,\"low\":445.0036,\"close\":447.9887,\"volume\":14.254059999999996},{\"time\":1512673320000,\"open\":447.5002,\"high\":448.9997,\"low\":447.5002,\"close\":447.9976,\"volume\":1.766964},{\"time\":1512673200000,\"open\":449.4945,\"high\":449.4945,\"low\":447,\"close\":449.4915,\"volume\":48.494749},{\"time\":1512673080000,\"open\":445.0001,\"high\":449.7835,\"low\":445.0001,\"close\":449.7835,\"volume\":0.789444},{\"time\":1512672960000,\"open\":449.8678,\"high\":449.8686,\"low\":445.0004,\"close\":445.9493,\"volume\":8.760634000000001},{\"time\":1512672840000,\"open\":448.1003,\"high\":449.8704,\"low\":447,\"close\":449.8704,\"volume\":15.627258},{\"time\":1512672720000,\"open\":449.8909,\"high\":449.8909,\"low\":447.1,\"close\":449.8798,\"volume\":24.906264999999994},{\"time\":1512672600000,\"open\":449.0029,\"high\":449.9998,\"low\":449.0029,\"close\":449.8939,\"volume\":8.979646999999998},{\"time\":1512672480000,\"open\":449.0002,\"high\":450,\"low\":448.0027,\"close\":449.0033,\"volume\":21.481628},{\"time\":1512672240000,\"open\":448.9991,\"high\":449.0001,\"low\":448.999,\"close\":449.0001,\"volume\":26.326645000000003},{\"time\":1512672120000,\"open\":449.8049,\"high\":449.8049,\"low\":447.0001,\"close\":447.11,\"volume\":12.782535999999999},{\"time\":1512672000000,\"open\":449.8082,\"high\":449.8083,\"low\":449.8071,\"close\":449.8071,\"volume\":1.126107},{\"time\":1512671880000,\"open\":450,\"high\":450,\"low\":447.12,\"close\":447.15,\"volume\":43.135424},{\"time\":1512671760000,\"open\":450.0126,\"high\":451.4998,\"low\":449.78,\"close\":450,\"volume\":12.525998000000001},{\"time\":1512671640000,\"open\":449.2212,\"high\":451.5123,\"low\":449.2212,\"close\":451.4999,\"volume\":25.082265000000007},{\"time\":1512671520000,\"open\":449.66,\"high\":449.9998,\"low\":449.6599,\"close\":449.9998,\"volume\":1.513318},{\"time\":1512671400000,\"open\":449.6599,\"high\":449.66,\"low\":449.2212,\"close\":449.2212,\"volume\":4.205962},{\"time\":1512671280000,\"open\":449.9999,\"high\":449.9999,\"low\":449.2212,\"close\":449.2213,\"volume\":13.028166},{\"time\":1512671160000,\"open\":450.0011,\"high\":451.2313,\"low\":449.2213,\"close\":450.9899,\"volume\":15.497808000000001},{\"time\":1512671040000,\"open\":451.1997,\"high\":451.2314,\"low\":449.2221,\"close\":450.001,\"volume\":20.668395},{\"time\":1512670920000,\"open\":449.9999,\"high\":451.1999,\"low\":449.9993,\"close\":450.4101,\"volume\":5.53993},{\"time\":1512670800000,\"open\":448,\"high\":450.4273,\"low\":448,\"close\":449.9993,\"volume\":18.047261000000002},{\"time\":1512670680000,\"open\":450.4295,\"high\":450.4296,\"low\":448.0002,\"close\":450.4277,\"volume\":19.102016},{\"time\":1512670560000,\"open\":451.1999,\"high\":454.9743,\"low\":450.1,\"close\":450.1,\"volume\":7.026118},{\"time\":1512670440000,\"open\":451.2,\"high\":452.0212,\"low\":451.1,\"close\":451.1001,\"volume\":19.210954},{\"time\":1512670320000,\"open\":452.221,\"high\":454.76,\"low\":452.021,\"close\":454.76,\"volume\":47.044598},{\"time\":1512670200000,\"open\":452.2,\"high\":452.8559,\"low\":452.1401,\"close\":452.8559,\"volume\":29.869069000000003},{\"time\":1512670080000,\"open\":451.4031,\"high\":452.5167,\"low\":451.4031,\"close\":452.5167,\"volume\":1.924697},{\"time\":1512669960000,\"open\":452.517,\"high\":452.5171,\"low\":451.0009,\"close\":452.5168,\"volume\":14.413716},{\"time\":1512669840000,\"open\":452.0049,\"high\":452.8562,\"low\":451,\"close\":452.5195,\"volume\":27.999448},{\"time\":1512669720000,\"open\":453.0012,\"high\":453.0026,\"low\":452.0041,\"close\":452.77,\"volume\":33.228601},{\"time\":1512669600000,\"open\":453.7499,\"high\":455.9097,\"low\":452.002,\"close\":454.4555,\"volume\":6.909689},{\"time\":1512669480000,\"open\":453.1639,\"high\":454.4988,\"low\":452.9589,\"close\":453.7498,\"volume\":18.598975000000003},{\"time\":1512669360000,\"open\":454.4965,\"high\":456.54,\"low\":453.1647,\"close\":454.5001,\"volume\":40.902564000000005},{\"time\":1512669240000,\"open\":453.1641,\"high\":453.1648,\"low\":453.1641,\"close\":453.1647,\"volume\":5.6520280000000005},{\"time\":1512669120000,\"open\":453.0943,\"high\":454.5,\"low\":453.0943,\"close\":453.164,\"volume\":12.265888},{\"time\":1512669000000,\"open\":451.0143,\"high\":453.1621,\"low\":451.0143,\"close\":453.0943,\"volume\":21.003787000000006},{\"time\":1512668880000,\"open\":451.0012,\"high\":453.0949,\"low\":451.0012,\"close\":451.0132,\"volume\":15.399296999999997},{\"time\":1512668760000,\"open\":451.2313,\"high\":453.1606,\"low\":451.0008,\"close\":453.0971,\"volume\":15.339049000000001},{\"time\":1512668640000,\"open\":450.9947,\"high\":453.1606,\"low\":450.9947,\"close\":453,\"volume\":23.313288999999997},{\"time\":1512668520000,\"open\":449.0073,\"high\":450.9975,\"low\":449.007,\"close\":450.5216,\"volume\":19.080367000000006},{\"time\":1512668400000,\"open\":449.4324,\"high\":451.5967,\"low\":448,\"close\":451.5967,\"volume\":21.967314000000002},{\"time\":1512668280000,\"open\":451.2905,\"high\":453.9999,\"low\":450,\"close\":450,\"volume\":25.867952000000002},{\"time\":1512668160000,\"open\":451.0016,\"high\":451.2,\"low\":448.8352,\"close\":450.9998,\"volume\":119.90866999999999},{\"time\":1512668040000,\"open\":451.0001,\"high\":454.9897,\"low\":451,\"close\":452.9967,\"volume\":38.53534899999999},{\"time\":1512667920000,\"open\":453,\"high\":455,\"low\":451,\"close\":451.0003,\"volume\":58.66203799999999},{\"time\":1512667800000,\"open\":450,\"high\":453.9935,\"low\":447.7808,\"close\":453.9935,\"volume\":30.457992999999995},{\"time\":1512667680000,\"open\":446.8408,\"high\":451.1552,\"low\":446.8352,\"close\":451.1552,\"volume\":55.28997600000001},{\"time\":1512667560000,\"open\":446.0433,\"high\":450.9956,\"low\":446.0433,\"close\":446.8356,\"volume\":5.491478000000001},{\"time\":1512667440000,\"open\":449.9993,\"high\":450.9956,\"low\":445.6501,\"close\":450,\"volume\":46.87098500000001},{\"time\":1512667320000,\"open\":445.0009,\"high\":451.9984,\"low\":445.0009,\"close\":450.9956,\"volume\":6.782520999999999},{\"time\":1512667200000,\"open\":452.9992,\"high\":452.9992,\"low\":445.0003,\"close\":445.0003,\"volume\":44.139858000000004},{\"time\":1512667080000,\"open\":451.9998,\"high\":452.9999,\"low\":449.5001,\"close\":452.9999,\"volume\":22.243589},{\"time\":1512666960000,\"open\":449.5101,\"high\":452.9981,\"low\":449.322,\"close\":452.9981,\"volume\":6.899993000000001},{\"time\":1512666840000,\"open\":454.9985,\"high\":454.9995,\"low\":454.9984,\"close\":454.9985,\"volume\":2.85805},{\"time\":1512666720000,\"open\":452.24,\"high\":454.9998,\"low\":449.2501,\"close\":449.2501,\"volume\":5.507769999999999},{\"time\":1512666600000,\"open\":452.4385,\"high\":454.9993,\"low\":448.8898,\"close\":451.8199,\"volume\":51.866848000000005},{\"time\":1512666480000,\"open\":451.9322,\"high\":456.9999,\"low\":451.9322,\"close\":452,\"volume\":31.736628999999997},{\"time\":1512666360000,\"open\":445.8,\"high\":455,\"low\":445.8,\"close\":455,\"volume\":69.084223},{\"time\":1512666240000,\"open\":448.8898,\"high\":448.8899,\"low\":445.8001,\"close\":447.0011,\"volume\":13.379817},{\"time\":1512666120000,\"open\":441.6001,\"high\":450.9996,\"low\":441.6001,\"close\":448.91,\"volume\":128.91213099999996},{\"time\":1512666000000,\"open\":445.3095,\"high\":445.3095,\"low\":441.5004,\"close\":441.9699,\"volume\":31.450788999999997},{\"time\":1512665880000,\"open\":444.9999,\"high\":445.5594,\"low\":442.5102,\"close\":445.5594,\"volume\":12.81541},{\"time\":1512665760000,\"open\":444,\"high\":445,\"low\":442.101,\"close\":443,\"volume\":6.334451},{\"time\":1512665640000,\"open\":445,\"high\":446.5397,\"low\":442.5001,\"close\":442.5001,\"volume\":28.776568999999995},{\"time\":1512665520000,\"open\":447.56,\"high\":447.56,\"low\":442.1005,\"close\":443.0001,\"volume\":75.812986},{\"time\":1512665400000,\"open\":445.9187,\"high\":450.001,\"low\":443.0003,\"close\":445.9199,\"volume\":60.57414400000001},{\"time\":1512665280000,\"open\":446.96,\"high\":446.96,\"low\":445.1105,\"close\":445.1142,\"volume\":11.927936},{\"time\":1512665160000,\"open\":446.7487,\"high\":446.96,\"low\":446.54,\"close\":446.92,\"volume\":11.145048999999998},{\"time\":1512665040000,\"open\":446.98,\"high\":449.74,\"low\":446.9038,\"close\":447,\"volume\":4.388718},{\"time\":1512664920000,\"open\":446.9035,\"high\":450.9996,\"low\":446.7488,\"close\":446.9404,\"volume\":37.843555},{\"time\":1512664800000,\"open\":450.0197,\"high\":451.18,\"low\":446.7426,\"close\":449.9991,\"volume\":19.312152},{\"time\":1512664680000,\"open\":446.9909,\"high\":450.0197,\"low\":443.0213,\"close\":450.0197,\"volume\":38.777542000000004},{\"time\":1512664560000,\"open\":445.2008,\"high\":447.3376,\"low\":442.9848,\"close\":446.9999,\"volume\":58.31279400000001},{\"time\":1512664440000,\"open\":444.8753,\"high\":448.0097,\"low\":444.874,\"close\":445.0001,\"volume\":40.366201},{\"time\":1512664320000,\"open\":445,\"high\":445,\"low\":444,\"close\":444.8778,\"volume\":6.780314},{\"time\":1512664200000,\"open\":446.0884,\"high\":446.0884,\"low\":445,\"close\":445,\"volume\":8.53415},{\"time\":1512664080000,\"open\":448.28,\"high\":448.2801,\"low\":446.0885,\"close\":447,\"volume\":34.839268999999994},{\"time\":1512663000000,\"open\":449.71,\"high\":449.9297,\"low\":448.0701,\"close\":449.9297,\"volume\":5.223921},{\"time\":1512662880000,\"open\":447.7597,\"high\":449.7499,\"low\":447.7501,\"close\":449.7397,\"volume\":11.300067},{\"time\":1512662760000,\"open\":447.7598,\"high\":447.7598,\"low\":447.1,\"close\":447.7597,\"volume\":7.195855},{\"time\":1512662640000,\"open\":447.8,\"high\":447.8,\"low\":447.0801,\"close\":447.75,\"volume\":8.595412999999999},{\"time\":1512662520000,\"open\":447.9972,\"high\":447.9999,\"low\":447.0401,\"close\":447.0602,\"volume\":11.441065},{\"time\":1512662400000,\"open\":447.3,\"high\":447.9991,\"low\":447.04,\"close\":447.05,\"volume\":6.389398999999999},{\"time\":1512662280000,\"open\":449.9999,\"high\":449.9999,\"low\":448,\"close\":449.1101,\"volume\":32.317871999999994},{\"time\":1512662160000,\"open\":450.9395,\"high\":451.9907,\"low\":449.0305,\"close\":449.1109,\"volume\":20.918159},{\"time\":1512662040000,\"open\":449.99,\"high\":449.99,\"low\":449.0101,\"close\":449.9799,\"volume\":20.592074},{\"time\":1512661920000,\"open\":450,\"high\":450,\"low\":449.0101,\"close\":449.9899,\"volume\":13.748407999999998},{\"time\":1512661800000,\"open\":450.3296,\"high\":450.3296,\"low\":449.9897,\"close\":449.9897,\"volume\":3.243434},{\"time\":1512661680000,\"open\":450.9499,\"high\":450.9499,\"low\":448.0001,\"close\":448.0601,\"volume\":12.843244},{\"time\":1512661560000,\"open\":448.6504,\"high\":456.9998,\"low\":447.04,\"close\":448.72,\"volume\":122.93637100000001},{\"time\":1512661440000,\"open\":451.6996,\"high\":458,\"low\":447.5085,\"close\":456.9999,\"volume\":27.256202000000002},{\"time\":1512661320000,\"open\":447,\"high\":451.6995,\"low\":445.31,\"close\":450.9997,\"volume\":16.069308999999997},{\"time\":1512661200000,\"open\":445.0001,\"high\":447.9691,\"low\":445,\"close\":447.1762,\"volume\":48.228176000000005},{\"time\":1512661080000,\"open\":449.3701,\"high\":453.8381,\"low\":445,\"close\":445,\"volume\":136.94163099999997},{\"time\":1512660960000,\"open\":453,\"high\":453,\"low\":449.3701,\"close\":450,\"volume\":70.61968499999999},{\"time\":1512660840000,\"open\":453,\"high\":454.87,\"low\":452.54,\"close\":453.0001,\"volume\":27.771871},{\"time\":1512660720000,\"open\":453.96,\"high\":454.58,\"low\":452.5,\"close\":453.4379,\"volume\":22.313549},{\"time\":1512660600000,\"open\":454.0922,\"high\":454.0923,\"low\":453,\"close\":453.97,\"volume\":12.004682},{\"time\":1512660480000,\"open\":454.9599,\"high\":454.97,\"low\":454.8899,\"close\":454.8899,\"volume\":10.916369999999999},{\"time\":1512660360000,\"open\":453.5,\"high\":454.9836,\"low\":453.5,\"close\":454.9836,\"volume\":12.965173},{\"time\":1512660240000,\"open\":457.8399,\"high\":457.8399,\"low\":453.5,\"close\":457.4896,\"volume\":14.069224},{\"time\":1512660120000,\"open\":458.0001,\"high\":459.5087,\"low\":453.96,\"close\":458.25,\"volume\":82.710768},{\"time\":1512660000000,\"open\":458.7524,\"high\":459.8695,\"low\":458,\"close\":458.0301,\"volume\":22.747999},{\"time\":1512659880000,\"open\":459.1,\"high\":459.98,\"low\":458.7516,\"close\":458.7516,\"volume\":10.003475},{\"time\":1512659760000,\"open\":458.7492,\"high\":459.1,\"low\":458.1031,\"close\":459.1,\"volume\":21.472008},{\"time\":1512659640000,\"open\":458.87,\"high\":459.9994,\"low\":458,\"close\":458.1,\"volume\":57.804442},{\"time\":1512659520000,\"open\":458.5102,\"high\":459.6,\"low\":458.5,\"close\":459.4991,\"volume\":27.907544},{\"time\":1512659400000,\"open\":459.8997,\"high\":460,\"low\":458.5002,\"close\":460,\"volume\":22.234420999999998},{\"time\":1512659280000,\"open\":459.4117,\"high\":460.4041,\"low\":459.4,\"close\":459.4027,\"volume\":13.101602000000002},{\"time\":1512659160000,\"open\":461.93,\"high\":461.93,\"low\":459.395,\"close\":459.41,\"volume\":57.58744300000001},{\"time\":1512659040000,\"open\":461.62,\"high\":462.54,\"low\":460.5009,\"close\":461.0019,\"volume\":27.463105},{\"time\":1512658920000,\"open\":463.4697,\"high\":463.4697,\"low\":459.7901,\"close\":463.1993,\"volume\":42.06394900000001},{\"time\":1512658800000,\"open\":463.48,\"high\":463.49,\"low\":461.12,\"close\":463.4798,\"volume\":11.260349999999999},{\"time\":1512658680000,\"open\":459.9159,\"high\":463.5,\"low\":459.9158,\"close\":463,\"volume\":53.06542100000001},{\"time\":1512658560000,\"open\":459.9,\"high\":459.9159,\"low\":459.2201,\"close\":459.9159,\"volume\":13.133108000000002},{\"time\":1512658440000,\"open\":458.25,\"high\":459.9158,\"low\":458.25,\"close\":459.915,\"volume\":11.609886},{\"time\":1512658320000,\"open\":459.9195,\"high\":459.9195,\"low\":458.25,\"close\":458.25,\"volume\":12.872831000000001},{\"time\":1512658200000,\"open\":458.9799,\"high\":459.9999,\"low\":458.3533,\"close\":459.04,\"volume\":58.48907799999999},{\"time\":1512658080000,\"open\":459.85,\"high\":459.85,\"low\":458.01,\"close\":459.03,\"volume\":13.404166999999998},{\"time\":1512657960000,\"open\":459.3,\"high\":459.9299,\"low\":459.0247,\"close\":459.9299,\"volume\":3.379731},{\"time\":1512657840000,\"open\":457,\"high\":461.485,\"low\":456.9999,\"close\":459.2001,\"volume\":71.87038399999999},{\"time\":1512657720000,\"open\":456.9998,\"high\":457,\"low\":455.13,\"close\":456.9998,\"volume\":26.976115},{\"time\":1512657600000,\"open\":454.01,\"high\":457,\"low\":453.7304,\"close\":455.0901,\"volume\":21.27039},{\"time\":1512657480000,\"open\":456.6197,\"high\":456.6197,\"low\":453.58,\"close\":456.6184,\"volume\":17.934798999999998},{\"time\":1512657360000,\"open\":456.2,\"high\":456.6257,\"low\":452.8014,\"close\":452.8406,\"volume\":53.89019999999999},{\"time\":1512657240000,\"open\":452.7901,\"high\":455.7999,\"low\":452.7901,\"close\":453.0005,\"volume\":36.948184000000005},{\"time\":1512657120000,\"open\":455.4,\"high\":455.7,\"low\":452.9997,\"close\":454.4998,\"volume\":34.396466},{\"time\":1512657000000,\"open\":455.8001,\"high\":456.0001,\"low\":455.4,\"close\":455.4,\"volume\":16.238931999999995},{\"time\":1512656880000,\"open\":457.0005,\"high\":457.0005,\"low\":455.3001,\"close\":455.3001,\"volume\":3.457273},{\"time\":1512656760000,\"open\":458,\"high\":458,\"low\":457.0005,\"close\":457.0005,\"volume\":45.401731},{\"time\":1512656640000,\"open\":458.0001,\"high\":458.69,\"low\":457.0005,\"close\":458.69,\"volume\":8.098551999999998},{\"time\":1512656520000,\"open\":457.9689,\"high\":458.6998,\"low\":457.9688,\"close\":458.6997,\"volume\":13.637384999999998},{\"time\":1512656400000,\"open\":457.9699,\"high\":457.9699,\"low\":457.3006,\"close\":457.4001,\"volume\":7.547740999999999},{\"time\":1512656280000,\"open\":457.0005,\"high\":457.9999,\"low\":457.0005,\"close\":457.9998,\"volume\":47.632526},{\"time\":1512656160000,\"open\":457.0005,\"high\":458.6999,\"low\":457.0005,\"close\":457.0005,\"volume\":39.07376},{\"time\":1512656040000,\"open\":458.0098,\"high\":458.0099,\"low\":458,\"close\":458,\"volume\":3.4802279999999994},{\"time\":1512655920000,\"open\":458.1001,\"high\":458.9754,\"low\":458,\"close\":458.9667,\"volume\":18.986507000000003},{\"time\":1512655800000,\"open\":458.1001,\"high\":458.9779,\"low\":458.1,\"close\":458.1001,\"volume\":13.837756},{\"time\":1512655680000,\"open\":458.4999,\"high\":458.4999,\"low\":458.1001,\"close\":458.4999,\"volume\":2.663183},{\"time\":1512655560000,\"open\":459.4508,\"high\":459.4508,\"low\":458.1,\"close\":458.9398,\"volume\":7.6234660000000005},{\"time\":1512655440000,\"open\":458.0001,\"high\":458.8098,\"low\":458,\"close\":458.4993,\"volume\":26.303636999999995},{\"time\":1512655320000,\"open\":457.5799,\"high\":458.8099,\"low\":457.5799,\"close\":458.8099,\"volume\":9.559527},{\"time\":1512655200000,\"open\":457.5613,\"high\":460.9859,\"low\":456,\"close\":457.5799,\"volume\":35.871766},{\"time\":1512655080000,\"open\":460.9696,\"high\":461.47,\"low\":459.0602,\"close\":460.2202,\"volume\":27.905336000000002},{\"time\":1512654960000,\"open\":460,\"high\":460.9696,\"low\":460,\"close\":460.9696,\"volume\":29.459847},{\"time\":1512654840000,\"open\":457.5505,\"high\":460,\"low\":457.5505,\"close\":460,\"volume\":20.385653},{\"time\":1512654720000,\"open\":457,\"high\":459.8,\"low\":457,\"close\":459.8,\"volume\":19.424993},{\"time\":1512654600000,\"open\":457,\"high\":457,\"low\":456.7303,\"close\":457,\"volume\":6.2705020000000005},{\"time\":1512654480000,\"open\":456.9991,\"high\":457,\"low\":456.9991,\"close\":457,\"volume\":22.446807999999997},{\"time\":1512654360000,\"open\":457,\"high\":457,\"low\":457,\"close\":457,\"volume\":11.029129000000001},{\"time\":1512654240000,\"open\":456.49,\"high\":457,\"low\":456.4,\"close\":457,\"volume\":6.967039999999999},{\"time\":1512654120000,\"open\":456.4898,\"high\":456.49,\"low\":456.48,\"close\":456.49,\"volume\":13.294732},{\"time\":1512654000000,\"open\":456.0301,\"high\":456.4899,\"low\":456.0202,\"close\":456.4899,\"volume\":2.608174},{\"time\":1512653880000,\"open\":456.4899,\"high\":456.4899,\"low\":456.4899,\"close\":456.4899,\"volume\":2.794187},{\"time\":1512653760000,\"open\":456.49,\"high\":456.5,\"low\":455.7651,\"close\":456.4999,\"volume\":10.994623},{\"time\":1512653640000,\"open\":455.9693,\"high\":456.4997,\"low\":455.2205,\"close\":456.4899,\"volume\":7.246856000000001},{\"time\":1512653520000,\"open\":455.7007,\"high\":455.7007,\"low\":452.4484,\"close\":452.9999,\"volume\":36.605721},{\"time\":1512653400000,\"open\":455.9693,\"high\":456.4999,\"low\":455.4301,\"close\":456.4999,\"volume\":12.524837000000002},{\"time\":1512653280000,\"open\":454.5502,\"high\":455.9699,\"low\":454.5502,\"close\":455.9399,\"volume\":2.34985},{\"time\":1512653160000,\"open\":455.89,\"high\":455.9699,\"low\":454,\"close\":455.9698,\"volume\":34.94219800000001},{\"time\":1512653040000,\"open\":455.916,\"high\":455.9698,\"low\":454.6301,\"close\":454.64,\"volume\":3.9479500000000005},{\"time\":1512652920000,\"open\":454.3001,\"high\":456.01,\"low\":454.0702,\"close\":455.9195,\"volume\":27.215795},{\"time\":1512652800000,\"open\":454.0401,\"high\":456.01,\"low\":454.0401,\"close\":454.3302,\"volume\":8.068266000000001},{\"time\":1512652680000,\"open\":453,\"high\":456.01,\"low\":452.95,\"close\":456.0099,\"volume\":28.634204999999998},{\"time\":1512652560000,\"open\":452.9688,\"high\":453,\"low\":452.5607,\"close\":452.96,\"volume\":22.871554999999997},{\"time\":1512652440000,\"open\":452.799,\"high\":452.97,\"low\":451.02,\"close\":451.3825,\"volume\":25.388108000000003},{\"time\":1512652320000,\"open\":452.97,\"high\":452.97,\"low\":452.7001,\"close\":452.7001,\"volume\":16.058968999999998},{\"time\":1512652200000,\"open\":452.97,\"high\":452.97,\"low\":452.6003,\"close\":452.62,\"volume\":14.910845},{\"time\":1512652080000,\"open\":452.8,\"high\":452.97,\"low\":452.78,\"close\":452.97,\"volume\":18.506535},{\"time\":1512651960000,\"open\":452.7899,\"high\":452.7899,\"low\":452.5,\"close\":452.78,\"volume\":7.239941},{\"time\":1512651840000,\"open\":452.7999,\"high\":452.8,\"low\":452.5,\"close\":452.5,\"volume\":18.158150999999997},{\"time\":1512651720000,\"open\":452.8999,\"high\":452.97,\"low\":452.7001,\"close\":452.7001,\"volume\":14.257836},{\"time\":1512651600000,\"open\":452.7,\"high\":452.7,\"low\":452.7,\"close\":452.7,\"volume\":0.3},{\"time\":1512651480000,\"open\":451.2495,\"high\":452.5001,\"low\":451.2004,\"close\":452.5,\"volume\":21.238703},{\"time\":1512651360000,\"open\":451.2494,\"high\":451.2495,\"low\":450.7201,\"close\":451.2495,\"volume\":3.8705600000000002},{\"time\":1512651240000,\"open\":451.0198,\"high\":451.2495,\"low\":451.0198,\"close\":451.2494,\"volume\":1.5218279999999997},{\"time\":1512651120000,\"open\":451.0196,\"high\":451.0198,\"low\":450.9857,\"close\":451.0198,\"volume\":0.8999100000000001},{\"time\":1512651000000,\"open\":451,\"high\":451.0199,\"low\":450.4404,\"close\":450.4404,\"volume\":9.499381},{\"time\":1512650880000,\"open\":451.08,\"high\":451.0899,\"low\":450.3001,\"close\":450.3001,\"volume\":4.116864},{\"time\":1512650760000,\"open\":451.2533,\"high\":451.2533,\"low\":450.3809,\"close\":451.1598,\"volume\":13.489802},{\"time\":1512650640000,\"open\":450.39,\"high\":451.2472,\"low\":450.39,\"close\":450.4203,\"volume\":1.4419849999999999},{\"time\":1512650520000,\"open\":450.62,\"high\":451.2593,\"low\":450.61,\"close\":451.2593,\"volume\":1.156545},{\"time\":1512650400000,\"open\":451.2999,\"high\":451.2999,\"low\":450.3832,\"close\":451.2596,\"volume\":10.651969000000001},{\"time\":1512650280000,\"open\":451.2999,\"high\":451.2999,\"low\":450.393,\"close\":450.3931,\"volume\":3.662249},{\"time\":1512650160000,\"open\":451.25,\"high\":451.2999,\"low\":450.1702,\"close\":451.2999,\"volume\":5.359189}];\n    var trades = [];\n\n    withData(data, trades)\n</script>\n<pre><code>last balance: 358.45244248 (-0.58%)\nbuy hold: 358.42887441 (-0.59%)\nvs. buy hold: 0.01%\n0 trades over 1 days (avg 0.00 trades/day)</pre></code>\n</body>\n</html>\n"
  },
  {
    "path": "stats/readme.md",
    "content": "## Stats\n\nHTML Outputs from trades will be placed here!\n"
  },
  {
    "path": "templates/dashboard.ejs",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n    <meta name=\"robots\" content=\"noindex, nofollow\">\n    <link rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"assets-zenbot/zenbot_square.png\">\n\n    <link rel=\"manifest\" href=\"assets/manifest.json\">\n\n    <meta name=\"mobile-web-app-capable\" content=\"yes\">\n    <meta name=\"apple-mobile-web-app-capable\" content=\"yes\">\n    <meta name=\"theme-color\" content=\"#ff6600\">\n    <meta name=\"msapplication-navbutton-color\" content=\"#ff6600\">\n    <meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\">\n    <meta name=\"msapplication-starturl\" content=\"/\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n\n    <link rel=\"icon\" type=\"image/png\" sizes=\"330x203\" href=\"assets-zenbot/logo.png\">\n    <link rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"330x203\" href=\"assets-zenbot/logo.png\">\n\n    <title><%= asset.toUpperCase() %>/<%= currency.toUpperCase() %> on <%= exchange.name.toUpperCase() %> - Dashboard</title>\n    <!-- Webpack compiled -->\n    <link href=\"assets-wp/app.bundle.css\" rel=\"stylesheet\">\n    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->\n    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->\n    <!--[if lt IE 9]>\n    <script src=\"https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js\"></script>\n    <script src=\"https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js\"></script>\n    <![endif]-->\n</head>\n\n<body class=\"hide-sidebar\" >\n<!-- ============================================================== -->\n<!-- Preloader -->\n<!-- ============================================================== -->\n<div class=\"preloader\">\n    <svg class=\"circular\" viewBox=\"25 25 50 50\">\n        <circle class=\"path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke-width=\"2\" stroke-miterlimit=\"10\" />\n    </svg>\n</div>\n<!-- ============================================================== -->\n<!-- Wrapper -->\n<!-- ============================================================== -->\n<div id=\"wrapper\">\n    <!-- ============================================================== -->\n    <!-- Page Content -->\n    <!-- ============================================================== -->\n    <div id=\"page-wrapper\">\n        <div class=\"container-fluid\">\n            <div class=\"row bg-title\">\n                <div class=\"col-lg-3 col-md-4 col-sm-4 col-12\">\n                    <h4 class=\"page-title\">Dashboard</h4>\n                </div>\n                <div class=\"col-lg-9 col-sm-8 col-md-8 col-12\">\n                    <ol class=\"breadcrumb\">\n                        <li>Running for <%= moment(boot_time).toNow(true) %></li>\n                    </ol>\n                </div>\n                <!-- /.col-lg-12 -->\n            </div>\n            <!-- /.row -->\n            <!-- ============================================================== -->\n            <!-- Different data widgets -->\n            <!-- ============================================================== -->\n            <!-- .row -->\n            <div class=\"row\">\n                <div class=\"col-lg-6 col-sm-6 col-12\">\n                    <div class=\"white-box analytics-info\">\n                        <h3 class=\"box-title\">Current Market</h3>\n                        <div class=\"row\">\n                            <div class=\"col-lg-4 col-12\">\n                                <ul class=\"list-inline two-part\">\n                                    <li class=\"text-left\" style=\"display:inline\"><i class=\"ti-arrow-up\"></i> <span class=\"text-info\">Price</span></li>\n                                    <li class=\"text-left\" style=\"display:inline\"><i class=\"ti-arrow-up text-info\"></i> <span><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 7}).format(period.close) %></span> <small><%= asset.toUpperCase() %></small></li>\n                                </ul>\n                            </div>\n                            <% if (typeof quote != \"undefined\") { %>\n                            <div class=\"col-lg-4 col-12\">\n                                <ul class=\"list-inline two-part\">\n                                    <li class=\"text-left\" style=\"display:inline\"><i class=\"ti-arrow-up\"></i> <span class=\"text-success\">ASK</span></li>\n                                    <li class=\"text-left\" style=\"display:inline\"><i class=\"ti-arrow-up text-success\"></i> <span><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 7}).format(quote.ask) %></span> <small><%= asset.toUpperCase() %></small></li>\n                                </ul>\n                            </div>\n                            <div class=\"col-lg-4 col-12\">\n                                <ul class=\"list-inline two-part\">\n                                    <li class=\"text-left\" style=\"display:inline\"><i class=\"ti-arrow-up\"></i> <span class=\"text-danger\">BID</span></li>\n                                    <li class=\"text-left\" style=\"display:inline\"><i class=\"ti-arrow-up text-danger\"></i> <span><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 7}).format(quote.bid) %></span> <small><%= asset.toUpperCase() %></small></li>\n                                </ul>\n                            </div>\n                            <% } %>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"col-lg-6 col-sm-6 col-12\">\n                    <div class=\"white-box analytics-info\">\n                        <h3 class=\"box-title\">Capital</h3>\n                        <div class=\"row\">\n                            <div class=\"col-lg-<% if (typeof deposit != 'undefined') { %>4<% } else { %>6<% } %> col-12\">\n                                <ul class=\"list-inline two-part\">\n                                    <li class=\"text-left\" style=\"display:inline\"><i class=\"ti-arrow-up text-purple\"></i> <span class=\"text-purple\">Asset</span></li>\n                                    <li class=\"text-left\" style=\"display:inline\"><i class=\"ti-arrow-up text-purple\"></i> <span><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false,  minimumFractionDigits: 2, maximumFractionDigits: 8}).format(balance.asset) %></span> <small><%= asset.toUpperCase() %></small></li>\n                                </ul>\n                            </div>\n                            <% if (typeof deposit != \"undefined\") { %>\n                            <div class=\"col-lg-4 col-12\">\n                                <ul class=\"list-inline two-part\">\n                                    <li class=\"text-left\" style=\"display:inline\"><i class=\"ti-arrow-up text-purple\"></i> <span class=\"text-purple\">Deposit</span></li>\n                                    <li class=\"text-left\" style=\"display:inline\"><i class=\"ti-arrow-up text-purple\"></i> <span><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false,  minimumFractionDigits: 2, maximumFractionDigits: 8}).format(balance.deposit) %></span> <small><%= currency.toUpperCase() %></small></li>\n                                </ul>\n                            </div>\n                            <% } %>\n                            <div class=\"col-lg-<% if (typeof deposit != 'undefined') { %>4<% } else { %>6<% } %> col-12\">\n                                <ul class=\"list-inline two-part\">\n                                    <li class=\"text-left\" style=\"display:inline\"><i class=\"ti-arrow-up text-purple\"></i> <span class=\"text-purple\">Currency</span></li>\n                                    <li class=\"text-left\" style=\"display:inline\"><i class=\"ti-arrow-up text-purple\"></i> <span><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 8}).format(balance.currency) %></span> <small><%= currency.toUpperCase() %></small></li>\n                                </ul>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n\n            <div class=\"row\">\n                <% if (typeof stats != \"undefined\") { %>\n                <div class=\"col-lg-3 col-sm-6 col-12\">\n                    <div class=\"white-box analytics-info\">\n                        <h3 class=\"box-title\">Last balance (<%= new Intl.NumberFormat(\"en-US\", {style: \"percent\", minimumFractionDigits: 2, maximumFractionDigits: 2}).format((parseFloat(stats.profit)/100)-(parseFloat(stats.buy_hold_profit)/100) ) %> vs buy hold)</h3>\n                        <ul class=\"list-inline one-part\">\n                            <li class=\"text-right text-success\"><i class=\"ti-arrow-up\"></i> <span class=\"counter\"><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 8, maximumFractionDigits: 8}).format(stats.tmp_balance) %></span> <small><%= currency.toUpperCase() %></small></li>\n                            <li class=\"text-right text-<% if (parseFloat(stats.profit) < 0) { %>danger<% } else { %>success<% } %>\"\"><i class=\"ti-arrow-up\"></i> <span><%= stats.profit %></span> <small>of profit</small></li>\n                        </ul>\n                    </div>\n                </div>\n                <div class=\"col-lg-3 col-sm-6 col-12\">\n                    <div class=\"white-box analytics-info\">\n                        <h3 class=\"box-title\">Buy hold</h3>\n                        <ul class=\"list-inline one-part\">\n                            <li class=\"text-right text-info\"><i class=\"ti-arrow-up\"></i> <span class=\"counter\"><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 8, maximumFractionDigits: 8}).format(stats.buy_hold) %></span> <small><%= currency.toUpperCase() %></small></li>\n                            <li class=\"text-right text-<% if (parseFloat(stats.buy_hold_profit) < 0) { %>danger<% } else { %>success<% } %>\"\"><i class=\"ti-arrow-up\"></i> <span><%= stats.buy_hold_profit %></span> <small>of profit</small></li>\n                        </ul>\n                    </div>\n                </div>\n                <div class=\"col-lg-3 col-sm-6 col-12\">\n                    <div class=\"white-box analytics-info\">\n                        <h3 class=\"box-title\">Trades per day</h3>\n                        <ul class=\"list-inline one-part\">\n                            <li class=\"text-right\"><i class=\"ti-arrow-up text-purple\"></i> <span class=\"counter text-purple\"><%= stats.trade_per_day %></span></li>\n                            <li class=\"text-right\"><i class=\"ti-arrow-up text-purple\"></i> <span class=\"text-purple\"><%= my_trades.length %> trade<% if (my_trades.length != 1) { %>s<% } %> over <%= day_count %> day<% if (day_count != 1) { %>s<% } %></span></li>\n                        </ul>\n                    </div>\n                </div>\n                    <% if (typeof stats.error_rate != \"undefined\") { %>\n                    <div class=\"col-lg-3 col-sm-6 col-12\">\n                        <div class=\"white-box analytics-info\">\n                            <h3 class=\"box-title\">Error Rate</h3>\n                            <ul class=\"list-inline one-part\">\n                                <li class=\"text-right text-<% if (parseFloat(stats.error_rate) > 0) { %>danger<% } else { %>success<% } %>\"\"><i class=\"ti-arrow-up\"></i> <span><%= stats.error_rate %></span></li>\n                                <li class=\"text-right\"><i class=\"ti-arrow-up text-purple\"></i> <span class=\"counter text-purple\">Win/Loss: <%= stats.win %>/<%= stats.losses %></span></li>\n                            </ul>\n                        </div>\n                    </div>\n                    <% } %>\n                <% } %>\n            </div>\n\n            <!--/.row -->\n            <!--row -->\n            <!-- /.row -->\n            <div class=\"row\">\n                <div class=\"col-md-12 col-lg-12 col-sm-12 col-12\">\n                    <div class=\"white-box\">\n                        <h3 class=\"box-title\"><%= exchange.name.toUpperCase() %> <%= asset.toUpperCase() %>/<%= currency.toUpperCase() %> Trade chart</h3>\n                        <div id=\"trade_chart\" style=\"height: 505px;\">\n                        </div>\n                        <script src=\"assets-wp/echarts.bundle.js\" charset=\"utf8\"></script>\n                        <script type=\"text/javascript\">\n\n                            function unpack(rows, key, offset) {\n                                return rows.map(function(row) {\n                                    return { value: [ row.time - offset * 60000, row[key] ] };\n                                });\n                            }\n\n                            var xmlhttp = new XMLHttpRequest();\n                            xmlhttp.open(\"GET\", \"trades\", true);\n                            xmlhttp.onreadystatechange = function() {\n                                if (this.readyState == 4 && this.status == 200) {\n                                    var tradeData = JSON.parse(this.responseText);\n                                    var trades = tradeData.trades;\n                                    var lookback = tradeData.lookback;\n                                    var my_trades = tradeData.my_trades;\n                                    var offset = tradeData.tz_offset;\n\n                                    var trade_chart = echarts.init(document.getElementById('trade_chart'));\n\n                                    var lastTrade = trades[trades.length < 500 ? 0 : trades.length - 500].time;\n                                    var rangeStart = lastTrade - offset * 60000;\n\n                                    var options = {\n                                        useUTC: true,\n                                        grid: {\n                                            left: 60,\n                                            right: 60\n                                        },\n                                        xAxis: [\n                                            {\n                                                type: 'time',\n                                                axisLabel: {\n                                                    formatter: function (value) {\n                                                        return echarts.format.formatTime('yyyy-MM-dd hh:mm:ss', value, true);\n                                                    }\n                                                }\n                                            }\n                                        ],\n                                        yAxis: [\n                                            {\n                                                name: 'Price',\n                                                position: 'right',\n                                                scale: true\n                                            },\n                                            {\n                                                name: 'Volume',\n                                                scale: true\n                                            }\n                                        ],\n                                        toolbox: {\n                                            show: true,\n                                            showTitle: false,\n                                            feature: {\n                                                dataZoom: {},\n                                                restore: {},\n                                                saveAsImage: {}\n                                            }\n                                        },\n                                        tooltip : {\n                                            trigger: 'axis',\n                                            axisPointer: {\n                                                type: 'cross',\n                                            }\n                                        },\n                                        dataZoom: [\n                                            {\n                                                startValue: rangeStart\n                                            },\n                                            {\n                                                type: 'inside'\n                                            },\n                                        ],\n                                        series: [\n                                            {\n                                                name: 'Price',\n                                                type: 'line',\n                                                data: unpack(trades, 'price', offset)\n                                            },\n                                            {\n                                                name: 'Volume',\n                                                type: 'bar',\n                                                yAxisIndex: 1,\n                                                z: 1,\n                                                itemStyle: {\n                                                    opacity: 0.25\n                                                },\n                                                data: unpack(trades, 'size', offset)\n                                            },\n                                            {\n                                                name: 'High',\n                                                type: 'candlestick',\n                                                z: 1,\n                                                itemStyle: {\n                                                    color: 'rgba(40,167,69,0.5)',  // bullish\n                                                    borderColor: '#28a745',\n                                                    color0: 'rgba(220,53,69,0.5)', // bearish\n                                                    borderColor0: '#dc3545'\n                                                },\n                                                data: []\n                                            },\n                                            {\n                                                type: 'line',\n                                                smooth: true,\n                                                lineStyle: {\n                                                    type: 'dotted'\n                                                },\n                                                data: unpack(my_trades, 'price', offset),\n                                                tooltip: {\n                                                    show: false\n                                                }\n                                            },\n                                            {\n                                                name: 'Buy',\n                                                type: 'scatter',\n                                                symbol: 'triangle',\n                                                data: [],\n                                                itemStyle: {\n                                                    color: '#28a745'\n                                                },\n                                                markPoint: {\n                                                    symbol: 'arrow',\n                                                    itemStyle: {\n                                                        color: '#28a745'\n                                                    },\n                                                    symbolOffset: [ 0, 10 ],\n                                                    data: []\n                                                }\n                                            },\n                                            {\n                                                name: 'Sell',\n                                                type: 'scatter',\n                                                symbol: 'triangle',\n                                                symbolRotate: 180,\n                                                data: [],\n                                                itemStyle: {\n                                                    color: '#dc3545'\n                                                },\n                                                markPoint: {\n                                                    symbol: 'arrow',\n                                                    itemStyle: {\n                                                        color: '#dc3545'\n                                                    },\n                                                    symbolRotate: 180,\n                                                    symbolOffset: [ 0, -10 ],\n                                                    data: []\n                                                }\n                                            }\n                                        ]\n                                    };\n\n                                    for (i = 0; i < lookback.length; i++) {\n                                        options.series[2].data.push({\n                                            value: [ lookback[i].close_time - offset * 60000, lookback[i].open, lookback[i].close, lookback[i].low, lookback[i].high ] // OCLH -> OHLC\n                                        });\n                                    }\n\n                                    for (i = 0; i < my_trades.length; i++) {\n                                        if (my_trades[i].type == 'buy') {\n                                            options.series[4].data.push({\n                                                value: [ my_trades[i].time - offset * 60000, my_trades[i].price ]\n                                            });\n                                            options.series[4].markPoint.data.push({\n                                                xAxis: my_trades[i].time - offset * 60000,\n                                                yAxis: my_trades[i].price,\n                                                value: 'Bought',\n                                            });\n                                        } else {\n                                            options.series[5].data.push({\n                                                value: [ my_trades[i].time - offset * 60000, my_trades[i].price ]\n                                            });\n                                            options.series[5].markPoint.data.push({\n                                                xAxis: my_trades[i].time - offset * 60000,\n                                                yAxis: my_trades[i].price,\n                                                value: 'Sold',\n                                            });\n                                        }\n                                    }\n\n                                    trade_chart.setOption(options);\n\n                                    window.onresize = function() {\n                                        trade_chart.resize();\n                                    };\n                                }\n                            };\n                            xmlhttp.send();\n                        </script>\n                    </div>\n                </div>\n            </div>\n            <!-- ============================================================== -->\n            <!-- table -->\n            <!-- ============================================================== -->\n            <div class=\"row\">\n                <div class=\"col-md-12 col-lg-12 col-sm-12\">\n                    <div class=\"white-box\">\n                        <h3 class=\"box-title\">My trades</h3>\n                        <div class=\"table-responsive\">\n                            <table class=\"table\">\n                                <thead>\n                                <tr>\n                                    <th>TYPE</th>\n                                    <th>AMOUNT</th>\n                                    <th>PRICE</th>\n                                    <th>TOTAL</th>\n                                    <th>FEE</th>\n                                    <th>SLIPPAGE</th>\n                                    <th>DATE</th>\n                                    <th>EXECUTION TIME</th>\n                                    <th>PROFIT</th>\n                                </tr>\n                                </thead>\n                                <tbody>\n                                <% if (typeof buy_order != \"undefined\") { %>\n                                <tr>\n                                    <td><span class='text-success'>BUY</span></td>\n                                    <td><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 8, maximumFractionDigits: 8}).format(buy_order.size) %> <%= asset.toUpperCase() %></td>\n                                    <td><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 7}).format(buy_order.price) %> <%= currency.toUpperCase() %></td>\n                                    <td>-</td>\n                                    <td>-</td>\n                                    <td>-</td>\n                                    <td><%= moment(buy_order.time).format('YYYY-MM-DD HH:mm:ss') %></td>\n                                    <td><span class='text-info'>Waiting</span></td>\n                                    <td>-</td>\n                                </tr>\n                                <% } %>\n                                <% if (typeof sell_order != \"undefined\") { %>\n                                <tr>\n                                    <td><span class='text-danger'>SELL</span></td>\n                                    <td><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 8, maximumFractionDigits: 8}).format(sell_order.size) %> <%= asset.toUpperCase() %></td>\n                                    <td><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 7}).format(sell_order.price) %> <%= currency.toUpperCase() %></td>\n                                    <td>-</td>\n                                    <td>-</td>\n                                    <td>-</td>\n                                    <td><%= moment(sell_order.time).format('YYYY-MM-DD HH:mm:ss') %></td>\n                                    <td><span class='text-info'>Waiting</span></td>\n                                    <td>-</td>\n                                </tr>\n                                <% } %>\n                                <% if (my_trades) { %>\n                                <% my_trades.sort(function(a,b){return a.time > b.time ? -1 : 1;}).forEach(function(trade){ %>\n                                <tr>\n                                    <td><span class='text-<% if (trade.type == \"buy\") { %>success<% } else { %>danger<% } %>'><%= trade.type.toUpperCase() %></span></td>\n                                    <td><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 8, maximumFractionDigits: 8}).format(trade.size) %> <%= asset.toUpperCase() %></td>\n                                    <td><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 7}).format(trade.price) %> <%= currency.toUpperCase() %></td>\n                                    <td><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 7}).format(trade.size * trade.price) %> <%= currency.toUpperCase() %></td>\n                                    <td><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 8}).format(trade.fee) %> <% if (trade.type == \"buy\") { %> <%= asset.toUpperCase() %> <% } else { %> <%= currency.toUpperCase() %> <% } %></td>\n                                    <td><span class=\"text-<% if (trade.slippage > 0) { %>danger<% } else { %>success<% } %>\"><%= new Intl.NumberFormat(\"en-US\", {style: \"percent\", useGrouping: false, minimumFractionDigits: 4, maximumFractionDigits: 4}).format(trade.slippage) %></span></td>\n                                    <td><%= moment(trade.time).format('YYYY-MM-DD HH:mm:ss') %></td>\n                                    <td><%= moment.duration(trade.execution_time).humanize() %></td>\n                                    <td><% if (trade.profit != null) { %><span class=\"text-<% if(trade.profit < 0) { %>danger<% } else { %>success<% } %>\"><%= new Intl.NumberFormat(\"en-US\", {style: \"percent\", useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 2}).format(trade.profit) %></span><% } else { %>-<% } %></td>\n                                </tr>\n                                <% }); %>\n                                <% } %>\n                                <% if (my_prev_trades) { %>\n                                <% my_prev_trades.reverse().forEach(function(trade){ %>\n                                <tr class=\"text-muted\">\n                                    <td><%= trade.type.toUpperCase() %></span></td>\n                                    <td><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 8, maximumFractionDigits: 8}).format(trade.size) %> <%= asset.toUpperCase() %></td>\n                                    <td><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 7}).format(trade.price) %> <%= currency.toUpperCase() %></td>\n                                    <td><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 7}).format(trade.size * trade.price) %> <%= currency.toUpperCase() %></td>\n                                    <td><%= new Intl.NumberFormat(\"en-US\", {useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 8}).format(trade.fee) %> <% if (trade.type == \"buy\") { %> <%= asset.toUpperCase() %> <% } else { %> <%= currency.toUpperCase() %> <% } %></td>\n                                    <td><%= new Intl.NumberFormat(\"en-US\", {style: \"percent\", useGrouping: false, minimumFractionDigits: 4, maximumFractionDigits: 4}).format(trade.slippage) %></td>\n                                    <td><%= moment(trade.time).format('YYYY-MM-DD HH:mm:ss') %></td>\n                                    <td><%= moment.duration(trade.execution_time).humanize() %></td>\n                                    <td><% if (trade.profit) { %><%= new Intl.NumberFormat(\"en-US\", {style: \"percent\", useGrouping: false, minimumFractionDigits: 2, maximumFractionDigits: 2}).format(trade.profit) %><% } else { %>-<% } %></td>\n                                </tr>\n                                <% }); %>\n                                <% } %>\n\n                                <% if (!(typeof buy_order != \"undefined\" || typeof sell_order != \"undefined\") && !my_trades) { %>\n                                <tr><td colspan=\"6\" class=\"text-center\">There is no trades at the moment</td></tr>\n                                <% } %>\n                                </tbody>\n                            </table>\n                        </div>\n                    </div>\n                </div>\n            </div>\n\n\n            <!-- ============================================================== -->\n            <!-- table -->\n            <!-- ============================================================== -->\n            <div class=\"row\">\n                <div class=\"col-md-12 col-lg-12 col-sm-12\">\n                    <div class=\"white-box\">\n                        <h3 class=\"box-title\">CoinMarketCap Data</h3>\n                        <div class=\"table-responsive\">\n                            <table class=\"table\">\n                                <thead>\n                                <tr>\n                                    <th class='text-center'>RANK</th>\n                                    <th align=\"left\">NAME</th>\n                                    <th class='text-right'>PRICE (USD)</th>\n                                    <th class='text-right hidden-xs'>PRICE (BTC)</th>\n                                    <th class='text-right hidden-xs hidden-sm'>VOLUME</th>\n                                    <th class='text-right hidden-xs hidden-sm'>MARKET CAP</th>\n                                    <th class='text-right hidden-xs hidden-sm'>CURRENT SUPPLY</th>\n                                    <th class='text-right'>CHANGE 1H</th>\n                                    <th class='text-right'>CHANGE 24H</th>\n                                    <th class='text-right'>CHANGE 7D</th>\n                                </tr>\n                                </thead>\n                                <tbody id=\"market_data\">\n                                </tbody>\n                            </table>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <!-- /.container-fluid -->\n        <footer class=\"footer text-center\"> <%= (new Date()).getFullYear() %> &copy; zenbot </footer>\n    </div>\n    <!-- ============================================================== -->\n    <!-- End Page Content -->\n    <!-- ============================================================== -->\n</div>\n<!-- ============================================================== -->\n<!-- End Wrapper -->\n<!-- ============================================================== -->\n<!-- ============================================================== -->\n<!-- All Jquery -->\n<!-- ============================================================== -->\n<!-- Webpack compiled -->\n<script src=\"assets-wp/app.bundle.js\"></script>\n<!--<script src=\"assets-wp/common.bundle.js\"></script>-->\n\n<script>\n\n    var xmlhttp = new XMLHttpRequest();\n    xmlhttp.onreadystatechange = function() {\n        if (this.readyState == 4 && this.status == 200) {\n            var myObj = JSON.parse(this.responseText);\n\n            var row = \"\";\n            for (s = 0; s < myObj.length; s++) {\n                if(s==25)\n                    break;\n\n                row += \"<tr>\";\n                row += \"<td class='text-center'>\" + myObj[s].rank + \"</td>\";\n                row += \"<td><div class='s-s-\"+myObj[s].id+\" currency-logo-sprite'></div>\" + myObj[s].name + \" (\"+myObj[s].symbol+\")\" +  \"</td>\";\n                row += \"<td class='text-right'>\" + new Intl.NumberFormat(\"en-US\", {style: \"currency\", currency: \"USD\", minimumSignificantDigits: 2, maximumSignificantDigits: 6}).format(myObj[s].price_usd) + \"</td>\";\n                row += \"<td class='text-right hidden-xs'>\" + new Intl.NumberFormat(\"en-US\", {minimumSignificantDigits: 2, maximumSignificantDigits: 6}).format(myObj[s].price_btc) + \" BTC</td>\";\n                row += \"<td class='text-right hidden-xs hidden-sm'>\" + new Intl.NumberFormat(\"en-US\", {style: \"currency\", currency: \"USD\"}).format(myObj[s][\"24h_volume_usd\"]) + \"</td>\";\n                row += \"<td class='text-right hidden-xs hidden-sm'>\" + new Intl.NumberFormat(\"en-US\", {style: \"currency\", currency: \"USD\"}).format(myObj[s].market_cap_usd) + \"</td>\";\n                row += \"<td class='text-right hidden-xs hidden-sm'>\" + new Intl.NumberFormat(\"en-US\").format(myObj[s].total_supply) + \" \" + myObj[s].symbol + \"</td>\";\n                row += \"<td class='text-right'><span class='text-\"+((myObj[s].percent_change_1h > 0) ? 'success' : 'danger' )+\"'>\" + new Intl.NumberFormat(\"en-US\", {style: \"percent\", minimumSignificantDigits: 2}).format(myObj[s].percent_change_1h/100) + \"</span></td>\";\n                row += \"<td class='text-right'><span class='text-\"+((myObj[s].percent_change_24h > 0) ? 'success' : 'danger' )+\"'>\" + new Intl.NumberFormat(\"en-US\", {style: \"percent\", minimumSignificantDigits: 2}).format(myObj[s].percent_change_24h/100) + \"</span></td>\";\n                row += \"<td class='text-right'><span class='text-\"+((myObj[s].percent_change_7d > 0) ? 'success' : 'danger' )+\"'>\" + new Intl.NumberFormat(\"en-US\", {style: \"percent\", minimumSignificantDigits: 2}).format(myObj[s].percent_change_7d/100) + \"</span></td>\";\n                row += \"</tr>\";\n            }\n\n\n            document.getElementById(\"market_data\").innerHTML = row;\n        }\n\n    };\n\n\n    xmlhttp.open(\"GET\", \"https://api.coinmarketcap.com/v1/ticker/\", true);\n    xmlhttp.send();\n</script>\n</body>\n\n</html>\n"
  },
  {
    "path": "templates/dashboard_assets/css/animate.css",
    "content": "@charset \"UTF-8\";/*!\n * animate.css -http://daneden.me/animate\n * Version - 3.5.1\n * Licensed under the MIT license - http://opensource.org/licenses/MIT\n *\n * Copyright (c) 2016 Daniel Eden\n */.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}.animated.flipOutX,.animated.flipOutY,.animated.bounceIn,.animated.bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounce{from,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1.000);animation-timing-function:cubic-bezier(.215,.61,.355,1.000);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{from,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1.000);animation-timing-function:cubic-bezier(.215,.61,.355,1.000);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{from,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{from,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes pulse{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes rubberBand{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{from,to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{from,to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}to{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}to{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes tada{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{from{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}to{-webkit-transform:none;transform:none}}@keyframes wobble{from{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}to{-webkit-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{from,11.1%,to{-webkit-transform:none;transform:none}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{from,11.1%,to{-webkit-transform:none;transform:none}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes bounceIn{from,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1.000);animation-timing-function:cubic-bezier(.215,.61,.355,1.000)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes bounceIn{from,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1.000);animation-timing-function:cubic-bezier(.215,.61,.355,1.000)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{from,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1.000);animation-timing-function:cubic-bezier(.215,.61,.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInDown{from,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1.000);animation-timing-function:cubic-bezier(.215,.61,.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{from,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1.000);animation-timing-function:cubic-bezier(.215,.61,.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{from,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1.000);animation-timing-function:cubic-bezier(.215,.61,.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{from,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1.000);animation-timing-function:cubic-bezier(.215,.61,.355,1.000)}from{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInRight{from,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1.000);animation-timing-function:cubic-bezier(.215,.61,.355,1.000)}from{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{from,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1.000);animation-timing-function:cubic-bezier(.215,.61,.355,1.000)}from{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInUp{from,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1.000);animation-timing-function:cubic-bezier(.215,.61,.355,1.000)}from{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{from{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{from{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{from{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{from{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{from{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{from{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{from{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{from{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{from{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{from{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{from{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{from{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{from{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{from{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{from{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{from{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{from{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{from{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes flipOutX{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes flipOutY{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{from{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{from{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{from{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{from{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{from{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{from{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{from{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}@keyframes rotateOut{from{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}}@keyframes rotateOutDownLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutDownRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutUpLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}@keyframes rotateOutUpRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{from{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{from{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}to{opacity:1;-webkit-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}@keyframes rollOut{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInDown{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{from{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInLeft{from{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{from{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInRight{from{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInUp{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}\n"
  },
  {
    "path": "templates/dashboard_assets/css/colors/default.css",
    "content": "@import url(https://fonts.googleapis.com/css?family=Rubik:300,400,500,700,900);\n/*Theme Colors*/\n/*bootstrap Color*/\n/*Normal Color*/\n/*Border radius*/\n/*Preloader*/\n.preloader {\n    width: 100%;\n    height: 100%;\n    top: 0px;\n    position: fixed;\n    z-index: 99999;\n    background: #fff;\n}\n.preloader .cssload-speeding-wheel {\n    position: absolute;\n    top: calc(50% - 3.5px);\n    left: calc(50% - 3.5px);\n}\n/*Just change your choise color here its theme Colors*/\nbody {\n    background: #fff;\n}\n.top-left-part {\n    background: #fff;\n}\n.top-left-part .dark-logo {\n    display: none;\n}\n.top-left-part .light-logo {\n    display: inline-block;\n}\n/*Top Header Part*/\n.logo i {\n    color: #ffffff;\n}\n.navbar-header {\n    background: #2f323e;\n}\n.navbar-top-links > li > a {\n    color: #ffffff;\n}\n.sidebar .sidebar-head {\n    background: #ffffff;\n}\n.sidebar .sidebar-head h3 {\n    color: #686868;\n}\n/*Right panel*/\n.right-sidebar .rpanel-title {\n    background: #41b3f9;\n}\n/*Bread Crumb*/\n.bg-title .breadcrumb .active {\n    color: #41b3f9;\n}\n/*Sidebar*/\n.sidebar {\n    background: #fff;\n    box-shadow: 1px 0px 20px rgba(0, 0, 0, 0.08);\n}\n.sidebar .label-custom {\n    background: #01c0c8;\n}\n#side-menu li a {\n    color: #54667a;\n}\n#side-menu li a {\n    color: #54667a;\n    border-left: 0px solid #fff;\n}\n#side-menu > li > a {\n    border-left: 3px solid transperant;\n}\n#side-menu > li > a:hover,\n#side-menu > li > a:focus {\n    background: rgba(0, 0, 0, 0.07);\n}\n#side-menu > li > a.active {\n    background: transperant;\n    color: #54667a;\n    border-left: 3px solid #41b3f9;\n    font-weight: 500;\n}\n#side-menu ul > li > a:hover {\n    color: #41b3f9;\n}\n#side-menu ul > li > a.active {\n    color: #54667a;\n    font-weight: 500;\n}\n.user-profile .user-pro-body .u-dropdown {\n    color: #54667a;\n}\n/*themecolor*/\n.bg-theme {\n    background-color: #707cd2 !important;\n}\n.bg-theme-dark {\n    background-color: #41b3f9 !important;\n}\n/*Button*/\n.btn-custom {\n    background: #41b3f9;\n    border: 1px solid #41b3f9;\n    color: #ffffff;\n}\n.btn-custom:hover {\n    background: #41b3f9;\n    opacity: 0.8;\n    color: #ffffff;\n    border: 1px solid #41b3f9;\n}\n/*Custom tab*/\n.customtab li.active a,\n.customtab li.active a:hover,\n.customtab li.active a:focus {\n    border-bottom: 2px solid #41b3f9;\n    color: #41b3f9;\n}\n.tabs-vertical li.active a,\n.tabs-vertical li.active a:hover,\n.tabs-vertical li.active a:focus {\n    background: #41b3f9;\n    border-right: 2px solid #41b3f9;\n}\n/*Nav-pills*/\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:focus,\n.nav-pills > li.active > a:hover {\n    background: #41b3f9;\n    color: #ffffff;\n}\n/*Extra css*/\n.bg-theme {\n    background-color: #41b3f9 !important;\n}\n.panel-themecolor,\n.panel-theme {\n    border-color: #41b3f9;\n}\n.panel-themecolor .panel-heading,\n.panel-theme .panel-heading {\n    border-color: #41b3f9;\n    color: white;\n    background-color: #41b3f9;\n}\n.panel-themecolor .panel-heading a,\n.panel-theme .panel-heading a {\n    color: #ffffff;\n}\n.panel-themecolor .panel-heading a:hover,\n.panel-theme .panel-heading a:hover {\n    color: rgba(255, 255, 255, 0.5);\n}\n.panel-themecolor a,\n.panel-theme a {\n    color: #41b3f9;\n}\n.panel-themecolor a:hover,\n.panel-theme a:hover {\n    color: #0791e6;\n}\n"
  },
  {
    "path": "templates/dashboard_assets/css/spinners.css",
    "content": "\n\n.preloader{\n    position: relative;\n    margin: 0 auto;\n    width: 100px;\n}\n.preloader:before{\n    content: '';\n    display: block;\n    padding-top: 100%;\n}\n.circular {\n    animation: rotate 2s linear infinite;\n    height: 50px;\n    transform-origin: center center;\n    width: 50px;\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    margin: auto;\n}\n.path {\n    stroke-dasharray: 1, 200;\n    stroke-dashoffset: 0;\n    animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;\n    stroke-linecap: round;\n}\n@keyframes rotate {\n    100% {\n        transform: rotate(360deg);\n    }\n}\n\n@keyframes dash {\n    0% {\n        stroke-dasharray: 1, 200;\n        stroke-dashoffset: 0;\n    }\n    50% {\n        stroke-dasharray: 89, 200;\n        stroke-dashoffset: -35px;\n    }\n    100% {\n        stroke-dasharray: 89, 200;\n        stroke-dashoffset: -124px;\n    }\n}\n\n@keyframes color {\n    100%,\n    0% {\n        stroke: #d62d20;\n    }\n    40% {\n        stroke: #0057e7;\n    }\n    66% {\n        stroke: #008744;\n    }\n    80%,\n    90% {\n        stroke: #ffa700;\n    }\n}\n"
  },
  {
    "path": "templates/dashboard_assets/css/style.css",
    "content": "@import url(https://fonts.googleapis.com/css?family=Rubik:300,400,500,700,900);\n@import url(https://coinmarketcap.com/static/public/sprites/all_views_market-cap-by-circulating-supply_0.css);\n\n@import \"spinners.css\";\n.preloader {\n    width: 100%;\n    height: 100%;\n    top: 0;\n    position: fixed;\n    z-index: 99999;\n    background: #fff\n}\n.preloader .cssload-speeding-wheel {\n    position: absolute;\n    top: calc(50% - 3.5px);\n    left: calc(50% - 3.5px)\n}\n* {\n    outline: 0!important\n}\nbody {\n    background: #2f323e;\n    font-family: Rubik, sans-serif;\n    margin: 0;\n    overflow-x: hidden;\n    color: #313131;\n    font-weight: 300\n}\nhtml {\n    position: relative;\n    min-height: 100%;\n    background: #fff\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n    color: #313131;\n    font-family: Rubik, sans-serif;\n    margin: 10px 0;\n    font-weight: 300\n}\nh1 {\n    line-height: 48px;\n    font-size: 36px\n}\nh2 {\n    line-height: 36px;\n    font-size: 24px\n}\nh3 {\n    line-height: 30px;\n    font-size: 21px\n}\nh4 {\n    line-height: 22px;\n    font-size: 18px\n}\nh5 {\n    font-size: 16px;\n    font-size: 14px\n}\n.dn {\n    display: none\n}\n.db {\n    display: block\n}\n.light_op_text {\n    color: rgba(255, 255, 255, .5)\n}\nblockquote {\n    border-left: 5px solid #2cabe3!important;\n    border: 1px solid rgba(120, 130, 140, .13)\n}\np {\n    line-height: 1.6\n}\nb {\n    font-weight: 500\n}\na:active,\na:focus,\na:hover {\n    outline: 0;\n    text-decoration: none\n}\n.clear {\n    clear: both\n}\n.font-12 {\n    font-size: 12px\n}\nhr {\n    border-color: rgba(120, 130, 140, .13)\n}\n.b-t {\n    border-top: 1px solid rgba(120, 130, 140, .13)\n}\n.b-b {\n    border-bottom: 1px solid rgba(120, 130, 140, .13)\n}\n.b-l {\n    border-left: 1px solid rgba(120, 130, 140, .13)\n}\n.b-r {\n    border-right: 1px solid rgba(120, 130, 140, .13)\n}\n.b-all {\n    border: 1px solid rgba(120, 130, 140, .13)\n}\n.b-none {\n    border: 0!important\n}\n.max-height {\n    height: 310px;\n    overflow: auto\n}\n.p-0 {\n    padding: 0!important\n}\n.p-10 {\n    padding: 10px!important\n}\n.p-20 {\n    padding: 20px!important\n}\n.p-30 {\n    padding: 30px!important\n}\n.p-l-0 {\n    padding-left: 0!important\n}\n.p-l-10 {\n    padding-left: 10px!important\n}\n.p-l-20 {\n    padding-left: 20px!important\n}\n.p-l-30 {\n    padding-left: 30px!important\n}\n.p-r-0 {\n    padding-right: 0!important\n}\n.p-r-10 {\n    padding-right: 10px!important\n}\n.p-r-20 {\n    padding-right: 20px!important\n}\n.p-r-30 {\n    padding-right: 30px!important\n}\n.p-r-40 {\n    padding-right: 40px!important\n}\n.p-t-0 {\n    padding-top: 0!important\n}\n.p-t-10 {\n    padding-top: 10px!important\n}\n.p-t-20 {\n    padding-top: 20px!important\n}\n.p-t-30 {\n    padding-top: 30px!important\n}\n.p-b-0 {\n    padding-bottom: 0!important\n}\n.p-b-10 {\n    padding-bottom: 10px!important\n}\n.p-b-20 {\n    padding-bottom: 20px!important\n}\n.p-b-30 {\n    padding-bottom: 30px!important\n}\n.p-b-40 {\n    padding-bottom: 40px!important\n}\n.m-0 {\n    margin: 0!important\n}\n.m-l-5 {\n    margin-left: 5px!important\n}\n.m-l-10 {\n    margin-left: 10px!important\n}\n.m-l-15 {\n    margin-left: 15px!important\n}\n.m-l-20 {\n    margin-left: 20px!important\n}\n.m-l-30 {\n    margin-left: 30px!important\n}\n.m-l-40 {\n    margin-left: 40px!important\n}\n.m-r-5 {\n    margin-right: 5px!important\n}\n.m-r-10 {\n    margin-right: 10px!important\n}\n.m-r-15 {\n    margin-right: 15px!important\n}\n.m-r-20 {\n    margin-right: 20px!important\n}\n.m-r-30 {\n    margin-right: 30px!important\n}\n.m-r-40 {\n    margin-right: 40px!important\n}\n.m-t-5 {\n    margin-top: 5px!important\n}\n.m-t-0 {\n    margin-top: 0!important\n}\n.m-t-10 {\n    margin-top: 10px!important\n}\n.m-t-15 {\n    margin-top: 15px!important\n}\n.m-t-20 {\n    margin-top: 20px!important\n}\n.m-t-30 {\n    margin-top: 30px!important\n}\n.m-t-40 {\n    margin-top: 40px!important\n}\n.m-b-0 {\n    margin-bottom: 0!important\n}\n.m-b-5 {\n    margin-bottom: 5px!important\n}\n.m-b-10 {\n    margin-bottom: 10px!important\n}\n.m-b-15 {\n    margin-bottom: 15px!important\n}\n.m-b-20 {\n    margin-bottom: 20px!important\n}\n.m-b-30 {\n    margin-bottom: 30px!important\n}\n.m-b-40 {\n    margin-bottom: 40px!important\n}\n.vt {\n    vertical-align: top\n}\n.vb {\n    vertical-align: bottom\n}\n.font-bold {\n    font-weight: 700\n}\n.font-medium {\n    font-weight: 500\n}\n.font-normal {\n    font-weight: 400\n}\n.font-light {\n    font-weight: 300\n}\n.pull-in {\n    margin-left: -15px;\n    margin-right: -15px\n}\n.b-0 {\n    border: none!important\n}\n.vertical-middle,\n.vm {\n    vertical-align: middle\n}\n.mdi {\n    font-size: 17px\n}\n.bx-shadow {\n    -moz-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .1);\n    -webkit-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .1);\n    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .1)\n}\n.mx-box {\n    max-height: 380px;\n    min-height: 380px\n}\n.thumb-sm {\n    height: 32px;\n    width: 32px\n}\n.thumb-md {\n    height: 48px;\n    width: 48px\n}\n.thumb-lg {\n    height: 88px;\n    width: 88px\n}\n.txt-oflo {\n    text-overflow: ellipsis;\n    overflow: hidden;\n    white-space: nowrap\n}\n.di {\n    display: inline-block\n}\n.get-code {\n    color: #263238;\n    cursor: pointer;\n    border-radius: 100%;\n    background: #fff;\n    padding: 4px 5px;\n    font-size: 10px;\n    margin: 0 5px;\n    vertical-align: middle\n}\n.badge {\n    text-transform: uppercase;\n    font-weight: 600;\n    padding: 3px 5px;\n    font-size: 12px;\n    margin-top: 1px;\n    background-color: #fb4\n}\n.badge-xs {\n    font-size: 9px\n}\n.badge-sm,\n.badge-xs {\n    -webkit-transform: translate(0, -2px);\n    -ms-transform: translate(0, -2px);\n    -o-transform: translate(0, -2px);\n    transform: translate(0, -2px)\n}\n.badge-success {\n    background-color: #7ace4c\n}\n.badge-info {\n    background-color: #41b3f9\n}\n.badge-warning {\n    background-color: #fb4\n}\n.badge-danger {\n    background-color: #f33155\n}\n.badge-purple {\n    background-color: #707cd2\n}\n.badge-red {\n    background-color: #f33155\n}\n.badge-inverse {\n    background-color: #4c5667\n}\n.notify {\n    position: relative;\n    margin-top: -30px\n}\n.notify .heartbit {\n    position: absolute;\n    top: -20px;\n    right: -16px;\n    height: 25px;\n    width: 25px;\n    z-index: 10;\n    border: 5px solid #f33155;\n    border-radius: 70px;\n    -moz-animation: heartbit 1s ease-out;\n    -moz-animation-iteration-count: infinite;\n    -o-animation: heartbit 1s ease-out;\n    -o-animation-iteration-count: infinite;\n    -webkit-animation: heartbit 1s ease-out;\n    -webkit-animation-iteration-count: infinite;\n    animation-iteration-count: infinite\n}\n.notify .point {\n    width: 6px;\n    height: 6px;\n    -webkit-border-radius: 30px;\n    -moz-border-radius: 30px;\n    border-radius: 30px;\n    background-color: #f33155;\n    position: absolute;\n    right: -6px;\n    top: -10px\n}\n@-moz-keyframes heartbit {\n    0% {\n        -moz-transform: scale(0);\n        opacity: 0\n    }\n    25% {\n        -moz-transform: scale(.1);\n        opacity: .1\n    }\n    50% {\n        -moz-transform: scale(.5);\n        opacity: .3\n    }\n    75% {\n        -moz-transform: scale(.8);\n        opacity: .5\n    }\n    100% {\n        -moz-transform: scale(1);\n        opacity: 0\n    }\n}\n@-webkit-keyframes heartbit {\n    0% {\n        -webkit-transform: scale(0);\n        opacity: 0\n    }\n    25% {\n        -webkit-transform: scale(.1);\n        opacity: .1\n    }\n    50% {\n        -webkit-transform: scale(.5);\n        opacity: .3\n    }\n    75% {\n        -webkit-transform: scale(.8);\n        opacity: .5\n    }\n    100% {\n        -webkit-transform: scale(1);\n        opacity: 0\n    }\n}\n.text-white {\n    color: #fff\n}\n.text-danger {\n    color: #f33155\n}\n.text-muted {\n    color: #8d9ea7\n}\n.text-warning {\n    color: #fb4\n}\n.text-success {\n    color: #7ace4c\n}\n.text-info {\n    color: #41b3f9\n}\n.text-inverse {\n    color: #4c5667\n}\n.text-blue {\n    color: #02bec9\n}\n.text-purple {\n    color: #707cd2\n}\n.text-primary {\n    color: #7460ee\n}\n.text-megna {\n    color: #01c0c8\n}\n.text-dark {\n    color: #313131!important\n}\n.fw-500 {\n    font-weight: 500\n}\n.bg-primary {\n    background-color: #7460ee!important\n}\n.bg-success {\n    background-color: #7ace4c!important\n}\n.bg-info {\n    background-color: #41b3f9!important\n}\n.bg-warning {\n    background-color: #fb4!important\n}\n.bg-danger,\n.bg-theme-alt {\n    background-color: #f33155!important\n}\n.bg-theme {\n    background-color: #2cabe3!important\n}\n.bg-theme-dark {\n    background-color: #4f5467!important\n}\n.bg-inverse {\n    background-color: #4c5667!important\n}\n.bg-purple {\n    background-color: #707cd2!important\n}\n.bg-white {\n    background-color: #fff!important\n}\n.bg-light {\n    background-color: #e4e7ea!important\n}\n.bg-extralight {\n    background-color: #f7fafc!important\n}\n.label {\n    letter-spacing: .05em;\n    border-radius: 60px;\n    padding: 4px 12px 3px;\n    font-weight: 500\n}\n.label-rouded,\n.label-rounded {\n    border-radius: 60px;\n    padding: 4px 12px 3px;\n    font-weight: 500\n}\n.label-custom {\n    background-color: #01c0c8\n}\n.label-success {\n    background-color: #7ace4c\n}\n.label-info {\n    background-color: #41b3f9\n}\n.label-warning {\n    background-color: #fb4\n}\n.label-danger {\n    background-color: #f33155\n}\n.label-megna {\n    background-color: #01c0c8\n}\n.label-primary {\n    background-color: #7460ee\n}\n.label-purple {\n    background-color: #707cd2\n}\n.label-red {\n    background-color: #f33155\n}\n.label-inverse {\n    background-color: #4c5667\n}\n.label-white {\n    background-color: #fff\n}\n.label-default {\n    background-color: #e4e7ea\n}\n.dropdown-menu {\n    border: 1px solid rgba(120, 130, 140, .13);\n    border-radius: 0;\n    box-shadow: 0 3px 12px rgba(0, 0, 0, .05)!important;\n    -webkit-box-shadow: 0!important;\n    -moz-box-shadow: 0!important;\n    padding-bottom: 8px;\n    margin-top: 0\n}\n.dropdown-menu>li>a {\n    padding: 9px 20px\n}\n.dropdown-menu>li>a:focus,\n.dropdown-menu>li>a:hover {\n    background: #f7fafc\n}\n.navbar-top-links .progress {\n    margin-bottom: 6px\n}\nlabel {\n    font-weight: 500\n}\n.btn {\n    border-radius: 3px\n}\n.form-control {\n    background-color: #fff;\n    border: 1px solid #e4e7ea;\n    border-radius: 0;\n    box-shadow: 4px;\n    color: #565656;\n    height: 38px;\n    max-width: 100%;\n    padding: 7px 12px;\n    transition: all 300ms linear 0s\n}\n.form-control:focus {\n    box-shadow: none;\n    border-color: #263238\n}\n.input-sm {\n    height: 30px;\n    padding: 5px 10px;\n    font-size: 12px;\n    line-height: 1.5\n}\n.input-lg {\n    height: 44px;\n    padding: 5px 10px;\n    font-size: 18px\n}\n.bootstrap-tagsinput {\n    border: 1px solid #e4e7ea;\n    border-radius: 0;\n    box-shadow: none;\n    display: block;\n    padding: 7px 12px\n}\n.bootstrap-touchspin .input-group-btn-vertical>.btn {\n    padding: 9px 10px\n}\n.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-down,\n.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-up {\n    border-radius: 0\n}\n.input-group-btn .btn {\n    padding: 8px 12px\n}\n.form-group,\n.form-horizontal .form-group {\n    margin-bottom: 25px\n}\n.list-group-item,\n.list-group-item:first-child,\n.list-group-item:last-child {\n    border-radius: 0;\n    border-color: rgba(120, 130, 140, .13)\n}\n.list-group-item.active,\n.list-group-item.active:focus,\n.list-group-item.active:hover {\n    background: #41b3f9;\n    border-color: #41b3f9\n}\n.list-task .list-group-item,\n.list-task .list-group-item:first-child {\n    border-radius: 0;\n    border: 0\n}\n.list-task .list-group-item:last-child {\n    border-radius: 0;\n    border: 0\n}\n.media {\n    border: 1px solid rgba(120, 130, 140, .13);\n    margin-bottom: 10px;\n    padding: 15px\n}\n.media .media-heading {\n    font-weight: 500\n}\n.well,\npre {\n    background: #fff;\n    border-radius: 0\n}\n.nav-tabs>li>a {\n    border-radius: 0;\n    color: #263238\n}\n.nav-tabs>li>a:focus,\n.nav-tabs>li>a:hover {\n    background: #fff\n}\n.modal-content {\n    border-radius: 0;\n    box-shadow: 0 5px 15px rgba(0, 0, 0, .1)\n}\n.alert {\n    border-radius: 0\n}\n.carousel-control {\n    width: 8%\n}\n.carousel-control span {\n    position: absolute;\n    top: 50%;\n    z-index: 5;\n    display: inline-block;\n    font-size: 30px\n}\n.popover {\n    border-radius: 0;\n    z-index: 100\n}\n.popover-title {\n    padding: 5px 14px\n}\n.container-fluid {\n    padding-left: 25px;\n    padding-right: 25px;\n    padding-bottom: 15px\n}\n.btn-group-vertical>.btn:first-child:not(:last-child),\n.btn-group-vertical>.btn:last-child:not(:first-child) {\n    border-radius: 0\n}\n.table-responsive {\n    overflow-y: hidden\n}\n.pagination>li:first-child>a,\n.pagination>li:first-child>span {\n    border-bottom-left-radius: 0;\n    border-top-left-radius: 0\n}\n.pagination>li:last-child>a,\n.pagination>li:last-child>span {\n    border-bottom-right-radius: 0;\n    border-top-right-radius: 0\n}\n.pagination>li>a,\n.pagination>li>span {\n    color: #263238\n}\n.pagination>li>a:focus,\n.pagination>li>a:hover,\n.pagination>li>span:focus,\n.pagination>li>span:hover {\n    background-color: #e4e7ea\n}\n.pagination-split li {\n    margin-left: 5px;\n    display: inline-block;\n    float: left\n}\n.pagination-split li:first-child {\n    margin-left: 0\n}\n.pagination-split li a {\n    -moz-border-radius: 0;\n    -webkit-border-radius: 0;\n    border-radius: 0\n}\n.pagination>.active>a,\n.pagination>.active>a:focus,\n.pagination>.active>a:hover,\n.pagination>.active>span,\n.pagination>.active>span:focus,\n.pagination>.active>span:hover {\n    background-color: #2cabe3;\n    border-color: #2cabe3\n}\n.pager li>a,\n.pager li>span {\n    -moz-border-radius: 0;\n    -webkit-border-radius: 0;\n    border-radius: 0;\n    color: #263238\n}\n.table-box {\n    display: table;\n    width: 100%\n}\n.cell {\n    display: table-cell;\n    vertical-align: middle\n}\n.jqstooltip {\n    width: auto!important;\n    height: auto!important\n}\n#wrapper {\n    width: 100%\n}\n#page-wrapper {\n    padding: 0 0 60px;\n    min-height: 568px;\n    background: #edf1f5\n}\n.footer {\n    bottom: 0;\n    color: #58666e;\n    left: 240px;\n    padding: 20px 30px;\n    position: absolute;\n    right: 0;\n    background: #fff\n}\n.bg-title {\n    background: #fff;\n    overflow: hidden;\n    padding: 15px 10px 9px;\n    margin-bottom: 25px;\n    margin-left: -25.5px;\n    margin-right: -25.5px\n}\n.bg-title h4 {\n    text-transform: uppercase;\n    font-size: 14px;\n    font-weight: 500;\n    margin-top: 6px\n}\n.bg-title .breadcrumb {\n    background: 0 0;\n    margin-bottom: 0;\n    float: right;\n    padding: 0;\n    margin-top: 8px\n}\n.bg-title .breadcrumb a {\n    color: rgba(0, 0, 0, .5)\n}\n.bg-title .breadcrumb a:hover {\n    color: #000\n}\n.bg-title .breadcrumb .active {\n    color: #2cabe3\n}\n.logo b {\n    height: 60px;\n    float: left;\n    padding-left: 10px;\n    width: auto;\n    line-height: 59px;\n    text-align: center\n}\n.logo i {\n    color: #fff\n}\n.top-left-part {\n    width: 240px;\n    float: left;\n    border-right: 1px solid rgba(0, 0, 0, .08)\n}\n.top-left-part a {\n    color: #fff;\n    line-height: 59px;\n    font-size: 18px;\n    padding-left: 10px;\n    text-transform: uppercase\n}\n.top-left-part .light-logo {\n    display: none\n}\n.navbar-header {\n    width: 100%;\n    background: #3c4451;\n    border: 0\n}\n.navbar-default {\n    border: 0\n}\n.navbar-top-links {\n    margin-right: 0\n}\n.navbar-top-links .badge {\n    position: absolute;\n    right: 6px;\n    top: 15px\n}\n.navbar-top-links>li {\n    float: left\n}\n.navbar-top-links>li>a {\n    color: #fff;\n    padding: 0 14px;\n    line-height: 60px;\n    min-height: 60px\n}\n.navbar-top-links>li>a:hover {\n    background: rgba(0, 0, 0, .1)\n}\n.navbar-top-links>li>a:focus {\n    background: rgba(0, 0, 0, 0)\n}\n.nav .open>a,\n.nav .open>a:focus,\n.nav .open>a:hover {\n    background: rgba(255, 255, 255, .2)\n}\n.navbar-top-links .dropdown-menu li {\n    display: block\n}\n.navbar-top-links .dropdown-menu li:last-child {\n    margin-right: 0\n}\n.navbar-top-links .dropdown-menu li a div {\n    white-space: normal\n}\n.navbar-top-links .dropdown-alerts,\n.navbar-top-links .dropdown-messages,\n.navbar-top-links .dropdown-tasks {\n    width: 310px;\n    min-width: 0\n}\n.navbar-top-links .dropdown-user {\n    right: 0;\n    left: auto;\n    width: 280px\n}\n.navbar-top-links .dropdown-user .dw-user-box {\n    padding: 15px\n}\n.navbar-top-links .dropdown-user .dw-user-box .u-img {\n    width: 80px;\n    display: inline-block;\n    vertical-align: top\n}\n.navbar-top-links .dropdown-user .dw-user-box .u-img img {\n    width: 100%;\n    border-radius: 5px\n}\n.navbar-top-links .dropdown-user .dw-user-box .u-text {\n    display: inline-block;\n    padding-left: 10px\n}\n.navbar-top-links .dropdown-user .dw-user-box .u-text h4 {\n    margin: 0\n}\n.navbar-top-links .dropdown-user .dw-user-box .u-text p {\n    margin-bottom: 3px\n}\n.navbar-header .navbar-toggle {\n    float: none;\n    padding: 0 15px;\n    line-height: 60px;\n    border: 0;\n    color: rgba(255, 255, 255, .5);\n    margin: 0;\n    display: inline-block;\n    border-radius: 0\n}\n.navbar-header .navbar-toggle:focus,\n.navbar-header .navbar-toggle:hover {\n    background: rgba(0, 0, 0, .3);\n    color: #fff\n}\n.app-search {\n    position: relative;\n    margin: 0\n}\n.app-search a {\n    position: absolute;\n    top: 20px;\n    right: 10px;\n    color: #4c5667\n}\n.app-search .form-control,\n.app-search .form-control:focus {\n    border: none;\n    font-size: 13px;\n    color: #4c5667;\n    padding-left: 20px;\n    padding-right: 40px;\n    background: rgba(255, 255, 255, .9);\n    box-shadow: none;\n    height: 30px;\n    font-weight: 600;\n    width: 180px;\n    display: inline-block;\n    line-height: 30px;\n    margin-top: 15px;\n    border-radius: 40px;\n    transition: .5s ease-out\n}\n.app-search .form-control::-moz-placeholder {\n    color: #4c5667;\n    opacity: .5\n}\n.app-search .form-control::-webkit-input-placeholder {\n    color: #4c5667;\n    opacity: .5\n}\n.app-search .form-control::-ms-placeholder {\n    color: #4c5667;\n    opacity: .5\n}\n.nav-small-cap {\n    color: #a6afbb;\n    cursor: default;\n    font-weight: 500;\n    text-transform: uppercase;\n    font-size: 13px;\n    letter-spacing: .035em;\n    padding: 12px 15px!important;\n    pointer-events: none;\n    margin: 20px 0 0 -15px\n}\n.profile-pic {\n    padding: 0 20px;\n    line-height: 50px\n}\n.profile-pic img {\n    margin-right: 10px\n}\n.drop-title {\n    border-bottom: 1px solid rgba(0, 0, 0, .1);\n    color: #263238;\n    font-size: 15px;\n    font-weight: 600;\n    padding: 11px 20px 15px\n}\n.btn-outline {\n    color: inherit;\n    background-color: transparent;\n    transition: all .5s\n}\n.btn-rounded {\n    border-radius: 60px\n}\n.btn-custom,\n.btn-custom.disabled {\n    background: #2cabe3;\n    border: 1px solid #2cabe3;\n    color: #fff\n}\n.btn-custom.disabled.focus,\n.btn-custom.disabled:focus,\n.btn-custom.disabled:hover,\n.btn-custom.focus,\n.btn-custom:focus,\n.btn-custom:hover {\n    background: #2cabe3;\n    opacity: .8;\n    color: #fff;\n    border: 1px solid #2cabe3\n}\n.btn-primary,\n.btn-primary.disabled {\n    background: #7460ee;\n    border: 1px solid #7460ee\n}\n.btn-primary.disabled.focus,\n.btn-primary.disabled:focus,\n.btn-primary.disabled:hover,\n.btn-primary.focus,\n.btn-primary:focus,\n.btn-primary:hover {\n    background: #7460ee;\n    opacity: .8;\n    border: 1px solid #7460ee\n}\n.btn-success,\n.btn-success.disabled {\n    background: #7ace4c;\n    border: 1px solid #7ace4c\n}\n.btn-success.disabled.focus,\n.btn-success.disabled:focus,\n.btn-success.disabled:hover,\n.btn-success.focus,\n.btn-success:focus,\n.btn-success:hover {\n    background: #7ace4c;\n    opacity: .8;\n    border: 1px solid #7ace4c\n}\n.btn-info,\n.btn-info.disabled {\n    background: #41b3f9;\n    border: 1px solid #41b3f9\n}\n.btn-info.disabled.focus,\n.btn-info.disabled:focus,\n.btn-info.disabled:hover,\n.btn-info.focus,\n.btn-info:focus,\n.btn-info:hover {\n    background: #41b3f9;\n    opacity: .8;\n    border: 1px solid #41b3f9\n}\n.btn-warning,\n.btn-warning.disabled {\n    background: #fb4;\n    border: 1px solid #fb4\n}\n.btn-warning.disabled.focus,\n.btn-warning.disabled:focus,\n.btn-warning.disabled:hover,\n.btn-warning.focus,\n.btn-warning:focus,\n.btn-warning:hover {\n    background: #fb4;\n    opacity: .8;\n    border: 1px solid #fb4\n}\n.btn-danger,\n.btn-danger.disabled {\n    background: #f33155;\n    border: 1px solid #f33155\n}\n.btn-danger.disabled.focus,\n.btn-danger.disabled:focus,\n.btn-danger.disabled:hover,\n.btn-danger.focus,\n.btn-danger:focus,\n.btn-danger:hover {\n    background: #f33155;\n    opacity: .8;\n    border: 1px solid #f33155\n}\n.btn-default,\n.btn-default.disabled {\n    background: #e4e7ea;\n    border: 1px solid #e4e7ea\n}\n.btn-default.disabled.focus,\n.btn-default.disabled:focus,\n.btn-default.disabled:hover,\n.btn-default.focus,\n.btn-default:focus,\n.btn-default:hover {\n    opacity: .8;\n    border: 1px solid #e4e7ea;\n    background: #e4e7ea\n}\n.btn-default.btn-outline {\n    background-color: #fff\n}\n.btn-default.btn-outline.focus,\n.btn-default.btn-outline:focus,\n.btn-default.btn-outline:hover {\n    background: #e4e7ea\n}\n.btn-primary.btn-outline {\n    color: #7460ee;\n    background-color: #fff\n}\n.btn-primary.btn-outline.focus,\n.btn-primary.btn-outline:focus,\n.btn-primary.btn-outline:hover {\n    background: #7460ee;\n    color: #fff\n}\n.btn-success.btn-outline {\n    color: #7ace4c;\n    background-color: transparent\n}\n.btn-success.btn-outline.focus,\n.btn-success.btn-outline:focus,\n.btn-success.btn-outline:hover {\n    background: #7ace4c;\n    color: #fff\n}\n.btn-info.btn-outline {\n    color: #41b3f9;\n    background-color: transparent\n}\n.btn-info.btn-outline.focus,\n.btn-info.btn-outline:focus,\n.btn-info.btn-outline:hover {\n    background: #41b3f9;\n    color: #fff\n}\n.btn-warning.btn-outline {\n    color: #fb4;\n    background-color: transparent\n}\n.btn-warning.btn-outline.focus,\n.btn-warning.btn-outline:focus,\n.btn-warning.btn-outline:hover {\n    background: #fb4;\n    color: #fff\n}\n.btn-danger.btn-outline {\n    color: #f33155;\n    background-color: transparent\n}\n.btn-danger.btn-outline.focus,\n.btn-danger.btn-outline:focus,\n.btn-danger.btn-outline:hover {\n    background: #f33155;\n    color: #fff\n}\n.button-box .btn {\n    margin: 0 8px 8px 0\n}\n.btn-danger.btn-outline:hover,\n.btn-info.btn-outline:hover,\n.btn-primary.btn-outline:hover,\n.btn-success.btn-outline:hover,\n.btn-warning.btn-outline:hover {\n    color: #fff\n}\n.btn-label {\n    background: rgba(0, 0, 0, .05);\n    display: inline-block;\n    margin: -6px 12px -6px -14px;\n    padding: 7px 15px\n}\n.btn-facebook {\n    color: #fff!important;\n    background-color: #3b5998!important\n}\n.btn-twitter {\n    color: #fff!important;\n    background-color: #55acee!important\n}\n.btn-linkedin {\n    color: #fff!important;\n    background-color: #007bb6!important\n}\n.btn-dribbble {\n    color: #fff!important;\n    background-color: #ea4c89!important\n}\n.btn-googleplus {\n    color: #fff!important;\n    background-color: #dd4b39!important\n}\n.btn-instagram {\n    color: #fff!important;\n    background-color: #3f729b!important\n}\n.btn-pinterest {\n    color: #fff!important;\n    background-color: #cb2027!important\n}\n.btn-dropbox {\n    color: #fff!important;\n    background-color: #007ee5!important\n}\n.btn-flickr {\n    color: #fff!important;\n    background-color: #ff0084!important\n}\n.btn-tumblr {\n    color: #fff!important;\n    background-color: #32506d!important\n}\n.btn-skype {\n    color: #fff!important;\n    background-color: #00aff0!important\n}\n.btn-youtube {\n    color: #fff!important;\n    background-color: #b00!important\n}\n.btn-github {\n    color: #fff!important;\n    background-color: #171515!important\n}\n.btn-primary.active.focus,\n.btn-primary.active:focus,\n.btn-primary.active:hover,\n.btn-primary.focus,\n.btn-primary.focus:active,\n.btn-primary:active:focus,\n.btn-primary:active:hover,\n.btn-primary:focus,\n.open>.dropdown-toggle.btn-primary.focus,\n.open>.dropdown-toggle.btn-primary:focus,\n.open>.dropdown-toggle.btn-primary:hover {\n    background-color: #7460ee;\n    border: 1px solid #7460ee\n}\n.btn-success.active.focus,\n.btn-success.active:focus,\n.btn-success.active:hover,\n.btn-success.focus,\n.btn-success.focus:active,\n.btn-success:active:focus,\n.btn-success:active:hover,\n.btn-success:focus,\n.open>.dropdown-toggle.btn-success.focus,\n.open>.dropdown-toggle.btn-success:focus,\n.open>.dropdown-toggle.btn-success:hover {\n    background-color: #7ace4c;\n    border: 1px solid #7ace4c\n}\n.btn-info.active.focus,\n.btn-info.active:focus,\n.btn-info.active:hover,\n.btn-info.focus,\n.btn-info.focus:active,\n.btn-info:active:focus,\n.btn-info:active:hover,\n.btn-info:focus,\n.open>.dropdown-toggle.btn-info.focus,\n.open>.dropdown-toggle.btn-info:focus,\n.open>.dropdown-toggle.btn-info:hover {\n    background-color: #41b3f9;\n    border: 1px solid #41b3f9\n}\n.btn-warning.active.focus,\n.btn-warning.active:focus,\n.btn-warning.active:hover,\n.btn-warning.focus,\n.btn-warning.focus:active,\n.btn-warning:active:focus,\n.btn-warning:active:hover,\n.btn-warning:focus,\n.open>.dropdown-toggle.btn-warning.focus,\n.open>.dropdown-toggle.btn-warning:focus,\n.open>.dropdown-toggle.btn-warning:hover {\n    background-color: #fb4;\n    border: 1px solid #fb4\n}\n.btn-danger.active.focus,\n.btn-danger.active:focus,\n.btn-danger.active:hover,\n.btn-danger.focus,\n.btn-danger.focus:active,\n.btn-danger:active:focus,\n.btn-danger:active:hover,\n.btn-danger:focus,\n.open>.dropdown-toggle.btn-danger.focus,\n.open>.dropdown-toggle.btn-danger:focus,\n.open>.dropdown-toggle.btn-danger:hover {\n    background-color: #f33155;\n    border: 1px solid #f33155\n}\n.btn-inverse,\n.btn-inverse.active,\n.btn-inverse.focus,\n.btn-inverse:active,\n.btn-inverse:focus,\n.btn-inverse:hover,\n.open>.dropdown-toggle.btn-inverse {\n    background-color: #4c5667;\n    border: 1px solid #4c5667;\n    color: #fff\n}\n.chat {\n    margin: 0;\n    padding: 0;\n    list-style: none\n}\n.chat li {\n    margin-bottom: 10px;\n    padding-bottom: 5px;\n    border-bottom: 1px dotted rgba(120, 130, 140, .13)\n}\n.chat li.left .chat-body {\n    margin-left: 60px\n}\n.chat li.right .chat-body {\n    margin-right: 60px\n}\n.chat li .chat-body p {\n    margin: 0\n}\n.chat .glyphicon,\n.panel .slidedown .glyphicon {\n    margin-right: 5px\n}\n.chat-panel .panel-body {\n    height: 350px;\n    overflow-y: scroll\n}\n.login-panel {\n    margin-top: 25%\n}\n.flot-chart {\n    display: block;\n    height: 400px\n}\n.flot-chart-content {\n    width: 100%;\n    height: 100%\n}\ntable.dataTable thead .sorting,\ntable.dataTable thead .sorting_asc,\ntable.dataTable thead .sorting_asc_disabled,\ntable.dataTable thead .sorting_desc,\ntable.dataTable thead .sorting_desc_disabled {\n    background: 0 0\n}\ntable.dataTable thead .sorting_asc:after {\n    content: \"\\f0de\";\n    float: right;\n    font-family: fontawesome\n}\ntable.dataTable thead .sorting_desc:after {\n    content: \"\\f0dd\";\n    float: right;\n    font-family: fontawesome\n}\ntable.dataTable thead .sorting:after {\n    content: \"\\f0dc\";\n    float: right;\n    font-family: fontawesome;\n    color: rgba(50, 50, 50, .5)\n}\n.btn-circle {\n    width: 30px;\n    height: 30px;\n    padding: 6px 0;\n    border-radius: 15px;\n    text-align: center;\n    font-size: 12px;\n    line-height: 1.428571429\n}\n.btn-circle.btn-lg {\n    width: 50px;\n    height: 50px;\n    padding: 10px 16px;\n    border-radius: 25px;\n    font-size: 18px;\n    line-height: 1.33\n}\n.btn-circle.btn-xl {\n    width: 70px;\n    height: 70px;\n    padding: 10px 16px;\n    border-radius: 35px;\n    font-size: 24px;\n    line-height: 1.33\n}\n.show-grid [class^=col-] {\n    padding-top: 10px;\n    padding-bottom: 10px;\n    border: 1px solid rgba(120, 130, 140, .13);\n    background-color: #f7fafc\n}\n.show-grid {\n    margin: 15px 0\n}\n.huge {\n    font-size: 40px\n}\n.white-box {\n    background: #fff;\n    padding: 25px;\n    margin-bottom: 30px\n}\n.white-box .box-title {\n    margin: 0 0 12px;\n    font-weight: 500;\n    text-transform: uppercase;\n    font-size: 16px\n}\n.panel {\n    border-radius: 0;\n    margin-bottom: 30px;\n    border: 0;\n    box-shadow: none\n}\n.panel .panel-heading {\n    border-radius: 0;\n    font-weight: 500;\n    font-size: 16px;\n    padding: 20px 25px\n}\n.panel .panel-heading .panel-title {\n    font-size: 16px;\n    color: #263238\n}\n.panel .panel-heading a i {\n    font-size: 12px;\n    margin-left: 8px\n}\n.panel .panel-action {\n    float: right\n}\n.panel .panel-action a {\n    opacity: .5\n}\n.panel .panel-action a:hover {\n    opacity: 1\n}\n.panel .panel-body {\n    padding: 25px\n}\n.panel .panel-body:first-child h3 {\n    margin-top: 0;\n    font-weight: 500;\n    font-family: Rubik, sans-serif;\n    font-size: 14px;\n    text-transform: uppercase\n}\n.panel .panel-footer {\n    background: #fff;\n    border-radius: 0;\n    padding: 20px 25px\n}\n.panel-green,\n.panel-success {\n    border-color: #7ace4c\n}\n.panel-green .panel-heading,\n.panel-success .panel-heading {\n    border-color: #7ace4c;\n    color: #fff;\n    background-color: #7ace4c\n}\n.panel-green .panel-heading a,\n.panel-success .panel-heading a {\n    color: #fff\n}\n.panel-green .panel-heading a:hover,\n.panel-success .panel-heading a:hover {\n    color: rgba(255, 255, 255, .5)\n}\n.panel-green a,\n.panel-success a {\n    color: #7ace4c\n}\n.panel-green a:hover,\n.panel-success a:hover {\n    color: #56a12c\n}\n.panel-black,\n.panel-inverse {\n    border-color: #4c5667\n}\n.panel-black .panel-heading,\n.panel-inverse .panel-heading {\n    border-color: #4c5667;\n    color: #fff;\n    background-color: #4c5667\n}\n.panel-black .panel-heading a,\n.panel-inverse .panel-heading a {\n    color: #fff\n}\n.panel-black .panel-heading a:hover,\n.panel-inverse .panel-heading a:hover {\n    color: rgba(255, 255, 255, .5)\n}\n.panel-black a,\n.panel-inverse a {\n    color: #4c5667\n}\n.panel-black a:hover,\n.panel-inverse a:hover {\n    color: #2c313b\n}\n.panel-darkblue,\n.panel-primary {\n    border-color: #7460ee\n}\n.panel-darkblue .panel-heading,\n.panel-primary .panel-heading {\n    border-color: #7460ee;\n    color: #fff;\n    background-color: #7460ee\n}\n.panel-darkblue .panel-heading a,\n.panel-primary .panel-heading a {\n    color: #fff\n}\n.panel-darkblue .panel-heading a:hover,\n.panel-primary .panel-heading a:hover {\n    color: rgba(255, 255, 255, .5)\n}\n.panel-darkblue a,\n.panel-primary a {\n    color: #7460ee\n}\n.panel-darkblue a:hover,\n.panel-primary a:hover {\n    color: #381be7\n}\n.panel-blue,\n.panel-info {\n    border-color: #41b3f9\n}\n.panel-blue .panel-heading,\n.panel-info .panel-heading {\n    border-color: #41b3f9;\n    color: #fff;\n    background-color: #41b3f9\n}\n.panel-blue .panel-heading a,\n.panel-info .panel-heading a {\n    color: #fff\n}\n.panel-blue .panel-heading a:hover,\n.panel-info .panel-heading a:hover {\n    color: rgba(255, 255, 255, .5)\n}\n.panel-blue a,\n.panel-info a {\n    color: #41b3f9\n}\n.panel-blue a:hover,\n.panel-info a:hover {\n    color: #0791e6\n}\n.panel-danger,\n.panel-red {\n    border-color: #f33155\n}\n.panel-danger .panel-heading,\n.panel-red .panel-heading {\n    border-color: #f33155;\n    color: #fff;\n    background-color: #f33155\n}\n.panel-danger .panel-heading a,\n.panel-red .panel-heading a {\n    color: #fff\n}\n.panel-danger .panel-heading a:hover,\n.panel-red .panel-heading a:hover {\n    color: rgba(255, 255, 255, .5)\n}\n.panel-danger a,\n.panel-red a {\n    color: #f33155\n}\n.panel-danger a:hover,\n.panel-red a:hover {\n    color: #cc0c2f\n}\n.panel-warning,\n.panel-yellow {\n    border-color: #fb4\n}\n.panel-warning .panel-heading,\n.panel-yellow .panel-heading {\n    border-color: #fb4;\n    color: #fff;\n    background-color: #fb4\n}\n.panel-warning .panel-heading a,\n.panel-yellow .panel-heading a {\n    color: #fff\n}\n.panel-warning .panel-heading a:hover,\n.panel-yellow .panel-heading a:hover {\n    color: rgba(255, 255, 255, .5)\n}\n.panel-warning a,\n.panel-yellow a {\n    color: #fb4\n}\n.panel-warning a:hover,\n.panel-yellow a:hover {\n    color: #f69d00\n}\n.panel-theme,\n.panel-themecolor {\n    border-color: #2cabe3\n}\n.panel-theme .panel-heading,\n.panel-themecolor .panel-heading {\n    border-color: #2cabe3;\n    color: #fff;\n    background-color: #2cabe3\n}\n.panel-theme .panel-heading a,\n.panel-themecolor .panel-heading a {\n    color: #fff\n}\n.panel-theme .panel-heading a:hover,\n.panel-themecolor .panel-heading a:hover {\n    color: rgba(255, 255, 255, .5)\n}\n.panel-theme a,\n.panel-themecolor a {\n    color: #2cabe3\n}\n.panel-theme a:hover,\n.panel-themecolor a:hover {\n    color: #177eac\n}\n.panel-default,\n.panel-white {\n    border-color: rgba(120, 130, 140, .13)\n}\n.panel-default .panel-heading,\n.panel-white .panel-heading {\n    color: #263238;\n    background-color: #fff;\n    border-bottom: 1px solid rgba(120, 130, 140, .13)\n}\n.panel-default .panel-body,\n.panel-white .panel-body {\n    color: #263238\n}\n.panel-default .panel-action a,\n.panel-white .panel-action a {\n    color: #263238;\n    opacity: .5\n}\n.panel-default .panel-action a:hover,\n.panel-white .panel-action a:hover {\n    opacity: 1;\n    color: #263238\n}\n.panel-default .panel-footer,\n.panel-white .panel-footer {\n    background: #fff;\n    color: #263238;\n    border-top: 1px solid rgba(120, 130, 140, .13)\n}\n.full-panel-info {\n    border-color: #41b3f9\n}\n.full-panel-info .panel-heading {\n    border-color: #41b3f9;\n    color: #fff;\n    background-color: #41b3f9;\n    border-bottom: 1px solid rgba(120, 130, 140, .13)\n}\n.full-panel-info .panel-body {\n    background: #41b3f9;\n    color: #fff\n}\n.full-panel-info .panel-footer {\n    background: #41b3f9;\n    color: #fff;\n    border-top: 1px solid rgba(120, 130, 140, .13)\n}\n.full-panel-info a {\n    color: #41b3f9\n}\n.full-panel-info a:hover {\n    color: #0791e6\n}\n.full-panel-warning {\n    border-color: #fb4\n}\n.full-panel-warning .panel-heading {\n    border-color: #fb4;\n    color: #fff;\n    background-color: #fb4;\n    border-bottom: 1px solid rgba(120, 130, 140, .13)\n}\n.full-panel-warning .panel-body {\n    background: #fb4;\n    color: #fff\n}\n.full-panel-warning .panel-footer {\n    background: #fb4;\n    color: #fff;\n    border-top: 1px solid rgba(120, 130, 140, .13)\n}\n.full-panel-warning a {\n    color: #fb4\n}\n.full-panel-warning a:hover {\n    color: #f69d00\n}\n.full-panel-success {\n    border-color: #7ace4c\n}\n.full-panel-success .panel-heading {\n    border-color: #7ace4c;\n    color: #fff;\n    background-color: #7ace4c;\n    border-bottom: 1px solid rgba(120, 130, 140, .13)\n}\n.full-panel-success .panel-body {\n    background: #7ace4c;\n    color: #fff\n}\n.full-panel-success .panel-footer {\n    background: #7ace4c;\n    color: #fff;\n    border-top: 1px solid rgba(120, 130, 140, .13)\n}\n.full-panel-success a {\n    color: #7ace4c\n}\n.full-panel-success a:hover {\n    color: #56a12c\n}\n.full-panel-purple {\n    border-color: #707cd2\n}\n.full-panel-purple .panel-heading {\n    color: #fff;\n    background-color: #707cd2;\n    border-bottom: 1px solid rgba(120, 130, 140, .13)\n}\n.full-panel-purple .panel-body {\n    background: #707cd2;\n    color: #fff\n}\n.full-panel-purple .panel-footer {\n    background: #707cd2;\n    color: #fff;\n    border-top: 1px solid rgba(120, 130, 140, .13)\n}\n.full-panel-purple a {\n    color: #707cd2\n}\n.full-panel-purple a:hover {\n    color: #3b4abb\n}\n.full-panel-danger {\n    border-color: #f33155\n}\n.full-panel-danger .panel-heading {\n    border-color: #f33155;\n    color: #fff;\n    background-color: #f33155;\n    border-bottom: 1px solid rgba(120, 130, 140, .13)\n}\n.full-panel-danger .panel-body {\n    background: #f33155;\n    color: #fff\n}\n.full-panel-danger .panel-footer {\n    background: #f33155;\n    color: #fff;\n    border-top: 1px solid rgba(120, 130, 140, .13)\n}\n.full-panel-danger a {\n    color: #f33155\n}\n.full-panel-danger a:hover {\n    color: #cc0c2f\n}\n.full-panel-inverse {\n    border-color: #4c5667\n}\n.full-panel-inverse .panel-heading {\n    border-color: #4c5667;\n    color: #fff;\n    background-color: #4c5667;\n    border-bottom: 1px solid rgba(120, 130, 140, .13)\n}\n.full-panel-inverse .panel-body {\n    background: #4c5667;\n    color: #fff\n}\n.full-panel-inverse .panel-footer {\n    background: #4c5667;\n    color: #fff;\n    border-top: 1px solid rgba(120, 130, 140, .13)\n}\n.full-panel-inverse a {\n    color: #4c5667\n}\n.full-panel-inverse a:hover {\n    color: #2c313b\n}\n.full-panel-default {\n    border-color: rgba(120, 130, 140, .13)\n}\n.full-panel-default .panel-heading {\n    color: #263238;\n    background-color: #fff;\n    border-bottom: 1px solid rgba(120, 130, 140, .13)\n}\n.full-panel-default .panel-body {\n    color: #263238\n}\n.full-panel-default .panel-footer {\n    background: #fff;\n    color: #263238;\n    border-top: 1px solid rgba(120, 130, 140, .13)\n}\n.full-panel-default a {\n    color: #263238\n}\n.full-panel-default a:hover {\n    color: #2c313b\n}\n.panel-opcl {\n    float: right\n}\n.panel-opcl i {\n    margin-left: 8px;\n    font-size: 10px;\n    cursor: pointer\n}\n.fa-fw {\n    width: 20px!important;\n    display: inline-block!important;\n    text-align: left!important\n}\n.waves-effect {\n    position: relative;\n    cursor: pointer;\n    display: inline-block;\n    overflow: hidden;\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    -ms-user-select: none;\n    user-select: none;\n    -webkit-tap-highlight-color: transparent\n}\n.waves-effect .waves-ripple {\n    position: absolute;\n    border-radius: 50%;\n    width: 20px;\n    height: 20px;\n    margin-top: -10px;\n    margin-left: -10px;\n    opacity: 0;\n    background: rgba(0, 0, 0, .08);\n    -webkit-transition: all .5s ease-out;\n    -moz-transition: all .5s ease-out;\n    -o-transition: all .5s ease-out;\n    transition: all .5s ease-out;\n    -webkit-transition-property: -webkit-transform, opacity;\n    -moz-transition-property: -moz-transform, opacity;\n    -o-transition-property: -o-transform, opacity;\n    transition-property: transform, opacity;\n    -webkit-transform: scale(0);\n    -moz-transform: scale(0);\n    -ms-transform: scale(0);\n    -o-transform: scale(0);\n    transform: scale(0);\n    pointer-events: none\n}\n.waves-effect.waves-light .waves-ripple {\n    background: rgba(255, 255, 255, .4);\n    background: -webkit-radial-gradient(rgba(255, 255, 255, .2) 0, rgba(255, 255, 255, .3) 40%, rgba(255, 255, 255, .4) 50%, rgba(255, 255, 255, .5) 60%, rgba(255, 255, 255, 0) 70%);\n    background: -o-radial-gradient(rgba(255, 255, 255, .2) 0, rgba(255, 255, 255, .3) 40%, rgba(255, 255, 255, .4) 50%, rgba(255, 255, 255, .5) 60%, rgba(255, 255, 255, 0) 70%);\n    background: -moz-radial-gradient(rgba(255, 255, 255, .2) 0, rgba(255, 255, 255, .3) 40%, rgba(255, 255, 255, .4) 50%, rgba(255, 255, 255, .5) 60%, rgba(255, 255, 255, 0) 70%);\n    background: radial-gradient(rgba(255, 255, 255, .2) 0, rgba(255, 255, 255, .3) 40%, rgba(255, 255, 255, .4) 50%, rgba(255, 255, 255, .5) 60%, rgba(255, 255, 255, 0) 70%)\n}\n.waves-effect.waves-classic .waves-ripple {\n    background: rgba(0, 0, 0, .2)\n}\n.waves-effect.waves-classic.waves-light .waves-ripple {\n    background: rgba(255, 255, 255, .4)\n}\n.waves-notransition {\n    -webkit-transition: none!important;\n    -moz-transition: none!important;\n    -o-transition: none!important;\n    transition: none!important\n}\n.waves-button,\n.waves-circle {\n    -webkit-transform: translateZ(0);\n    -moz-transform: translateZ(0);\n    -ms-transform: translateZ(0);\n    -o-transform: translateZ(0);\n    transform: translateZ(0);\n    -webkit-mask-image: -webkit-radial-gradient(circle, #fff 100%, #000 100%)\n}\n.waves-button,\n.waves-button-input,\n.waves-button:hover,\n.waves-button:visited {\n    white-space: nowrap;\n    vertical-align: middle;\n    cursor: pointer;\n    border: none;\n    outline: 0;\n    color: inherit;\n    background-color: rgba(0, 0, 0, 0);\n    font-size: 1em;\n    line-height: 1em;\n    text-align: center;\n    text-decoration: none;\n    z-index: 1\n}\n.waves-button {\n    padding: .85em 1.1em;\n    border-radius: .2em\n}\n.waves-button-input {\n    margin: 0;\n    padding: .85em 1.1em\n}\n.waves-input-wrapper {\n    border-radius: .2em;\n    vertical-align: bottom\n}\n.waves-input-wrapper.waves-button {\n    padding: 0\n}\n.waves-input-wrapper .waves-button-input {\n    position: relative;\n    top: 0;\n    left: 0;\n    z-index: 1\n}\n.waves-circle {\n    text-align: center;\n    width: 2.5em;\n    height: 2.5em;\n    line-height: 2.5em;\n    border-radius: 50%\n}\n.waves-float {\n    -webkit-mask-image: none;\n    -webkit-box-shadow: 0 1px 1.5px 1px rgba(0, 0, 0, .12);\n    box-shadow: 0 1px 1.5px 1px rgba(0, 0, 0, .12);\n    -webkit-transition: all 300ms;\n    -moz-transition: all 300ms;\n    -o-transition: all 300ms;\n    transition: all 300ms\n}\n.waves-float:active {\n    -webkit-box-shadow: 0 8px 20px 1px rgba(0, 0, 0, .3);\n    box-shadow: 0 8px 20px 1px rgba(0, 0, 0, .3)\n}\n.waves-block {\n    display: block\n}\n.common-list {\n    margin: 0;\n    padding: 0\n}\n.common-list li {\n    list-style: none;\n    display: block\n}\n.common-list li a {\n    padding: 12px 0;\n    color: #313131;\n    display: block\n}\n.common-list li a:hover {\n    color: #2cabe3\n}\n.checkbox {\n    padding-left: 20px\n}\n.checkbox label {\n    display: inline-block;\n    padding-left: 5px;\n    position: relative\n}\n.checkbox label::before {\n    -o-transition: .3s ease-in-out;\n    -webkit-transition: .3s ease-in-out;\n    background-color: #fff;\n    border-radius: 1px;\n    border: 1px solid rgba(120, 130, 140, .13);\n    content: \"\";\n    display: inline-block;\n    height: 17px;\n    left: 0;\n    margin-left: -20px;\n    position: absolute;\n    transition: .3s ease-in-out;\n    width: 17px;\n    outline: 0!important\n}\n.checkbox label::after {\n    color: #263238;\n    display: inline-block;\n    font-size: 11px;\n    height: 16px;\n    left: 0;\n    margin-left: -20px;\n    padding-left: 3px;\n    padding-top: 1px;\n    position: absolute;\n    top: 0;\n    width: 16px\n}\n.checkbox input[type=checkbox] {\n    cursor: pointer;\n    opacity: 0;\n    z-index: 1;\n    outline: 0!important\n}\n.checkbox input[type=checkbox]:disabled+label {\n    opacity: .65\n}\n.checkbox input[type=checkbox]:focus+label::before {\n    outline-offset: -2px;\n    outline: 0;\n    outline: dotted thin\n}\n.checkbox input[type=checkbox]:checked+label::after {\n    content: \"\\f00c\";\n    font-family: FontAwesome\n}\n.checkbox input[type=checkbox]:disabled+label::before {\n    background-color: #e4e7ea;\n    cursor: not-allowed\n}\n.checkbox.checkbox-circle label::before {\n    border-radius: 50%\n}\n.checkbox.checkbox-inline {\n    margin-top: 0\n}\n.checkbox.checkbox-single label {\n    height: 17px\n}\n.checkbox-primary input[type=checkbox]:checked+label::before {\n    background-color: #7460ee;\n    border-color: #7460ee\n}\n.checkbox-primary input[type=checkbox]:checked+label::after {\n    color: #fff\n}\n.checkbox-danger input[type=checkbox]:checked+label::before {\n    background-color: #f33155;\n    border-color: #f33155\n}\n.checkbox-danger input[type=checkbox]:checked+label::after {\n    color: #fff\n}\n.checkbox-info input[type=checkbox]:checked+label::before {\n    background-color: #41b3f9;\n    border-color: #41b3f9\n}\n.checkbox-info input[type=checkbox]:checked+label::after {\n    color: #fff\n}\n.checkbox-warning input[type=checkbox]:checked+label::before {\n    background-color: #fb4;\n    border-color: #fb4\n}\n.checkbox-warning input[type=checkbox]:checked+label::after {\n    color: #fff\n}\n.checkbox-success input[type=checkbox]:checked+label::before {\n    background-color: #7ace4c;\n    border-color: #7ace4c\n}\n.checkbox-success input[type=checkbox]:checked+label::after {\n    color: #fff\n}\n.checkbox-purple input[type=checkbox]:checked+label::before {\n    background-color: #707cd2;\n    border-color: #707cd2\n}\n.checkbox-purple input[type=checkbox]:checked+label::after {\n    color: #fff\n}\n.checkbox-red input[type=checkbox]:checked+label::before {\n    background-color: #f33155;\n    border-color: #f33155\n}\n.checkbox-red input[type=checkbox]:checked+label::after {\n    color: #fff\n}\n.checkbox-inverse input[type=checkbox]:checked+label::before {\n    background-color: #4c5667;\n    border-color: #4c5667\n}\n.checkbox-inverse input[type=checkbox]:checked+label::after {\n    color: #fff\n}\n.radio {\n    padding-left: 20px\n}\n.radio label {\n    display: inline-block;\n    padding-left: 5px;\n    position: relative\n}\n.radio label::before {\n    -o-transition: border .5s ease-in-out;\n    -webkit-transition: border .5s ease-in-out;\n    background-color: #fff;\n    border-radius: 50%;\n    border: 1px solid rgba(120, 130, 140, .13);\n    content: \"\";\n    display: inline-block;\n    height: 17px;\n    left: 0;\n    margin-left: -20px;\n    position: absolute;\n    transition: border .5s ease-in-out;\n    width: 17px;\n    outline: 0!important\n}\n.radio label::after {\n    -moz-transition: -moz-transform .3s cubic-bezier(.8, -.33, .2, 1.33);\n    -ms-transform: scale(0, 0);\n    -o-transform: scale(0, 0);\n    -o-transition: -o-transform .3s cubic-bezier(.8, -.33, .2, 1.33);\n    -webkit-transform: scale(0, 0);\n    -webkit-transition: -webkit-transform .3s cubic-bezier(.8, -.33, .2, 1.33);\n    background-color: #263238;\n    border-radius: 50%;\n    content: \" \";\n    display: inline-block;\n    height: 7px;\n    left: 5px;\n    margin-left: -20px;\n    position: absolute;\n    top: 5px;\n    transform: scale(0, 0);\n    transition: transform .3s cubic-bezier(.8, -.33, .2, 1.33);\n    width: 7px\n}\n.radio input[type=radio] {\n    cursor: pointer;\n    opacity: 0;\n    z-index: 1;\n    outline: 0!important\n}\n.radio input[type=radio]:disabled+label {\n    opacity: .65\n}\n.radio input[type=radio]:focus+label::before {\n    outline-offset: -2px;\n    outline: -webkit-focus-ring-color auto 5px;\n    outline: dotted thin\n}\n.radio input[type=radio]:checked+label::after {\n    -ms-transform: scale(1, 1);\n    -o-transform: scale(1, 1);\n    -webkit-transform: scale(1, 1);\n    transform: scale(1, 1)\n}\n.radio input[type=radio]:disabled+label::before {\n    cursor: not-allowed\n}\n.radio.radio-inline {\n    margin-top: 0\n}\n.radio.radio-single label {\n    height: 17px\n}\n.radio-primary input[type=radio]+label::after {\n    background-color: #7460ee\n}\n.radio-primary input[type=radio]:checked+label::before {\n    border-color: #7460ee\n}\n.radio-primary input[type=radio]:checked+label::after {\n    background-color: #7460ee\n}\n.radio-danger input[type=radio]+label::after {\n    background-color: #f33155\n}\n.radio-danger input[type=radio]:checked+label::before {\n    border-color: #f33155\n}\n.radio-danger input[type=radio]:checked+label::after {\n    background-color: #f33155\n}\n.radio-info input[type=radio]+label::after {\n    background-color: #41b3f9\n}\n.radio-info input[type=radio]:checked+label::before {\n    border-color: #41b3f9\n}\n.radio-info input[type=radio]:checked+label::after {\n    background-color: #41b3f9\n}\n.radio-warning input[type=radio]+label::after {\n    background-color: #fb4\n}\n.radio-warning input[type=radio]:checked+label::before {\n    border-color: #fb4\n}\n.radio-warning input[type=radio]:checked+label::after {\n    background-color: #fb4\n}\n.radio-success input[type=radio]+label::after {\n    background-color: #7ace4c\n}\n.radio-success input[type=radio]:checked+label::before {\n    border-color: #7ace4c\n}\n.radio-success input[type=radio]:checked+label::after {\n    background-color: #7ace4c\n}\n.radio-purple input[type=radio]+label::after {\n    background-color: #707cd2\n}\n.radio-purple input[type=radio]:checked+label::before {\n    border-color: #707cd2\n}\n.radio-purple input[type=radio]:checked+label::after {\n    background-color: #707cd2\n}\n.radio-red input[type=radio]+label::after {\n    background-color: #f33155\n}\n.radio-red input[type=radio]:checked+label::before {\n    border-color: #f33155\n}\n.radio-red input[type=radio]:checked+label::after {\n    background-color: #f33155\n}\n.fileupload {\n    overflow: hidden;\n    position: relative\n}\n.fileupload input.upload {\n    cursor: pointer;\n    filter: alpha(opacity=0);\n    font-size: 20px;\n    margin: 0;\n    opacity: 0;\n    padding: 0;\n    position: absolute;\n    right: 0;\n    top: 0\n}\n.model_img {\n    cursor: pointer\n}\n.myadmin-dd .dd-list .dd-item .dd-handle {\n    background: #fff;\n    border: 1px solid rgba(120, 130, 140, .13);\n    padding: 8px 16px;\n    height: auto;\n    font-weight: 600;\n    border-radius: 0\n}\n.myadmin-dd .dd-list .dd-item .dd-handle:hover {\n    color: #41b3f9\n}\n.myadmin-dd .dd-list .dd-item button {\n    height: auto;\n    font-size: 17px;\n    margin: 8px auto;\n    color: #263238;\n    width: 30px\n}\n.myadmin-dd-empty .dd-list .dd3-handle {\n    border: 1px solid rgba(120, 130, 140, .13);\n    border-bottom: 0;\n    background: #fff;\n    height: 36px;\n    width: 36px\n}\n.myadmin-dd-empty .dd-list .dd3-handle:before {\n    color: inherit;\n    top: 7px\n}\n.myadmin-dd-empty .dd-list .dd3-handle:hover {\n    color: #41b3f9\n}\n.myadmin-dd-empty .dd-list .dd3-content {\n    height: auto;\n    border: 1px solid rgba(120, 130, 140, .13);\n    padding: 8px 16px 8px 46px;\n    background: #fff;\n    font-weight: 600\n}\n.myadmin-dd-empty .dd-list .dd3-content:hover {\n    color: #41b3f9\n}\n.myadmin-dd-empty .dd-list button {\n    width: 26px;\n    height: 26px;\n    font-size: 16px;\n    font-weight: 600\n}\n.settings_box {\n    position: absolute;\n    top: 75px;\n    right: 0;\n    z-index: 100\n}\n.settings_box a {\n    background: #fff;\n    padding: 15px;\n    display: inline-block;\n    vertical-align: top\n}\n.settings_box a i {\n    display: block;\n    -webkit-animation-name: rotate;\n    -webkit-animation-duration: 2s;\n    -moz-animation-name: rotate;\n    -moz-animation-duration: 2s;\n    -moz-animation-iteration-count: infinite;\n    -moz-animation-timing-function: linear;\n    animation-name: rotate;\n    font-size: 16px;\n    animation-duration: 1s;\n    animation-iteration-count: infinite;\n    animation-timing-function: linear\n}\n@-webkit-keyframes rotate {\n    from {\n        -webkit-transform: rotate(0deg)\n    }\n    to {\n        -webkit-transform: rotate(360deg)\n    }\n}\n@-moz-keyframes rotate {\n    from {\n        -moz-transform: rotate(0deg)\n    }\n    to {\n        -moz-transform: rotate(360deg)\n    }\n}\n@keyframes rotate {\n    from {\n        transform: rotate(0deg)\n    }\n    to {\n        transform: rotate(360deg)\n    }\n}\n.theme_color {\n    margin: 0;\n    padding: 0;\n    display: inline-block;\n    overflow: hidden;\n    width: 0;\n    transition: .5s ease-out;\n    background: #fff\n}\n.theme_color li {\n    list-style: none;\n    width: 30%;\n    float: left;\n    margin: 0 1.5%\n}\n.theme_color li a {\n    padding: 5px;\n    height: 50px;\n    display: block\n}\n.theme_color li a.theme-green {\n    background: #7ace4c\n}\n.theme_color li a.theme-red {\n    background: #f33155\n}\n.theme_color li a.theme-dark {\n    background: #4c5667\n}\n.theme_block {\n    width: 200px;\n    padding: 30px\n}\nul.common li {\n    display: inline-block;\n    line-height: 40px;\n    list-style: none none;\n    width: 48%\n}\nul.common li a {\n    color: #313131\n}\nul.common li a:hover {\n    color: #41b3f9\n}\n.circle {\n    border-radius: 100%;\n    text-align: center;\n    color: #fff\n}\n.circle-sm {\n    width: 40px;\n    padding-top: 12px;\n    height: 40px;\n    font-size: 14px!important\n}\n.circle-md {\n    width: 60px;\n    padding-top: 15px;\n    height: 60px;\n    font-size: 24px!important\n}\n.circle-lg {\n    width: 80px;\n    padding-top: 20px;\n    height: 80px;\n    font-size: 30px!important\n}\n.row-in i {\n    font-size: 24px\n}\n.megamenu {\n    left: 0;\n    right: 0;\n    width: 100%\n}\n.mega-dropdown {\n    position: static!important\n}\n.mega-dropdown-menu {\n    padding: 20px 20px 20px 80px;\n    width: 100%;\n    -webkit-box-shadow: none;\n    border: 0;\n    box-shadow: 0 2px 10px rgba(0, 0, 0, .1)!important\n}\n.mega-dropdown-menu>li>ul {\n    padding: 0;\n    margin: 0\n}\n.mega-dropdown-menu>li>ul>li {\n    list-style: none\n}\n.mega-dropdown-menu>li>ul>li>a {\n    display: block;\n    padding: 8px 0;\n    clear: both;\n    line-height: 1.428571429;\n    color: #313131;\n    white-space: normal\n}\n.mega-dropdown-menu>li>ul>li>a:focus,\n.mega-dropdown-menu>li>ul>li>a:hover {\n    text-decoration: none;\n    color: #2cabe3\n}\n.mega-dropdown-menu .dropdown-header {\n    font-size: 16px;\n    font-weight: 500;\n    padding: 8px 0;\n    margin-top: 12px\n}\n.mega-dropdown-menu li.demo-box a {\n    color: #fff;\n    display: block\n}\n.mega-dropdown-menu li.demo-box a:hover {\n    opacity: .8\n}\n.mailbox {\n    width: 280px;\n    overflow: auto;\n    padding-bottom: 0\n}\n.message-center a {\n    border-bottom: 1px solid rgba(120, 130, 140, .13);\n    display: block;\n    padding: 9px 15px\n}\n.message-center a:hover {\n    background: #f7fafc\n}\n.message-center .user-img {\n    width: 40px;\n    float: left;\n    position: relative;\n    margin: 0 10px 15px 0\n}\n.message-center .user-img img {\n    width: 100%\n}\n.message-center .user-img .profile-status {\n    border: 2px solid #fff;\n    border-radius: 50%;\n    display: inline-block;\n    height: 10px;\n    left: 30px;\n    position: absolute;\n    top: 1px;\n    width: 10px\n}\n.message-center .user-img .online {\n    background: #7ace4c\n}\n.message-center .user-img .busy {\n    background: #f33155\n}\n.message-center .user-img .away,\n.message-center .user-img .offline {\n    background: #fb4\n}\n.message-center .mail-contnet h5 {\n    margin: 0;\n    font-weight: 400;\n    text-overflow: ellipsis;\n    overflow: hidden;\n    white-space: nowrap\n}\n.message-center .mail-contnet .mail-desc {\n    font-size: 12px;\n    display: block;\n    margin: 5px 0;\n    text-overflow: ellipsis;\n    overflow: hidden;\n    white-space: nowrap;\n    color: #263238\n}\n.message-center .mail-contnet .time {\n    display: block;\n    font-size: 10px;\n    color: #263238\n}\n.mail-contnet a.action {\n    margin-left: 10px;\n    font-size: 12px;\n    visibility: hidden\n}\n.mail-contnet:hover a.action {\n    visibility: visible\n}\n.inbox-center td {\n    white-space: nowrap\n}\n.inbox-center .unread td {\n    font-weight: 400\n}\n.inbox-center a {\n    color: #313131;\n    padding: 2px 0 3px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    display: inline-block\n}\n.comment-center {\n    margin: 0 -25px\n}\n.comment-center .comment-body {\n    border-bottom: 1px solid rgba(120, 130, 140, .13);\n    display: table;\n    width: 100%;\n    padding: 20px 25px\n}\n.comment-center .comment-body:hover {\n    background: #f7fafc\n}\n.comment-center .user-img {\n    width: 40px;\n    display: table-cell;\n    position: relative;\n    margin: 0 10px 0 0\n}\n.comment-center .user-img img {\n    width: 100%\n}\n.comment-center .mail-contnet {\n    display: table-cell;\n    padding-left: 15px;\n    vertical-align: top\n}\n.comment-center .mail-contnet h5 {\n    margin-top: 0;\n    font-weight: 400;\n    text-overflow: ellipsis;\n    overflow: hidden;\n    white-space: nowrap\n}\n.comment-center .mail-contnet .mail-desc {\n    font-size: 14px;\n    display: block;\n    margin: 15px 0;\n    line-height: 25px;\n    color: #848a96;\n    overflow: hidden;\n    max-height: 52px;\n    text-overflow: ellipsis\n}\n.comment-center .mail-contnet .time {\n    display: inline-block;\n    font-size: 12px;\n    color: #98a6ad\n}\n.sales-report {\n    background: #f7fafc;\n    margin: 12px -25px;\n    padding: 15px\n}\n.dropdown-alerts,\n.dropdown-tasks {\n    padding: 0\n}\n.dropdown-alerts li a,\n.dropdown-tasks li a,\n.mailbox li>a {\n    padding: 15px 20px\n}\n.dropdown-alerts li.divider,\n.dropdown-tasks li.divider {\n    margin: 0\n}\n.row-in-br {\n    border-right: 1px solid rgba(120, 130, 140, .13)\n}\n.col-in {\n    list-style: none;\n    padding: 0;\n    margin: 0\n}\n.col-in li {\n    display: inline-block;\n    vertical-align: middle;\n    padding: 0 10px\n}\n.col-in li .circle {\n    display: inline-block\n}\n.col-in li.col-middle {\n    width: 40%\n}\n.col-in li.col-last {\n    float: right\n}\n.col-in h3 {\n    font-size: 36px;\n    font-weight: 100\n}\n.basic-list {\n    padding: 0\n}\n.basic-list li {\n    display: block;\n    padding: 15px 0;\n    border-bottom: 1px solid rgba(120, 130, 140, .13);\n    line-height: 27px\n}\n.basic-list li:last-child {\n    border-bottom: 0\n}\n.steamline {\n    position: relative;\n    border-left: 1px solid rgba(120, 130, 140, .13);\n    margin-left: 20px\n}\n.steamline .sl-left {\n    float: left;\n    margin-left: -20px;\n    z-index: 1;\n    width: 40px;\n    line-height: 40px;\n    text-align: center;\n    height: 40px;\n    border-radius: 100%;\n    color: #fff;\n    background: #263238;\n    margin-right: 15px\n}\n.steamline .sl-left img {\n    max-width: 40px\n}\n.steamline .sl-right {\n    padding-left: 50px\n}\n.steamline .sl-right .desc,\n.steamline .sl-right .inline-photos {\n    margin-bottom: 30px\n}\n.steamline .sl-right div>a {\n    color: #263238;\n    font-weight: 400\n}\n.steamline .sl-item {\n    border-bottom: 1px solid rgba(120, 130, 140, .13);\n    margin: 20px 0\n}\n.sl-date {\n    font-size: 10px;\n    color: #98a6ad\n}\n.time-item {\n    /*border-color: $border;*/\n    padding-bottom: 1px;\n    position: relative\n}\n.time-item:before {\n    content: \" \";\n    display: table\n}\n.time-item:after {\n    background-color: #fff;\n    border-color: rgba(120, 130, 140, .13);\n    border-radius: 10px;\n    border-style: solid;\n    border-width: 2px;\n    bottom: 0;\n    content: '';\n    height: 14px;\n    left: 0;\n    margin-left: -8px;\n    position: absolute;\n    top: 5px;\n    width: 14px\n}\n.time-item-item:after {\n    content: \" \";\n    display: table\n}\n.item-info {\n    margin-bottom: 15px;\n    margin-left: 15px\n}\n.item-info p {\n    margin-bottom: 10px!important\n}\n.user-bg {\n    margin: -25px;\n    height: 230px;\n    overflow: hidden;\n    position: relative\n}\n.user-bg .overlay-box {\n    background: #707cd2;\n    opacity: .9;\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 100%;\n    text-align: center\n}\n.user-bg .overlay-box .user-content {\n    padding: 15px;\n    margin-top: 30px\n}\n.user-btm-box {\n    padding: 40px 0 10px;\n    clear: both;\n    overflow: hidden\n}\n.vertical .carousel-inner {\n    height: 100%;\n    position: relative\n}\n.carousel.vertical .item {\n    -webkit-transition: .6s ease-in-out top;\n    -moz-transition: .6s ease-in-out top;\n    -ms-transition: .6s ease-in-out top;\n    -o-transition: .6s ease-in-out top;\n    transition: .6s ease-in-out top\n}\n.carousel.vertical .active {\n    top: 0\n}\n.carousel.vertical .next {\n    top: 400px\n}\n.carousel.vertical .prev {\n    top: -400px\n}\n.carousel.vertical .next.left,\n.carousel.vertical .prev.right {\n    top: 0\n}\n.carousel.vertical .active.left {\n    top: -400px\n}\n.carousel.vertical .active.right {\n    top: 400px\n}\n.carousel.vertical .item {\n    left: 0\n}\n.twi-user img {\n    margin-right: 20px;\n    width: 50px\n}\n.twi-user {\n    margin: 18px 0\n}\n.carousel-inner h3 {\n    overflow: hidden\n}\n.carousel-inner>.item>img {\n    width: 100%\n}\n.chart-box {\n    margin: 25px -15px -17px -17px\n}\n.chat-list {\n    list-style: none;\n    padding: 0 20px\n}\n.chat-list li {\n    margin-bottom: 24px;\n    overflow: auto\n}\n.chat-list .chat-image {\n    display: inline-block;\n    float: left;\n    text-align: center;\n    width: 50px\n}\n.chat-list .chat-image img {\n    border-radius: 100%;\n    width: 100%\n}\n.chat-list .chat-text {\n    background: #e5f7ff;\n    border-radius: 0 8px 8px;\n    display: inline-block;\n    padding: 15px;\n    font-size: 14px;\n    position: relative\n}\n.chat-list .chat-text h4 {\n    color: #1a2942;\n    display: block;\n    font-size: 14px;\n    font-style: normal;\n    font-weight: 500;\n    margin: 0;\n    line-height: 15px;\n    position: relative\n}\n.chat-list .chat-text p {\n    margin: 0;\n    padding-top: 3px\n}\n.chat-list .chat-text b {\n    font-size: 10px;\n    opacity: .8\n}\n.chat-list .chat-body {\n    display: inline-block;\n    float: left;\n    font-size: 12px;\n    margin-left: 12px;\n    width: 65%\n}\n.chat-list .odd .chat-image {\n    float: right!important\n}\n.chat-list .odd .chat-body {\n    float: right!important;\n    margin-right: 12px;\n    text-align: right\n}\n.chat-list .odd .chat-text {\n    background: #f7f7f7;\n    border-radius: 8px 0 8px 8px\n}\n.chat-send {\n    padding-left: 0;\n    padding-right: 30px\n}\n.chat-send button {\n    width: 100%\n}\n.weather-box .weather-top {\n    overflow: hidden;\n    padding: 10px 25px;\n    margin: 0 -25px;\n    background: #f7fafc\n}\n.weather-box .weather-top h2 {\n    line-height: 24px\n}\n.weather-box .weather-top h2 small {\n    font-size: 13px\n}\n.weather-box .weather-top .today_crnt {\n    font-size: 45px;\n    font-weight: 100\n}\n.weather-box .weather-top .today_crnt canvas {\n    display: inline-block;\n    margin-right: 10px;\n    vertical-align: middle\n}\n.weather-box .weather-info {\n    padding: 10px 0\n}\n.weather-box .weather-time {\n    overflow: hidden;\n    text-align: center;\n    padding-top: 15px\n}\n.weather-box .weather-time li span {\n    display: block\n}\n.weather-box .weather-time li canvas {\n    font-size: 20px;\n    margin: 10px 0\n}\n.demo-container {\n    width: 100%;\n    height: 350px\n}\n.demo-placeholder {\n    width: 100%;\n    height: 100%;\n    font-size: 14px;\n    line-height: 1.2em\n}\n.myadmin-alert {\n    border-radius: 0;\n    color: #fff;\n    padding: 12px 30px 12px 12px;\n    position: relative;\n    text-align: left\n}\n.myadmin-alert a {\n    color: inherit;\n    font-weight: 600;\n    text-decoration: underline\n}\n.myadmin-alert h4 {\n    color: inherit;\n    font-size: 14px;\n    font-weight: 600;\n    line-height: normal;\n    margin: 0\n}\n.myadmin-alert .img {\n    border-radius: 3px;\n    height: 40px;\n    left: 12px;\n    position: absolute;\n    top: 12px;\n    width: 40px\n}\n.myadmin-alert-img {\n    min-height: 64px;\n    padding-left: 65px\n}\n.myadmin-alert-icon {\n    padding-left: 20px\n}\n.myadmin-alert-icon i {\n    padding-right: 10px\n}\n.myadmin-alert .closed {\n    color: rgba(255, 255, 255, .5);\n    font-size: 20px;\n    font-weight: 500;\n    padding: 4px;\n    position: absolute;\n    right: 3px;\n    text-decoration: none;\n    top: 0\n}\n.myadmin-alert .closed:hover {\n    color: #fff\n}\n.myadmin-alert-click {\n    cursor: pointer;\n    padding-right: 12px\n}\n.myadmin-alert .primary {\n    background: rgba(0, 0, 0, .4);\n    border: none;\n    border-radius: 3px;\n    color: inherit;\n    outline: 0;\n    padding: 4px 10px\n}\n.myadmin-alert .cancel {\n    background: rgba(255, 255, 255, .4);\n    border: none;\n    border-radius: 3px;\n    color: rgba(0, 0, 0, .8);\n    outline: 0;\n    padding: 4px 10px\n}\n.myadmin-alert .cancel:hover,\n.myadmin-alert .primary:hover {\n    opacity: .9\n}\n.myadmin-alert-bottom,\n.myadmin-alert-bottom-left,\n.myadmin-alert-bottom-right,\n.myadmin-alert-fullscreen,\n.myadmin-alert-top,\n.myadmin-alert-top-left,\n.myadmin-alert-top-right {\n    box-shadow: 2px 2px 2px rgba(0, 0, 0, .1);\n    display: none;\n    position: fixed;\n    z-index: 1000\n}\n.myadmin-alert-top {\n    left: 0;\n    right: 0;\n    top: 0\n}\n.myadmin-alert-bottom {\n    bottom: 0;\n    left: 0;\n    right: 0\n}\n.myadmin-alert-top-left {\n    left: 20px;\n    top: 80px\n}\n.myadmin-alert-top-right {\n    right: 20px;\n    top: 80px\n}\n.myadmin-alert-bottom-left {\n    bottom: 20px;\n    left: 20px\n}\n.myadmin-alert-bottom-right {\n    bottom: 20px;\n    right: 20px\n}\n.myadmin-alert-fullsize {\n    left: 50%;\n    margin: -20px;\n    top: 50%\n}\n.alert-custom {\n    background: #2cabe3;\n    color: #fff;\n    border-color: #2cabe3\n}\n.alert-inverse {\n    background: #4c5667;\n    color: #fff;\n    border-color: #4c5667\n}\n.alert-success {\n    background: #7ace4c;\n    color: #fff;\n    border-color: #7ace4c\n}\n.alert-dark {\n    background: #313131;\n    color: #fff;\n    border-color: #313131\n}\n.alert-warning {\n    background: #fb4;\n    color: #fff;\n    border-color: #fb4\n}\n.alert-danger {\n    background: #f33155;\n    color: #fff;\n    border-color: #f33155\n}\n.alert-primary {\n    background: #707cd2;\n    color: #fff;\n    border-color: #707cd2\n}\n.alert-info {\n    background: #41b3f9;\n    color: #fff;\n    border-color: #41b3f9\n}\n.alert-info .closed,\n.alert-info a.closed:hover {\n    color: inherit\n}\n.tab-content {\n    margin-top: 30px\n}\n.customtab {\n    border-bottom: 2px solid #f7fafc\n}\n.customtab li.active a,\n.customtab li.active a:focus,\n.customtab li.active a:hover {\n    background: #fff;\n    border: 0;\n    border-bottom: 2px solid #2cabe3;\n    margin-bottom: -1px;\n    color: #2cabe3\n}\n.customtab li a,\n.customtab li a:focus,\n.customtab li a:hover {\n    border: 0\n}\n.customtab2 {\n    border-bottom: 1px solid #f7fafc;\n    border-top: 1px solid #f7fafc;\n    padding: 10px 0\n}\n.customtab2 li.active a,\n.customtab2 li.active a:focus,\n.customtab2 li.active a:hover {\n    background: #2cabe3;\n    border: 1px solid #2cabe3;\n    color: #fff\n}\n.customtab2 li a,\n.customtab2 li a:focus,\n.customtab2 li a:hover {\n    border: 0\n}\n.vtabs {\n    display: table\n}\n.vtabs .tabs-vertical {\n    width: 150px;\n    border-right: 1px solid rgba(120, 130, 140, .13);\n    display: table-cell;\n    vertical-align: top\n}\n.vtabs .tabs-vertical li a {\n    color: #263238;\n    margin-bottom: 10px\n}\n.vtabs .tab-content {\n    display: table-cell;\n    padding: 20px;\n    vertical-align: top\n}\n.tabs-vertical li.active a,\n.tabs-vertical li.active a:focus,\n.tabs-vertical li.active a:hover {\n    background: #2cabe3;\n    border: 0;\n    border-right: 2px solid #2cabe3;\n    margin-right: -1px;\n    color: #fff\n}\n.customvtab .tabs-vertical li.active a,\n.customvtab .tabs-vertical li.active a:focus,\n.customvtab .tabs-vertical li.active a:hover {\n    background: #fff;\n    border: 0;\n    border-right: 2px solid #2cabe3;\n    margin-right: -1px;\n    color: #263238\n}\n.nav-pills>li.active>a,\n.nav-pills>li.active>a:focus,\n.nav-pills>li.active>a:hover {\n    background: #2cabe3;\n    color: #fff\n}\n.nav-pills>li>a {\n    color: #263238;\n    border-radius: 0\n}\n.panel-group .panel .panel-heading .accordion-toggle.collapsed:before,\n.panel-group .panel .panel-heading a[data-toggle=collapse].collapsed:before {\n    content: '\\e64b'\n}\n.panel-group .panel .panel-heading a[data-toggle=collapse] {\n    display: block\n}\n.panel-group .panel .panel-heading a[data-toggle=collapse]:before {\n    content: '\\e648';\n    display: block;\n    float: right;\n    font-family: themify;\n    font-size: 14px;\n    text-align: right;\n    width: 25px\n}\n.panel-group .panel .panel-heading .accordion-toggle {\n    display: block\n}\n.panel-group .panel .panel-heading .accordion-toggle:before {\n    content: '\\e648';\n    display: block;\n    float: right;\n    font-family: themify;\n    font-size: 14px;\n    text-align: right;\n    width: 25px\n}\n.panel-group .panel .panel-heading+.panel-collapse .panel-body {\n    border-top: none\n}\n.panel-group .panel-heading {\n    padding: 12px 20px\n}\n.progress {\n    -webkit-box-shadow: none!important;\n    background-color: rgba(120, 130, 140, .13);\n    box-shadow: none!important;\n    height: 4px;\n    border-radius: 0;\n    margin-bottom: 18px;\n    overflow: hidden\n}\n.progress-bar {\n    box-shadow: none;\n    font-size: 8px;\n    font-weight: 600;\n    line-height: 12px\n}\n.progress.progress-sm {\n    height: 8px!important\n}\n.progress.progress-sm .progress-bar {\n    font-size: 8px;\n    line-height: 5px\n}\n.progress.progress-md {\n    height: 15px!important\n}\n.progress.progress-md .progress-bar {\n    font-size: 10.8px;\n    line-height: 14.4px\n}\n.progress.progress-lg {\n    height: 20px!important\n}\n.progress.progress-lg .progress-bar {\n    font-size: 12px;\n    line-height: 20px\n}\n.progress-bar-primary {\n    background-color: #7460ee\n}\n.progress-bar-success {\n    background-color: #7ace4c\n}\n.progress-bar-info {\n    background-color: #41b3f9\n}\n.progress-bar-megna {\n    background-color: #01c0c8\n}\n.progress-bar-warning {\n    background-color: #fb4\n}\n.progress-bar-danger {\n    background-color: #f33155\n}\n.progress-bar-inverse {\n    background-color: #4c5667\n}\n.progress-bar-purple {\n    background-color: #707cd2\n}\n.progress-bar-custom {\n    background-color: #41b3f9\n}\n.progress-animated {\n    -webkit-animation-duration: 5s;\n    -webkit-animation-name: myanimation;\n    -webkit-transition: 5s all;\n    animation-duration: 5s;\n    animation-name: myanimation;\n    transition: 5s all\n}\n@-webkit-keyframes myanimation {\n    from {\n        width: 0\n    }\n}\n@keyframes myanimation {\n    from {\n        width: 0\n    }\n}\n.progress-vertical {\n    min-height: 250px;\n    height: 250px;\n    width: 4px;\n    position: relative;\n    display: inline-block;\n    margin-bottom: 0;\n    margin-right: 20px\n}\n.progress-vertical .progress-bar {\n    width: 100%\n}\n.progress-vertical-bottom {\n    min-height: 250px;\n    height: 250px;\n    position: relative;\n    width: 4px;\n    display: inline-block;\n    margin-bottom: 0;\n    margin-right: 20px\n}\n.progress-vertical-bottom .progress-bar {\n    width: 100%;\n    position: absolute;\n    bottom: 0\n}\n.progress-vertical-bottom.progress-sm,\n.progress-vertical.progress-sm {\n    width: 8px!important\n}\n.progress-vertical-bottom.progress-sm .progress-bar,\n.progress-vertical.progress-sm .progress-bar {\n    font-size: 8px;\n    line-height: 5px\n}\n.progress-vertical-bottom.progress-md,\n.progress-vertical.progress-md {\n    width: 15px!important\n}\n.progress-vertical-bottom.progress-md .progress-bar,\n.progress-vertical.progress-md .progress-bar {\n    font-size: 10.8px;\n    line-height: 14.4px\n}\n.progress-vertical-bottom.progress-lg,\n.progress-vertical.progress-lg {\n    width: 20px!important\n}\n.progress-vertical-bottom.progress-lg .progress-bar,\n.progress-vertical.progress-lg .progress-bar {\n    font-size: 12px;\n    line-height: 20px\n}\n.timeline {\n    position: relative;\n    padding: 20px 0;\n    list-style: none;\n    max-width: 1200px;\n    margin: 0 auto\n}\n.timeline:before {\n    content: \" \";\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: 50%;\n    width: 3px;\n    margin-left: -1.5px;\n    background-color: #eee\n}\n.timeline>li {\n    position: relative;\n    margin-bottom: 20px\n}\n.timeline>li:after,\n.timeline>li:before {\n    content: \" \";\n    display: table\n}\n.timeline>li:after {\n    clear: both\n}\n.timeline>li>.timeline-panel {\n    float: left;\n    position: relative;\n    width: 46%;\n    padding: 20px;\n    border: 1px solid rgba(120, 130, 140, .13);\n    border-radius: 0;\n    -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .05);\n    box-shadow: 0 1px 6px rgba(0, 0, 0, .05)\n}\n.timeline>li>.timeline-panel:before {\n    content: \" \";\n    display: inline-block;\n    position: absolute;\n    top: 26px;\n    right: -8px;\n    border-top: 8px solid transparent;\n    border-right: 0 solid rgba(120, 130, 140, .13);\n    border-bottom: 8px solid transparent;\n    border-left: 8px solid rgba(120, 130, 140, .13)\n}\n.timeline>li>.timeline-panel:after {\n    content: \" \";\n    display: inline-block;\n    position: absolute;\n    top: 27px;\n    right: -7px;\n    border-top: 7px solid transparent;\n    border-right: 0 solid #fff;\n    border-bottom: 7px solid transparent;\n    border-left: 7px solid #fff\n}\n.timeline>li>.timeline-badge {\n    z-index: 100;\n    position: absolute;\n    top: 16px;\n    left: 50%;\n    width: 50px;\n    height: 50px;\n    margin-left: -25px;\n    border-radius: 50%;\n    text-align: center;\n    font-size: 1.4em;\n    line-height: 50px;\n    color: #fff;\n    overflow: hidden;\n    background-color: #4c5667\n}\n.timeline>li.timeline-inverted>.timeline-panel {\n    float: right\n}\n.timeline>li.timeline-inverted>.timeline-panel:before {\n    right: auto;\n    left: -8px;\n    border-right-width: 8px;\n    border-left-width: 0\n}\n.timeline>li.timeline-inverted>.timeline-panel:after {\n    right: auto;\n    left: -7px;\n    border-right-width: 7px;\n    border-left-width: 0\n}\n.timeline-badge.primary {\n    background-color: #7460ee!important\n}\n.timeline-badge.success {\n    background-color: #7ace4c!important\n}\n.timeline-badge.warning {\n    background-color: #fb4!important\n}\n.timeline-badge.danger {\n    background-color: #f33155!important\n}\n.timeline-badge.info {\n    background-color: #41b3f9!important\n}\n.timeline-title {\n    margin-top: 0;\n    color: inherit;\n    font-weight: 400\n}\n.timeline-body>p,\n.timeline-body>ul {\n    margin-bottom: 0\n}\n.timeline-body>p+p {\n    margin-top: 5px\n}\n.chart {\n    position: relative;\n    display: inline-block;\n    width: 100px;\n    height: 100px;\n    margin-top: 20px;\n    margin-bottom: 20px;\n    text-align: center\n}\n.chart canvas {\n    position: absolute;\n    top: 0;\n    left: 0\n}\n.chart.chart-widget-pie {\n    margin-top: 5px;\n    margin-bottom: 5px\n}\n.pie-chart>span {\n    left: 0;\n    margin-top: -2px;\n    position: absolute;\n    right: 0;\n    text-align: center;\n    top: 50%;\n    transform: translateY(-50%)\n}\n.chart>span>img {\n    left: 0;\n    position: absolute;\n    right: 0;\n    text-align: center;\n    top: 50%;\n    width: 60%;\n    height: 60%;\n    transform: translateY(-50%);\n    margin: 0 auto\n}\n.percent {\n    display: inline-block;\n    line-height: 100px;\n    z-index: 2;\n    font-weight: 600;\n    font-size: 18px;\n    color: #263238\n}\n.percent:after {\n    content: '%';\n    margin-left: .1em;\n    font-size: .8em\n}\n.table {\n    margin-bottom: 10px\n}\n.table-hover>tbody>tr:hover,\n.table-striped>tbody>tr:nth-of-type(odd),\n.table>tbody>tr.active>td,\n.table>tbody>tr.active>th,\n.table>tbody>tr>td.active,\n.table>tbody>tr>th.active,\n.table>tfoot>tr.active>td,\n.table>tfoot>tr.active>th,\n.table>tfoot>tr>td.active,\n.table>tfoot>tr>th.active,\n.table>thead>tr.active>td,\n.table>thead>tr.active>th,\n.table>thead>tr>td.active,\n.table>thead>tr>th.active {\n    background-color: #f7fafc!important\n}\n.table-bordered,\n.table>tbody>tr>td,\n.table>tbody>tr>th,\n.table>tfoot>tr>td,\n.table>tfoot>tr>th,\n.table>thead>tr>td,\n.table>thead>tr>th {\n    border-top: 1px solid #e4e7ea\n}\n.table>tbody>tr>td,\n.table>tbody>tr>th,\n.table>tfoot>tr>td,\n.table>tfoot>tr>th,\n.table>thead>tr>td,\n.table>thead>tr>th {\n    padding: 15px 8px\n}\n.table-bordered>tbody>tr>td,\n.table-bordered>tbody>tr>th,\n.table-bordered>tfoot>tr>td,\n.table-bordered>tfoot>tr>th,\n.table-bordered>thead>tr>td,\n.table-bordered>thead>tr>th {\n    border: 1px solid #e4e7ea\n}\n.table>thead>tr>th {\n    vertical-align: bottom;\n    border-bottom: 1px solid #e4e7ea\n}\ntbody {\n    color: #797979\n}\nth {\n    color: #666;\n    font-weight: 500\n}\n.table-bordered {\n    border: 1px solid #e4e7ea\n}\ntable.focus-on tbody tr.focused td,\ntable.focus-on tbody tr.focused th {\n    background-color: #2cabe3;\n    color: #fff\n}\n.table-rep-plugin .table-responsive {\n    border: none!important\n}\n.table-rep-plugin tbody th {\n    font-size: 14px;\n    font-weight: 400\n}\n.jsgrid .jsgrid-table {\n    margin-bottom: 0\n}\n.jsgrid-selected-row>td {\n    background: #f7fafc;\n    border-color: #f7fafc\n}\n.jsgrid-header-row>th {\n    background: #fff\n}\n.footable-odd {\n    background-color: #f7fafc\n}\n.form-control-line {\n    border-left: 0 none;\n    border-radius: 0;\n    border-right: 0 none;\n    border-top: 0 none;\n    box-shadow: none;\n    padding-left: 0\n}\n.has-success .form-control {\n    border-color: #7ace4c;\n    box-shadow: none!important\n}\n.has-warning .form-control {\n    border-color: #fb4;\n    box-shadow: none!important\n}\n.has-error .form-control {\n    border-color: #f33155;\n    box-shadow: none!important\n}\n.input-group-addon {\n    border-radius: 2px;\n    border: 1px solid rgba(120, 130, 140, .13)\n}\n.input-daterange input:first-child,\n.input-daterange input:last-child {\n    border-radius: 0\n}\n.form-material .form-group {\n    overflow: hidden\n}\n.form-material .form-control {\n    background-color: rgba(0, 0, 0, 0);\n    background-position: center bottom, center calc(99%);\n    background-repeat: no-repeat;\n    background-size: 0 2px, 100% 1px;\n    padding: 0;\n    transition: background 0s ease-out 0s\n}\n.form-material .form-control,\n.form-material .form-control.focus,\n.form-material .form-control:focus {\n    background-image: linear-gradient(#707cd2, #707cd2), linear-gradient(rgba(120, 130, 140, .13), rgba(120, 130, 140, .13));\n    border: 0;\n    border-radius: 0;\n    box-shadow: none;\n    float: none\n}\n.form-material .form-control.focus,\n.form-material .form-control:focus {\n    background-size: 100% 2px, 100% 1px;\n    outline: 0;\n    transition-duration: .3s\n}\n.form-bordered .form-group {\n    border-bottom: 1px solid rgba(120, 130, 140, .13);\n    padding-bottom: 20px\n}\n.select2-container .select2-choice {\n    background-image: none!important;\n    border: none!important;\n    height: auto!important;\n    padding: 0!important;\n    line-height: 22px!important;\n    background-color: transparent!important;\n    box-shadow: none!important\n}\n.select2-container .select2-choice .select2-arrow {\n    background-image: none!important;\n    background: 0 0;\n    border: none;\n    width: 14px;\n    top: -2px\n}\n.select2-container .select2-container-multi.form-control {\n    height: auto\n}\n.select2-results .select2-highlighted {\n    color: #fff;\n    background-color: #41b3f9\n}\n.select2-drop-active {\n    border: 1px solid #e3e3e3!important;\n    padding-top: 5px\n}\n.select2-search input {\n    border: 1px solid rgba(120, 130, 140, .13)\n}\n.select2-container-multi {\n    width: 100%\n}\n.select2-container-multi .select2-choices {\n    border: 1px solid #border!important;\n    box-shadow: none!important;\n    background-image: none!important;\n    border-radius: 0!important;\n    min-height: 38px\n}\n.select2-container-multi .select2-choices .select2-search-choice {\n    padding: 4px 7px 4px 18px;\n    margin: 5px 0 3px 5px;\n    color: #555;\n    background: #f5f5f5;\n    border-color: rgba(120, 130, 140, .13);\n    -webkit-box-shadow: none;\n    box-shadow: none\n}\n.select2-container-multi .select2-choices .select2-search-field input {\n    padding: 7px 7px 7px 10px;\n    font-family: inherit\n}\n.icon-list-demo div {\n    cursor: pointer;\n    line-height: 60px;\n    white-space: nowrap;\n    color: #313131\n}\n.icon-list-demo div:hover {\n    color: #263238\n}\n.icon-list-demo div p {\n    margin: 10px 0;\n    padding: 5px 0\n}\n.icon-list-demo i {\n    -webkit-transition: all .2s;\n    -webkit-transition: font-size .2s;\n    display: inline-block;\n    font-size: 18px;\n    margin: 0 15px 0 10px;\n    text-align: left;\n    vertical-align: middle;\n    width: auto;\n    transition: all .3s ease 0s\n}\n.icon-list-demo .col-md-4 {\n    border-radius: 0\n}\n.icon-list-demo .col-md-4:hover {\n    background-color: #f7fafc\n}\n.icon-list-demo .col-md-4:hover i {\n    font-size: 2em\n}\n.gmaps,\n.gmaps-panaroma {\n    height: 300px;\n    background: #e4e7ea;\n    border-radius: 3px\n}\n.gmaps-overlay {\n    display: block;\n    text-align: center;\n    color: #fff;\n    font-size: 16px;\n    line-height: 40px;\n    background: #7460ee;\n    border-radius: 4px;\n    padding: 10px 20px\n}\n.gmaps-overlay_arrow {\n    left: 50%;\n    margin-left: -16px;\n    width: 0;\n    height: 0;\n    position: absolute\n}\n.gmaps-overlay_arrow.above {\n    bottom: -15px;\n    border-left: 16px solid transparent;\n    border-right: 16px solid transparent;\n    border-top: 16px solid #7460ee\n}\n.gmaps-overlay_arrow.below {\n    top: -15px;\n    border-left: 16px solid transparent;\n    border-right: 16px solid transparent;\n    border-bottom: 16px solid #7460ee\n}\n.jvectormap-zoomin,\n.jvectormap-zoomout {\n    width: 10px;\n    height: 10px;\n    line-height: 10px\n}\n.jvectormap-zoomout {\n    top: 40px\n}\n.error-box {\n    height: 100%;\n    position: fixed;\n    top: 20%;\n    width: 100%\n}\n.error-box .footer {\n    width: 100%;\n    left: 0;\n    right: 0\n}\n.error-body {\n    padding-top: 5%\n}\n.error-body h1 {\n    font-size: 210px;\n    font-weight: 900;\n    line-height: 210px\n}\n.login-register {\n    /*background: url(../../plugins/images/login-register.jpg) center center/cover no-repeat!important;*/\n    height: 100%;\n    position: fixed\n}\n.login-box {\n    background: #fff;\n    width: 400px;\n    margin: 10% auto 0\n}\n.login-box .footer {\n    width: 100%;\n    left: 0;\n    right: 0\n}\n.login-box .social {\n    display: block;\n    margin-bottom: 30px\n}\n#recoverform {\n    display: none\n}\n.new-login-register {\n    position: fixed;\n    height: 100%\n}\n.new-login-register .lg-info-panel {\n    /*background: url(../../plugins/images/login-register.jpg) center center/cover no-repeat!important;*/\n    width: 500px;\n    height: 100%;\n    position: fixed\n}\n.new-login-register .lg-info-panel .inner-panel {\n    position: absolute;\n    height: 100%;\n    width: 100%;\n    background: rgba(0, 0, 0, .5)\n}\n.new-login-register .lg-info-panel .lg-content {\n    margin-top: 50%;\n    text-align: center;\n    padding: 0 50px\n}\n.new-login-register .lg-info-panel .lg-content h2 {\n    color: #fff\n}\n.new-login-register .lg-info-panel .lg-content p {\n    padding: 20px 0;\n    color: rgba(255, 255, 255, .7);\n    font-style: italic\n}\n.new-login-register .new-login-box {\n    margin-left: 50%;\n    margin-top: 10%;\n    width: 400px\n}\n.new-login-register .new-login-box .new-lg-form {\n    padding-top: 20px\n}\n.new-login-register .new-login-box .new-lg-form label {\n    text-transform: uppercase;\n    font-size: 12px\n}\n.new-login-register .new-login-box .social {\n    display: block;\n    margin-bottom: 30px\n}\n.pricing-box {\n    position: relative;\n    text-align: center;\n    margin-top: 30px\n}\n.featured-plan {\n    margin-top: 0\n}\n.featured-plan .pricing-body {\n    padding: 60px 0;\n    background: #f7fafc;\n    border: 1px solid #ddd\n}\n.featured-plan .price-table-content .price-row {\n    border-top: 1px solid rgba(120, 130, 140, .13)\n}\n.pricing-body {\n    border-radius: 0;\n    border-top: 1px solid rgba(120, 130, 140, .13);\n    border-bottom: 5px solid rgba(120, 130, 140, .13);\n    vertical-align: middle;\n    padding: 30px 0;\n    position: relative\n}\n.pricing-body h2 {\n    position: relative;\n    font-size: 56px;\n    margin: 20px 0 10px;\n    font-weight: 500\n}\n.pricing-body h2 span {\n    position: absolute;\n    font-size: 15px;\n    top: -10px;\n    margin-left: -10px\n}\n.price-table-content .price-row {\n    padding: 20px 0;\n    border-top: 1px solid rgba(120, 130, 140, .13)\n}\n.pricing-plan {\n    padding: 0 15px\n}\n.pricing-plan .no-padding {\n    padding: 0\n}\n.price-lable {\n    position: absolute;\n    top: -10px;\n    padding: 5px 10px;\n    margin: 0 auto;\n    display: inline-block;\n    width: 100px;\n    left: 0;\n    right: 0\n}\n.mails a {\n    color: #263238\n}\n.mails td {\n    vertical-align: middle!important;\n    position: relative\n}\n.mails td:last-of-type {\n    width: 100px;\n    padding-right: 20px\n}\n.mails tr:hover .text-white {\n    display: none\n}\n.mails .mail-select {\n    padding: 12px 20px;\n    min-width: 134px\n}\n.mails .checkbox {\n    margin-bottom: 0;\n    margin-top: 0;\n    vertical-align: middle;\n    display: inline-block;\n    height: 17px\n}\n.mails .checkbox label {\n    min-height: 16px\n}\n.mail-list .list-group-item {\n    background-color: transparent;\n    border: 0;\n    border-left: 3px solid #fff;\n    border-radius: 0\n}\n.mail-list .list-group-item:hover {\n    background: #f7fafc;\n    border-left: 3px solid #f7fafc\n}\n.mail-list .list-group-item:focus {\n    border-left: 3px solid #f7fafc\n}\n.mail-list .list-group-item.active:focus {\n    background: #f7fafc;\n    border-left: 3px solid #f33155\n}\n.mail-list .list-group-item.active {\n    border-left: 3px solid #f33155;\n    border-radius: 0;\n    color: #263238!important\n}\n.mail_listing {\n    min-height: 500px\n}\n.inbox_listing .inbox-item:hover {\n    background: #f7fafc\n}\n.inbox_listing .inbox-item {\n    padding-left: 20px\n}\n.inbox-widget.inbox_listing .inbox-item .inbox-item-text {\n    height: 19px;\n    overflow: hidden\n}\n.message-center .unread .mail-contnet .mail-desc,\n.message-center .unread .mail-contnet h5 {\n    font-weight: 600;\n    color: #263238!important\n}\n.calendar {\n    float: left;\n    margin-bottom: 0\n}\n.fc-view {\n    margin-top: 30px\n}\n.none-border .modal-footer {\n    border-top: none\n}\n.fc-toolbar h2 {\n    font-size: 18px;\n    font-weight: 600;\n    line-height: 30px;\n    text-transform: uppercase\n}\n.fc-day {\n    background: #fff\n}\n.fc-toolbar .fc-state-active,\n.fc-toolbar .ui-state-active,\n.fc-toolbar .ui-state-hover,\n.fc-toolbar button:focus,\n.fc-toolbar button:hover {\n    z-index: 0\n}\n.fc-widget-header {\n    border: 0!important\n}\n.fc-widget-content {\n    border-color: rgba(120, 130, 140, .13)!important\n}\n.fc th.fc-widget-header {\n    color: #fff;\n    font-size: 14px;\n    line-height: 20px;\n    padding: 7px 0;\n    text-transform: uppercase\n}\n.fc th.fc-sat,\n.fc th.fc-sun,\n.fc th.fc-thu,\n.fc th.fc-tue {\n    background: #34b6ef\n}\n.fc th.fc-fri,\n.fc th.fc-mon,\n.fc th.fc-wed {\n    background: #3bbcf5\n}\n.fc-view {\n    margin-top: 0\n}\n.fc-toolbar {\n    background: #41b3f9;\n    margin: 0;\n    padding: 24px 20px\n}\n.fc-toolbar h2 {\n    color: #fff\n}\n.fc-button {\n    background: #3bbcf5;\n    border: 1px solid #41b3f9;\n    color: #fff;\n    text-transform: capitalize\n}\n.fc-button:hover {\n    background: #3bbcf5;\n    opacity: .8\n}\n.fc-text-arrow {\n    font-family: inherit;\n    font-size: 16px\n}\n.fc-state-hover {\n    background: #F5F5F5\n}\n.fc-unthemed .fc-today {\n    border: 1px solid #f33155;\n    background: #f7fafc!important\n}\n.fc-cell-overlay,\n.fc-state-highlight {\n    background: #f0f0f0\n}\n.fc-event {\n    border-radius: 0;\n    border: none;\n    cursor: move;\n    font-size: 13px;\n    margin: 1px -1px 0;\n    padding: 5px;\n    text-align: center;\n    background: #41b3f9\n}\n.calendar-event {\n    cursor: move;\n    margin: 10px 5px 0 0;\n    padding: 6px 10px;\n    display: inline-block;\n    color: #fff;\n    min-width: 140px;\n    text-align: center;\n    background: #41b3f9\n}\n.calendar-event a {\n    float: right;\n    opacity: .6;\n    font-size: 10px;\n    margin: 4px 0 0 10px;\n    color: #fff\n}\n.fc-basic-view td.fc-week-number span {\n    padding-right: 5px\n}\n.fc-basic-view .fc-day-number {\n    padding: 10px 15px;\n    display: inline-block\n}\n.weather h1 {\n    color: #fff;\n    font-size: 50px;\n    font-weight: 100\n}\n.weather i {\n    color: #fff;\n    font-size: 40px\n}\n.weather .w-title-sub {\n    color: rgba(255, 255, 255, .6)\n}\n@-webkit-keyframes rotate {\n    from {\n        -webkit-transform: rotate(0deg)\n    }\n    to {\n        -webkit-transform: rotate(360deg)\n    }\n}\n@-moz-keyframes rotate {\n    from {\n        -moz-transform: rotate(0deg)\n    }\n    to {\n        -moz-transform: rotate(360deg)\n    }\n}\n@keyframes rotate {\n    from {\n        transform: rotate(0deg)\n    }\n    to {\n        transform: rotate(360deg)\n    }\n}\n.right-side-toggle {\n    position: relative\n}\n.right-side-toggle i {\n    -webkit-transition-property: -webkit-transform;\n    -webkit-transition-duration: 1s;\n    -moz-transition-property: -moz-transform;\n    -moz-transition-duration: 1s;\n    transition-property: transform;\n    transition-duration: 1s;\n    -webkit-animation-name: rotate;\n    -webkit-animation-duration: 2s;\n    -webkit-animation-iteration-count: infinite;\n    -webkit-animation-timing-function: linear;\n    -moz-animation-name: rotate;\n    -moz-animation-duration: 2s;\n    -moz-animation-iteration-count: infinite;\n    -moz-animation-timing-function: linear;\n    animation-name: rotate;\n    animation-duration: 2s;\n    animation-iteration-count: infinite;\n    animation-timing-function: linear;\n    position: absolute;\n    top: 7px;\n    left: 8px\n}\n.right-sidebar {\n    position: fixed;\n    right: -240px;\n    width: 240px;\n    display: none;\n    z-index: 1200;\n    background: #fff;\n    top: 0;\n    height: 100%;\n    box-shadow: 5px 1px 40px rgba(0, 0, 0, .1);\n    transition: all .3s ease\n}\n.right-sidebar .rpanel-title {\n    display: block;\n    padding: 21px;\n    color: #fff;\n    text-transform: uppercase;\n    font-size: 13px;\n    background: #2cabe3\n}\n.right-sidebar .rpanel-title span {\n    float: right;\n    cursor: pointer;\n    font-size: 11px\n}\n.right-sidebar .rpanel-title span:hover {\n    color: #263238\n}\n.right-sidebar .r-panel-body {\n    padding: 20px\n}\n.right-sidebar .r-panel-body ul {\n    margin: 0;\n    padding: 0\n}\n.right-sidebar .r-panel-body ul li {\n    list-style: none;\n    padding: 5px 0\n}\n.shw-rside {\n    right: 0;\n    width: 240px;\n    display: block\n}\n.chatonline img {\n    margin-right: 10px;\n    float: left;\n    width: 30px\n}\n.chatonline li a {\n    padding: 13px 0;\n    float: left;\n    width: 100%\n}\n.chatonline li a span {\n    color: #313131\n}\n.chatonline li a span small {\n    display: block;\n    font-size: 10px\n}\nul#themecolors {\n    display: block\n}\nul#themecolors li {\n    display: inline-block\n}\nul#themecolors li:first-child {\n    display: block\n}\n#themecolors li a {\n    width: 50px;\n    height: 50px;\n    display: inline-block;\n    margin: 5px;\n    color: transparent;\n    position: relative\n}\n#themecolors li a.working:before {\n    content: \"\\f00c\";\n    font-family: FontAwesome;\n    font-size: 18px;\n    line-height: 50px;\n    width: 50px;\n    height: 50px;\n    position: absolute;\n    top: 0;\n    left: 0;\n    color: #fff;\n    text-align: center\n}\n.default-theme {\n    background: #4c5667\n}\n.green-theme {\n    background: #7ace4c\n}\n.yellow-theme {\n    background: #a0aec4\n}\n.blue-theme {\n    background: #41b3f9\n}\n.purple-theme {\n    background: #707cd2\n}\n.megna-theme {\n    background: #e4e7ea\n}\n.default-dark-theme {\n    background: #4f5467;\n    background: -moz-linear-gradient(left, #4f5467 0, #4f5467 23%, #f33155 23%, #f33155 99%);\n    background: -webkit-linear-gradient(left, #4f5467 0, #4f5467 23%, #f33155 23%, #f33155 99%);\n    background: linear-gradient(to right, #4f5467 0, #4f5467 23%, #f33155 23%, #f33155 99%)\n}\n.green-dark-theme {\n    background: #4f5467;\n    background: -moz-linear-gradient(left, #4f5467 0, #4f5467 23%, #00c292 23%, #00c292 99%);\n    background: -webkit-linear-gradient(left, #4f5467 0, #4f5467 23%, #00c292 23%, #00c292 99%);\n    background: linear-gradient(to right, #4f5467 0, #4f5467 23%, #00c292 23%, #00c292 99%)\n}\n.yellow-dark-theme {\n    background: #4f5467;\n    background: -moz-linear-gradient(left, #4f5467 0, #4f5467 23%, #a0aec4 23%, #a0aec4 99%);\n    background: -webkit-linear-gradient(left, #4f5467 0, #4f5467 23%, #a0aec4 23%, #a0aec4 99%);\n    background: linear-gradient(to right, #4f5467 0, #4f5467 23%, #a0aec4 23%, #a0aec4 99%)\n}\n.blue-dark-theme {\n    background: #4f5467;\n    background: -moz-linear-gradient(left, #4f5467 0, #4f5467 23%, #41b3f9 23%, #41b3f9 99%);\n    background: -webkit-linear-gradient(left, #4f5467 0, #4f5467 23%, #41b3f9 23%, #41b3f9 99%);\n    background: linear-gradient(to right, #4f5467 0, #4f5467 23%, #41b3f9 23%, #41b3f9 99%)\n}\n.purple-dark-theme {\n    background: #4f5467;\n    background: -moz-linear-gradient(left, #4f5467 0, #4f5467 23%, #707cd2 23%, #707cd2 99%);\n    background: -webkit-linear-gradient(left, #4f5467 0, #4f5467 23%, #707cd2 23%, #707cd2 99%);\n    background: linear-gradient(to right, #4f5467 0, #4f5467 23%, #707cd2 23%, #707cd2 99%)\n}\n.megna-dark-theme {\n    background: #4f5467;\n    background: -moz-linear-gradient(left, #4f5467 0, #4f5467 23%, #e4e7ea 23%, #e4e7ea 99%);\n    background: -webkit-linear-gradient(left, #4f5467 0, #4f5467 23%, #e4e7ea 23%, #e4e7ea 99%);\n    background: linear-gradient(to right, #4f5467 0, #4f5467 23%, #e4e7ea 23%, #e4e7ea 99%)\n}\n.red-dark-theme {\n    background: #e20b0b;\n    background: -moz-linear-gradient(left, #4f5467 0, #4f5467 23%, #e20b0b 23%, #e20b0b 99%);\n    background: -webkit-linear-gradient(left, #4f5467 0, #4f5467 23%, #e20b0b 23%, #e20b0b 99%);\n    background: linear-gradient(to right, #4f5467 0, #4f5467 23%, #e20b0b 23%, #e20b0b 99%)\n}\n.visited li a {\n    color: #313131\n}\n.visited li.active a {\n    color: #2cabe3\n}\n.stats-row {\n    margin-bottom: 20px\n}\n.stat-item {\n    display: inline-block;\n    padding-right: 15px\n}\n.stat-item+.stat-item {\n    padding-left: 15px;\n    border-left: 1px solid #eee\n}\n.country-state {\n    list-style: none;\n    margin: 0;\n    padding: 0 0 0 10px\n}\n.country-state h2 {\n    margin: 0\n}\n.country-state .progress {\n    margin-top: 8px\n}\n.two-part li {\n    width: 48.8%\n}\n.two-part li i {\n    font-size: 50px\n}\n.two-part li span {\n    font-size: 50px;\n    font-weight: 100;\n    font-family: Rubik, sans-serif\n}\n.news-slide {\n    position: relative\n}\n.news-slide .overlaybg {\n    height: 370px;\n    overflow: hidden\n}\n.news-slide .overlaybg img {\n    width: 100%;\n    height: 100%\n}\n.news-slide .news-content {\n    position: absolute;\n    height: 370px;\n    background: rgba(0, 0, 0, .5);\n    z-index: 10;\n    width: 100%;\n    top: 0;\n    padding: 30px\n}\n.news-slide .news-content h2 {\n    height: 240px;\n    overflow: hidden;\n    color: #fff\n}\n.news-slide .news-content a {\n    color: #fff;\n    opacity: .6;\n    text-transform: uppercase\n}\n.news-slide .news-content a:hover {\n    opacity: 1\n}\n.dashboard-slide .news-content,\n.dashboard-slide .overlaybg {\n    height: 435px\n}\n.dashboard-slide .news-content h2 {\n    height: 320px\n}\n.nav-pills-rounded li {\n    display: inline-block;\n    float: none\n}\n.nav-pills-rounded li a {\n    border-radius: 60px;\n    -moz-border-radius: 60px;\n    -webkit-border-radius: 60px;\n    color: #313131;\n    padding: 10px 25px\n}\n.nav-pills-rounded li.active a,\n.nav-pills-rounded li.active a:focus,\n.nav-pills-rounded li.active a:hover {\n    background: #2cabe3;\n    color: #fff\n}\n.analytics-info .list-inline {\n    margin-bottom: 0\n}\n.analytics-info .list-inline li {\n    vertical-align: middle;\n    display: block;\n    margin-right: 0;\n}\n.analytics-info .list-inline li span {\n    font-size: 24px\n}\n.analytics-info .list-inline li i {\n    font-size: 20px\n}\n.feeds {\n    margin: 0;\n    padding: 0\n}\n.feeds li {\n    list-style: none;\n    padding: 10px;\n    display: block\n}\n.feeds li:hover {\n    background: #f7fafc\n}\n.feeds li>div {\n    width: 40px;\n    height: 40px;\n    margin-right: 5px;\n    display: inline-block;\n    text-align: center;\n    vertical-align: middle;\n    border-radius: 100%\n}\n.feeds li>div i {\n    line-height: 40px\n}\n.feeds li span {\n    float: right;\n    width: auto;\n    font-size: 12px\n}\n.jq-icon-info {\n    background-color: #41b3f9;\n    color: #fff\n}\n.jq-icon-success {\n    background-color: #7ace4c;\n    color: #fff\n}\n.jq-icon-error {\n    background-color: #f33155;\n    color: #fff\n}\n.jq-icon-warning {\n    background-color: #fb4;\n    color: #fff\n}\n.dropzone {\n    border-style: dashed;\n    border-width: 1px\n}\n.weather h1 sup {\n    font-size: 20px;\n    top: -1.2em\n}\n.fcbtn {\n    position: relative;\n    -webkit-transition: all .3s;\n    -moz-transition: all .3s;\n    transition: all .3s;\n    padding: 8px 20px\n}\n.fcbtn:after {\n    content: '';\n    position: absolute;\n    z-index: -1;\n    -webkit-transition: all .3s;\n    -moz-transition: all .3s;\n    transition: all .3s\n}\n.btn-1b:after {\n    width: 100%;\n    height: 0;\n    top: 0;\n    left: 0\n}\n.btn-1b:active,\n.btn-1b:hover {\n    color: #fff\n}\n.btn-1b:active:after,\n.btn-1b:hover:after {\n    height: 100%\n}\n.btn-1b.btn-info:after,\n.btn-1c.btn-info:after,\n.btn-1d.btn-info:after,\n.btn-1e.btn-info:after,\n.btn-1f.btn-info:after {\n    background: #41b3f9\n}\n.btn-1b.btn-warning:after,\n.btn-1c.btn-warning:after,\n.btn-1d.btn-warning:after,\n.btn-1e.btn-warning:after,\n.btn-1f.btn-warning:after {\n    background: #fb4\n}\n.btn-1b.btn-danger:after,\n.btn-1c.btn-danger:after,\n.btn-1d.btn-danger:after,\n.btn-1e.btn-danger:after,\n.btn-1f.btn-danger:after {\n    background: #f33155\n}\n.btn-1b.btn-primary:after,\n.btn-1c.btn-primary:after,\n.btn-1d.btn-primary:after,\n.btn-1e.btn-primary:after,\n.btn-1f.btn-primary:after {\n    background: #707cd2\n}\n.btn-1b.btn-success:after,\n.btn-1c.btn-success:after,\n.btn-1d.btn-success:after,\n.btn-1e.btn-success:after,\n.btn-1f.btn-success:after {\n    background: #7ace4c\n}\n.btn-1b.btn-inverse:after,\n.btn-1c.btn-inverse:after,\n.btn-1d.btn-inverse:after,\n.btn-1e.btn-inverse:after,\n.btn-1f.btn-inverse:after {\n    background: #4c5667\n}\n.btn-1c:after {\n    width: 0;\n    height: 100%;\n    top: 0;\n    left: 0\n}\n.btn-1c:active,\n.btn-1c:hover {\n    color: #000\n}\n.btn-1c:active:after,\n.btn-1c:hover:after {\n    width: 100%\n}\n.btn-1d {\n    overflow: hidden\n}\n.btn-1d:after {\n    width: 0;\n    height: 103%;\n    top: 50%;\n    left: 50%;\n    opacity: 0;\n    -webkit-transform: translateX(-50%) translateY(-50%);\n    -moz-transform: translateX(-50%) translateY(-50%);\n    -ms-transform: translateX(-50%) translateY(-50%);\n    transform: translateX(-50%) translateY(-50%)\n}\n.btn-1d:hover:after {\n    width: 100%;\n    opacity: 1\n}\n.btn-1e {\n    overflow: hidden\n}\n.btn-1e:after {\n    width: 100%;\n    height: 0;\n    top: 50%;\n    left: 50%;\n    background: #fff;\n    opacity: 0;\n    -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg);\n    -moz-transform: translateX(-50%) translateY(-50%) rotate(45deg);\n    -ms-transform: translateX(-50%) translateY(-50%) rotate(45deg);\n    transform: translateX(-50%) translateY(-50%) rotate(45deg)\n}\n.btn-1e:hover:after {\n    height: 260%;\n    opacity: 1\n}\n.btn-1e:active:after {\n    height: 400%;\n    opacity: 1\n}\n.btn-1f {\n    overflow: hidden\n}\n.btn-1f:after {\n    width: 101%;\n    height: 0;\n    top: 50%;\n    left: 50%;\n    background: #fff;\n    opacity: 0;\n    -webkit-transform: translateX(-50%) translateY(-50%);\n    -moz-transform: translateX(-50%) translateY(-50%);\n    -ms-transform: translateX(-50%) translateY(-50%);\n    transform: translateX(-50%) translateY(-50%)\n}\n.btn-1f:hover:after {\n    height: 100%;\n    opacity: 1\n}\n.btn-1f:active:after {\n    height: 130%;\n    opacity: 1\n}\n.sweet-alert {\n    padding: 25px\n}\n.sweet-alert h2 {\n    margin-top: 0\n}\n.sweet-alert p {\n    line-height: 30px\n}\nul.list-icons {\n    margin: 0;\n    padding: 0\n}\nul.list-icons li {\n    list-style: none;\n    line-height: 40px\n}\nul.list-icons li i {\n    font-size: 12px;\n    margin-right: 5px\n}\n.demo-popover .popover,\n.demo-tooltip .tooltip {\n    position: relative;\n    margin-right: 25px;\n    opacity: 1;\n    display: inline-block\n}\n.tooltip-inner {\n    border-radius: 3px;\n    padding: 5px 10px\n}\n.tooltip.in {\n    opacity: 1\n}\n.tooltip-primary+.tooltip .tooltip-inner,\n.tooltip-primary.tooltip .tooltip-inner {\n    color: #fff;\n    background-color: #7460ee\n}\n.tooltip-primary+.tooltip.top .tooltip-arrow,\n.tooltip-primary.tooltip.top .tooltip-arrow {\n    border-top-color: #7460ee\n}\n.tooltip-primary+.tooltip.right .tooltip-arrow,\n.tooltip-primary.tooltip.right .tooltip-arrow {\n    border-right-color: #7460ee\n}\n.tooltip-primary+.tooltip.bottom .tooltip-arrow,\n.tooltip-primary.tooltip.bottom .tooltip-arrow {\n    border-bottom-color: #7460ee\n}\n.tooltip-primary+.tooltip.left .tooltip-arrow,\n.tooltip-primary.tooltip.left .tooltip-arrow {\n    border-left-color: #7460ee\n}\n.tooltip-success+.tooltip .tooltip-inner,\n.tooltip-success.tooltip .tooltip-inner {\n    color: #fff;\n    background-color: #7ace4c\n}\n.tooltip-success+.tooltip.top .tooltip-arrow,\n.tooltip-success.tooltip.top .tooltip-arrow {\n    border-top-color: #7ace4c\n}\n.tooltip-success+.tooltip.right .tooltip-arrow,\n.tooltip-success.tooltip.right .tooltip-arrow {\n    border-right-color: #7ace4c\n}\n.tooltip-success+.tooltip.bottom .tooltip-arrow,\n.tooltip-success.tooltip.bottom .tooltip-arrow {\n    border-bottom-color: #7ace4c\n}\n.tooltip-success+.tooltip.left .tooltip-arrow,\n.tooltip-success.tooltip.left .tooltip-arrow {\n    border-left-color: #7ace4c\n}\n.tooltip-warning+.tooltip .tooltip-inner,\n.tooltip-warning.tooltip .tooltip-inner {\n    color: #fff;\n    background-color: #fb4\n}\n.tooltip-warning+.tooltip.top .tooltip-arrow,\n.tooltip-warning.tooltip.top .tooltip-arrow {\n    border-top-color: #fb4\n}\n.tooltip-warning+.tooltip.right .tooltip-arrow,\n.tooltip-warning.tooltip.right .tooltip-arrow {\n    border-right-color: #fb4\n}\n.tooltip-warning+.tooltip.bottom .tooltip-arrow,\n.tooltip-warning.tooltip.bottom .tooltip-arrow {\n    border-bottom-color: #fb4\n}\n.tooltip-warning+.tooltip.left .tooltip-arrow,\n.tooltip-warning.tooltip.left .tooltip-arrow {\n    border-left-color: #fb4\n}\n.tooltip-info+.tooltip .tooltip-inner,\n.tooltip-info.tooltip .tooltip-inner {\n    color: #fff;\n    background-color: #41b3f9\n}\n.tooltip-info+.tooltip.top .tooltip-arrow,\n.tooltip-info.tooltip.top .tooltip-arrow {\n    border-top-color: #41b3f9\n}\n.tooltip-info+.tooltip.right .tooltip-arrow,\n.tooltip-info.tooltip.right .tooltip-arrow {\n    border-right-color: #41b3f9\n}\n.tooltip-info+tooltip.bottom .tooltip-arrow,\n.tooltip-info.tooltip.bottom .tooltip-arrow {\n    border-bottom-color: #41b3f9\n}\n.tooltip-info+.tooltip.left .tooltip-arrow,\n.tooltip-info.tooltip.left .tooltip-arrow {\n    border-left-color: #41b3f9\n}\n.tooltip-danger+.tooltip .tooltip-inner,\n.tooltip-danger.tooltip .tooltip-inner {\n    color: #fff;\n    background-color: #f33155\n}\n.tooltip-danger+.tooltip.top .tooltip-arrow,\n.tooltip-danger.tooltip.top .tooltip-arrow {\n    border-top-color: #f33155\n}\n.tooltip-danger+.tooltip.right .tooltip-arrow,\n.tooltip-danger.tooltip.right .tooltip-arrow {\n    border-right-color: #f33155\n}\n.tooltip-danger+.tooltip.bottom .tooltip-arrow,\n.tooltip-danger.tooltip.bottom .tooltip-arrow {\n    border-bottom-color: #f33155\n}\n.tooltip-danger+.tooltip.left .tooltip-arrow,\n.tooltip-danger.tooltip.left .tooltip-arrow {\n    border-left-color: #f33155\n}\n.flotTip {\n    padding: 8px 12px;\n    background-color: #263238;\n    z-index: 100;\n    color: #fff;\n    opacity: .9;\n    font-size: 13px\n}\n.popover {\n    -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, .05);\n    box-shadow: 0 2px 6px rgba(0, 0, 0, .05)\n}\n.popover .popover-title {\n    border-radius: 0\n}\n.popover-primary+.popover .popover-title {\n    color: #fff;\n    background-color: #7460ee;\n    border-color: #7460ee\n}\n.popover-primary+.popover.bottom .arrow,\n.popover-primary+.popover.bottom .arrow:after {\n    border-bottom-color: #7460ee\n}\n.popover-success+.popover .popover-title {\n    color: #fff;\n    background-color: #7ace4c;\n    border-color: #7ace4c\n}\n.popover-success+.popover.bottom .arrow,\n.popover-success+.popover.bottom .arrow:after {\n    border-bottom-color: #7ace4c\n}\n.popover-info+.popover .popover-title {\n    color: #fff;\n    background-color: #41b3f9;\n    border-color: #41b3f9\n}\n.popover-info+.popover.bottom .arrow,\n.popover-info+.popover.bottom .arrow:after {\n    border-bottom-color: #41b3f9\n}\n.popover-warning+.popover .popover-title {\n    color: #fff;\n    background-color: #fb4;\n    border-color: #fb4\n}\n.popover-warning+.popover.bottom .arrow,\n.popover-warning+.popover.bottom .arrow:after {\n    border-bottom-color: #fb4\n}\n.popover-danger+.popover .popover-title {\n    color: #fff;\n    background-color: #f33155;\n    border-color: #f33155\n}\n.popover-danger+.popover.bottom .arrow,\n.popover-danger+.popover.bottom .arrow:after {\n    border-bottom-color: #f33155\n}\n.btn-file {\n    overflow: hidden;\n    position: relative;\n    vertical-align: middle\n}\n.btn-file>input {\n    position: absolute;\n    top: 0;\n    right: 0;\n    margin: 0;\n    opacity: 0;\n    filter: alpha(opacity=0);\n    font-size: 23px;\n    height: 100%;\n    width: 100%;\n    direction: ltr;\n    cursor: pointer;\n    border-radius: 0\n}\n.fileinput {\n    margin-bottom: 9px;\n    display: inline-block\n}\n.fileinput .form-control {\n    padding-top: 7px;\n    padding-bottom: 5px;\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle;\n    cursor: text\n}\n.fileinput .thumbnail {\n    overflow: hidden;\n    display: inline-block;\n    margin-bottom: 5px;\n    vertical-align: middle;\n    text-align: center\n}\n.fileinput .thumbnail>img {\n    max-height: 100%\n}\n.fileinput .btn {\n    vertical-align: middle\n}\n.fileinput-exists .fileinput-new,\n.fileinput-new .fileinput-exists {\n    display: none\n}\n.fileinput-inline .fileinput-controls {\n    display: inline\n}\n.fileinput-filename {\n    vertical-align: middle;\n    display: inline-block;\n    overflow: hidden\n}\n.form-control .fileinput-filename {\n    vertical-align: bottom\n}\n.fileinput.input-group {\n    display: table\n}\n.fileinput.input-group>* {\n    position: relative;\n    z-index: 2\n}\n.fileinput.input-group>.btn-file {\n    z-index: 1\n}\n.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn) {\n    width: 100%\n}\n.ms-container .ms-list {\n    border-radius: 0;\n    box-shadow: none\n}\n.ms-container .ms-selectable li.ms-elem-selectable,\n.ms-container .ms-selection li.ms-elem-selection {\n    padding: 6px 10px\n}\n.ms-container .ms-selectable li.ms-hover,\n.ms-container .ms-selection li.ms-hover {\n    background: #41b3f9\n}\n.dropzone .dz-message {\n    text-align: center;\n    margin: 10% 0\n}\n.editable-input .form-control {\n    height: 30px\n}\n.asColorPicker-trigger {\n    position: absolute;\n    top: 0;\n    right: -35px;\n    height: 38px;\n    width: 37px;\n    border: 0\n}\n.asColorPicker-dropdown {\n    max-width: 260px\n}\n.asColorPicker-clear {\n    top: 7px;\n    right: 16px\n}\n.datepicker table tr td.today,\n.datepicker table tr td.today.disabled,\n.datepicker table tr td.today.disabled:hover,\n.datepicker table tr td.today:hover {\n    background: #2cabe3;\n    color: #fff\n}\n.datepicker table tr td.active,\n.datepicker table tr td.active.disabled,\n.datepicker table tr td.active.disabled:hover,\n.datepicker table tr td.active:hover {\n    background: #41b3f9;\n    color: #fff\n}\n.editable-table+input.error {\n    border: 1px solid #danger;\n    outline: 0;\n    outline-offset: 0\n}\n#editable-datatable_wrapper+input:focus,\n.editable-table+input,\n.editable-table+input:focus {\n    border: 1px solid #41b3f9!important;\n    outline: 0!important;\n    outline-offset: 0!important\n}\n.editable-table td:focus {\n    outline: 0\n}\n.user-profile {\n    padding: 70px 0 15px;\n    position: relative;\n    text-align: center\n}\n.user-profile .user-pro-body {\n    display: block\n}\n.user-profile .user-pro-body img {\n    width: 50px;\n    display: block;\n    margin: 0 auto 10px\n}\n.user-profile .user-pro-body .u-dropdown {\n    color: #97999f\n}\n.user-profile .user-pro-body .dropdown-menu {\n    right: 0;\n    width: 180px;\n    left: 0;\n    margin: 0 auto\n}\n.wizard-steps {\n    display: table;\n    width: 100%\n}\n.wizard-steps>li {\n    display: table-cell;\n    padding: 10px 20px;\n    background: #f7fafc\n}\n.wizard-steps>li span {\n    border-radius: 100%;\n    border: 1px solid rgba(120, 130, 140, .13);\n    width: 40px;\n    height: 40px;\n    display: inline-block;\n    vertical-align: middle;\n    padding-top: 9px;\n    margin-right: 8px;\n    text-align: center\n}\n.wizard-content {\n    padding: 25px;\n    border-color: rgba(120, 130, 140, .13);\n    margin-bottom: 30px\n}\n.wizard-steps>li.current,\n.wizard-steps>li.done {\n    background: #41b3f9;\n    color: #fff\n}\n.wizard-steps>li.current span,\n.wizard-steps>li.done span {\n    border-color: #fff;\n    color: #fff\n}\n.wizard-steps>li.current h4,\n.wizard-steps>li.done h4 {\n    color: #fff\n}\n.wizard-steps>li.done {\n    background: #7ace4c\n}\n.wizard-steps>li.error {\n    background: #f33155\n}\n.wiz-aco .pager {\n    margin: 0\n}\n#morris-donut-chart svg text {\n    font-family: Rubik, sans-serif!important;\n    font-weight: 400!important\n}\n#diagram {\n    margin: 0 auto;\n    width: 250px;\n    padding-top: 30px;\n    height: 271px\n}\n#diagram circle {\n    fill: #fff\n}\n#diagram text {\n    fill: #313131\n}\n.get {\n    display: none\n}\nul.expense-box {\n    margin: 0;\n    padding: 0\n}\nul.expense-box li {\n    list-style: none;\n    display: inline-block;\n    padding: 8px 0 8px 20px\n}\nul.expense-box li i {\n    width: 60px;\n    font-size: 30px;\n    vertical-align: middle;\n    display: inline-block\n}\nul.expense-box li div,\nul.expense-box li span {\n    display: inline-block;\n    vertical-align: middle\n}\nul.expense-box li div h2,\nul.expense-box li span h2 {\n    margin-bottom: 0;\n    font-weight: 400\n}\nul.expense-box li div h4,\nul.expense-box li span h4 {\n    margin-top: 0\n}\n.minus-margin {\n    margin: 0 -25px\n}\n.manage-users {\n    margin-bottom: 30px\n}\n.manage-users .tabs-style-iconbox nav {\n    background: #41b3f9\n}\n.manage-users .tabs-style-iconbox nav ul li a {\n    color: rgba(255, 255, 255, .6);\n    text-transform: uppercase\n}\n.manage-users .tabs-style-iconbox nav ul li a.sticon:before {\n    margin-bottom: 15px\n}\n.manage-users .tabs-style-iconbox nav ul li.tab-current a {\n    box-shadow: none\n}\nul.side-icon-text {\n    margin: 0;\n    padding: 0\n}\nul.side-icon-text>li {\n    list-style: none;\n    display: inline-block;\n    margin-right: 10px\n}\nul.side-icon-text>li a {\n    color: #313131;\n    font-weight: 400\n}\nul.side-icon-text>li a:hover {\n    color: #41b3f9\n}\nul.side-icon-text>li a span {\n    margin-right: 10px\n}\n.manage-table {\n    border-top: 1px solid rgba(120, 130, 140, .13);\n    margin: 10px -25px 0;\n    background: #f7fafc;\n    padding: 30px\n}\n.table tbody tr.advance-table-row {\n    border: 2px solid rgba(120, 130, 140, .13);\n    white-space: nowrap\n}\n.table tbody tr.advance-table-row .checkbox {\n    margin: 0\n}\n.table tbody tr.advance-table-row.active {\n    border: 2px solid #2cabe3\n}\n.table tbody tr.advance-table-row td {\n    vertical-align: middle!important;\n    border: 0!important;\n    font-size: 16px;\n    background: #fff\n}\ntd.sm-pd {\n    padding: 5px 0!important\n}\n.demo-container .flot-text,\n.demo-container .flot-x-axis,\n.wallet-widgets #morris-area-chart2 text {\n    display: none\n}\nul.wallet-list {\n    margin: 0;\n    padding: 0\n}\nul.wallet-list li {\n    list-style: none;\n    display: block;\n    font-size: 18px;\n    padding: 20px;\n    border-top: 1px solid rgba(120, 130, 140, .13)\n}\nul.wallet-list li i {\n    font-size: 24px;\n    display: inline-block;\n    margin-right: 12px;\n    vertical-align: middle;\n    color: #41b3f9\n}\nul.wallet-list li a {\n    vertical-align: middle;\n    color: #313131\n}\nul.wallet-list li a:hover {\n    color: #2cabe3\n}\n@keyframes dasharray-craziness {\n    0% {\n        stroke-dasharray: 5px\n    }\n    50% {\n        stroke-dasharray: 6px\n    }\n    100% {\n        stroke-dasharray: 7px\n    }\n}\n#ct-bar-chart,\n#ct-city-wth,\n#ct-daily-sales,\n#ct-extra,\n#ct-main-bal,\n#ct-polar-chart,\n#ct-sales,\n#ct-visits,\n#ct-weather {\n    position: relative\n}\n#ct-extra .ct-series-a .ct-line,\n#ct-extra .ct-series-a .ct-point,\n#ct-sales .ct-series-a .ct-line,\n#ct-sales .ct-series-a .ct-point,\n#ct-weather .ct-series-a .ct-line,\n#ct-weather .ct-series-a .ct-point {\n    stroke: #fff;\n    stroke-shadow: 3px 10px 10px #000\n}\n#ct-extra .ct-series-a .ct-area,\n#ct-sales .ct-series-a .ct-area,\n#ct-weather .ct-series-a .ct-area {\n    fill: none\n}\n#ct-extra .ct-grid,\n#ct-sales .ct-grid,\n#ct-weather .ct-grid {\n    stroke: rgba(255, 255, 255, .2);\n    stroke-dasharray: 0\n}\n#ct-weather .ct-series-a .ct-line {\n    animation: dasharray-craziness 2s infinite\n}\n.ct-label {\n    font-size: 1em\n}\n#ct-extra .ct-series-a .ct-line,\n#ct-extra .ct-series-a .ct-point {\n    stroke: #41b3f9;\n    animation: dasharray-craziness .5s infinite\n}\n#ct-extra .ct-grid {\n    stroke: rgba(0, 0, 0, .2);\n    stroke-dasharray: 2px\n}\n#ct-bar-chart .ct-series-a .ct-bar {\n    stroke: #41b3f9;\n    stroke-width: 7px\n}\n#ct-main-bal .ct-series-a .ct-line,\n#ct-main-bal .ct-series-a .ct-point {\n    stroke: none;\n    fill: #41b3f9;\n    fill-opacity: .5\n}\n#ct-main-bal .ct-series-b .ct-line,\n#ct-main-bal .ct-series-b .ct-point {\n    stroke: #41b3f9;\n    stroke-width: 1px;\n    animation: dasharray-craziness 2s infinite;\n    opacity: .8\n}\n#ct-main-bal .ct-series-b .ct-area {\n    fill: #41b3f9;\n    fill-opacity: .2\n}\n#ct-visits .ct-series-a .ct-line,\n#ct-visits .ct-series-a .ct-point {\n    stroke: #98a6ad\n}\n#ct-visits .ct-series-b .ct-line,\n#ct-visits .ct-series-b .ct-point {\n    stroke: #41b3f9\n}\n#ct-visits .ct-series-a .ct-area {\n    fill: #98a6ad;\n    fill-opacity: .05\n}\n#ct-visits .ct-series-b .ct-area {\n    fill: #41b3f9;\n    fill-opacity: .1\n}\n#ct-visits .ct-line {\n    stroke-width: 2px\n}\n#ct-city-wth .ct-label {\n    color: #fff\n}\n#ct-city-wth .ct-series-a .ct-line,\n#ct-city-wth .ct-series-a .ct-point {\n    stroke: #41b3f9\n}\n#ct-city-wth .ct-series-a .ct-area {\n    fill: none\n}\n#ct-polar-chart .ct-series-a .ct-point,\n#ct-polar-chart .ct-series-b .ct-point,\n#ct-polar-chart .ct-series-c .ct-point,\n#ct-polar-chart .ct-series-d .ct-point {\n    stroke-width: 3px\n}\n#ct-polar-chart .ct-series-a .ct-area {\n    fill: #41b3f9\n}\n#ct-polar-chart .ct-series-b .ct-area {\n    fill: #7ace4c\n}\n#ct-polar-chart .ct-series-c .ct-area {\n    fill: #f33155\n}\n#ct-polar-chart .ct-series-d .ct-area {\n    fill: #fb4\n}\n#ct-daily-sales .ct-series-a .ct-bar {\n    stroke: rgba(255, 255, 255, .7);\n    stroke-width: 10px\n}\n.dp-table {\n    display: table;\n    width: 100%;\n    margin: 0;\n    padding: 0\n}\n.dp-table li {\n    margin: 0;\n    padding: 0;\n    list-style: none;\n    display: table-cell;\n    text-align: center\n}\n.calendar-widget {\n    display: block;\n    background: #fff;\n    overflow: hidden\n}\n.calendar-widget .cal-left {\n    width: 30%;\n    float: left;\n    position: absolute;\n    padding: 5%;\n    height: 100%\n}\n.calendar-widget .cal-left .cal-btm-text {\n    position: absolute;\n    bottom: 40px;\n    font-weight: 400\n}\n.calendar-widget .cal-left h1 {\n    font-size: 50px;\n    margin-bottom: 0;\n    font-weight: 400\n}\n.calendar-widget .cal-left span {\n    width: 100px;\n    border-top: 2px solid #7ace4c;\n    height: 2px;\n    margin: 3px 0;\n    display: inline-block\n}\n.calendar-widget .cal-right {\n    width: 70%;\n    float: right;\n    min-height: 200px\n}\n.calendar-widget .cal-right .cal-table {\n    width: 100%\n}\n.calendar-widget .cal-right .cal-table td {\n    padding: 18px 15px;\n    text-align: center;\n    font-weight: 400\n}\n.calendar-widget .cal-right .cal-table td h1 {\n    text-align: left;\n    font-weight: 400;\n    padding-left: 30px\n}\n.calendar-widget .cal-right .cal-table td .cal-add {\n    font-size: 24px\n}\n.calendar-widget .cal-right .cal-table td.cal-active {\n    border-radius: 60px;\n    background: rgba(0, 0, 0, .1)\n}\n.real-time-widgets {\n    text-align: center;\n    position: relative\n}\n.real-time-widgets .data-text {\n    width: 200px;\n    margin: 0 auto;\n    position: absolute;\n    left: 0;\n    z-index: 200;\n    right: 0;\n    top: 110px\n}\n.real-time-widgets .data-text h1 {\n    font-size: 50px\n}\n.real-time-widgets .data-text h5 {\n    width: 70px;\n    margin: 0 auto 10px;\n    padding-bottom: 8px;\n    border-bottom: 2px solid #7ace4c\n}\n.real-time-widgets .data-text span {\n    font-size: 18px;\n    font-weight: 400\n}\n.profile-social-icons {\n    padding-bottom: 30px;\n    font-size: 20px\n}\n.profile-social-icons a {\n    color: #98a6ad\n}\n.mailbox-widget .customtab {\n    border-bottom: 0\n}\n.mailbox-widget .customtab li a {\n    color: #fff\n}\n.mailbox-widget .customtab li a:hover {\n    background: 0 0;\n    opacity: .5\n}\n.mailbox-widget .customtab li.active a,\n.mailbox-widget .customtab li.active a:focus {\n    background: 0 0;\n    color: #fff;\n    border-color: #7ace4c\n}\n.sk-chat-widgets .chatonline {\n    padding: 0\n}\n.sk-chat-widgets .chatonline li {\n    list-style: none;\n    padding: 5px 0;\n    position: relative\n}\n.sk-chat-widgets .chatonline li a {\n    float: none;\n    display: inline-block\n}\n.sk-chat-widgets .chatonline li a img {\n    width: 40px\n}\n.sk-chat-widgets .chatonline li .call-chat {\n    position: absolute;\n    right: 0;\n    display: none;\n    top: 20px\n}\n.sk-chat-widgets .chatonline li:hover .call-chat {\n    display: block\n}\n.chat-box-input {\n    border: 0;\n    width: 100%;\n    height: 60px;\n    resize: none;\n    line-height: 24px\n}\n.manage-u-table select {\n    max-width: 150px;\n    border-radius: 60px\n}\n.manage-u-table td {\n    white-space: nowrap\n}\n.city-weather-widget .side-icon-text i {\n    font-size: 50px;\n    margin-right: 15px\n}\n.city-weather-widget .side-icon-text h1 {\n    font-weight: 500\n}\n.city-weather-days {\n    padding: 0 15px\n}\n.city-weather-days li {\n    text-align: center;\n    font-size: 16px;\n    padding: 18px 0;\n    border-left: 1px solid rgba(120, 130, 140, .13);\n    border-top: 1px solid rgba(120, 130, 140, .13)\n}\n.city-weather-days li span {\n    display: block;\n    text-transform: uppercase;\n    line-height: 24px;\n    padding: 7px 0\n}\n.city-weather-days li i {\n    font-size: 30px;\n    color: #e8e8e8\n}\n.city-weather-days li.active {\n    border-bottom: 2px solid #f33155\n}\n.city-weather-days li.active i {\n    color: #f33155\n}\n.weather-with-bg .wt-top .wt-img {\n    width: 100%;\n    height: 350px;\n    padding: 40px 60px;\n    background-size: cover;\n    background-position: center center;\n    overflow: hidden\n}\n.weather-with-bg .wt-top .wt-img h1,\n.weather-with-bg .wt-top .wt-img h4,\n.weather-with-bg .wt-top .wt-img i {\n    color: #fff\n}\n.weather-with-bg .wt-top .wt-img .side-icon-text li i {\n    font-size: 60px;\n    margin-right: 20px\n}\n.weather-with-bg .wt-top .wt-img .side-icon-text li h1 {\n    font-size: 60px\n}\n.weather-with-bg .wt-top .wt-img .wt-city-text {\n    padding-top: 50px\n}\n.weather-with-bg .wt-counter li {\n    display: inline-block;\n    padding: 10px 7.5px\n}\n.weather-with-bg .wt-counter li a {\n    min-width: 50px;\n    display: block;\n    padding: 13px;\n    height: 50px;\n    color: #313131;\n    font-size: 17px;\n    text-align: center;\n    border-radius: 100%\n}\n.weather-with-bg .wt-counter li.active a {\n    background: #2cabe3;\n    color: #fff\n}\n.mt-gauge {\n    background: #fff;\n    height: 314px\n}\n.calendar-events {\n    padding: 8px 10px;\n    border: 1px solid #fff;\n    cursor: move\n}\n.calendar-events:hover {\n    border: 1px dashed rgba(120, 130, 140, .13)\n}\n.calendar-events i {\n    margin-right: 8px\n}\n.earning-box {\n    padding: 0;\n    margin: 0\n}\n.earning-box li {\n    display: box;\n    list-style: none;\n    padding: 20px 0\n}\n.earning-box li .er-row {\n    overflow: hidden\n}\n.earning-box li .er-row .er-pic {\n    float: left;\n    margin-right: 20px\n}\n.earning-box li .er-row .er-pic img {\n    width: 60px\n}\n.earning-box li .er-row .er-text {\n    float: left;\n    width: 45%\n}\n.earning-box li .er-row .er-text h3 {\n    margin: 5px 0 0;\n    font-weight: 400;\n    font-size: 18px;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    overflow: hidden\n}\n.earning-box li .er-row .er-count {\n    float: right;\n    font-size: 30px;\n    padding-top: 5px;\n    color: #41b3f9;\n    font-weight: 400\n}\n.todo-list li {\n    border: 0;\n    border-bottom: 1px solid rgba(120, 130, 140, .13);\n    margin-bottom: 0;\n    padding: 20px 15px 15px 0\n}\n.todo-list li .checkbox label {\n    font-weight: 400\n}\n.todo-list li:last-child {\n    border-bottom: 0\n}\n.todo-list li .assignedto {\n    padding: 0 0 0 27px;\n    margin: 0\n}\n.todo-list li .assignedto li {\n    list-style: none;\n    padding: 0;\n    display: inline-block;\n    border: 0;\n    margin-right: 2px\n}\n.todo-list li .assignedto li img {\n    width: 30px;\n    border-radius: 100%\n}\n.todo-list li .item-date {\n    padding-left: 25px;\n    font-size: 12px;\n    display: inline-block\n}\n.list-task .task-done span {\n    text-decoration: line-through\n}\n.no-bg-addon .input-group-addon {\n    background-color: #fff;\n    border: 1px solid rgba(120, 130, 140, .13);\n    left: -2px;\n    position: relative;\n    z-index: 10;\n    border-left: 0;\n    color: #e4e7ea;\n    border-radius: 0 3px 3px 0\n}\n.no-bg-addon .form-control {\n    transition: 0s\n}\n.no-bg-addon .form-control:focus+.input-group-addon {\n    border-color: #313131;\n    color: #313131\n}\n.select-mode .btn {\n    padding: 15px 0\n}\n.select-mode .btn.btn-default:focus {\n    border-color: #41b3f9;\n    color: #fff;\n    background: #41b3f9\n}\nul.select-row-icon {\n    padding: 0;\n    margin: 0\n}\nul.select-row-icon li {\n    display: block;\n    list-style: none\n}\nul.select-row-icon li a {\n    display: block;\n    color: #313131;\n    padding: 8px 15px;\n    position: relative;\n    border: 2px solid #fff\n}\nul.select-row-icon li a i {\n    font-size: 24px;\n    vertical-align: middle;\n    padding-right: 10px\n}\nul.select-row-icon li a i.whn-hov {\n    color: #41b3f9;\n    display: none;\n    float: right;\n    position: absolute;\n    right: 15px;\n    top: 10px\n}\nul.select-row-icon li a.selected,\nul.select-row-icon li a:hover {\n    border: 2px solid rgba(120, 130, 140, .13)\n}\nul.select-row-icon li a.selected i.whn-hov,\nul.select-row-icon li a:hover i.whn-hov {\n    display: inline-block\n}\n.sidebar {\n    overflow-y: auto\n}\n.sidebar .sidebar-nav.navbar-collapse {\n    padding-left: 0;\n    padding-right: 0\n}\n.sidebar .fa-fw {\n    width: 20px;\n    text-align: center!important;\n    display: inline-block;\n    font-style: normal;\n    font-weight: 500;\n    margin-right: 7px;\n    font-size: 16px;\n    vertical-align: middle\n}\n.sidebar .mdi {\n    font-size: 21px\n}\n.sidebar .sidebar-head {\n    padding: 4px 20px;\n    width: 240px;\n    position: fixed;\n    z-index: 10;\n    left: 0;\n    top: 0\n}\n.sidebar .sidebar-head h3 {\n    color: #fff;\n    font-weight: 400\n}\n.sidebar .sidebar-head h3 i {\n    font-size: 20px\n}\n.sidebar:hover .sidebar-head {\n    width: 240px\n}\n.sidebar .label {\n    font-size: 10px;\n    border-radius: 60px;\n    padding: 6px 8px;\n    min-width: 30px;\n    height: 20px;\n    margin-top: 0\n}\n.sidebar #side-menu .user-pro .img-circle {\n    width: 30px;\n    margin-right: 10px\n}\n.sidebar #side-menu .user-pro>a {\n    padding-left: 15px\n}\n.sidebar #side-menu .user-pro ul li a {\n    padding-left: 25px\n}\n.sidebar #side-menu .user-pro .nav-second-level li i {\n    margin-right: 10px\n}\n#side-menu {\n    overflow: hidden\n}\n.sidebar .sidebar-search {\n    padding: 15px\n}\n#side-menu li.active>a {\n    background: rgba(0, 0, 0, 0)\n}\n#side-menu li a {\n    color: #97999f;\n    width: 240px\n}\n#side-menu li a:focus {\n    background: rgba(0, 0, 0, 0)\n}\n#side-menu li.devider {\n    margin: 7px 0;\n    border-top: 1px solid rgba(120, 130, 140, .13)\n}\n#side-menu>li>a {\n    padding: 15px 35px 15px 20px;\n    display: block\n}\n#side-menu>li>a:focus,\n#side-menu>li>a:hover {\n    background: rgba(0, 0, 0, .1)\n}\n#side-menu>li>a.active {\n    color: #2cabe3\n}\n#side-menu ul>li>a:hover {\n    color: #2cabe3;\n    background: 0 0\n}\n#side-menu ul>li>a.active {\n    color: #2cabe3\n}\n.sidebar .arrow {\n    position: absolute;\n    right: 20px;\n    top: 17px\n}\n.sidebar .nav-second-level .arrow {\n    right: 20px;\n    top: 17px\n}\n.sidebar .fa.arrow:before {\n    content: \"\\f105\"\n}\n.sidebar .active>a>span>.fa.arrow:before {\n    content: \"\\f107\"\n}\n.sidebar .nav-second-level li,\n.sidebar .nav-third-level li {\n    border-bottom: none!important\n}\n.sidebar .nav-second-level li a {\n    padding: 14px 10px 14px 40px\n}\n.sidebar .nav-third-level li a {\n    padding-left: 60px\n}\n.content-wrapper .nicescroll-rails {\n    display: none!important\n}\n/*!\n *  Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n\n@font-face {\n    font-family: FontAwesome;\n    /*src: url(../less/icons/font-awesome/fonts/fontawesome-webfont.eot?v=4.5.0);*/\n    /*src: url(../less/icons/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.5.0) format('embedded-opentype'), url(../less/icons/font-awesome/fonts/fontawesome-webfont.woff2?v=4.5.0) format('woff2'), url(../less/icons/font-awesome/fonts/fontawesome-webfont.woff?v=4.5.0) format('woff'), url(../less/icons/font-awesome/fonts/fontawesome-webfont.ttf?v=4.5.0) format('truetype'), url(../less/icons/font-awesome/fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular) format('svg');*/\n    font-weight: 400;\n    font-style: normal\n}\n.fa {\n    display: inline-block;\n    font: normal normal normal 14px/1 FontAwesome;\n    font-size: inherit;\n    text-rendering: auto;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale\n}\n.fa-lg {\n    font-size: 1.33333333em;\n    line-height: .75em;\n    vertical-align: -15%\n}\n.fa-2x {\n    font-size: 2em\n}\n.fa-3x {\n    font-size: 3em\n}\n.fa-4x {\n    font-size: 4em\n}\n.fa-5x {\n    font-size: 5em\n}\n.fa-fw {\n    text-align: center\n}\n.fa-ul {\n    padding-left: 0;\n    margin-left: 2.14285714em;\n    list-style-type: none\n}\n.fa-ul>li {\n    position: relative\n}\n.fa-li {\n    position: absolute;\n    left: -2.14285714em;\n    width: 2.14285714em;\n    top: .14285714em;\n    text-align: center\n}\n.fa-li.fa-lg {\n    left: -1.85714286em\n}\n.fa-border {\n    padding: .2em .25em .15em;\n    border: .08em solid #eee;\n    border-radius: .1em\n}\n.fa-pull-left {\n    float: left\n}\n.fa-pull-right {\n    float: right\n}\n.fa.fa-pull-left {\n    margin-right: .3em\n}\n.fa.fa-pull-right {\n    margin-left: .3em\n}\n.pull-right {\n    float: right\n}\n.pull-left {\n    float: left\n}\n.fa.pull-left {\n    margin-right: .3em\n}\n.fa.pull-right {\n    margin-left: .3em\n}\n.fa-spin {\n    -webkit-animation: fa-spin 2s infinite linear;\n    animation: fa-spin 2s infinite linear\n}\n.fa-pulse {\n    -webkit-animation: fa-spin 1s infinite steps(8);\n    animation: fa-spin 1s infinite steps(8)\n}\n@-webkit-keyframes fa-spin {\n    0% {\n        -webkit-transform: rotate(0deg);\n        transform: rotate(0deg)\n    }\n    100% {\n        -webkit-transform: rotate(359deg);\n        transform: rotate(359deg)\n    }\n}\n@keyframes fa-spin {\n    0% {\n        -webkit-transform: rotate(0deg);\n        transform: rotate(0deg)\n    }\n    100% {\n        -webkit-transform: rotate(359deg);\n        transform: rotate(359deg)\n    }\n}\n.fa-rotate-90 {\n    filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=1);\n    -webkit-transform: rotate(90deg);\n    -ms-transform: rotate(90deg);\n    transform: rotate(90deg)\n}\n.fa-rotate-180 {\n    filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=2);\n    -webkit-transform: rotate(180deg);\n    -ms-transform: rotate(180deg);\n    transform: rotate(180deg)\n}\n.fa-rotate-270 {\n    filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=3);\n    -webkit-transform: rotate(270deg);\n    -ms-transform: rotate(270deg);\n    transform: rotate(270deg)\n}\n.fa-flip-horizontal {\n    filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n    -webkit-transform: scale(-1, 1);\n    -ms-transform: scale(-1, 1);\n    transform: scale(-1, 1)\n}\n.fa-flip-vertical {\n    filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n    -webkit-transform: scale(1, -1);\n    -ms-transform: scale(1, -1);\n    transform: scale(1, -1)\n}\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-rotate-90 {\n    filter: none\n}\n.fa-stack {\n    position: relative;\n    display: inline-block;\n    width: 2em;\n    height: 2em;\n    line-height: 2em;\n    vertical-align: middle\n}\n.fa-stack-1x,\n.fa-stack-2x {\n    position: absolute;\n    left: 0;\n    width: 100%;\n    text-align: center\n}\n.fa-stack-1x {\n    line-height: inherit\n}\n.fa-stack-2x {\n    font-size: 2em\n}\n.fa-inverse {\n    color: #fff\n}\n.fa-glass:before {\n    content: \"\\f000\"\n}\n.fa-music:before {\n    content: \"\\f001\"\n}\n.fa-search:before {\n    content: \"\\f002\"\n}\n.fa-envelope-o:before {\n    content: \"\\f003\"\n}\n.fa-heart:before {\n    content: \"\\f004\"\n}\n.fa-star:before {\n    content: \"\\f005\"\n}\n.fa-star-o:before {\n    content: \"\\f006\"\n}\n.fa-user:before {\n    content: \"\\f007\"\n}\n.fa-film:before {\n    content: \"\\f008\"\n}\n.fa-th-large:before {\n    content: \"\\f009\"\n}\n.fa-th:before {\n    content: \"\\f00a\"\n}\n.fa-th-list:before {\n    content: \"\\f00b\"\n}\n.fa-check:before {\n    content: \"\\f00c\"\n}\n.fa-close:before,\n.fa-remove:before,\n.fa-times:before {\n    content: \"\\f00d\"\n}\n.fa-search-plus:before {\n    content: \"\\f00e\"\n}\n.fa-search-minus:before {\n    content: \"\\f010\"\n}\n.fa-power-off:before {\n    content: \"\\f011\"\n}\n.fa-signal:before {\n    content: \"\\f012\"\n}\n.fa-cog:before,\n.fa-gear:before {\n    content: \"\\f013\"\n}\n.fa-trash-o:before {\n    content: \"\\f014\"\n}\n.fa-home:before {\n    content: \"\\f015\"\n}\n.fa-file-o:before {\n    content: \"\\f016\"\n}\n.fa-clock-o:before {\n    content: \"\\f017\"\n}\n.fa-road:before {\n    content: \"\\f018\"\n}\n.fa-download:before {\n    content: \"\\f019\"\n}\n.fa-arrow-circle-o-down:before {\n    content: \"\\f01a\"\n}\n.fa-arrow-circle-o-up:before {\n    content: \"\\f01b\"\n}\n.fa-inbox:before {\n    content: \"\\f01c\"\n}\n.fa-play-circle-o:before {\n    content: \"\\f01d\"\n}\n.fa-repeat:before,\n.fa-rotate-right:before {\n    content: \"\\f01e\"\n}\n.fa-refresh:before {\n    content: \"\\f021\"\n}\n.fa-list-alt:before {\n    content: \"\\f022\"\n}\n.fa-lock:before {\n    content: \"\\f023\"\n}\n.fa-flag:before {\n    content: \"\\f024\"\n}\n.fa-headphones:before {\n    content: \"\\f025\"\n}\n.fa-volume-off:before {\n    content: \"\\f026\"\n}\n.fa-volume-down:before {\n    content: \"\\f027\"\n}\n.fa-volume-up:before {\n    content: \"\\f028\"\n}\n.fa-qrcode:before {\n    content: \"\\f029\"\n}\n.fa-barcode:before {\n    content: \"\\f02a\"\n}\n.fa-tag:before {\n    content: \"\\f02b\"\n}\n.fa-tags:before {\n    content: \"\\f02c\"\n}\n.fa-book:before {\n    content: \"\\f02d\"\n}\n.fa-bookmark:before {\n    content: \"\\f02e\"\n}\n.fa-print:before {\n    content: \"\\f02f\"\n}\n.fa-camera:before {\n    content: \"\\f030\"\n}\n.fa-font:before {\n    content: \"\\f031\"\n}\n.fa-bold:before {\n    content: \"\\f032\"\n}\n.fa-italic:before {\n    content: \"\\f033\"\n}\n.fa-text-height:before {\n    content: \"\\f034\"\n}\n.fa-text-width:before {\n    content: \"\\f035\"\n}\n.fa-align-left:before {\n    content: \"\\f036\"\n}\n.fa-align-center:before {\n    content: \"\\f037\"\n}\n.fa-align-right:before {\n    content: \"\\f038\"\n}\n.fa-align-justify:before {\n    content: \"\\f039\"\n}\n.fa-list:before {\n    content: \"\\f03a\"\n}\n.fa-dedent:before,\n.fa-outdent:before {\n    content: \"\\f03b\"\n}\n.fa-indent:before {\n    content: \"\\f03c\"\n}\n.fa-video-camera:before {\n    content: \"\\f03d\"\n}\n.fa-image:before,\n.fa-photo:before,\n.fa-picture-o:before {\n    content: \"\\f03e\"\n}\n.fa-pencil:before {\n    content: \"\\f040\"\n}\n.fa-map-marker:before {\n    content: \"\\f041\"\n}\n.fa-adjust:before {\n    content: \"\\f042\"\n}\n.fa-tint:before {\n    content: \"\\f043\"\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n    content: \"\\f044\"\n}\n.fa-share-square-o:before {\n    content: \"\\f045\"\n}\n.fa-check-square-o:before {\n    content: \"\\f046\"\n}\n.fa-arrows:before {\n    content: \"\\f047\"\n}\n.fa-step-backward:before {\n    content: \"\\f048\"\n}\n.fa-fast-backward:before {\n    content: \"\\f049\"\n}\n.fa-backward:before {\n    content: \"\\f04a\"\n}\n.fa-play:before {\n    content: \"\\f04b\"\n}\n.fa-pause:before {\n    content: \"\\f04c\"\n}\n.fa-stop:before {\n    content: \"\\f04d\"\n}\n.fa-forward:before {\n    content: \"\\f04e\"\n}\n.fa-fast-forward:before {\n    content: \"\\f050\"\n}\n.fa-step-forward:before {\n    content: \"\\f051\"\n}\n.fa-eject:before {\n    content: \"\\f052\"\n}\n.fa-chevron-left:before {\n    content: \"\\f053\"\n}\n.fa-chevron-right:before {\n    content: \"\\f054\"\n}\n.fa-plus-circle:before {\n    content: \"\\f055\"\n}\n.fa-minus-circle:before {\n    content: \"\\f056\"\n}\n.fa-times-circle:before {\n    content: \"\\f057\"\n}\n.fa-check-circle:before {\n    content: \"\\f058\"\n}\n.fa-question-circle:before {\n    content: \"\\f059\"\n}\n.fa-info-circle:before {\n    content: \"\\f05a\"\n}\n.fa-crosshairs:before {\n    content: \"\\f05b\"\n}\n.fa-times-circle-o:before {\n    content: \"\\f05c\"\n}\n.fa-check-circle-o:before {\n    content: \"\\f05d\"\n}\n.fa-ban:before {\n    content: \"\\f05e\"\n}\n.fa-arrow-left:before {\n    content: \"\\f060\"\n}\n.fa-arrow-right:before {\n    content: \"\\f061\"\n}\n.fa-arrow-up:before {\n    content: \"\\f062\"\n}\n.fa-arrow-down:before {\n    content: \"\\f063\"\n}\n.fa-mail-forward:before,\n.fa-share:before {\n    content: \"\\f064\"\n}\n.fa-expand:before {\n    content: \"\\f065\"\n}\n.fa-compress:before {\n    content: \"\\f066\"\n}\n.fa-plus:before {\n    content: \"\\f067\"\n}\n.fa-minus:before {\n    content: \"\\f068\"\n}\n.fa-asterisk:before {\n    content: \"\\f069\"\n}\n.fa-exclamation-circle:before {\n    content: \"\\f06a\"\n}\n.fa-gift:before {\n    content: \"\\f06b\"\n}\n.fa-leaf:before {\n    content: \"\\f06c\"\n}\n.fa-fire:before {\n    content: \"\\f06d\"\n}\n.fa-eye:before {\n    content: \"\\f06e\"\n}\n.fa-eye-slash:before {\n    content: \"\\f070\"\n}\n.fa-exclamation-triangle:before,\n.fa-warning:before {\n    content: \"\\f071\"\n}\n.fa-plane:before {\n    content: \"\\f072\"\n}\n.fa-calendar:before {\n    content: \"\\f073\"\n}\n.fa-random:before {\n    content: \"\\f074\"\n}\n.fa-comment:before {\n    content: \"\\f075\"\n}\n.fa-magnet:before {\n    content: \"\\f076\"\n}\n.fa-chevron-up:before {\n    content: \"\\f077\"\n}\n.fa-chevron-down:before {\n    content: \"\\f078\"\n}\n.fa-retweet:before {\n    content: \"\\f079\"\n}\n.fa-shopping-cart:before {\n    content: \"\\f07a\"\n}\n.fa-folder:before {\n    content: \"\\f07b\"\n}\n.fa-folder-open:before {\n    content: \"\\f07c\"\n}\n.fa-arrows-v:before {\n    content: \"\\f07d\"\n}\n.fa-arrows-h:before {\n    content: \"\\f07e\"\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n    content: \"\\f080\"\n}\n.fa-twitter-square:before {\n    content: \"\\f081\"\n}\n.fa-facebook-square:before {\n    content: \"\\f082\"\n}\n.fa-camera-retro:before {\n    content: \"\\f083\"\n}\n.fa-key:before {\n    content: \"\\f084\"\n}\n.fa-cogs:before,\n.fa-gears:before {\n    content: \"\\f085\"\n}\n.fa-comments:before {\n    content: \"\\f086\"\n}\n.fa-thumbs-o-up:before {\n    content: \"\\f087\"\n}\n.fa-thumbs-o-down:before {\n    content: \"\\f088\"\n}\n.fa-star-half:before {\n    content: \"\\f089\"\n}\n.fa-heart-o:before {\n    content: \"\\f08a\"\n}\n.fa-sign-out:before {\n    content: \"\\f08b\"\n}\n.fa-linkedin-square:before {\n    content: \"\\f08c\"\n}\n.fa-thumb-tack:before {\n    content: \"\\f08d\"\n}\n.fa-external-link:before {\n    content: \"\\f08e\"\n}\n.fa-sign-in:before {\n    content: \"\\f090\"\n}\n.fa-trophy:before {\n    content: \"\\f091\"\n}\n.fa-github-square:before {\n    content: \"\\f092\"\n}\n.fa-upload:before {\n    content: \"\\f093\"\n}\n.fa-lemon-o:before {\n    content: \"\\f094\"\n}\n.fa-phone:before {\n    content: \"\\f095\"\n}\n.fa-square-o:before {\n    content: \"\\f096\"\n}\n.fa-bookmark-o:before {\n    content: \"\\f097\"\n}\n.fa-phone-square:before {\n    content: \"\\f098\"\n}\n.fa-twitter:before {\n    content: \"\\f099\"\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n    content: \"\\f09a\"\n}\n.fa-github:before {\n    content: \"\\f09b\"\n}\n.fa-unlock:before {\n    content: \"\\f09c\"\n}\n.fa-credit-card:before {\n    content: \"\\f09d\"\n}\n.fa-feed:before,\n.fa-rss:before {\n    content: \"\\f09e\"\n}\n.fa-hdd-o:before {\n    content: \"\\f0a0\"\n}\n.fa-bullhorn:before {\n    content: \"\\f0a1\"\n}\n.fa-bell:before {\n    content: \"\\f0f3\"\n}\n.fa-certificate:before {\n    content: \"\\f0a3\"\n}\n.fa-hand-o-right:before {\n    content: \"\\f0a4\"\n}\n.fa-hand-o-left:before {\n    content: \"\\f0a5\"\n}\n.fa-hand-o-up:before {\n    content: \"\\f0a6\"\n}\n.fa-hand-o-down:before {\n    content: \"\\f0a7\"\n}\n.fa-arrow-circle-left:before {\n    content: \"\\f0a8\"\n}\n.fa-arrow-circle-right:before {\n    content: \"\\f0a9\"\n}\n.fa-arrow-circle-up:before {\n    content: \"\\f0aa\"\n}\n.fa-arrow-circle-down:before {\n    content: \"\\f0ab\"\n}\n.fa-globe:before {\n    content: \"\\f0ac\"\n}\n.fa-wrench:before {\n    content: \"\\f0ad\"\n}\n.fa-tasks:before {\n    content: \"\\f0ae\"\n}\n.fa-filter:before {\n    content: \"\\f0b0\"\n}\n.fa-briefcase:before {\n    content: \"\\f0b1\"\n}\n.fa-arrows-alt:before {\n    content: \"\\f0b2\"\n}\n.fa-group:before,\n.fa-users:before {\n    content: \"\\f0c0\"\n}\n.fa-chain:before,\n.fa-link:before {\n    content: \"\\f0c1\"\n}\n.fa-cloud:before {\n    content: \"\\f0c2\"\n}\n.fa-flask:before {\n    content: \"\\f0c3\"\n}\n.fa-cut:before,\n.fa-scissors:before {\n    content: \"\\f0c4\"\n}\n.fa-copy:before,\n.fa-files-o:before {\n    content: \"\\f0c5\"\n}\n.fa-paperclip:before {\n    content: \"\\f0c6\"\n}\n.fa-floppy-o:before,\n.fa-save:before {\n    content: \"\\f0c7\"\n}\n.fa-square:before {\n    content: \"\\f0c8\"\n}\n.fa-bars:before,\n.fa-navicon:before,\n.fa-reorder:before {\n    content: \"\\f0c9\"\n}\n.fa-list-ul:before {\n    content: \"\\f0ca\"\n}\n.fa-list-ol:before {\n    content: \"\\f0cb\"\n}\n.fa-strikethrough:before {\n    content: \"\\f0cc\"\n}\n.fa-underline:before {\n    content: \"\\f0cd\"\n}\n.fa-table:before {\n    content: \"\\f0ce\"\n}\n.fa-magic:before {\n    content: \"\\f0d0\"\n}\n.fa-truck:before {\n    content: \"\\f0d1\"\n}\n.fa-pinterest:before {\n    content: \"\\f0d2\"\n}\n.fa-pinterest-square:before {\n    content: \"\\f0d3\"\n}\n.fa-google-plus-square:before {\n    content: \"\\f0d4\"\n}\n.fa-google-plus:before {\n    content: \"\\f0d5\"\n}\n.fa-money:before {\n    content: \"\\f0d6\"\n}\n.fa-caret-down:before {\n    content: \"\\f0d7\"\n}\n.fa-caret-up:before {\n    content: \"\\f0d8\"\n}\n.fa-caret-left:before {\n    content: \"\\f0d9\"\n}\n.fa-caret-right:before {\n    content: \"\\f0da\"\n}\n.fa-columns:before {\n    content: \"\\f0db\"\n}\n.fa-sort:before,\n.fa-unsorted:before {\n    content: \"\\f0dc\"\n}\n.fa-sort-desc:before,\n.fa-sort-down:before {\n    content: \"\\f0dd\"\n}\n.fa-sort-asc:before,\n.fa-sort-up:before {\n    content: \"\\f0de\"\n}\n.fa-envelope:before {\n    content: \"\\f0e0\"\n}\n.fa-linkedin:before {\n    content: \"\\f0e1\"\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n    content: \"\\f0e2\"\n}\n.fa-gavel:before,\n.fa-legal:before {\n    content: \"\\f0e3\"\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n    content: \"\\f0e4\"\n}\n.fa-comment-o:before {\n    content: \"\\f0e5\"\n}\n.fa-comments-o:before {\n    content: \"\\f0e6\"\n}\n.fa-bolt:before,\n.fa-flash:before {\n    content: \"\\f0e7\"\n}\n.fa-sitemap:before {\n    content: \"\\f0e8\"\n}\n.fa-umbrella:before {\n    content: \"\\f0e9\"\n}\n.fa-clipboard:before,\n.fa-paste:before {\n    content: \"\\f0ea\"\n}\n.fa-lightbulb-o:before {\n    content: \"\\f0eb\"\n}\n.fa-exchange:before {\n    content: \"\\f0ec\"\n}\n.fa-cloud-download:before {\n    content: \"\\f0ed\"\n}\n.fa-cloud-upload:before {\n    content: \"\\f0ee\"\n}\n.fa-user-md:before {\n    content: \"\\f0f0\"\n}\n.fa-stethoscope:before {\n    content: \"\\f0f1\"\n}\n.fa-suitcase:before {\n    content: \"\\f0f2\"\n}\n.fa-bell-o:before {\n    content: \"\\f0a2\"\n}\n.fa-coffee:before {\n    content: \"\\f0f4\"\n}\n.fa-cutlery:before {\n    content: \"\\f0f5\"\n}\n.fa-file-text-o:before {\n    content: \"\\f0f6\"\n}\n.fa-building-o:before {\n    content: \"\\f0f7\"\n}\n.fa-hospital-o:before {\n    content: \"\\f0f8\"\n}\n.fa-ambulance:before {\n    content: \"\\f0f9\"\n}\n.fa-medkit:before {\n    content: \"\\f0fa\"\n}\n.fa-fighter-jet:before {\n    content: \"\\f0fb\"\n}\n.fa-beer:before {\n    content: \"\\f0fc\"\n}\n.fa-h-square:before {\n    content: \"\\f0fd\"\n}\n.fa-plus-square:before {\n    content: \"\\f0fe\"\n}\n.fa-angle-double-left:before {\n    content: \"\\f100\"\n}\n.fa-angle-double-right:before {\n    content: \"\\f101\"\n}\n.fa-angle-double-up:before {\n    content: \"\\f102\"\n}\n.fa-angle-double-down:before {\n    content: \"\\f103\"\n}\n.fa-angle-left:before {\n    content: \"\\f104\"\n}\n.fa-angle-right:before {\n    content: \"\\f105\"\n}\n.fa-angle-up:before {\n    content: \"\\f106\"\n}\n.fa-angle-down:before {\n    content: \"\\f107\"\n}\n.fa-desktop:before {\n    content: \"\\f108\"\n}\n.fa-laptop:before {\n    content: \"\\f109\"\n}\n.fa-tablet:before {\n    content: \"\\f10a\"\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n    content: \"\\f10b\"\n}\n.fa-circle-o:before {\n    content: \"\\f10c\"\n}\n.fa-quote-left:before {\n    content: \"\\f10d\"\n}\n.fa-quote-right:before {\n    content: \"\\f10e\"\n}\n.fa-spinner:before {\n    content: \"\\f110\"\n}\n.fa-circle:before {\n    content: \"\\f111\"\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n    content: \"\\f112\"\n}\n.fa-github-alt:before {\n    content: \"\\f113\"\n}\n.fa-folder-o:before {\n    content: \"\\f114\"\n}\n.fa-folder-open-o:before {\n    content: \"\\f115\"\n}\n.fa-smile-o:before {\n    content: \"\\f118\"\n}\n.fa-frown-o:before {\n    content: \"\\f119\"\n}\n.fa-meh-o:before {\n    content: \"\\f11a\"\n}\n.fa-gamepad:before {\n    content: \"\\f11b\"\n}\n.fa-keyboard-o:before {\n    content: \"\\f11c\"\n}\n.fa-flag-o:before {\n    content: \"\\f11d\"\n}\n.fa-flag-checkered:before {\n    content: \"\\f11e\"\n}\n.fa-terminal:before {\n    content: \"\\f120\"\n}\n.fa-code:before {\n    content: \"\\f121\"\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n    content: \"\\f122\"\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n    content: \"\\f123\"\n}\n.fa-location-arrow:before {\n    content: \"\\f124\"\n}\n.fa-crop:before {\n    content: \"\\f125\"\n}\n.fa-code-fork:before {\n    content: \"\\f126\"\n}\n.fa-chain-broken:before,\n.fa-unlink:before {\n    content: \"\\f127\"\n}\n.fa-question:before {\n    content: \"\\f128\"\n}\n.fa-info:before {\n    content: \"\\f129\"\n}\n.fa-exclamation:before {\n    content: \"\\f12a\"\n}\n.fa-superscript:before {\n    content: \"\\f12b\"\n}\n.fa-subscript:before {\n    content: \"\\f12c\"\n}\n.fa-eraser:before {\n    content: \"\\f12d\"\n}\n.fa-puzzle-piece:before {\n    content: \"\\f12e\"\n}\n.fa-microphone:before {\n    content: \"\\f130\"\n}\n.fa-microphone-slash:before {\n    content: \"\\f131\"\n}\n.fa-shield:before {\n    content: \"\\f132\"\n}\n.fa-calendar-o:before {\n    content: \"\\f133\"\n}\n.fa-fire-extinguisher:before {\n    content: \"\\f134\"\n}\n.fa-rocket:before {\n    content: \"\\f135\"\n}\n.fa-maxcdn:before {\n    content: \"\\f136\"\n}\n.fa-chevron-circle-left:before {\n    content: \"\\f137\"\n}\n.fa-chevron-circle-right:before {\n    content: \"\\f138\"\n}\n.fa-chevron-circle-up:before {\n    content: \"\\f139\"\n}\n.fa-chevron-circle-down:before {\n    content: \"\\f13a\"\n}\n.fa-html5:before {\n    content: \"\\f13b\"\n}\n.fa-css3:before {\n    content: \"\\f13c\"\n}\n.fa-anchor:before {\n    content: \"\\f13d\"\n}\n.fa-unlock-alt:before {\n    content: \"\\f13e\"\n}\n.fa-bullseye:before {\n    content: \"\\f140\"\n}\n.fa-ellipsis-h:before {\n    content: \"\\f141\"\n}\n.fa-ellipsis-v:before {\n    content: \"\\f142\"\n}\n.fa-rss-square:before {\n    content: \"\\f143\"\n}\n.fa-play-circle:before {\n    content: \"\\f144\"\n}\n.fa-ticket:before {\n    content: \"\\f145\"\n}\n.fa-minus-square:before {\n    content: \"\\f146\"\n}\n.fa-minus-square-o:before {\n    content: \"\\f147\"\n}\n.fa-level-up:before {\n    content: \"\\f148\"\n}\n.fa-level-down:before {\n    content: \"\\f149\"\n}\n.fa-check-square:before {\n    content: \"\\f14a\"\n}\n.fa-pencil-square:before {\n    content: \"\\f14b\"\n}\n.fa-external-link-square:before {\n    content: \"\\f14c\"\n}\n.fa-share-square:before {\n    content: \"\\f14d\"\n}\n.fa-compass:before {\n    content: \"\\f14e\"\n}\n.fa-caret-square-o-down:before,\n.fa-toggle-down:before {\n    content: \"\\f150\"\n}\n.fa-caret-square-o-up:before,\n.fa-toggle-up:before {\n    content: \"\\f151\"\n}\n.fa-caret-square-o-right:before,\n.fa-toggle-right:before {\n    content: \"\\f152\"\n}\n.fa-eur:before,\n.fa-euro:before {\n    content: \"\\f153\"\n}\n.fa-gbp:before {\n    content: \"\\f154\"\n}\n.fa-dollar:before,\n.fa-usd:before {\n    content: \"\\f155\"\n}\n.fa-inr:before,\n.fa-rupee:before {\n    content: \"\\f156\"\n}\n.fa-cny:before,\n.fa-jpy:before,\n.fa-rmb:before,\n.fa-yen:before {\n    content: \"\\f157\"\n}\n.fa-rouble:before,\n.fa-rub:before,\n.fa-ruble:before {\n    content: \"\\f158\"\n}\n.fa-krw:before,\n.fa-won:before {\n    content: \"\\f159\"\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n    content: \"\\f15a\"\n}\n.fa-file:before {\n    content: \"\\f15b\"\n}\n.fa-file-text:before {\n    content: \"\\f15c\"\n}\n.fa-sort-alpha-asc:before {\n    content: \"\\f15d\"\n}\n.fa-sort-alpha-desc:before {\n    content: \"\\f15e\"\n}\n.fa-sort-amount-asc:before {\n    content: \"\\f160\"\n}\n.fa-sort-amount-desc:before {\n    content: \"\\f161\"\n}\n.fa-sort-numeric-asc:before {\n    content: \"\\f162\"\n}\n.fa-sort-numeric-desc:before {\n    content: \"\\f163\"\n}\n.fa-thumbs-up:before {\n    content: \"\\f164\"\n}\n.fa-thumbs-down:before {\n    content: \"\\f165\"\n}\n.fa-youtube-square:before {\n    content: \"\\f166\"\n}\n.fa-youtube:before {\n    content: \"\\f167\"\n}\n.fa-xing:before {\n    content: \"\\f168\"\n}\n.fa-xing-square:before {\n    content: \"\\f169\"\n}\n.fa-youtube-play:before {\n    content: \"\\f16a\"\n}\n.fa-dropbox:before {\n    content: \"\\f16b\"\n}\n.fa-stack-overflow:before {\n    content: \"\\f16c\"\n}\n.fa-instagram:before {\n    content: \"\\f16d\"\n}\n.fa-flickr:before {\n    content: \"\\f16e\"\n}\n.fa-adn:before {\n    content: \"\\f170\"\n}\n.fa-bitbucket:before {\n    content: \"\\f171\"\n}\n.fa-bitbucket-square:before {\n    content: \"\\f172\"\n}\n.fa-tumblr:before {\n    content: \"\\f173\"\n}\n.fa-tumblr-square:before {\n    content: \"\\f174\"\n}\n.fa-long-arrow-down:before {\n    content: \"\\f175\"\n}\n.fa-long-arrow-up:before {\n    content: \"\\f176\"\n}\n.fa-long-arrow-left:before {\n    content: \"\\f177\"\n}\n.fa-long-arrow-right:before {\n    content: \"\\f178\"\n}\n.fa-apple:before {\n    content: \"\\f179\"\n}\n.fa-windows:before {\n    content: \"\\f17a\"\n}\n.fa-android:before {\n    content: \"\\f17b\"\n}\n.fa-linux:before {\n    content: \"\\f17c\"\n}\n.fa-dribbble:before {\n    content: \"\\f17d\"\n}\n.fa-skype:before {\n    content: \"\\f17e\"\n}\n.fa-foursquare:before {\n    content: \"\\f180\"\n}\n.fa-trello:before {\n    content: \"\\f181\"\n}\n.fa-female:before {\n    content: \"\\f182\"\n}\n.fa-male:before {\n    content: \"\\f183\"\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n    content: \"\\f184\"\n}\n.fa-sun-o:before {\n    content: \"\\f185\"\n}\n.fa-moon-o:before {\n    content: \"\\f186\"\n}\n.fa-archive:before {\n    content: \"\\f187\"\n}\n.fa-bug:before {\n    content: \"\\f188\"\n}\n.fa-vk:before {\n    content: \"\\f189\"\n}\n.fa-weibo:before {\n    content: \"\\f18a\"\n}\n.fa-renren:before {\n    content: \"\\f18b\"\n}\n.fa-pagelines:before {\n    content: \"\\f18c\"\n}\n.fa-stack-exchange:before {\n    content: \"\\f18d\"\n}\n.fa-arrow-circle-o-right:before {\n    content: \"\\f18e\"\n}\n.fa-arrow-circle-o-left:before {\n    content: \"\\f190\"\n}\n.fa-caret-square-o-left:before,\n.fa-toggle-left:before {\n    content: \"\\f191\"\n}\n.fa-dot-circle-o:before {\n    content: \"\\f192\"\n}\n.fa-wheelchair:before {\n    content: \"\\f193\"\n}\n.fa-vimeo-square:before {\n    content: \"\\f194\"\n}\n.fa-try:before,\n.fa-turkish-lira:before {\n    content: \"\\f195\"\n}\n.fa-plus-square-o:before {\n    content: \"\\f196\"\n}\n.fa-space-shuttle:before {\n    content: \"\\f197\"\n}\n.fa-slack:before {\n    content: \"\\f198\"\n}\n.fa-envelope-square:before {\n    content: \"\\f199\"\n}\n.fa-wordpress:before {\n    content: \"\\f19a\"\n}\n.fa-openid:before {\n    content: \"\\f19b\"\n}\n.fa-bank:before,\n.fa-institution:before,\n.fa-university:before {\n    content: \"\\f19c\"\n}\n.fa-graduation-cap:before,\n.fa-mortar-board:before {\n    content: \"\\f19d\"\n}\n.fa-yahoo:before {\n    content: \"\\f19e\"\n}\n.fa-google:before {\n    content: \"\\f1a0\"\n}\n.fa-reddit:before {\n    content: \"\\f1a1\"\n}\n.fa-reddit-square:before {\n    content: \"\\f1a2\"\n}\n.fa-stumbleupon-circle:before {\n    content: \"\\f1a3\"\n}\n.fa-stumbleupon:before {\n    content: \"\\f1a4\"\n}\n.fa-delicious:before {\n    content: \"\\f1a5\"\n}\n.fa-digg:before {\n    content: \"\\f1a6\"\n}\n.fa-pied-piper:before {\n    content: \"\\f1a7\"\n}\n.fa-pied-piper-alt:before {\n    content: \"\\f1a8\"\n}\n.fa-drupal:before {\n    content: \"\\f1a9\"\n}\n.fa-joomla:before {\n    content: \"\\f1aa\"\n}\n.fa-language:before {\n    content: \"\\f1ab\"\n}\n.fa-fax:before {\n    content: \"\\f1ac\"\n}\n.fa-building:before {\n    content: \"\\f1ad\"\n}\n.fa-child:before {\n    content: \"\\f1ae\"\n}\n.fa-paw:before {\n    content: \"\\f1b0\"\n}\n.fa-spoon:before {\n    content: \"\\f1b1\"\n}\n.fa-cube:before {\n    content: \"\\f1b2\"\n}\n.fa-cubes:before {\n    content: \"\\f1b3\"\n}\n.fa-behance:before {\n    content: \"\\f1b4\"\n}\n.fa-behance-square:before {\n    content: \"\\f1b5\"\n}\n.fa-steam:before {\n    content: \"\\f1b6\"\n}\n.fa-steam-square:before {\n    content: \"\\f1b7\"\n}\n.fa-recycle:before {\n    content: \"\\f1b8\"\n}\n.fa-automobile:before,\n.fa-car:before {\n    content: \"\\f1b9\"\n}\n.fa-cab:before,\n.fa-taxi:before {\n    content: \"\\f1ba\"\n}\n.fa-tree:before {\n    content: \"\\f1bb\"\n}\n.fa-spotify:before {\n    content: \"\\f1bc\"\n}\n.fa-deviantart:before {\n    content: \"\\f1bd\"\n}\n.fa-soundcloud:before {\n    content: \"\\f1be\"\n}\n.fa-database:before {\n    content: \"\\f1c0\"\n}\n.fa-file-pdf-o:before {\n    content: \"\\f1c1\"\n}\n.fa-file-word-o:before {\n    content: \"\\f1c2\"\n}\n.fa-file-excel-o:before {\n    content: \"\\f1c3\"\n}\n.fa-file-powerpoint-o:before {\n    content: \"\\f1c4\"\n}\n.fa-file-image-o:before,\n.fa-file-photo-o:before,\n.fa-file-picture-o:before {\n    content: \"\\f1c5\"\n}\n.fa-file-archive-o:before,\n.fa-file-zip-o:before {\n    content: \"\\f1c6\"\n}\n.fa-file-audio-o:before,\n.fa-file-sound-o:before {\n    content: \"\\f1c7\"\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n    content: \"\\f1c8\"\n}\n.fa-file-code-o:before {\n    content: \"\\f1c9\"\n}\n.fa-vine:before {\n    content: \"\\f1ca\"\n}\n.fa-codepen:before {\n    content: \"\\f1cb\"\n}\n.fa-jsfiddle:before {\n    content: \"\\f1cc\"\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-ring:before,\n.fa-life-saver:before,\n.fa-support:before {\n    content: \"\\f1cd\"\n}\n.fa-circle-o-notch:before {\n    content: \"\\f1ce\"\n}\n.fa-ra:before,\n.fa-rebel:before {\n    content: \"\\f1d0\"\n}\n.fa-empire:before,\n.fa-ge:before {\n    content: \"\\f1d1\"\n}\n.fa-git-square:before {\n    content: \"\\f1d2\"\n}\n.fa-git:before {\n    content: \"\\f1d3\"\n}\n.fa-hacker-news:before,\n.fa-y-combinator-square:before,\n.fa-yc-square:before {\n    content: \"\\f1d4\"\n}\n.fa-tencent-weibo:before {\n    content: \"\\f1d5\"\n}\n.fa-qq:before {\n    content: \"\\f1d6\"\n}\n.fa-wechat:before,\n.fa-weixin:before {\n    content: \"\\f1d7\"\n}\n.fa-paper-plane:before,\n.fa-send:before {\n    content: \"\\f1d8\"\n}\n.fa-paper-plane-o:before,\n.fa-send-o:before {\n    content: \"\\f1d9\"\n}\n.fa-history:before {\n    content: \"\\f1da\"\n}\n.fa-circle-thin:before {\n    content: \"\\f1db\"\n}\n.fa-header:before {\n    content: \"\\f1dc\"\n}\n.fa-paragraph:before {\n    content: \"\\f1dd\"\n}\n.fa-sliders:before {\n    content: \"\\f1de\"\n}\n.fa-share-alt:before {\n    content: \"\\f1e0\"\n}\n.fa-share-alt-square:before {\n    content: \"\\f1e1\"\n}\n.fa-bomb:before {\n    content: \"\\f1e2\"\n}\n.fa-futbol-o:before,\n.fa-soccer-ball-o:before {\n    content: \"\\f1e3\"\n}\n.fa-tty:before {\n    content: \"\\f1e4\"\n}\n.fa-binoculars:before {\n    content: \"\\f1e5\"\n}\n.fa-plug:before {\n    content: \"\\f1e6\"\n}\n.fa-slideshare:before {\n    content: \"\\f1e7\"\n}\n.fa-twitch:before {\n    content: \"\\f1e8\"\n}\n.fa-yelp:before {\n    content: \"\\f1e9\"\n}\n.fa-newspaper-o:before {\n    content: \"\\f1ea\"\n}\n.fa-wifi:before {\n    content: \"\\f1eb\"\n}\n.fa-calculator:before {\n    content: \"\\f1ec\"\n}\n.fa-paypal:before {\n    content: \"\\f1ed\"\n}\n.fa-google-wallet:before {\n    content: \"\\f1ee\"\n}\n.fa-cc-visa:before {\n    content: \"\\f1f0\"\n}\n.fa-cc-mastercard:before {\n    content: \"\\f1f1\"\n}\n.fa-cc-discover:before {\n    content: \"\\f1f2\"\n}\n.fa-cc-amex:before {\n    content: \"\\f1f3\"\n}\n.fa-cc-paypal:before {\n    content: \"\\f1f4\"\n}\n.fa-cc-stripe:before {\n    content: \"\\f1f5\"\n}\n.fa-bell-slash:before {\n    content: \"\\f1f6\"\n}\n.fa-bell-slash-o:before {\n    content: \"\\f1f7\"\n}\n.fa-trash:before {\n    content: \"\\f1f8\"\n}\n.fa-copyright:before {\n    content: \"\\f1f9\"\n}\n.fa-at:before {\n    content: \"\\f1fa\"\n}\n.fa-eyedropper:before {\n    content: \"\\f1fb\"\n}\n.fa-paint-brush:before {\n    content: \"\\f1fc\"\n}\n.fa-birthday-cake:before {\n    content: \"\\f1fd\"\n}\n.fa-area-chart:before {\n    content: \"\\f1fe\"\n}\n.fa-pie-chart:before {\n    content: \"\\f200\"\n}\n.fa-line-chart:before {\n    content: \"\\f201\"\n}\n.fa-lastfm:before {\n    content: \"\\f202\"\n}\n.fa-lastfm-square:before {\n    content: \"\\f203\"\n}\n.fa-toggle-off:before {\n    content: \"\\f204\"\n}\n.fa-toggle-on:before {\n    content: \"\\f205\"\n}\n.fa-bicycle:before {\n    content: \"\\f206\"\n}\n.fa-bus:before {\n    content: \"\\f207\"\n}\n.fa-ioxhost:before {\n    content: \"\\f208\"\n}\n.fa-angellist:before {\n    content: \"\\f209\"\n}\n.fa-cc:before {\n    content: \"\\f20a\"\n}\n.fa-ils:before,\n.fa-shekel:before,\n.fa-sheqel:before {\n    content: \"\\f20b\"\n}\n.fa-meanpath:before {\n    content: \"\\f20c\"\n}\n.fa-buysellads:before {\n    content: \"\\f20d\"\n}\n.fa-connectdevelop:before {\n    content: \"\\f20e\"\n}\n.fa-dashcube:before {\n    content: \"\\f210\"\n}\n.fa-forumbee:before {\n    content: \"\\f211\"\n}\n.fa-leanpub:before {\n    content: \"\\f212\"\n}\n.fa-sellsy:before {\n    content: \"\\f213\"\n}\n.fa-shirtsinbulk:before {\n    content: \"\\f214\"\n}\n.fa-simplybuilt:before {\n    content: \"\\f215\"\n}\n.fa-skyatlas:before {\n    content: \"\\f216\"\n}\n.fa-cart-plus:before {\n    content: \"\\f217\"\n}\n.fa-cart-arrow-down:before {\n    content: \"\\f218\"\n}\n.fa-diamond:before {\n    content: \"\\f219\"\n}\n.fa-ship:before {\n    content: \"\\f21a\"\n}\n.fa-user-secret:before {\n    content: \"\\f21b\"\n}\n.fa-motorcycle:before {\n    content: \"\\f21c\"\n}\n.fa-street-view:before {\n    content: \"\\f21d\"\n}\n.fa-heartbeat:before {\n    content: \"\\f21e\"\n}\n.fa-venus:before {\n    content: \"\\f221\"\n}\n.fa-mars:before {\n    content: \"\\f222\"\n}\n.fa-mercury:before {\n    content: \"\\f223\"\n}\n.fa-intersex:before,\n.fa-transgender:before {\n    content: \"\\f224\"\n}\n.fa-transgender-alt:before {\n    content: \"\\f225\"\n}\n.fa-venus-double:before {\n    content: \"\\f226\"\n}\n.fa-mars-double:before {\n    content: \"\\f227\"\n}\n.fa-venus-mars:before {\n    content: \"\\f228\"\n}\n.fa-mars-stroke:before {\n    content: \"\\f229\"\n}\n.fa-mars-stroke-v:before {\n    content: \"\\f22a\"\n}\n.fa-mars-stroke-h:before {\n    content: \"\\f22b\"\n}\n.fa-neuter:before {\n    content: \"\\f22c\"\n}\n.fa-genderless:before {\n    content: \"\\f22d\"\n}\n.fa-facebook-official:before {\n    content: \"\\f230\"\n}\n.fa-pinterest-p:before {\n    content: \"\\f231\"\n}\n.fa-whatsapp:before {\n    content: \"\\f232\"\n}\n.fa-server:before {\n    content: \"\\f233\"\n}\n.fa-user-plus:before {\n    content: \"\\f234\"\n}\n.fa-user-times:before {\n    content: \"\\f235\"\n}\n.fa-bed:before,\n.fa-hotel:before {\n    content: \"\\f236\"\n}\n.fa-viacoin:before {\n    content: \"\\f237\"\n}\n.fa-train:before {\n    content: \"\\f238\"\n}\n.fa-subway:before {\n    content: \"\\f239\"\n}\n.fa-medium:before {\n    content: \"\\f23a\"\n}\n.fa-y-combinator:before,\n.fa-yc:before {\n    content: \"\\f23b\"\n}\n.fa-optin-monster:before {\n    content: \"\\f23c\"\n}\n.fa-opencart:before {\n    content: \"\\f23d\"\n}\n.fa-expeditedssl:before {\n    content: \"\\f23e\"\n}\n.fa-battery-4:before,\n.fa-battery-full:before {\n    content: \"\\f240\"\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n    content: \"\\f241\"\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n    content: \"\\f242\"\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n    content: \"\\f243\"\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n    content: \"\\f244\"\n}\n.fa-mouse-pointer:before {\n    content: \"\\f245\"\n}\n.fa-i-cursor:before {\n    content: \"\\f246\"\n}\n.fa-object-group:before {\n    content: \"\\f247\"\n}\n.fa-object-ungroup:before {\n    content: \"\\f248\"\n}\n.fa-sticky-note:before {\n    content: \"\\f249\"\n}\n.fa-sticky-note-o:before {\n    content: \"\\f24a\"\n}\n.fa-cc-jcb:before {\n    content: \"\\f24b\"\n}\n.fa-cc-diners-club:before {\n    content: \"\\f24c\"\n}\n.fa-clone:before {\n    content: \"\\f24d\"\n}\n.fa-balance-scale:before {\n    content: \"\\f24e\"\n}\n.fa-hourglass-o:before {\n    content: \"\\f250\"\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n    content: \"\\f251\"\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n    content: \"\\f252\"\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n    content: \"\\f253\"\n}\n.fa-hourglass:before {\n    content: \"\\f254\"\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n    content: \"\\f255\"\n}\n.fa-hand-paper-o:before,\n.fa-hand-stop-o:before {\n    content: \"\\f256\"\n}\n.fa-hand-scissors-o:before {\n    content: \"\\f257\"\n}\n.fa-hand-lizard-o:before {\n    content: \"\\f258\"\n}\n.fa-hand-spock-o:before {\n    content: \"\\f259\"\n}\n.fa-hand-pointer-o:before {\n    content: \"\\f25a\"\n}\n.fa-hand-peace-o:before {\n    content: \"\\f25b\"\n}\n.fa-trademark:before {\n    content: \"\\f25c\"\n}\n.fa-registered:before {\n    content: \"\\f25d\"\n}\n.fa-creative-commons:before {\n    content: \"\\f25e\"\n}\n.fa-gg:before {\n    content: \"\\f260\"\n}\n.fa-gg-circle:before {\n    content: \"\\f261\"\n}\n.fa-tripadvisor:before {\n    content: \"\\f262\"\n}\n.fa-odnoklassniki:before {\n    content: \"\\f263\"\n}\n.fa-odnoklassniki-square:before {\n    content: \"\\f264\"\n}\n.fa-get-pocket:before {\n    content: \"\\f265\"\n}\n.fa-wikipedia-w:before {\n    content: \"\\f266\"\n}\n.fa-safari:before {\n    content: \"\\f267\"\n}\n.fa-chrome:before {\n    content: \"\\f268\"\n}\n.fa-firefox:before {\n    content: \"\\f269\"\n}\n.fa-opera:before {\n    content: \"\\f26a\"\n}\n.fa-internet-explorer:before {\n    content: \"\\f26b\"\n}\n.fa-television:before,\n.fa-tv:before {\n    content: \"\\f26c\"\n}\n.fa-contao:before {\n    content: \"\\f26d\"\n}\n.fa-500px:before {\n    content: \"\\f26e\"\n}\n.fa-amazon:before {\n    content: \"\\f270\"\n}\n.fa-calendar-plus-o:before {\n    content: \"\\f271\"\n}\n.fa-calendar-minus-o:before {\n    content: \"\\f272\"\n}\n.fa-calendar-times-o:before {\n    content: \"\\f273\"\n}\n.fa-calendar-check-o:before {\n    content: \"\\f274\"\n}\n.fa-industry:before {\n    content: \"\\f275\"\n}\n.fa-map-pin:before {\n    content: \"\\f276\"\n}\n.fa-map-signs:before {\n    content: \"\\f277\"\n}\n.fa-map-o:before {\n    content: \"\\f278\"\n}\n.fa-map:before {\n    content: \"\\f279\"\n}\n.fa-commenting:before {\n    content: \"\\f27a\"\n}\n.fa-commenting-o:before {\n    content: \"\\f27b\"\n}\n.fa-houzz:before {\n    content: \"\\f27c\"\n}\n.fa-vimeo:before {\n    content: \"\\f27d\"\n}\n.fa-black-tie:before {\n    content: \"\\f27e\"\n}\n.fa-fonticons:before {\n    content: \"\\f280\"\n}\n.fa-reddit-alien:before {\n    content: \"\\f281\"\n}\n.fa-edge:before {\n    content: \"\\f282\"\n}\n.fa-credit-card-alt:before {\n    content: \"\\f283\"\n}\n.fa-codiepie:before {\n    content: \"\\f284\"\n}\n.fa-modx:before {\n    content: \"\\f285\"\n}\n.fa-fort-awesome:before {\n    content: \"\\f286\"\n}\n.fa-usb:before {\n    content: \"\\f287\"\n}\n.fa-product-hunt:before {\n    content: \"\\f288\"\n}\n.fa-mixcloud:before {\n    content: \"\\f289\"\n}\n.fa-scribd:before {\n    content: \"\\f28a\"\n}\n.fa-pause-circle:before {\n    content: \"\\f28b\"\n}\n.fa-pause-circle-o:before {\n    content: \"\\f28c\"\n}\n.fa-stop-circle:before {\n    content: \"\\f28d\"\n}\n.fa-stop-circle-o:before {\n    content: \"\\f28e\"\n}\n.fa-shopping-bag:before {\n    content: \"\\f290\"\n}\n.fa-shopping-basket:before {\n    content: \"\\f291\"\n}\n.fa-hashtag:before {\n    content: \"\\f292\"\n}\n.fa-bluetooth:before {\n    content: \"\\f293\"\n}\n.fa-bluetooth-b:before {\n    content: \"\\f294\"\n}\n.fa-percent:before {\n    content: \"\\f295\"\n}\n.sttabs {\n    position: relative;\n    overflow: hidden;\n    margin: 0 auto;\n    width: 100%;\n    font-weight: 300\n}\n.sticon::before {\n    display: inline-block;\n    margin: 0 .4em 0 0;\n    vertical-align: middle;\n    font-size: 20px;\n    speak: none;\n    -webkit-backface-visibility: hidden;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale\n}\n.sttabs nav {\n    text-align: center\n}\n.sttabs nav ul {\n    position: relative;\n    display: -ms-flexbox;\n    display: -webkit-flex;\n    display: -moz-flex;\n    display: -ms-flex;\n    display: flex;\n    margin: 0 auto;\n    padding: 0;\n    font-family: Poppins, sans-serif;\n    list-style: none;\n    -ms-box-orient: horizontal;\n    -ms-box-pack: center;\n    -webkit-flex-flow: row wrap;\n    -moz-flex-flow: row wrap;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    -webkit-justify-content: center;\n    -moz-justify-content: center;\n    -ms-justify-content: center;\n    justify-content: center\n}\n.sttabs nav ul li {\n    position: relative;\n    z-index: 1;\n    display: block;\n    margin: 0;\n    text-align: center;\n    -webkit-flex: 1;\n    -moz-flex: 1;\n    -ms-flex: 1;\n    flex: 1\n}\n.sttabs nav a {\n    position: relative;\n    display: block;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    line-height: 2.5\n}\n.sttabs nav a span {\n    vertical-align: middle;\n    font-wight: 500;\n    font-size: 14px;\n    font-family: Rubik, sans-serif\n}\n.sttabs nav a:focus {\n    outline: 0\n}\n.sttabs nav li.tab-current a {\n    color: #f33155\n}\n.content-wrap {\n    background: #fff\n}\n.tabs-style-bar nav ul li a {\n    margin: 0 2px;\n    background-color: #f7fafc;\n    color: #686868;\n    padding: 5px 0;\n    transition: background-color .2s, color .2s\n}\n.tabs-style-bar nav ul li a:focus,\n.tabs-style-bar nav ul li a:hover {\n    color: #f33155\n}\n.tabs-style-bar nav ul li a span {\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    font-size: 14px;\n    font-family: Poppins, sans-serif\n}\n.tabs-style-bar nav ul li.tab-current a {\n    background: #fb9678;\n    color: #fff\n}\n.tabs-style-iconbox nav {\n    background: #f7fafc\n}\n.tabs-style-iconbox nav ul li a {\n    overflow: visible;\n    padding: 25px 0;\n    line-height: 1;\n    -webkit-transition: color .2s;\n    transition: color .2s;\n    color: #263238\n}\n.tabs-style-iconbox nav ul li.tab-current {\n    z-index: 1\n}\n.tabs-style-iconbox nav ul li.tab-current a {\n    background: #41b3f9;\n    color: #fff;\n    box-shadow: -1px 0 0 #fff\n}\n.tabs-style-iconbox nav ul li.tab-current a::after {\n    position: absolute;\n    top: 100%;\n    left: 50%;\n    margin-left: -10px;\n    width: 0;\n    height: 0;\n    border: solid transparent;\n    border-width: 10px;\n    border-top-color: #41b3f9;\n    content: '';\n    pointer-events: none\n}\n.tabs-style-iconbox nav ul li::after,\n.tabs-style-iconbox nav ul li:first-child::before {\n    position: absolute;\n    top: 20%;\n    right: 0;\n    z-index: -1;\n    width: 1px;\n    height: 60%;\n    content: ''\n}\n.tabs-style-iconbox nav ul li:first-child::before {\n    right: auto;\n    left: 0\n}\n.tabs-style-iconbox .sticon::before {\n    display: block;\n    margin: 0 0 .25em\n}\n.tabs-style-underline nav {\n    border: 1px solid rgba(120, 130, 140, .13)\n}\n.tabs-style-underline nav a {\n    padding: 20px 0;\n    border-left: 1px solid rgba(120, 130, 140, .13);\n    -webkit-transition: color .2s;\n    transition: color .2s;\n    color: #263238\n}\n.tabs-style-underline nav li:last-child a {\n    border-right: 1px solid rgba(120, 130, 140, .13)\n}\n.tabs-style-underline nav li a::after {\n    position: absolute;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 6px;\n    background: #fb9678;\n    content: '';\n    -webkit-transition: -webkit-transform .3s;\n    transition: transform .3s;\n    -webkit-transform: translate3d(0, 150%, 0);\n    transform: translate3d(0, 150%, 0)\n}\n.tabs-style-underline nav li.tab-current a::after {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0)\n}\n.tabs-style-linetriangle nav a {\n    overflow: visible;\n    border-bottom: 1px solid rgba(0, 0, 0, .2);\n    -webkit-transition: color .2s;\n    transition: color .2s\n}\n.tabs-style-linetriangle nav a span {\n    display: block;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    font-size: 14px;\n    padding: 15px 0;\n    color: #263238\n}\n.tabs-style-linetriangle nav li.tab-current a:after,\n.tabs-style-linetriangle nav li.tab-current a:before {\n    position: absolute;\n    top: 100%;\n    left: 50%;\n    width: 0;\n    height: 0;\n    border: solid transparent;\n    content: '';\n    pointer-events: none\n}\n.tabs-style-linetriangle nav li.tab-current a:after {\n    margin-left: -10px;\n    border-width: 10px;\n    border-top-color: #fff\n}\n.tabs-style-linetriangle nav li.tab-current a span {\n    color: #f33155\n}\n.tabs-style-linetriangle nav li.tab-current a:before {\n    margin-left: -11px;\n    border-width: 11px;\n    border-top-color: rgba(0, 0, 0, .2)\n}\n.tabs-style-iconfall {\n    overflow: visible\n}\n.tabs-style-iconfall nav {\n    max-width: 1200px;\n    margin: 0 auto\n}\n.tabs-style-iconfall nav a {\n    display: inline-block;\n    overflow: visible;\n    padding: 1em 0 2em;\n    color: #263238;\n    line-height: 1;\n    -webkit-transition: color .3s cubic-bezier(.7, 0, .3, 1);\n    transition: color .3s cubic-bezier(.7, 0, .3, 1)\n}\n.tabs-style-iconfall nav a:focus,\n.tabs-style-iconfall nav a:hover,\n.tabs-style-iconfall nav li.tab-current a {\n    color: #f33155\n}\n.tabs-style-iconfall nav li::before {\n    position: absolute;\n    bottom: 1em;\n    left: 50%;\n    margin-left: -20px;\n    width: 40px;\n    height: 4px;\n    background: #f33155;\n    content: '';\n    opacity: 0;\n    -webkit-transition: -webkit-transform .2s ease-in;\n    transition: transform .2s ease-in;\n    -webkit-transform: scale3d(0, 1, 1);\n    transform: scale3d(0, 1, 1)\n}\n.tabs-style-iconfall nav li.tab-current::before {\n    opacity: 1;\n    -webkit-transform: scale3d(1, 1, 1);\n    transform: scale3d(1, 1, 1)\n}\n.tabs-style-iconfall nav li.tab-current .sticon::before {\n    opacity: 1;\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0)\n}\n.tabs-style-iconfall .sticon::before {\n    display: block;\n    margin: 0 0 .35em;\n    opacity: 0;\n    font-size: 24px;\n    -webkit-transition: -webkit-transform .2s, opacity .2s;\n    transition: transform .2s, opacity .2s;\n    -webkit-transform: translate3d(0, -100px, 0);\n    transform: translate3d(0, -100px, 0);\n    pointer-events: none\n}\n@media screen and (max-width: 58em) {\n    .tabs-style-iconfall nav li .sticon::before {\n        opacity: 1;\n        -webkit-transform: translate3d(0, 0, 0);\n        transform: translate3d(0, 0, 0)\n    }\n}\n.tabs-style-linemove nav {\n    background: #f7fafc\n}\n.tabs-style-linemove nav li:last-child::before {\n    position: absolute;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 4px;\n    background: #f33155;\n    content: '';\n    -webkit-transition: -webkit-transform .3s;\n    transition: transform .3s\n}\n.tabs-style-linemove nav li:first-child.tab-current~li:last-child::before {\n    -webkit-transform: translate3d(-400%, 0, 0);\n    transform: translate3d(-400%, 0, 0)\n}\n.tabs-style-linemove nav li:nth-child(2).tab-current~li:last-child::before {\n    -webkit-transform: translate3d(-300%, 0, 0);\n    transform: translate3d(-300%, 0, 0)\n}\n.tabs-style-linemove nav li:nth-child(3).tab-current~li:last-child::before {\n    -webkit-transform: translate3d(-200%, 0, 0);\n    transform: translate3d(-200%, 0, 0)\n}\n.tabs-style-linemove nav li:nth-child(4).tab-current~li:last-child::before {\n    -webkit-transform: translate3d(-100%, 0, 0);\n    transform: translate3d(-100%, 0, 0)\n}\n.tabs-style-linemove nav a {\n    padding: 30px 0;\n    color: #263238;\n    line-height: 1;\n    -webkit-transition: color .3s, -webkit-transform .3s;\n    transition: color .3s, transform .3s\n}\n.tabs-style-linemove nav li.tab-current a {\n    color: #f33155\n}\n.tabs-style-line nav a {\n    padding: 20px 10px;\n    box-shadow: inset 0 -2px #d1d3d2;\n    color: #686868;\n    text-align: left;\n    text-transform: uppercase;\n    letter-spacing: 1px;\n    line-height: 1;\n    -webkit-transition: color .3s, box-shadow .3s;\n    transition: color .3s, box-shadow .3s\n}\n.tabs-style-line nav a:focus,\n.tabs-style-line nav a:hover {\n    box-shadow: inset 0 -2px #74777b\n}\n.tabs-style-line nav li.tab-current a {\n    box-shadow: inset 0 -2px #f33155;\n    color: #f33155\n}\n@media screen and (max-width: 58em) {\n    .tabs-style-line nav ul {\n        display: block;\n        box-shadow: none\n    }\n    .tabs-style-line nav ul li {\n        display: block;\n        -webkit-flex: none;\n        flex: none\n    }\n}\n.tabs-style-circle {\n    overflow: visible\n}\n.tabs-style-circle nav li {\n    margin-top: 60px!important;\n    margin-bottom: 60px!important\n}\n.tabs-style-circle nav li::before {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    margin: -60px 0 0 -60px;\n    width: 120px;\n    height: 120px;\n    border: 1px solid #fb9678;\n    border-radius: 50%;\n    content: '';\n    opacity: 0;\n    -webkit-transition: -webkit-transform .2s, opacity .2s;\n    transition: transform .2s, opacity .2s;\n    -webkit-transition-timing-function: cubic-bezier(.7, 0, .3, 1);\n    transition-timing-function: cubic-bezier(.7, 0, .3, 1)\n}\n.tabs-style-circle nav a {\n    overflow: visible;\n    color: #2b2b2b;\n    font-weight: 500;\n    font-size: 14;\n    line-height: 1.1;\n    -webkit-transition: color .3s cubic-bezier(.7, 0, .3, 1);\n    transition: color .3s cubic-bezier(.7, 0, .3, 1)\n}\n.tabs-style-circle nav a span {\n    display: inline-block\n}\n.tabs-style-circle nav a:focus,\n.tabs-style-circle nav a:hover,\n.tabs-style-circle nav li.tab-current a {\n    color: #f33155\n}\n.tabs-style-circle nav li.tab-current a span {\n    -webkit-transform: translate3d(0, 4px, 0);\n    transform: translate3d(0, 4px, 0)\n}\n@media screen and (max-width: 58em) {\n    .tabs-style-circle nav li::before {\n        margin: -40px 0 0 -40px;\n        width: 80px;\n        height: 80px\n    }\n}\n.tabs-style-circle nav li.tab-current::before {\n    opacity: 1;\n    -webkit-transform: scale3d(1, 1, 1);\n    transform: scale3d(1, 1, 1)\n}\n.tabs-style-circle .icon::before,\n.tabs-style-circle nav a span {\n    -webkit-transition: -webkit-transform .3s cubic-bezier(.7, 0, .3, 1);\n    transition: transform .3s cubic-bezier(.7, 0, .3, 1)\n}\n.tabs-style-circle .sticon::before {\n    display: block;\n    margin: 0;\n    pointer-events: none\n}\n.tabs-style-circle nav li.tab-current .sticon::before {\n    -webkit-transform: translate3d(0, -4px, 0);\n    transform: translate3d(0, -4px, 0)\n}\n.tabs-style-shape {\n    max-width: 1200px;\n    margin: 0 auto\n}\n.tabs-style-shape nav ul li {\n    margin: 0 3em\n}\n.tabs-style-shape nav ul li:first-child {\n    margin-left: 0\n}\n.tabs-style-shape nav ul li.tab-current {\n    z-index: 1\n}\n.tabs-style-shape nav li a {\n    overflow: visible;\n    margin: 0 -3em 0 0;\n    padding: 0;\n    color: #fff;\n    font-weight: 500\n}\n.tabs-style-shape nav li a svg {\n    position: absolute;\n    left: 100%;\n    margin: 0;\n    width: 3em;\n    height: 100%;\n    fill: #bdc2c9\n}\n.tabs-style-shape nav li:first-child a span {\n    padding-left: 2em;\n    border-radius: 30px 0 0\n}\n.tabs-style-shape nav li:last-child a span {\n    padding-right: 2em;\n    border-radius: 0 30px 0 0\n}\n.tabs-style-shape nav li a svg:nth-child(2),\n.tabs-style-shape nav li:last-child a svg {\n    right: 100%;\n    left: auto;\n    -webkit-transform: scale3d(-1, 1, 1);\n    transform: scale3d(-1, 1, 1)\n}\n.tabs-style-shape nav li a span {\n    display: block;\n    overflow: hidden;\n    padding: .65em 0;\n    background-color: #bdc2c9;\n    text-overflow: ellipsis;\n    white-space: nowrap\n}\n.tabs-style-shape nav li a:hover span {\n    background-color: #f33155\n}\n.tabs-style-shape nav li a:hover svg {\n    fill: #f33155\n}\n.tabs-style-shape nav li a svg {\n    pointer-events: none\n}\n.tabs-style-shape nav li a svg use {\n    pointer-events: auto\n}\n.tabs-style-shape nav li.tab-current a span,\n.tabs-style-shape nav li.tab-current a svg {\n    -webkit-transition: none;\n    transition: none\n}\n.tabs-style-shape nav li.tab-current a span {\n    background: #f7fafc\n}\n.tabs-style-shape nav li.tab-current a svg {\n    fill: #f7fafc\n}\n.tabs-style-shape .content-wrap {\n    background: #f7fafc\n}\n@media screen and (max-width: 58em) {\n    .tabs-style-shape nav ul {\n        display: block;\n        padding-top: 1.5em\n    }\n    .tabs-style-shape nav ul li {\n        display: block;\n        margin: -1.25em 0 0;\n        -webkit-flex: none;\n        flex: none\n    }\n    .tabs-style-shape nav ul li a {\n        margin: 0\n    }\n    .tabs-style-shape nav ul li svg {\n        display: none\n    }\n    .tabs-style-shape nav ul li a span {\n        padding: 1.25em 0 2em!important;\n        border-radius: 30px 30px 0 0!important;\n        box-shadow: 0 -1px 2px rgba(0, 0, 0, .1);\n        line-height: 1\n    }\n    .tabs-style-shape nav ul li:last-child a span {\n        padding: 1.25em 0!important\n    }\n    .tabs-style-shape nav ul li.tab-current {\n        z-index: 1\n    }\n}\n.tabs-style-linebox nav ul li {\n    margin: 0 .5em;\n    -webkit-flex: none;\n    flex: none\n}\n.tabs-style-linebox nav a {\n    padding: 0 1.5em;\n    color: #263238;\n    font-weight: 500;\n    -webkit-transition: color .3s;\n    transition: color .3s\n}\n.tabs-style-linebox nav a:focus,\n.tabs-style-linebox nav a:hover {\n    color: #f33155\n}\n.tabs-style-linebox nav li.tab-current a {\n    color: #fff\n}\n.tabs-style-linebox nav a::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: -1;\n    width: 100%;\n    height: 100%;\n    background: #d2d8d6;\n    content: '';\n    -webkit-transition: background-color .3s, -webkit-transform .3s;\n    transition: background-color .3s, transform .3s;\n    -webkit-transition-timing-function: ease, cubic-bezier(.7, 0, .3, 1);\n    transition-timing-function: ease, cubic-bezier(.7, 0, .3, 1);\n    -webkit-transform: translate3d(0, 100%, 0) translate3d(0, -3px, 0);\n    transform: translate3d(0, 100%, 0) translate3d(0, -3px, 0)\n}\n.tabs-style-linebox nav li.tab-current a::after {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0)\n}\n.tabs-style-linebox nav a:focus::after,\n.tabs-style-linebox nav a:hover::after,\n.tabs-style-linebox nav li.tab-current a::after {\n    background: #f33155\n}\n@media screen and (max-width: 58em) {\n    .tabs-style-linebox nav ul {\n        display: block;\n        box-shadow: none\n    }\n    .tabs-style-linebox nav ul li {\n        display: block;\n        -webkit-flex: none;\n        flex: none\n    }\n}\n.tabs-style-flip {\n    max-width: 1200px;\n    margin: 0 auto\n}\n.tabs-style-flip nav a {\n    padding: .5em 0;\n    color: #263238;\n    -webkit-transition: color .3s;\n    transition: color .3s\n}\n.tabs-style-flip nav a:focus,\n.tabs-style-flip nav a:hover {\n    color: #f33155\n}\n.tabs-style-flip nav a span {\n    text-transform: uppercase;\n    letter-spacing: 1px\n}\n.tabs-style-flip nav a::after {\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: -1;\n    width: 100%;\n    height: 100%;\n    background-color: #f0f0f0;\n    content: '';\n    -webkit-transition: -webkit-transform .3s, background-color .3s;\n    transition: transform .3s, background-color .3s;\n    -webkit-transform: perspective(900px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(900px) rotate3d(1, 0, 0, 90deg);\n    -webkit-transform-origin: 50% 100%;\n    transform-origin: 50% 100%;\n    -webkit-perspective-origin: 50% 100%;\n    perspective-origin: 50% 100%\n}\n.tabs-style-flip nav li.tab-current a {\n    color: #f33155\n}\n.tabs-style-flip nav li.tab-current a::after {\n    background-color: #f7fafc;\n    -webkit-transform: perspective(900px) rotate3d(1, 0, 0, 0deg);\n    transform: perspective(900px) rotate3d(1, 0, 0, 0deg)\n}\n.tabs-style-flip .content-wrap {\n    background: #f7fafc\n}\n.tabs-style-circlefill {\n    max-width: 800px;\n    border: 1px solid #f33155;\n    margin: 0 auto\n}\n.tabs-style-circlefill nav ul li {\n    overflow: hidden;\n    border-right: 1px solid #f33155\n}\n.tabs-style-circlefill nav li a {\n    padding: 1.5em 0;\n    color: #fff;\n    font-size: 1.25em\n}\n.tabs-style-circlefill nav li:first-child {\n    border-left: none\n}\n.tabs-style-circlefill nav li:last-child {\n    border: none\n}\n.tabs-style-circlefill nav li::before {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    margin: -40px 0 0 -40px;\n    width: 80px;\n    height: 80px;\n    border: 1px solid #f33155;\n    border-radius: 50%;\n    background: #f33155;\n    content: '';\n    -webkit-transition: -webkit-transform .3s;\n    transition: transform .3s\n}\n.tabs-style-circlefill nav li.tab-current::before {\n    -webkit-transform: scale3d(2.5, 2.5, 1);\n    transform: scale3d(2.5, 2.5, 1)\n}\n.tabs-style-circlefill nav a {\n    -webkit-transition: color .3s;\n    transition: color .3s\n}\n.tabs-style-circlefill nav a span {\n    display: none\n}\n.tabs-style-circlefill nav li.tab-current a {\n    color: #fff\n}\n.tabs-style-circlefill .icon::before {\n    display: block;\n    margin: 0;\n    pointer-events: none\n}\n.tabs-style-circlefill .content-wrap {\n    border-top: 1px solid #f33155\n}\n.content-wrap {\n    position: relative\n}\n.content-wrap section {\n    display: none;\n    margin: 0 auto;\n    padding: 25px;\n    min-height: 150px\n}\n.content-wrap section p {\n    margin: 0;\n    padding: .75em 0\n}\n.content-wrap section.content-current {\n    display: block\n}\n.no-js .content-wrap section {\n    display: block;\n    padding-bottom: 2em;\n    border-bottom: 1px solid rgba(255, 255, 255, .6)\n}\n.no-flexbox nav ul {\n    display: block\n}\n.no-flexbox nav ul li {\n    min-width: 15%;\n    display: inline-block\n}\n@media screen and (max-width: 58em) {\n    .sttabs nav a span {\n        display: none\n    }\n    .sttabs nav a:before {\n        margin-right: 0\n    }\n}\n.mytooltip {\n    display: inline;\n    position: relative;\n    z-index: 9999\n}\n.tooltip-item {\n    background: rgba(0, 0, 0, .1);\n    cursor: pointer;\n    display: inline-block;\n    font-weight: 500;\n    padding: 0 10px\n}\n.tooltip-item::after {\n    content: '';\n    position: absolute;\n    width: 360px;\n    height: 20px;\n    bottom: 100%;\n    left: 50%;\n    pointer-events: none;\n    -webkit-transform: translateX(-50%);\n    transform: translateX(-50%)\n}\n.mytooltip:hover .tooltip-item::after {\n    pointer-events: auto\n}\n.tooltip-content {\n    position: absolute;\n    z-index: 9999;\n    width: 360px;\n    left: 50%;\n    margin: 0 0 20px -180px;\n    bottom: 100%;\n    text-align: left;\n    font-size: 14px;\n    line-height: 30px;\n    box-shadow: -5px -5px 15px rgba(48, 54, 61, .2);\n    background: #2b2b2b;\n    opacity: 0;\n    cursor: default;\n    pointer-events: none\n}\n.tooltip-effect-1 .tooltip-content {\n    -webkit-transform: translate3d(0, -10px, 0);\n    transform: translate3d(0, -10px, 0);\n    -webkit-transition: opacity .3s, -webkit-transform .3s;\n    transition: opacity .3s, transform .3s;\n    color: #fff\n}\n.tooltip-effect-2 .tooltip-content {\n    -webkit-transform-origin: 50% calc(110%);\n    transform-origin: 50% calc(110%);\n    -webkit-transform: perspective(1000px) rotate3d(1, 0, 0, 45deg);\n    transform: perspective(1000px) rotate3d(1, 0, 0, 45deg);\n    -webkit-transition: opacity .2s, -webkit-transform .2s;\n    transition: opacity .2s, transform .2s\n}\n.tooltip-effect-3 .tooltip-content {\n    -webkit-transform: translate3d(0, 10px, 0) rotate3d(1, 1, 0, 25deg);\n    transform: translate3d(0, 10px, 0) rotate3d(1, 1, 0, 25deg);\n    -webkit-transition: opacity .3s, -webkit-transform .3s;\n    transition: opacity .3s, transform .3s\n}\n.tooltip-effect-4 .tooltip-content {\n    -webkit-transform-origin: 50% 100%;\n    transform-origin: 50% 100%;\n    -webkit-transform: scale3d(.7, .3, 1);\n    transform: scale3d(.7, .3, 1);\n    -webkit-transition: opacity .2s, -webkit-transform .2s;\n    transition: opacity .2s, transform .2s\n}\n.tooltip-effect-5 .tooltip-content {\n    width: 180px;\n    margin-left: -90px;\n    -webkit-transform-origin: 50% calc(106%);\n    transform-origin: 50% calc(106%);\n    -webkit-transform: rotate3d(0, 0, 1, 15deg);\n    transform: rotate3d(0, 0, 1, 15deg);\n    -webkit-transition: opacity .2s, -webkit-transform .2s;\n    transition: opacity .2s, transform .2s;\n    -webkit-transition-timing-function: ease, cubic-bezier(.17, .67, .4, 1.39);\n    transition-timing-function: ease, cubic-bezier(.17, .67, .4, 1.39)\n}\n.mytooltip:hover .tooltip-content {\n    pointer-events: auto;\n    opacity: 1;\n    -webkit-transform: translate3d(0, 0, 0) rotate3d(0, 0, 0, 0);\n    transform: translate3d(0, 0, 0) rotate3d(0, 0, 0, 0)\n}\n.tooltip.tooltip-effect-2:hover .tooltip-content {\n    -webkit-transform: perspective(1000px) rotate3d(1, 0, 0, 0deg);\n    transform: perspective(1000px) rotate3d(1, 0, 0, 0deg)\n}\n.tooltip-content::after {\n    content: '';\n    top: 100%;\n    left: 50%;\n    border: solid transparent;\n    height: 0;\n    width: 0;\n    position: absolute;\n    pointer-events: none;\n    border-color: #2a3035 transparent transparent;\n    border-width: 10px;\n    margin-left: -10px\n}\n.tooltip-content img {\n    position: relative;\n    height: 140px;\n    display: block;\n    float: left;\n    margin-right: 1em\n}\n.tooltip-text {\n    font-size: 14px;\n    line-height: 24px;\n    display: block;\n    padding: 1.31em 1.21em 1.21em 0;\n    color: #fff\n}\n.tooltip-effect-5 .tooltip-text {\n    padding: 1.4em\n}\na.mytooltip {\n    font-weight: 500;\n    color: #fb9678\n}\n.tooltip-content2 {\n    position: absolute;\n    z-index: 9999;\n    width: 80px;\n    height: 80px;\n    padding-top: 25px;\n    left: 50%;\n    margin-left: -40px;\n    bottom: 100%;\n    border-radius: 50%;\n    text-align: center;\n    background: #fb9678;\n    color: #fff;\n    opacity: 0;\n    margin-bottom: 20px;\n    cursor: default;\n    pointer-events: none\n}\n.tooltip-content2 i {\n    opacity: 0\n}\n.mytooltip:hover .tooltip-content2,\n.mytooltip:hover .tooltip-content2 i {\n    opacity: 1;\n    font-size: 18px\n}\n.tooltip-effect-6 .tooltip-content2 {\n    -webkit-transform: translate3d(0, 10px, 0) rotate3d(1, 1, 1, 45deg);\n    transform: translate3d(0, 10px, 0) rotate3d(1, 1, 1, 45deg);\n    -webkit-transform-origin: 50% 100%;\n    transform-origin: 50% 100%;\n    -webkit-transition: opacity .3s, -webkit-transform .3s;\n    transition: opacity .3s, transform .3s\n}\n.tooltip-effect-6 .tooltip-content2 i {\n    -webkit-transform: scale3d(0, 0, 1);\n    transform: scale3d(0, 0, 1);\n    -webkit-transition: opacity .3s, -webkit-transform .3s;\n    transition: opacity .3s, transform .3s\n}\n.tooltip-effect-7 .tooltip-content2 {\n    -webkit-transform: translate3d(0, 10px, 0);\n    transform: translate3d(0, 10px, 0);\n    -webkit-transition: opacity .3s, -webkit-transform .3s;\n    transition: opacity .3s, transform .3s\n}\n.tooltip-effect-7 .tooltip-content2 i {\n    -webkit-transform: translate3d(0, 15px, 0);\n    transform: translate3d(0, 15px, 0);\n    -webkit-transition: opacity .3s, -webkit-transform .3s;\n    transition: opacity .3s, transform .3s\n}\n.tooltip-effect-8 .tooltip-content2 {\n    -webkit-transform: translate3d(0, 10px, 0) rotate3d(0, 1, 0, 90deg);\n    transform: translate3d(0, 10px, 0) rotate3d(0, 1, 0, 90deg);\n    -webkit-transform-origin: 50% 100%;\n    transform-origin: 50% 100%;\n    -webkit-transition: opacity .3s, -webkit-transform .3s;\n    transition: opacity .3s, transform .3s\n}\n.tooltip-effect-8 .tooltip-content2 i {\n    -webkit-transform: scale3d(0, 0, 1);\n    transform: scale3d(0, 0, 1);\n    -webkit-transition: opacity .3s, -webkit-transform .3s;\n    transition: opacity .3s, transform .3s\n}\n.tooltip-effect-9 .tooltip-content2 {\n    -webkit-transform: translate3d(0, -20px, 0);\n    transform: translate3d(0, -20px, 0);\n    -webkit-transition: opacity .3s, -webkit-transform .3s;\n    transition: opacity .3s, transform .3s\n}\n.tooltip-effect-9 .tooltip-content2 i {\n    -webkit-transform: translate3d(0, 20px, 0);\n    transform: translate3d(0, 20px, 0);\n    -webkit-transition: opacity .3s, -webkit-transform .3s;\n    transition: opacity .3s, transform .3s\n}\n.mytooltip:hover .tooltip-content2,\n.mytooltip:hover .tooltip-content2 i {\n    pointer-events: auto;\n    -webkit-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);\n    transform: translate3d(0, 0, 0) scale3d(1, 1, 1)\n}\n.tooltip-effect-6:hover .tooltip-content2 i {\n    -webkit-transform: rotate3d(1, 1, 1, 0);\n    transform: rotate3d(1, 1, 1, 0)\n}\n.tooltip-content2::after {\n    content: '';\n    position: absolute;\n    top: 100%;\n    left: 50%;\n    margin: -7px 0 0 -15px;\n    width: 30px;\n    height: 20px;\n    /*background: url(../../plugins/images/tooltip/tooltip1.svg) center center no-repeat;*/\n    background-size: 100%\n}\n.tooltip-content3 {\n    position: absolute;\n    /*background: url(../../plugins/images/tooltip/shape1.svg) center bottom no-repeat;*/\n    background-size: 100% 100%;\n    z-index: 9999;\n    width: 200px;\n    bottom: 100%;\n    left: 50%;\n    margin-left: -100px;\n    padding: 50px 30px;\n    text-align: center;\n    color: #fff;\n    opacity: 0;\n    cursor: default;\n    font-size: 14;\n    line-height: 27px;\n    pointer-events: none;\n    -webkit-transform: scale3d(.1, .2, 1);\n    transform: scale3d(.1, .2, 1);\n    -webkit-transform-origin: 50% 120%;\n    transform-origin: 50% 120%;\n    -webkit-transition: opacity .4s, -webkit-transform .4s;\n    transition: opacity .4s, transform .4s;\n    -webkit-transition-timing-function: ease, cubic-bezier(.6, 0, .4, 1);\n    transition-timing-function: ease, cubic-bezier(.6, 0, .4, 1)\n}\n.mytooltip:hover .tooltip-content3 {\n    opacity: 1;\n    pointer-events: auto;\n    -webkit-transform: scale3d(1, 1, 1);\n    transform: scale3d(1, 1, 1)\n}\n.tooltip-content3::after {\n    content: '';\n    position: absolute;\n    width: 16px;\n    height: 16px;\n    left: 50%;\n    margin-left: -8px;\n    top: 100%;\n    background: #00AEEF;\n    -webkit-transform: translate3d(0, -60%, 0) rotate3d(0, 0, 1, 45deg);\n    transform: translate3d(0, -60%, 0) rotate3d(0, 0, 1, 45deg)\n}\n.tooltip-item2 {\n    color: #03a9f3;\n    cursor: pointer;\n    z-index: 100;\n    position: relative;\n    display: inline-block;\n    font-weight: 500;\n    -webkit-transition: background-color .3s, color .3s, -webkit-transform .3s;\n    transition: background-color .3s, color .3s, transform .3s\n}\n.mytooltip:hover .tooltip-item2 {\n    color: #fff;\n    -webkit-transform: translate3d(0, -.5em, 0);\n    transform: translate3d(0, -.5em, 0)\n}\n.tooltip-content4 {\n    position: absolute;\n    z-index: 99;\n    width: 360px;\n    left: 50%;\n    margin-left: -180px;\n    bottom: -5px;\n    text-align: left;\n    background: #03a9f3;\n    opacity: 0;\n    font-size: 14px;\n    line-height: 27px;\n    padding: 1.5em;\n    color: #fff;\n    border-bottom: 55px solid #2b2b2b;\n    cursor: default;\n    pointer-events: none;\n    border-radius: 5px;\n    -webkit-transform: translate3d(0, -.5em, 0);\n    transform: translate3d(0, -.5em, 0);\n    -webkit-transition: opacity .3s, -webkit-transform .3s;\n    transition: opacity .3s, transform .3s\n}\n.tooltip-content4 a {\n    color: #2b2b2b\n}\n.tooltip-text2 {\n    opacity: 0;\n    -webkit-transform: translate3d(0, 1.5em, 0);\n    transform: translate3d(0, 1.5em, 0);\n    -webkit-transition: opacity .3s, -webkit-transform .3s;\n    transition: opacity .3s, transform .3s\n}\n.mytooltip:hover .tooltip-content4,\n.mytooltip:hover .tooltip-text2 {\n    pointer-events: auto;\n    opacity: 1;\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0)\n}\n.tooltip-content5 {\n    position: absolute;\n    z-index: 9999;\n    width: 300px;\n    left: 50%;\n    bottom: 100%;\n    font-size: 20px;\n    line-height: 1.4;\n    text-align: center;\n    font-weight: 400;\n    color: #fff;\n    background: 0 0;\n    opacity: 0;\n    margin: 0 0 20px -150px;\n    cursor: default;\n    pointer-events: none;\n    -webkit-font-smoothing: antialiased;\n    -webkit-transition: opacity .3s .3s;\n    transition: opacity .3s .3s\n}\n.mytooltip:hover .tooltip-content5 {\n    opacity: 1;\n    pointer-events: auto;\n    -webkit-transition-delay: 0s;\n    transition-delay: 0s\n}\n.tooltip-content5 span {\n    display: block\n}\n.tooltip-text3 {\n    border-bottom: 10px solid #fb9678;\n    overflow: hidden;\n    -webkit-transform: scale3d(0, 1, 1);\n    transform: scale3d(0, 1, 1);\n    -webkit-transition: -webkit-transform .3s .3s;\n    transition: transform .3s .3s\n}\n.mytooltip:hover .tooltip-text3 {\n    -webkit-transition-delay: 0s;\n    transition-delay: 0s;\n    -webkit-transform: scale3d(1, 1, 1);\n    transform: scale3d(1, 1, 1)\n}\n.tooltip-inner2 {\n    background: #2b2b2b;\n    padding: 40px;\n    -webkit-transform: translate3d(0, 100%, 0);\n    transform: translate3d(0, 100%, 0);\n    webkit-transition: -webkit-transform .3s;\n    transition: transform .3s\n}\n.mytooltip:hover .tooltip-inner2 {\n    -webkit-transition-delay: .3s;\n    transition-delay: .3s;\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0)\n}\n.tooltip-content5::after {\n    content: '';\n    bottom: -20px;\n    left: 50%;\n    border: solid transparent;\n    height: 0;\n    width: 0;\n    position: absolute;\n    pointer-events: none;\n    border-color: #fb9678 transparent transparent;\n    border-width: 10px;\n    margin-left: -10px\n}\n@media (max-width: 1350px) {\n    .carousel .item h3 {\n        font-size: 17px;\n        height: 90px\n    }\n    .inbox-center a {\n        width: 400px\n    }\n}\n.search-listing {\n    padding: 0;\n    margin: 0\n}\n.search-listing li {\n    list-style: none;\n    padding: 15px 0;\n    border-bottom: 1px solid rgba(120, 130, 140, .13)\n}\n.search-listing li h3 {\n    margin: 0;\n    font-size: 18px\n}\n.search-listing li h3 a {\n    color: #41b3f9\n}\n.search-listing li h3 a:hover {\n    text-decoration: underline\n}\n.search-listing li a {\n    color: #7ace4c\n}\na.dt-button,\nbutton.dt-button,\ndiv.dt-button {\n    background: #41b3f9;\n    color: #fff;\n    border-color: #41b3f9\n}\na.dt-button:hover,\nbutton.dt-button:hover,\ndiv.dt-button:hover {\n    background: #41b3f9\n}\na.dt-button:hover:not(.disabled),\nbutton.dt-button:hover:not(.disabled),\ndiv.dt-button:hover:not(.disabled) {\n    background: #f7fafc;\n    color: #263238;\n    border-color: rgba(120, 130, 140, .13)\n}\n.dataTables_filter input {\n    border: 1px solid rgba(120, 130, 140, .13)\n}\ntable.dataTable.display tbody tr.even>.sorting_1,\ntable.dataTable.display tbody tr.odd>.sorting_1,\ntable.dataTable.display tbody tr:hover>.sorting_1,\ntable.dataTable.order-column.hover tbody tr:hover>.sorting_1,\ntable.dataTable.order-column.stripe tbody tr.even>.sorting_1,\ntable.dataTable.order-column.stripe tbody tr.odd>.sorting_1 {\n    background: 0 0\n}\n.note-editor {\n    border: 1px solid rgba(120, 130, 140, .13)\n}\n.note-editor .panel-heading {\n    padding: 6px 10px 10px\n}\n.page-aside {\n    position: relative\n}\n.left-aside {\n    position: absolute;\n    background: #fff;\n    border-right: 1px solid rgba(120, 130, 140, .13);\n    padding: 20px;\n    width: 250px;\n    height: 100%\n}\n.right-aside {\n    padding: 20px;\n    margin-left: 250px\n}\n.right-aside .contact-list th {\n    white-space: nowrap\n}\n.right-aside .contact-list td {\n    vertical-align: middle;\n    white-space: nowrap;\n    padding: 25px 10px\n}\n.right-aside .contact-list td img {\n    width: 30px\n}\n.contact-list th {\n    white-space: nowrap\n}\n.contact-list td {\n    vertical-align: middle;\n    padding: 25px 10px;\n    white-space: nowrap\n}\n.contact-list td img {\n    width: 30px\n}\n.list-style-none {\n    margin: 0;\n    padding: 0\n}\n.list-style-none li {\n    list-style: none;\n    margin: 0\n}\n.list-style-none li.box-label a {\n    font-weight: 500\n}\n.list-style-none li.divider {\n    margin: 10px 0;\n    height: 1px;\n    background: rgba(120, 130, 140, .13)\n}\n.list-style-none li a {\n    padding: 15px 10px;\n    display: block;\n    color: #313131\n}\n.list-style-none li a:hover {\n    color: #2cabe3\n}\n.list-style-none li a span {\n    float: right\n}\n.chat-main-box {\n    position: relative;\n    background: #fff;\n    overflow: hidden\n}\n.chat-main-box .chat-left-aside {\n    position: absolute;\n    width: 250px;\n    z-index: 9;\n    top: 0;\n    border-right: 1px solid rgba(120, 130, 140, .13)\n}\n.chat-main-box .chat-left-aside .open-panel {\n    display: none;\n    cursor: pointer;\n    position: absolute;\n    left: -webkit-calc(99%);\n    top: 50%;\n    z-index: 100;\n    background-color: #fff;\n    -webkit-box-shadow: 1px 0 3px rgba(0, 0, 0, .2);\n    box-shadow: 1px 0 3px rgba(0, 0, 0, .2);\n    border-radius: 0 100px 100px 0;\n    line-height: 1;\n    padding: 15px 8px 15px 4px\n}\n.chat-main-box .chat-left-aside .chat-left-inner .form-control {\n    height: 60px\n}\n.chat-main-box .chat-left-aside .chat-left-inner .style-none {\n    padding: 0\n}\n.chat-main-box .chat-left-aside .chat-left-inner .style-none li {\n    list-style: none;\n    overflow: hidden\n}\n.chat-main-box .chat-left-aside .chat-left-inner .style-none li a {\n    padding: 20px\n}\n.chat-main-box .chat-left-aside .chat-left-inner .style-none li a.active,\n.chat-main-box .chat-left-aside .chat-left-inner .style-none li a:hover {\n    background: #f7fafc\n}\n.chat-main-box .chat-right-aside {\n    margin-left: 250px\n}\n.chat-main-box .chat-right-aside .chat-list {\n    max-height: none;\n    height: 100%;\n    padding-top: 40px\n}\n.chat-main-box .chat-right-aside .chat-list .chat-text {\n    border-radius: 6px\n}\n.chat-main-box .chat-right-aside .send-chat-box {\n    position: relative\n}\n.chat-main-box .chat-right-aside .send-chat-box .form-control {\n    border: none;\n    border-top: 1px solid rgba(120, 130, 140, .13);\n    resize: none;\n    height: 80px;\n    padding-right: 180px\n}\n.chat-main-box .chat-right-aside .send-chat-box .form-control:focus {\n    border-color: rgba(120, 130, 140, .13)\n}\n.chat-main-box .chat-right-aside .send-chat-box .custom-send {\n    position: absolute;\n    right: 20px;\n    bottom: 10px\n}\n.chat-main-box .chat-right-aside .send-chat-box .custom-send .cst-icon {\n    color: #313131;\n    margin-right: 10px\n}\n.el-element-overlay .white-box {\n    padding: 0\n}\n.el-element-overlay .el-card-item {\n    position: relative;\n    padding-bottom: 25px\n}\n.el-element-overlay .el-card-item .el-card-avatar {\n    margin-bottom: 15px\n}\n.el-element-overlay .el-card-item .el-card-content {\n    text-align: center\n}\n.el-element-overlay .el-card-item .el-card-content h3 {\n    margin: 0\n}\n.el-element-overlay .el-card-item .el-card-content a {\n    color: #313131\n}\n.el-element-overlay .el-card-item .el-card-content a:hover {\n    color: #2cabe3\n}\n.el-element-overlay .el-card-item .el-overlay-1 {\n    width: 100%;\n    height: 100%;\n    overflow: hidden;\n    position: relative;\n    text-align: center;\n    cursor: default\n}\n.el-element-overlay .el-card-item .el-overlay-1 img {\n    display: block;\n    position: relative;\n    -webkit-transition: all .4s linear;\n    transition: all .4s linear;\n    width: 100%;\n    height: auto\n}\n.el-element-overlay .el-card-item .el-overlay-1:hover img {\n    -ms-transform: scale(1.2) translateZ(0);\n    -webkit-transform: scale(1.2) translateZ(0)\n}\n.el-element-overlay .el-card-item .el-overlay-1 .el-info {\n    text-decoration: none;\n    display: inline-block;\n    text-transform: uppercase;\n    color: #fff;\n    background-color: transparent;\n    filter: alpha(opacity=0);\n    -webkit-transition: all .2s ease-in-out;\n    transition: all .2s ease-in-out;\n    padding: 0;\n    margin: auto;\n    position: absolute;\n    top: 50%;\n    left: 0;\n    right: 0;\n    transform: translateY(-50%) translateZ(0);\n    -webkit-transform: translateY(-50%) translateZ(0);\n    -ms-transform: translateY(-50%) translateZ(0)\n}\n.el-element-overlay .el-card-item .el-overlay-1 .el-info>li {\n    list-style: none;\n    display: inline-block;\n    margin: 0 3px\n}\n.el-element-overlay .el-card-item .el-overlay-1 .el-info>li a {\n    border-color: #fff;\n    color: #fff;\n    padding: 12px 15px 10px\n}\n.el-element-overlay .el-card-item .el-overlay-1 .el-info>li a:hover {\n    background: #f33155;\n    border-color: #f33155\n}\n.el-element-overlay .el-card-item .el-overlay {\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    overflow: hidden;\n    top: 0;\n    left: 0;\n    opacity: 0;\n    background-color: rgba(0, 0, 0, .7);\n    -webkit-transition: all .4s ease-in-out;\n    transition: all .4s ease-in-out\n}\n.el-element-overlay .el-card-item .el-overlay-1:hover .el-overlay {\n    opacity: 1;\n    filter: alpha(opacity=100);\n    -webkit-transform: translateZ(0);\n    -ms-transform: translateZ(0);\n    transform: translateZ(0)\n}\n.el-element-overlay .el-card-item .el-overlay-1 .scrl-dwn {\n    top: -100%\n}\n.el-element-overlay .el-card-item .el-overlay-1 .scrl-up {\n    top: 100%;\n    height: 0\n}\n.el-element-overlay .el-card-item .el-overlay-1:hover .scrl-dwn {\n    top: 0\n}\n.el-element-overlay .el-card-item .el-overlay-1:hover .scrl-up {\n    top: 0;\n    height: 100%\n}\n.login-sidebar {\n    position: absolute;\n    right: 0;\n    margin-top: 0;\n    height: 100%\n}\n.color-table.primary-table thead th {\n    background-color: #7460ee;\n    color: #fff\n}\n.color-table.success-table thead th {\n    background-color: #7ace4c;\n    color: #fff\n}\n.color-table.info-table thead th {\n    background-color: #41b3f9;\n    color: #fff\n}\n.color-table.warning-table thead th {\n    background-color: #fb4;\n    color: #fff\n}\n.color-table.danger-table thead th {\n    background-color: #f33155;\n    color: #fff\n}\n.color-table.inverse-table thead th {\n    background-color: #4c5667;\n    color: #fff\n}\n.color-table.dark-table thead th {\n    background-color: #263238;\n    color: #fff\n}\n.color-table.red-table thead th {\n    background-color: #f33155;\n    color: #fff\n}\n.color-table.purple-table thead th {\n    background-color: #707cd2;\n    color: #fff\n}\n.color-table.muted-table thead th {\n    background-color: #98a6ad;\n    color: #fff\n}\n.color-bordered-table.primary-bordered-table {\n    border: 2px solid #7460ee\n}\n.color-bordered-table.primary-bordered-table thead th {\n    background-color: #7460ee;\n    color: #fff\n}\n.color-bordered-table.success-bordered-table {\n    border: 2px solid #7ace4c\n}\n.color-bordered-table.success-bordered-table thead th {\n    background-color: #7ace4c;\n    color: #fff\n}\n.color-bordered-table.info-bordered-table {\n    border: 2px solid #41b3f9\n}\n.color-bordered-table.info-bordered-table thead th {\n    background-color: #41b3f9;\n    color: #fff\n}\n.color-bordered-table.warning-bordered-table {\n    border: 2px solid #fb4\n}\n.color-bordered-table.warning-bordered-table thead th {\n    background-color: #fb4;\n    color: #fff\n}\n.color-bordered-table.danger-bordered-table {\n    border: 2px solid #f33155\n}\n.color-bordered-table.danger-bordered-table thead th {\n    background-color: #f33155;\n    color: #fff\n}\n.color-bordered-table.inverse-bordered-table {\n    border: 2px solid #4c5667\n}\n.color-bordered-table.inverse-bordered-table thead th {\n    background-color: #4c5667;\n    color: #fff\n}\n.color-bordered-table.dark-bordered-table {\n    border: 2px solid #263238\n}\n.color-bordered-table.dark-bordered-table thead th {\n    background-color: #263238;\n    color: #fff\n}\n.color-bordered-table.red-bordered-table {\n    border: 2px solid #f33155\n}\n.color-bordered-table.red-bordered-table thead th {\n    background-color: #f33155;\n    color: #fff\n}\n.color-bordered-table.purple-bordered-table {\n    border: 2px solid #707cd2\n}\n.color-bordered-table.purple-bordered-table thead th {\n    background-color: #707cd2;\n    color: #fff\n}\n.color-bordered-table.muted-bordered-table {\n    border: 2px solid #98a6ad\n}\n.color-bordered-table.muted-bordered-table thead th {\n    background-color: #98a6ad;\n    color: #fff\n}\n.full-color-table.full-primary-table {\n    background-color: rgba(171, 140, 228, .8)\n}\n.full-color-table.full-primary-table thead th {\n    background-color: #7460ee;\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-primary-table tbody td {\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-primary-table tr:hover {\n    background-color: #7460ee\n}\n.full-color-table.full-success-table {\n    background-color: rgba(0, 194, 146, .8)\n}\n.full-color-table.full-success-table thead th {\n    background-color: #7ace4c;\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-success-table tbody td {\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-success-table tr:hover {\n    background-color: #7ace4c\n}\n.full-color-table.full-info-table {\n    background-color: rgba(3, 169, 243, .8)\n}\n.full-color-table.full-info-table thead th {\n    background-color: #41b3f9;\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-info-table tbody td {\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-info-table tr:hover {\n    background-color: #41b3f9\n}\n.full-color-table.full-warning-table {\n    background-color: rgba(254, 193, 7, .8)\n}\n.full-color-table.full-warning-table thead th {\n    background-color: #fb4;\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-warning-table tbody td {\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-warning-table tr:hover {\n    background-color: #fb4\n}\n.full-color-table.full-danger-table {\n    background-color: rgba(251, 150, 120, .8)\n}\n.full-color-table.full-danger-table thead th {\n    background-color: #f33155;\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-danger-table tbody td {\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-danger-table tr:hover {\n    background-color: #f33155\n}\n.full-color-table.full-inverse-table {\n    background-color: rgba(76, 86, 103, .8)\n}\n.full-color-table.full-inverse-table thead th {\n    background-color: #4c5667;\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-inverse-table tbody td {\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-inverse-table tr:hover {\n    background-color: #4c5667\n}\n.full-color-table.full-dark-table {\n    background-color: rgba(43, 43, 43, .8)\n}\n.full-color-table.full-dark-table thead th {\n    background-color: #263238;\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-dark-table tbody td {\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-dark-table tr:hover {\n    background-color: #263238\n}\n.full-color-table.full-red-table {\n    background-color: rgba(251, 58, 58, .8)\n}\n.full-color-table.full-red-table thead th {\n    background-color: #f33155;\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-red-table tbody td {\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-red-table tr:hover {\n    background-color: #f33155\n}\n.full-color-table.full-purple-table {\n    background-color: rgba(150, 117, 206, .8)\n}\n.full-color-table.full-purple-table thead th {\n    background-color: #707cd2;\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-purple-table tbody td {\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-purple-table tr:hover {\n    background-color: #707cd2\n}\n.full-color-table.full-muted-table {\n    background-color: rgba(152, 166, 173, .8)\n}\n.full-color-table.full-muted-table thead th {\n    background-color: #98a6ad;\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-muted-table tbody td {\n    border: 0!important;\n    color: #fff\n}\n.full-color-table.full-muted-table tr:hover {\n    background-color: #98a6ad\n}\n.floating-labels .form-group {\n    position: relative\n}\n.floating-labels .form-control {\n    font-size: 20px;\n    padding: 10px 10px 10px 0;\n    display: block;\n    border: none;\n    border-bottom: 1px solid #e4e7ea\n}\n.floating-labels select.form-control>option {\n    font-size: 14px\n}\n.has-error .form-control {\n    border-bottom: 1px solid #f33155\n}\n.has-warning .form-control {\n    border-bottom: 1px solid #fb4\n}\n.has-success .form-control {\n    border-bottom: 1px solid #7ace4c\n}\n.floating-labels .form-control:focus {\n    outline: 0;\n    border: none\n}\n.floating-labels label {\n    color: #313131;\n    font-size: 16px;\n    position: absolute;\n    cursor: auto;\n    font-weight: 400;\n    top: 10px;\n    transition: .2s ease all;\n    -moz-transition: .2s ease all;\n    -webkit-transition: .2s ease all\n}\n.floating-labels .form-control:focus~label,\n.floating-labels .form-control:valid~label {\n    top: -20px;\n    font-size: 12px;\n    color: #7460ee\n}\n.floating-labels .bar {\n    position: relative;\n    display: block\n}\n.floating-labels .bar:after,\n.floating-labels .bar:before {\n    content: '';\n    height: 2px;\n    width: 0;\n    bottom: 1px;\n    position: absolute;\n    background: #7460ee;\n    transition: .2s ease all;\n    -moz-transition: .2s ease all;\n    -webkit-transition: .2s ease all\n}\n.floating-labels .bar:before {\n    left: 50%\n}\n.floating-labels .bar:after {\n    right: 50%\n}\n.floating-labels .form-control:focus~.bar:after,\n.floating-labels .form-control:focus~.bar:before {\n    width: 50%\n}\n.floating-labels .highlight {\n    position: absolute;\n    height: 60%;\n    width: 100px;\n    top: 25%;\n    left: 0;\n    pointer-events: none;\n    opacity: .5\n}\n.floating-labels .input-lg,\n.floating-labels .input-lg~label {\n    font-size: 24px\n}\n.floating-labels .input-sm,\n.floating-labels .input-sm~label {\n    font-size: 16px\n}\n.has-warning .bar:after,\n.has-warning .bar:before {\n    background: #fb4\n}\n.has-success .bar:after,\n.has-success .bar:before {\n    background: #7ace4c\n}\n.has-error .bar:after,\n.has-error .bar:before {\n    background: #f33155\n}\n.has-warning .form-control:focus~label,\n.has-warning .form-control:valid~label {\n    color: #fb4\n}\n.has-success .form-control:focus~label,\n.has-success .form-control:valid~label {\n    color: #7ace4c\n}\n.has-error .form-control:focus~label,\n.has-error .form-control:valid~label {\n    color: #f33155\n}\n.has-feedback label~.t-0 {\n    top: 0\n}\n.table.dataTable,\ntable.dataTable {\n    width: 99.8%!important\n}\ntable.dataTable thead .sorting::after,\ntable.dataTable thead .sorting_asc::after,\ntable.dataTable thead .sorting_desc::after {\n    float: none;\n    padding-left: 10px\n}\n.re ul.two-part li i,\n.re ul.two-part li span {\n    font-size: 36px\n}\n.bg-light h4 {\n    font-weight: 700\n}\n.agent-contact,\n.pro-desc {\n    font-size: 12px\n}\n.form-agent-inq .form-group {\n    margin-bottom: 10px\n}\n.agent-info {\n    max-height: 358px;\n    height: 358px;\n    background: #f7fafc\n}\n.pro-list {\n    margin-top: 15px\n}\n.pro-detail,\n.pro-img {\n    display: table-cell;\n    vertical-align: top\n}\n.pro-detail h5 a {\n    color: #313131;\n    line-height: 20px;\n    font-weight: 500\n}\n.pro-box .pro-list-img {\n    display: block;\n    height: 210px;\n    position: relative;\n    overflow: hidden\n}\n.pro-box .pro-label {\n    position: absolute;\n    text-transform: uppercase;\n    top: 0;\n    right: 0;\n    border-radius: 2px;\n    padding: 5px;\n    font-size: 80%\n}\n.pro-col-label {\n    padding: 7px;\n    width: 26%;\n    display: block;\n    margin-top: -15px;\n    margin-left: 37%;\n    border: 1px solid rgba(120, 130, 140, .13);\n    text-transform: uppercase\n}\n.pro-box .pro-label-img {\n    position: absolute;\n    top: 30px;\n    right: 30px\n}\n.pro-box.pro-horizontal pro-content {\n    width: 100%;\n    height: 210px\n}\n.pro-content .pro-list-details {\n    height: 138px;\n    max-height: 142px;\n    border-bottom: 1px solid rgba(120, 130, 140, .13);\n    border-right: 1px solid rgba(120, 130, 140, .13)\n}\n.pro-content .pro-list-info {\n    border-bottom: 1px solid rgba(120, 130, 140, .13)\n}\n.pro-agent .agent-name h5,\n.pro-agent .agent-name small,\n.pro-agent-col-3 .agent-name h5,\n.pro-agent-col-3 .agent-name small,\n.pro-content .pro-list-details h3,\n.pro-content .pro-list-details h4,\n.pro-content-3-col .pro-list-details h3,\n.pro-content-3-col .pro-list-details h4,\n.pro-content-3-col .pro-list-details h4 small,\n.pro-list-info ul.pro-info li,\n.pro-list-info-3-col ul.pro-info li,\n.pro-location span,\nul.pro-info li span.label {\n    font-weight: 500\n}\n.pro-list-info ul.pro-info,\n.pro-list-info-3-col ul.pro-info {\n    padding: 16px 10px 10px;\n    list-style: none\n}\n.pro-list-info ul.pro-info li {\n    padding: 10px 0 10px 20px;\n    font-size: 12px\n}\nul.pro-info li span.label {\n    width: 25px;\n    height: 25px;\n    padding: 8px;\n    border-radius: 50%;\n    margin-top: -4px;\n    margin-right: 15px;\n    font-size: 12px\n}\nul.pro-amenities li span img,\nul.pro-info li span img {\n    margin-top: -8px;\n    padding-right: 12px\n}\n.pro-agent .agent-img a img,\n.pro-agent-col-3 .agent-img a img {\n    border: 3px solid #fff;\n    box-shadow: 1px 1px 1px rgba(120, 130, 140, .13)\n}\n.pro-agent .agent-img,\n.pro-agent .agent-name,\n.pro-agent-col-3 .agent-img,\n.pro-agent-col-3 .agent-name {\n    float: left\n}\n.pro-agent .agent-img {\n    padding-top: 12px\n}\n.pro-agent .agent-name {\n    padding: 10px 0 0 15px\n}\n.pro-location span {\n    padding-top: 27px\n}\n.pro-content-3-col {\n    padding: 15px;\n    background: #f7fafc\n}\n.pro-content-3-col .pro-list-details h4 small {\n    color: #f33155\n}\n.pro-list-info-3-col ul.pro-info li {\n    padding: 10px 5px\n}\n.pro-agent-col-3 .agent-img {\n    padding: 15px\n}\n.pro-agent-col-3 .agent-name {\n    padding: 15px 15px 15px 5px\n}\nul.pro-amenities {\n    list-style: none;\n    padding: 8px 0\n}\nul.pro-amenities li {\n    padding: 10px 0;\n    font-size: 12px\n}\nul.pro-amenities li span i {\n    padding-right: 12px\n}\n.pro-rd .table>tbody>tr>td:first-child {\n    font-weight: 500\n}\n.pro-rd .table>tbody>tr>td,\n.pro-rd .table>tbody>tr>th {\n    border: none;\n    padding: 8px 8px 8px 0;\n    font-size: 12px\n}\n.pd-agent-info {\n    max-height: 200px;\n    height: 200px;\n    background: #f7fafc;\n    margin-top: 15px\n}\n.pd-agent-contact,\n.pd-agent-inq {\n    padding: 25px\n}\n.pro-add-form .checkbox label,\n.pro-add-form .radio label {\n    font-weight: 100\n}\n.plugin-details {\n    display: none\n}\n.plugin-details-active {\n    display: block\n}\n.register-box {\n    max-width: 600px;\n    margin: 0 auto;\n    padding-top: 2%\n}\n.step-register {\n    position: absolute;\n    height: 100%\n}\n.material-icon-list-demo .icons div {\n    width: 33%;\n    padding: 15px;\n    display: inline-block;\n    line-height: 40px\n}\n.material-icon-list-demo .icons div i {\n    font-size: 24px;\n    vertical-align: middle;\n    margin-right: 10px\n}\n.material-icon-list-demo .icons div:hover {\n    background: #f7fafc\n}\n.full-width {\n    display: inline-block;\n    width: 100%;\n    height: auto\n}\n@media (max-width: 1680px) {\n    .weather-with-bg .wt-counter li {\n        padding: 10px 1px\n    }\n}\n@media (max-width: 1460px) {\n    .weather-with-bg .wt-counter li {\n        padding: 10px 0\n    }\n    .weather-with-bg .wt-counter li a {\n        min-width: 38px;\n        margin-bottom: 7px;\n        height: 43px;\n        padding: 10px\n    }\n}\n@media (max-width: 1350px) {\n    .carousel .item h3 {\n        font-size: 17px;\n        height: 90px\n    }\n    .inbox-center a {\n        width: 400px\n    }\n    .new-login-register .lg-info-panel {\n        width: 450px\n    }\n    .new-login-register .new-login-box {\n        margin-left: 500px\n    }\n}\n@media (min-width: 1170px) {\n    .app-search .form-control:focus {\n        width: 300px\n    }\n    .hide-sidebar .top-left-part {\n        width: auto\n    }\n    .hide-sidebar .top-left-part .logo span {\n        display: none\n    }\n    .hide-sidebar .sidebar {\n        left: -240px;\n        transition: .5s ease-out\n    }\n    .hide-sidebar #page-wrapper {\n        margin-left: 0\n    }\n    .hide-sidebar .footer {\n        left: 0\n    }\n}\n@media (min-width: 768px) {\n    #page-wrapper {\n        position: inherit;\n        margin: 0 0 0 240px\n    }\n    .navbar-default {\n        position: relative;\n        width: 100%;\n        top: 0\n    }\n    .sidebar {\n        z-index: 1001;\n        position: fixed;\n        width: 240px;\n        padding-top: 0;\n        height: 100%;\n        transition: .05s ease-in\n    }\n    .sidebar:hover {\n        width: 240px\n    }\n    .fix-header .navbar-static-top {\n        position: fixed;\n        z-index: 1010\n    }\n    .fix-header #page-wrapper {\n        margin-top: 60px\n    }\n}\n.navbar-top-links .dropdown-alerts,\n.navbar-top-links .dropdown-messages,\n.navbar-top-links .dropdown-tasks {\n    margin-left: auto\n}\n.mail_listing {\n    border-left: 1px solid rgba(120, 130, 140, .13);\n    padding-left: 20px\n}\n.inbox-panel {\n    padding-right: 20px\n}\n.top-minus {\n    margin-top: -62px;\n    float: right\n}\n@media (max-width: 1170px) {\n    .content-wrapper .sidebar {\n        left: -240px\n    }\n    .content-wrapper #page-wrapper {\n        margin-left: 0\n    }\n    .content-wrapper .footer,\n    .content-wrapper.show-sidebar .sidebar {\n        left: 0\n    }\n    .col-in {\n        padding: 15px 0\n    }\n    .col-in li.col-middle {\n        width: 100%\n    }\n}\n@media (max-width: 1023px) {\n    .b-r-none {\n        border-right: 0\n    }\n    .carousel-inner h3 {\n        height: 90px;\n        overflow: hidden\n    }\n    .inbox-center a {\n        width: 300px\n    }\n    .new-login-register .lg-info-panel {\n        display: none\n    }\n    .new-login-register .new-login-box {\n        margin: 10% auto 0\n    }\n}\n@media (max-width: 767px) {\n    .navbar-top-links {\n        float: left\n    }\n    .navbar-top-links .profile-pic img {\n        margin-right: 0\n    }\n    .top-left-part {\n        width: 60px\n    }\n    .navbar-top-links>li:last-child {\n        margin-right: 0\n    }\n    .navbar-top-links>li>a {\n        padding: 0 12px\n    }\n    .navbar-top-links .dropdown-alerts,\n    .navbar-top-links .dropdown-messages,\n    .navbar-top-links .dropdown-tasks {\n        width: 260px\n    }\n    .show-sidebar .sidebar {\n        width: 240px;\n        top: 0\n    }\n    .show-sidebar .sidebar .hide-menu {\n        display: inline\n    }\n    .show-sidebar .sidebar .nav-small-cap {\n        display: block\n    }\n    .show-sidebar .sidebar .sidebar-head {\n        width: 240px;\n        display: block\n    }\n    .sidebar {\n        z-index: 1001;\n        position: fixed;\n        width: 0;\n        padding-top: 0;\n        height: 100%\n    }\n    .sidebar-head {\n        width: 0;\n        display: none\n    }\n    #page-wrapper {\n        margin: 0\n    }\n    .row-in-br {\n        border-right: 0;\n        border-bottom: 1px solid rgba(120, 130, 140, .13)\n    }\n    .bg-title .breadcrumb {\n        float: left;\n        margin-top: 0;\n        margin-bottom: 10px\n    }\n    ul.timeline:before {\n        left: 40px\n    }\n    ul.timeline>li>.timeline-panel {\n        width: calc(100% - 90px)\n    }\n    ul.timeline>li>.timeline-badge {\n        top: 16px;\n        left: 15px;\n        margin-left: 0\n    }\n    ul.timeline>li>.timeline-panel {\n        float: right\n    }\n    ul.timeline>li>.timeline-panel:before {\n        right: auto;\n        left: -15px;\n        border-right-width: 15px;\n        border-left-width: 0\n    }\n    ul.timeline>li>.timeline-panel:after {\n        right: auto;\n        left: -14px;\n        border-right-width: 14px;\n        border-left-width: 0\n    }\n    .wizard-steps>li {\n        display: block\n    }\n    .dropdown .dropdown-tasks,\n    .dropdown .mailbox {\n        left: -94px\n    }\n    .fix-header .navbar-static-top {\n        position: fixed;\n        top: 0;\n        width: 100%\n    }\n    .fix-header #page-wrapper {\n        margin-top: 60px\n    }\n    .mega-dropdown-menu {\n        height: 340px;\n        overflow: auto\n    }\n    .left-aside {\n        position: relative;\n        width: 100%;\n        border: 0\n    }\n    .right-aside {\n        margin-left: 0\n    }\n    .chat-main-box .chat-left-aside {\n        left: -250px;\n        transition: .5s ease-in;\n        background: #fff\n    }\n    .chat-main-box .chat-left-aside.open-pnl {\n        left: 0\n    }\n    .chat-main-box .chat-left-aside .open-panel {\n        display: block\n    }\n    .chat-main-box .chat-right-aside {\n        margin: 0\n    }\n    .table-responsive.pro-rd {\n        border: none\n    }\n    #msform fieldset,\n    .login-register,\n    .step-register {\n        position: relative\n    }\n    .mega-dropdown-menu {\n        padding-left: 20px\n    }\n    .calendar-widget .cal-left {\n        position: relative;\n        width: 100%\n    }\n    .calendar-widget .cal-left .cal-btm-text {\n        position: relative;\n        bottom: 0;\n        padding-top: 30px\n    }\n    .calendar-widget .cal-right {\n        width: 100%\n    }\n    .calendar-widget .cal-right .cal-table td {\n        padding: 15px 0\n    }\n    .calendar-widget .cal-right .cal-table td h1 {\n        padding-left: 20px\n    }\n    .error-body h1 {\n        font-size: 80px;\n        line-height: 100px\n    }\n    .weather-with-bg .wt-top .wt-img h1 {\n        font-size: 24px;\n        line-height: 24px\n    }\n    .manage-table {\n        margin: 0\n    }\n    .dp-table img {\n        width: 50px\n    }\n    .earning-box li .er-row .er-text {\n        width: 37%\n    }\n    .earning-box li .er-row .er-count {\n        font-size: 24px\n    }\n    .sidebar .nav-second-level li a,\n    .sidebar:hover .nav-second-level li a {\n        padding-left: 40px\n    }\n    .sidebar .nav-third-level li a,\n    .sidebar:hover .nav-third-level li a {\n        padding-left: 60px\n    }\n}\n@media (max-width: 480px) {\n    .vtabs .tabs-vertical {\n        width: auto\n    }\n    .stat-item {\n        padding-right: 0\n    }\n    .login-box {\n        width: 100%\n    }\n    .pro-content .pro-list-details {\n        height: 100px;\n        border-right: none\n    }\n    .pro-list-info ul.pro-info li {\n        padding: 10px 0\n    }\n    .pro-list-info ul.pro-info {\n        padding-left: 0\n    }\n    .pro-agent .agent-img {\n        padding-top: 3px\n    }\n    .pro-agent .agent-name {\n        padding: 2px 0 10px 15px\n    }\n    .new-login-register .lg-info-panel {\n        display: none\n    }\n    .new-login-register .new-login-box {\n        margin: 10% auto 0;\n        width: 300px\n    }\n}\n\n.currency-logo-sprite {\n    margin-right: 8px;\n    margin-top: 1px;\n    float: left;\n}\n"
  },
  {
    "path": "templates/dashboard_assets/js/custom.js",
    "content": "/*jslint browser: true*/\n/*global $, jQuery, alert*/\n\n$(document).ready(function () {\n\n  'use strict'\n\n  var body = $('body')\n\n  $(function () {\n    $('.preloader').fadeOut()\n  })\n\n  /* ===========================================================\n      Loads the correct sidebar on window load.\n      collapses the sidebar on window resize.\n      Sets the min-height of #page-wrapper to window size.\n  =========================================================== */\n\n  $(function () {\n    var set = function () {\n        var topOffset = 60,\n          width = (window.innerWidth > 0) ? window.innerWidth : this.screen.width,\n          height = ((window.innerHeight > 0) ? window.innerHeight : this.screen.height) - 1\n\n\n\n        /* ===== This is for resizing window ===== */\n\n        if (width < 1170) {\n          body.addClass('content-wrapper')\n          $('.sidebar-nav, .slimScrollDiv').css('overflow-x', 'visible').parent().css('overflow', 'visible')\n        } else {\n          body.removeClass('content-wrapper')\n        }\n\n        height = height - topOffset\n        if (height < 1) {\n          height = 1\n        }\n        if (height > topOffset) {\n          $('#page-wrapper').css('min-height', (height) + 'px')\n        }\n      },\n      url = window.location,\n      element = $('ul.nav a').filter(function () {\n        return this.href === url || url.href.indexOf(this.href) === 0\n      }).addClass('active').parent().parent().addClass('in').parent()\n    if (element.is('li')) {\n      element.addClass('active')\n    }\n    $(window).ready(set)\n    $(window).bind('resize', set)\n  })\n\n\n  /* ===== Tooltip Initialization ===== */\n\n  $(function () {\n    $('[data-toggle=\"tooltip\"]').tooltip()\n  })\n\n  /* ===== Popover Initialization ===== */\n\n  $(function () {\n    $('[data-toggle=\"popover\"]').popover()\n  })\n\n  /* ===== Task Initialization ===== */\n\n  $('.list-task li label').on('click', function () {\n    $(this).toggleClass('task-done')\n  })\n  $('.settings_box a').on('click', function () {\n    $('ul.theme_color').toggleClass('theme_block')\n  })\n\n  /* ===== Collepsible Toggle ===== */\n\n  $('.collapseble').on('click', function () {\n    $('.collapseblebox').fadeToggle(350)\n  })\n\n  /* ===== Sidebar ===== */\n\n  $('.slimscrollright').slimScroll({\n    height: '100%',\n    position: 'right',\n    size: '5px',\n    color: '#dcdcdc'\n  })\n  $('.slimscrollsidebar').slimScroll({\n    height: '100%',\n    position: 'right',\n    size: '6px',\n    color: 'rgba(0,0,0,0.3)'\n  })\n\n  /* ===== Resize all elements ===== */\n\n  body.trigger('resize')\n\n  /* ===== Visited ul li ===== */\n\n  $('.visited li a').on('click', function (e) {\n    $('.visited li').removeClass('active')\n    var $parent = $(this).parent()\n    if (!$parent.hasClass('active')) {\n      $parent.addClass('active')\n    }\n    e.preventDefault()\n  })\n\n  /* ===== Login and Recover Password ===== */\n\n  $('#to-recover').on('click', function () {\n    $('#loginform').slideUp()\n    $('#recoverform').fadeIn()\n  })\n\n  /* =================================================================\n      Update 1.5\n      this is for close icon when navigation open in mobile view\n  ================================================================= */\n\n  $('.navbar-toggle').on('click', function () {\n    $('.navbar-toggle i').toggleClass('ti-menu').addClass('ti-close')\n  })\n})\n"
  },
  {
    "path": "templates/dashboard_assets/js/jquery.slimscroll.js",
    "content": "!function(e){e.fn.extend({slimScroll:function(i){var o={width:'auto',height:'250px',size:'7px',color:'#000',position:'right',distance:'1px',start:'top',opacity:.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:'#333',railOpacity:.2,railDraggable:!0,railClass:'slimScrollRail',barClass:'slimScrollBar',wrapperClass:'slimScrollDiv',allowPageScroll:!1,wheelStep:20,touchScrollStep:200,borderRadius:'7px',railBorderRadius:'7px'},s=e.extend(o,i);return this.each(function(){function o(t){if(h){var t=t||window.event,i=0;t.wheelDelta&&(i=-t.wheelDelta/120),t.detail&&(i=t.detail/3);var o=t.target||t.srcTarget||t.srcElement;e(o).closest('.'+s.wrapperClass).is(x.parent())&&r(i,!0),t.preventDefault&&!y&&t.preventDefault(),y||(t.returnValue=!1)}}function r(e,t,i){y=!1;var o=e,r=x.outerHeight()-R.outerHeight();if(t&&(o=parseInt(R.css('top'))+e*parseInt(s.wheelStep)/100*R.outerHeight(),o=Math.min(Math.max(o,0),r),o=e>0?Math.ceil(o):Math.floor(o),R.css({top:o+'px'})),v=parseInt(R.css('top'))/(x.outerHeight()-R.outerHeight()),o=v*(x[0].scrollHeight-x.outerHeight()),i){o=e;var a=o/x[0].scrollHeight*x.outerHeight();a=Math.min(Math.max(a,0),r),R.css({top:a+'px'})}x.scrollTop(o),x.trigger('slimscrolling',~~o),n(),c()}function a(e){window.addEventListener?(e.addEventListener('DOMMouseScroll',o,!1),e.addEventListener('mousewheel',o,!1)):document.attachEvent('onmousewheel',o)}function l(){f=Math.max(x.outerHeight()/x[0].scrollHeight*x.outerHeight(),m),R.css({height:f+'px'});var e=f==x.outerHeight()?'none':'block';R.css({display:e})}function n(){if(l(),clearTimeout(p),v==~~v){if(y=s.allowPageScroll,b!=v){var e=0==~~v?'top':'bottom';x.trigger('slimscroll',e)}}else y=!1;return b=v,f>=x.outerHeight()?void(y=!0):(R.stop(!0,!0).fadeIn('fast'),void(s.railVisible&&E.stop(!0,!0).fadeIn('fast')))}function c(){s.alwaysVisible||(p=setTimeout(function(){s.disableFadeOut&&h||u||d||(R.fadeOut('slow'),E.fadeOut('slow'))},1e3))}var h,u,d,p,g,f,v,b,w='<div></div>',m=30,y=!1,x=e(this);if(x.parent().hasClass(s.wrapperClass)){var C=x.scrollTop();if(R=x.closest('.'+s.barClass),E=x.closest('.'+s.railClass),l(),e.isPlainObject(i)){if('height'in i&&'auto'==i.height){x.parent().css('height','auto'),x.css('height','auto');var H=x.parent().parent().height();x.parent().css('height',H),x.css('height',H)}if('scrollTo'in i)C=parseInt(s.scrollTo);else if('scrollBy'in i)C+=parseInt(s.scrollBy);else if('destroy'in i)return R.remove(),E.remove(),void x.unwrap();r(C,!1,!0)}}else if(!(e.isPlainObject(i)&&'destroy'in i)){s.height='auto'==s.height?x.parent().height():s.height;var S=e(w).addClass(s.wrapperClass).css({position:'relative',overflow:'hidden',width:s.width,height:s.height});x.css({overflow:'hidden',width:s.width,height:s.height});var E=e(w).addClass(s.railClass).css({width:s.size,height:'100%',position:'absolute',top:0,display:s.alwaysVisible&&s.railVisible?'block':'none','border-radius':s.railBorderRadius,background:s.railColor,opacity:s.railOpacity,zIndex:90}),R=e(w).addClass(s.barClass).css({background:s.color,width:s.size,position:'absolute',top:0,opacity:s.opacity,display:s.alwaysVisible?'block':'none','border-radius':s.borderRadius,BorderRadius:s.borderRadius,MozBorderRadius:s.borderRadius,WebkitBorderRadius:s.borderRadius,zIndex:99}),D='right'==s.position?{right:s.distance}:{left:s.distance};E.css(D),R.css(D),x.wrap(S),x.parent().append(R),x.parent().append(E),s.railDraggable&&R.bind('mousedown',function(i){var o=e(document);return d=!0,t=parseFloat(R.css('top')),pageY=i.pageY,o.bind('mousemove.slimscroll',function(e){currTop=t+e.pageY-pageY,R.css('top',currTop),r(0,R.position().top,!1)}),o.bind('mouseup.slimscroll',function(e){d=!1,c(),o.unbind('.slimscroll')}),!1}).bind('selectstart.slimscroll',function(e){return e.stopPropagation(),e.preventDefault(),!1}),E.hover(function(){n()},function(){c()}),R.hover(function(){u=!0},function(){u=!1}),x.hover(function(){h=!0,n(),c()},function(){h=!1,c()}),x.bind('touchstart',function(e,t){e.originalEvent.touches.length&&(g=e.originalEvent.touches[0].pageY)}),x.bind('touchmove',function(e){if(y||e.originalEvent.preventDefault(),e.originalEvent.touches.length){var t=(g-e.originalEvent.touches[0].pageY)/s.touchScrollStep;r(t,!0),g=e.originalEvent.touches[0].pageY}}),l(),'bottom'===s.start?(R.css({top:x.outerHeight()-R.outerHeight()}),r(0,!0)):'top'!==s.start&&(r(e(s.start).position().top,null,!0),s.alwaysVisible||R.hide()),a(this)}}),this}}),e.fn.extend({slimscroll:e.fn.slimScroll})}(jQuery)\n"
  },
  {
    "path": "templates/dashboard_assets/manifest.json",
    "content": "{\n    \"start_url\": \"/\",\n    \"display\": \"standalone\",\n    \"theme_color\": \"#ff6600\",\n    \"background_color\": \"#ffffff\",\n    \"icons\": [\n        {\n            \"src\": \"https://raw.githubusercontent.com/DeviaVir/zenbot/master/assets/zenbot_square.png\",\n            \"sizes\": \"112x112\",\n            \"type\": \"image/png\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/_mocks/collectionService.mock.factory.js",
    "content": "/*\n        By default, returns a mock collection service, which has\n        - a method getTrades(), which simulates two trade records in the DB\n        - a method getResumeMarkers(), \n    */\n\nmodule.exports = (opts) => {\n  if (opts === undefined)\n    opts = { }\n\n  var tradesArray\n  if (opts.tradesArray !== undefined && opts.tradesArray !== null)\n    tradesArray = opts.tradesArray\n  else\n    tradesArray = [{id: 'stub.BTC-USD-3000', trade_id: 3000, time: 99992, selector: 'stub.BTC-USD' }, {id: 'stub.BTC-USD-3001', trade_id: 3001, time: 99994, selector: 'stub.BTC-USD'}]\n\n  var resumeMarkersArray\n  if (opts.resumeMarkersArray !== undefined && opts.resumeMarkersArray !== null)\n    resumeMarkersArray = opts.resumeMarkersArray\n  else\n    resumeMarkersArray = [{from: 2994, to: 2998, oldest_time: 99960, newest_time: 99986}]\n\n  var mockUpdateFunction\n  if (opts.mockUpdateFunction !== undefined && opts.mockUpdateFunction !== null) \n    mockUpdateFunction = opts.mockUpdateFunction\n\n  var mockDeleteManyFunction\n  if (opts.mockDeleteManyFunction !== undefined && opts.mockDeleteManyFunction !== null) \n    mockDeleteManyFunction = opts.mockDeleteManyFunction\n\n  var mockInsertManyFunction\n  if (opts.mockInsertManyFunction !== undefined && opts.mockInsertManyFunction !== null) \n    mockInsertManyFunction = opts.mockInsertManyFunction\n\n  var mockFindOneFunction\n  if (opts.mockFindOneFunction !== undefined && opts.mockFindOneFunction !== null) \n    mockFindOneFunction = opts.mockFindOneFunction\n\n  var findOneReturnTrade\n  if (opts.findOneReturnTrade !== undefined && opts.findOneReturnTrade !== null) \n    findOneReturnTrade = opts.findOneReturnTrade\n\n  var rtn = { \n    getTrades: () => { \n      return {\n        findOne: (query) => { \n          if (mockFindOneFunction)\n            mockFindOneFunction(query)\n\n          return {\n            then: (func) => {\n              func(findOneReturnTrade)\n            }\n          }\n        },\n        find: () => { \n          return { \n            limit: (/* num */) => {\n              return { \n                toArray: (func) => {\n                  func(null, tradesArray)\n                }\n              }\n            },\n            toArray: (func) => { \n              func(null, tradesArray) \n            }\n          }\n        }, \n        insert: (trade) => { \n          return { \n            then: (cb/*, err*/) => { // TODO: should this be (err, cb) instead?\n              cb(trade)\n            }\n          }\n        },\n      }},\n    getResumeMarkers: () => { \n      return {\n        find: () => { \n          return { \n            toArray: (func) => { \n              func(null, resumeMarkersArray) \n            }\n          }\n        }, \n        save: (doc, func) => {\n          func(null, null)\n        }, \n        update: (opts, doc, func) => {\n          func(null, null)\n          if (mockUpdateFunction)\n            mockUpdateFunction(opts, doc, func)\n        },\n        deleteMany: (q, cb) => { cb(); if (mockDeleteManyFunction) mockDeleteManyFunction(q) },\n        insertMany: (q, cb) => { cb(); if (mockInsertManyFunction) mockInsertManyFunction(q) }\n      }\n    }\n  } // collection service\n\n\n  return rtn\n}"
  },
  {
    "path": "test/_mocks/consumeAndProcessService.mock.factory.js",
    "content": "\nmodule.exports = (opts) => {\n  if (opts === undefined) {\n    opts = { }\n  }\n\n  if (opts.onSuccessFunc === undefined)\n    opts.onSuccessFunc = (cb) => { cb( {trade_id: 3001} ) }\n\n  var rtn = {\n    setOnConsumeFunc: () => { },\n    setOnProcessFunc: () => { },\n    setAfterOnConsumeFunc: () => { },\n    setAfterOnProcessFunc: () => { },\n    go: () => { \n      return {\n        then: (cb /*, err*/) => { opts.onSuccessFunc(cb) }\n      }}\n  }\n\n  return rtn\n}"
  },
  {
    "path": "test/_mocks/exchangeService.mock.factory.js",
    "content": "/*\n        By default, returns a mock exchange service, which has\n        a backward history scan, and returns two mock trades.\n    */\n\nmodule.exports = (opts) => {\n  var selectorObject = {normalized: 'stub.BTC-USD', exchange_id: 'stub', asset: 'BTC', currency: 'USD' }\n        \n  if (opts === undefined) \n    opts = { }\n\n  var rtn = {\n    BACKWARD: 'backward',\n    FORWARD: 'forward',\n    getSelector: () => { return selectorObject },\n    getExchange: undefined\n  } // exchange service\n  \n  var getTradesOptionsObservingFunc\n  if (opts.getTradesOptionsObservingFunc !== undefined && opts.getTradesOptionsObservingFunc !== null) \n    getTradesOptionsObservingFunc = opts.getTradesOptionsObservingFunc\n \n  var tradesArray = [{id: 'stub.BTC-USD-3000', trade_id: 3000, time: 99992 }, {id: 'stub.BTC-USD-3001', trade_id: 3001, time: 99994}]\n  if (opts.tradesArray !== undefined && opts.tradesArray !== null) \n    tradesArray = opts.tradesArray\n  if (opts.exchangeTradesArray !== undefined && opts.exchangeTradesArray !== null)\n    tradesArray = opts.exchangeTradesArray\n\n  var getTradesFunc\n  if (opts.getTradesFunc !== undefined && opts.getTradesFunc !== null)\n    getTradesFunc = opts.getTradesFunc\n  else\n    getTradesFunc = (opts, func) => {\n      if (typeof getTradesOptionsObservingFunc == 'function')\n        getTradesOptionsObservingFunc(opts)\n    \n      func(null, tradesArray) \n    }\n\n  var direction = opts.direction || 'backward'\n\n  rtn.getExchange = () => {\n    return {\n      historyScan: direction,\n      historyScanUsesTime: opts.historyScanUsesTime,\n      getTrades: getTradesFunc \n    }\n  }\n\n  return rtn\n}"
  },
  {
    "path": "test/_mocks/resumeMarkerService.mock.factory.js",
    "content": "module.exports = (opts) => {\n\n  if (opts === undefined) \n    opts = { }\n\n  if (opts.tradeFunction === undefined)\n    opts.tradeFunction = (tradeId) => {\n      return tradeId\n    }\n\n  return {\n    isInRange: () => { return false },\n    ping: opts.tradeFunction,\n    load: (cb) => { cb() },\n    flush: (cb) => { cb() }\n  }\n  // resume-marker service\n\n}"
  },
  {
    "path": "test/_mocks/tradeService.mock.factory.js",
    "content": "/*\n        By default, returns a mock trade service, which\n        returns no trades.\n\n        Set opts.tradesArray to return trades. Y'know, in a mock, or something.\n    */\n\nmodule.exports = (opts) => {\n\n  if (opts === undefined) \n    opts = { }\n\n  if (opts.tradesArray === undefined)\n    opts.tradesArray = [] \n \n  return {\n    getInitialOptsObject: () => { },\n    getTrades: (/*tradeSearchOpts*/) => { return { \n      then: (cb) => { cb( opts.tradesArray ) } }}\n  } // trade service\n  \n}"
  },
  {
    "path": "test/_specs/commands/backfill/backfill.consume.function.test.js",
    "content": "\nvar mock = require('mock-require')\nvar tradeServiceFactory = require('../../../../test/_mocks/tradeService.mock.factory')\n\ndescribe('The Backfill Consume function', function() {\n  var queue\n  beforeEach(function() {\n    mock('../../../../lib/services/trades-service', tradeServiceFactory)\n    queue = {\n      enqueue: function() { },\n      dequeue: function() { }\n    }\n    spyOn(queue, 'enqueue').and.returnValue({ })\n  })\n\n  afterEach(function(){\n    mock.stopAll()\n  })\n\n  describe('consumes trades from the trade service, indicates the next step should be Processing, rather than Exit', function() {\n\n    it('', function() {\n      var callback = jasmine.createSpy('callback')\n            \n      var instance = require('../../../../commands/backfill/backfill.consume.function')({tradesArray: [{trade_id:3001, time:1517787104902}, {trade_id:3000, time:1517787104900}]})\n\n      instance(undefined, queue, callback)\n\n      expect(callback.calls.count()).toEqual(1) \n      expect(callback).toHaveBeenCalledWith(null, 'cp_process', 3000)\n      expect(queue.enqueue).toHaveBeenCalledWith([{trade_id: 3001, time: 1517787104902}, {trade_id: 3000, time: 1517787104900}])\n    })\n  })\n\n  describe('consumes trades from the trade service, indicates the next step should be Exit, rather than Processing', function() {\n    it('', function() {\n      var callback = jasmine.createSpy('callback')\n            \n      var instance = require('../../../../commands/backfill/backfill.consume.function')({})\n\n      instance(undefined, queue, callback)\n\n      expect(callback.calls.count()).toEqual(1) \n      expect(callback).toHaveBeenCalledWith(null, 'cp_exit', undefined)\n      expect(queue.enqueue).not.toHaveBeenCalled()\n    })\n  })\n\n})"
  },
  {
    "path": "test/_specs/commands/backfill/backfill.function.test.js",
    "content": "\nvar mock = require('mock-require')\nvar consumeAndProcessServiceFactory = require('../../../_mocks/consumeAndProcessService.mock.factory')\n\ndescribe('The Backfill function', function() {\n  beforeEach(function() {\n    mock('../../../../lib/services/consume-and-process-service', consumeAndProcessServiceFactory)\n    // DEBUGGING \n    process.on('unhandledRejection', (reason, p) => {\n      console.log('Unhandled Rejection at: Promise', p, 'reason:', reason)\n      // application specific logging, throwing an error, or other logic here\n    })\n\n  })\n\n  afterEach(function(){\n    mock.stopAll()\n  }) \n\n  it('uses consumeAndProcessService to get the expected value', function() {\n    \n    var instance = require('../../../../commands/backfill/backfill.function')({})\n\n    instance(10000).then((finalTrade) => {\n      expect(finalTrade).toEqual({trade_id: 3001}) // this is the last trade defined by default to be returned from the mock consume and process service.\n    })\n  })\n})\n"
  },
  {
    "path": "test/_specs/commands/backfill/backfill.process.function.test.js",
    "content": "var mock = require('mock-require')\nvar collectionServiceFactory = require('../../../../test/_mocks/collectionService.mock.factory')\nvar exchangeServiceFactory = require('../../../../test/_mocks/exchangeService.mock.factory')\n\ndescribe('The Backfill Process function', function() {\n  var queue\n\n  beforeEach(function() {\n    mock('../../../../lib/services/collection-service', collectionServiceFactory)\n    mock('../../../../lib/services/exchange-service', exchangeServiceFactory)\n    mock('../../../../lib/_data-structures/Queue', queue)\n\n    queue = {\n      enqueue: function() { },\n      dequeue: function() { }\n    }\n  })\n\n  afterEach(function(){\n    mock.stopAll()\n  })\n\n  describe('processes trades ', function() {\n\n    beforeEach(function () {\n      spyOn(queue, 'dequeue').and.returnValue([{trade_id:3002, time:1517787104904}, {trade_id:3001, time:1517787104902}, {trade_id:3000, time:1517787104900}])\n    })\n\n    it('when all are considered new', function() {\n      var callback = jasmine.createSpy('callback')\n      var instance = mock.reRequire('../../../../commands/backfill/backfill.process.function')({})\n\n      var targetTimeInMillis = 1517787104899\n      instance(targetTimeInMillis, queue, (trade) => { return trade.trade_id }, callback)\n\n      expect(queue.dequeue.calls.count()).toEqual(1)\n      expect(callback.calls.count()).toEqual(1) \n      expect(callback).toHaveBeenCalledWith(null, false, 3000, {trade_id:3000, time:1517787104900})\n    })\n  })\n\n  describe('indicates exit condition was reached when one of the trades is past our time limit', function() {\n    beforeEach(function () {\n      spyOn(queue, 'dequeue').and.returnValue([{trade_id:3002, time:1517787104904}, {trade_id:3001, time:1517787104902}, {trade_id:3000, time:1517787104900}])\n    })\n\n    it('', function() {\n      var callback = jasmine.createSpy('callback')\n      var instance =  mock.reRequire('../../../../commands/backfill/backfill.process.function')({})\n\n      var targetTimeInMillis = 1517787104901\n      instance(targetTimeInMillis, queue, (trade) => { return trade.trade_id }, callback)\n\n      expect(queue.dequeue.calls.count()).toEqual(1)\n      expect(callback.calls.count()).toEqual(1)\n      expect(callback).toHaveBeenCalledWith(null, true, 3001, {trade_id:3001, time:1517787104902})\n    })\n  })\n\n    \n  // TODO\n  xdescribe('does not insert records that have already been seen', function() {\n    beforeEach(function () {\n\n      spyOn(queue, 'dequeue').and.returnValue([{trade_id:3002, time:1517787104904}, {trade_id:3001, time:1517787104902}, {trade_id:3000, time:1517787104900}])\n    })\n\n    it('', function() {\n      var callback = jasmine.createSpy('callback')\n      var instance =  require('../../../../commands/backfill/backfill.process.function')({})\n\n      var targetTimeInMillis = 1517787104900\n      instance(targetTimeInMillis, queue, callback)\n\n      expect(queue.dequeue.calls.count()).toEqual(1)\n      expect(callback.calls.count()).toEqual(1)\n      expect(callback).toHaveBeenCalledWith(null, false, {trade_id: 3002, time: 1517787104904}) \n            \n      // TODO: How to check that theFunction only called the mockCollectionService twice? \n      //  Because there should only be two inserts when the third is reported as 'already seen'.\n    })\n  })\n\n})"
  },
  {
    "path": "test/_specs/lib/services/collections-service.test.js",
    "content": "\nvar service = require('../../../../lib/services/collection-service')\n\ndescribe('Collections Service', function() {\n\n  describe(' trades ', function() {\n   \n    it('is available', function() {\n      expect(service).not.toBe(undefined)\n    }),\n\n    it('returns the expected objects', function() {\n\n      var instance = service({db:{mongo:{collection: function() { return { createIndex: function() { }} }  }}})\n\n      var rtn = instance.getTrades()\n\n      expect(rtn).toBeDefined()\n    })\n  }),\n\n  describe(' resume_markers ', function() {\n    \n    it('is available', function() {\n      expect(service).not.toBe(undefined)\n    }),\n\n    it('returns the expected objects', function() {\n\n      var instance = service({db:{mongo:{collection: function() { return { createIndex: function() { }} }  }}})\n\n      var rtn = instance.getResumeMarkers()\n\n      expect(rtn).toBeDefined()\n    })\n  })\n})\n"
  },
  {
    "path": "test/_specs/lib/services/consume-and-process-service.test.js",
    "content": "var mock = require('mock-require')\nvar service = require('../../../../lib/services/consume-and-process-service')\nvar resumeMarkerServiceFactory = require('../../../../test/_mocks/resumeMarkerService.mock.factory')\n\ndescribe('consume-and-process-service', function () {\n\n  describe('', function() {\n\n    beforeEach(function () {\n      var mockResumeMarkerService = resumeMarkerServiceFactory\n\n      mock('../../../../lib/services/resume-marker-service', mockResumeMarkerService)\n      service = mock.reRequire('../../../../lib/services/consume-and-process-service')\n    })\n\n    afterEach(function(){\n      mock.stopAll()\n    })\n\n    it('is available', function() {\n      expect(service).not.toBe(undefined)\n    })\n\n    it('does what its supposed to', function(done) {\n      var instance = service({})\n      var numTimesConsumeHappened = 0\n      var MAX_CONSUME_COUNT = Math.max(1, Math.floor(Math.random() * 10))\n\n      var consumeFunc = (record, queue, cb) => {\n        //\n        // imagine we get some records from somewhere.\n        var arrayOfRecords = [{id: 1, val: 'one'}, {id: 2, val: 'two'}, {id: 3, val: 'three'}]\n\n        // then imagine we push the records on the queue\n        queue.enqueue(arrayOfRecords)\n\n        // decide what to tell our callback function\t\t\t\t\n        var exitCondition = ++numTimesConsumeHappened >= MAX_CONSUME_COUNT\n        var rtn\n        if (exitCondition)\n          rtn = 'cp_exit'\n        else \n          rtn = 'cp_process'\n\n        // exit by calling the supplied callback\n        cb(null, rtn, arrayOfRecords[arrayOfRecords.length - 1])\n      }\n\n      var processFunc = (targetTimeInMillis, queue, nextTradeIdFunc, cb) => {\n        var arrayOfRecords = queue.dequeue()\n        var exitConditionReached = false\n        var lastProcessedIndex = 0\n\n        // process the records somehow\n        arrayOfRecords.forEach((/*r*/) => { \n          /* do something */ \n          /* set var if this record passed our targetTimeInMillis */\n          /* remember the most recently processed record, so we can pass it back */\n        })\n\n        if (exitConditionReached)\n          cb(null, true, arrayOfRecords[lastProcessedIndex].trade_id)\n        else\n          cb(null, false, arrayOfRecords[arrayOfRecords.length - 1].trade_id)\n      }\n\n      instance.setOnConsumeFunc(consumeFunc)\n      instance.setOnProcessFunc(processFunc)\n\n      var targetTimeInMillis = new Date().getTime() - 10000\n\n      instance.go(targetTimeInMillis).then((finalRecord) => {\n        expect(finalRecord).toBeDefined()\n        expect(finalRecord.id).toBe(3)\n        expect(finalRecord.val).toBe('three')\n        expect(numTimesConsumeHappened).toEqual(MAX_CONSUME_COUNT)\n        done()\n      })\n    })\n  })\n})\n"
  },
  {
    "path": "test/_specs/lib/services/exchange-service.test.js",
    "content": "\nvar service = require('../../../../lib/services/exchange-service')\n    \ndescribe('Exchange Service', function() {\n  var normalizedSelector = 'stub.BTC-USD'\n  var exchangeId = '_stub'\n  describe('', function() {\n    var normalizedSelector = 'stub.BTC-USD'\n\n    it('returns undefined the expected exchange when no parameter is passed in', function() {\n\n      var instance = service({selector: normalizedSelector})\n      var rtn = instance.getExchange()\n\n      expect(rtn).not.toBeDefined()\n    })\n\n  })\n\n  describe('', function() {\n    var selectorObject = {normalized: normalizedSelector, exchange_id: exchangeId }\n\n    it('is available', function() {\n      expect(service).not.toBe(undefined)\n    }),\n\n    it(' returns the expected exchange when no parameter is passed in', function() {\n      var instance = service({selector: selectorObject})\n\n      var rtn = instance.getExchange()\n\n      expect(rtn).toBeDefined()\n      expect(rtn.getName()).toBe('stub')\n    })\n\n    it(' returns the expected selector ', function() {\n      var instance = service({selector: selectorObject})\n\n      var rtn = instance.getSelector()\n\n      expect(rtn).toBeDefined()\n      expect(rtn.normalized).toBe(selectorObject.normalized)\n      expect(rtn.exchangeId).toBe(selectorObject.exchangeId)\n    })\n\n    it(' has the correct values for backward and forward constants ', function() {\n      var instance = service({selector: selectorObject})\n\n      expect(instance.BACKWARD).toBe('backward')\n      expect(instance.FORWARD).toBe('forward')\n    })\n\n  })\n\n  describe('when direction is backward ', function () {\n\n    it('returns true when given time is less than targetTime and exchange direction is backward ', function() {\n      var instance = service({selector: {normalized: normalizedSelector, exchange_id: exchangeId }})\n\n      expect(instance.isTimeSufficientlyLongAgo(500, 1000)).toBe(true)\n    })\n\n    it('returns false when given time is greater than targetTime and exchange direction is backward ', function() {\n      var instance = service({selector: {normalized: normalizedSelector, exchange_id: exchangeId }})\n\n      expect(instance.isTimeSufficientlyLongAgo(1000, 500)).toBe(false)\n    })\n  })\n\n  describe(' when direction is forward ', function () {\n\n    it(' returns false when given time is less than targetTime and exchange direction is forward ', function() {\n      var instance = service({selector: {normalized: normalizedSelector, exchange_id: exchangeId }, historyScan: 'forward'})\n\n      expect(instance.isTimeSufficientlyLongAgo(500, 1000)).toBe(false)\n    })\n\n    it(' returns true when given time is greater than targetTime and exchange direction is forward ', function() {\n      var instance = service({selector: {normalized: normalizedSelector, exchange_id: exchangeId }, historyScan: 'forward'})\n\n      expect(instance.isTimeSufficientlyLongAgo(1000, 500)).toBe(true)\n    })\n  })\n\n})\n"
  },
  {
    "path": "test/_specs/lib/services/resume-marker-service.test.js",
    "content": "var mock = require('mock-require')\nvar service = require('../../../../lib/services/resume-marker-service')\nvar collectionServiceFactory = require('../../../../test/_mocks/collectionService.mock.factory')\n\ndescribe('Resume Marker Service', function() {\n  beforeEach(function() {\n    mock('../../../../lib/services/collection-service', collectionServiceFactory)\n    service = mock.reRequire('../../../../lib/services/resume-marker-service')\n  })\n\n  describe('', function() {\n\n    var conf = {selector: {normalized: 'tests.BTC-USD'}}\n\n    it('is available', function() {\n      var instance = service({})\n\n      expect(instance).toBeDefined()\n    })\n\n    it('starts with zero ranges', function() {\n      var instance = service(conf)\n      expect(instance.getRanges().length).toBe(0)\n    })\n\n    it('sets an id and _id attribute on a newly created range', function() {\n      var instance = service(conf)\n\n      instance.createNewRange({trade_id:3000, time:1517787104900})\n\n      expect(instance.getRanges().length).toBe(1)\n      expect(instance.getRanges()[0].id).toBeDefined\n      expect(instance.getRanges()[0]._id).toBeDefined\n    })\n\n    it('has one range, after creating a range, and it only contains the trade_id we just gave it', function() {\n      var instance = service(conf)\n            \n      instance.createNewRange({trade_id:3000, time:1517787104900})\n\n      expect(instance.getRanges().length).toBe(1)\n      expect(instance.getRanges()[0].from).toBe(3000)\n      expect(instance.getRanges()[0].to).toBe(3000)\n      expect(instance.getRanges()[0].oldest_time).toBe(1517787104900)\n      expect(instance.getRanges()[0].newest_time).toBe(1517787104900)\n    })\n\n    it('gets the correct range, when you create a range and then ask is that id in a range', function() {\n      var instance = service(conf)\n      var trade = {trade_id:3000, time:1517787104900}\n\n      instance.createNewRange(trade)\n\n      var rtn = instance.isWithinRange(trade)\n      expect(rtn).toBeDefined()\n      expect(rtn.from).toBe(3000)\n      expect(rtn.oldest_time).toBe(1517787104900)\n    })\n\n    it('returns true when we create a range on XXX, then ask is XXX + 1 within one of any range', function() {\n      var instance = service(conf)\n      var trade = {trade_id:3000, time:1517787104900}\n\n      instance.createNewRange(trade)\n\n      var trade2 = {trade_id:3001, time:1517787104902}\n      var rtn = instance.isWithinOneOfAnyRange(trade2)\n      expect(rtn).toBeDefined()\n      expect(rtn.from).toBe(3000)\n      expect(rtn.oldest_time).toBe(1517787104900)\n\n    })\n\n    it('returns false when we create a range on XXX, then ask is XXX + 2 within one of any range', function() {\n      var instance = service(conf)\n      var trade = {trade_id:3000, time:1517787104900}\n\n      instance.createNewRange(trade)\n\n      var trade2 = {trade_id:3002, time:1517787104904}\n      var rtn = instance.isWithinOneOfAnyRange(trade2)\n      expect(rtn).not.toBeDefined()\n    })\n\n    it('extends a range', function() {\n      var instance = service(conf)\n      var trade = {trade_id:3000, time:1517787104900}\n\n      instance.createNewRange(trade)\n\n      var trade2 = {trade_id:2999, time:1517787104898}\n      instance.extendARange(trade2)\n\n      expect(instance.getRanges()[0].from).toBe(2999)\n    })\n\n    it('merges two now-adjacent ranges', function() {\n      var instance = service(conf)\n      var trade = {trade_id:3000, time:1517787104900}\n\n      instance.createNewRange(trade)\n      expect(instance.getRanges().length).toBe(1)\n\n      var trade2 = {trade_id:2998, time:1517787104894}\n      instance.createNewRange(trade2)\n      expect(instance.getRanges().length).toBe(2)\n\n      instance.extendARange({trade_id:2999, time:1517787104896})\n\n      expect(instance.getRanges().length).toBe(2)\n      instance.merge()\n\n      expect(instance.getRanges().length).toBe(1)\n      expect(instance.getRanges()[0].from).toBe(2998)\n      expect(instance.getRanges()[0].to).toBe(3000)\n      expect(instance.getRanges()[0].oldest_time).toBe(1517787104894)\n      expect(instance.getRanges()[0].newest_time).toBe(1517787104900)\n    })\n\n    it('pings correctly', function() {\n      var instance = service(conf)\n      var trade = {trade_id:3000, time:1517787104900}\n\n      var rtn = instance.ping(trade)\n\n      expect(rtn).toBe(3000)\n      expect(instance.getRanges().length).toBe(1)\n      expect(instance.getRanges()[0].from).toBe(3000)\n      expect(instance.getRanges()[0].to).toBe(3000)\n      expect(instance.getRanges()[0].oldest_time).toBe(1517787104900)\n      expect(instance.getRanges()[0].newest_time).toBe(1517787104900)\n\n      var trade2 = {trade_id:2999, time:1517787104896}\n      rtn = instance.ping(trade2)\n\n      expect(rtn).toBe(2999)\n      expect(instance.getRanges().length).toBe(1)\n      expect(instance.getRanges()[0].from).toBe(2999)\n      expect(instance.getRanges()[0].to).toBe(3000)\n      expect(instance.getRanges()[0].oldest_time).toBe(1517787104896)\n      expect(instance.getRanges()[0].newest_time).toBe(1517787104900)\n\n      // TODO: Test what happens if you give the same number. It should return that to you as the farthest so far.\n\n      var trade3 = {trade_id:2998, time:1517787104894}\n      rtn = instance.ping(trade3)\n\n      expect(rtn).toBe(2998)\n      expect(instance.getRanges().length).toBe(1)\n      expect(instance.getRanges()[0].from).toBe(2998)\n      expect(instance.getRanges()[0].to).toBe(3000)\n      expect(instance.getRanges()[0].oldest_time).toBe(1517787104894)\n      expect(instance.getRanges()[0].newest_time).toBe(1517787104900)\n\n      // break from happy path -- skip the next sequential record, should start a new range\n\n      //var trade4 = {trade_id:2997, time:1517787104892};\n      var trade4 = {trade_id:2996, time:1517787104890}\n      rtn = instance.ping(trade4)\n\n      expect(rtn).toBe(2996)\n      expect(instance.getRanges().length).toBe(2)\n      expect(instance.getRanges()[0].from).toBe(2998)\n      expect(instance.getRanges()[0].to).toBe(3000)\n      expect(instance.getRanges()[0].oldest_time).toBe(1517787104894)\n      expect(instance.getRanges()[0].newest_time).toBe(1517787104900)\n      expect(instance.getRanges()[1].from).toBe(2996)\n      expect(instance.getRanges()[1].to).toBe(2996)\n      expect(instance.getRanges()[1].oldest_time).toBe(1517787104890)\n      expect(instance.getRanges()[1].newest_time).toBe(1517787104890)\n\n      var trade5 = {trade_id:2995, time:1517787104888}\n      rtn = instance.ping(trade5)\n\n      expect(rtn).toBe(2995)\n      expect(instance.getRanges().length).toBe(2)\n      expect(instance.getRanges()[0].from).toBe(2998)\n      expect(instance.getRanges()[0].to).toBe(3000)\n      expect(instance.getRanges()[0].oldest_time).toBe(1517787104894)\n      expect(instance.getRanges()[0].newest_time).toBe(1517787104900)\n      expect(instance.getRanges()[1].from).toBe(2995)\n      expect(instance.getRanges()[1].to).toBe(2996)\n      expect(instance.getRanges()[1].oldest_time).toBe(1517787104888)\n      expect(instance.getRanges()[1].newest_time).toBe(1517787104890)\n\n      // now, throw some salt in the game, ping the record we skipped earlier\n      var trade6 = {trade_id:2997, time:1517787104892}\n      rtn = instance.ping(trade6)\n\n      expect(rtn).toBe(2995)\n      expect(instance.getRanges().length).toBe(1)\n      expect(instance.getRanges()[0].from).toBe(2995)\n      expect(instance.getRanges()[0].to).toBe(3000)\n      expect(instance.getRanges()[0].oldest_time).toBe(1517787104888)\n      expect(instance.getRanges()[0].newest_time).toBe(1517787104900)\n\n      expect(instance.getPingCount()).toBe(6)\n    })\n  })\n\n  describe('when forward', function() {\n    var conf = {selector:{normalized: 'tests.BTC-USD'} }\n\n    it('starts with zero ranges', function() {\n      var instance = service(conf)\n      instance.setDirection('forward') // TODO: put this in a constants object\n      expect(instance.getRanges().length).toBe(0)\n    })\n\n    it('has one range, after creating a range, and it only contains the trade_id we just gave it', function() {\n      var instance = service(conf)\n      instance.setDirection('forward') // TODO: put this in a constants object\n            \n      instance.createNewRange({trade_id:3000, time:1517787104900})\n\n      expect(instance.getRanges().length).toBe(1)\n      expect(instance.getRanges()[0].from).toBe(3000)\n      expect(instance.getRanges()[0].to).toBe(3000)\n      expect(instance.getRanges()[0].oldest_time).toBe(1517787104900)\n      expect(instance.getRanges()[0].newest_time).toBe(1517787104900)\n    })\n\n    it('gets the correct range, when you create a range and then ask is that id in a range', function() {\n      var instance = service(conf)\n      instance.setDirection('forward') // TODO: put this in a constants object\n\n      var trade = {trade_id:3000, time:1517787104900}\n\n      instance.createNewRange(trade)\n\n      var rtn = instance.isWithinRange(trade)\n      expect(rtn).toBeDefined()\n      expect(rtn.from).toBe(3000)\n      expect(rtn.oldest_time).toBe(1517787104900)\n    })\n\n    it('returns true when we create a range on XXX, then ask is XXX + 1 within one of any range', function() {\n      var instance = service(conf)\n      instance.setDirection('forward') // TODO: put this in a constants object\n\n      var trade = {trade_id:3000, time:1517787104900}\n\n      instance.createNewRange(trade)\n\n      var trade2 = {trade_id:3001, time:1517787104902}\n      var rtn = instance.isWithinOneOfAnyRange(trade2)\n      expect(rtn).toBeDefined()\n      expect(rtn.from).toBe(3000)\n      expect(rtn.oldest_time).toBe(1517787104900)\n\n    })\n\n    it('returns false when we create a range on XXX, then ask is XXX + 2 within one of any range', function() {\n      var instance = service(conf)\n      instance.setDirection('forward') // TODO: put this in a constants object\n\n      var trade = {trade_id:3000, time:1517787104900}\n\n      instance.createNewRange(trade)\n\n      var trade2 = {trade_id:3002, time:1517787104902}\n      var rtn = instance.isWithinOneOfAnyRange(trade2)\n      expect(rtn).not.toBeDefined()\n    })\n\n    it('extends a range', function() {\n      var instance = service(conf)\n      instance.setDirection('forward') // TODO: put this in a constants object\n\n      var trade = {trade_id:2999, time:1517787104898}\n\n      instance.createNewRange(trade)\n\n      var trade2 = {trade_id:3000, time:1517787104900}\n      instance.extendARange(trade2)\n\n      expect(instance.getRanges()[0].from).toBe(2999)\n      expect(instance.getRanges()[0].to).toBe(3000)\n    })\n\n    it('merges two now-adjacent ranges', function() {\n      var instance = service(conf)\n      instance.setDirection('forward') // TODO: put this in a constants object\n\n      var trade = {trade_id:2998, time:1517787104894}\n\n      instance.createNewRange(trade)\n      expect(instance.getRanges().length).toBe(1)\n\n      var trade2 = {trade_id:3000, time:1517787104900}\n      instance.createNewRange(trade2)\n      expect(instance.getRanges().length).toBe(2)\n\n      instance.extendARange({trade_id:2999, time:1517787104896})\n\n      expect(instance.getRanges().length).toBe(2)\n      instance.merge()\n\n      expect(instance.getRanges().length).toBe(1)\n      expect(instance.getRanges()[0].from).toBe(2998)\n      expect(instance.getRanges()[0].to).toBe(3000)\n      expect(instance.getRanges()[0].oldest_time).toBe(1517787104894)\n      expect(instance.getRanges()[0].newest_time).toBe(1517787104900)\n    })\n\n    it('pings correctly', function() {\n      var instance = service(conf)\n      instance.setDirection('forward') // TODO: put this in a constants object\n\n      var trade = {trade_id:3000, time:1517787104900}\n\n      var rtn = instance.ping(trade)\n\n      expect(rtn).toBe(3000)\n      expect(instance.getRanges().length).toBe(1)\n      expect(instance.getRanges()[0].from).toBe(3000)\n      expect(instance.getRanges()[0].to).toBe(3000)\n      expect(instance.getRanges()[0].oldest_time).toBe(1517787104900)\n      expect(instance.getRanges()[0].newest_time).toBe(1517787104900)\n\n      var trade2 = {trade_id:3001, time:1517787104902}\n      rtn = instance.ping(trade2)\n\n      expect(rtn).toBe(3001)\n      expect(instance.getRanges().length).toBe(1)\n      expect(instance.getRanges()[0].from).toBe(3000)\n      expect(instance.getRanges()[0].to).toBe(3001)\n      expect(instance.getRanges()[0].oldest_time).toBe(1517787104900)\n      expect(instance.getRanges()[0].newest_time).toBe(1517787104902)\n\n      // TODO: Test what happens if you give the same number. It should return that to you as the farthest so far.\n\n      var trade3 = {trade_id:3002, time:1517787104904}\n      rtn = instance.ping(trade3)\n\n      expect(rtn).toBe(3002)\n      expect(instance.getRanges().length).toBe(1)\n      expect(instance.getRanges()[0].from).toBe(3000)\n      expect(instance.getRanges()[0].to).toBe(3002)\n      expect(instance.getRanges()[0].oldest_time).toBe(1517787104900)\n      expect(instance.getRanges()[0].newest_time).toBe(1517787104904)\n\n      // break from happy path -- skip the next sequential record, should start a new range\n\n      //var trade4 = {trade_id:3004, time:1517787104906};\n      var trade4 = {trade_id:3004, time:1517787104906}\n      rtn = instance.ping(trade4)\n\n      expect(rtn).toBe(3004)\n      expect(instance.getRanges().length).toBe(2)\n      expect(instance.getRanges()[0].from).toBe(3000)\n      expect(instance.getRanges()[0].to).toBe(3002)\n      expect(instance.getRanges()[0].oldest_time).toBe(1517787104900)\n      expect(instance.getRanges()[0].newest_time).toBe(1517787104904)\n      expect(instance.getRanges()[1].from).toBe(3004)\n      expect(instance.getRanges()[1].to).toBe(3004)\n      expect(instance.getRanges()[1].oldest_time).toBe(1517787104906)\n      expect(instance.getRanges()[1].newest_time).toBe(1517787104906)\n\n      var trade5 = {trade_id:3005, time:1517787104908}\n      rtn = instance.ping(trade5)\n\n      expect(rtn).toBe(3005)\n      expect(instance.getRanges().length).toBe(2)\n      expect(instance.getRanges()[0].from).toBe(3000)\n      expect(instance.getRanges()[0].to).toBe(3002)\n      expect(instance.getRanges()[0].oldest_time).toBe(1517787104900)\n      expect(instance.getRanges()[0].newest_time).toBe(1517787104904)\n      expect(instance.getRanges()[1].from).toBe(3004)\n      expect(instance.getRanges()[1].to).toBe(3005)\n      expect(instance.getRanges()[1].oldest_time).toBe(1517787104906)\n      expect(instance.getRanges()[1].newest_time).toBe(1517787104908)\n\n      // now, throw some salt in the game, ping the record we skipped earlier\n      var trade6 = {trade_id:3003, time:1517787104905}\n      rtn = instance.ping(trade6)\n\n      expect(rtn).toBe(3005)\n      expect(instance.getRanges().length).toBe(1)\n      expect(instance.getRanges()[0].from).toBe(3000)\n      expect(instance.getRanges()[0].to).toBe(3005)\n      expect(instance.getRanges()[0].oldest_time).toBe(1517787104900)\n      expect(instance.getRanges()[0].newest_time).toBe(1517787104908)\n    })\n  })\n\n  describe('database stuff', function() {\n    var conf = {selector: {normalized: 'tests.BTC-USD'}, resumeMarkersArray: []}\n\n    it('still calls the callback when flush is called and there are no ranges', function() {\n      var instance = service(conf)\n\n      instance.load()\n\n      expect(instance.getRanges().length).toBe(0)\n\n      var cb = jasmine.createSpy('flushCallback')\n      instance.flush(cb)\n\n      expect(cb).toHaveBeenCalled()\n    })\n  })\n\n  describe('database stuff', function() {\n    var conf = {\n      selector: {normalized: 'tests.BTC-USD'},\n      resumeMarkersArray: [\t{from: 2994, to: 2998, oldest_time: 1517787104960, newest_time: 1517787104986},\n        {from: 2894, to: 2898, oldest_time: 1517787103960, newest_time: 1517787103986},\n        {from: 2794, to: 2798, oldest_time: 1517787102960, newest_time: 1517787102986}\n      ],\n      mockDeleteManyFunction: jasmine.createSpy('mockDeleteManyFunction'),\n      mockInsertManyFunction: jasmine.createSpy('mockInsertManyFunction')\n    }\n\n    it('loads records from the database correctly', function() {\n      var instance = service(conf)\n\n      instance.load()\n\n      expect(instance.getRanges().length).toBe(3)\n    })\n\n    it('writes changed records correctly', function() {\n\n      var instance = service(conf)\n\n      instance.load()\n\n      var range = instance.getRanges()[0]\n\n      range.from -= 1\n\n      instance.flush()\n\n      expect(conf.mockDeleteManyFunction).toHaveBeenCalled()\n      expect(conf.mockInsertManyFunction).toHaveBeenCalled()\n    })\n  })\n\n  describe('ping count', function() {\n    var conf = {selector: {normalized: 'tests.BTC-USD'}}\n\n\n    it('increases, but not when a number is already in range', function() {\n      var instance = service(conf)\n\n      var trade = {trade_id:3000, time:1517787104900}\n      instance.ping(trade)\n\n      var trade2 = {trade_id:2999, time:1517787104896}\n      instance.ping(trade2)\n\n      // this should already be in range\n      instance.ping(trade)\n      expect(instance.getPingCount()).toBe(2)\n    })\n\n    it('increases when direction is FORWARD, but not when a number is already in range', function() {\n      var instance = service(conf)\n      instance.setDirection('forward') // TODO: put this in a constants object\t\t\t\n\n      var trade = {trade_id:2999, time:1517787104900}\n      instance.ping(trade)\n\n      var trade2 = {trade_id:3000, time:1517787104896}\n      instance.ping(trade2)\n\n      // this should already be in range\n      instance.ping(trade)\n      expect(instance.getPingCount()).toBe(2)\n    })\n  })\n\n})"
  },
  {
    "path": "test/_specs/lib/services/trades-service.test.js",
    "content": "var mock = require('mock-require')\nvar service = require('../../../../lib/services/trades-service')\nvar exchangeServiceFactory = require('../../../../test/_mocks/exchangeService.mock.factory')\nvar collectionServiceFactory = require('../../../../test/_mocks/collectionService.mock.factory')\n\ndescribe('Trades Service', function() {\n  beforeEach(function() {\n    mock('../../../../lib/services/exchange-service', exchangeServiceFactory)\n    mock('../../../../lib/services/collection-service', collectionServiceFactory)\n    service = mock.reRequire('../../../../lib/services/trades-service')\n  })\n  afterEach(function() {\n    mock.stopAll()\n  })\n \n  describe('when exchange is backward, ', function() {\n\n    it('is available', function() {\n      expect(service).not.toBe(undefined)\n    })\n\n    it('returns a valid opts object with default params', function() {\n      var regex = new RegExp('/^stub.BTC-USD/')\n\n      var instance = service({})\n\n      var rtn = instance.getInitialQueryAttributes()\n\n      expect(rtn).toBeDefined()\n      expect(rtn).toEqual({id: regex})\n      expect(rtn.trade_id).not.toBeDefined()\n      expect(rtn.from).not.toBeDefined()\n      expect(rtn.to).not.toBeDefined()\t\t\t\n    })\n\n    it('returns a valid opts object when startingTradeId is given', function() {\n      var regex = new RegExp('/^stub.BTC-USD/')\n\n      var instance = service({direction:'backward'})\n\n      var rtn = instance.getInitialQueryAttributes(100)\n\n      expect(rtn).toBeDefined()\n      expect(rtn).toEqual({id: regex, trade_id: { $lt: 100}})\n      expect(rtn.from).not.toBeDefined()\n      expect(rtn.to).not.toBeDefined()\n    })\n\n  })\n\n  describe('when exchange is forward, ', function() {\n    it('is available', function() {\n      expect(service).not.toBe(undefined)\n    })\n\n    it('returns a valid opts object with default params', function() {\n      var regex = new RegExp('/^stub.BTC-USD/')\n\n      var instance = service({direction:'forward'})\n\n      var rtn = instance.getInitialQueryAttributes()\n\n      expect(rtn).toBeDefined()\n      expect(rtn).toEqual({id: regex})\n      expect(rtn.trade_id).not.toBeDefined()\n      expect(rtn.from).not.toBeDefined()\n      expect(rtn.to).not.toBeDefined()\t\t\t\n    })\n\n    it('returns a valid opts object when startingTradeId is given', function() {\n      var regex = new RegExp('/^stub.BTC-USD/')\n\n      var instance = service({direction:'forward'})\n\n      var rtn = instance.getInitialQueryAttributes(100)\n\n      expect(rtn).toBeDefined()\n      expect(rtn).toEqual({id: regex, trade_id: { $lt: 100}})\n      expect(rtn.from).not.toBeDefined()\n      expect(rtn.to).not.toBeDefined()\n    })\n  })\n\n  describe('getTrades when DB returns nothing, and API returns two trades', function() {\n\n    it('calls getTrades correctly', function(done) {\n      var instance = service({})\n      var normalizedSelector = exchangeServiceFactory({}).getSelector().normalized\n\n      instance.getTrades().then((data) => {\n        expect(data.length === 2).toBe(true)\n        expect(data[0].id).toEqual(normalizedSelector + '-' + 3000)\n        expect(data[1].id).toEqual(normalizedSelector + '-' + 3001)\n        done()\n      })\n    })\n  })\n\n  describe('getTrades when DB returns nothing, and API returns two trades', function() {\n\n    it('creates two trades with valid zenbot metadata', function(done) {\n      var instance = service({getTradesFunc: (/*opts, func*/) => { }, direction: 'forward'})\n      var normalizedSelector = exchangeServiceFactory({}).getSelector().normalized\n\n      instance.getTrades().then((data) => {\n        expect(data.length === 2).toBe(true)\n        expect(data[0].id).toEqual(normalizedSelector + '-' + 3000)\n        expect(data[0].selector).toEqual(normalizedSelector)\n\n        expect(data[1].id).toEqual(normalizedSelector + '-' + 3001)\n        expect(data[1].selector).toEqual(normalizedSelector)\n        done()\n      })\n    })\n  })\n\n  describe('getTrades when a tradeId is passed in, but the DB returns no results, and exchange is forward, and its history scan uses time', function() {\n\n    var getTradesOptionsObservingFuncSpy = jasmine.createSpy('getTradesOptionsObservingFunc')\n    var mockFindOneFunction = jasmine.createSpy('mockFindOneFunction')\n\n    it('calls the DB to get the trade which has the time which is then passed to the exchange, and returns two valid zenbot trades', function(done) {\n      var conf = {\n        historyScanUsesTime: true,\n        direction: 'forward',\n        getTradesOptionsObservingFunc: getTradesOptionsObservingFuncSpy,\n        tradesArray: [],\n        exchangeTradesArray: [{trade_id: 3000, time: 99994}, {trade_id: 3001, time: 99992}],\n        findOneReturnTrade: {id: 'stub.BTC-USD-3000', trade_id: 3000, time: 99992 },\n        mockFindOneFunction: mockFindOneFunction\n      }\n      var instance = service(conf)\n      var normalizedSelector = exchangeServiceFactory(conf).getSelector().normalized\n\n      instance.getTrades(3000).then((data) => {\n        expect(getTradesOptionsObservingFuncSpy).toHaveBeenCalledWith({product_id: 'BTC-USD', from: 99992})\n        expect(mockFindOneFunction).toHaveBeenCalledWith({id: 'stub.BTC-USD-3000'})\n\n        expect(data.length === 2).toBe(true)\n        expect(data[0].id).toEqual(normalizedSelector + '-' + 3000)\n        expect(data[0].selector).toEqual(normalizedSelector)\n\n        expect(data[1].id).toEqual(normalizedSelector + '-' + 3001)\n        expect(data[1].selector).toEqual(normalizedSelector)\n        done()\n      })\n    })\n  })\n\n  describe('getTrades when DB returns two trades, and API returns no trades', function() {\n\n    it('returns our two existing trades with valid zenbot metadata', function(done) {\n      var instance = service({getTradesFunc: (/*opts, func*/) => { }, direction: 'forward'})\n      var normalizedSelector = exchangeServiceFactory({}).getSelector().normalized\n\n      instance.getTrades().then((data) => {\n        expect(data.length === 2).toBe(true)\n        expect(data[0].id).toEqual(normalizedSelector + '-' + 3000)\n        expect(data[0].selector).toEqual(normalizedSelector)\n\n        expect(data[1].id).toEqual(normalizedSelector + '-' + 3001)\n        expect(data[1].selector).toEqual(normalizedSelector)\n        done()\n      })\n    })\n  })\n})"
  },
  {
    "path": "test/lib/engine.test.js",
    "content": "var EventEmitter = require('events')\n\ndescribe('Engine', function() {\n  describe('executeSignal', function() {\n    describe('when maker in live mode', function(){\n      describe('with deposit set', function(){\n        it('and no held assets should use raw deposit', function(){\n          // arrange\n          var signal_type = 'buy'\n          var currency_amount = 1.0\n          var buy_pct = 50\n          var deposit = 0.25\n          var order_type = 'maker'\n          var held_asset = 0\n          var buy_spy = jasmine.createSpy('buy')\n          var sut = createEngine(currency_amount, buy_pct, deposit, order_type, held_asset, buy_spy)\n          // act\n          sut.executeSignal(signal_type)\n          // assert\n          var expected = '1.38750138'\n          var buyArgs = buy_spy.calls.mostRecent().args[0]\n          expect(buyArgs.size).toBe(expected)\n        })\n        it('and held assets should use adjusted deposit', function(){\n          // arrange\n          var signal_type = 'buy'\n          var currency_amount = 1.0\n          var buy_pct = 50\n          var deposit = 0.25\n          var order_type = 'maker'\n          var held_asset = 0.25\n          var buy_spy = jasmine.createSpy('buy')\n          var sut = createEngine(currency_amount, buy_pct, deposit, order_type, held_asset, buy_spy)\n          // act\n          sut.executeSignal(signal_type)\n          // assert\n          var expected = '1.23487623'\n          var buyArgs = buy_spy.calls.mostRecent().args[0]\n          expect(buyArgs.size).toBe(expected)\n        })\n        it('and held assets so large adjusted deposit is below order minimum should not place order', function(){\n          // arrange\n          var signal_type = 'buy'\n          var currency_amount = 1.0\n          var buy_pct = 50\n          var deposit = 0.25\n          var order_type = 'maker'\n          var held_asset = 2.0\n          var buy_spy = jasmine.createSpy('buy')\n          var sut = createEngine(currency_amount, buy_pct, deposit, order_type, held_asset, buy_spy)\n          // act\n          sut.executeSignal(signal_type)\n          // assert\n          expect(buy_spy).not.toHaveBeenCalled()\n        })\n      })\n      describe('with no deposit set', function(){\n        it('and no held assets should use raw buy_pct', function(){\n          // arrange\n          var signal_type = 'buy'\n          var currency_amount = 1.0\n          var buy_pct = 50\n          var deposit = undefined\n          var order_type = 'maker'\n          var held_asset = 0\n          var buy_spy = jasmine.createSpy('buy')\n          var sut = createEngine(currency_amount, buy_pct, deposit, order_type, held_asset, buy_spy)\n          // act\n          sut.executeSignal(signal_type)\n          // assert\n          var expected = '5.55000555'\n          var buyArgs = buy_spy.calls.mostRecent().args[0]\n          expect(buyArgs.size).toBe(expected)\n        })\n        // no longer taking held assets into account with no buy_max\n        /*\n        it('and held assets should use adjusted buy_pct', function(){\n          // arrange\n          var signal_type = 'buy'\n          var currency_amount = 1.0\n          var buy_pct = 50\n          var deposit = undefined\n          var order_type = 'maker'\n          var held_asset = 0.5\n          var buy_spy = jasmine.createSpy('buy')\n          var sut = createEngine(currency_amount, buy_pct, deposit, order_type, held_asset, buy_spy)\n          // act\n          sut.executeSignal(signal_type)\n          // assert\n          var expected = '4.93950000'\n          var buyArgs = buy_spy.calls.mostRecent().args[0]\n          expect(buyArgs.size).toBe(expected)\n        })\n        it('and held assets so large adjusted buy_pct is below order minimum should not place order', function(){\n          // arrange\n          var signal_type = 'buy'\n          var currency_amount = 1.0\n          var buy_pct = 50\n          var deposit = undefined\n          var order_type = 'maker'\n          var held_asset = 10.25\t\t\t\t\n          var buy_spy = jasmine.createSpy('buy')\n          var sut = createEngine(currency_amount, buy_pct, deposit, order_type, held_asset, buy_spy)\n          // act\n          sut.executeSignal(signal_type)\n          // assert\n          expect(buy_spy).not.toHaveBeenCalled()\n        })\n        */\n      })\n    })\n    \n    describe('when taker in live mode', function(){\n      describe('with deposit set',function(){\n        it('and no held assets should use raw deposit', function(){\n          // arrange\n          var signal_type = 'buy'\n          var currency_amount = 1\n          var buy_pct = 50\n          var deposit = 0.25\n          var order_type = 'taker'\n          var held_asset = 0\n          var buy_spy = jasmine.createSpy('buy')\n          var sut = createEngine(currency_amount, buy_pct, deposit, order_type, held_asset, buy_spy)\n          // act\n          sut.executeSignal(signal_type)\n          // assert\n          var expected = '1.38611665'\n          var buyArgs = buy_spy.calls.mostRecent().args[0]\n          expect(buyArgs.size).toBe(expected)\n        })\n        \n        it('and held assets should use adjusted deposit', function(){\n          // arrange\n          var signal_type = 'buy'\n          var currency_amount = 1.0\n          var buy_pct = 50\n          var deposit = 0.25\n          var order_type = 'taker'\n          var held_asset = 0.25\n          var buy_spy = jasmine.createSpy('buy')\n          var sut = createEngine(currency_amount, buy_pct, deposit, order_type, held_asset, buy_spy)\n          // act\n          sut.executeSignal(signal_type)\n          // assert\n          var expected = '1.23364382'\n          var buyArgs = buy_spy.calls.mostRecent().args[0]\n          expect(buyArgs.size).toBe(expected)\n        })\n        \n        it('and held assets so large adjusted deposit is below order minimum should not place order', function(){\n          // arrange\n          var signal_type = 'buy'\n          var currency_amount = 1.0\n          var buy_pct = 50\n          var deposit = 0.25\n          var order_type = 'taker'\n          var held_asset = 2.0\n          var buy_spy = jasmine.createSpy('buy')\n          var sut = createEngine(currency_amount, buy_pct, deposit, order_type, held_asset, buy_spy)\n          // act\n          sut.executeSignal(signal_type)\n          // assert\n          expect(buy_spy).not.toHaveBeenCalled()\n        })\n      })\n      describe('with no deposit set',function(){\n        it('with no deposit set and no held assets should use raw buy_pct', function(){\n          // arrange\n          var signal_type = 'buy'\n          var currency_amount = 1\n          var buy_pct = 50\n          var deposit = undefined\n          var order_type = 'taker'\n          var held_asset = 0\n          var buy_spy = jasmine.createSpy('buy')\n          var sut = createEngine(currency_amount, buy_pct, deposit, order_type, held_asset, buy_spy)\n          // act\n          sut.executeSignal(signal_type)\n          // assert\n          var expected = '5.54446662'\n          var buyArgs = buy_spy.calls.mostRecent().args[0]\n          expect(buyArgs.size).toBe(expected)\n        })\n        /*\n        it('and held assets should use adjusted buy_pct', function(){\n          // arrange\n          var signal_type = 'buy'\n          var currency_amount = 1.0\n          var buy_pct = 50\n          var deposit = undefined\n          var order_type = 'taker'\n          var held_asset = 0.5\t\t\t\t\n          var buy_spy = jasmine.createSpy('buy')\n          var sut = createEngine(currency_amount, buy_pct, deposit, order_type, held_asset, buy_spy)\n          // act\n          sut.executeSignal(signal_type)\n          // assert\n          var expected = '4.93455555'\n          var buyArgs = buy_spy.calls.mostRecent().args[0]\n          expect(buyArgs.size).toBe(expected)\n        })\n        it('and held assets so large adjusted buy_pct is below order minimum should not place order', function(){\n          // arrange\n          var signal_type = 'buy'\n          var currency_amount = 1.0\n          var buy_pct = 50\n          var deposit = undefined\n          var order_type = 'taker'\n          var held_asset = 5.25\t\t\t\t\n          var buy_spy = jasmine.createSpy('buy')\n          var sut = createEngine(currency_amount, buy_pct, deposit, order_type, held_asset, buy_spy)\n          // act\n          sut.executeSignal(signal_type)\n          // assert\n          expect(buy_spy).not.toHaveBeenCalled()\n        })\n        */\n      })\n    })\n  })\n})\n\nvar mock = require('mock-require')\nvar path = require('path')\n\nfunction createEngine(currency_amount, buy_pct, deposit, order_type, held_asset, buy_spy){\t\n  var fake_asset = 'test_asset'\n  var fake_currency = 'BTC'\n  var fake_exchange = 'test_exchange'\n  var fake_project = 'test_product'\n  var fake_bid = 0.10\n  var fake_ask = 0.11\n  var fake_balance = { currency: currency_amount, asset: held_asset }\n  \n  var fake_product = {\n    'asset': fake_asset,\n    'currency': fake_currency,\n    'min_total': '0.1',\n    'max_size': null,\n    'increment': '0.01',\n    'label': 'Test TST/BTC'\n  }\n\n  var fake_return = {\n    'conf': {\n      eventBus: new EventEmitter(),\n      output: {\n        api: {}\n      }\n    },\n    'exchanges.test_exchange' : function() { return {\n      getProducts: function() { return [fake_product] },\n      getQuote: function(product, callback){ callback(null, { bid: fake_bid, ask: fake_ask}) },\n      getBalance: function(args, callback){ return callback(null, fake_balance)},\n      buy: buy_spy,\n      name: fake_exchange,\n      makerFee: 0.1,\n      takerFee: 0.2\n    }\n    },\n    'lib.notify': {\n      pushMessage: function(/*title, message*/){ }\n    }\n  }\n  var exchange_path = path.resolve(__dirname, '../../extensions/exchanges/test_exchange/exchange')\n  mock(exchange_path, fake_return['exchanges.test_exchange'])\n  mock('./notify', fake_return['lib.notify'])\n  \n  var input = {\n    options: {\n      selector: {\n        exchange_id:fake_exchange,\n        product_id:fake_project,\n        asset:fake_asset,\n        currency: fake_currency\n      },\n      period: '30m',\n      markdown_buy_pct : 2,\n      mode:'live',\n      order_type: order_type,\n      buy_pct:buy_pct,\n      deposit:deposit\n    }\n  }\n  var engine = require('../../lib/engine')\n  \n  return engine(input, fake_return['conf'])\n}"
  },
  {
    "path": "test/lib/format.test.js",
    "content": "let { formatAsset, formatCurrency, formatPercent } = require('../../lib/format')\n\ndescribe('Format', () => {\n  describe('formatAsset', () => {\n    it('formats assets as expected', () => {\n      expect(formatAsset(5, 'USD')).toBe('5.00000000 USD')\n    })\n  })\n  describe('formatCurrency', () => {\n    it('formats currency as expected', () => {\n      expect(formatCurrency(1000, 'USD')).toBe('1000.00 USD')\n      expect(formatCurrency(100, 'THING')).toBe('100.000 THING')\n      expect(formatCurrency(1, 'GBP')).toBe('1.00000 GBP')\n      expect(formatCurrency(0.008, 'XRP')).toBe('0.00800000 XRP')\n      expect(formatCurrency(10, 'USD', true)).toBe('10.0000')\n      expect(formatCurrency(10, 'USD', false, false, true)).toBe('10.0000 USD')\n    })\n  })\n  describe('formatPercent', () => {\n    it('formats percentages as expected', () => {\n      expect(formatPercent(0.1)).toBe('+10.00%')\n      expect(formatPercent(-0.03)).toBe('-3.00%')\n      expect(formatPercent(0.0005)).toBe('+0.05%')\n    })\n  })\n})"
  },
  {
    "path": "test/lib/rsi.test.js",
    "content": "var RSI = require('../../lib/rsi')\n\ndescribe('RSI (Relative Strength Index)', function () {\n\n  it('should calculate RSI with default period', function () {\n    RSI(normalData, 'rsi', 14)\n\n    expect(normalData.period.rsi).toEqual(32.26)\n  })\n\n  it('should set RSI to 100 when there is no losses for the entire period', function() {\n    RSI(noLossData, 'rsi', 14)\n\n    expect(noLossData.period.rsi).toEqual(100)\n  })\n\n  it('should set RSI to 0 when there is no gains for the entire period', function() {\n    RSI(noGainData, 'rsi', 14)\n\n    expect(noGainData.period.rsi).toEqual(0)\n  })\n\n  it('should set RSI to 0 when there is no price change for the entire period', function() {\n    RSI(noPriceChangeData, 'rsi', 14)\n\n    expect(noPriceChangeData.period.rsi).toEqual(100)\n  })\n})\n\n\nvar normalData = {\n  lookback: [\n    {close: 46.28},\n    {close: 46.00},\n    {close: 46.03},\n    {close: 46.41},\n    {close: 46.22},\n    {close: 45.64},\n    {close: 46.21},\n    {close: 46.25},\n    {close: 45.71},\n    {close: 46.45},\n    {close: 45.78},\n    {close: 45.35},\n    {close: 44.03},\n    {close: 44.18},\n    {close: 44.22},\n    {close: 44.57},\n    {close: 43.42},\n    {close: 42.66},\n    {close: 43.13}\n  ],\n  period: {}\n}\n\nvar noLossData = {\n  lookback: [\n    {close: 46.08},\n    {close: 46.18},\n    {close: 46.28},\n    {close: 46.38},\n    {close: 46.48},\n    {close: 46.58},\n    {close: 46.68},\n    {close: 46.78},\n    {close: 46.88},\n    {close: 46.98},\n    {close: 47.08},\n    {close: 47.18},\n    {close: 47.28},\n    {close: 47.38},\n    {close: 47.48},\n    {close: 47.58},\n    {close: 47.68},\n    {close: 47.78},\n    {close: 47.88}\n  ],\n  period: {}\n}\n\nvar noGainData = {\n  lookback: noLossData.lookback.slice(0).reverse(),\n  period: {}\n}\n\nvar noPriceChangeData = {\n  lookback: [\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8},\n    {close: 46.8}\n  ],\n  period: {}\n}\n\n"
  },
  {
    "path": "test/lib/srsi.test.js",
    "content": "var SRSI = require('../../lib/srsi')\n\ndescribe('SRSI (StochRSI Oscillator)', function () {\n\n  it('should calculate SRSI with default period', function () {\n    SRSI(data, 'srsi', 14, 3, 3)\n\n    expect(data.period.srsi_K).toEqual(19.38)\n    expect(data.period.srsi_D).toEqual(23.18)\n  })\n})\n\nvar data = {\n  lookback: [\n    {rsi:  64.38},\n    {rsi:  66.71},\n    {rsi:  70.29},\n    {rsi:  66.49},\n    {rsi:  71.47},\n    {rsi:  76.17},\n    {rsi:  83.66},\n    {rsi:  81.85},\n    {rsi:  82.55},\n    {rsi:  82.89},\n    {rsi:  78.60},\n    {rsi:  64.78},\n    {rsi:  64.77},\n    {rsi:  70.05},\n    {rsi:  68.76},\n    {rsi:  69.53},\n    {rsi:  70.15}\n  ].reverse(),\n  period: {\n    rsi:  65.61\n  }\n}\n"
  },
  {
    "path": "update.bat",
    "content": "REM git checkout package.json package-lock.json\nREM git pull\n\nrd /q /s node_modules\nnpm install && npm update && npm dedupe"
  },
  {
    "path": "update.sh",
    "content": "#!/bin/bash\n# the below will work assuming no other custom modifications have been made.\nrm -rf node_modules/\ngit checkout package.json package-lock.json\ngit pull\nnpm install && npm update && npm dedupe\n"
  },
  {
    "path": "webpack-src/js/app.js",
    "content": "// Import Bootstrap\nimport 'bootstrap'\nimport 'bootstrap/dist/css/bootstrap.min.css'\nimport 'counterup/jquery.counterup.js'\nimport 'waypoints/lib/jquery.waypoints.min.js'\nimport '../../templates/dashboard_assets/js/custom.js'\nimport '../../templates/dashboard_assets/js/jquery.slimscroll.js'\nimport '../../templates/dashboard_assets/css/style.css'\nimport '../../templates/dashboard_assets/css/spinners.css'\nimport '../../templates/dashboard_assets/css/animate.css'\nimport '../../templates/dashboard_assets/css/colors/default.css'\n"
  },
  {
    "path": "webpack-src/js/echarts.js",
    "content": "var echarts = require('echarts/lib/echarts')\n\nrequire('echarts/lib/chart/line')\nrequire('echarts/lib/chart/bar')\nrequire('echarts/lib/chart/candlestick')\nrequire('echarts/lib/chart/scatter')\nrequire('echarts/lib/component/tooltip')\nrequire('echarts/lib/component/dataZoom')\nrequire('echarts/lib/component/markPoint')\nrequire('echarts/lib/component/toolbox')\n\nmodule.exports = echarts"
  },
  {
    "path": "webpack.config.js",
    "content": "'use strict'\n\nconst path = require('path')\n\nconst webpack = require('webpack')\nconst MiniCssExtractPlugin = require('mini-css-extract-plugin');\n\nmodule.exports = {\n  entry: {\n    app: './webpack-src/js/app.js',\n    echarts: './webpack-src/js/echarts.js'\n  },\n  optimization: {\n    minimize: true\n  },\n  plugins: [\n    new webpack.ProvidePlugin({\n      $: 'jquery',\n      jQuery: 'jquery',\n      'window.jQuery': 'jquery',\n      Popper: ['popper.js', 'default'],\n    }),\n    new MiniCssExtractPlugin({\n      filename: '[name].bundle.css'\n    })\n  ],\n  output: {\n    publicPath: '/assets-wp/',\n    path: path.join(__dirname, '/dist/'),\n    filename: '[name].bundle.js'\n  },\n  module: {\n    rules: [\n      { \n        test: /\\.js$/, \n        loader: 'babel-loader', \n        exclude: /(node_modules)/, \n        options: { presets: ['env'] } },\n      {\n        test: /\\.(scss)$/,\n        use: [{\n          loader: 'style-loader', // inject CSS to page\n        }, {\n          loader: 'css-loader', // translates CSS into CommonJS modules\n        }, {\n          loader: 'postcss-loader', // Run post css actions\n          options: {\n            plugins: function () { // post css plugins, can be exported to postcss.config.js\n              return [\n                require('precss'),\n                require('autoprefixer')\n              ]\n            }\n          }\n        }, {\n          loader: 'sass-loader' // compiles SASS to CSS\n        }]\n      },\n      {\n        test: /\\.css$/,\n        use: [MiniCssExtractPlugin.loader, 'css-loader']\n      },\n      { \n        test: /\\.eot(\\?v=\\d+\\.\\d+\\.\\d+)?$/, \n        loader: 'file' \n      },\n      { \n        test: /\\.(woff|woff2)$/, \n        use: ['url-loader', \n        { options: \n          { \n            limit: 5000\n          } \n        } ] \n      },\n      { \n        test: /\\.ttf(\\?v=\\d+\\.\\d+\\.\\d+)?$/, \n        use: [{\n          loader: 'url-loader', \n          options: { \n            limit: 10000, \n            mimetype: 'application/octet-stream' \n          } \n        }] \n      },\n      { \n        test: /\\.svg(\\?v=\\d+\\.\\d+\\.\\d+)?$/, \n        use: [{\n          loader: 'url-loader', \n          options: { \n            limit: 10000, \n            mimetype: 'image/svg+xml' \n          } \n        }] \n      },\n      {\n        test: require.resolve('jquery'),\n        use: [{\n          loader: 'expose-loader',\n          options: {\n            exposes: ['$','jQuery']\n          }\n        }]\n      },\n      {\n        test: require.resolve('./webpack-src/js/echarts.js'),\n        use: [{\n          loader: 'expose-loader',\n          options: {\n            exposes: ['echarts']\n          }\n        }]\n      }\n    ],\n  },\n}\n"
  },
  {
    "path": "zenbot.bat",
    "content": "node zenbot.js %*\n"
  },
  {
    "path": "zenbot.js",
    "content": "\nvar semver = require('semver')\nvar path = require('path')\nvar program = require('commander')\nprogram._name = 'zenbot'\n\nvar versions = process.versions\n\nif (semver.gt('8.3.0', versions.node)) {\n  console.log('You are running a node.js version older than 8.3.x, please upgrade via https://nodejs.org/en/')\n  process.exit(1)\n}\n\nvar fs = require('fs')\n  , boot = require('./boot')\n\nboot(function (err, zenbot) {\n  if (err) {\n    throw err\n  }\n  program.version(zenbot.version)\n\n  var command_directory = './commands'\n  fs.readdir(command_directory, function(err, files){\n    if (err) {\n      throw err\n    }\n    \n    var commands = files.map((file)=>{\n      return path.join(command_directory, file)\n    }).filter((file)=>{\n      return fs.statSync(file).isFile()\n    })\n\n    commands.forEach((file)=>{\n      require(path.resolve(__dirname, file.replace('.js','')))(program, zenbot.conf)\n    })\n\n    program\n      .command('*', 'Display help', { noHelp: true })\n      .action((cmd)=>{\n        console.log('Invalid command: ' + cmd)\n        program.help()\n      })\n\n    program.parse(process.argv)\n  })\n})\n"
  },
  {
    "path": "zenbot.sh",
    "content": "#!/bin/sh\nenv node zenbot.js $@\n"
  }
]