# index-spreads-trading-system

> Defined-risk bull put credit spread paper system on SPY and QQQ — options trading on index ETFs with a $20k book.

## What It Does
Trades defined-risk bull put credit spreads on SPY and QQQ (not single stocks). Cash-secured puts are impractical on index ETFs at $20k (one SPY put requires ~$71k), so this system sells a ~0.18-delta put and buys a put $4 lower, capping max loss to roughly $320–400 per spread. Every candidate spread passes a shared 5-reviewer LLM council (signal, safety, event, profit, correlation/risk-budget) before booking. Options are model-priced via Black-Scholes on 20-day historical vol — no live options chain yet.

## Tech Stack
- Language: Python 3
- Framework: Shared fleet engine in `~/projects/_trading_lib/` (marketdata, verify_gate, notify)
- Key deps: Yahoo Finance (OHLCV), Black-Scholes pricer (in-code), Telegram alerts

## Key Features
- Bull put credit spreads: sell ~0.18Δ put, buy $4-wide hedge — max loss defined per contract
- Hard risk gate: max-loss per trade ≤ 2% of book ($400) — enforced before booking
- 5-reviewer LLM council (SPREAD_COUNCIL) approves/blocks each trade with named sign-offs
- Regime filter: skips if spot >5% below SMA200 (hostile trend)
- Expiring spreads settled at intrinsic value each day; full audit trail in `logs/`

## How to Run
```bash
python3 spreads.py   # advance one tick; logs to logs/, updates stats.md and stats.json
```

Cron: weekday 13:15 PT (post-close) via `run_guard.sh`.

## Status
Live in paper-trading loop from 2026-07-01. $20,000 paper capital. 2 open spreads (SPY 712/708, QQQ 664/660 expiring 2026-08-05). Total P&L: -$22.09 (unrealised MTM). No settled trades yet. NOTE: model-priced (Black-Scholes proxy) — not real option chain prices.
