Changelog

What changed, and when.

Entries are tagged added, changed, fixed or catalogue. The catalogue tag marks changes to the research method library, whose own changelog the workspace ships with.

RSS
  1. changed

    Supervised and unsupervised ML merged onto one page

    Supervised model training and unsupervised analysis now live on a single ML Models page as two tabs, remembered per browser: Supervised ML for classification and regression on the chronological, leakage-aware pipeline, and Unsupervised ML for clustering, dimensionality reduction and anomaly detection. The previously separate Unsupervised Lab route now redirects here rather than existing as a second destination for the same functionality.

    The same consolidation was applied to hyperparameter search and estimator comparison, now presented as two stages of a single Tune & Experiment page: model tuning, which searches one estimator’s hyperparameter grid and reports whether the fit generalises, and experiment comparison, which ranks competing estimator families on identical data, identical split and identical decision threshold.

  2. addedfixed

    Every chart now tested against its own data

    An earlier audit found that no test anywhere checked a plotted value, axis or legend against the data behind it. That gap is now closed with 322 browser-run assertions that recover each chart’s scale from its own printed axis ticks and read every plotted mark back through that mapping, so a test failure means the underlying data pipeline is wrong rather than that a pixel shifted. Nine previously missing chart types were built to close specific gaps: underwater drawdown, a monthly-returns calendar, a normal Q-Q plot, a box-and-whisker view, a scree plot, a reliability diagram, a waterfall chart, a stacked area chart and a squarified treemap.

    Each new chart refuses to render nonsense rather than drawing it: a drawdown chart showing a positive value, a Q-Q plot of a constant series, and a long/short book passed to a treemap all now return a stated refusal instead of a misleading picture.

  3. addedcatalogue

    Derivatives pricing and factor construction modules added

    Options pricing, Greeks, implied volatility and short-rate models were built as a new module, validated against Hull’s textbook worked examples, put-call parity, and exact parameter recovery on deterministic paths: Black-Scholes-Merton pricing and Greeks, a Cox-Ross-Rubinstein binomial lattice, Merton jump-diffusion, Longstaff-Schwartz least-squares Monte Carlo, and Vasicek and Cox-Ingersoll-Ross short-rate fits and zero-coupon bond pricing.

    A separate factor construction module now builds Fama-French and betting-against-beta factors directly from a project’s own universe rather than only regressing against externally supplied factor series. The Fama-French construction matches the original 1993 paper’s double-sort methodology to 1e-15, and the betting-against-beta construction is confirmed to vanish exactly when CAPM holds, per Frazzini and Pedersen (2014).

  4. fixed

    Four calculation defects found and fixed

    A validation pass reproduced four defects in code that already had passing tests. The Calmar ratio was computed with an arithmetic mean where the correct methodology specifies compound growth — on a series alternating plus fifty percent and minus a third, the old calculation reported a Calmar ratio of 63 rather than the correct value of 0, hiding the fact that the strategy grew not at all. Two inconsistent RSI implementations existed side by side, with models consuming a simple moving-average variant instead of Wilder’s original 1978 formulation. Maximum drawdown, computed four separate ways across the codebase, missed an opening loss entirely in two of those implementations. A multiple-testing haircut method offered a dropdown choice — Holm’s procedure — that raised an error whenever selected.

    All four are fixed, each fix confirmed against a before-and-after measurement rather than asserted without evidence, and the Ulcer Index, a catalogued measure with no prior implementation, was also completed in passing.

  5. fixedcatalogue

    Pairs and spread pipeline rebuilt

    The centre of the pairs trading template was broken: the “build spread” and “backtest the spread” steps ran on a single ticker rather than the constructed spread, and the hedge ratio produced by the Engle-Granger cointegration test was published but never consumed by anything downstream of it. The pipeline now runs the full chain in order — cointegration test, spread construction, Ornstein-Uhlenbeck fit, z-score signal generation, spread backtest — with each stage consuming the previous stage’s output rather than standing in isolation.

    The Ornstein-Uhlenbeck fit is validated against three closed-form cases including exact half-life recovery, and the spread backtest is checked against a hand-worked two-legged ledger accounting for costs on both legs of the position, including the cost paid when a position closes without earning further return.

  6. addedcatalogue

    Validation backlog reduced: 72 of 119 methods now validated

    Thirty-six new reference cases were added to the validation registry, taking the total from 78 to 114 and the count of validated methods from 51 to 72. Every expected value behind a new case was derived independently before being checked against the running engine, a discipline that caught one recorded reference value that did not initially reproduce, traced to an error in the check itself rather than in the code being checked.

    Twenty methods moved to validated status in this pass, including the Omega ratio, up and down capture, extreme value theory, the probability of backtest overfitting, the multiple-testing haircut, equal weight, Kelly sizing, Black-Litterman, CVaR optimisation, the stationary block bootstrap, Monte Carlo path simulation, and the Fama-French, Carhart, Brinson and statistical-factor constructions. One method, portfolio selection-bias counting, was deliberately withheld from validation because its rule is this workspace’s own convention rather than one drawn from a published source.

  7. addedcatalogue

    Method catalogue grows to 119, validation registry introduced

    The method catalogue reached its current shape of 119 methods across 19 categories, and validation status moved from an implicit, hand-set label to a derived one: a method is marked validated only when at least one reference case of a genuinely validating kind — textbook, published paper, closed-form identity, hand-worked calculation, third-party cross-check, or regulator reference — exists behind it in the validation registry. A self-referential check, run against a reference implementation written by the same process as the method itself, is recorded but earns no validation badge.

    By the end of this pass, 78 reference cases were on record and 51 of the 119 methods carried validated status, with zero registry integrity problems reported — no catalogued method claims a status the registry cannot substantiate.

  8. catalogue

    Method catalogue audit: 102 methods, four validated

    A read-only audit checked all 153 originally catalogued entries against the code claiming to implement them: 57 implemented, 32 partial, 64 absent, with 102 methods counted as genuinely catalogued at this point. Of the entries implemented or partially implemented, only four carried a check against a published worked example, and none carried a cross-check against an independently maintained library — the dominant validation modes on record were property tests and self-reference, which prove internal consistency but not correctness.

    This audit reframed the following weeks of work: rather than treating the catalogue mainly as a build list, the larger and more urgent task was retro-validating code that already existed and was already trusted by the interface, without a single reference case standing behind most of it.

  9. added

    Evidence reports export to PDF, HTML, DOCX and JSON

    A project’s results now assemble into a fixed evidence pack across four export formats: a fixed-layout PDF, an HTML rendering, a DOCX document, and a JSON payload carrying the same evidence model for downstream use. Each of the eight fixed sections — universe and data, absolute risk, benchmark-relative risk, portfolio construction, model, out-of-sample validation, strategy backtest, and method and limitations — renders only when the underlying evidence was actually supplied by work done in the project.

    Undefined statistics render as an em dash rather than zero, so a quantity the workspace could not compute is never mistaken for the worst possible value of one it could. The no-live-order-routing statement appears verbatim on every page footer and again in the method and limitations section of every generated PDF.

  10. added

    Walk-forward validation and the evidence layer

    Walk-forward validation now runs across four split modes — a single chronological split, rolling and expanding walk-forward, and combinatorial purged cross-validation — with purging and embargoing applied by default at every train/test boundary. The purge gap floors at the label horizon rather than a smaller configured embargo alone, closing the leakage window that overlapping labels create regardless of the embargo setting on screen.

    Alongside validation, the evidence layer now supports the deflated Sharpe ratio, the probability of backtest overfitting via combinatorially symmetric cross-validation, White’s Reality Check and Hansen’s Superior Predictive Ability test, and multiple-testing haircuts including Bonferroni, Holm’s step-down procedure, and Benjamini-Hochberg-Yekutieli. Experiment comparison tables sort by deflated Sharpe ratio rather than raw Sharpe ratio, so the most heavily searched configuration cannot win by default.

  11. added

    Core research workflow shipped end to end

    The complete research pipeline now runs as one connected path inside a project: universe selection, data preparation, feature engineering, model training, portfolio construction and strategy backtesting each feed the next stage rather than existing as separate, disconnected tools. A universe applied on the Market Explorer page carries through automatically to risk diagnostics, feature building and model training, and a change made early in the pipeline — a different date range, a revised calendar alignment — is visible in every later stage that depends on it.

    This is the foundation the workspace’s eight-stage research journey is built on: universe, explore, data, portfolio, features, models, strategy and backtest, and evidence. Each stage states not just what it does but why it matters for everything downstream of it, including the biases and assumptions it passes forward.

Shape the next entry.

Beta researchers report refusals and weak results; those reports become the changelog.