CONVEX is an autonomous SPY options agent on Alpaca's MCP server. It trades 0DTE. That is zero days to expiration: contracts that expire the same day they are traded, so a position opens and settles in one session. We built the obvious 0DTE trade, measured it honestly, and it failed. That result is the submission. On the 1 September SPY chain, 482 of 1,101 priced candidates, 43.8%, showed a profit before costs that the bid-ask spread then ate entirely. They never reached a risk check; the ranking dropped them first. That is the number this project exists to show. Our own model is published as a failure. Five structure families were tested over 509 rebuilt sessions against a simple benchmark. One beat it, the debit vertical, at 0.0512 against the 0.0470 needed, and it still lost $12.87 a session. On 2 September we re-tested all five on 54 sessions never used to choose anything. Four lost money after costs: put BWB −$349.55, call BWB −$330.95, debit vertical −$671.47, straddle −$559.54. The fifth made money on six trades, too few to mean anything. All five are switched off in config. The only thing that can still open a position is a one-lot vertical, entered on a fixed opening-gap rule, and only if it passes every check. Live result: three fills confirmed by broker records at −$1,026.62, the account itself reading −$1,029.05, or −1.03% of $100,000. Reported plainly, including one that should not have been placed. Six checks run each cycle and ten more on every surviving candidate. Standing down is a successful outcome, and every refusal is written to an append-only log with its arithmetic. The language model explains decisions. It cannot produce a price, size, or order. Verify the headline number yourself, offline, no credentials: git clone https://github.com/Jennycruzy/convex && cd convex uv venv && uv pip install -e ".[dev]" .venv/bin/python -m scripts.replay --session 2026-09-01 Full write-up: https://github.com/Jennycruzy/convex/blob/main/docs/WRITEUP.md
Category tags: