Use case · Construct

Compose an iron condor for a high-IV regime

Premium-selling structures need a different policy than directional debits. Gate condor construction on an IV-rank floor, choose a target probability-of-profit, and fix wing widths in dollars or delta-space — the engine returns a typed IronCondorCandidate priced consistently on one smile.

When to use it

  • You sell premium and want construction gated on the volatility regime, not filtered afterward.
  • You want both wings priced on the same parametric smile so the credit and max-loss are internally consistent.
  • You want a target probability-of-profit and delta-based short strikes expressed in the policy.

Example

use ferro_spread::{SpreadBuilder, SpreadStrategy};

let policy = SpreadBuilder::default()
    .strategy(SpreadStrategy::IronCondor)
    .iv_rank_floor(0.65)          // regime gate
    .target_pop(0.70)             // 70% probability
    .wing_width_pts(10.0)         // $-space wings
    .short_strike_delta(0.16);    // ~1σ tails

let condors = policy.construct(&chain)?;

// Empty Vec when iv_rank < floor — no condors in low-vol
// regimes. Embed the gate, not in caller code.

Notes

  • iv_rank_floor is a construction gate: below it, the policy returns an empty Vec rather than marginal structures.
  • target_pop and short_strike_delta are model-based — see conventions on how probabilities are computed.
Regime

Gate on the regime in the policy, not the caller. A low-vol tape simply yields no condors, so downstream ranking and screening need no special case.