https://github.com/erfaniaa/binance-spot-trading-bot
Easy-to-use Binance spot trading bot
https://github.com/erfaniaa/binance-spot-trading-bot
algo-trading algotrading binance binance-api binance-bot bitcoin crypto cryptocurrency trading-bot
Last synced: 5 months ago
JSON representation
Easy-to-use Binance spot trading bot
- Host: GitHub
- URL: https://github.com/erfaniaa/binance-spot-trading-bot
- Owner: Erfaniaa
- License: gpl-3.0
- Created: 2023-04-27T05:53:52.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-04T14:49:27.000Z (about 3 years ago)
- Last Synced: 2025-04-11T18:40:08.138Z (about 1 year ago)
- Topics: algo-trading, algotrading, binance, binance-api, binance-bot, bitcoin, crypto, cryptocurrency, trading-bot
- Language: Python
- Homepage:
- Size: 29.3 KB
- Stars: 14
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Binance Spot Trading Bot
Easy-to-use automatic trading for Binance Spot with Telegram integration

## Features
- You can run it fast and it's easy to use.
- There are no complexities and no database usage in this project. Even dependencies are a few.
- It's easy for modifying and customization.
- It automatically stores recent candles that can be used for machine learning model input.
- You can read the code for educational purposes.
- You can be notified with Telegram messages
## Run
1. Clone the repository.
2. Generate a Binance API key (with Spot access) and put it in `credentials.py`.
3. Run `pip3 install -r requirements.txt`.
4. Run `python3 init_indicators_dict.py`.
5. Run `python3 main.py`.
This will run an example bot on trading Bitcoin.
## Config
To write custom bots you can:
- Set an initial indicators setting in `init_indicators_dict.py` (because we are handling indicators in the client side with pickle files).
- Set an initial orders setting in `init_orders_dict.py` (because we are handling orders in the client side with pickle files).
- Define new indicators in `indicators.py`.
- Define a new strategy in `main.py` (especially inside `is_it_time_to_open_long_position` and `is_it_time_to_open_short_position` functions).
- Config your bot settings in `config.py`.
**Note:** If you define any machine learning model, you can use `recent_prices_list` as its input.
## Telegram Config
1. Firstly, you need to create a Telegram bot, so talk to [@botfather](https://t.me/botfather).
2. Secondly, need to know your own Telegram user ID, so the bot will know who to send messages to. Talk to [@userinfobot](https://t.me/userinfobot) to get this information.
3. Thirdly, you have to `/start` your bot. Open up a private message with your bot by searching its username, then hit the start button.
4. Finally, set `TELEGRAM_API_KEY` and `TELEGRAM_USER_ID` in `credentials.py`, and `SEND_TELEGRAM_MESSAGE` in `config.py`.
## To-do
- Import modules, not variables.
- Use classes and make `main.py` smaller.
- Add more indicators to `indicators.py`.
- Find a better way for handling error codes.
## See Also
- [Crypto Trading Strategy Backtester](https://github.com/Erfaniaa/crypto-trading-strategy-backtester)
- [Binance Futures Trading Bot](https://github.com/smzerehpoush/binance-futures-trading-bot)
## Credits
[Erfan Alimohammadi](https://github.com/Erfaniaa) and [Amir Reza Shahmiri](https://github.com/Amirrezashahmiri)