# Ensemble Voting of Signals

A Machine Learning concept (Ensembles) in the LuxAlgo Library, with 1 indicator implementation.

## What is Ensemble Voting of Signals?

Ensemble voting of signals combines several independent signals or models into a single output by letting them vote. The mechanics vary: a simple majority of buy versus sell flags, a weighted vote where more trusted inputs count for more, or an average of normalized scores that is then thresholded. The idea is borrowed from ensemble learning: when individual signals make partly uncorrelated errors, aggregating them cancels some of the noise, so the combined output tends to be steadier than any single input.

The intuition is old: Condorcet's 1785 jury theorem showed that a majority of independent voters, each slightly better than chance, grows more reliable as the panel grows, and that the logic reverses when voters are wrong on average. Machine learning formalized the idea in the 1990s through bagging and boosting, and Leo Breiman's random forest, published in 2001, made averaging many randomized trees mainstream. Trading platforms adopted the polled-indicator form: TradingView's Technical Ratings tallies buy, neutral, and sell verdicts from a fixed roster of moving averages and oscillators into one aggregate reading.

The catch is diversity. Voting only helps when inputs disagree for informative reasons. A panel of ten moving-average crossovers votes almost in unison, so it behaves like one indicator with extra steps. Ensembles built across families, for example trend, momentum, and volume measures, are the ones whose errors have a chance to offset. This is the machine-learning cousin of the discretionary confluence checklists traders have always kept, formalized so the aggregation rule is explicit and testable.

Weighting is where designs diverge. Equal votes are robust but treat a stale input the same as a sharp one; performance-weighted votes adapt but chase noise if the evaluation window is short. Some designs down-weight correlated inputs so near-duplicates cannot dominate the tally, a problem [feature engineering](https://www.luxalgo.com/library/concept/feature-engineering/) and dimensionality reduction such as [PCA](https://www.luxalgo.com/library/concept/pca/) address before the vote is taken. The output can stay a raw count, be scaled to a bounded score, or be passed through [logistic signal calibration](https://www.luxalgo.com/library/concept/logistic-signal-calibration/) so the tally reads as an estimated probability rather than an arbitrary number.

## How to Identify Ensemble Voting in an Indicator

Ensemble tools rarely announce themselves; the tell is an output assembled from a roster of sub-signals:

1. Open the settings or source and count the inputs: a genuine ensemble lists multiple distinct components, often with per-component toggles or weights.
2. Check the output format: vote counts, a bounded consensus score, or a rating gauge all point to aggregation rather than a single formula.
3. Look for family diversity: note whether components span trend, momentum, volume, and volatility, or are mostly one calculation at different lengths.
4. Compare the composite to its components: if the aggregate shadows one dominant input rather than flipping only when several agree, the voting is cosmetic.
5. Find the threshold: the tally required to print a signal controls how conservative the whole tool is.

## How traders use it

- As an aggregate rating: many indicators are polled into buy, neutral, and sell counts, and the net tally becomes a single directional score.
- As a trade filter: entries require a supermajority of agreeing inputs, and disagreement is read as a stand-aside condition rather than a weak signal.
- As a wrapper on learned models: predictions from several classifiers are averaged or majority-voted, the same principle that makes a [random forest](https://www.luxalgo.com/library/concept/random-forest/) an ensemble of trees.
- As regime-aware weighting: trend inputs count for more when a regime model such as [Hidden Markov switching](https://www.luxalgo.com/library/concept/hidden-markov-markov-switching-regimes/) flags a trending phase, and mean-reversion inputs take over in ranges.
- As an uncertainty gauge: near-split panels read as low conviction and argue for smaller size even when the majority leans one way.
- As a continuously updated committee: weights are re-fit as outcomes arrive via [online learning](https://www.luxalgo.com/library/concept/online-incremental-learning/), so decaying components lose influence without manual re-optimization.

## Ensemble Voting vs related concepts

- **Random Forest** (https://www.luxalgo.com/library/concept/random-forest/): Ensemble voting built in: hundreds of decorrelated decision trees vote on each prediction. Signal-level voting applies the same aggregation to hand-picked indicators and models instead of automatically grown trees.
- **Bayesian Classifiers** (https://www.luxalgo.com/library/concept/bayesian-classifiers/): A Bayesian classifier combines evidence multiplicatively through likelihoods and priors, producing a posterior probability. Voting is a blunter, assumption-light aggregation: it counts agreement rather than modeling how the inputs relate.
- **Logistic Signal Calibration** (https://www.luxalgo.com/library/concept/logistic-signal-calibration/): Calibration turns a raw score, including a vote tally, into an estimated probability by fitting it against realized outcomes. Voting produces the consensus; calibration tells you what that consensus has historically been worth.

## FAQ

### Why combine indicators instead of picking the best one?

Because the best single indicator in a backtest is often best by luck, and its edge shifts with conditions. Voting across diverse inputs reduces dependence on any one parameter choice and smooths out individual errors. The benefit only appears when inputs are genuinely different; combining near-duplicates of the same calculation concentrates the same mistake instead of canceling it.

### How many signals should an ensemble use?

There is no standard number. Diversity matters more than count: a handful of inputs drawn from different families, such as trend, momentum, and volume, typically adds more than dozens of correlated oscillators. Each additional signal should contribute information the panel lacks. Past that point, extra correlated voters just entrench the majority view and slow the ensemble's response to change.

### What is the difference between majority voting and weighted voting?

Majority voting counts every input equally and signals with the larger side: simple and hard to overfit. Weighted voting scales each vote by trust, typically recent accuracy or a fitted coefficient, which can help but adds parameters that must themselves be validated. Equal weights across deliberately diverse inputs is a common middle ground.

### Can ensemble voting combine machine-learning models with classic indicators?

Yes, and mixed panels are often the point: a [nearest-neighbor forecaster](https://www.luxalgo.com/library/concept/knn-analog-forecasting/), a small [neural network](https://www.luxalgo.com/library/concept/neural-networks/), and a few rule-based signals make errors for different reasons, which is the diversity voting exploits. The practical requirement is a shared output convention: every component must be reduced to a comparable direction or score before the tally.

### Why does an ensemble lag at turning points?

Consensus is inherently slow: a majority of inputs must flip before the composite does, and correlated voters flip late together. That lag is the price of fewer whipsaws. Lowering the threshold or weighting faster components more heavily buys back some responsiveness at the cost of stability.

### How should an ensemble's output be evaluated?

The same way any single model is: define the predicted outcome first, per [label definition and prediction horizon](https://www.luxalgo.com/library/concept/label-definition-and-prediction-horizon/), then evaluate the composite out of sample. The component list, weights, and threshold are all degrees of freedom, so walk-forward validation matters, and tweaking the roster until history looks good is the main failure mode.

## Implementations in the Library

- Ensemble Voting of Signals (LuxAlgo): https://www.luxalgo.com/library/indicator/ensemble-voting-of-signals/

## Related concepts

- Model Stacking: https://www.luxalgo.com/library/concept/model-stacking/
- Bagging: https://www.luxalgo.com/library/concept/bagging/

---

Source: https://www.luxalgo.com/library/concept/ensemble-voting-of-signals/ (LuxAlgo Library, the encyclopedia of trading & technical analysis). Free to use with attribution: https://www.luxalgo.com/library/license/