A cryptocurrency trading bot supporting multiple exchanges via CCXT.
Not production ready only basic functionality
- 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)
- node.js
- sqlite3
- technicalindicators
- TA-Lib
- CCXT
- Tailwind CSS 4
- Tradingview widgets
For building sqlite and indicators libraries (if needed)
sudo apt-get install build-essential
npm install --production
npm start
# or with special port
# npm start -- --port=55555
open browser: http://127.0.0.1:8080
Common strategy with indicators are inside, which most of the time are not profitable. See some more advanced strategy in the list below
- dip_catcher
- dca_dipper - Long term invest Dollar-Cost Averaging (DCA) Dip Investor Strategy
Find some example strategies inside src/strategy/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
npm test
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
}
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").
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).
Other bots with possible design pattern
- https://github.com/DeviaVir/zenbot
- https://github.com/magic8bot/magic8bot
- https://github.com/askmike/gekko
- https://github.com/freqtrade/freqtrade
- https://github.com/Ekliptor/WolfBot
- https://github.com/andresilvasantos/bitprophet
- https://github.com/kavehs87/PHPTradingBot
- https://github.com/Superalgos/Superalgos
Some strategies based on technical indicators for collection some ideas
- https://github.com/freqtrade/freqtrade-strategies
- https://github.com/freqtrade/freqtrade-strategies/tree/master/user_data/strategies/berlinguyinca
- https://github.com/xFFFFF/Gekko-Strategies
- https://github.com/sthewissen/Mynt/tree/master/src/Mynt.Core/Strategies
- https://github.com/Ekliptor/WolfBot/tree/master/src/Strategies
- https://github.com/Superalgos/Strategy-BTC-WeakHandsBuster
- https://github.com/Superalgos/Strategy-BTC-BB-Top-Bounce



