productOct 15, 2026

Pythia v0.12.0: signals from a committee of models

Pythia v0.12.0 replaces single models with committees that vote on every decision, reads several order books together and sets input windows per signal.

Back to Blog

Released 14 October 2026

Until now, each Pythia signal came from a single model. Starting with v0.12.0, eight of our ten signals come from a committee of models that votes on every decision. That covers the four US equity indices, both metals and both energy contracts. The models also read several order books at once, and each signal now has its own intraday windows. Together, these changes alter how the signals behave, especially how often they stay flat.

Here is what changed and why it matters.

In short

  • Eight signals are now composite. Instead of betting on one model, we build a configuration that reliably produces good models, then let a committee of 5 to 12 of them vote on every decision.
  • Models read several order books together, so each signal is formed in the context of the related books.
  • Each signal now has its own data input window and signal generation window.
  • Stable shows up much more often. It now means the committee does not agree, not that one model is unsure. Positions are taken less often, and that changes how you should size.
  • Results. From January to July 2026, the composite returned more than the model it replaces on all eight signals. The equity-index results are the most robust, since nothing in their setup was tuned on test years. In September, its first full month live, the composite was ahead on five of eight.

Composite signals: a committee, not a single model

A single model, however good, is a bit of a shot in the dark. Training searches a very large space, and every run settles into one specific local optimum. That optimum might fit the data it was trained on well, yet have shortcomings that only show up in a different market regime or in a noisy session. Train the same model again with a different random seed and you land somewhere else, with different calls and different weaknesses. Picking the one that looks best is partly picking the luckiest draw.

With v0.12.0, we have shifted from looking for the right model to building the right configuration: a recipe designed to produce good models whatever the regime and whatever the noise in individual sessions. We no longer rely on any single optimum. We train many models from that configuration, keep the ones that pass fixed tests, and let them vote. A composite signal takes a direction only when the committee agrees, so no single model's quirks decide the outcome.

Every composite signal is built in three steps.

1. One configuration, many models. The configuration fixes everything about how a model is built and trained: architecture, inputs and training settings. The only thing that changes from one model to the next is the random seed. Each seed produces a different model from the same configuration, and we train 12 of them for every walk-forward fold. What we evaluate is the configuration, not any one model it produces. We fixed the configuration, chiefly the size of the network, by running a few candidates through the whole process on all five walk-forward years.

2. Admission by fixed rules. A model joins the committee only if it passes four tests. We set those tests before running any evaluation year, and we never adjust them after seeing results:

  • It kept learning. Its best epoch came at least 40% of the way through training, not in the first few passes.
  • It did not fade. Its final performance is close to its best.
  • It beat the baseline. It earned better risk-adjusted return than simply holding the instrument long or short.
  • It is not one-sided. Between a quarter and three quarters of its calls are Up.

Models that pass are not ranked or weighted, because a committee built from the best performers on the evaluation data would carry the same selection bias it is meant to remove. If fewer than three models pass, that year produces no committee.

3. A direction decided by vote. Every admitted model votes on each decision. The signal is Up or Down when the committee votes for a direction, and Stable otherwise. The vote is taken separately for each signal, so one instrument can be Up or Down while another is Stable. The equity-index committees need a unanimous vote: all five members must agree. Metals and energy use a quorum, for example 9 of 12 on crude oil.

The eight composite signals in this release, and the models they replace:

Table 1: Current composite signals and their committees

SignalCurrent versionReplacesMembersVote2022–2026 report
SP500_DTCv16Pythia-bB8ES (v15)5UnanimityWalk-forward
NASDAQ100_DTCv17Pythia-bB8NQ (v16)5UnanimityWalk-forward
RUSSELL2000_DTCv17Pythia-Br2d2 (v16)5UnanimityWalk-forward
DOW30_DTCv16Pythia-gC3PO (v15)5UnanimityWalk-forward
GOLD_DTCv11Pythia-I3rk8 (v10)9QuorumWalk-forward
SILVER_DTCv10Pythia-c7klm (v9)10QuorumWalk-forward
OIL_DTCv11Pythia-oV2xL (v10)12QuorumWalk-forward
NATGAS_DTCv7Pythia-nR9fQ (v6)10QuorumWalk-forward

The FX signals, EUR_USD_DTC and YEN_USD_DTC, don't change in this release.

Walk-forward validation

Committees are evaluated walk-forward. Each test year gets its own committee: we train it, admit models with the four tests on the following validation year, and only then score it on a year it has never seen.

Table 2: Walk-forward folds

FoldTrainingValidationTest
F52017 – Oct 202020212022
F42018 – Oct 202120222023
F32019 – Oct 202220232024
F22019 – Oct 202320242025
F12020 – Oct 202420252026
F0 (production)2020 – Oct 20252026Serving now

Training ends in October of the year before validation (31 October for metals and energy). We report the five test years separately, never pooled, so a strong year cannot hide a weak one. The committee serving today (F0) was trained through October 2025 and validated on 2026, so it is not scored in these results. Each committee's models never saw the year they are scored on, and the admission tests were fixed in advance.

