Earnings Engine

15 settings on this page.

Earnings Entry Trigger IV Rank

Setting key
earnings_entry_trigger_iv_rank
Default
50

What it does

Minimum IV Rank required before the earnings engine will enter a position. The engine enters once IV Rank inflates above this level: timing follows IV inflation, not a fixed number of days before earnings. This can be a week out or two days depending on the name.

When to change it

Raise above 50 to require richer premium before entering earnings plays. Lower below 50 to enter earlier, but the IV-crush thesis weakens if IV has not yet inflated meaningfully.

Safe range

40 (early, lower premium) to 65 (later, richer premium).

Example

AAPL earnings in 6 days. IV Rank is at 45. Bot waits. The next day IV Rank hits 52. Bot evaluates and enters an iron condor targeting the post-earnings expiration.

Earnings Target DTE Min

Setting key
earnings_target_dte_min
Default
1

What it does

Minimum DTE on the expiration chosen for earnings plays. The expiration must still fall after the earnings date. The old 7-day floor existed because near-dated 4-leg combos ate too much credit on the spread, so a tight expiry could not be built cleanly. That liquidity problem is now solved by the per-symbol naked-strangle opt-in (see /docs/earnings-naked-symbols) instead of by delaying entry, so the floor is back to 1. The 1-21 window is now a sanity bound on where the resulting expiry lands, not the entry-timing control. The setting that actually controls entry timing is /docs/entry-max-days-before-earnings.

When to change it

Leave at 1 in almost all cases. The 1-21 band is now just a sanity bound on the chosen expiry; it no longer governs how early the trade opens. To change how close to the report the engine enters, adjust earnings_entry_max_days_before_earnings (see /docs/entry-max-days-before-earnings), not this floor. Raise the floor above 1 only if you specifically want to forbid the very nearest expiries.

Safe range

1 to 21. 1 is the normal default floor, not a risky edge. There is no longer a 5-14 'safe' sub-range; the per-symbol naked-strangle opt-in, not a raised DTE floor, is what handles tight near-dated liquidity.

Example

Earnings on Wednesday after close. The following Friday (2 DTE) now passes at a 1-21 window, where it used to fail the old 7-day minimum. Entry timing is governed separately by the proximity gate (earnings_entry_max_days_before_earnings).

Earnings Target DTE Max

Setting key
earnings_target_dte_max
Default
21

What it does

Maximum DTE on the post-earnings expiration. A pure sanity ceiling on where the chosen expiry lands: it must fit up to 3 days of pre-report runway plus the 7-day post-report buffer plus a weekly gap, which is why the ceiling is 21. The expiry itself is chosen to sit at least a week past the report so the position has room to be defended afterward; this ceiling just stops it from drifting into mechanical-engine territory.

When to change it

Leave at 21. Tightening it below the pre-report runway plus the week-past-the-report buffer can make every candidate unbuildable.

Safe range

14 (tight, may exclude valid expiries) to 28 (loose).

Example

Earnings on Tuesday after close. The bot picks an expiration at least seven days past the report, out to about three weeks from entry; anything further out is rejected. Entry timing itself is governed by the proximity gate, not this band.

Earnings Entry Max Days Before Earnings

Setting key
earnings_entry_max_days_before_earnings
Default
3

What it does

How close to the earnings report the engine must be before it is allowed to open a trade. Separate from the DTE band above: this controls WHEN you enter (proximity to the event); the DTE band controls WHERE the resulting expiry lands. Both this AND the IV Rank threshold must pass before entry.

When to change it

Lower to 1 or 2 to enter only in the final day or two before the report, tighter to the event and closer to peak IV. Raise it to begin entering earlier, when IV crosses the threshold further out. This is the dial that governs entry timing now; the DTE band no longer does.

Safe range

1 (enter only right before the report) to about 5 (start looking up to a week out). Higher values reintroduce the early-entry behavior the old DTE floor used to cause.

Example

Earnings Thursday after close. With this set to 3, the engine will not consider the trade until Monday at the earliest, even if IV Rank crossed the entry threshold the week before.

Earnings Short Strike Delta

Setting key
earnings_defined_risk_short_delta
Default
0.16

What it does

Short strike delta for the defined-risk earnings structure (iron condor or credit spread). 0.16 delta sits at approximately one standard deviation OTM. This delta is a floor on distance, not the whole story: the earnings engine also anchors short strikes to the market's implied move for the report (see /docs/earnings-implied-move-multiple), and the FURTHER of the delta strike and the implied-move anchor wins. The naked variant uses a separate naked_short_delta, also 0.16, and naked is off by default.

When to change it

Lower toward 0.10 for even wider breakevens at the cost of credit. Raise toward 0.20 for more premium, accepting shorts that sit closer to the expected move; the implied-move anchor still pushes them out when the market prices a big print.

Safe range

0.10 (very wide) to 0.20 (closer, more premium).

Example

