Skip to content

Release note

The Strategy Agent runs the exact rule you asked for, and shows the cost first

4 min read
agentaccuracytrustfix

Before 27 September, a request to the Strategy Agent could reach the backtest engine as something close to what you asked for rather than the rule itself, and the result card could describe a rule the engine never ran. We went through every place where the request, the engine and the card could drift apart. The engine now runs exactly what you asked for, or the agent tells you plainly what it can't do before anything is charged. Results for the affected prompts change, and old cached results are not reused, so running a prompt again gives you the corrected result.

Your RSI levels are the levels used. Every RSI strategy used to sell when RSI recovered above 50, whatever exit you wrote, and the period was always 14. Your period, entry level and exit level now reach the engine, and the card marks any level it had to fill in with a default. On five years of SPY prices to 24 September (price only, as backtests were then), "buy when RSI(14) drops below 30 and sell when it rises above 70" made 12 closed trades held for 45 days on average. The old version, which sold at 50, made 16 trades held for 21 days.

Fixed weights and quarterly rebalancing. "60/40 portfolio of SPY and TLT rebalanced quarterly" used to run as a low-volatility ranking that ended up holding one asset, with a CAGR of 0.5% and a card titled "Low Volatility Strategy". It now runs as a fixed-weight portfolio: 60% and 40% on the first day, traded back to those weights on the first trading day of each quarter, drifting with prices in between. Over the 10 years to 25 September, before costs and dividends, it returned 6.45% a year, matching an independent calculation on the same stored prices to the cent. "Quarterly" used to run monthly and now runs quarterly, and a rebalancing frequency we don't support is refused instead of quietly run monthly.

Sizing and stops that do what they say. Inverse-volatility sizing was really equal weight under a "risk parity" label; it now weights each holding by one over its 60-day volatility. A "10% stop" on a single stock used to be applied as a portfolio drawdown cap; it is now a fixed stop 10% below your entry price, and a drawdown cap is described as a cap, not a stop. After any stop, a timing strategy waits for a fresh entry signal instead of buying straight back in on the same day.

Indicators run as named. A "52-week high" breakout used a 52-day channel; it now uses 252 trading days. EMA and MACD crossovers ran as a 50/200-day simple moving average crossover, and Bollinger band rules ran as RSI; all three now run as themselves. For Keltner channels and VWAP, which we can't compute, the agent asks you to choose a supported alternative instead of quietly swapping one in.

The card describes what ran. Strategy cards claimed things the engine never did, such as a "P/E below the sector median" screen, a volume filter on breakouts, or "top quintile" selection. Every card now describes the engine's actual rule. If a strategy's rule never fired during the test, the result says so first and the tokens for that run are refunded.

Honest answers before anything runs. Some requests were changed before they reached the engine at all. Hourly and intraday strategies ran quietly on daily bars, requests for more than 10 years were cut to 10, and "the 10 cheapest S&P 500 stocks by P/E" ran a quality ranking on SPY alone. The agent now stops and explains each case, free, with one-click versions that do run: the daily version of the strategy, a 10-year or 5-year window, or a ranking that doesn't depend on valuation data, which we don't hold as it stood on each past date. Before a run it also tells you when a symbol's prices start later than your window, and when it chose a London listing over a US one and why.

The cost before you run. The send button now shows the cost of the exact prompt you've typed before anything runs, and says "free" for questions and refusals. If you press Enter before the price is back, it checks the cost first instead of running straight away. If your balance is too low, it tells you how many tokens you're short before you send, not after.