Skip to content

numeraire 0.2.0

Choose a tag to compare

@BrightBlu BrightBlu released this 05 Jul 11:09
f7dad71

First tagged release. The spine is capability-complete: to_weights, to_forecast, and to_pricing are all crystallized protocols with walk-forward drivers, native evaluators, and a conformance suite.

Highlights

  • Pricing capability: SupportsPricing.expected_returns, walk_forward_pricing / pricing_in_sample, cross-sectional R² and average-|α| evaluators, and numeraire.comparison.compare — score competing pricing models (factor models, SDFs, risk-premium estimators) on one common set of test assets. Every result row carries an explicit protocol label (in_sample / walk_forward), so explanatory numbers are never confusable with out-of-sample ones.
  • Conformance suite (numeraire.testing.check_estimator): capabilities, output shapes, determinism, a no-look-ahead property test, and an engine round-trip — the self-certification any extension runs before its numbers are trusted.
  • Reference registry (numeraire.reference.ReferenceResult): pinned published results with tolerance bands and data-access tiers (public / credentialed / restricted) — CI stays green on public data while the same case runs verbatim wherever licensed data is present.
  • Bundled baselines (numeraire.baselines): equal weight (1/N), minimum variance, mean-variance, historical mean — registered through the same entry-point mechanism as any external method.
  • Weight-stream simulator: simulate_weights + RebalanceSchedule with explicit drift, turnover, and cost conventions.
  • Inference toolkit (core.stats): GRS, Clark-West, paired Sharpe (Jobson-Korkie–Memmel), HAC alpha regression, Bonferroni/Holm/BHY adjustments, certainty-equivalent / return-loss / performance-fee.
  • Cross-sectional data layer: CrossSectionView with zero-copy point-in-time windows, ragged-panel walk-forward engine, parallel fold execution, refit-cadence control, and a validation-split helper.
  • Interop: polars/arrow ingestion at the view boundary (narwhals-optional, zero new hard dependencies) and a skfolio adapter ([skfolio] extra) that wraps portfolio optimizers as to_weights estimators.

Python ≥ 3.11, pandas ≥ 2.2. Version is tag-driven (hatch-vcs).