Binance Trade Bot Manager Telegram

A Telegram bot for remotely managing Binance Trade Bot.

About

I wanted to develop an easy way of managing [Binance Trade Bot] so that I wouldn't have to constantly ssh into my VPS, and my non-techy friends could enjoy the benefits of automated trading.

As of now the bot is able to perform the following actions:

  • [x] 🔍 Check bot status (running / not running)
  • [x] ▶ Start Binance Trade Bot
  • [x] ⏹ Stop Binance Trade Bot
  • [x] 💵 Display current coin stats (balance, USD value, BTC value, initial buying price)
  • [x] ➗ Display current coin ratios
  • [x] 📈 Display progress (how much more of a certain coin you gained since you started using Binance Trade Bot)
  • [x] ⌛ Display trade history
  • [x] 📜 Display last 4000 characters of log file
  • [x] 👛 Edit coin list (supported_coin_list file)
  • [x] ⚙ Edit user configuration (user.cfg file)
  • [x] ❌ Delete database file (crypto_trading.db file)
  • [x] 📤 Export database file
  • [x] ⬆ Update Binance Trade Bot (and notify when new update is available)
  • [x] ⬆ Update Binance Trade Bot Manager Telegram (and notify when new update is available)
  • [x] 🚨 Panic button (Kills Binance Trade Bot Manager Telegram and cancels all open orders / sells at market price)
  • [x] User defined custom scripts

The program's default behavior fetches Telegram token and chat_id from [Binance Trade Bot]'s apprise.yml file.
Only the Telegram users in the chat with chat_id equal to the one set in the apprise.yml file will be able to use the bot.

⚠ The program is fully compatible with Linux and Windows through [WSL];
RWX permission problems are present on native Windows and MacOS.

Installation

Python 3 is required.
BTB-manager-telegram should be installed in the same parent directory as Binance Trade Bot.
Your filesystem should look like this:

.
└── *parent_dir*
    ├── BTB-manager-telegram
    └── binance-trade-bot
  1. Clone this repository:
$ git clone https://github.com/lorcalhost/BTB-manager-telegram.git
  1. Move to BTB-manager-telegram's directory:
$ cd BTB-manager-telegram
  1. Install BTB-manager-telegram's dependencies:
$ python3 -m pip install -r requirements.txt

⚠ Make sure the correct rwx permissions are set and the program is run with correct privileges.

Setup

  • For a quick Telegram bot setup guide click here.
  • For a Docker setup guide click here.
  • If you would like to run several Binance Trade Bot instances at the same time click here.

Note:
BTB-manager-telegram also supports user defined custom scripts.

Usage

BTBManagerTelegram can be run directly by executing the following command:

# Run normally
$ python3 -m btb_manager_telegram

# If the bot is running on a server you may want to keep it running even after ssh connection is closed by using nohup
$ nohup python3 -m btb_manager_telegram &

# If you are using a virtual environment for the binance trade bot you can specify the Python binary path
$ python3 -m btb_manager_telegram --python_path=/home/pi/binance-trade-bot/venv/bin/python

Make sure Binance Trade Bot's apprise.yml file is correctly setup before running.


Note:
If Binance Trade Bot and BTB-Manager-Telegram were not installed in the same parent directory or you want to use different token and chat_id from the ones in the apprise.yml file, the following optional arguments can be used:

optional arguments:
  -p PATH, --path PATH  (optional) binance-trade-bot installation path
  -y PYTHON, --python_path PYTHON_PATH
                        (optional) Python binary to be used for the BTB. If unset, uses the same executable (and thus virtual env if any) than the telegram bot.
  -t TOKEN, --token TOKEN
                        (optional) Telegram bot token
  -c CHAT_ID, --chat_id CHAT_ID
                        (optional) Telegram chat id
  -d DOCKER, --docker DOCKER
                        (optional) Run the script in a docker container.
                        NOTE: Run the 'docker_setup.py' file before passing this flag.

Interaction

Interaction with BTBManagerTelegram can be started by sending the /start command in the bot's Telegram chat.
Every time the Telegram bot is restarted, the /start command should be sent again.

You can also add the bot to a group if multiple people need to access this bot. Please note that each user will have to type /start in the group, before they can start interacting with the bot.

Screenshots

         

GitHub

https://github.com/lorcalhost/BTB-manager-telegram