Skip to content

jeremyhahn/tradebot

Repository files navigation

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 [email protected]:jeremyhahn/tradebot.git $GOPATH/src/github.com/jeremyhahn/tradebot
cd $GOPATH/src/github.com/jeremyhahn/tradebot
make deps
make
make test

Dependencies

  1. Golang
  2. Make
  3. Yarn
  4. OpenSSL
  5. 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

  1. Docker Toolkit (Windows Home Edition or < Windows 10)
  2. 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

  1. Fix broken indicators due to float64 -> decimal refactoring
  2. 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