Daily Iron Condor — SPY

SPY · Net-Credit · Non-Directional · Mon–Thu Daily

Neutral Daily · Mon–Thu 40 Contracts / Leg 4-Leg Structure
Total Realized P&L
Loading…
Win Rate
Condor Cycles
Closed round-trips
Profit Factor
Gross win / gross loss
Avg Hold Time
Minutes per leg
Max Drawdown
Cumulative low

📋 Strategy Overview

A neutral, premium-selling strategy with two short OTM spreads — a bull put spread and a bear call spread — bracketing the ATM price. Four option legs are opened each weekday morning (Mon–Thu) and closed at 14:20 ET the same day. The iron condor profits when SPY stays between the two short strikes at exit.

The strategy is delta-neutral at entry. Primary failure modes are: (1) entering in a high-IV environment (straddle >1.50%), or (2) SPY carrying prior-day outsized momentum through the short strikes.

Long putBUY TO OPENATM − 15 (e.g. $545 at SPY=$560)PAY
Short putSELL TO OPENATM − 10 (e.g. $550)COLLECT
Short callSELL TO OPENATM + 10 (e.g. $570)COLLECT
Long callBUY TO OPENATM + 15 (e.g. $575)PAY
Net Credit = (shortPut + shortCall) − (longPut + longCall)

Strike Construction

atm = round(spy_price)
lp_str = atm - SHORT_SPREAD - WING_WIDTH # e.g. 545 at SPY=560
sp_str = atm - SHORT_SPREAD # e.g. 550
sc_str = atm + SHORT_SPREAD # e.g. 570
lc_str = atm + SHORT_SPREAD + WING_WIDTH # e.g. 575
ℹ️ Friday is skipped — no new positions are opened on Fridays. The script holds positions intraday only (open 9:40 ET, close 14:20 ET the same day).

⚙️ Parameters

Ticker
SPY
Qty / Leg
40
Short Spread
$10
Wing Width
$5
Profit Target
+90%
Stop Loss
−80%

Max profit per trade: net_credit × 100 × 40
Max loss per trade: (5 − net_credit) × 100 × 40

🕐 Schedule

EventWhenDays
Entry open9:40 ETMon–Thu
Entry cutoff12:00 ETMon–Thu
Exit14:20 ETMon–Thu
Auto-exit (profit)Any timeMon–Thu
Auto-exit (stop)Any timeMon–Thu
HeartbeatEvery 5 minAlways

Options expiry is always the next Friday (nearest weekly expiry).

🚦 Auto-Exit Rules

Profit Target

+90% of max profit

Stop Loss

−80% of max profit

Monitor Interval

Every 5 min

🔍 Trade Filters

All filters are evaluated from live option prices at entry time. SPY's filters are calibrated for its lower volatility regime vs QQQ — notably a wider MAX_STRADDLE_PCT (1.50%) and lower MAX_PREV_DAY_MOVE threshold.

