A dark-themed, production-grade Streamlit dashboard for portfolio analysis vs. a benchmark.
pip install -r requirements.txt
streamlit run app.py- Multi-Asset or Single Asset modes
- Add/remove assets dynamically with custom ticker symbols
- Set portfolio weights manually or equalize automatically
- Real-time data from Yahoo Finance (yfinance)
- Compare any portfolio against any benchmark ticker (SPY, QQQ, META, etc.)
- Side-by-side metrics table across all sections
- Cumulative Returns — portfolio vs benchmark over time
- Drawdown Analysis — dual-panel waterfall chart
- Rolling 6M Sharpe Ratio — tracks risk-adjusted performance over time
- Annual Risk/Return Scatter — year-by-year portfolio vs benchmark
- Monthly Returns Heatmap — calendar heat map (green = positive, red = negative)
- Asset Allocation Pie — visual weight breakdown
- Individual Asset Performance — each holding's growth trajectory
- Correlation Matrix — cross-asset correlation heatmap
| Category | Metrics |
|---|---|
| Returns | Cumulative, CAGR, MTD, 3M, 6M, YTD, 1Y, Best/Worst Day |
| Risk | Volatility, Max Drawdown, VaR (95%), CVaR (95%), Skewness, Kurtosis, Ulcer Index |
| Risk-Adjusted | Sharpe, Sortino, Calmar, Omega, Profit Factor |
| Trade Stats | Win Rate, Avg Win/Loss |
- Date range picker with 1Y / 3Y / 5Y / Max presets
- Risk-free rate slider
- Rebalancing frequency selector
- Run Analysis button
Built with a dark, terminal-inspired aesthetic using:
- Syne — display headings
- DM Mono — data/code labels
- DM Sans — body text
- Color palette: Acid green (#c8f77c) + Electric blue (#5b8dee) on deep dark (#0d0f14)
For informational purposes only. Not financial advice.