bear-put-spread

Analyzes bear-put-spread debit spreads for bearish directional plays with defined risk. Requires numpy>=1.24.0, pandas>=2.0.0, matplotlib>=3.7.0, scipy>=1.10.0. Use when expecting moderate price decline, comparing put spread configurations, analyzing debit spread opportunities, or evaluating defined-risk bearish positions on mid to large-cap stocks.

$ Instalar

git clone https://github.com/keith-mvs/ordinis /tmp/ordinis && cp -r /tmp/ordinis/docs/knowledge-base/domains/options/strategy-implementations/bear-put-spread ~/.claude/skills/ordinis

// tip: Run this command in your terminal to install the skill


name: bear-put-spread description: Analyzes bear-put-spread debit spreads for bearish directional plays with defined risk. Requires numpy>=1.24.0, pandas>=2.0.0, matplotlib>=3.7.0, scipy>=1.10.0. Use when expecting moderate price decline, comparing put spread configurations, analyzing debit spread opportunities, or evaluating defined-risk bearish positions on mid to large-cap stocks.

Bear Put Spread Strategy

Version: 1.0 Last Updated: 2025-12-12

Overview

A bear-put-spread is a vertical options strategy that profits from moderate downward price movement while limiting both risk and reward. The strategy involves buying a higher-strike put (closer to ATM) and selling a lower-strike put (further OTM), creating a net debit position with defined maximum loss and profit.

Quick Summary: Buy higher put + Sell lower put = Defined-risk bearish play

Strategy Characteristics

Position Structure:

  • Buy 1 put at higher strike (long put)
  • Sell 1 put at lower strike (short put)
  • Same expiration date
  • Same underlying stock

Risk Profile:

  • Maximum Loss: Net debit paid (long premium - short premium)
  • Maximum Profit: Spread width - Net debit
  • Breakeven: Long strike - Net debit
  • Best Use: Moderately bearish outlook with defined risk parameters

Cost Components:

  • Long put premium (debit)
  • Short put premium (credit)
  • Net debit = Long premium - Short premium
  • Transaction costs: ~$0.65 per contract × 2 legs = $1.30

Quick Start

Calculate bear-put-spread metrics:

from scripts.bear_put_calculator import BearPutSpread

# Example: Bearish on SPY at $450
position = BearPutSpread(
    underlying_price=450.00,
    long_put_strike=450.00,   # Buy ATM put
    short_put_strike=445.00,  # Sell $5 OTM put
    long_put_premium=7.50,
    short_put_premium=5.00,
    contracts=1
)

# Key metrics
print(f"Max Profit: ${position.max_profit:.2f}")
print(f"Max Loss: ${position.max_loss:.2f}")
print(f"Breakeven: ${position.breakeven_price:.2f}")
print(f"Risk/Reward: {position.risk_reward_ratio:.2f}")

Core Workflow

1. Market Analysis

Identify bearish opportunity with moderate downside target.

Criteria:

  • Technical breakdown (support break, bearish pattern)
  • Negative fundamental catalyst
  • Downtrend confirmation
  • Target price identified

2. Strike Selection

Long Put (Higher Strike):

  • Typically ATM or slightly ITM
  • Delta: -0.45 to -0.55
  • Provides directional exposure

Short Put (Lower Strike):

  • OTM below long strike
  • Delta: -0.20 to -0.35
  • Reduces cost, defines max profit

Common Spread Widths:

  • Narrow ($2.50-$5): Lower cost, lower profit
  • Standard ($5-$10): Balanced risk/reward
  • Wide ($10-$20): Higher cost, higher profit potential

See references/strike-selection-guide.md for delta-based framework.

3. Spread Width Analysis

Compare spread configurations:

from scripts.spread_analyzer import analyze_spread_widths

# Compare $2.50, $5, $10 spreads
results = analyze_spread_widths(
    underlying_price=450.00,
    long_put_strike=450.00,
    spread_widths=[2.5, 5.0, 10.0],
    volatility=0.22,
    days_to_expiration=45
)

# Analyze return on risk for each width
for width, metrics in results.items():
    print(f"${width} spread: ROR {metrics['return_on_risk']:.1f}%")

See references/spread-width-analysis.md for optimization.

4. Expiration Cycle Selection

Standard Cycles:

  • 30-45 days: Optimal theta decay, standard choice
  • 45-60 days: More time for thesis to play out
  • 60-90 days: Reduced urgency, lower theta

Considerations:

  • Time for bearish thesis to materialize
  • Theta decay acceleration (30-45 DTE sweet spot)
  • Upcoming events (earnings, Fed meetings)

See references/expiration-analysis.md.

5. Position Sizing

Calculate appropriate contracts based on portfolio risk:

from scripts.position_sizer import calculate_position_size

contracts = calculate_position_size(
    portfolio_value=100000,
    risk_per_trade=0.02,      # 2% portfolio heat
    max_loss_per_contract=250  # From spread analysis
)
# Returns: 8 contracts (max risk $2,000)