For the equity indices, the vote (unanimity) and the trading window (the full session) are the same in every fold and were not tuned. For metals and energy, the vote quorum and the signal generation windows were chosen with both validation and test years in view. Their walk-forward figures are therefore less conservative than the equity indices', and their live results carry more weight. Each signal's year-by-year results, fold by fold, are in its walk-forward report, linked in the table above.

Reading several order books together

Previously, a model predicted from its own instrument's order book. Some models were trained on data from two or more instruments, but that data was pooled, not read side by side. In v0.12.0, a model reads several order books at the same time, both in training and at inference. Each signal is formed with the related books in view, and the model can use the relationships between them.

The model still emits one signal per instrument. It makes a separate prediction for each book it reads, conditioned on which instrument the prediction is for. Some books are read only for context: they sharpen the published signals without becoming signals themselves.

Table 3: Context books by sector

SectorSignalsContext books (not published)
Equity indicesSP500_DTC, NASDAQ100_DTC, RUSSELL2000_DTC, DOW30_DTCnone
MetalsGOLD_DTC, SILVER_DTCCopper (HG), Platinum (PL)
EnergyOIL_DTC, NATGAS_DTCHeating oil (HO), Gasoline (RB)

Separate input and generation windows, per signal

Previously, every model read the order book only during the US regular session, from 09:30 ET, and the same window governed both reading data and generating signals. That suits equity index futures. It is a poor fit for metals and energy, whose order books are active well before New York opens and whose CME settlements come earlier in the afternoon.

Each signal now has two windows:

  • Data input window: when the model starts reading the order book. It runs from that point through settlement.
  • Signal generation window: when the model emits signals for opening positions. Within that window there is a decision point every five minutes, where the signal is Up, Down or Stable.

Table 4: Data input and signal generation windows by signal

SignalData input fromSignal generationDecision points per dayPositions closed (CME settlement)Round-trip cost
SP500_DTC09:30 ET09:45 – 15:25 ET6915:55 – 16:00 ET1.0 bp
NASDAQ100_DTC09:30 ET09:45 – 15:25 ET6915:55 – 16:00 ET1.0 bp
RUSSELL2000_DTC09:30 ET09:45 – 15:25 ET6915:55 – 16:00 ET2.0 bp
DOW30_DTC09:30 ET09:45 – 15:25 ET6915:55 – 16:00 ET1.5 bp
GOLD_DTC02:00 ET09:30 – 09:45 ET413:25 – 13:30 ET1.5 bp
SILVER_DTC02:00 ET09:45 – 10:15 ET713:20 – 13:25 ET3.0 bp
OIL_DTC02:00 ET10:45 – 11:00 ET414:25 – 14:30 ET1.5 bp
NATGAS_DTC02:00 ET09:30 – 09:45 ET414:25 – 14:30 ET2.5 bp

For the equity indices, the model reads from the open and emits signals through most of the regular session. For metals and energy, the model reads the book from 02:00 ET, so by the time it emits signals it has already seen the European session and the build-up to the US open. Their signal generation windows are short and set for each contract, and positions are held to that contract's CME settlement.

How the signals behave now

Signal values are unchanged: 0 = Down, 1 = Stable, 2 = Up. What has changed is what Stable means, and therefore how often the signal holds a position.

Table 5: What changed in signal behaviour

Previouslyv0.12.0
What Stable meansA thin neutral band in a single model's outputThe committee does not vote for a direction
How oftenRarely emittedCommon, and it varies by signal
What you holdOne unit of notional whenever the model was not flatThe same, but flat more often
Effective leverageAbout 1×Always below 1×

Participation

We call the share of decision points at which a signal holds a position its participation. Under a single model, participation was close to 100%. Under a committee, it depends on how strict the vote is and how much the members agree:

  • Equity indices (unanimous vote): about 35–50% across test years. All five models must agree, so the signal sits out ambiguous conditions.
  • Metals (quorum): high. Gold has run between 78% and 100%, and Silver between 59% and 100%.
  • Energy (quorum): Crude Oil around 55–64%, and Natural Gas around 34–48%.

In practice, a Stable reading now carries information: it says the committee does not agree on a direction. Since the vote is taken separately for each signal, Stable on one instrument does not imply Stable on the others.

Effective leverage and sizing

Because the signal is flat more often, it deploys less notional on average than the capital behind it. Effective leverage is that average gross notional relative to capital, time-weighted over the trading window. It is about 0.2× for the equity indices, roughly 0.5–0.9× for the metals and 0.3–0.6× for energy.

We publish returns unlevered, at the leverage each signal actually ran. Read the Sharpe ratios and returns with that in mind: a +5% year on the S&P 500 signal was earned with about a fifth of the capital deployed on average. To deploy the same notional as the previous single-model signal, scale your position by the inverse of the effective leverage. Effective leverage for each signal, by year and by quarter, is in its walk-forward report (linked in the composite signals table).

Performance

How we benchmark

