
A hundred weak signals voting still cannot call direction
Voting ensembles of "weak learners" (the idea of aggregating the opinions of hundreds of AI agents to predict market direction) do not work for FX…
Voting ensembles of “weak learners” (the idea of aggregating the opinions of hundreds of AI agents to predict market direction) do not work for FX, metals, or indices. My research into this approach across six major assets (EURUSD, USDJPY, GBPUSD, AUDUSD, XAUUSD, and US500) resulted in a total rejection of the hypothesis. In other words, no matter how many agents you put to work, you cannot create an edge where none exists.
The hypothesis versus the math
The concept was inspired by autonomous AI societies in gaming, where many agents interact to create a complex world. However, there is a fundamental flaw in applying this to trading. In a game, agents create the world. In the markets, price is exogenous; agents are merely observers. Mathematically, this is a voting ensemble. While ensembles are excellent at reducing variance, they cannot create an edge (bias) that isn’t already there. If you average 120 models that each have zero edge, you simply get a smoother, more consistent zero.
Testing the ensemble
I generated 121 diverse weak learners using standard technical indicators (moving averages, RSI, Bollinger Bands, MACD, etc.) with various parameter settings. I tested four aggregation methods: simple majority vote, in-sample Sharpe-weighted voting, and two versions of confidence-threshold voting. The performance criteria were strict: the ensemble had to outperform the median of individual models, the best-performing in-sample model, and a simple Buy & Hold strategy in out-of-sample (OOS) testing, while maintaining a directional hit rate above 0.51.
| Asset | Best Hit Rate (OOS) | OOS Sharpe | Buy & Hold Sharpe |
|---|---|---|---|
| EURUSD | 0.503 | -0.04 | +0.48 |
| USDJPY | 0.503 | +0.16 | +0.91 |
| GBPUSD | 0.494 | -0.38 | +0.32 |
| AUDUSD | 0.504 | +0.12 | +0.39 |
| XAUUSD | 0.508 | +0.11 | +0.91 |
| US500 | 0.547 | +1.80 | +4.01 |
Why it failed
The results show that the directional hit rate for all assets hovered almost perfectly at 0.50. Even the US500, which showed a deceptively high Sharpe ratio, failed to beat the market beta of Buy & Hold and resulted in a 0.0% Monte Carlo pass rate. There are three clear reasons for this failure:
- The lack of raw fuel: Individual learners lack a robust edge, so bundling them does nothing to improve the core signal.
- The timing wall: While some indicators have “conditional edges” (e.g., trend indicators working during high-volatility periods), these are tied to specific market conditions. Aggregating these via voting acts as a lagging indicator, failing to predict when a move will happen.
- Cost inefficiency: Majority voting crushes the diversity of individual signals into a single output, which usually fails to overcome the drag of trading costs.
Where does this leave us?
This research confirms that meta-level operations (whether rotating models or simultaneously aggregating them) cannot manufacture an edge if the underlying market data lacks persistent predictability. However, this doesn’t mean the “AI agent” concept is entirely dead. This study only tested the statistical core (voting). The next logical step is to move away from OHLC price data and toward LLM-based agents that can interpret external context like geopolitical news or earnings reports. Alternatively, applying these agents to markets with known anomalies (such as individual stocks or assets with stronger momentum persistence) might yield different results. The framework is ready; it just needs a different kind of fuel.
How this connects
This verification builds on earlier ones (what failed before and what I tried this time, comparisons between approaches).