EazeBot
Introduction
- Have you ever traded cryptocurrencies and lost overview of your planned buys/sells?
- Have you encountered the experience that your buy order was executed while you slept, and before you could place any stop-loss, the price rushed so deep that you made huge loss?
- Have you ever complained about that there is no exchange where you can set for one and the same coin a sell order and a stop-loss at the same time?
- Have you ever had a really good trading plan but then you got greedy or anxious and messed it up?
Then EazeBot is your man!
EazeBot is a free Python-based Telegram bot that helps you defining an unlimited number of trade sets that will then be carried out for you via exchange APIs. Such a trade set is consisting of buy/sell levels and amounts and an optional stop-loss level. EazeBot lets you check the progress of your tradings, tells you about filled orders and triggered stop losses, and can tell your balances. Breakout trading (set buy order if daily candle closes over price X) are supported, too.
Most importantly: All popular exchanges are supported! (for supported exchanges see here)
Installation
There are different ways to install EazeBot. We recommend using Docker as this guarantees system- independent compatibility.
After the next steps, no matter if you are on Windows or Linux/Mac, you should have at least a "user_data" folder in your target folder containing two json files (APIs.json and botConfig.json). Under Windows there are additional bat files for easier execution.
With docker
You require Docker to be installed on your system.
-
Create a new folder for EazeBot
-
Download (right click, save link as) this File to that folder.
-
Open a terminal, cd to your EazeBot directory and run
docker-compose run --rm eazebot --init
With Pip
You require Python 3.6 or higher to be installed on your system.
Windows
We simplified installation/configuration of the bot on Windows:
- Simply download (right click, save link as) this File ) and put the file in a folder, where you wish EazeBot files to be installed.
- Then execute it.
Linux/Mac
-
The simpliest and recommended way of installing EazeBot is using the pip install command:
sudo python3 -m pip install eazebot
-
You then need to copy the configuration files to some folder. Here is an example to make a folder in your home directory and copy the files there:
sudo mkdir ~/eazebot cd ~/eazebot python3 -m eazebot --init"
Getting Started
After installation of EazeBot you have to set up the bot so that you can control him via Telegram and that he can access your exchanges.
Obtain the necessary configuration tokens and keys
For this the following steps are necessary:
-
Create a Telegram bot token using @botfather
- This sounds complicated but is rather simple. Start a chat with Botfather on Telegram and follow these instructions. The token you get in the end is needed during EazeBot configuration.
-
Get your Telegram ID
- Your Telegram ID is needed during EazeBot configuration, too. It ensures that only you are able to control the bot via Telegram. The Telegram ID is (normally) a 9-digit number.
- If you do not know it, you can talk to the userinfobot.
-
Create API keys for each exchange you want to access via EazeBot
- Please refer on your exchange on how to create an API token.
- Some exchanges allow you to determine what you can do with the created API token (e.g. read-only or no withdrawing etc.). Of course, EazeBot bot needs the permission to set and cancel orders for you and to fetch your balance in order to work properly. Also, if you want to use the built-in donation feature, it needs the right to withdraw.
- Normally, once you created an API token, you will see an API key and an API secret (sometimes also called private key). This information is needed during EazeBot configuration, so save it temporarily somewhere.
- Some exchanges also have more security factors, like a API password (not your exchange login password!)or an uid. If existent, please temporarily save this information as you will need it for EazeBot configuration, too.
Interactive configuration
With docker
Run the following command in your EazeBot folder:
docker-compose run --rm eazebot --config
With pip / others
Run the following command in your EazeBot folder:
python3 -m eazebot --config"
Manual configuration
We recommend the interactive configuration, as editing the json files in the wrong way may lead to EazeBot not being functional! However, here is how you can configure EazeBot manually (all json files are located in the user_data folder within your EazeBot folder, assuming you have installed EazeBot correctly):
- The Telegram bot token needs to be inserted into the botConfig.json file: Replace the PLACEHOLDER text to the right of the telegramAPI key (keep the quotation marks!).
- Your Telegram ID needs to be inserted into the botConfig.json file: Replace the PLACEHOLDER text to the right of the telegramUserId key (keep the quotation marks!).
- Each API key information needs to be inserted into the APIs.json between the brackets in the following format:
{ "exchange": "xxx", "key": "xxx", "secret": "xxx", "password": "xxx", "uid": "xxx" }
- The value under exchange needs to be in lower case and be one of the exchanges supported by ccxt (i.e. a value from the id column).
- As mentioned above, password and uid are only necessary on some exchanges. If not available, completely discard these lines.
Start EazeBot
Now you can run the bot and start a conversation via Telegram.**
- On Windows, double-click on startBot.bat in your EazeBot folder.
- On Linux/Mac use the terminal, go to your EazeBot folder and run this command:
python3 -m eazebot
- Thereafter you should start a conversation with your bot (see Token creation with bot father) on Telegram.
- The bot will welcome you and show you a menu of things you can do. Everything should be rather self-explanatory as the bot will have a dialog with you on everything you click.
- Enjoy!
Update EazeBot
From time to time you should update EazeBot:
- Stop EazeBot with Telegram by clicking on Settings in the main menu, then *Stop bot* and then confirm the stop dialog.
- The way of updating depends on your OS and installation:
- Windows:
- Double-clicking on updateBot.bat in your EazeBot folder
- Linux/Mac:
- Execute
python -m pip install -U eazebot
when installed with pip - Executing
docker-compose pull
when installed with docker
- Execute
- Windows:
- Restart the Bot
Help
We have added a Wiki with more details on installing and handling the bot. You may also open an issue if you encounter bugs or want to suggest improvements.
Versioning
For the versions available, see the tags on this repository.
Authors
- Marcel Beining - Ground work - MBeining
License
You may copy, distribute and modify the software provided that modifications are described and licensed for free under LGPL-3. Derivatives works (including modifications or anything statically linked to the library) can only be redistributed under LGPL-3, but applications that use the library don't have to be. See the LICENSE and LICENSE.LESSER file for details
Features to be added
Depending on my time and/or putative incentives (donations), I plan to add the following features (any suggestions welcome):
- add instant buy / sell
- move profit into fiat after trade set finished
- option to avoid flash crash SL triggering by checking e.g. after 5 min if SL is still reached.
- add info to the trade set what the current gain/loss would be when price reaches SL
- update the Wiki
Donations
If you want to support our project or simply want to say thank you for the profit you made with this bot, you can either use send your donation to one of the crypto addresses below, or use the built-in donation feature (Bot Info -> Donate button).
Currency | Address |
---|---|
Bitcoin | bc1q5wfzxdk3xhujs6589gzdeu6fgqpvqrel5jzzt2 |
ETH | 0xE0451300D96090c1F274708Bc00d791017D7a5F3 |
Neo | AaGRMPuwtGrudXR5s7F5n11cxK595hCWUg |
XLM | GCEAF5KYYUJSYPEDAWTZUBP4TE2LUSAPAFNHFSY54RA4HNLBVYOSFM6K |
USDT (ERC20) | 0x55b1be96e951bfce21973a233970245f728782f1 |
USDT (TRC20) | TGTh3ts5sdhBnGDm9aacUHLmdryPnCa8HJ |
New! Also accepting payments via beerpay
Want a new feature to be implemented to EazeBot?
Thank you very much!