The signal windows above also define the benchmark strategy behind every number in this section. At each decision point, the benchmark opens a long, short or no position sized at an equal share of the day's capital (1/69 for the equity indices, 1/4 for Gold). Every position is closed during the settlement window. There is no other sizing adjustment, and all returns are net of the round-trip costs in the windows table. The full rules are in Benchmark Trading Strategy.

For the equity indices, this matches the previous benchmark: 69 decision points between 09:45 and 15:30 ET. For metals and energy, the change is large. The previous benchmark had 69 decision points a day for metals and 51 for energy, spread across the US session. It now has 4 to 7, concentrated in a short window set for each contract, with every position held to settlement and each one carrying a larger share of the day's capital. Benchmarks for these signals are therefore not directly comparable with reports published before v0.12.0.

The benchmark trades every decision point because that is the most complete test of the signal, not because you need to. Our customers typically trade far fewer, choosing the ones that fit their own execution, holding period and capacity.

Combined into portfolios

These are the same walk-forward committees combined into fixed-weight portfolios. Figures are the actual return for each year, unlevered and net of per-instrument costs.

Table 6: Annual Sharpe and return of the portfolios

YearEquity indices (equal weight): Sharpe / ReturnAll eight (equal weight): Sharpe / ReturnAll eight (inverse vol): Sharpe / Return
2022+0.87 / +6.1%+1.51 / +10.7%+1.51 / +10.7%
2023+1.15 / +4.8%+0.62 / +2.9%+0.68 / +2.4%
2024−0.65 / −2.0%−0.03 / −0.1%−0.41 / −1.1%
2025+0.89 / +7.0%+2.50 / +10.6%+1.30 / +7.1%
2026 (to 28 Sep)+2.12 / +5.7%+2.38 / +12.9%+2.47 / +11.8%

The all-signal portfolios had maximum drawdowns of 2.5% to 4.5% in every year. 2024 was a weak year for equity indices, and we report it as it came out. The all-signal portfolios include metals and energy, so the caveat on their tuning applies to them too.

2026 year to date: composite vs previous model

The previous models' monthly benchmark reports run through July 2026, and the composite reports cover every month of 2026. Over January to July, the composite returned more than the model it replaces on all eight signals.

Table 7: 2026 year to date (Jan to Jul): composite vs previous model

SignalPrevious model, Jan–JulComposite, Jan–JulMonths composite ahead
SP500_DTC−2.6%+2.3%5 of 7
NASDAQ100_DTC−2.9%+5.4%6 of 7
RUSSELL2000_DTC+2.4%+7.2%4 of 7
DOW30_DTC−1.3%+4.3%5 of 7
GOLD_DTC+10.6%+22.2%5 of 7
SILVER_DTC+19.6%+43.3%5 of 7
OIL_DTC+2.3%+17.8%4 of 7
NATGAS_DTC+8.9%+9.9%4 of 7

Monthly returns compounded from our published benchmark reports (each figure links to its source: the previous model's July 2026 report and the composite's September 2026 report), unlevered and net of costs. Each model is shown on its own benchmark strategy (see above). Composite figures come from the walk-forward committee for which 2026 is the test year; its models were not trained, validated or admitted on 2026 data. Backtested results.

The equity-index comparison is the cleanest. For metals and energy, the composite's vote and windows were set with 2026 in view (see Walk-forward validation), so read their margins with that in mind. On the equity indices, the composite also did this with less capital at work: roughly 0.2× effective leverage, against about 1× for the previous model. It did not win every month, but it avoided the previous models' worst months. June, for example, cost the previous S&P 500 and Nasdaq 100 models more than 3% each, while both composites gained.

First month live

September 2026 was the first full month of composite signals produced in real time. These are live results, not a backtest: cumulative return, unlevered and net of costs, shown next to the previous model.

Table 8: September 2026: composite vs previous model

SignalCompositePrevious model
SP500_DTC+0.69%−1.48%
NASDAQ100_DTC+0.54%+1.13%
RUSSELL2000_DTC+0.07%+0.03%
DOW30_DTC+0.67%−1.28%
GOLD_DTC−0.19%+0.39%
SILVER_DTC−0.29%−3.89%
OIL_DTC+1.54%−4.29%
NATGAS_DTC−0.11%+1.50%

The composite beat the model it replaces on five of eight signals. Its three losing signals each lost less than 0.3%, while the previous model lost about 4% on both Silver and Crude Oil. One month is a small sample. The year-by-year walk-forward record is the better guide. Each composite figure above links to that signal's September report, and every report is on the benchmarks page.

Compare current and previous versions

Each signal keeps its signal_id, and its current version now points to the composite, so existing integrations receive it with no changes. Previous versions remain available through the API. You can request the model a signal used before by relative offset (~1) or by pinned version (for example @v15 for the S&P 500), and stream it, poll it or backtest it next to the composite. That is the easiest way to see the change in behaviour in your own stack before you resize.

Get started

Backtested results are hypothetical, and past performance is not indicative of future results. All figures are unlevered and net of per-instrument transaction cost assumptions. All signals are derived exclusively from publicly disseminated exchange order-book data.