Ensembles in trading: when averaging models helps and when it just costs more
Averaging models reduces variance if the errors are uncorrelated. On market data they usually are not, which is why most trading ensembles are one model with extra latency.
Vizanix engineering · about the author
- SECTION
- Markets and AI
- PUBLISHED
- 2026-08-29
- CHAPTERS
- 5
- READ NEXT
- 3
- LANGUAGE
- written in English
Ensembling is the reliable default in machine learning competitions and the reflexive first improvement people reach for. In trading it works less often than expected, for a reason worth understanding.
The condition that has to hold
Averaging reduces variance in proportion to how uncorrelated the members' errors are. If every model makes the same mistake on the same inputs, averaging them produces the same mistake with more confidence and more compute.
On market data the members are usually correlated by construction: trained on the same history, from the same features, with the same labels. Varying the random seed or the tree depth does not fix that — those produce diversity in the noise, not in the systematic error.
Diversity that is actually structural
Members whose errors genuinely differ:
- Different label horizons. A model predicting the next 30 seconds and one predicting the next 30 minutes fail in different conditions.
- Different feature families. One on order book structure, one on trade flow, one on cross-instrument context. Missing information differs, so the errors differ.
- Different objectives. Direction classification and expected-move regression disagree in informative ways, and the disagreement itself is a feature.
- Different training regimes. One fitted on high-volatility periods, one on calm, with the regime label choosing the weighting.
Our microstructure engine is an ensemble in this sense — direction, maximum favourable excursion and maximum adverse excursion are separate heads answering different questions. They are not averaged; each output feeds a different part of the decision. Direction picks the side, MFE sizes the target, MAE sizes the stop.
Disagreement as a risk signal
The most useful thing an ensemble gives you is often not the averaged prediction. It is the spread.
preds = [m.predict(x) for m in members]
mean, spread = np.mean(preds), np.std(preds)
# Wide disagreement = unfamiliar input. Size down rather than averaging through it.
confidence = 1.0 / (1.0 + spread / CALIBRATED_SPREAD)
size = base_size * min(confidence, 1.0)
if spread > SPREAD_HALT:
return skip("members disagree beyond calibrated range")This is an out-of-distribution detector for free. When members trained on the same data disagree sharply, the input is unlike what any of them saw — which is exactly when a single model would be confidently wrong.
The costs, stated plainly
| Cost | Impact |
|---|---|
| Inference latency | N× — matters on short horizons, irrelevant on candle signals |
| Operational complexity | N artefacts to version, deploy, monitor and roll back |
| Attribution | Harder to answer why a decision was made — see explainability |
| Drift detection | N distributions to watch instead of one |
| Retraining cost | N× compute and N× chances to introduce an inconsistency |
None are prohibitive. All are real, and they should be weighed against a measured improvement rather than an assumed one.
The recommendation
- Build one well-validated model first. Purged, out of sample, costs inside.
- Measure residual correlation before adding members. If it is high, stop.
- Prefer structural diversity — different horizons, features, objectives — over seed diversity.
- Use disagreement as a confidence signal even if you do not average.
- Compare the ensemble to the single model on the same honest validation, and count the operational cost as part of the comparison.
In our experience the disagreement signal is worth more than the averaged prediction, and the honest comparison often ends with one model and a spread check — which is simpler to operate and easier to explain at 4am.
This article describes engineering practice. It is not investment advice. Vizanix develops software and does not promise trading returns.