option-vertical-trading-system
Regime-adaptive vertical credit spreads on index ETFs (SPY, QQQ, IWM)
What It Does
Sells defined-risk vertical credit spreads on liquid index ETFs, picking direction from the 200-day SMA regime: bull-put spreads when price is above (uptrend) and bear-call spreads when price is below (downtrend). Max loss per trade is always ≤2% of the $20k book ($400). A 50%-credit profit-take exits early; a monthly-loss circuit breaker halts new opens after a bad month. One of three parallel paper books built as a head-to-head benchmark alongside option-iron and options-wheel.
Tech Stack
- Language: Python 3
- Options pricing: Black-Scholes proxy (20-day historical vol) — no live chain yet
- Data: shared
_trading_lib.marketdata(daily OHLCV, SMA200) - Key deps:
_trading_lib(verify_gate SPREAD_COUNCIL, notify, fleet engine)
Key Features
- Direction by regime: bull-put spread above 200-SMA; bear-call spread below 200-SMA
- Short leg ~0.30 delta, $2 wing width, 35 DTE (monthly cadence)
- 50% credit profit-take; monthly −8% circuit breaker halts new opens
- Every trade cleared by the shared 5-reviewer SPREAD_COUNCIL; max risk ≤2% of book
- Watchlist: SPY, QQQ, IWM (liquid index ETFs only)
How to Run
cd /home/barry/projects/option-vertical-trading-system
python3 vertical.py
Cron-guarded: runs weekdays at 13:20 PT. State in data/paper_state.json; audit log in logs/.
Status
Working (paper-trading) — live since 2026-07-05. Current paper stats: $20,000.05 equity, 3 open spreads (SPY/QQQ/IWM put spreads). Target monthly return: 5%. Note: option legs are model-priced (Black-Scholes proxy); swap _bs_put/_bs_call for a real options chain to go live.