← ClaudeAtlas

lib-archlisted

The reference GARCH implementation in Python, and the home of SPA/StepM/MCS - which all take LOSSES, so passing returns silently inverts the test and names your worst strategy as the best. TRIGGER - arch, arch_model, arch.bootstrap, arch.univariate, SPA, RealityCheck, StepM, MCS, optimal_block_length, StationaryBootstrap, superior_models, spa.pvalues, mcs.included, arch.unitroot, GARCH, EGARCH, GJR-GARCH, TARCH, APARCH, FIGARCH, HARCH, HAR-RV, skewt, conditional_volatility, or a GARCH fit emitting convergence warnings. Memory is stale on licence and version - it is 8.0.0 (2025-10-21) under NCSA, not one of the three usual permissive licences. SKIP for PSR and DSR (backtest-validation), for PBO and CPCV (lib-purgedcv) and for reporting Sharpe (lib-quantstats). SKIP for choosing between libraries, or when no library is named - the domain skill's job.
howard-lynn-ye/fin-skills · ★ 1 · AI & Automation · score 77
Install: claude install-skill howard-lynn-ye/fin-skills
# arch Two distinct libraries share one package. The volatility half is well known; **`arch.bootstrap` is the most under-used correct tool in quantitative finance.** 8.0.0 is a compatibility release (Python 3.14 wheels, NumPy 2.4 / pandas 3) — **not an API break** from 7.x. statsmodels has no equivalent. | | | |---|---| | pip / import | `arch` / `arch` | | Version | **8.0.0** (2025-10-21) · Python `>=3.10` | | Licence | **NCSA** — permissive and BSD-like, but *not* one of the usual three; GitHub reports `NOASSERTION`. **Flag it in a licence audit.** | | Status | ✅ **actively maintained; the reference GARCH implementation in Python** — `bashtage/arch` (Kevin Sheppard, Oxford), 1,558★ / 51 issues, pushed 2026-08-10 | ## The trap that costs you money 🚨 **`SPA`, `RealityCheck`, `StepM` and `MCS` all take LOSSES — lower is better.** Verified against `arch/bootstrap/multiple_comparison.py`: `SPA`/`StepM` document `benchmark` as *"T element array of benchmark model **losses**"* and `models` as *"T by k element array of alternative model **losses**"*; `MCS`'s parameter is literally named `losses`. Passing returns does not raise and does not warn. **It inverts the test** — the worst strategy is identified as the best, and the p-value you report is for the opposite hypothesis. For a return series the whole conversion is `losses = -returns`. Anything already loss-shaped (squared forecast error, negative log-likelihood, absolute error, drawdown) goes in as-is. A *ratio* — a Sharpe,