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.
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.
Problem
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.
Solution
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.
Architecture
How It Works
- 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.
- 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).
- 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.
- Deployed on Streamlit Community Cloud from a dedicated lean repo; a Dockerized stack runs the identical app locally.
Skills
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
Experience
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.
Roadmap