AI-Powered Investment Intelligence for the Indian Investor
14 crore+ demat accounts. Most retail investors flying blind. AlphaStream India turns ET Markets data into actionable, money-making decisions.
Built for ET AI Hackathon 2026 - Problem Statement 6: AI for the Indian Investor.
AlphaStream India is a real-time investment intelligence terminal that combines multi-agent signal detection, technical analysis overlays, NLQ analytics, and global market intelligence to surface opportunities other investors miss.
| Feature | Description |
|---|---|
| Tabbed Bloomberg Terminal | 5-tab layout: Overview · Signals · Global Intel · Company · Portfolio - each focused on a different investor workflow |
| Opportunity Radar | AI monitors NSE/BSE filings, insider trades, FII/DII flows, chart patterns - surfaces signals with Alpha Score (0-100) |
| Technical Indicator Overlays | RSI(14) sub-chart + SMA20/SMA50 line overlays on TradingView candlestick, togglable per ticker |
| Fundamentals Panel | PE, PB, ROE, Dividend Yield, Market Cap, 52-week H/L from Groww API - wired live |
| Stock Screener | Filter Nifty 50 universe by sector, signal direction, and alpha score using DuckDB v_stock_screener view |
| Portfolio Manager | Add/remove NSE holdings, track real-time P&L, ₹ totals, horizontal bar chart by ticker |
| Watchlist | Persistent (localStorage) watchlist of up to 20 NSE tickers with live sentiment scores |
| Corporate Filings | BSE announcements (dividends, results, board meetings) per ticker - 7/30/90-day view |
| Anomaly Detection | Online ML (River HalfSpaceTrees) flags price/volume anomalies fed from 3mo NSE OHLCV |
| Global Market Intelligence | Crypto (BTC/ETH/SOL/XRP) + Currencies (INR/USD, DXY) + US Sector ETFs - India-impact annotated |
| Threat-aware News | Articles sorted by threat level (critical/warning/info) with sentiment distribution donut chart |
| Market ChatGPT Next Gen | NLQ agent with Text2SQL pipeline - grounded answers from real data, portfolio-aware, source-cited |
┌─────────────────────────────────────────────────────────────────────┐
│ Indian Data Sources │
│ NSE API · BSE API · FII/DII (NSDL) · Groww API · ET Markets RSS │
│ FRED (macro) · WorldMonitor (global indices/commodities/crypto/FX) │
└──────────────┬──────────────────────────────────────────────────────┘
│
┌──────────────▼──────────────────────────────────────────────────────┐
│ Pathway Streaming Engine (Real-time <2s) │
│ News ingestion → Chunking → Embedding → Adaptive RAG │
│ Threat classification (critical/warning/info) → DuckDB persist │
└──────────────┬──────────────────────────────────────────────────────┘
│
┌──────────────▼──────────────────────────────────────────────────────┐
│ Multi-Agent System (13 agents) │
│ Sentiment · Technical · Risk · Decision · Pattern · Backtest │
│ Filing · Flow · Insider · Chart · Report · Search · Anomaly │
└──────────────┬──────────────────────────────────────────────────────┘
│
┌──────────────▼──────────────────────────────────────────────────────┐
│ Analytics Layer (DuckDB) │
│ fact_articles · fact_signals · fact_insider_trades · fact_filings │
│ fact_fii_dii_flows · dim_stocks (Nifty 50) │
│ Views: v_stock_screener · v_signal_summary · v_sector_heatmap │
└──────────────┬──────────────────────────────────────────────────────┘
│
┌──────────────▼──────────────────────────────────────────────────────┐
│ NLQ Agent (LangGraph 7-node) │
│ Guardrail → Enrich (web search) → Route → Text2SQL → Narrate │
│ MCP Servers: market_data · signals · portfolio · search │
└──────────────┬──────────────────────────────────────────────────────┘
│
┌──────────────▼──────────────────────────────────────────────────────┐
│ React Terminal (5 tabs) │
│ Overview: Candlestick+RSI/SMA · Recommendation · Fundamentals │
│ Signals: Screener · Opportunity Radar · Flow Chart │
│ Global: Crypto/FX/Sectors · Fear&Greed · Macro · Commodities │
│ Company: Filings · News+Threat Badges · Watchlist │
│ Portfolio: Holdings · P&L Chart · Sector Allocation │
└─────────────────────────────────────────────────────────────────────┘
| Layer | Technology |
|---|---|
| Streaming | Pathway (real-time RAG, <2s latency) |
| LLM | Gemini 2.0 Flash (Vertex AI) + OpenRouter |
| Agents | LangChain + LangGraph (multi-agent orchestration) |
| NLQ | Text2SQL pipeline with guardrails + correction loop |
| MCP | FastMCP servers (market data, signals, portfolio) |
| Database | DuckDB (analytics), ChromaDB (vector search) |
| Backend | FastAPI + WebSocket + SSE streaming |
| Frontend | React 19, Zustand, Tailwind, Recharts, Framer Motion |
| Market Data | NSE API, BSE API, Groww API (TOTP), yfinance, ET Markets RSS |
- Python 3.11+ — backend runtime
- Node.js 18+ — frontend build tooling
- Google Cloud account with Vertex AI enabled (for Gemini LLM)
- API keys needed:
NEWS_API_KEYfrom newsapi.org (required),GROWW_API_TOKEN(optional) - Hardware: 4 GB+ RAM recommended
Step 1: Clone & configure
git clone https://github.com/ridash2005/AlphaStream_Final.git
cd AlphaStream_IndiaStep 2: Backend setup
cd backend
uv sync
cp .env.example .env
# Edit .env — set GOOGLE_APPLICATION_CREDENTIALS, GCP_PROJECT_ID, and NEWS_API_KEY at minimumStep 3: Initialize database & start backend
# Initialize DuckDB with Nifty 50 data
.venv/bin/python -m src.data.market_schema
# Start backend (cold start ~75s, then ready)
.venv/bin/python -m uvicorn src.api.app:app --host 0.0.0.0 --port 8000Step 4: Frontend setup
cd ../frontend
npm installStep 5: Start frontend
npm run devStep 6: Open the dashboard
Navigate to http://localhost:5173
If you don't have API keys yet, AlphaStream still runs using cached/mock data. Set in backend/.env:
ENABLE_PATHWAY=false
NEWS_API_KEY=
GCP_PROJECT_ID=The UI loads with cached article data and pre-computed recommendations — sufficient to evaluate the dashboard, agent outputs, and PDF report generation.
See backend/.env.example for the full reference. Key variables:
# Required - GCP / Vertex AI (all LLM calls go through Gemini)
GOOGLE_APPLICATION_CREDENTIALS=./service-account.json
GCP_PROJECT_ID=your-project
# News APIs
NEWS_API_KEY=...
# Optional - Indian market data (enables fundamentals panel)
GROWW_API_TOKEN=...
GROWW_TOTP_SECRET=...
# Optional - enable Pathway streaming (adds 45s to startup)
ENABLE_PATHWAY=falseImportError: No module named 'pathway' — Set ENABLE_PATHWAY=false in backend/.env. The system runs without Pathway using a synchronous fallback.
Port 8000 already in use — Run uvicorn src.api.app:app --port 8001 then set VITE_API_URL=http://localhost:8001 in frontend/.env.
Frontend loads blank — Check VITE_API_URL in frontend/.env points to the running backend (default: http://localhost:8000).
DuckDB error on startup — Run .venv/bin/python -m src.data.market_schema from the backend/ directory to initialise the database.
| Endpoint | Method | Description |
|---|---|---|
/api/ohlcv/{ticker} |
GET | OHLCV + optional RSI/SMA20/SMA50 (?indicators=true) |
/api/fundamentals/{ticker} |
GET | PE, PB, ROE, Div Yield, 52w H/L (Groww API) |
/api/radar |
GET | Top signals by Alpha Score |
/api/screener |
GET | Filter stocks by sector/direction/alpha (DuckDB view) |
/api/patterns/{ticker} |
GET | Chart pattern detection |
/api/backtest/{ticker}/{pattern} |
GET | Historical backtest (5yr) |
/api/flows |
GET | FII/DII flow analysis |
/api/anomalies/{ticker} |
GET | Price/volume anomaly detection (River ML) |
/api/filings/{ticker} |
GET | BSE corporate announcements |
/api/portfolio |
POST | Set user portfolio holdings |
/api/portfolio/summary |
GET | Live P&L summary |
| Endpoint | Method | Description |
|---|---|---|
/api/global/indices |
GET | NIFTY, SENSEX, S&P 500, DOW, etc. |
/api/global/commodities |
GET | Gold, Crude, Silver, Copper, etc. |
/api/global/crypto |
GET | BTC, ETH, SOL, XRP |
/api/global/currencies |
GET | INR/USD, DXY |
/api/global/sectors |
GET | 12 US sector ETF returns |
/api/global/fear-greed |
GET | CNN Fear & Greed index |
/api/global/macro |
GET | FRED macro signals + verdict |
/api/global/vix |
GET | VIX volatility index |
/api/global/geo-risk |
GET | India geopolitical risk score |
| Endpoint | Method | Description |
|---|---|---|
/api/nlq |
POST | Natural language query (blocking) |
/api/nlq/stream |
GET/POST | NLQ with SSE streaming |
/api/insights |
GET | Ambient AI alerts |
/recommend |
POST | Full multi-agent recommendation |
/ws/stream/{ticker} |
WS | Real-time updates (rec, market, global) |
| Signal | Detection Method | Backtest Available |
|---|---|---|
| RSI Divergence | Price vs RSI direction mismatch | Yes (5yr) |
| MACD Crossover | Signal line cross + histogram | Yes (5yr) |
| Bollinger Breakout | Squeeze → expansion | Yes (5yr) |
| Volume Breakout | >2x 20-day average | Yes (5yr) |
| Golden/Death Cross | 50 SMA vs 200 SMA | Yes (5yr) |
| Insider Buying | NSE SAST/PIT cluster detection | N/A |
| FII Streak | 5+ day consecutive net buying | N/A |
| Material Filing | LLM classification of BSE/NSE filings | N/A |
Rickarya Das — @ridash2005
Built for ET AI Hackathon 2026 - Problem Statement 6
MIT