A real-time RSI (Relative Strength Index) monitoring bot for Bybit futures markets that sends Telegram alerts for overbought and oversold conditions.
This Python script continuously monitors Bybit linear futures markets (15-minute timeframe) and sends automated Telegram notifications when symbols reach extreme RSI levels:
- 🔴 Overbought Alert: RSI > 70 (Potential short opportunities)
- 🟢 Oversold Alert: RSI < 30 (Potential long opportunities)
- Real-time Monitoring: Scans all available USDT linear futures pairs on Bybit
- Smart Scanning: Optimized to run at the beginning of each 15-minute candle
- Randomized Processing: Shuffles symbol processing order each run for fair distribution
- Duplicate Prevention: Avoids sending repeated alerts for the same condition
- Delisting Detection: Automatically filters out soon-to-be-delisted symbols
- Robust Error Handling: Retry mechanisms and comprehensive error management
- Rate Limit Aware: Respects API limits with intelligent delays
- RSI Period: 14
- Timeframe: 15 minutes
- Data Points: 50 candles for accurate RSI calculation
pybit- Bybit API integrationpython-telegram-bot- Telegram notificationsTA-Lib- Technical analysis (RSI calculation)pandas- Data manipulationnumpy- Numerical computations
pip install pybit python-telegram-bot pandas numpy talibTelegram Bot Setup:
- Create a bot via @BotFather
-
Get your BOT_TOKEN
-
Set your CHAT_ID (group or personal)
- Bybit API:
-
No API keys required for public market data
-
Uses Bybit's public endpoints
- Script Configuration:
-
Update BOT_TOKEN and CHAT_ID in the script
-
Adjust scanning intervals if needed
python rsi_futures_radar.py
🔴 BTCUSDT OVERBOUGHT ALERT 🔴
Symbol: BTCUSDT
RSI: 75.42
Condition: RSI > 70
TimeFrame: 15 min
Consider potential ⬇️ SHORT ⬇️ opportunities
🟢 ETHUSDT OVERSOLD ALERT 🟢
Symbol: ETHUSDT
RSI: 25.18
Condition: RSI < 30
TimeFrame: 15 min
Consider potential ⬆️ LONG ⬆️ opportunities
Adjust RSI thresholds in check_rsi_conditions() function
Modify timeframe by changing interval=15 parameter
Change scanning frequency in should_scan_now() function
Adjust symbol chunk size in shuffle_symbols_chunks()
MIT License - Feel free to modify and distribute.
Contributions, issues, and feature requests are welcome! Feel free to check issues page.
This project is for informational and educational purposes only. You should not use this information or any other material as legal, tax, investment, financial, or other advice. Nothing contained here is a recommendation, endorsement, or offer by me to buy or sell any securities or other financial instruments.
If you intend to use real money, use it at your own risk.
Under no circumstances will I be responsible or liable for any claims, damages, losses, expenses, costs, or liabilities of any kind, including but not limited to direct or indirect damages for loss of profits.
Quantitative researcher and trading systems engineer with end-to-end ownership of systematic strategies — from research and statistical validation to low-latency execution and production deployment.
Core focus areas:
- Systematic strategy design and validation
- Market microstructure analysis (order book dynamics, liquidations, volume, delta, liquidity, spread behavior, funding)
- Backtesting framework development (tick-level and historical data)
- Execution engine architecture and order lifecycle management
- Real-time market data processing
- Risk-aware system design
- Production-grade trading infrastructure (24/7 environments)
Experience across crypto (CEX, DEX), FX, and exchange-traded markets.
- Languages: Python, C++, MQL5
- Execution & Connectivity: REST, WebSocket, FIX
- Infrastructure: Linux, Docker, Redis, PostgreSQL, ClickHouse
- Analytics: NumPy, Pandas, custom backtesting frameworks
- Email: ryu8777@gmail.com
- Telegram: @ryu8777