Crypto Trading Bot

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

Trades / Positions / Orders

Manual Orders

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

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).
Trading Bots Inspiration
Other bots with possible design pattern
Strategies
Some strategies based on technical indicators for collection some ideas
评论