TroyBau, troybau.com is a platform for crypto currency exchanges. It provides trading and portfolio management by real-time data flows.
TroyBau was created to manage your crypto portfolio and trades easily from just one UI. Besides automated trading based on price change triggers and various trading strategies, it also provides a real-time updated dashboards for your exchange accounts where you can see all your orders, balances and transactions real-time updated. Also it gives some unique features that all exchanges don’t have; such as OCO.
As usual, it started with my own needs: how might I scratch my own itch? I’m myself using it everyday.
The system consists of the following components:
- Connect to various exchange websocket stream endpoints
- Polls various exchanges API endpoints (if wss not exist)
- Writes changes to DB
- Publishes changes to Redis pub/sub
- Serves Webapp static files
- Exposes DB for Webapp via a API/REST API
- Forwards Redis pub/sub messages from Trader/Monitor to Webapp via WebSocket/HTTP
- Exposes Django modules that is currently used for managing sessions
- Opens/Close orders
- Writes user changes to DB
- Publishes user changes to Redis pub/sub
- REST/WebSocket API-powered App
- Real-time updated overview on orders, transactions, balances and sessions
The server-side parts ,
troybau-trader are written in Python 3 and use a mixture of Django and Tornado (WebSockets, async IO). Other libraries that are used include redis-py, Django REST framework etc.
The webapp is written based on gentelella template. This template uses the default Bootstrap 3 styles along with a variety of powerful jQuery plugins and tools to create a powerful framework for creating admin panels or back-end dashboards.
Webapp scripts included:
- Font Awesome
- Bootstrap Colorpicker
- Date Range Picker for Bootstrap
- jquery.inputmask plugin
- Morris.js - pretty time-series line graphs
- Sidebar Transitions - simple off-canvas navigations
- Skycons - canvas based wather icons
- jQuery Sparklines plugin
- switchery - Turns HTML checkbox inputs into beautiful iOS style switches
- jQuery Tags Input Plugin
- Autosize - resizes text area to fit text
- validator - HTML from validator using jQuery
- jQuery Smart Wizard