NVDA earnings. Stock at $120 with a 16-delta put at $106 and a 16-delta call at $135. If the implied-move anchor asks for strikes further out than those, the anchor wins; otherwise the 16-delta strikes stand.

Earnings Spread Width

Setting key
earnings_spread_width
Default
10

What it does

Dollar width of each wing on the earnings defined-risk structure. Same mechanics as the mechanical engine spread width, and the same 10-point default: on the $100-$500 names that dominate the earnings universe, a 10-wide wing gives the long strike enough distance to matter on a fast move. Pairs with the credit floor (see /docs/earnings-credit-floor-fraction), which requires the credit to be a meaningful fraction of this width before a trade is taken.

When to change it

Size down to 5 on lower-priced names where a 10-wide spread is a large fraction of the stock price. Widths above 10 raise the max loss per contract quickly on a binary event.

Safe range

5 (tight, lower-priced names) to 10 (standard).

Example

NVDA at $120. 10-wide wings: short call at $135, long call at $145. Max loss on the call side is $1,000 per contract minus the credit received, and the credit floor requires that credit to be at least a third of the width.

Earnings Implied Move Multiple

Setting key
earnings_implied_move_multiple
Default
1.3

What it does

Anchors earnings short strikes to the move the options market is actually pricing for the report. The engine reads the implied move from the at-the-money straddle and requires each short strike to sit at least this multiple of that move away from the stock price. The short strike is placed at the FURTHER of the delta strike (see /docs/earnings-defined-risk-short-delta) and this anchor, so a name pricing a big print gets shorts pushed proportionally further out. If the chain has no strike far enough away, the engine passes on the trade rather than sit inside the move. Set to 0 to disable the anchor and place strikes by delta alone.

When to change it

Raise to 1.5 for even wider strikes and fewer trades. Lower toward 1.0 to accept strikes at the edge of the implied move, taking more credit in exchange for less room when a report beats its move.

Safe range

1.0 (at the implied move) to 1.5 (well beyond it). 1.3 is the balanced default.

Example

CRWD at $210 with the market pricing a $16 implied move into the report. The anchor requires shorts at least 1.3 x 16 = $21 away, so the call short lands at $231 or beyond and the put short at $189 or below, whichever of those and the 16-delta strikes is further out.

Earnings Credit Floor Fraction

Setting key
earnings_credit_floor_fraction
Default
0.33

What it does

Minimum credit an earnings structure must collect, expressed as a fraction of the wing width. At the 0.33 default a 10-wide condor must bring in at least $3.33 of credit or the trade is skipped. This is the classic one-third-of-width condor rule: with strikes anchored beyond the implied move, many names simply will not pay enough, and skipping those is the point — the engine only trades when the market is paying a fair price for the risk. Sits beside the score floor, not instead of it.

When to change it

Raise toward 0.40 to demand richer premium and take fewer trades. Lower toward 0.25 to accept thinner credits; below that the payoff on a defined-risk condor stops justifying the binary risk.

Safe range

0.25 (permissive) to 0.40 (strict).

Example

A 10-wide earnings condor prices at $2.80 of credit with the shorts beyond the implied move. 2.80 is below the $3.33 floor, so the engine skips the name for this report cycle.

Earnings Max Beta

Setting key
earnings_max_beta
Default
1.3

What it does

Beta ceiling for earnings candidates. A stock whose beta is above this value is excluded from earnings entries: high-beta names are the ones most likely to blow through their implied move on a report, which is exactly the risk a premium-selling earnings trade cannot afford. A name with no published beta passes (fail-open, logged), matching the liquidity gate's pass-on-missing rule. Applies to the earnings lane only; the other engines have their own selection rules.

When to change it

Lower toward 1.0 to restrict earnings trades to the calmest names. Raise it only if the screen combined with the implied-move cap is leaving the earnings engine with no candidates at all.

Safe range

1.0 (calm names only) to 1.5 (permissive).

Example

Two names report tonight: a beta-0.9 staples company and a beta-2.8 semiconductor. The staples name is eligible; the semiconductor is screened out regardless of how rich its premium looks.

Earnings Max Implied Move Percent

Setting key
earnings_max_implied_move_pct
Default
0.08

What it does

Skips any earnings candidate whose implied move exceeds this fraction of the stock price. A name pricing a move above 8% of spot is a genuine binary — software, cyber, and semiconductor names routinely price 9-17% into a report — and no strike placement makes selling premium into that attractive. Checked at chain time, when the at-the-money straddle is available to measure the move. The scanner also ranks the remaining earnings candidates calmest-first (smallest implied-move percent first), so the quietest setups get the available slots.

When to change it

Lower toward 0.05 to trade only the calmest prints. Raise it only deliberately: every point above 8% admits names whose reports are priced as major binary events.

Safe range

0.05 (strict) to 0.10 (permissive).

Example

A retailer at $80 prices a $4 implied move (5%) and a cyber name at $200 prices a $22 move (11%). The retailer is eligible and ranks ahead of louder names; the cyber name is skipped outright.

