Skip to content

Magic8bot is a cryptocurrency trading bot using Node.js and MongoDB.

License

Notifications You must be signed in to change notification settings

magic8bot/magic8bot

Repository files navigation

Build Status codecov

logo

How To Use

The master branch is unstable. Do not depend on it working correctly or even running at all.

checkout stable

Requirements

The only 2 supported exchanges are coinbasepro and binance although the bot is capable of supporting any exchange that ccxt supports with the addition of small adapter file, found in./src/exchange/adapters.

There are a minimal amount of strategies and technical indicators implemented as well.

*The UI is not required to run. It just makes things easier.

If you have questions, just ask on discord. The invite link is below.

Magic8Bot Installation

There are 2 repos (magic8bot and ui) that need to be installed. To do that, you will need to clone them. Let's go!

Clone the magic8bot repo:

git clone https://github.com/magic8bot/magic8bot.git

Clone the UI repo:

git clone https://github.com/magic8bot/ui.git

Go to /magic8bot folder and run:

npm install

Go to /ui folder and run:

npm install

You also need a .env inside the /magic8bot folder. You can just copy .env-sample and rename it .env

Once you're done you need to run this command in both the magic8bot and ui folders:

npm run start:dev

you'll need to open 2 terminals

Development

M8bot is entering stage 2 of development. I'm separating out all the moving parts into stateless microservices. The idea is to be able to auto-scale individual parts of the bot as load increases on each part.

The parts:

  • ui
    • Is the UI/control panel for the bot
  • web-server
    • This is the layer that sits between the UI and the bot
  • smq
    • Not a micro-service but a critical shared library
    • Used for communication between micro-services
  • db
    • Not a micro-service but a critical shared library
    • Used for establishing a connectio to the database
    • Provides shared data models for the micro-services
  • pub/sub
    • Not yet implemented
    • Publishes events for mass consumption
    • Might be integrated into smq
  • trade
    • Currently part of core but will be a micro-service
    • Handles syncing data from the exchange to the database
  • period
    • Currently part of core but will be a micro-service
    • Generates candle (OHLCv) data
    • Emits candle data events via pub/sub
  • strategy
    • Currently part of core but will be a micro-service
    • Listens to candle events
    • Calculates signals
    • Sends signals via simple message queue
  • order
    • Currently part of core but will be a micro-service
    • Handles opening and closing positions
    • Consumes signal via simple message queue

Disclaimer

  • This bot is NOT a sure-fire profit machine. Use it AT YOUR OWN RISK.
  • Crypto-currency is still an experiment, and therefore so is this bot. Meaning, both may fail at any time.
  • Running a bot, and trading in general requires careful study of the risks and parameters involved. A wrong setting can cause you a major loss.
  • Never leave the bot un-monitored for long periods of time. this bot doesn't know when to stop, so be prepared to stop it if too much loss occurs.
  • Often times the default trade parameters will underperform vs. a buy-hold strategy, so run some simulations and find the optimal parameters for your chosen exchange/pair before going "all-in".

Chat with other users

logo

this bot has a Discord chat! You can get in through this invite link.

Donate

notVitaliy (author)

BTC: 3Q5DP8gRR5rxyzrfDRkCYgaFESsrj9Ti7o

ETH: 0xF0C99295CE430cc0B2ed6B9aa31a7fC10Cf0EaA9

logo

Thanks!

About

Magic8bot is a cryptocurrency trading bot using Node.js and MongoDB.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published