← Changelog

Twenty-four strategies could switch themselves off and never say so

Patch14 September 2026· per-strategy

Audit / Issue Found

While auditing the ADX Trend Maker at its declared one-minute timeframe, its result looked wrong in a very specific way. It reported a median loss of 56.8% across seven markets, and six of those seven ended holding an amount within a quarter of one percent of each other. Six separate markets over six months do not agree to a quarter of a percent. That is not a market result; that is arithmetic.

The amount they all ended on was exactly one order size.

Before the patch

These strategies ask two questions before buying, and the two questions disagreed with each other.

The first question is "am I allowed to trade this cycle?" and it was satisfied by holding half an order's worth of cash. The second question is "may I place this specific order?" and it refused unless a whole order's worth was present. The order was always sized at the full amount and never scaled down to fit what was actually in the account.

So every balance between half an order and a full order passed the first question and failed the second. Nothing was ever placed, and nothing said why.

The part that turns an inefficiency into a trap is that the order size never shrinks. It starts at the configured trading limit and is only ever raised by a share of realised profit. An account that drifted down into that band therefore stayed in it. The strategy stopped trading for the remainder of the run, silently, with no message in the log and no change on the side panel.

Two strategies were measured doing exactly this, and their published results were the floor rather than their performance. The ADX Trend Maker ended within 0.25% of one order size on six of seven markets. The Donchian Breakout Maker ended there on seven of seven.

It also explains a second symptom that had been recorded separately. Both strategies fail the pack's cost-independence check, which exists to catch a strategy whose ability to act depends on the fee schedule. That is precisely what was happening: fees decided how quickly the account reached the floor, so removing them roughly doubled the number of orders placed without changing the destination.

After the patch

The order is now sized to the cash actually available, and the placement question uses the same half-order threshold the first question already used. The two now agree, and the threshold is taken from each strategy's own setting rather than chosen for it, so the repair implements what those two lines together already described.

Each of the twenty-four is being re-measured individually before and after, because unlike a logging or labelling repair this one changes what the strategy does.

Worth saying plainly On twenty-two of the twenty-four this had not yet happened in testing. Every strategy is measured at a capital calibrated to its own order size, and at that capital most never dip low enough to lock out. An operator running a smaller account than that calibration would. So "not yet observed" here means "will happen on a small enough account", not "is fine".

There is a second lesson in how long this went unfound. A repair tool for this exact problem had existed for months and reported that it had nothing to do. It was matching three exact spellings taken from the first two strategies it was written for, and twenty-two other files wrote the same contradiction with different variable names and the comparison the other way round. A tool that reports zero reads as all clear. It now matches the shape of the problem rather than the letters, and a separate read-only scan cross-checks it, because this is the third time in this pack that a repair tool has reported success over work it had not done.

Bottom line

If you have been running one of these on an account close to a single order size, it may have stopped trading some time ago without telling you. The repair makes it size down to what it has instead, and the audit reports now separate a strategy's real result from the point at which it simply ran out of money.