Earnings Post-Report Management

Setting key
earnings_post_report_manage_as_mechanical
Default
ON

What it does

Governs how an earnings position is handled once the report has passed. When ON, the position hands off to the same management rule set as a mechanical position: close at the 50% profit target (a winner sitting at target the morning after closes right away), defend a tested side with delta defense and the roll ladder, and let assignment protection have the last word. The engine supports this by choosing an expiry at least a week past the report, so there is time left to defend into. When OFF, every earnings position simply closes the morning after the report regardless of where it stands.

When to change it

Leave ON. Turn OFF only if you want the strict close-the-morning-after behavior, accepting that a tested position is closed at whatever the morning market offers instead of being defended.

Safe range

ON (managed hand-off) or OFF (unconditional morning-after close).

Example

An earnings condor collects the IV crush overnight and sits at 55% of max profit at the open: it closes at target. A different position has its call side tested by the move: instead of closing at the worst print of the morning, the tested side is managed by the roll ladder and delta defense like any mechanical position.

Earnings Naked Symbols

Setting key
earnings_naked_symbols
Default
{} (empty)

What it does

Per-symbol opt-in for naked (undefined-risk) variants in the earnings engine. This is a dictionary mapping symbol to boolean, for example {'NVDA': true}. Any symbol not listed, or set to false, uses defined-risk structures only (iron condors, credit spreads). A symbol set to true becomes eligible for naked puts at 0.16 delta (approximately one standard deviation OTM). The default is an empty dict, so every symbol is off unless explicitly flagged. IRA and cash accounts cannot use naked structures regardless of this setting.

When to change it

Leave empty unless you have a margin account and explicitly want undefined-risk earnings plays on specific names. Add only the individual symbols you have chosen to allow, rather than turning naked on globally. This per-symbol dict replaces the old single earnings_naked_allowed on/off flag.

Safe range

An empty dict (all defined-risk) up to a small set of explicitly chosen, liquid names. Never enable naked on a symbol in an IRA or cash account.

Example

earnings_naked_symbols = {} : every earnings play is an iron condor or credit spread with a defined maximum loss. earnings_naked_symbols = {'NVDA': true} : NVDA becomes eligible for a single short put at 0.16 delta on setups without a strong directional lean, while every other symbol stays defined-risk.

Earnings Engine Enabled

Setting key
earnings_enabled
Default
ON

What it does

Master on/off toggle for the earnings IV-crush engine. When OFF, ACondor does not enter any earnings plays. Existing earnings positions continue to be managed. The earnings engine enters defined-risk structures before a company's earnings report, with short strikes anchored beyond the market's implied move, holds through the announcement to capture the volatility collapse, and then manages the position under the standard rule set: winners close at the profit target the morning after, and a tested side is defended like any other position.

When to change it

Turn OFF during earnings seasons when you prefer to avoid binary event risk across many names simultaneously. Turn OFF if you are running a smaller account and want to focus on the mechanical engine only.

Safe range

ON or OFF.

Example

Q4 earnings season with many large-cap reports in the same week. You turn earnings OFF to avoid having multiple binary-risk positions open simultaneously. Mechanical and contraction engines continue running.

Earnings Engine: Max Alloc %

Setting key
engine_max_alloc_pct_earnings
Default
30%

What it does

Caps the fraction of your total allocation budget the earnings engine may use. Because earnings trades are binary-event positions, keeping this ceiling tight limits concentrated exposure to a single reporting cycle. This ceiling is independent of the other engines; they do not need to sum to 100%.

When to change it

Lower it during heavy earnings seasons when many names report in the same week and you want to cap aggregate binary-event exposure. Raise it only if you are deliberately running earnings as a larger part of the book.

Safe range

15% (conservative, binary risk kept small) to 40% (above this, a single bad earnings week can hurt).

Example

Set to 30 → even if five earnings candidates qualify in the same cycle, the engine stops entering once it has deployed 30% of the cap.

Earnings Engine: Max Positions

Setting key
engine_max_positions_earnings
Default
not set

What it does

A hard ceiling on the number of simultaneously open earnings positions. Because each earnings trade is a binary-event bet, bounding the count directly limits how many concentrated event risks the book carries at once. Leave blank for no engine-level count cap: only the global max concurrent positions applies.

When to change it

Set this during weeks with many overlapping earnings reports if you want a hard count limit on binary-event positions, independent of the allocation percentage cap.

Safe range

Leave blank for no cap, or set 2-5 to bound simultaneous binary-event exposure.

Example

Set to 3 → the bot holds at most 3 earnings positions at any one time; additional qualifying earnings candidates are skipped until one closes.

Financial Information Disclaimer

This site provides general information about ACondor, a software tool for automating options trading strategies. Nothing on this site is investment, tax, or financial advice. Options trading involves substantial risk of loss. Past behavior of any strategy does not guarantee future results. Consult a licensed financial professional before trading options. ACondor may earn a commission from affiliate links at no extra cost to you.