← All case studies

SPY back to 1993 · 11 sectors + Dow 30 · walk-forward backtests

Finance Market-Research Platform: Backtesting and a Daily Market Dashboard

A finance market-research platform with two surfaces: a no-look-ahead backtesting workspace for strategy signals, and a daily technical dashboard covering breadth, volatility, fundamentals and key levels.

market-research.dashboardbacktest · dashboard
  1. IngestSPY, QQQ, sectors, Dow 30
  2. SignalTrend · momentum · breadth · regime
  3. BacktestNo-look-ahead walk-forward
  4. DashboardBreadth · volatility · fundamentals
Illustration

The problem

Analysts were stitching market data, strategy tests and daily reads across spreadsheets and separate tools. Backtests could look ahead, the daily dashboard had no single source of truth, and the team could not compare strategies side by side.

What we built

One engine, two surfaces: a Django/DRF API with tenant-scoped Postgres, a React/Vite dashboard, and a shared finance package for signals, a no-look-ahead walk-forward backtester and metrics. The backtesting workspace ingests market data, runs trend, momentum, breadth, regime and scriptable-DSL strategies, and returns comparison reports. The daily dashboard gives per-security scorecards with split-adjusted key levels, index breadth regimes, a crash score with VIX term structure, earnings and revenue beat breadth, and a valuation-vs-fundamentals quadrant, plus a one-zip export and a data-freshness line.

Before: Market data and tests across spreadsheets; Backtests could look ahead; No single daily market read. After: SPY back to 1993 · 11 sectors + Dow 30 · walk-forward backtests.

Before

  • Market data and tests across spreadsheets
  • Backtests could look ahead
  • No single daily market read

How it works

  1. One engine, two surfaces. The backtesting workspace and the daily dashboard share the same data layer, strategy library and metrics.

  2. Tenant-scoped data. SQLAlchemy 2.0 and Alembic on Postgres, with every repository scoped to the tenant.

  3. No-look-ahead backtests. Walk-forward runs use only the data available at each point, so a strategy cannot see the future.

  4. A strategy library plus a DSL. Trend, momentum, breadth and regime strategies ship with a scriptable DSL for custom rules.

  5. A daily market read. Panels, breadth, volatility and fundamentals on one screen, with a data-freshness line on every page.

  6. Ship to the client’s screen. The gate includes a real-browser smoke pass; a green backend test is not a shipped feature.

After

SPY back to 1993 · 11 sectors + Dow 30 · walk-forward backtests

Stack

FinanceMarket DataBacktestingAnalyticsDjangoReactPostgresDashboard

Why it holds up

The hard part is trust: no-look-ahead backtests, tenant-scoped data, and a dashboard the client reads every day. The build also carries a lesson: four asks were once closed with their engines and tests green but no UI, and stayed invisible for five days. The gate now includes a browser smoke pass, so a feature is not done until the client can see it.

Team adoption

Who uses it now
The client’s research and analyst team, using the backtesting workspace and the daily dashboard.
What we handed over
The platform, the strategy library, the dashboard, the one-zip export and the runbook; the full stack runs with one command.
What changed
From spreadsheets and disconnected tools to one engine for backtests and a daily market read.

Related service: AI adoption, delivered by embedded engineers

First-Sprint Data Scientist

A vetted engineer embedded in your team, a shipped deliverable by end of sprint 1.

Pick a time below and you will speak with me directly. Bring the use case, the data and the constraints, and I will give you a straight view on feasibility, effort and the first thing to ship.

Book a call

Cat Yung

Hong Kong & London time zones

Book a call · 30 min with Cat Yung