fix(universe): robust iShares→yfinance ticker mapping for class shares
- Filter to Asset Class == Equity only (removes UBFUT, XTSLA non-equity rows)
- Static remap for 16 known iShares compact tickers → canonical yfinance hyphenated form
(BRKB→BRK-B, BFA→BF-A, HEIA→HEI-A, LENB→LEN-B, UHALB→UHAL-B, CWENA→CWEN-A, etc.)
- Avoids false positives: META, NVDA, TSLA, ABNB, ZBRA, CMCSA preserved correctly
- Fix C401 in ohlcv_cache.py (set comprehension)
- Result: 1003 clean equity tickers from Russell 1000
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>