← All Projects
Analytics Live

Global Markets Dashboard

A personal markets dashboard that shows where price sits relative to its key moving averages and where money is rotating across crypto, equities, and macro — candidates to watch, not buy signals.

PythonStreamlitPlotlypandasyfinanceDockerCoinGecko APIOKX APICFTC COT

A Streamlit dashboard I use to spot markets stretched far from their long-term moving averages and to see where capital is rotating week to week. It pulls live data for crypto, global indices, FX, metals, energy, and thematic equity baskets, overlays a consistent set of moving averages on every chart, and adds market-breadth, money-rotation, crypto-dominance, and long/short positioning views — all driven from a single config file.

What It Solves

I wanted one place to answer "what's oversold relative to its moving-average lines, and where is money flowing?" across very different markets — without hand-pulling data or rebuilding charts each time, and without paying for a data vendor.

What I Built

A config-driven Streamlit app where every tracked asset, section, moving-average set, and indicator is defined in YAML, so the watchlist changes without touching code. It fetches from free public APIs, caches results with a TTL, and degrades gracefully when a source is unavailable or region-blocked, then renders consistent moving-average, breadth, rotation, dominance, and long/short positioning views.

How It Works

  1. Config-driven design: watchlists, sections, moving-average sets, and indicators all live in a single config.yml — no code change to retrack assets or restructure the page.
  2. Multi-source ingestion from four free public APIs — yfinance (prices), CoinGecko (crypto dominance), OKX (crypto long/short + taker volume), and the CFTC Commitments of Traders report (futures positioning).
  3. Resilient fetch layer: TTL-cached, browser-impersonating sessions, a parallel batched cold-start fetch, and graceful fallbacks so one dead or region-blocked source never takes the app down.
  4. Deployed on Streamlit Community Cloud from a dedicated lean repo; a Dockerized stack runs the identical app locally.

Skills Demonstrated

Data Engineering

  • Multi-source API ingestion
  • TTL caching
  • Parallel cold-start fetch
  • Fault tolerance / graceful degradation

App & Visualization

  • Streamlit
  • Plotly
  • pandas
  • Config-driven UI

Markets

  • Moving-average analysis
  • Market breadth
  • Money rotation
  • COT / long-short positioning

Cloud & Deploy

  • Streamlit Community Cloud
  • Docker
  • YAML configuration

What I Learned

  • Designing a config-first app so a non-trivial dashboard can be re-pointed at new assets and sections without code changes.
  • Working around region/IP-blocked market APIs (Binance, Bybit) by sourcing equivalent long/short data from OKX and the CFTC, with graceful fallbacks.

Next Improvements