All projects

AI & ML / Full Stack

AETHER

Evolutionary ML research platform

Evolutionary trading agents, evaluated without shortcuts.

Role
Platform design, ML evaluation and full-stack engineering.
Status
Research platform with a read-only public showcase
Year
2026
AETHER dashboard overview with a chart of validation return against buy-and-hold and a list of recent experiments.
Dashboard overview on the synthetic demo experiment.

01

The problem

It is easy to build a trading backtest that looks brilliant: look-ahead bias, tuning against the test set, optimistic costs. The interesting question is whether a population of agents, trained and evolved on historical data, can find anything that survives honest out-of-sample evaluation.

AETHER is built so the answer, whichever way it goes, can be trusted.

02

My contribution

I designed the platform and its evaluation protocol and built it end to end: the research engine, the FastAPI service with background jobs, and the Next.js dashboard.

A lot of the work is in the parts that stop it lying to me: point-in-time features, leakage tests for every agent family, a final test locked by type, and calibrated uncertainty on every metric.

  • Python
  • PyTorch
  • XGBoost
  • FastAPI
  • Next.js

03

How it works

  1. Ingest

    Datasets are validated, cleaned, content-hashed and stored immutably. Every experiment records exactly which bytes it used.

  2. Featurise

    25 point-in-time features. A feature on day t only uses bars up to the close of day t.

  3. Evaluate

    Agents are scored on purged, expanding walk-forward folds with an embargo, the same costs and the same risk rules.

  4. Evolve

    Elitism, tournament selection, bounded mutation and same-family crossover, with full lineage and cached re-evaluation.

  5. Final test

    The most recent 20% of the series stays locked away until one explicit, one-time run on pre-registered champions.

04

Engineering details

  • Leakage guards

    Poisoned-future tests recompute features and check that all six agent families make bit-identical decisions up to day t, and that the simulated portfolio is unchanged.

  • Final test locked by type

    Tournaments and evolution only accept a development-data type that cannot contain test bars. Running the final test twice needs an explicit acknowledgement and permanently flags the experiment.

  • Uncertainty that is calibrated

    Daily returns cluster in volatility, so plain bootstrap intervals are too narrow. A stationary block bootstrap was implemented and its coverage tested on simulated data.

  • Bit-identical reproducibility

    Seeded generators, single-threaded XGBoost and Random Forest, and deterministic PyTorch mean an identical configuration reproduces identical results, in parallel or serial.

  • Typed genomes, never code

    Agents are built from typed, bounded genomes. The API accepts configuration, never Python or shell, and model artifacts load only after their SHA-256 matches the database record.

05

Results & limitations

On five liquid US instruments over 21 years, evolution reliably improves the score it is selected on, but it does not find strategies that generalise better than its own first generation or an equal-budget random search, and none beat passive exposure on the final test. The platform exists to report exactly that, and it does.

  • 0 of 15

    evolved champions beat buy-and-hold

    On the locked 2022 to 2026 final test, run once after all selection was complete.

  • 13 of 15

    runs raised their selection score

    Yet the champion was no better than generation 0 on unseen data (6 wins, 7 losses) and lost to equal-budget random search (4 wins, 9 losses).

  • 797 / 797

    values reproduced bit for bit

    A full real-data research run re-executed from scratch matched on every value.

Limitations and honest caveats

  • Historical simulation only. AETHER never places orders, connects to a broker or claims any strategy is profitable. Nothing it produces is investment advice.
  • 2022 to 2026 was largely a bull market, which favours simply staying invested.
  • Results on synthetic data say nothing about real markets. Yahoo Finance data is unofficial and fine for prototyping, not institution-grade.
  • The public site is a read-only snapshot of results computed locally. Training and new experiments are disabled there.