Skip to content
Back to skills

Long Call Butterfly

ASecurity

Analyzes long call butterfly spreads with 3 strikes and 4 legs for neutral outlook. Requires numpy>=1.24.0, pandas>=2.0.0, matplotlib>=3.7.0, scipy>=1.10.0. Use when expecting minimal price movement, want low-cost defined-risk strategy, analyzing pinning opportunities, or evaluating tight-range neutral positions on stocks near technical levels.

  • 666 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added February 9, 2026
developmentpythongobashapi

Works with

  • claude code
  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill long-call-butterfly --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Long Call Butterfly?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Long Call Butterfly
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-long-call-butterfly/badge)](https://www.skillsdirectory.com/skills/majiayu000-long-call-butterfly)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: long-call-butterfly
description: Analyzes long call butterfly spreads with 3 strikes and 4 legs for neutral outlook. Requires numpy>=1.24.0, pandas>=2.0.0, matplotlib>=3.7.0, scipy>=1.10.0. Use when expecting minimal price movement, want low-cost defined-risk strategy, analyzing pinning opportunities, or evaluating tight-range neutral positions on stocks near technical levels.
---

# Long Call Butterfly Strategy

**Version**: 1.0
**Last Updated**: 2025-12-12

## Overview

A long call butterfly is a sophisticated neutral strategy that profits from minimal price movement. Using three strike prices with four option contracts (1 ITM call + 2 ATM calls + 1 OTM call), the strategy offers limited risk and limited reward with maximum profit achieved when the stock closes exactly at the middle strike at expiration.

**Quick Summary**: Buy lower call + Sell 2 middle calls + Buy upper call = Profit from no movement

## Strategy Characteristics

**Position Structure**:
- Buy 1 call at lower strike (ITM or ATM)
- Sell 2 calls at middle strike (ATM)
- Buy 1 call at upper strike (OTM)
- All same expiration, equal spacing between strikes

**Risk Profile**:
- **Maximum Loss**: Net debit paid (limited)
- **Maximum Profit**: Middle strike - Lower strike - Net debit
- **Breakeven Points**:
  - Lower: Lower strike + Net debit
  - Upper: Upper strike - Net debit
- **Best Use**: Expect stock to pin near middle strike with low volatility

**Cost Components**:
- Lower call premium: Paid (debit, expensive)
- Middle calls premium: Received (credit × 2, offset cost)
- Upper call premium: Paid (debit, cheap)
- Net debit = Lower + Upper - (2 × Middle)
- Transaction costs: ~$0.65 per contract × 4 legs = $2.60

## Quick Start

Calculate butterfly metrics:

```python
from scripts.butterfly_calculator import LongCallButterfly

# Example: SPY at $450, expect minimal movement
position = LongCallButterfly(
    underlying_price=450.00,
    lower_strike=445.00,    # $5 ITM
    middle_strike=450.00,   # ATM (body)
    upper_strike=455.00,    # $5 OTM
    lower_premium=8.50,
    middle_premium=5.00,    # Sold 2×
    upper_premium=2.50,
    contracts=1
)

# Key metrics
print(f"Net Debit: ${position.net_debit:.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: {position.profit_zone_width:.2f} points")
```

## Core Workflow

### 1. Identify Low-Volatility Opportunity

Look for stocks likely to trade in tight range:

**Ideal Scenarios**:
- **Post-Earnings Calm**: Stock settles after volatile earnings
- **Consolidation**: Trading in well-defined range
- **Technical Levels**: Near strong support/resistance
- **Pre-Event Lull**: Quiet period before catalyst
- **Low IV Environment**: IV rank <40, low expected move

**Stock Characteristics**:
- Low beta (< 1.0)
- Tight historical trading ranges
- Low implied volatility
- Recent volatility compression
- Clear technical pivot level

See [references/opportunity-identification.md](references/opportunity-identification.md).

### 2. Strike Selection Framework

**Standard Butterfly** (Equal Wing Spacing):
- Lower: $5 below current price
- Middle: At current price (ATM)
- Upper: $5 above current price
- Wing width: $5 both sides
- Example: Stock $100 → $95/$100/$105

**Narrow Butterfly** ($2.50-$5 wings):
- Tighter profit zone
- Higher probability of profit
- Lower max profit potential
- Example: Stock $450 → $447.50/$450/$452.50

**Wide Butterfly** ($10-$20 wings):
- Wider profit zone
- Lower probability of max profit
- Higher max profit potential
- Example: Stock $100 → $90/$100/$110

**Selection Rules**:
- Middle strike = Expected pin point (often ATM)
- Equal spacing: Upper-Middle = Middle-Lower
- Match wing width to expected range

See [references/strike-selection-guide.md](references/strike-selection-guide.md).

### 3. Wing Width Optimization

Compare different wing widths:

```python
from scripts.wing_optimizer import analyze_wing_widths

results = analyze_wing_widths(
    underlying_price=450.00,
    wing_widths=[2.5, 5.0, 10.0],
    volatility=0.18,
    days_to_expiration=30
)

for width, metrics in results.items():
    print(f"${width} wings:")
    print(f"  Max Profit: ${metrics['max_profit']:.2f}")
    print(f"  Max Loss: ${metrics['max_loss']:.2f}")
    print(f"  Profit Zone: ${metrics['profit_zone_width']:.2f}")
    print(f"  Prob of Profit: {metrics['prob_profit']:.1f}%")
```

**Trade-off**:
- Narrow wings: Higher prob, lower profit
- Wide wings: Lower prob, higher profit

See [references/wing-width-analysis.md](references/wing-width-analysis.md).

### 4. Probability Analysis

Calculate probability of profit:

```python
from scripts.probability_calculator import calculate_butterfly_probabilities

prob = calculate_butterfly_probabilities(
    underlying_price=450.00,
    lower_strike=445.00,
    middle_strike=450.00,
    upper_strike=455.00,
    volatility=0.18,
    days_to_expiration=30
)

print(f"Prob at Middle Strike: {prob['at_middle']:.1f}%")
print(f"Prob in Profit Zone: {prob['in_profit_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 >60%: Good setup
- Expected value >0: Positive expectancy
- Max profit/Max loss ratio >3:1: Favorable R:R

See [references/probability-analysis.md](references/probability-analysis.md).

### 5. Expiration Cycle Selection

**Short-Term Butterflies** (7-21 days):
- Lower cost (less time premium)
- Faster theta decay benefit
- Less time for stock to move outside range
- Higher gamma risk (rapid changes)
- Best for: Near-term pinning opportunities

**Medium-Term Butterflies** (30-45 days):
- Balanced cost and time
- Standard approach
- Moderate theta benefit
- Reasonable gamma exposure
- Best for: Standard neutral plays

**Long-Term Butterflies** (60-90 days):
- Higher cost (more time premium)
- Slow theta decay
- More time for adjustment
- Lower gamma risk
- Best for: Patient, adjustment-friendly approach

See [references/expiration-timing.md](references/expiration-timing.md).

### 6. Greeks Analysis

Monitor butterfly Greeks:

```python
from scripts.greeks_calculator import calculate_butterfly_greeks

greeks = calculate_butterfly_greeks(
    lower_strike=445.00,
    middle_strike=450.00,
    upper_strike=455.00,
    underlying_price=450.00,
    volatility=0.18,
    time_to_expiration=30/365
)

print(f"Delta: {greeks['delta']:.3f}")    # ~0 at middle
print(f"Gamma: {greeks['gamma']:.3f}")    # Changes rapidly
print(f"Theta: {greeks['theta']:.3f}")    # Positive (earns decay)
print(f"Vega: {greeks['vega']:.3f}")      # Negative (hurts from IV rise)
```

**Key Insights**:
- **Delta**: Near zero at middle strike, changes outside wings
- **Gamma**: Positive in profit zone, negative outside
- **Theta**: Positive (benefits from time decay)
- **Vega**: Negative (benefits from IV decrease)

See [references/greeks-guide.md](references/greeks-guide.md).

### 7. Position Sizing

Calculate appropriate contracts:

```python
from scripts/position_sizer import calculate_butterfly_size

contracts = calculate_butterfly_size(
    portfolio_value=100000,
    risk_per_trade=0.01,      # 1% max risk
    max_loss_per_butterfly=150 # Net debit
)
# Returns: 6 contracts (max risk $900 = 0.9%)
```

**Sizing Guidelines**:
- Risk 0.5-2% per butterfly (low risk strategy)
- Max loss = Net debit (clearly defined)
- Consider multiple butterflies at different strikes
- Scale in/out rather than all-in

See [references/position-sizing.md](references/position-sizing.md).

### 8. Entry Execution

**Order Types**:
- **Butterfly Order**: Single order for all 4 legs (best execution)
- **Limit Order**: Set max net debit willing to pay
- **Spread Order**: Enter as vertical spreads (2 separate orders)

**Best Practices**:
- Always enter as butterfly order (1 ticket, 4 legs)
- Set limit at mid-point of butterfly bid/ask
- Adjust by $0.05 if not filled within 60 seconds
- Avoid wide markets (>15% spread)
- Verify equal wing spacing before sending

**Entry Timing**:
- Enter when stock at middle strike (optimal)
- Avoid entering after large move
- Best during low volatility periods
- Consider multiple strikes if uncertain of pin point

### 9. Adjustment Strategies

**Stock Moves Outside Profit Zone**:

**Upside Adjustment** (Stock above upper strike):
- Close entire butterfly, accept loss
- Roll to higher strikes (all 3 strikes up)
- Add short call spread above (convert to condor)

**Downside Adjustment** (Stock below lower strike):
- Close entire butterfly, accept loss
- Roll to lower strikes (all 3 strikes down)
- Add short put spread below (convert to condor)

**Widening Profit Zone**:
- Close current butterfly
- Open wider wing butterfly (increase spacing)
- Accept lower max profit for wider range

See [references/adjustment-techniques.md](references/adjustment-techniques.md).

### 10. Exit Management

**Profit Targets**:
- **50-70% max profit**: Excellent target, reduces risk
- **80% max profit**: Near optimal, theta slowing
- **Expiration**: Hold for max profit if confident

**Stop Loss**:
- **100% of debit**: Full max loss, exit immediately
- **Stock outside wings**: Low recovery probability
- **Volatility spike**: Exit if IV increases significantly

**Early Exit Scenarios**:
- Stock moves >75% toward wing
- IV increases >50% (vega loss)
- Theta benefit exhausted (little time value left)
- Better opportunity elsewhere

See [references/exit-strategies.md](references/exit-strategies.md).

## Scripts

### Calculator

```bash
# Calculate butterfly metrics
python scripts/butterfly_calculator.py \
  --underlying SPY \
  --price 450 \
  --lower-strike 445 \
  --middle-strike 450 \
  --upper-strike 455 \
  --lower-premium 8.50 \
  --middle-premium 5.00 \
  --upper-premium 2.50
```

### Wing Optimizer

```bash
# Compare different wing widths
python scripts/wing_optimizer.py \
  --underlying SPY \
  --price 450 \
  --widths 2.5 5.0 10.0 \
  --dte 30 \
  --volatility 0.18
```

### Probability Calculator

```bash
# Calculate probability of profit
python scripts/probability_calculator.py \
  --price 450 \
  --lower 445 \
  --middle 450 \
  --upper 455 \
  --dte 30 \
  --vol 0.18
```

## References

### Core Guides
- [quickstart-guide.md](references/quickstart-guide.md) - 5-minute overview
- [installation-guide.md](references/installation-guide.md) - Setup instructions
- [developer-guide.md](references/developer-guide.md) - Code standards

### Strategy-Specific
- [opportunity-identification.md](references/opportunity-identification.md) - Finding low-vol setups
- [strike-selection-guide.md](references/strike-selection-guide.md) - Equal wing spacing framework
- [wing-width-analysis.md](references/wing-width-analysis.md) - Optimize wing spacing
- [probability-analysis.md](references/probability-analysis.md) - Calculate profit probabilities
- [expiration-timing.md](references/expiration-timing.md) - 7/30/60 day comparison
- [greeks-guide.md](references/greeks-guide.md) - Delta, gamma, theta, vega
- [position-sizing.md](references/position-sizing.md) - Risk management
- [adjustment-techniques.md](references/adjustment-techniques.md) - Managing outside wings
- [exit-strategies.md](references/exit-strategies.md) - Profit targets, stop loss
- [examples.md](references/examples.md) - Real consolidation plays

## Dependencies

**Required Packages**:
```
numpy>=1.24.0
pandas>=2.0.0
matplotlib>=3.7.0
scipy>=1.10.0
```

**Installation**:
```bash
pip install -r requirements.txt
```

**Python Version**: 3.11+

## Risk Warnings

⚠️ **Key Risks**:
- **Limited Profit**: Capped at wing width - net debit
- **Narrow Profit Zone**: Small range for profitability
- **Gamma Risk**: Rapid position changes outside wings
- **Assignment Risk**: Short middle calls can be assigned early
- **Pin Risk**: Stock settling exactly at strike (complex assignment scenarios)
- **Complexity**: 4 legs = higher commissions, wider spreads
- **Adjustment Cost**: Expensive to roll or adjust position

**Risk Mitigation**:
- Only use in low volatility environments
- Set stop loss at max loss (net debit)
- Exit early if stock approaches wings (don't wait)
- Monitor middle strike for early assignment risk
- Use stocks with liquid options (tight spreads)
- Verify equal wing spacing to avoid undefined risk

## When to Use Long Call Butterfly

✅ **Ideal Scenarios**:
- Expect minimal price movement (neutral outlook)
- Stock consolidating in tight range
- Post-earnings quiet period
- Low IV environment (IV rank <40)
- Near strong technical support/resistance
- Want defined risk with low capital requirement
- Comfortable with limited profit potential

❌ **Avoid When**:
- Expecting large moves (use straddle/strangle)
- High volatility environment (IV crush hurts)
- Unclear where stock will settle
- Wide bid/ask spreads (execution cost too high)
- Trending market (directional bias)
- Upcoming catalyst (volatility spike risk)

## Comparison to Other Strategies

**vs. Iron Butterfly**:
- ✅ All long options (no naked short risk)
- ❌ Pay debit vs. collect credit
- ✅ Easier approval (no margin requirement)

**vs. Straddle/Strangle**:
- ✅ Lower cost (credit from short middle calls)
- ❌ Limited profit (capped vs. unlimited)
- ✅ Profits from no movement (vs. needing big move)

**vs. Condor**:
- ❌ Narrower profit zone
- ✅ Higher max profit potential
- ✅ Lower cost (fewer legs)

## Example Trade

**Scenario**: SPY consolidating at $450, expect to stay $445-$455 over 30 days

**Setup**:
- Buy 1 SPY $445 call @ $8.50
- Sell 2 SPY $450 calls @ $5.00 (receive $10.00)
- Buy 1 SPY $455 call @ $2.50
- Net debit: $8.50 + $2.50 - $10.00 = $1.00 × 100 = $100
- Contracts: 10 butterflies
- Expiration: 30 days

**Risk Profile**:
- Max Loss: $100 × 10 = $1,000 (if SPY ≤$445 or ≥$455)
- Max Profit: ($5.00 - $1.00) × 100 × 10 = $4,000 (if SPY exactly $450)
- Lower Breakeven: $445 + $1 = $446
- Upper Breakeven: $455 - $1 = $454
- Profit Zone: $446-$454 (8-point range, ±1.8%)
- Risk/Reward: 1:4 (excellent)

**Outcomes at Expiration**:
- SPY at $450: Max profit $4,000
- SPY at $452: Profit ~$2,000 (in profit zone)
- SPY at $446: Near breakeven
- SPY at $443: Max loss $1,000
- SPY at $457: Max loss $1,000

## 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 wing width optimizer and probability calculator
- Adjustment techniques and exit strategies
- Equal spacing framework for strike selection

---

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

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.