StockIQ is a free, open-source web app that gives retail investors institutional-grade technical analysis — moving averages, RSI, Fibonacci retracements, candlestick patterns, options intelligence, and AI-powered forecasts — without a Bloomberg terminal.
https://stpicker.streamlit.app/
The live app runs on Streamlit Community Cloud and is free to use. No account or API key required.
| Page | What it does |
|---|---|
| SPY Dashboard | Real-time SPY price with data timestamp (Yahoo + CBOE parallel fetch, freshest wins), index strip (S&P 500 / Nasdaq / Dow / Russell / VIX), RSI summary card, candlestick chart with VWAP (intraday) and options levels (daily), Options Intelligence section (Put/Call ratio by scope, Max Pain, OI butterfly), SPY gap table, and VIX Fear Gauge |
| SPY AI Outlook | AI-powered 10-day SPY directional forecast — choose from 5 providers: Groq (Llama 3.3 70B, free), Gemini 2.5 Flash (Google, free), DeepSeek-V3 (DeepSeek), GPT-4.1 Mini (OpenAI), or Claude (Anthropic). Context includes gaps, RSI, price action, key levels, and options flow (max pain, call/put wall) |
| SPY Gap Table | Every daily gap since 2022, live fill status, intraday High/Low, RSI, and next-day direction — shareable standalone URL |
| Page | What it does |
|---|---|
| Stock Analyzer | Interactive candlestick chart with MA5/20/50/100/200, weekly MA200, RSI subplot, Fibonacci retracement, 7 reversal patterns, Golden/Death cross, signal score card |
| Candle Screener | Top 50 S&P 500 stocks ranked by candle pattern strength (Strong Buy → Sell), weekly and monthly views |
| Page | What it does |
|---|---|
| Pre-Market Scanner | NASDAQ-100 pre-market movers with a 7-day daily close heatmap |
| NASDAQ RSI Scanner | NASDAQ-100 stocks filtered by RSI — quickly spot oversold / overbought conditions |
| MA200 Bounce Radar | Stocks within 5% of their 200-day MA — classic mean-reversion setups |
| Short Squeeze Scanner | High RSI + short interest = potential short squeeze candidates |
| Analyst Buy Picks | Highest-rated S&P 500 stocks by analyst consensus with ≥5% upside to price target |
| Analyst Sell Picks | Most-downgraded stocks with ≥5% downside to price target |
| Munger Value Picks | Quality companies (ROE, margins, growth, low debt) near their 200-week MA |
| ETF Scanner | Curated ETF categories — Retail Favorites, Semiconductors, Software — ranked by RSI and momentum |
Full-page market hub: live SPY price with data timestamp, index strip, candlestick chart with VWAP, Options Intelligence (Max Pain, Put/Call ratio, OI butterfly), gap table, and VIX Fear Gauge.
Choose your AI provider — Groq, Gemini, DeepSeek, OpenAI, or Claude. The model analyses recent gaps, RSI, price action, and options flow (max pain, call/put wall) to generate a 10-day directional outlook with key levels and a plain-English rationale.
Interactive candlestick chart with MA5/20/50/100/200, weekly MA200, RSI subplot, Fibonacci retracement, seven reversal patterns, and a signal score card.
Curated ETF categories — Retail Favorites, Semiconductors, Software — ranked by RSI and momentum for quick sector rotation ideas.
- Python 3.11 or 3.12
- An API key for at least one AI provider (only required for the AI Outlook page — see Configuration below)
git clone https://github.com/Mamun/stockiq.git
cd stockiq
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e . # installs the stockiq package + all dependenciesCreate .streamlit/secrets.toml and add the API keys for the providers you want to use.
At least one AI provider key is needed for the SPY AI Outlook page — all free-tier providers work out of the box:
# AI providers — add whichever you want to use (all optional individually)
GROQ_API_KEY = "gsk_..." # free — console.groq.com/keys
GOOGLE_API_KEY = "AIza..." # free — aistudio.google.com/apikey
DEEPSEEK_API_KEY = "sk-..." # platform.deepseek.com/api_keys
OPENAI_API_KEY = "sk-proj-..." # platform.openai.com/api-keys
ANTHROPIC_API_KEY = "sk-ant-..." # console.anthropic.com/settings/keysOr set keys as environment variables:
export GROQ_API_KEY="gsk_..."streamlit run app.pyOpen http://localhost:8501 in your browser.
The weekly/monthly screener scans the top 50 S&P 500 tickers by default. To speed up development:
export SCREENER_TICKER_COUNT=10
streamlit run app.pypip install pytest pytest-cov
pytest # all tests
pytest --cov=. --cov-report=term-missing # with coverage
pytest tests/test_indicators.py -v # single fileTests are network-free — all yfinance calls are mocked.
.
├── app.py # Streamlit entry point — navigation wiring
├── cache/
│ ├── screener/ # Pre-built screener JSON files (fundamentals, analyst, etc.)
│ └── scripts/ # Offline scripts to rebuild the screener cache
├── config/
│ ├── indicators.yml # MA periods, Fibonacci levels (shared frontend/backend)
│ └── screeners.yml # Ticker universes, scan limits
└── src/stockiq/
├── backend/
│ ├── config/ # Backend-only config (app.yml, cache.yml, TTLs, provider order)
│ ├── models/ # Pure data models (indicators, signals, options, spy context)
│ ├── data/
│ │ ├── spy.py # SPY price, intraday bars, options chain, put/call ratio (Yahoo + CBOE)
│ │ ├── market.py # VIX/index snapshot helpers (TTL-cached)
│ │ ├── yf_fetch.py # yfinance OHLCV download & company search
│ │ ├── screeners/ # Per-strategy screener modules (spx_*, nasdaq_*, etf_*)
│ │ ├── cache/ # Pre-built screener cache loaders (metadata, fundamentals, analyst, short interest)
│ │ ├── local_ohlc_cache.py # Local OHLC cache for gap detection
│ │ └── local_gap_cache.py # Local gap cache
│ ├── services/
│ │ ├── spy_service.py # SPY quote (parallel Yahoo+CBOE fetch), chart, gap table, options analysis
│ │ ├── market_service.py # VIX, indices, put/call ratio
│ │ ├── ai_forecast_service.py # Multi-provider AI forecast composition
│ │ ├── analyzer_service.py # Per-ticker technical analysis pipeline
│ │ └── scanners/ # Scanner services (NASDAQ, SPX, ETF, pre-market)
│ ├── llm/ # Multi-provider LLM wrappers (Groq, Gemini, DeepSeek, OpenAI, Anthropic)
│ └── cache.py # TTL cache decorator
└── frontend/
└── views/ # Streamlit page modules (one file per page)
└── components/ # Reusable UI components (charts, gap table, summary card)
| Library | Purpose |
|---|---|
| Streamlit | Web UI framework |
| yfinance | Market data (Yahoo Finance) |
| Plotly | Interactive charts |
| pandas | Data manipulation |
| NumPy | Numerical computation |
| Groq SDK | Llama 3.3 70B AI forecast (free tier) |
| Google GenAI SDK | Gemini 2.5 Flash AI forecast (free tier) |
| Anthropic SDK | Claude AI forecast |
| requests | DeepSeek & OpenAI REST API calls |
| Provider | Model | Free Tier | Sign Up |
|---|---|---|---|
| Groq | Llama 3.3 70B | Yes | console.groq.com/keys |
| Gemini 2.5 Flash | Yes | aistudio.google.com/apikey | |
| DeepSeek | DeepSeek-V3 | Pay-as-you-go (very cheap) | platform.deepseek.com |
| OpenAI | GPT-4.1 Mini | Pay-as-you-go | platform.openai.com |
| Anthropic | Claude Opus | Pay-as-you-go | console.anthropic.com |
Contributions are welcome! Please read CONTRIBUTING.md before submitting a PR.
- Fork the repo
- Create a feature branch:
git checkout -b feat/your-feature - Make your changes and add tests
- Run
pytestandruff check . - Open a Pull Request
See good first issues for a place to start.
StockIQ is free and open source. Hosting, API costs, and development time are funded entirely by community support. If this tool saves you time or helps your trading research, please consider sponsoring:
| Platform | Link |
|---|---|
| GitHub Sponsors | github.com/sponsors/Mamun |
| Ko-fi | ko-fi.com/stockiq |
| Open Collective | opencollective.com/stockiq |
| Buy Me a Coffee | buymeacoffee.com/mamuninfo |
Your sponsorship helps keep the project free for everyone and funds:
- AI provider API costs for the SPY Outlook feature
- Ongoing data-quality improvements
- New screeners and indicators requested by the community
- Portfolio tracker — track a watchlist over time
- Alert system — email/webhook when a signal fires
- More tickers — extend beyond S&P 500
- MACD and Bollinger Bands indicators
- Mobile-responsive layout improvements
- Docker image for one-command deployment
MIT © 2025 Mamun
StockIQ is for educational and informational purposes only. Nothing on this site constitutes financial advice. Always do your own research before making investment decisions.



