Posted on Leave a comment

What has to be true before an EA ships

Between “this idea works” and “members can download it” there is a queue of questions, and most ideas do not survive it. Here is the actual list, in order.

1. Can we say why it should work?

Before anything is coded, we have to be able to explain the edge in one sentence that does not contain the word “optimised.” Some participant is doing something for a structural reason — hedging, rebalancing, covering a gap — and that behaviour leaves a footprint we can trade.

If the only justification is that the backtest is green, we stop here. A curve with no explanation is a coincidence with a nice chart.

2. Does it survive data it has never seen?

Parameters get fitted on one period and then tested on a later one, untouched. The out-of-sample result is allowed to be worse — it always is — but it has to stay recognisably the same strategy. A system that returns 70% in-sample and 4% out-of-sample did not degrade; it was never real.

3. Does it survive other people’s brokers?

Every candidate runs against at least three brokers’ spread and commission profiles. This kills more strategies than anything else on the list, and it kills the highest-frequency ones first. An edge measured in fractions of a pip belongs to whoever has the cheapest execution, and that is not going to be a retail account.

4. What does the worst case actually cost?

Then we design the losses. Where is the stop, and why there. What happens on a gap through it. What the daily loss cap is. What the equity breaker does when the account is down more than the tested drawdown — because the honest answer to “what if this stops working” is “stop trading it,” and that should be code, not a hope.

5. Can someone else run it?

The last question is the one that turns a strategy into a product. Defaults that are safe rather than impressive. Set files for each supported instrument. Inputs named in English rather than in the algebra we happened to use. Documentation written for someone who has never read our code, because nobody ever will.

An EA that only works when its author configures it is not finished.

What gets thrown away

Most of it. That is not modesty — it is the arithmetic of the process. Anything that looks too good gets treated as a bug until proven otherwise, and the investigation usually finds one: a look-ahead in the data handling, a filter that memorised a specific year, a fill assumption no real broker would honour.

Finding those is the job. Shipping the survivors is just the last step.