🦋 QQQ Daily Iron Butterfly

Daily Iron Butterfly on QQQ — Alpaca Paper Account · NikkiP2 · Mon–Thu Intraday


● Paper Trading  |  ⚪ Neutral / Net-Credit  |  📅 Intraday Only

📡 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 puts and calls at ATM form an ATM straddle — maximum profit is collected if QQQ pins exactly at the strike at exit. The butterfly is most effective on low-IV, low-momentum days where QQQ is expected to grind in a narrow range. On days where the butterfly’s filters reject a trade, consider running the iron condor (daily_iron_condor_qqq.py) instead — the condor’s wider body provides more room for a moderate move.

Spread Construction

Leg Side Strike Action
Long Put Buy to open ATM − WING_WIDTH PAY (downside hedge)
Short Put Sell to open ATM COLLECT (premium)
Short Call Sell to open ATM COLLECT (premium)
Long Call Buy to open ATM + WING_WIDTH PAY (upside hedge)
Net Credit (short put + short call at ATM) − (long put + long call)

Both short strikes are at the same ATM strike. With the default $10 wing:

← $10 →     ATM     ← $10 →
LP               SP / SC               LC
(buy)          (sell / sell)          (buy)

Iron Butterfly vs Iron Condor

AspectIron ButterflyIron Condor
Short strikesBoth at ATMATM ± $10
Profit zoneNarrow (ATM ± credit)Wider (ATM ± $10 ± credit)
Max credit collectedHigher (ATM straddle)Lower (OTM strangle)
Win probabilityLowerHigher
Risk / rewardMore favourable ratioLower max credit per trade

⚙️ Parameters

Ticker
QQQ
Qty / Leg
40
Wing Width
$10
ParameterValueDescription
TICKERQQQUnderlying ETF
QTY40Contracts per leg
WING_WIDTH10Distance from ATM to long strikes ($); also max loss per side

Max Profit

net_credit × $4,000

Max Loss

(10 − credit) × $4,000

Expiry

Next Friday

🕐 Schedule

EventTime (ET)Days
Entry open09:40Mon–Thu
Entry cutoff12:00Mon–Thu
Exit14:20Mon–Thu

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

📅

Friday Skipped

No new positions opened on Friday. Intraday-only exposure — no overnight risk.

Auto-Exit Rules

TriggerThresholdAction
PROFIT_TARGET_PCT+90% of max profitClose all legs
STOP_LOSS_PCT−80% of max profitClose all legs

🔍 Trade Filters

All filters are evaluated from live option prices at entry time. Set any filter to None to disable it.

#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, 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 — momentum tends to persist
7LOW_IV_HIGH_RVOLstraddle < 1.20% and avg5 > $3.50Skip days where the straddle implies a calm session but realized vol over the past 5 days has averaged more than $3.50 intraday — avoids selling low premium into a volatile regime

Filter Calibration Notes

📋

LOW_IV_HIGH_RVOL — QQQ-Specific Calibration

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.

⚠️ Risk Assessment

Max Profit

net_credit × $4,000

Max Loss

(10 − credit) × $4,000

Upper Breakeven

ATM + credit

Lower Breakeven

ATM − credit

Overnight Risk

None

Delta at Entry

Neutral
⚠️

QQQ High-Vol Regime 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). Maximum loss: (WING_WIDTH − net_credit) × 100 × QTY = (10 − credit) × $4,000.

📋

Intraday-Only Exposure

No overnight risk. Positions are always closed by 14:20 ET. Friday is skipped entirely.

💡

Use Condor as Fallback

On days where this strategy’s filters reject the trade, consider running daily_iron_condor_qqq.py instead — the condor’s wider $10 body provides significantly more room for a moderate intraday move.

🛠️ Prerequisites & Usage

Install Dependencies

pip install -r requirements.txt

Environment File — .envNP2

apiKeyAIV011P=<paper-trading API key>
apiSecretAIV011P=<paper-trading API secret>
apiDataKey=<data API key>
apiDataSecret=<data API secret>

Run

python3 daily_iron_butterfly_qqq.py

The script blocks until market close, monitoring the position every 5 minutes and auto-exiting on profit target or stop loss. Trades are appended to butterfly_qqq_trades_log.csv.

⚠️

Paper Trading Only — Not Financial Advice

This strategy runs on an Alpaca paper trading account. Past performance does not guarantee future results. Do not use real capital without thorough risk review.

⚠️ Options Permission Requirements (Alpaca)

This strategy requires Level 3 (Spreads) options approval on the Alpaca account. Level 3 allows multi-leg defined-risk spreads (iron condors, iron butterflies, verticals, etc.). Accounts must also be margin-enabled.

Apply via: Alpaca Dashboard → Account → Trading → Options Trading → Level 3.