option-iron-trading-system
Automated paper-trading of iron condors on liquid index ETFs (SPY, QQQ)
What It Does
Sells defined-risk iron condors on index ETFs: simultaneously short an OTM put spread and an OTM call spread on the same expiry, banking both premiums and profiting when price stays range-bound. A regime filter stands aside in trends and vol spikes, a 50%-credit profit-take exits early, and a monthly-loss circuit breaker halts new opens after a bad month. One of three parallel $20k paper books (alongside option-vertical and options-wheel) built as a head-to-head benchmark.
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
- Simultaneous OTM put spread + OTM call spread (iron condor), 40 DTE, $2 wings
- Strike selection: ~0.28 delta short put / ~0.22 delta short call (index skew)
- Regime filter: only open within ±9% of 200-SMA and when 20d vol ≤1.5× its 120d level
- 50% credit profit-take; monthly −8% circuit breaker halts new opens
- Every trade cleared by the shared 5-reviewer SPREAD_COUNCIL before booking; max risk ≤2% of book ($400/trade)
How to Run
cd /home/barry/projects/option-iron-trading-system
python3 iron.py
Cron-guarded: runs weekdays at 13:25 PT. State in data/paper_state.json; audit log in logs/.
Status
Working (paper-trading) — live since 2026-07-05 as part of the wheel/vertical/iron benchmark. Current paper stats: $20,000.05 equity, 1 open condor (SPY). Target monthly return: 5%. Note: option legs are model-priced (Black-Scholes proxy); swap _bs_* functions for a real options chain to go live.