MarketFeed API
An Express-based market data service that resolves TradingView symbols, calculates indicators, and serves authenticated analytics with Swagger documentation.

Project Overview
MarketFeed API powers Signalchi dashboards with real-time candles, indicator calculations, and sentiment overlays wrapped behind token-gated Express routes. It orchestrates TradingView ingestion, caching, and session logic so downstream clients can focus on visualization.
Development Process
Challenges
Stabilizing TradingView connections across mixed vendor symbols, avoiding indicator NaNs on thin history, and keeping authentication lightweight for operators managing partner access.
Solutions
Built a candidate-expansion engine for forex and crypto pairs, hardened indicator reducers with defensive defaults, and introduced a MongoDB-backed token store alongside a Commander CLI for day-to-day key rotation.
Results & Impact
Delivered a reusable market data layer with per-route rate limiting, introspectable documentation, and observability hooks that now serve multiple frontends, including Signalchi’s Market Intelligence surface.
Project Gallery
Tech Stack
Key Features
- Market resolver that expands vendor aliases, crypto/forex fallbacks, and symbol variants before pulling TradingView candles
- Technical indicator suite (RSI, MACD, SMA-50/200, Bollinger Bands, Stochastic, ATR) with resilience against sparse datasets
- Session-aware volatility, support/resistance detection, and market open/close insights with overlapping session handling
- Token-based authentication backed by MongoDB, including a Commander CLI for issuing, revoking, and validating tokens
- Caching layer using NodeCache to reduce TradingView pressure and accelerate repeated interval queries
- Rate limiting, structured Winston logging, and request sequencing for production diagnostics
- Auto-generated OpenAPI docs served through Swagger UI plus `/routes.json` introspection for client scaffolding
- Dedicated `/api/news/:symbol` endpoint with TradingView news aggregation and sentiment enrichment
