A complete open source system for tracking and visualizing cryptocurrency price movements on leading exchanges
Switch branches/tags
Nothing to show
Clone or download

README.md

Build Status

CryptoTracker

CryptoTracker makes it easy for you to collect, store, analyze, visualize, and monitor cryptocurrency data. You can use this open source project to track Price, Bid/Ask Spreads, Size, and Volume, test hypotheses about markets, build machine learning models to predict price movements, understand volatility, arbitrage / algorithmically trade, and more. CryptoTracker enables high-quality cryptocurrency R&D across all major exchanges.

Pull Requests welcome and encouraged.

Supported Exchanges

  1. BitFinex
  2. BitTrex
  3. Bitmex
  4. GDAX
  5. Gemini
  6. Kraken
  7. OKCoin
  8. Poloniex
  9. BitMex

Screenshots

Dashboard 1

Dashboard 2

Requirements

  1. Docker

Optional Configuration

  1. Adjust timer settings in settings.py
  2. Verbosity of logs can be configured in default.env

Running

docker-compose build && docker-compose up

This command will build and launch 3 docker containers: Elasticsearch, Kibana, and python2.7. Elasticsearch is used as our datastore, Kibana is used to setup visualizations and dashboards, and python2.7 operates our application. Elasticsearch and Kibana are customizable via .yml and Dockerfiles (included), and python2.7 is automatically configured for you to run after an initial setup delay. Once the system loads, which could take a few minutes, you should be able to navigate to Kibana to see all of the data that's flowing from the exchanges into Elasticsearch.

http://localhost:5601/

If this is the first time running Kibana, it may take an additional minute to load as the container runs it's initial optimization script. You will also need to add the following index patterns, with Time-field name being set to tracker_time:

eth.*.ticker
btc.*.ticker
*.*.ticker

A json file containing saved objects and dashboards is provided under /resources. This file can be imported from Kibana's UI by navigating to Management->Saved Objects->Import. Auto-Refresh interval on all dashboard has been preconfigured for 5 seconds.

Production Settings

On a live system, vm_map_max_count should be permanently set in /etc/sysctl.conf:

 $ grep vm.max_map_count /etc/sysctl.conf
 vm.max_map_count=262144

Additional Resources

In a development environment, a kibana configuration script is provided at resources/configure-kibana.sh to help automatically set default indexes, set refresh timers, and import all the graphs/dashboards. This configuration script is not recommended in production yet due to occasional issues with the discover tab not responding after import.

Provided By

EthVentures