Toll Booth Trading
Covered Call

Covered Call Opening — Selection and Pricing

How candidates are selected, priced, and validated for covered‑call opening orders.

Overview

  • Generate short‑call candidates across eligible expirations.
  • Apply prefilters: credit, delta band, bid/ask cap, strike floors, EDM/EPR caps.
  • Price each remaining chain; compute a viabilityScore.
  • Select the highest‑score candidate; pass opening order gates.

Baselines and modes

  • Preserve‑equities: min credit 0.40; min DTE 4.
  • Low underlying (< 50): lower credit floor.
  • Bid/ask cap: 0.50 (relaxed to 1.25 when few strikes).
  • Hedging policy may clamp max delta, min DTE, max spread by regime (VIX/liquidity/user type).

Delta and DTE regimes

  • Base max delta 32; hedging/non‑preferred path up to 34.
  • Preserve‑equities caps: max delta ≤ 22; max EDM‑Up delta 50 (70 if EPR% ≤ 30). If EPR% ≤ 15 and not preserve‑equities: max 28.
  • Underlying under 10: max delta 22.
  • Very low price (< 5) non‑preserve: max 49, min mark change −0.10, DTE window ×1.25.
  • High‑vol/down day: min mark change −20, max delta ×0.8, DTE window ×1.25; up day: min mark change +0.05, max delta ×0.95.
  • Quote guardrails: if underlying delta ≤ 0 or EDM‑Up delta ≤ 0 → max delta 6 and max EDM‑Up delta 30; otherwise cap max delta to min(current, underlying delta − 2, EDM‑Up delta).
  • EDM‑Up delta caps: if EPR% > 70 → max 90; if long puts exist → max 60.
  • Coverage‑thin: if available covered‑call position delta < 50 → cap max delta to preserve‑equities ceiling and set max EDM‑Up delta 50.
  • PM over‑coverage guard: when active short calls exceed stock coverage, cap max delta ~20.

EDM‑Up gain cap

  • Per‑candidate max EDM‑Up “gain” from underlying EDM‑Up and configured floors.
  • Tighter for uncovered calls; tighter when long puts exist.

Concurrency and strike floors

  • Max short calls per expiration scales with long delta: 1 by default; 2 when effective net‑delta > 400; 3 when > 700; 4 when > 1200.
  • Expirations already at the cap are removed from consideration.
  • Strike floor: never sell below the lowest strike closed/filled earlier today (cached briefly to reduce load).

Prefilters and low‑vol grace

  • Prefilters: DTE window; valid/standard chains; min credit; delta band (e.g., remove deltas below 2 and above the current cap); max bid/ask; min mark‑change (dynamic; can be bypassed in “viable‑only” scans); strike floors; max EDM‑Up delta/gain.
  • Peer‑average expected return tracked across candidates.
  • Grace when IV < 5DMA or peer average < 3%: scale penalties by 50% and floor viability at 0.04.

Pricing pipelines (opening)

Short Chain Open Pricing

  • Validate expected‑move inputs; block non‑standard chains.
  • Set directional EM and reference prices; pick effective mark.
  • Compute max loss; open/close anchors; max profit and profit‑to‑risk (plRatioMax).
  • Map strike distances to probability and breakeven (EMdir × 2 sigma proxy).
  • Net win probability and expected overall profit; seed viability from volatility; adjust for theta and micro‑quality (bid/ask%, mark‑last%).

Covered Call Chain Open Pricing

  • Volatility relative‑strength bonus (secondary) to emphasize strong IV setups.
  • Set max loss to zero; compute strike distance and long‑share carry.
  • openPrice = mark × open‑spread; apply recent‑fill discount and tiny randomness last.
  • Compute ROI and returnExpected; penalize APR headwind and EDM‑Up risk; enforce raw‑credit minimums and “minimum remaining” guards; apply an EDM‑Up delta comparator; softly prefer higher net EDM‑Up gain; overweight returnExpected.

Ordering pipelines (opening)

