Telegram bot · Claude API · FastAPI
Send a ticker, get live indicators and a concise analysis written by Claude, grounded only in numbers the bot computed itself. A web dashboard tracks a watchlist with rule-based Buy / Hold / Sell signals.
Try /analyze NVDA: everyone gets 3 free AI analyses a day.
Features
Works with US and Tel Aviv stocks, indices, crypto and FX. Minor-unit quotes are converted, so TASE prices read in shekels, not agorot.
Indicator card plus a Claude-written read on trend, momentum and risk, citing only the computed numbers.
Instant indicator card: price, 1M / 3M moves, 52-week range, RSI(14), volatility and moving averages.
Side-by-side on 2–4 tickers, ending with which shows the stronger technical setup and why.
Pulse of the S&P 500, Nasdaq, Dow, VIX and TA-125, with AI commentary on top.
Just type a ticker: it's a shortcut for /analyze, and works with Hebrew keyboards too.
A live web view of every tracked ticker, with signals, a 1–5 score and a stance. Open to view; only the owner can edit.
Dashboard
Each ticker gets technical signals computed in code, a 1–5 score and a Buy / Hold / Sell stance. Click a column to sort, hover a signal to see its weight.
| Instrument | Price | 1D | 3M | RSI | vs 52W high | Score | Stance | Signals |
|---|---|---|---|---|---|---|---|---|
| Loading demo data… | ||||||||
Demo built from real market data as of October 2, 2026. The live dashboard runs on the bot's server with current prices (on the free plan it can take a minute to wake up).
How it works
The model never sees raw prices or the internet. Python computes the indicators; Claude only turns that small, auditable snapshot into words.
Every claim in the analysis traces back to a field in the snapshot. Prompts are small, cheap and can't invent news, earnings or price targets.
Buy / Hold / Sell comes from fixed, unit-tested conditions, so every stance can be explained. Claude describes the setup and never prescribes trades.
If Claude is down or the daily AI budget is used up, users still get the full indicator card instantly.
Signals: price vs. SMA 200, stacked averages, RSI extremes, 3-month momentum, distance from the 52-week high, heavy volume. Each bullish signal counts +1, each bearish −1, and every 2 net points move the score one step from a neutral 3, since the trend signals overlap.
Security
The bot is open to anyone on Telegram and the server has a public URL. Every defense is covered by tests, and an independent security review's findings are fixed.
Each visitor gets 3 free AI analyses a day and all visitors share a daily cap, separate from the owner's quota, plus a hard monthly spend limit.
Webhook secret compared in constant time; the app refuses to start with a placeholder or short secret.
The dashboard is read-only for visitors; edits and the raw API need the owner's password. API docs off in production.
A custom request header blocks CSRF; a localhost-only Host check blocks DNS rebinding.
Escaped output, textContent-only rendering, a hash-based CSP, parameterized SQL, strict ticker validation.
Per-user rate limits, concurrent update handling, capped Yahoo fetches, request size limits, bounded caches.
Secrets only in env vars, kept out of git and images; logging that would expose the bot token is silenced.
Non-root container, read-only CI token, pip-audit on every push, weekly Dependabot updates.
Stack
Indicator cards are open to everyone. The full source, tests and design notes are on GitHub.