StrategiesOptions Overlay

Options Overlay

Concentrated-position management with covered calls, protective puts, and collars.

Use case
Concentrated holding
Structures
Call · Put · Collar
Sale on stock
None
Backtest · 20152024Illustrative
Ann. return (after-tax)
10.4%
Realised on stock
0%
Premium yield
+3.5%
Position alone

The strategy holds the same concentrated stock as the benchmark line, plus a rolling covered-call program that collects premium. Soft cap on the largest single-day rallies; otherwise the two tracks differ by accumulated premium income.

Numbers are plausible placeholders, not a real backtest. Replace by running taxview-runner over the same window. Daily rebalance, CLARABEL solver. Marginal-rate assumptions: short-term 37%, long-term 20%, NIIT 3.8%.

Illustrative
2024-12-31(end of window)
Position + premium$49.55M
Position alone$40.35M
$0.00M$10.00M$20.00M$30.00M$40.00M$50.00M20152017201920212023
Static view. Resize wider for hover details.
Ann. return
10.4%
Benchmark return
9.2%
Alpha (after-tax)
120 bps
Tracking error
380 bps
Avg turnover
4.5%
Lifetime harvested
0.0% NAV
The idea

A concentrated single stock pays for itself: sell calls for premium, buy puts for a floor, or do both as a collar. Cash flows in or out without realising the embedded gain in the position.

The objective
Subject to
P_T ≥ P_floorTerminal payoff floor not breached
K ≥ K_QCCStrike inside the §1092 qualified-covered-call safe harbour

Maximize expected premium income net of payoff variance. The variance term keeps the structure from chasing income with payoffs that are too volatile to justify the premium collected.

We solve this as a portfolio-optimization problem each day, using CVXPY with the CLARABEL conic solver. The solver searches the feasible set defined by the constraints and returns the weight vector that minimises (or maximises) the objective — typically in tens of milliseconds for a 500-name universe.

What goes in, what comes out
Inputs
  • Concentrated stock

    The single-stock position the overlay sits on top of.

  • Option chain

    Live strikes, expiries, and implied volatilities for that ticker.

  • Risk floor + income target

    Maximum downside the holder will tolerate and the premium yield wanted.

Outputs
  • Covered calls

    Calls written for income, qualified-covered-call rules respected.

  • Protective puts

    Puts bought for downside protection.

  • Collars

    Combined call + put structures, often near-zero-cost.

Customization

Exclusion list

Your own list of tickers the optimizer is forbidden to buy. Used for restricted lists (insider stock, employer stock, blackout names), personal preferences, or any name you want the strategy to leave alone.

How the optimizer applies it

The exclusion list is a per-account vector E_user that the constraint builder injects before each solve. Same hard zero-weight constraint as the curated screens, but populated by the client rather than by a screen definition. Edits propagate to the next rebalance — the optimizer will sell out of any newly-listed name on its next solve.

The trade-off

A short exclusion list is essentially free. A long or sector-clustered list narrows the optimizer's feasible set, raises tracking error, and can leave the portfolio leaning on a smaller pool of harvest candidates. The console flags when a list crosses the TE budget threshold.

Where you see it

The console's settings panel lets you add/remove names. Each excluded ticker shows the date it was added and the resulting drift in TE.

 Variable Prepaid ForwardOptions Overlay
Cash mechanicLump sum at tradePeriodic premium
Tax event on stockDeferred to settlementNone
Tenor1 – 10 years30 – 90 days, rolling
UpsideCapped by collarCapped by call strike