Roll Manager
The Roll Manager scans all your active option positions and surfaces those that look ripe for a roll (close the existing option, open a new one).
When does a position appear?
At least one trigger must fire:
| Trigger | Threshold | Signal |
|---|---|---|
| Days to expiry (DTE) | <= 2 days | Urgent |
| Days to expiry (DTE) | <= 7 days | Recommended |
| Days to expiry (DTE) | <= 14 days | Suggested |
| PUT delta | <= -0.50 (ITM) | Recommended |
| CALL delta | >= +0.60 (ITM) | Recommended |
| Take-profit | (premium - mark) / premium >= 70 % | Suggested |
| Strike proximity | abs(spot - strike) / strike < 2 % | Urgent / Recommended |
| Earnings before expiry | 0 <= days to earnings <= DTE | Recommended |
What these triggers are (and are not)
The thresholds above are purely rule-based and deterministic. As soon as one of the values is reached, the position appears here – comparable to a technical alert. The listing is explicitly not a trade recommendation, not personal advice, and not investment advice in the sense of § 2 (8) WpHG. There is no evaluative selection involved.
The concrete triggers that fired per candidate are printed in the „Trigger“ column of the table (for example „DTE 5d (<= 7)“, „Delta -0.55 (PUT ITM)“, „Take-Profit 72%“, „Strike proximity 1.4%“, „Earnings in 3d (vor Verfall)“). An info button next to the column header and in the analysis dialog repeats the definition directly at the field. You decide yourself whether to plan a roll and still submit every trade manually to IBKR.
Strike & expiry proposal (multi-expiry table)
The detail dialog evaluates four target DTEs in parallel: 14, 21, 35, 49 days. Per target DTE:
- First real expiry from the option chain with remaining days >= target DTE.
- The chain is narrowed down by global filters (delta band 0.10-0.45,
open interest, volume, ITM exclusion).
- Min-distance filter (roll safety): new strike must be further from spot than
the old strike by at least ATR52 x multiplier.
- Remaining strikes are scored by the metric evaluation (premium per day,
annualization, risk flags). Top-1 per target DTE shows up in the table.
The table marks separately:
*= highest metric (highest computed premium quality)$= largest net credit (new premium minus buyback)
The default pre-selection is the highest score - freely switchable via "apply".
ATR multiplier (min distance)
- Auto from the current VIX regime:
- VIX < 15 (low) -> 1.2 x ATR (more defensive)
- VIX 15-20 (normal) -> 1.0 x ATR
- VIX 20-30 (elevated) -> 0.8 x ATR
- VIX > 30 (extreme) -> 0.6 x ATR (tighter strike, higher premium)
- Manual override in the dialog (0.3 - 3.0). After entering a value, hit
"Recompute" - the table is rebuilt with the override. Stricter values often produce no hits in short DTEs.
- The min distance in USD = ATR52 x effective multiplier is shown in the dialog.
If ATR52 is missing (e.g. brand-new symbol), the min-distance filter is skipped.
Create a proposal
- The "Analyze" action opens the detail dialog with "Old vs. New".
- "Create proposal" writes a new proposal with strategy
roll_put/
roll_call (status: Draft). The buy-to-close leg for the old option has to be executed manually for now (a combo order is planned for a later release).
- The limit is free - empty/0 just stores the draft, the final limit
can be set in the proposal dialog afterwards.
Important
- Positions are always offered whole - no partial rolls.
- Nothing closes or sends automatically in the background.
- VIX is pulled live from yfinance (
^VIX), cache: 10 minutes. - ATR52 comes from the daily market-data refresh
(symbol_market_metrics).
Writing broker access
The Roll Manager itself never writes to the broker – it only surfaces candidates and proposals. The full scope of every writing IBKR/Lynx call (auto-cancel, user cancel, replace, send) is documented under Order lifetime → Full scope of our writing broker access.