#FilterValueRationale
1MIN_CREDIT_RATIO0.05Net credit must be ≥ 5% of wing width ($0.25 on a $5 wing) — condor short strikes are OTM so premium is lower than the butterfly
2MIN_CREDIT_ABS$0.25Absolute minimum credit per share — below this level the risk/reward is unfavourable
3MIN_STRADDLE_PCT0.10%Skip if the ATM straddle is < 0.10% of SPY — IV so low that OTM option strikes have near-zero premium
4MAX_STRADDLE_PCT1.50%Skip if the ATM straddle is > 1.50% of SPY — market pricing in a move likely to breach the ±$10 short strikes (wider than QQQ's 1.00%)
5MAX_GAP_PCT1.0%Skip if the overnight gap exceeds 1% — gap opens place SPY off-centre relative to the ±$10 profit zone
6MAX_PREV_DAY_MOVE0.45× wing ($2.25)Skip if the prior session's intraday range exceeded 45% of the wing width — SPY threshold is lower than QQQ's because SPY is less volatile in dollar terms
7LOW_IV_HIGH_RVOLstraddle < 0.15% and avg5 > $3.00Skip IV-calm days where the 5-day average realised move has been >$3.00 — avoids selling extremely cheap premium into a realised-vol regime that can carry

SPY vs QQQ Filter Comparison

FilterSPYQQQReason for Difference
MAX_STRADDLE_PCT1.50%1.00%QQQ has higher structural volatility; stricter cap on QQQ
MAX_PREV_DAY_MOVE0.45× wing1.50× wingQQQ's larger dollar moves require a higher absolute threshold to avoid over-filtering
LOW_IV_HIGH_RVOL avg5>$3.00>$4.50SPY's smaller dollar range; $3.00 is a significant day for SPY
LOW_IV_HIGH_RVOL straddle<0.15%<0.80%SPY must be extremely calm to trigger; QQQ has a wider IV-calm band

🔄 Iron Condor vs Iron Butterfly

AspectIron Condor (SPY)Iron Butterfly (SPY)
Short strikesATM ± $10Both at ATM
Profit zoneWider (ATM ± $10 ± credit)Very narrow (ATM ± credit)
Max creditLower (OTM premium)Higher (ATM straddle premium)
Win probabilityHigherLower
MIN_CREDIT_RATIO0.050.20
MAX_STRADDLE_PCT1.50%1.20%
ℹ️ On very-low-IV days the iron butterfly (daily_iron_butterfly_spy.py) may collect more premium for a concentrated pinning opportunity. On moderate-IV days this condor provides a wider safety margin.

⚠️ Risk Profile

Max Profit

net_credit × 100 × 40

Max Loss

(5 − credit) × 100 × 40

Upper Breakeven

ATM + $10 + credit

Lower Breakeven

ATM − $10 − credit

Short Spread

$10

Wing Width

$5

Primary Failure Modes

⚠️ High-IV environment: Entering when the ATM straddle is >1.50% of SPY indicates the market expects a move >$8 — the ±$10 short strikes offer little protection.
⚠️ Prior-day outsized momentum: If SPY moved >45% of the wing width in the prior session, momentum-driven continuation can carry SPY through a short strike before the 14:20 ET exit.
ℹ️ Max loss bounded by the wing: (5 − credit) × $4,000 per condor cycle. Intraday-only — no overnight exposure.
LIVE PERFORMANCE — Loading…
Realized P&L
Condor Cycles
Win Rate
Profit Factor
Unrealized P&L

💰 Live P&L by SPY Option Symbol

Realized P&L breakdown per OCC symbol — all closed round-trip SPY option legs since deployment.

Realized P&L by Symbol

OCC SymbolP&LTradesAssessment
Load roundtrips_report_nikkip2_spy.csv to populate

Performance Breakdown

Winners (—)—%
Losers (—)—%

Profit Factor

Avg Hold

— min

📂 Open SPY Option Positions

Active SPY option legs currently held in the Np2 account with unrealized P&L.

OCC SymbolTypeQtyEntry $Capital at RiskUnrealized P&L
Load roundtrips_report_nikkip2_spy.csv to populate

⚠️ Risk Assessment

Max Drawdown

Max Capital at Risk

Max Potential Loss

Max Position Notional

Min Position Notional

Avg Position Notional

Gross Win

Gross Loss

Avg Win

Avg Loss

Account Snapshot (SPY options scope — Np2)

MetricValue
Load roundtrips_report_nikkip2_spy.csv to populate

📋 Recent SPY Round-Trip Trades

Last 20 completed round-trip option legs from roundtrips_report_nikkip2_spy.csv.

OCC SymbolTypeClose Type Open DateClose Date QtyEntry $Exit $ Capital at RiskMax Loss P&LHold
Load roundtrips_report_nikkip2_spy.csv to populate

📁 Project Structure

Core Scripts

FilePurpose
daily_iron_condor_spy.pyMain trading script — opens/closes SPY condors daily Mon–Thu
backtests/daily_iron_condor_spy_backtest.pyHistorical backtest
.envNP2API keys (not committed to git)

Generated Outputs

FilePurpose
condor_spy_trades_log.csvAppended strategy trade log
roundtrips_report_nikkip2_spy.csvRound-trip P&L report (from download script)

Running the Script

# Run under screen on the server
screen -S daily-iron-condor-spy -d -m bash -c \
  'source .venv/bin/activate && python3 daily_iron_condor_spy.py >> logs/daily_iron_condor_spy.log 2>&1'

# Check status
screen -ls | grep daily-iron-condor-spy
tail -f logs/daily_iron_condor_spy.log

📋 Summary

Np2 · SPY Daily Iron Condor

Realized P&L · SPY options only · Paper Trading · Updated on demand

Account
Np2
Trades Closed
Win Rate
Profit Factor
Unrealized
Deployment
Paper / Alpaca