Claude Code Plugins

Community-maintained marketplace

Feedback

iron-butterfly

@keith-mvs/ordinis
1
0

Analyzes iron butterfly credit spreads with ATM short straddle and OTM long strangle protection. Requires numpy>=1.24.0, pandas>=2.0.0, matplotlib>=3.7.0, scipy>=1.10.0. Use when expecting stock to pin at specific strike, want maximum credit collection in high IV, analyzing tight-range opportunities, or implementing high-premium neutral strategies on stocks with strong technical pivot levels.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name iron-butterfly
description Analyzes iron butterfly credit spreads with ATM short straddle and OTM long strangle protection. Requires numpy>=1.24.0, pandas>=2.0.0, matplotlib>=3.7.0, scipy>=1.10.0. Use when expecting stock to pin at specific strike, want maximum credit collection in high IV, analyzing tight-range opportunities, or implementing high-premium neutral strategies on stocks with strong technical pivot levels.

Iron Butterfly Strategy

Version: 1.0 Last Updated: 2025-12-12

Overview

An iron butterfly is a high-credit neutral strategy that profits when a stock pins near a specific strike price. By selling an ATM straddle (short call + short put at same strike) and buying an OTM strangle for protection (long put + long call at different strikes), the trader collects maximum premium while maintaining defined risk, benefiting from minimal price movement and volatility contraction.

Quick Summary: Sell ATM straddle + Buy OTM strangle = High credit, tight profit zone

Strategy Characteristics

Position Structure:

  • Sell 1 call at-the-money (ATM)
  • Sell 1 put at-the-money (ATM)
  • Buy 1 OTM put (lower strike, protection)
  • Buy 1 OTM call (higher strike, protection)
  • All same expiration, equal wing widths from body

Risk Profile:

  • Maximum Profit: Net credit received (at ATM strike)
  • Maximum Loss: Wing width - Net credit
  • Breakeven Points:
    • Lower: ATM strike - Net credit
    • Upper: ATM strike + Net credit
  • Best Use: Expect stock to pin at ATM strike, high IV crush opportunity

Cost Components:

  • ATM straddle credit: Received (large)
  • OTM strangle cost: Paid (small)
  • Net credit = Straddle credit - Strangle cost
  • Max risk = Wing width - Net credit
  • Transaction costs: ~$0.65 per contract × 4 legs = $2.60

Quick Start

Calculate iron butterfly metrics:

from scripts.iron_butterfly_calculator import IronButterfly

# Example: SPY at $450, expect to pin at $450
position = IronButterfly(
    underlying_price=450.00,
    atm_strike=450.00,        # Body (sell straddle)
    long_put=440.00,          # $10 OTM protection
    long_call=460.00,         # $10 OTM protection
    atm_call_premium=5.50,    # Sell ATM call
    atm_put_premium=5.25,     # Sell ATM put
    long_call_premium=1.00,   # Buy OTM call
    long_put_premium=0.90,    # Buy OTM put
    contracts=1
)

# Key metrics
print(f"Net Credit: ${position.net_credit:.2f}")
print(f"Max Profit: ${position.max_profit:.2f}")
print(f"Max Loss: ${position.max_loss:.2f}")
print(f"Breakevens: ${position.lower_breakeven:.2f} - ${position.upper_breakeven:.2f}")
print(f"Profit Zone Width: {position.profit_zone_width:.2f} points")

Core Workflow

1. Identify Pinning Opportunity

Look for stocks likely to settle at specific strike:

Ideal Scenarios:

  • Post-Earnings Pin: Stock historically pins at round numbers after earnings
  • Options Expiration: Max pain theory (MMs want max OI to expire worthless)
  • Strong Technical Level: Key support/resistance at strike price
  • Low Beta Stock: Minimal movement tendency
  • High Open Interest: Large OI at specific strike (pinning force)

Market Conditions:

  • Very high IV rank (>70) - premium rich
  • Stock at or near ATM strike
  • Upcoming IV crush catalyst
  • Historical tendency to pin at strikes
  • Low expected movement

