/artificial-trader

Crypto-currency trading engine written in NodeJS

Primary LanguageJavaScript

Artificial Trader

Deploy

Milestones

Setup

  • Set up a Node server and deploy it to Heroku
  • Setup a Mongo instance in mLab and connect to it from Node
  • Deploy Client app to Surge.sh and point server calls to server's APIs

Server

  • Connect to GDAX sandboxes for development and production environment
  • Handle security based on GDAX/Coinbase account
  • Listen to changes on crypto-currencies
  • Hold feeds in a local data structure
  • Fetch user account info from GDAX
  • Define Rule class
  • Fetch user rules from database
  • Enable Buy/Sell, Taker/Maker actions based
  • Perform transactions based on rules
  • Store transactions in database
  • Expose a REST API to fetch user information, performance and any stored transaction(mode to come here...)
  • Expose a WebSocket API to fetch feeds on both user performance and GDAX feeds
  • Alert via email/SMS/native notifications when a transaction happened

Client

  • Enable new users to enter their Coinbase credentials
  • Enable user to create or reuse rules. Which will affect the percentage-risk for automated trading
  • Enable user to start/stop their artificial traders
  • Connect via Websockets to show transactions realtime
  • Show history and performance

Docs

3rd Party APIs

Rules

I define a Rule as a single instance of multiple trading strategies to be used by the Engine. Rules can be defined by the user and will be stored in the Mongo instance ######Attributes // TODO

Additional thoughts:

  • Create both Desktop and Web versions and share the code as much as possible
  • Enable the user to select what currency to watch
  • Enable user settings in general including the above mentioned and also rules created and current rules used
  • Enable notifications by email or text messages. Also use the native notifications API in the browser