Base instrument

  • Cached decision short‑circuit when previously evaluated.
  • Trade present; price basis primed; no conflict with active closes; buying power known; honors do‑not‑open.
  • Mark base‑instrument open‑ready on pass.

Base option

  • Cached decision short‑circuit when previously evaluated.
  • Option healthy; strike present; price basis sane; side/position coherence; no conflicting roll/close.
  • Mark base‑option open‑ready on pass.

Covered call

  • Cached CC decision short‑circuit; new‑user daily cap; same‑underlying daily guard; buying power present; prior‑fill heuristic.
  • Risk gates: underlying delta < 70; EDM‑Up gain must be positive; net‑delta cap (≤ one net contract change); minimum EDM‑Up delta.
  • Open‑pricing risk gates: block when net EDM‑Up gain (post open‑price) is below minimum; EPR‑Up should not reduce the underlying except staged exceptions; stash delta context for reporting.
  • Capacity and availability: PM vs non‑PM thresholds (e.g., available covered‑call delta < 40 blocks opens when not rolling); per‑underlying caps; resource/position coherence; active‑order duplication and price‑basis collision guards; seasonality/RSI over‑hedge guards.
  • Account‑level caps and approvals: enforce global EPR‑Up limits; PM approval‑specific nuance for short‑call‑only approvals and strictness; retirement accounts may require rolling context and can cancel conflicting stock closes near next‑hundred coverage.
  • Mark covered‑call open‑ready on pass.

Formulas (simplified)

  • Expected move: EM = spot × (IV/100) × sqrt(DTE/365); fallback 0.75 × spot if IV invalid.
  • Directional EM: price‑weighted nearest OTM and neighbors (60/30/10), then ×1.25; use as sigma proxy ×2 for z‑scores.
  • Probability mapping: if EMdir is unavailable, use a small default probability (e.g., 0.01) to avoid overconfidence.
  • BSM pricing (with dividend yield): standard d1/d2; greeks per BSM.
  • IV from price: search σ 0.01→3.00; bracket and interpolate; clamp tiny values.

Covered‑call open‑pricing values (tracked)

  • Inputs/state: isRolling; net short‑call qty; available coverage (qty/delta); active opening order qty; StockDelta; quoteDelta; netEdmUpGain.
  • Carry/strike: strike − spot; longSharesCost; daily carry; daily dividend; carryCostGross/Net (DTE aware).
  • Pricing/returns: openPrice; ROI; returnExpected; EMdir; expectedMoveProbability; expected/current short‑strike diffs.
  • Quality/risk: bidAskSpreadPercent; markLastSpreadPercent; volatility vs 5DMA; edmUpDelta/gain; low‑vol grace eligibility; peerAverageReturnExpected.
  • Scoring: viabilityScore after returns, IV, delta, EDM‑Up, APR headwind, and grace adjustments.

Policy and caching notes

  • Per‑expiration directional expected move is cached briefly; TTL scales with VIX (shorter when VIX is moving).
  • A centralized hedging policy can dynamically adjust minimum DTE, maximum delta, and maximum bid/ask spread.

Behavior by settings and account type

  • Preserve‑equities: tighter deltas (≤22), higher min DTE, lower credit floor; stronger EDM‑Up/APR penalties; low‑vol grace helps preserve viable choices.
  • Disabled preserve‑equities: allows higher deltas/shorter DTE to hedge/exit; still bounded by EDM‑Up, delta comparators, and APR headwind.
  • Retirement accounts: conservative leaning; may require rolling context; can cancel conflicting stock closes near next‑hundred coverage.
  • Portfolio margin: step‑up expirations with large long delta; over‑coverage delta clamps; availability thresholds (e.g., coverage delta < 40 blocks opens); same quality/price checks.

Preserve Equities: Mode Comparison

How selection and pricing lean when Preserve Equities is enabled versus disabled.

