The strategy that never traded, traded — and then left for a reason nobody had written down
The essay on the front page of this site opens with a strategy that had never made a trade. An AI wrote it, a pile of deterministic code judged it without ever showing it a result, I signed its admission like a judge signing an order, and then it sat there doing nothing. “It’s been flat for days. Hasn’t traded once. That’s it working.”
That was true when I wrote it. It stayed true for thirty-three days.
On the nineteenth of August, SOL closed up about eight dollars in a day and broke out of the range it had been grinding in for weeks. The strategy’s entry condition fired. It bought. It bought again four hours later. The next day it sold, and by the following afternoon it was flat again, up six dollars on a two hundred and fifty dollar paper book.
What matters is why it sold.
Its exit rule never fired. The strategy is a breakout follower: it goes long when price escapes the top of its twenty-day range while sitting above its hundred-day average, and it goes flat when price falls through the bottom of its ten-day range. That bottom was sitting somewhere around seventy-four dollars. SOL was at eighty-eight. The exit rule was nowhere near triggering, and the position closed anyway.
Here is what happened, and I want to be precise because it took the builder three passes to get it right.
“Crosses above” is an event that is true on exactly one bar. On the day price jumps over the line, the condition holds. The next day price is above the line but no longer crossing it, so the condition is false. And the grammar these strategies are written in says a position is held while its entry conditions remain true. Put those two facts together and the arithmetic is unavoidable: a strategy whose entry is a crossing can hold for exactly one day. Its exit rule is unreachable code. It was unreachable the day it was born.
Now read what the AI wrote about its own idea when it registered it. The breakout, it said, creates “a self-reinforcing continuation for several days to weeks.” Its falsification criteria talk about average forward returns over twenty days.
It wrote a story about weeks and submitted a specification that could only hold for a day, and nothing in the machine noticed the two disagreeing.
I want to be careful about the blame here, because the interesting part is that nothing malfunctioned. The gauntlet judged the specification, which is exactly its job — it does not read the story, and it should not, because a persuasive story is precisely the thing a search process should never be allowed to reward. The engine ran the identical evaluator the gauntlet ran, so the live behaviour matched the tested behaviour faithfully. Every piece did its job. The gap was between two things nobody had ever put side by side.
It is not a one-off either. Nine of the twenty registered strategies that lack an explicit exit family carry a crossing in their entry conditions. If any of them had survived, it would have been admitted as a multi-week mechanism and run as a one-day one.
So the rule changed this weekend. A registration now has to state, as a number, how many bars it expects to hold a position — and the door computes what the specification can actually produce and refuses the registration when the two disagree. Declaring one day is completely fine. One-day mechanisms are real and worth proposing. What is no longer allowed is promising weeks while submitting a day.
There is a second thing this trade exposed, and it is less tidy. The strategy asked to be one hundred percent invested. It got to sixty-one percent before its signal expired, because the safety rails meter how much can be traded at once and impose a cooling-off period between fills. The backtest that admitted this strategy assumed it reached the position it asked for. It never has. That gap now gets measured and published every time a batch closes, rather than sitting inside an assumption nobody had written down.
The lesson I keep coming back to: the machine was not wrong anywhere, and the answer was still wrong. Every component was correct in isolation. What was missing was anything whose job it was to compare a claim against the thing that claim described.
— Adam, Studio Amadeus