tradebot
Decentralized cryptocurrency trading platform with portfolio, accounting / tax reports, and automated trading bot. See README-OVERVIEW for details.
Current Features
- Run locally (your computer, your data), centralized (hosted), or decentralized (Ethereum).
- User friendly web interface
- Plugin architecture supports financial indicators, trading strategies, exchanges and wallets
- Portfolio shows hosted exchange and offline wallet balances
- Exchange order / trade history import via API and CSV
- Accounting / tax reporting (form 8949 statement)
- Trading bot to automatically execute trades based on configured trading strategies / indicators
- Json Web Token (JWT) protected APIs
- REST and WebSocket APIs
Roadmap
- Support LILO, dollar value, average cost, and specific identification tax reporting strategies
- Decentralized trading protocol
- Feature voting / bounties
- Marketplace for custom trading strategies and indicators
- Live Charts
- Integrate with open source, decentralized atomic swap exchange(s)
- Financial lending
- Social and communication integration (community chat, share portfolio to social media, etc)
Build
Due to limitations of Golang plugins, this software requires a Linux or Mac operating system to run natively. Debian is a great choice. Docker support is included for Windows users.
git clone git@github.com:jeremyhahn/tradebot.git $GOPATH/src/github.com/jeremyhahn/tradebot
cd $GOPATH/src/github.com/jeremyhahn/tradebot
make deps
make
make test
Dependencies
- Golang
- Make
- Yarn
- OpenSSL
- Docker (Optional)
Linux / Mac OS - Native
After installing the dependencies listed above, simply run make
to build the tradebot
binary. The database will need to be initialized the first time and then it can be started.
# Install dependencies
make deps
# Build backend and webapp
make
# Initialize the database
./tradebot --initdb
# Start in debug mode / logging
./tradebot --debug
Linux / Mac OS - Docker
Simply install docker and run the build-docker.sh
bash script in the project root. Run docker-run.sh
to start a container with the resulting image.
./docker-build.sh
./docker-run.sh
Windows
- Docker Toolkit (Windows Home Edition or < Windows 10)
- Docker Community Edition (Windows 10 Professional or Enterprise)
Windows Home Edition and versions prior to Windows 10 do not support native virtualization. As such, they require docker-machine
included in the Docker Toolkit. Newer versions of Windows that support native virtualization can take advantage of the latest Docker CE with enhanced performance.
Development :: Tech Stack
User Interface
Backend
Requirements
Firewall
Geth requires both TCP and UDP port 30303, otherwise it will not be able to synchronize the chain data with peers on the public network. Be sure these ports are forwarded to the system hosting Geth if it's behind a router/firewall.
Broken
- Fix broken indicators due to float64 -> decimal refactoring
- Add fiat conversion to Bittrex order history (currently only supported by CSV import)
Support
Please consider supporting this project for ongoing success and sustainability. I'm a passionate open source contributor making a professional living creating free, secure, scalable, robust, enterprise grade, distributed systems and cloud native solutions.
I'm also available for international consulting opportunities. Please let me know how I can assist you or your organization in achieving your desired security posture and technology goals.
https://github.com/sponsors/jeremyhahn
https://www.linkedin.com/in/jeremyhahn