See references/pinning-identification.md.

2. Wing Width Selection

Narrow Wings ($5-$10):

  • Higher credit (straddle expensive vs. strangle)
  • Tighter profit zone (harder to win)
  • Better R:R ratio (often 2:1 or better)
  • Lower capital requirement
  • Example: Sell $450 straddle / Buy $440/$460 strangle

Standard Wings ($10-$15):

  • Balanced credit and profit zone
  • Most common configuration
  • Moderate risk management
  • Example: Sell $450 straddle / Buy $435/$465 strangle

Wide Wings ($15-$25):

  • Lower credit (larger strangle cost)
  • Wider profit zone (easier to win)
  • Lower R:R ratio
  • Higher capital requirement
  • Example: Sell $450 straddle / Buy $425/$475 strangle

Selection Criteria:

  • Match wing width to expected range
  • Narrower wings = more credit but tighter range
  • Target R:R ratio: 2:1 or better

See references/wing-width-analysis.md.

3. Strike Selection Framework

ATM Strike (Body):

  • Select strike closest to current stock price
  • Or select strike with highest open interest
  • Or select technical pivot level (support/resistance)
  • Maximum credit collected here

Protection Strikes (Wings):

  • Symmetric: Equal distance from ATM (standard)
    • Example: ATM $450 → Long $440 put / Long $460 call
  • Asymmetric: Different distances (directional bias)
    • Bullish: Wider downside wing, tighter upside
    • Bearish: Tighter downside wing, wider upside

Delta-Based Approach:

  • ATM strike: ~0.50 delta call, ~-0.50 delta put
  • Long strikes: ~0.10-0.15 delta (OTM protection)

See references/strike-selection-guide.md.

4. Credit Optimization

Compare different configurations to maximize credit:

from scripts/credit_optimizer import optimize_iron_butterfly

configs = optimize_iron_butterfly(
    underlying_price=450.00,
    atm_strike=450.00,
    wing_widths=[5, 10, 15, 20],
    volatility=0.28,
    days_to_expiration=30
)

for config in configs:
    print(f"Wing Width ${config['wing_width']}:")
    print(f"  Net Credit: ${config['net_credit']:.2f}")
    print(f"  Max Profit: ${config['max_profit']:.2f}")
    print(f"  Max Loss: ${config['max_loss']:.2f}")
    print(f"  Profit Zone: ±${config['profit_zone']:.2f} ({config['profit_zone_pct']:.1f}%)")
    print(f"  R:R Ratio: {config['rr_ratio']:.2f}:1")

See references/credit-optimization.md.

5. IV Rank Analysis

Assess premium environment:

from scripts/iv_analyzer import analyze_iv_for_butterfly

analysis = analyze_iv_for_butterfly(
    symbol='SPY',
    current_iv=0.28,
    atm_strike=450.00,
    lookback_period=252
)

print(f"IV Rank: {analysis['iv_rank']:.0f}")
print(f"IV Percentile: {analysis['iv_percentile']:.0f}")
print(f"Straddle Premium Rich: {analysis['straddle_rich']}")
print(f"IV Crush Expected: {analysis['iv_crush_expected']}")
print(f"Optimal for Iron Butterfly: {analysis['butterfly_optimal']}")
print(f"Expected Credit: ${analysis['expected_credit']:.2f}")

Ideal IV Environment:

  • IV Rank: 70-95 (extremely high)
  • IV Percentile: 80-95
  • Pre-event (earnings) with imminent crush
  • Historical IV > Current IV (mean reversion)

⚠️ Critical: Iron butterflies REQUIRE high IV to justify tight profit zone

See references/iv-analysis.md.

6. Probability Analysis

Calculate probability of profit:

from scripts/probability_calculator import calculate_butterfly_probabilities

prob = calculate_butterfly_probabilities(
    atm_strike=450.00,
    wing_width=10.00,
    net_credit=8.85,
    underlying_price=450.00,
    volatility=0.28,
    days_to_expiration=30
)

