Alpaca AI Trading Agents Hackathon

Contour — the measurement picks the structure

vrp_ratio < 1.30NO_TRADE implied is not rich enough to sell skew_z ≥ +0.8PUT_CREDIT_SPREAD puts rich — sell puts, not cheap calls skew_z ≤ −0.8CALL_CREDIT_SPREAD calls rich — sell calls, not cheap puts otherwiseIRON_CONDOR both sides fair — sell both
Team FluffyMargins · SPY · QQQ · IWM · one locked expiry paper account PA35XVXLIO0E

AI logic — the leash

Every wired model output can only make the agent trade less. Not a promise — a property of the import graph.

The model may

  • Name event windows to stand down in
  • Veto a proposed structure
  • Stand the whole book down

The model may never

  • Choose a strike
  • Size or price a position
  • Reverse or widen anything
execute.py never imports mind.py GLM-5 on Amazon Bedrock · picked by bake-off

Alpaca infrastructure

Twelve risk gates, plus seven for the sleeve · every reason journaled, pass or fail 298 tests

Market analysis

The volatility premium is real, and it is not uniform. That dispersion is the entire opportunity.

measured by the live agent floor: vrp_ratio 1.30

Competitive analysis

SubmissionIts own description
Horizon BlacklineLLM proposes, deterministic risk gates authorize, hash-chained and auditable
VRP EngineHarvests the variance risk premium with defined-risk spreads and risk gates
AEGIS-QBounded AI selects a pre-validated bullish or bearish spread — or abstains
EdgeStackJournals every trade and every refusal
ContourChooses which of four structures to sell, from measured 25-delta skew. And is runnable without our credentials.
“LLM proposes, gates dispose, everything journaled” is table stakes now python -m contour --replay

Performance, attributed

The criterion asks for the P&L of the submitted agent. This account holds two traders, and the broker records which is which. 2026-09-04 07:40 UTC

Placed byP&Lof start NAV
The agent — every id it chose+$147.55+0.15%
The operator — three discretionary tail trades−$642.00−0.64%
Account total−$494.45−0.49%

Not our bookkeeping — a field the broker stamps. Entries are prefixed contour- by loop.py; exits are named after the entry they close. Nothing else in the account is. A symbol touched by both is charged to the operator — the published number is the pessimistic one.

The systematic book is flat in a week QQQ fell 1.27% in a session python ops/attribution.py --offline

Revenue model

The audit layer is the product

The gate engine and the hash-chained decision record, licensed to brokers and RIAs who have to defend an automated decision after the fact. That is the durable asset here — not the alpha, which decays.

Own capital

P&L is the revenue and no registration question arises. The honest ceiling on defined-risk premium selling is the credit, so this scales with capital, not with claims — and where we stepped outside that ceiling, the write-up names the trade and its negative expectancy.

Not signal subscriptions. Selling trade recommendations is investment advice and needs registration — saying so out loud is a credibility position, not a limitation.

What we do not claim matters as much as what we do median week: under +1%

Roadmap

Shipped

  • 3 ETFs, one locked expiry, 15-minute cycle
  • A $30k long-QQQ sleeve beside the options book — variance, not edge — funded out of the same −4% floor, not beside it
  • A $4.4k long-call tail, added and closed 2026-09-01 — the one negative-EV trade here, labelled as such. Sold for $3,113, realising −$1,320: the entire drawdown. A 387-cycle backtest found no edge worth paying ~15% over fair value to lever
  • A $1.1k TQQQ call tail, placed on instruction after the evidence against it was recorded — a gap-down bounce tests as noise (t = +0.42). It breaks no gate, but used the last room in front of the floor: the entry ramp is closed to zero for the rest of the contest
  • Twelve gates plus seven, 298 tests, chain verified in CI
  • Record / replay: a fixture reruns the pipeline with no credentials
  • Sizing from three published trend systems, after an audit caught the model anchoring at 0.5 for sixteen straight cycles

Next

  • Trend-aware structure selection. The map breaks ties toward the condor — which sells calls into a confirmed uptrend. Three trend systems say that is the wrong default; skew alone should not decide
  • Expiry laddering and rolls
  • Skew priors learned per underlying instead of hard-coded
  • More backtest history. The harness is built and has run — 387 cycles against real historical option prices, importing the agent's own selection and gate code. Alpaca's history starts 2024-01-18, so 2.5 years is the entire available sample
  • Portfolio vega and gamma caps, not per-position max loss alone
  • Paid feed to close the indicative-vs-NBBO gap
github.com/aryangorde6/contour · aryangorde6.github.io/contour PA35XVXLIO0E
← → or click