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
- Clone this repository:
$ git clone https://github.com/lorcalhost/BTB-manager-telegram.git
- Move to
BTB-manager-telegram
's directory:
$ cd BTB-manager-telegram
- 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