Every option price is a probability in disguise. The slope of call prices across strikes tells you the market's odds that a stock finishes above that strike (Breeden-Litzenberger). So the options chain is basically a prediction market quoting odds all day. Almost nobody trades it that way. I built an agent that does. Results first. Four live sessions on a dedicated $100k Alpaca paper account, every forecast logged before it resolved: - Finished at $106,824 (+6.8%) - SPY puts auto-exited at +193%, TSLA puts at +101% - 9 agent orders, 7 more blocked by its own risk checks, zero manual trades - Brier score (lower = better): 0.0159 vs 0.0566 for the market's implied odds — 72% better - On the seven closest coin-flip events, the market got 3 right. Pythia got all 7. How it works: each cycle it pulls near-dated chains for SPY, QQQ, NVDA, TSLA and COIN from Alpaca's options data API and turns live quotes into a probability curve (stale quotes rejected, put-call parity as a lie detector). Claude gets that curve plus recent bars, realized vol and Alpaca news, and forecasts starting from the market's own numbers. When it disagrees by enough, the agent trades the gap — always debit spreads, so max loss is fixed before the order goes out. The LLM never touches orders. Eight plain-code gates sit between plan and exchange: risk cap, trade budget, portfolio heat, daily circuit breaker, liquidity, concentration, kill switch, and a re-check that the edge survives the real fill. Execution: Alpaca's Trading API (atomic multi-leg orders, idempotent IDs, --flatten). Supervision: Alpaca's MCP server, so I can ask Claude about my positions in plain English. One honest flaw, caught by its own scoring: it forecasts worse when bearish, and put spreads are bearish leans — 3 of its 4 losing forecasts were the ones it traded. Published in CALIBRATION.md. v2 trades both sides and sizes by calibration. Repo: github.com/allenwangg/pythia. Thread: @Earthiness16 on X.
Category tags: