
MarketPulse
MarketPulse monitors your watchlist across 4 timeframes, detects OBV divergences and breakouts in real time, and generates trade suggestions with defined entry, stop, and targets.
Gallery
MarketPulse: Automated OBV Analysis Platform for Active Traders
MarketPulse is a full-stack market monitoring platform that automates volume-based technical analysis for active traders. It continuously scans a personal watchlist of up to 25 stock symbols across four timeframes, detects actionable trading signals using On-Balance Volume (OBV) analysis, and presents everything in a real-time dark-mode dashboard -- eliminating hours of manual chart scanning.
1. What Problem Does MarketPulse Solve?
Active traders who follow volume-based strategies face a daily bottleneck: manually scanning charts. Checking 25 symbols across four timeframes means inspecting 100 charts -- roughly 50 minutes of pure scanning before any real analysis begins. Most traders end up skipping symbols or timeframes, missing setups they would have traded.
Beyond the time cost, manual scanning introduces subjectivity. The same trader may identify different signals on different days depending on mood or fatigue. There is no consistent framework for grading signal strength, tracking whether a signal is still fresh, or structuring a trade with defined entries, stops, and targets.
MarketPulse solves this by automating the entire workflow:
- Automated scanning across all symbols and timeframes on a continuous cycle.
- Objective detection with configurable parameters, removing emotional bias from signal identification.
- Signal freshness tracking that considers both time elapsed and adverse price movement, so traders know whether a signal is still worth acting on.
- Complete trade structuring with entry, stop-loss, partial profit target (T1), full exit target (T2), risk-reward ratios, and trade management rules.
The goal is not to replace trader judgment -- it is to surface the two or three setups per week that deserve capital allocation, ranked by conviction, so the trader spends time analyzing rather than searching.
2. How It Works: The Analysis Engine
MarketPulse implements a multi-stage signal pipeline built around OBV, one of the oldest and most respected volume indicators in technical analysis. OBV tracks cumulative volume flow: on days when price closes higher, volume is added; on days when price closes lower, volume is subtracted. The key insight is that volume often leads price -- institutional accumulation or distribution shows up in OBV before it appears in the price chart.
The engine runs four layers of analysis:
OBV Trend Analysis classifies volume flow as trending up, down, or sideways for every symbol on every timeframe. It then compares the OBV trend to the price trend, labeling the relationship as "Confirming" (both aligned), "Diverging" (moving in opposite directions), or "Leading" (OBV breaking out ahead of price).
Divergence Detection identifies situations where price and OBV disagree -- for example, price making a lower low while OBV makes a higher low (bullish divergence). These signals pass through a two-stage pipeline: "Developing" (early warning) and "Confirmed" (actionable signal with price confirmation). Only confirmed signals generate trade suggestions, preventing premature action.
Breakout Detection flags when OBV reaches new highs or lows ahead of price, which historically precedes price breakouts. This enforces the OBV-first principle: the system only flags situations where volume leads, reducing false positives.
Confluence Engine synthesizes signals from all subsystems -- OBV divergences, Smart Money Signals, liquidity zones, Fair Value Gaps, market events, and volume regime -- into a single Opportunity Score (0-100) with a directional Trade Bias. This score ranks every symbol-timeframe combination by overall conviction, making it easy to focus on the highest-probability setups.
Supporting indicators like VPT (Volume Price Trend), volume regime classification, and support/resistance levels from swing data add confirmation layers without adding noise.
3. Architecture and Technology Stack
MarketPulse is built as a modern, containerized application with clear separation between the API layer, background processing, and the frontend.
Backend (.NET 8 / C#)
The backend follows a Vertical Slice Architecture where each feature (Watchlist, Signals, OBV Engine, Alerts, etc.) is a self-contained module with its own endpoints, services, repositories, domain entities, and validators. This makes the codebase navigable and keeps feature boundaries clean.
- Minimal API endpoints -- one file per endpoint, lightweight and fast.
- EF Core for write operations and migrations, Dapper for high-performance read queries.
- FluentValidation for request validation on every endpoint.
- Background workers handle data ingestion, OBV calculation, alert dispatch, and data retention -- running as separate hosted services.
- JWT authentication with BCrypt password hashing.
- Serilog for structured logging and OpenTelemetry for distributed tracing.
Frontend (Angular 18)
The frontend is a dark-mode single-page application designed for fast scanning and decision-making.
- Standalone components (no NgModules) with Angular Material.
- Real-time updates via SignalR WebSocket push -- signal cards update live without manual refresh.
- PWA support with offline capability, installable on mobile devices.
- Pages include: Dashboard (top signals at a glance), Watchlist (manage tracked symbols), Signal Detail (deep dive with trade plan), Analytics (historical hit rate and P&L tracking), Settings (parameter tuning), and Admin (user/role management with audit trail).
Database (PostgreSQL)
All tables use a mktp_ prefix for namespace isolation, snake_case naming, and optimistic concurrency via PostgreSQL's xmin system column. The schema supports OHLCV bars, OBV calculations, divergences, breakouts, trade suggestions, alert preferences, audit logs, liquidity zones, Fair Value Gaps, event classifications, and opportunity scores.
Infrastructure (Docker)
The entire stack runs in Docker containers: .NET API, .NET Worker, Angular/Nginx frontend, and PostgreSQL. Alpine-based images keep the footprint small. All containers run as non-root users. Health checks, resource limits, graceful shutdown, and Brotli compression are configured out of the box. A production compose override adds TLS termination and Supabase database connectivity.
4. Integrations and External Services
MarketPulse connects to several external services, each serving a focused purpose:
| Integration | Purpose |
|---|---|
| Twelve Data API | Market data provider -- fetches OHLCV price and volume bars for all watched symbols across 1-hour, 4-hour, daily, and weekly timeframes. The ingestion worker runs a two-pass cycle: a fast price pass followed by a full 250-bar backfill. Rate limiting and API budget tracking are built into the client. |
| Resend API | Transactional email delivery for alert notifications. When a divergence moves from Developing to Confirmed, users who have opted in receive an email with signal details. |
| SignalR + Redis | Real-time push infrastructure. SignalR WebSocket connections push signal updates to the Angular frontend instantly. Redis serves as the SignalR backplane for multi-instance deployments. |
| QuestPDF | PDF generation for trade plan exports. Users can download individual trade suggestions as formatted PDF documents. |
| GitHub Actions CI/CD | Automated build, test, and quality pipeline. Four CI jobs run on every push: build-and-test, Playwright E2E, accessibility audit (axe-core), and Lighthouse PWA scoring. |
All secrets and API keys are managed through environment variables -- never hardcoded. A .env.template file documents every required variable.
5. Key Benefits
For traders: MarketPulse turns 50 minutes of daily chart scanning into a 60-second dashboard check. Signals are graded by strength and ranked by an Opportunity Score that synthesizes multiple analysis dimensions. Every confirmed signal comes with a complete trade plan -- entry, stop, targets, position sizing, and management rules -- so traders can evaluate setups without doing the math from scratch. Email alerts and real-time push ensure nothing is missed.
For developers: The codebase demonstrates a production-grade .NET 8 + Angular 18 application with clean architectural patterns: Vertical Slice Architecture, CQRS-style read/write separation (EF Core + Dapper), background worker pipelines, real-time WebSocket communication, JWT authentication, structured logging, and comprehensive testing (164+ backend tests, Playwright E2E, accessibility audits, Lighthouse PWA checks). The Docker setup covers development, testing, and production environments with proper security practices.
For finance professionals: MarketPulse implements OBV analysis as described by Joe Granville -- the indicator's inventor -- extended with modern techniques from volume analysis practitioners. The two-stage signal pipeline (Developing to Confirmed) mirrors how institutional desks handle early warnings versus actionable signals. Volume regime filtering, VPT confirmation, z-score normalization, and multi-timeframe confluence scoring bring statistical rigor to what is traditionally a visual, subjective process. The system acknowledges known limitations (dark pool volume, ETF vs. equity volume quality) and surfaces them in the UI rather than hiding them.
For everyone: MarketPulse is a working example of how domain expertise, modern software engineering, and systematic process management come together to solve a real problem. It was built iteratively over 28 sprints with expert review from technical analysis practitioners, automated quality gates, and continuous delivery to production.
Comments
Sign in to leave a comment.
No comments yet. Be the first to share your thoughts!