- data.py: non-blocking load_bundle(); background watcher thread refreshes the parquet cache (5s scan, 30s min rebuild cadence); refresh()/ up_to_date()/generation() - statistics tab: one table per benchmark (vs <label>), plain column names (beta/alpha/return/vol...), selectable+reorderable stat list in settings.json - correlation tab: per-portfolio components-vs-benchmarks + all-portfolios-vs-benchmarks; numbered columns - global date range (window radio + start/end boxes) applied to all tabs; metrics.xcorr(); equity window radio gains YTD/3M/1M
7 lines
59 B
Plaintext
7 lines
59 B
Plaintext
.venv/
|
|
__pycache__/
|
|
*.pyc
|
|
.cache/
|
|
settings.json
|
|
funds.json
|