If you follow crypto markets, you know the real pain is not just building a strategy — it’s repeating the workflow consistently:
- scanning the same pairs
- checking multiple indicators
- summarizing signals
- sending clean updates to Telegram
So I built an open-source PyQt5 desktop app that scans selected crypto pairs via ccxt, calculates TA indicators via pandas-ta, produces a multi-indicator score, and ships a rich Telegram message with charts.
Repo: https://github.com/mebularts/crypto-trading-bot-desktop
Important notes:
- This is for analysis/education.
- Real trades are never placed. Paper trading is simulated in-app.
- Exchange keys are optional and used only for read-only balance view.
Highlights
- Strategy profiles: scalp (1m), intraday (5m), swing (1h) (ccxt OHLCV)
- Indicator stack: RSI, MACD, Stochastic, Aroon, Bollinger Bands, ATR, Parabolic SAR, OBV (+ optional CoinGecko dominance)
- Multi-indicator voting, ATR-based risk score, TP/SL suggestion, dynamic refresh interval
- Telegram delivery: media group with charts (price / RSI / MACD / Bollinger) + text summary + optional signature footer
- Paper trading simulation: risk %, cash, PnL, and position tracking in the UI
- Ads scheduler: one-off campaigns from
ads.json(text or image), auto-deactivates after send - UI: dark theme via
qt_material, pair search, select/deselect all
Tech stack
Python 3.10+, PyQt5, qt_material, ccxt, pandas, pandas-ta, matplotlib, requests, python-telegram-bot.
Quickstart
pip install -r requirements.txt
copy user.example.json user.json
copy ads.example.json ads.json
python main.py
Then edit user.json:
-
bot_token,chat_id -
profile: scalp | intraday | swing - paper trading settings and
signature(optional)
Safety
- Not financial advice.
- Use read-only exchange keys if you enable balance view.
- Keep
user.jsonandads.jsonout of version control.
If you want to contribute (new indicators, profiles, UI improvements), PRs are welcome.
Top comments (0)