Daily Iron Butterfly — QQQ

QQQ · 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 QQQ 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 QQQ pins exactly at the strike. The long wings at ±$10 cap the maximum loss.

Long putBUY TO OPENATM − 10 (e.g. $490 at QQQ=$500)PAY
Short putSELL TO OPENATM (e.g. $500)COLLECT← both short strikes at ATM
Short callSELL TO OPENATM (e.g. $500)COLLECT
Long callBUY TO OPENATM + 10 (e.g. $510)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
QQQ
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.

#FilterValueRationale
1MIN_CREDIT_RATIO0.20Net credit must be ≥ 20% of wing width ($2.00 on a $10 wing) — the butterfly requires substantial premium since the profit zone is narrow
2MIN_CREDIT_ABS$1.00Absolute minimum credit per share
3MIN_STRADDLE_PCT0.75%Skip if the ATM straddle is < 0.75% of QQQ — IV too low, premium won't compensate for the risk
4MAX_STRADDLE_PCT1.20%Skip if the ATM straddle is > 1.20% of QQQ — market pricing in a move that will likely breach the $10 wing
5MAX_GAP_PCT1.0%Skip if the overnight gap exceeds 1% — gap opens place QQQ off-centre before entry
6MAX_PREV_DAY_MOVE0.45× wing ($4.50)Skip if the prior session's intraday range exceeded 45% of the wing — momentum tends to persist
7LOW_IV_HIGH_RVOLstraddle < 1.20% and avg5 > $3.50Skip days where IV appears calm but realized vol over the past 5 sessions has averaged >$3.50/day intraday — avoids selling low premium into a high-vol regime

Filter Calibration Note

The LOW_IV_HIGH_RVOL filter is particularly important for QQQ butterflies because QQQ's dollar volatility can compress on a single quiet session even after a week of large moves. Example: Feb 12, 2026 — straddle compressed to ~1.075% but the prior 5-day average move was ~$4.37, a dangerous combination for the short straddle.

🔄 Iron Butterfly vs Iron Condor

AspectIron Butterfly (QQQ)Iron Condor (QQQ)
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
Best used whenLow IV, low momentum daysModerate IV, range-bound days
ℹ️ Consider running the iron condor (daily_iron_condor_qqq.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

⚠️ Wing breach risk: QQQ moves more in dollar terms per day than SPY. The $10 wing can be breached in high-vol regimes (tariff events, macro surprises, FOMC) by intraday moves of $10+ — as seen in backtest losses on 3-31 ($11.53 move) and 4-2 ($12.78 move).
ℹ️ The butterfly is most effective on low-IV, low-momentum days where QQQ is expected to grind in a narrow range. Maximum loss is bounded by the wing width: (10 − credit) × $4,000 per butterfly cycle.
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 QQQ option legs since deployment.

Realized P&L by Symbol

OCC SymbolP&LLegsAssessment
Load butterfly_qqq_trades_log.csv to populate

Performance Breakdown

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

Profit Factor

Avg Hold

— min

📂 Open QQQ Option Positions

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

OCC SymbolQtyAvg EntryCurrent PriceMarket ValueUnrealized P&L
Load butterfly_qqq_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 (QQQ options scope)

MetricValue
Load butterfly_qqq_trades_log.csv to populate

📋 Recent QQQ Option Round-Trip Trades

Last 20 completed trades from butterfly_qqq_trades_log.csv.

ExpiryATMQQQ PriceNet CreditMax ProfitMax LossEVClose P&LClose ReasonTimestamp
Load butterfly_qqq_trades_log.csv to populate

📁 Project Structure

Core Scripts

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

Generated Outputs

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

Running the Script

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

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

📋 Summary

AIV011P · QQQ Daily Iron Butterfly

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

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