Projects

Quantitative engineering · Private

v8-observer

“My bot trades real money. I built a second system whose only job is not to trust it.”

A record from July 2026: two weeks of the observer running, animated from the very database it wrote.

The numbers in the video are a snapshot from 2026-07-26: 1,171 of 1,406 successful collections. The gaps are data-channel failures the observer detected — not failures of the observer.

What it is

An observer that cannot act

Every 15 minutes it records what the trading bot did and the context it did it in: market regime, price, spread, session, volume. And nothing else — reading is the only thing it's allowed to do. That restriction is the whole point: a system that could correct the bot would be both judge and defendant, and its record would stop counting as evidence. It also refuses to record when the active account isn't the one it's meant to watch — that happened twice, and both times it aborted rather than contaminate the history.

The problem

The data channel rotted every four hours

The bridge connecting the observer to the trading platform degrades on its own, recurrently, roughly every four hours: it stays up, but stops answering. An observer that doesn't notice this simply stops recording while still looking healthy. On July 13 the hole lasted 9 hours and 48 minutes — nearly half a day of trading with no record at all.

The outcome

77 recoveries, none of them mine

The observer started detecting its own blindness: two consecutive cycles with no answer and it would restart the platform by itself, wait an hour before trying again, and log the intervention to an auditable table. Over the thirteen days in the video that came to 77 recoveries, all successful, four to seven a day, without me touching anything. The worst hole fell from 9h48 to 3h30, and then to 1h30 once I tightened the trigger from three cycles to two. The normal cadence never changed — the median between collections stayed at 15 minutes before and after. Only the tail improved, which was exactly the problem.

The ending

271 out of 271 — and switched off anyway

In August, collection gained a better source: the platform's official command line (cTrader CLI), which fetches the data without needing the platform open. The automatic restart stopped being necessary and started getting in the way — it killed optimizations I left running on the same platform. On August 30 I switched it off. It retired with 271 restarts, every one of them successful. In its place is an alarm: if both data sources die at the same time, the observer warns instead of acting. Nothing was deleted — turning it back on is one parameter. But a piece that works and gets in the way goes, just like one that doesn't work.

If you got this far, send a message.

Even if just out of curiosity. I reply on LinkedIn or by email.