See references/position-sizing.md.

6. Greeks Analysis

Monitor position Greeks:

from scripts.greeks_calculator import calculate_spread_greeks

greeks = calculate_spread_greeks(
    long_put_strike=450.00,
    short_put_strike=445.00,
    underlying_price=450.00,
    volatility=0.22,
    time_to_expiration=45/365
)

print(f"Delta: {greeks['delta']:.3f}")    # Negative (bearish)
print(f"Theta: {greeks['theta']:.3f}")    # Time decay
print(f"Vega: {greeks['vega']:.3f}")      # IV sensitivity

See references/greeks-guide.md.

7. Entry Execution

Order Types:

  • Limit Order: Specify max net debit willing to pay
  • Market Order: Immediate fill (wider slippage)
  • Vertical Spread Order: Single order for both legs

Best Practices:

  • Enter as single spread order (better pricing)
  • Set limit at mid-point of bid/ask spread
  • Adjust limit if not filled within 30 seconds
  • Avoid wide markets (>10% spread width)

8. Management and Exit

Profit Targets:

  • 50% max profit: Close early, reduce risk
  • 75% max profit: Near maximum, theta slowing
  • Max profit: Hold to expiration (if confident)

Stop Loss:

  • 100% of debit: Full loss, thesis invalidated
  • 150% of debit: Avoid if spread widens against you

Adjustments:

  • Roll down: Lower both strikes if further bearish
  • Roll out: Extend expiration if need more time
  • Close early: Take profits or cut losses

See references/management-strategies.md.

Scripts

Calculator

# Calculate bear-put-spread metrics
python scripts/bear_put_calculator.py \
  --underlying SPY \
  --price 450 \
  --long-strike 450 \
  --short-strike 445 \
  --long-premium 7.50 \
  --short-premium 5.00 \
  --contracts 1

Spread Analyzer

# Compare multiple spread widths
python scripts/spread_analyzer.py \
  --underlying SPY \
  --price 450 \
  --widths 2.5 5.0 10.0 \
  --dte 45

Position Sizer

# Calculate optimal contracts
python scripts/position_sizer.py \
  --portfolio 100000 \
  --risk-percent 2 \
  --max-loss 250

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:

  • Limited Profit: Capped at spread width - net debit
  • Directional Risk: Requires downward movement to profit
  • Time Decay: Theta works against long put if stock doesn't move
  • Assignment Risk: Short put may be assigned if ITM at expiration
  • Early Assignment: Possible if short put goes deep ITM (rare on index options)

Risk Mitigation:

  • Define max loss before entry (net debit paid)
  • Use stop loss at 100-150% of debit
  • Avoid holding through earnings (IV crush risk)
  • Monitor short put for early assignment (if deep ITM)
  • Size positions appropriately (2-5% portfolio heat)

When to Use Bear Put Spread

Ideal Scenarios:

  • Moderately bearish outlook (5-10% downside expected)
  • Want defined risk and defined reward
  • Prefer lower cost than buying puts outright
  • Time horizon: 30-60 days
  • Normal to elevated IV environment

Avoid When:

  • Strongly bearish (>15% move expected) - consider long puts
  • Neutral outlook - use different strategy
  • Very low IV - debit may be too low for good R:R
  • Need unlimited profit potential - use long puts

Comparison to Other Strategies

vs. Long Put:

  • ✅ Lower cost (short put reduces debit)
  • ❌ Limited profit (capped at spread width)
  • ✅ Defined risk with better R:R ratio

vs. Put Ratio Spread:

  • ✅ Simpler structure (1:1 ratio)
  • ✅ No naked short exposure
  • ❌ Lower profit potential

vs. Bear Call Spread:

  • ❌ Requires debit (capital upfront)
  • ✅ Profits from downside move (not time decay)
  • ✅ Better for strong bearish conviction

Example Trade

Scenario: SPY at $450, expecting decline to $440-445 over 45 days

Setup:

  • Buy 1 SPY $450 put @ $7.50 (debit)
  • Sell 1 SPY $445 put @ $5.00 (credit)
  • Net debit: $2.50 × 100 = $250 per spread
  • Contracts: 4 (based on 2% portfolio risk on $50k account)

Risk Profile:

  • Max Loss: $250 × 4 = $1,000 (if SPY > $450 at expiration)
  • Max Profit: ($5.00 - $2.50) × 100 × 4 = $1,000 (if SPY ≤ $445)
  • Breakeven: $450 - $2.50 = $447.50
  • Risk/Reward: 1:1

Outcomes:

  • SPY drops to $442: Max profit ($1,000)
  • SPY at $447: Breakeven
  • SPY at $451: 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 calculator and analysis scripts
  • Delta-based strike selection framework

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

Repository

keith-mvs
keith-mvs
Author
keith-mvs/ordinis/docs/knowledge-base/domains/options/strategy-implementations/bear-put-spread
1
Stars
0
Forks
Updated1d ago
Added1w ago