A stock-analysis robot. Seven signal dimensions, 174 assets scanned every day, a brief sent on Telegram every evening. After six months of rigorous measurement, it delivered its verdict: don't listen to it. That's not a project failure. It's the most honest result it could produce. Camilo, a digital marketer in Valais and a complete beginner at investing, asks himself a simple question at the start of the year: can artificial intelligence really beat the market? Rather than looking for the answer in a forum or an advert, he builds a tool to measure it himself — with CHF 100 invested every week in a Revolut account, real money. Not a bet. An experiment.
Seven dimensions, 174 assets, a brief every evening
The robot analyses 174 assets across seven signal dimensions and several timeframes (multi-timeframe). Every evening at 10.30pm, it sends a brief on Telegram with its observations for the day. A paper-trading system — simulated positions, no real money — lets it test its own decisions without risking anything. The whole thing runs unattended, every day, watched over by 141 tests that check nothing breaks silently, with an automatic catch-up run in the morning if the previous day's pipeline failed.
That's the machine. It took a few months to build. It isn't the point of this story.
The tribunal: three verdicts, in numbers
A signal that looks convincing on paper proves nothing. So rather than trusting its own results, the robot is built to judge itself: walk-forward validation (no information from the future leaking into the past), validation on assets and periods held back from tuning (out-of-sample), and a systematic comparison against the simplest strategy there is — buy and hold — real fees deducted every time.
Three independent measurements, run at different times, converge on the same conclusion.
First verdict: across the seven original signal dimensions, 0 out of 12 tested assets beat buy and hold. Pooled success rate: 39%.
Second verdict: the most promising candidate — a cross-sectional momentum strategy across several assets — is put through a stress test of 12 scenarios. It survives only 2. Rejected.
Third verdict, the most precise one: an empirical calibration of the composite score, run in July 2026 on five years of data across 12 assets, over a 20-day horizon. The table speaks for itself:
| Score band | Success rate | Sample |
|---|---|---|
| 0.0 – 0.2 | 50% | 11,013 observations |
| 0.2 – 0.4 | 47% | 2,522 observations |
| 0.4 – 0.6 | 53% (inconclusive) | 17 observations |
| ≥ 0.6 | — | 0 observations in 5 years |
A score of 0.0 to 0.2 succeeds one time in two. So does a score of 0.4 to 0.6 — but on 17 cases, no conclusion can be drawn. And nobody has ever seen a score above 0.6 in five years of market data. The signal says no more than a coin flip.
Direct consequence: the dashboard column that used to be called "Confidence" is renamed "Strength", with a plain-text warning attached. And the real money — the weekly CHF 100 — goes into buy and hold via scheduled instalments (DCA), not into the robot's signals. Active trading itself stays entirely in paper trading: zero real francs at stake.
In concrete terms, this real portfolio today amounts to three lines: 0.322 shares of GOOGL, around CHF 100 of EQQB, a VWCE purchase still to come. Balance to date: around -2%. Nothing impressive — and that's precisely the point. This isn't a performance being shown off. It's a discipline being documented.
The CRWD affair: a -71.8% that never existed
On 2 July, CRWD stock undergoes a 4-for-1 split in the paper portfolio. The system doesn't detect it. The next day, the dashboard shows a -71.8% loss on the position. A figure that sends a chill down your spine — until you check: the position is in fact profitable, up around +13%.
The choice, at that moment, isn't a minor one. You could let it slide, quietly patch it, or simply ignore a bug on a paper account — nobody would know. Instead, automatic split detection is added to the system, and the historical data is recalculated and retroactively credited back ($133.02). The error stays documented in the history, not erased.
When your machine shows -71.8% and the truth is +13%, the question isn't "how do I fix the number" — it's "how many other numbers are we looking at without checking them".
The machine that refuses to declare victory
What follows is the most interesting part. Once the bug is fixed, the paper account used to explore the signals finds itself, over the period, ahead of its own benchmark — around $1,024 against $973 as of 10 July. Tempting to declare victory.
The system refuses to. Five weeks of data is statistically nothing — the significance thresholds are hard-coded, and they aren't met. No conclusion drawn from too small a sample, even when that small sample happens to be favourable.
The same principle shows up on the satellite account dedicated to Bitcoin: $1,000 in cash, and no purchase in over five weeks. The robot waits for its signal instead of trading for the sake of trading.
So the robot hasn't become useless. It has become what it should have been all along: an anti-FOMO discipline coach, a learning lab with no real money at stake, a safeguard that refuses to lie to itself — even when the truth would be flattering.
The method: separating the one who produces from the one who judges
A word on how this system was built, because it follows the same logic the robot applies to the market.
Development follows a two-intelligence cycle: a strong model (Claude Fable) audits the code and writes a precise brief; a fast model (Claude Sonnet) executes that brief; then the result is checked — by the 141 tests first, by a fresh audit afterwards. On 11 July 2026, this cycle produced seven commits in one session, each checked before the next.
The principle is the same everywhere: the one who produces is never the only one who judges. The robot doesn't trust its own signals until an independent backtest has validated them. The code doesn't ship until another set of eyes has reviewed it. It's less spectacular than an AI demo that promises everything. It's also what makes it trustworthy.
Measuring before promising
OSOM Labs builds systems that measure before they promise. This project takes that to an extreme: a robot whose honesty is wired into the code rather than promised in a brochure — right down to the footer of its daily brief, which reminds you every evening that its signals are educational, edge unproven.
In a market where everyone sells "the AI that predicts", this one earned the right to say "I don't know" — and all of it is documented. A target is never a guarantee. Here, the measurement runs every evening at 10.30pm; it isn't a slogan.
Reading frame
This story describes a personal, educational project. Nothing here constitutes investment advice. The figures shown describe a system under test, on a limited portfolio; they are neither representative nor reproducible.
Key takeaways
Three independent measurements converge: the robot's signals don't beat buy and hold (0/12, 2/12, ~50% success rate — a coin flip).
Once calibration proved the "Confidence" column measured nothing, it was renamed "Strength" — the dashboard says what it knows, not what's reassuring.
A bug showed -71.8% on a position that was actually up +13% (an unhandled CRWD split): the data was corrected and the error documented, not erased.
The most useful machine isn't the one that predicts — it's the one that stops you lying to yourself.
