Daily Iron Butterfly — 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
Butterfly Cycles
Round-trip leg groups
Profit Factor
Gross win / gross loss
Avg Hold Time
Minutes per leg
Max Drawdown
Cumulative low

📋 Strategy Overview

A neutral, high-premium-selling strategy that profits when SPY closes very close to the ATM strike at exit. All four legs share the same ATM centre strike, making this a higher-reward but tighter-range trade than the iron condor. Four option legs are opened each weekday morning (Mon–Thu) and closed at 14:20 ET the same day.

The combined short put and call at ATM form an ATM straddle — maximum profit is collected if SPY pins exactly at the strike. The long wings at ±$10 cap the maximum loss. Best conditions are low-volatility days where SPY is expected to drift in a $2–4 range around the open price.

Long putBUY TO OPENATM − 10 (e.g. $550 at SPY=$560)PAY
Short putSELL TO OPENATM (e.g. $560)COLLECT← both short strikes at ATM
Short callSELL TO OPENATM (e.g. $560)COLLECT
Long callBUY TO OPENATM + 10 (e.g. $570)PAY
Net Credit = (shortPut + shortCall) − (longPut + longCall)
ℹ️ 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
Wing Width
$10
Profit Target
+90%
Stop Loss
−80%
Expiry
Next Fri

Max profit per trade: net_credit × 100 × 40
Max loss per trade: (10 − 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. The butterfly requires tighter filters than the condor because the profit zone is much narrower — any move more than the credit away from ATM erodes the position significantly.

#FilterValueRationale
1MIN_CREDIT_RATIO0.20Net credit must be ≥ 20% of wing width ($2.00 on a $10 wing) — the butterfly requires substantial premium collection since the profit zone is narrow
2MIN_CREDIT_ABS$1.00Absolute minimum credit per share — ensures adequate compensation for the short straddle risk
3MIN_STRADDLE_PCT0.75%Skip if the ATM straddle is < 0.75% of SPY — IV too low, premium won't cover the expected move
4MAX_STRADDLE_PCT1.20%Skip if the ATM straddle is > 1.20% of SPY — market pricing in a move that will likely break the $10 wing
5MAX_GAP_PCT1.0%Skip if the overnight gap exceeds 1% — gap opens place SPY away from the ATM strike before entry, reducing the probability of pinning
6MAX_PREV_DAY_MOVE0.45× wing ($4.50)Skip if the prior session's intraday range exceeded 45% of the wing width — directional momentum from the prior session tends to carry over

Key Calibration Notes

The MIN_CREDIT_RATIO = 0.20 (vs 0.05 for the condor) reflects the higher premium requirement needed to make the narrow-zone payoff worthwhile. The butterfly has a much narrower profit zone than the condor — a $3 move away from ATM by 14:20 can turn a winner into a loser.

🔄 Iron Butterfly vs Iron Condor

AspectIron Butterfly (SPY)Iron Condor (SPY)
Short strikesBoth at ATMATM ± $10
Profit zoneVery narrow (ATM ± credit)Wider (ATM ± $10 ± credit)
Max credit collectedHigher (ATM straddle premium)Lower (OTM strangle premium)
Win probabilityLowerHigher
Risk/reward ratioMore favourableLower max credit per trade
MIN_CREDIT_RATIO0.200.05
Best used whenLow IV, low momentum, expected drift <$3Moderate IV, range-bound days
ℹ️ Consider running the iron condor (daily_iron_condor_spy.py) on days where this script's filters reject the trade — the condor's wider body provides more room for a moderate move.

⚠️ Risk Profile

Max Profit

net_credit × 100 × 40

Max Loss

(10 − credit) × 100 × 40

Breakeven (up)

ATM + credit

Breakeven (down)

ATM − credit

Wing Width

$10

Intraday Only

No overnight risk

Risk Notes

⚠️ The butterfly has a much narrower profit zone than the condor. A $3 move away from ATM by 14:20 can turn a winner into a loser. The strategy is delta-neutral at entry but develops directional exposure as SPY moves toward a short strike.
ℹ️ Maximum loss is bounded by the wing width: (10 − credit) × $4,000 per butterfly cycle. Intraday-only exposure — no overnight risk.
LIVE PERFORMANCE — Loading…
Realized P&L
Butterfly Cycles
Win Rate
Profit Factor
Unrealized P&L

💰 Live P&L by 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&LLegsAssessment
Load butterfly_spy_trades_log.csv to populate

Performance Breakdown

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

Profit Factor

Avg Hold

— min

📂 Open SPY Option Positions

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

OCC SymbolQtyAvg EntryCurrent PriceMarket ValueUnrealized P&L
Load butterfly_spy_trades_log.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)

MetricValue
Load butterfly_spy_trades_log.csv to populate

📋 Recent SPY Option Round-Trip Trades

Last 20 completed trades from butterfly_spy_trades_log.csv.

ExpiryATMSPY PriceNet CreditMax ProfitMax LossEVClose P&LClose ReasonTimestamp
Load butterfly_spy_trades_log.csv to populate

📁 Project Structure

Core Scripts

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

Generated Outputs

FilePurpose
butterfly_spy_trades_log.csvAppended trade log (auto-created by script)

Running the Script

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

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

📋 Summary

AIV011P · SPY Daily Iron Butterfly

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

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