print(f"Prob at ATM: {prob['at_atm']:.1f}%")
print(f"Prob in Profit Zone: {prob['in_zone']:.1f}%")
print(f"Prob of Max Profit: {prob['max_profit']:.1f}%")
print(f"Prob of Max Loss: {prob['max_loss']:.1f}%")
print(f"Expected Value: ${prob['expected_value']:.2f}")

Decision Criteria:

  • Prob in profit zone: >50% (minimum)
  • Expected value: >0 (positive expectancy)
  • R:R ratio: >2:1 (credit:risk)

See references/probability-analysis.md.

7. Expiration Timing

Short-Term (7-14 days): Maximum theta, ideal for post-earnings. Less time for stock to move.

Standard (21-30 days): Balanced theta and adjustability. Common for monthly expiration.

Avoid Long-Term (>45 days): Lower credit, too much time for stock to wander, theta too slow.

See references/expiration-timing.md.

8. Greeks Monitoring

Track iron butterfly Greeks:

from scripts/greeks_calculator import calculate_iron_butterfly_greeks

greeks = calculate_iron_butterfly_greeks(
    atm_strike=450.00,
    long_put=440.00,
    long_call=460.00,
    underlying_price=450.00,
    volatility=0.28,
    time_to_expiration=30/365
)

print(f"Delta: {greeks['delta']:.3f}")    # ~0 at ATM
print(f"Gamma: {greeks['gamma']:.3f}")    # Very high (rapid changes)
print(f"Theta: {greeks['theta']:.3f}")    # Positive (strong decay benefit)
print(f"Vega: {greeks['vega']:.3f}")      # Negative (benefits from IV drop)

Key Insights:

  • Delta: Near zero at ATM strike
  • Gamma: Very high (extremely sensitive to moves)
  • Theta: High positive (strong time decay benefit)
  • Vega: High negative (major benefit from IV crush)

See references/greeks-guide.md.

9. Position Sizing

Calculate risk-appropriate contracts:

from scripts/position_sizer import calculate_iron_butterfly_size

contracts = calculate_iron_butterfly_size(
    portfolio_value=100000,
    risk_per_trade=0.025,     # 2.5% max risk
    max_loss_per_butterfly=115 # $10 wing - $8.85 credit
)
# Returns: 2 contracts (max risk $230 = 0.23%)

Sizing Guidelines:

  • Risk 1-3% of portfolio per butterfly
  • Account for max loss (wing - credit)
  • Consider iron butterflies higher risk than condors
  • Leave capital for adjustments or rolling

See references/position-sizing.md.

10. Management and Adjustments

Profit Taking:

  • 50-70% max profit: Excellent target
  • Day after event: If IV crush occurred, exit
  • 75% max profit: Near optimal

Defensive Adjustments (Stock moving away from ATM):

Convert to Iron Condor:

  • Stock moving away from ATM
  • Close short option on tested side
  • Opens up profit zone
  • Reduces credit but improves probability

Roll Entire Butterfly:

  • Stock moved to new level
  • Close current butterfly
  • Re-establish at new ATM strike
  • Collect new credit

Close and Accept Loss:

  • Stock breached wing
  • Little recovery probability
  • Cut loss, move on
  • Don't chase or hope

See references/adjustment-strategies.md.

Scripts

Calculator

# Calculate iron butterfly metrics
python scripts/iron_butterfly_calculator.py \
  --underlying SPY \
  --price 450 \
  --atm-strike 450 \
  --long-put 440 \
  --long-call 460 \
  --atm-call-premium 5.50 \
  --atm-put-premium 5.25 \
  --long-call-premium 1.00 \
  --long-put-premium 0.90

Credit Optimizer

# Optimize wing width for max credit
python scripts/credit_optimizer.py \
  --underlying SPY \
  --price 450 \
  --atm 450 \
  --widths 5 10 15 20 \
  --dte 30 \
  --volatility 0.28

Probability Calculator

# Calculate probability of profit
python scripts/probability_calculator.py \
  --atm 450 \
  --wing-width 10 \
  --credit 8.85 \
  --price 450 \
  --dte 30 \
  --vol 0.28

