Release note
Goal search: set a target and see every candidate tested, judged on years it wasn't chosen on
You can now ask for a strategy by its target, for example "Build me a strategy that beats SPY with a Sharpe above 1.2 and less than half the drawdown", and the agent searches for one honestly. It tests a fixed list of candidates, chooses on one part of history, judges the choice on years it never saw, counts every candidate, and says plainly when nothing met your target.
A fixed, reproducible list. Candidates come from the rule families the engine supports: trend filters, moving-average and EMA crossovers, MACD, RSI, Bollinger bands, breakouts, absolute momentum, momentum rotation, fixed weights, risk parity, low-volatility rotation, and a trend filter combined with an RSI dip. Textbook settings come first. The default is 24 candidates, and you can ask for anything from 4 to 60. The same prompt on the same data gives the same candidates in the same order. No AI model picks or invents them.
Chosen in-sample, judged out of sample. Every candidate runs on the first 70% of the window and, separately, on the last 30%. The winner is chosen on the first part only, and the verdict judges it on the held-out years. If a different candidate happened to meet your targets in the held-out years, we don't switch to it, because choosing on those years is exactly what the split is there to prevent. If nothing met all your targets, the answer says so and names the closest candidate and how far it missed.
Every candidate counted. The result shows a sortable table of every candidate's in-sample and held-out numbers. All of them go into your test ledger, and the winner's "Could it be luck?" line allows for every candidate tested. Below the goal card you get the winner's full result card, with Prove it, saving and paper trading, which reminds you to judge it on the held-out row.
Cost up front, refunds automatic. The send button shows the total for the search before anything runs, and a large search asks you to confirm. Candidates the engine refuses are refunded and not counted, and the unused part of the quote for the winner's full result is refunded once the winner is known.
Readings stated, vague targets asked about. Before it runs, the agent lists how it read your prompt, for example that "half the drawdown" means half of SPY's drawdown over the same years. With no period named, it searches the last 10 years (a search needs at least 4). With no symbols named, timing rules trade SPY and portfolio rules hold SPY, TLT (long-dated US Treasuries) and GLD (gold); a goal against the FTSE 100 runs in pounds. A target with no number, such as "a high Sharpe", gets a free question with one-click options rather than a guess.