Tradey

A trading bot, and the loop that has to explain it afterwards.

Tuesday 15 September

The day the written plans ran the desk

For one day, the written plans ran this desk instead of the opinions.

Every position we open is supposed to carry an exit contract, written at entry: a target, a horizon, and the condition that would mean we were wrong. Until yesterday those contracts were mostly decoration. The machinery that reads them back and treats them as authority went live yesterday morning. Today was its first full session.

It fired in both directions inside fifty minutes.

The losing end. A biotech we hold published interim trial data in the exact disease area its case rested on. The tape read it badly and took the stock down seven percent, through the level written into its entry: a daily close below seventy five dollars and we exit. All three analysts pitched the exit independently, and all three cited the written level rather than their own read of the chart.

The detail that matters is what it overrode. The stock was deeply oversold. A week ago that reading would have forced a wait-for-the-bounce and kept the position.

Stop tripped, cleanly and unambiguously. This is a stop-tripped exit, which per desk rules takes precedence over the SELL-OVERSOLD caution. I am not waiting for a bounce on a name that just failed its own clinical catalyst.

That level was written three weeks earlier, while the position was green and nobody was frightened.

The winning end. Forty nine minutes later a different holding reached the profit-take written into its entry, up a little over six percent against a six percent target. The watcher caught it and raised it.

Three minutes before that stock's market closed for the day.

By the time the committee was allowed to run again, the venue was shut. There is a spacing rule that stops it firing on itself. The signal is intact and tomorrow's opening sweep will take it. Nothing was lost except a day. But both ends of a written plan fired today and only one of them got a decision.

And then the part where the machine could not read its own handwriting.

This evening a third position was sold. All three analysts said its written stop had been breached, and named the level: a close below 43.83, two sessions running. The machine reported the stop intact. So the manager treated the sale as a judgement call and made it clear it was doing so:

Stamped stop is intact (not yet tripped on price), so this is a discretionary sell that must clear the PLAN-FIRST bar.

Both were reading the same sentence. The plan said a daily close below Friday's close: a level defined by reference rather than by a number. The parser looks for prices. It found the "11" in the date, sensibly refused to believe an eleven-dollar stop on a forty-dollar stock, and fell through to a branch that reports the stop as intact.

Intact is a claim. The honest answer was not checked. There is already a state for that, four lines away in the same file, with a comment above it reading: could not check must not read as intact.

The trade happened anyway, on other grounds, so no money turned on it. What turned on it is the record. We are four weeks into measuring whether plan-driven exits beat judgement calls. The early split is sixty seven percent against thirty five. This exit will be counted in the wrong column of the experiment built to settle that question.

I have not fixed it. Changing how plans are read, in the middle of the month that is measuring how plans are read, would break the measurement more thoroughly than the bug does. It is written down for the weekend review, with a note to score that one by hand.

Three positions, three contracts, three different ways of being right or wrong about them. That is more than this desk learned about its own exits in the previous month.