References

Core Guides

Strategy-Specific

Dependencies

Required Packages:

numpy>=1.24.0
pandas>=2.0.0
matplotlib>=3.7.0
scipy>=1.10.0

Installation:

pip install -r requirements.txt

Python Version: 3.11+

Risk Warnings

⚠️ Key Risks:

  • Extremely Tight Profit Zone: Very narrow range for profit
  • High Gamma Risk: Position changes rapidly outside ATM
  • Limited Probability: Lower chance of profit vs. iron condor
  • Assignment Risk: ATM short options high assignment risk
  • Pin Risk: Complex assignment scenarios at ATM
  • IV Crush Dependency: Requires significant IV contraction
  • Gap Risk: Overnight gaps can breach wings quickly

Risk Mitigation:

  • Only use in very high IV (IV rank >70)
  • Exit day after event (capture IV crush)
  • Set tight stop loss (2-3× credit)
  • Monitor ATM strikes closely for assignment
  • Don't hold through expiration if ATM
  • Size very conservatively (1-2% portfolio risk)
  • Have adjustment plan before entry

When to Use Iron Butterfly

Ideal Scenarios:

  • Very high IV environment (IV rank >70)
  • Expect stock to pin at ATM strike
  • Pre-earnings with imminent IV crush
  • Stock at strong technical level
  • High open interest at ATM strike
  • Short time to expiration (7-21 days)
  • Want maximum credit collection
  • Experienced with gamma risk

Avoid When:

  • Low-moderate IV (IV rank <60)
  • Uncertain where stock will settle
  • No clear pinning catalyst
  • Trending market
  • Wide bid/ask spreads
  • Inexperienced with complex strategies
  • Can't actively monitor
  • Long time to expiration (>30 days)

Comparison to Other Strategies

vs. Iron Condor: Higher credit but tighter profit zone and higher gamma risk. Better for IV crush plays.

vs. Long Butterfly: Collect credit vs. pay debit. Benefits from IV decrease with higher theta benefit.

vs. Short Straddle: Defined risk with wings protection. Lower credit but no naked exposure and easier approval.

Example Trade

Scenario: SPY at $450 day before FOMC, IV rank 85, expect minimal move

Setup:

  • Sell 1 SPY $450 call @ $5.50
  • Sell 1 SPY $450 put @ $5.25 (Straddle credit: $10.75)
  • Buy 1 SPY $440 put @ $0.90
  • Buy 1 SPY $460 call @ $1.00 (Strangle cost: $1.90)
  • Net credit: $8.85 × 100 = $885 per butterfly
  • Contracts: 2 butterflies
  • Expiration: 14 days (week after FOMC)

Risk Profile:

  • Max Profit: $885 × 2 = $1,770 (if SPY exactly $450 at expiration)
  • Max Loss: ($10 wing - $8.85 credit) × 100 × 2 = $230
  • Lower Breakeven: $450 - $8.85 = $441.15
  • Upper Breakeven: $450 + $8.85 = $458.85
  • Profit Zone: $441.15 - $458.85 (17.7-point range, ±3.9%)
  • Risk/Reward: 7.7:1 (excellent R:R)
  • Probability of Profit: ~55%

Outcomes: SPY at $450 = max profit $1,770; at $445 = profit ~$1,020; at $441 = breakeven; outside wings = max loss $230

Management: Target 60% max profit ($1,062) day after FOMC; stop if SPY approaches $442 or $458

Version History

v1.0 (2025-12-12)

  • Initial release using SKILL_PACKAGE_TEMPLATE v3.0
  • Anthropic + Claude Code compliant (<500 lines)
  • Progressive disclosure with references/
  • Complete credit optimizer and probability calculator
  • Pinning identification framework
  • IV crush analysis and adjustment strategies

Compliance: Anthropic Best Practices ✅ | Claude Code Compatible ✅ Template: SKILL_PACKAGE_TEMPLATE v3.0 Lines: ~485 (under 500-line limit)