DEV Community

Cover image for A PyQt5 desktop crypto signal scanner with Telegram charts (ccxt + pandas-ta + paper trading)
Mehmet Bulat
Mehmet Bulat

Posted on

A PyQt5 desktop crypto signal scanner with Telegram charts (ccxt + pandas-ta + paper trading)

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
Enter fullscreen mode Exit fullscreen mode

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.json and ads.json out of version control.

If you want to contribute (new indicators, profiles, UI improvements), PRs are welcome.

Top comments (0)