Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fabston/TradingView-Webhook-Bot
📊 Send TradingView alerts to Telegram, Discord, Slack, Twitter and Email.
https://github.com/fabston/TradingView-Webhook-Bot
bitcoin bot crypto discord docker flask slack telegram trading tradingview tradingview-webhook-bot tweepy twitter webhook webhooks webhooks-json
Last synced: about 1 month ago
JSON representation
📊 Send TradingView alerts to Telegram, Discord, Slack, Twitter and Email.
- Host: GitHub
- URL: https://github.com/fabston/TradingView-Webhook-Bot
- Owner: fabston
- License: mit
- Created: 2020-04-21T14:05:31.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T14:41:47.000Z (about 1 month ago)
- Last Synced: 2024-10-29T15:26:14.836Z (about 1 month ago)
- Topics: bitcoin, bot, crypto, discord, docker, flask, slack, telegram, trading, tradingview, tradingview-webhook-bot, tweepy, twitter, webhook, webhooks, webhooks-json
- Language: Python
- Homepage:
- Size: 281 KB
- Stars: 1,253
- Watchers: 52
- Forks: 392
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-pinescript - Python Webhook Alert Provider - *The TradingView Webhook Bot listens to TradingView alerts via webhooks using flask. All alerts can be instantly sent to Telegram, Discord, Twitter and/or Email.* (Automated Order Execution / Open Source)
README
About
•
Features
•
Installation
•
Images
•
Help## About
The **TradingView Webhook Bot** ⚙️ listens to [TradingView](https://tradingview.com) alerts via [webhooks](https://www.tradingview.com/support/solutions/43000529348-i-want-to-know-more-about-webhooks/) using [flask](https://flask.palletsprojects.com/en/1.1.x/).
All alerts can be instantly sent to Telegram, Discord, Twitter and/or Email.> 📊 If you are looking for an exchange to trade on, I can recommend **Bybit**.
> **[Sign up now](https://partner.bybit.com/b/20882)** and receive up to **$30,000** in Deposit Rewards!## Features
- Telegram Support using the [Python Telegram](https://github.com/python-telegram-bot/python-telegram-bot) libary.
- Discord Support using [webhooks](https://support.discord.com/hc/de/articles/228383668-Webhooks-verwenden).
- Slack Support using [webhooks](https://api.slack.com/messaging/webhooks).
- Twitter Support using the [tweepy](https://github.com/tweepy/tweepy) libary.
- Email Support using [smtplib](https://docs.python.org/3/library/smtplib.html).
- Alert channels can be enabled or disabled in [`config.py`](https://github.com/fabston/TradingView-Webhook-Bot/blob/master/config.py).
- Dynamically send alerts to different Telegram and/or Discord channels.
- TradingView `{{close}}`, `{{exchange}}` etc. variables support. Read more [here](https://www.tradingview.com/blog/en/introducing-variables-in-alerts-14880/).## Installation
> ⚠️ Best to run the bot on a VPS. I can recommend Hetzner's CX11 VPS for 3.79€/month. [Sign up](https://hetzner.cloud/?ref=tQ1NdT8zbfNY) now and receive **€20 free** credits.
1. Clone this repository `git clone https://github.com/fabston/TradingView-Webhook-Bot.git`
1. Create your virtual environment `python3 -m venv TradingView-Webhook-Bot`
1. Activate it `source TradingView-Webhook-Bot/bin/activate && cd TradingView-Webhook-Bot`
1. Install all requirements `pip install -r requirements.txt`
1. Edit and update [`config.py`](https://github.com/fabston/TradingView-Webhook-Bot/blob/master/config.py)
1. Setup TradingView alerts. An example alert message would be:
```json
{
"key": "9T2q394M92",
"telegram": "-1001277977502",
"discord": "789842341870960670/BFeBBrCt-w2Z9RJ2wlH6TWUjM5bJuC29aJaJ5OQv9sE6zCKY_AlOxxFwRURkgEl852s3",
"slack": "T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX",
"msg": "Long *#{{ticker}}* at `{{close}}`"
}
```
- `key` is mandatory! It has to match with `sec_key` in [`config.py`](https://github.com/fabston/TradingView-Webhook-Bot/blob/master/config.py). It's an extra security measurement to ensure nobody else is executing your alerts
- `telegram`, `discord`, `slack` is optional. If it is not set it will fall back to the config.py settings
- `msg` can be anything. Markdown for [Telegram](https://core.telegram.org/api/entities) and [Discord](https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline-) is supported as well
- TradingViews variables like `{{close}}`, `{{exchange}}` etc. work too. More can be found [here](https://www.tradingview.com/blog/en/introducing-variables-in-alerts-14880/)
- Your webhook url would be `http:///webhook`
1. If you use a firewall be sure to open the corresponding port
1. Run the bot with `python main.py`
1. [PM2](https://github.com/fabston/TradingView-Webhook-Bot/issues/28#issuecomment-766301062) can help you in running the app in the background / on system boot.### Forward Port 80 to 8080 using NGINX
*It is recommended to run flask on a different port like 8080. It is then necessary to forward port 80 to 8080.*
1. Install the necessary packages: `sudo apt-get install nginx`
1. Edit the NGINX configuration file: `sudo nano /etc/nginx/sites-enabled/tv_webhook`
1. Add the following content:
```nginx
server {
listen 80;
server_name ;
location / {
proxy_pass http://127.0.0.1:8080; # Forward traffic to port 8080
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Pass client's IP address
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
1. Restart NGINX `sudo service nginx restart`### Docker
1. Clone this repository `git clone https://github.com/fabston/TradingView-Webhook-Bot.git`
1. Edit and update [`config.py`](https://github.com/fabston/TradingView-Webhook-Bot/blob/master/config.py)
1. `docker-compose build`
1. `docker-compose up`## Images
![Webhook Bot](https://i.imgur.com/vZA42cc.png)## How can I help?
All kinds of contributions are welcome 🙌! The most basic way to show your support is to `⭐️ star` the project, or raise [`🐞 issues`](https://github.com/fabston/TradingView-Webhook-Bot/issues/new/choose).***