How about a Technical Analysis Crypto Bot that runs on specified tickers/intervals and sends buy/sell signals on your Telegram or Discord channels?!
This library includes a set of tools with an easy setup to automatically perform Technical Analysis (TA) on selected cryptocurrencies which are tradable on the Binance Exchange. Furthermore, the bull/bear signals are broadcast to the specified Telegram/Discord channels.
Currently the implemented signals are:
- Change in volume
- Oversold/Overbought RSI
- RSI/price divergence
In order to modify the trigger values for each indicator check nuats_ta.py
, the analyse
function. In the future I will include the trigger values in the config.py
file as well as the selected strategies for generating the desired signals.
Additionally, I would really appreciate it if someone wants to include more TA strategies to generate the buy/sell signals.
Python 3.x required.
Add the package requirements with:
pip3 install -r requirements.txt
In the config.py
file the user can set the following parameters:
TA related parameters:
tickers
: List of tickers to analyse. If empty, all the available tickers in Binance are selected by default. E.g.:['BTCUSDT', 'ETHBTC']
intervals
: List of intervals to analyse. E.g.:['30min','1h','1d']
.n_periods
: Number of periods (bars or klines) for the selected intervals for which the TA will be performed. If blank, default is 500.start_time
: Start of the period to analyse. It will retrieve as many periods as necessary up to right now ifend_time
is not provided. If blank, only the lastn_periods
will be retrieved.end_time
: End of the period to analyse. Parameter only accepted whenstart_time
is provided.
Bot related parameters:
live
: Boolean to indicate if an infinite loop (execution of the bot) is desired. If false, the analysis will be only done once.sleep
: Sleep value forlive
executions. Indicates the time between analysis. Check Binance API restrictions for more info.threading
: Boolean to indicate a multithread execution or serial execution. The bot runs much faster multithreading of course!telegram_token
: Token of the Telegram Bot used to broadcast signals in Telegram channels. More info below.telegram_chat_ids
: List of the chat ids where the Telegram Bot is admin and can send messages. More info below.discord_webhooks
: List of discord webhooks. More info below.
When the desired configuration is set, just run nuats_bot.py
to perform the TA on the tickers selected and automatically broadcast the signals to Telegram/Discord. Make sure to meet the requirements.txt
.
In order to broadcast a message in the Telegram platform you will need to create a Bot with BotFather. Then add the Bot in one of your channels and set it as an admin. You will have received the bot token, which is the telegram_token
parameter you need to fill in the config.py
file.
Finally, get your channel id as explained here and include it in the telegram_chat_ids
list.
You can create a webhook to your own server as explained here. Then copy the webhook link and include it in the discord_webhooks
list of the config.py
file. Easy peasy!
Check useful_links.txt
for interesting GitHub repositories I have looked at to develop this Bot.
Distributed under the MIT License.
Author: Bernat Font Garcia
Email: bernatfontgarcia@gmail.com