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

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.43 | 11; trailingMedian5 |
No matching rows. Clear the filter to see all records.
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
2024-01-02 14:31:00
ContractSPY240202C00472000
ActionBuy to open
Contracts1
Premium per share$8.6544
Fee$0.65
2024-01-19 14:31:00
ContractSPY240202C00472000
ActionSell to close
Contracts1
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:00 | SPY240202C00472000 | Buy to open | 1 | $8.6544 | $0.65 |
| 2024-01-19 14:31:00 | SPY240202C00472000 | Sell to close | 1 | $8.6825 | $0.65 |
No matching rows. Clear the filter to see all records.
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


Show the table · 5 rows, 3 columns
Scroll sideways to compare all columns. Select a heading to sort.
| Strike distance | 0% long call; +5% short call for the vertical | What target strike was computed from the underlying price? |
| Available strikes | The chain at that decision | Which actual strike was selected and how far was it from target? |
| DTE range | 30 through 45 | Were available expirations inside the requested range? |
| Preference | Nearest qualifying expiration | Did all spread legs resolve to the same expiration? |
| Ratio | 1 per leg | Did the resulting quantities preserve the intended spread? |
No matching rows. Clear the filter to see all records.
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.
No comments yet.