LIVEFull-Stack Platform

FinWin — Multi-Strategy Paper-Trading Platform

Multi-strategy paper-trading platform for US and LSE equities. Runs independent grid and momentum strategies against Alpaca market data, stores portfolio state in MongoDB, and exposes a unified dashboard to monitor positions, run jobs, and control trader processes.

Centralized Ticker Data Service deduplicates Alpaca polling across three strategy engines, each with isolated MongoDB state and PM2-managed long-running processes.

  • Next.js dashboard — equity curves, open positions, strategy controls, live docs
  • FastAPI BFF — auth, metrics, nightly seed scheduler, trader start/stop/restart
  • Ticker Data Service — shared US quote/bar cache with subscriber-based Alpaca polling
  • Three v2 strategies — Simple Grid, ATR Grid Trader, Momentum Grid (US via TDS, LSE via yfinance)
  • PM2 production stack — TDS, API, web, and all traders orchestrated as six processes
ReactTypeScriptNext.jsPythonFastAPIMongoDBAlpacaPM2
FinWin Alpaca Paper dashboard with equity metrics and strategy status

System Architecture

Diagram focused on system boundaries, data flow, and integration responsibilities.

FinWin Architecture Diagram

Next.js Dashboard

React, TypeScript, Next.js

  • - Portfolio charts
  • - Strategy controls
  • - Job triggers
  • - TDS health panel

Dashboard API

Python, FastAPI

  • - Session auth
  • - Strategy metrics
  • - Job runner
  • - Process control
  • - TDS proxy
  • - Nightly seed scheduler

Ticker Data Service

Python, FastAPI

  • - Alpaca quote/bar cache
  • - Subscriber registry
  • - VIX index
  • - Deduplicated US polling

Strategy Traders (×3)

Python

  • - simple_grid_v2
  • - grid_trader_v2
  • - momentum_grid_v2
  • - Signal evaluation
  • - Paper fills
  • - Per-strategy MongoDB writes

MongoDB

  • - ticker_data cache
  • - simple_grid_v2
  • - grid_trader_v2
  • - momentum_grid_v2
  • - Isolated DB per service/strategy
API Requests
Control + Read/Write
Quote Feed
State Persistence

Alpaca Market Data API

US real-time quotes, daily bars, and asset universe for seeding.

Shared Alpaca polling — one TDS loop serves all strategies3 independent strategy engines on isolated MongoDB databasesPM2-managed production deployment (6 processes)