Problem
Market data is noisy and most dashboards either show raw prices or a black-box signal. A risk monitor should say which regime an asset is in, why, and whether past alerts were followed by real risk.
Approach
- 01Free data only: ccxt for crypto OHLCV, yfinance for ETFs and JSE stocks, cached locally.
- 02Rule-based labels you can read. Volatility is bucketed per asset at its own 33rd and 66th percentiles. Trend strength above +3% is bullish, below −3% bearish. Drawdowns of 5, 10 and 20% mark mild, elevated and severe.
- 03Drawdown overrides everything, high volatility comes next, and calm regimes are named only when volatility is low. KMeans on standardized features and PELT change points from ruptures are optional cross-checks.
- 04An evaluation module measures future risk after each alert. The LLM layer writes the analyst summary from those numbers. It is not asked to forecast.
Results
A Streamlit dashboard with regime timelines on the price chart, portfolio risk ranking across presets (crypto, US tech, JSE, mixed), and downloadable Markdown risk reports.
The repo does not commit alert-evaluation results, so this page shows the classifier itself rather than a performance claim.
Next
Publish a fixed backtest of alert precision per regime, and compare the rule labels against the KMeans clusters over the same window.