Dimension Preserve Equities — ON Preserve Equities — OFF
Objective Maintain long‑share exposure; conservative income Maximize hedging/exit flexibility and income cadence
Max short‑call delta Tighter caps (e.g., ≤ 22; also caps EDM‑Up delta) Allows higher deltas (≈ 28–34 by regime/guards)
Minimum DTE Higher minimum (e.g., ≥ 4 days) Shorter DTE allowed when viable
Minimum credit Higher floor; conservative Lower floor for low‑priced underlyings
EDM‑Up / APR penalty weight Stronger (heavier risk penalties) Lighter (still bounded by risk gates)
Same‑strike calendar (near expiry) Near‑expiry allowance Near‑expiry allowance + added OTM guard
Rolling posture Favor keeping shares; prefers longer DTE, conservative strikes More flexible; nearer strikes/shorter DTE acceptable
Scalping rolls Disabled Enabled (opportunistic quick roll attempts)
Assignment posture Reduce assignment probability when practical Willing to accept assignment when optimal
Typical use Long‑term holdings; preserve equity exposure Active hedging/exit; faster recovery cadence

What are scalping rolls?

Scalping rolls are short‑horizon, opportunistic roll attempts that seek small net credits or risk reduction by adjusting the short call quickly (e.g., up/out) when market conditions allow. They are subject to the same safety/quality gates and position‑integrity checks as standard rolls. To prioritize keeping long‑share exposure, Toll Booth only stages scalping rolling orders when Preserve Equities is disabled.

Practical examples (conceptual)

  • Preserve‑equities, quiet market: further OTM, modest credit, longer DTE; low‑vol grace prevents over‑penalizing low IV.
  • Preserve‑equities disabled, choppy with high EPR Up: nearer strikes/higher deltas to hedge/exit; EDM‑Up penalties dampen aggressive picks.
  • PM, large long delta: more expirations allowed; sharp delta clamps if over‑covered; block when coverage is thin.
  • Retirement near new coverage lot: cancel conflicting stock close; open conservative CC anchored to carry and low assignment risk.

Glossary

Key terms: EDM/EMdir, EPR (Up/Down, eprPercent), EM, IV, APR headwind, ROI, PM, RSI, mark, bid‑ask spread%, mark‑last spread%, coverage, net delta, strike floor.

Process flow diagram

Selection → pricing → order gates for covered‑call opening.

%%{init: {"theme":"base","flowchart":{"curve":"basis"},"themeVariables":{
  "fontFamily":"Inter, Nunito, system-ui",
  "primaryTextColor":"#e5e7eb",
  "primaryColor":"#111827",
  "primaryBorderColor":"#94a3b8",
  "lineColor":"#94a3b8",
  "tertiaryColor":"#0e1729",
  "tertiaryBorderColor":"#22d3ee",
  "edgeLabelBackground":"#00000000"
}}}%%
flowchart TB
  A([Start]) --> C1[Generate candidate chains]
  C1 --> PF[Prefilters: credit, delta, spread, floors, EDM/EPR caps]
  PF -->|None| OUT[Stop: no viable chains]
  PF --> PRICE1[Short-Chain Open Pricing]
  PRICE1 --> PRICE2[Covered-Call Pricing]
  PRICE2 --> SCORE[Compute viabilityScore]
  SCORE -->|No chain over floor| OUT
  SCORE --> PICK[Pick highest-score candidate]
  PICK --> BI[Gate 1: Base instrument]
  BI -->|Fail| OUT
  BI --> BO[Gate 2: Base option]
  BO -->|Fail| OUT
  BO --> CC[Gate 3: Covered call]
  CC -->|Fail| OUT
  CC --> BUILD[Build 1-leg STO order]
  BUILD --> SUBMIT[Submit order]
  SUBMIT --> DONE([Outcome: order placed])

  classDef step fill:#111827,stroke:#94a3b8,color:#e5e7eb,stroke-width:1px;
  classDef gate fill:#0e1729,stroke:#22d3ee,color:#e5e7eb,stroke-width:1px;
  classDef out fill:transparent,stroke:#94a3b8,color:#cbd5e1,stroke-dasharray:5 3;
  class A,C1,PF,PRICE1,PRICE2,SCORE,PICK,BUILD,SUBMIT,DONE step;
  class BI,BO,CC gate;
  class OUT out;