Explore more topics
NexusTrade guide

Choose option strikes, delta and expiration

Define a repeatable strike and expiration selector, interpret delta and verify which contracts a historical test actually selected.

As of 2026-10-10

Jump to a section

TL;DR

Define strike and expiration selectors before testing, then verify the contracts actually chosen in the resolution audit and fills. The worked SPY call targets the nearest strike and expiration between 30 and 45 days; its $1,000 budget allowed one contract, not two. Percentage strike distance is not a delta target, and delta is changing price sensitivity rather than a fixed probability. Missing contracts or Greeks require investigation. Save changed selectors as separate candidates instead of choosing convenient contracts after seeing results.

Inspect the contract the selector actually chose

Animation of the six checks NexusTrade's engine ran to choose one SPY call on Jan 2, 2024: the condition tree (SPY $472.16 above its 50-day SMA of $461.57, and no open SPY call) turns true; expirations 30 to 45 days out qualify and the nearest, Feb 2 (31 days), is chosen; the strike closest to the $472.16 target, $472, is chosen; expected volume of 11 contracts a day allows up to 2; a $1,000 budget at the $8.71 ask buys 1 contract; the fill is $8.43 + 0.8015 x $0.28 = $8.6544.
How the engine chose this contract, step by step, from the recorded selection audit.
Show the table · 1 row, 6 columns

Scroll sideways to compare all columns. Select a heading to sort.

SPY240202C00472000$472.00$8.15$8.71$8.4311; trailingMedian5

The candidate snapshot shows the bid and ask used in the sizing decision. Every selected leg had the February 2 expiration, 31 DTE at entry and multiplier 100.

The liquidity model kept the target. Allocation allowed 1 unit; the volume limit allowed 2. The requested and sent quantities were both 1. The opening premium also includes modeled liquidity impact beyond the persisted half-spread fraction.

Follow that contract through its close

  1. 2024-01-02 14:31:00

    Contract

    SPY240202C00472000

    Action

    Buy to open

    Contracts

    1

    Premium per share

    $8.6544

    Fee

    $0.65

  2. 2024-01-19 14:31:00

    Contract

    SPY240202C00472000

    Action

    Sell to close

    Contracts

    1

    Premium per share

    $8.6825

    Fee

    $0.65

Recorded rows in source order; spacing does not represent elapsed time.

Show the table · 2 rows, 6 columns

Scroll sideways to compare all columns. Select a heading to sort.

2024-01-02 14:31:00SPY240202C00472000Buy to open1$8.6544$0.65
2024-01-19 14:31:00SPY240202C00472000Sell to close1$8.6825$0.65

A separate detailed run completed on 2026-10-10 with the same saved candidate, fixed dates and fees. It reproduced the lightweight result retained in the linked source record. The captured opening condition had SPY at $472.16, SMA50 at $461.57 and matching-position count 0. Both entry checks were true.

The first position opened on January 2 and closed on January 19, 2024, at 14 DTE. The time-exit close evaluation emitted 1 order. These are simulated Filled orders, not broker executions. The first position's P&L was $1.51 after recorded commissions, calculated from all its opening and closing premiums and quantities.

Compare the selected-candidate bid, ask and mid with the Filled-order premium. Follow the contract symbols and timestamps to connect selection, sizing and execution.

Calculate what this recorded trade earned

The displayed premiums changed from $8.6544 to $8.6825. For 1 contract with multiplier 100, ($8.6825 − $8.6544) × 100 − $0.65 − $0.65 = $1.51 after the two recorded commissions. This calculation uses the displayed rounded premiums. The contract closed before expiration, so an expiration-payoff formula would answer a different question.

Its opening checks were SPY above SMA50 and zero matching option positions. The complete source preserves those indicator values, selected contract, quote, fill and close. Compare the first trade with the full-year curve before attributing the whole return to this one position.

The saved opening premium budget is $1,000. At the displayed $8.71 ask and multiplier 100, one call requires $871 premium; two require $1,742. Follow the recorded one-contract action, then inspect the additional commission and cash. Keep expiration, strike and ratio fixed while testing another budget.

Define a selector instead of picking a contract afterward

Animation: a SPY bull call spread built in NexusTrade. The AI chat prompt becomes a saved strategy with three rules: open when SPY is above its 50-day SMA and no spread is open, close when SPY is at or below its 50-day SMA, close with 14 days left. The engine picks the Feb 2, 2024 expiration for both legs, reads the Jan 2 14:30 UTC call chain and takes the $472 call to buy and the $495 call to sell, caps the spread at 2 by the thinner leg's volume, sizes it at $805 to 1 spread, fills the legs at $8.6544 and $0.6643 for a $799.01 debit, and closes both legs on Jan 19 for $842.50.
How NexusTrade's engine built one SPY bull call spread, from the AI chat to the close.
Animation of a recorded SPY bull call spread: buy the $472 call at $8.6544 (target $472.16) and sell the $495 call at $0.6643 (target $495.77, SPY x 1.05) for a $799.01 debit; the payoff at expiration ranges from a $799.01 max loss to a $1,500.99 max profit with a $479.99 breakeven; the spread's value at each close until it was closed for $842.50 on Jan 19, 2024, a $40.89 gain after $2.60 of fees.
The +5% short-call selector in action: a bull call spread from leg selection to payoff and closing value.
Show the table · 5 rows, 3 columns

Scroll sideways to compare all columns. Select a heading to sort.

Strike distance0% long call; +5% short call for the verticalWhat target strike was computed from the underlying price?
Available strikesThe chain at that decisionWhich actual strike was selected and how far was it from target?
DTE range30 through 45Were available expirations inside the requested range?
PreferenceNearest qualifying expirationDid all spread legs resolve to the same expiration?
Ratio1 per legDid the resulting quantities preserve the intended spread?

A historical strategy needs a rule that can resolve contracts on each signal. The long call and bull call spread examples request a call at zero percent distance from the underlying and the nearest expiration between 30 and 45 DTE. Positive strike distance means OTM for both option types: above the underlying for calls and below it for puts. Negative distance means ITM. The bull call spread adds a short call at 5% above the underlying, with the same expiry. These are percentage-distance selectors, not delta targets.

Read delta as an estimate of sensitivity

Delta estimates how much an option's value changes for a small move in its underlying, with other inputs held constant. It changes with price, volatility and remaining time. It is not a fixed probability or a promise that an option will finish in the money. Missing historical Greeks should remain missing rather than being treated as verified delta.

Option value also depends on the strike, time, volatility, rates and dividends. A rise in the underlying does not by itself establish a profitable long call. A shorter expiry changes the time available for the move and the effect of time decay.

Check the contract resolution audit

Inspect targetStrike, availableStrikes, selectedStrike, availableExpirations, selectedExpiration and selectedDte in the leg audit. Then compare the selected OCC symbol with the Filled order. A selector can resolve successfully while the resulting order fails eligibility or sizing checks.

For the first published opening on January 2, 2024, the selected long call was SPY240202C00472000, strike $472 and expiry February 2. The vertical also selected SPY240202C00495000, strike $495, for its short leg. The selected contracts, not a hand-picked substitute, belong in the backtest evidence.

Handle an empty result explicitly

If no contract qualifies, inspect the chain, DTE window, shared expiration, quote timing and buying power. Avoid widening selectors only because the original result was disappointing. Save a changed selector as a new candidate and explain the change.

Continue exploring

Discussion

Sign in or create a free account to join the discussion.

No comments yet.

Aurora · AI research assistant

Try this in Aurora

Edit the request, then open it in Aurora. You choose when to send it.