Skip to content

Haehnchen/crypto-trading-bot

Repository files navigation

Crypto Trading Bot

Build Status

A cryptocurrency trading bot supporting multiple exchanges via CCXT.

Not production ready only basic functionality

Features

  • Multi pair support in one instance
  • sqlite3 storage for candles, tickers, ...
  • Webserver UI with dashboard
  • Support for going "Short" and "Long"
  • Signal browser dashboard for pairs
  • Slack, Telegram and email notification
  • Profile-based bot management with strategy execution
  • CCXT-based exchange support (100+ exchanges)

Technical stuff and packages

How to use

[optional] Preinstall

For building sqlite and indicators libraries (if needed)

sudo apt-get install build-essential

Start

npm install --production
npm start
# or with special port
# npm start -- --port=55555
open browser: http://127.0.0.1:8080

Web UI

Dashboard

Webserver UI

Trades / Positions / Orders

Webserver UI

Manual Orders

Webserver UI

Build In Strategies

Common strategy with indicators are inside, which most of the time are not profitable. See some more advanced strategy in the list below

Find some example strategies inside src/strategy/strategies

Custom Strategies

For custom strategies use var/strategies folder.

# simple file structure
var/strategies/your_strategy.js

# or wrap strategy into any sub folder depth
var/strategies/my_strategy/my_strategy.js

Signals

Slack

Webserver UI

Tests

npm test

Security / Authentication

As the webserver provides just basic auth for access you should combine some with eh a https for public server. Here s simple proxy_pass for nginx.

# /etc/nginx/sites-available/YOURHOST
server {
    server_name YOURHOST;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/YOURHOST/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/YOURHOST/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

Setting Up Telegram Bot

First, you'll need to create a bot for Telegram. Just talk to BotFather and follow simple steps until it gives you a token for it. You'll also need to create a Telegram group, the place where you and crypto-trading-bot will communicate. After creating it, add the bot as administrator (make sure to uncheck "All Members Are Admins").

Retrieving Chat IDs

Invite @RawDataBot to your group and get your group id in sended chat id field

Message
 ├ message_id: 338
 ├ from
 ┊  ├ id: *****
 ┊  ├ is_bot: false
 ┊  ├ first_name: 사이드
 ┊  ├ username: ******
 ┊  └ language_code: en
 ├ chat
 ┊  ├ id: -1001118554477
 ┊  ├ title: Test Group
 ┊  └ type: supergroup
 ├ date: 1544948900
 └ text: A

Look for id: -1001118554477 is your chat id (with the negative sign).

Related Links

Trading Bots Inspiration

Other bots with possible design pattern

Strategies

Some strategies based on technical indicators for collection some ideas