Explore more topics
NexusTrade guide

Observed quotes and synthetic options pricing

Understand observed bid and ask, modeled half-spreads, timing exclusions and missing quotes in a NexusTrade options backtest.

As of 2026-10-10

Jump to a section

TL;DR

Synthetic half-spread counters describe modeled pricing calls, including indicative contract sizing; they do not count synthetic fills or unique trades. The long-call example recorded 36 observed and 72 synthetic calls. Historical execution still requires an observed quote with usable timing. Follow a contract through selection, sizing and its filled order, and inspect missing or untimed observations separately before treating a modeled return as evidence of executable pricing.

Compare the sizing quote with the recorded opening fill

Animation of the six checks NexusTrade's engine ran to choose and price one SPY call on Jan 2, 2024, ending with the fill: mid $8.43 plus 0.8015 times the $0.28 half-spread equals $8.6544, where 0.8015 = 0.5 + the square root of 1 contract over 11 expected daily contracts.
The sizing quote and the simulated fill, with the formula the engine used.
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.

Read the pricing counters of a completed options test

Show the table · 15 rows, 2 columns

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

StatusCOMPLETE
Pricing contract version8
Requested period2024-01-01 through 2024-12-31
Modeled return31.16%
Candidate maximum drawdown13.27%
Full-capital SPY buy and hold25.30%
Recorded fees$22.10; $0.65 per option contract
Option slippage contract0.5 of half-spread
Observed / synthetic half-spread calls36 / 72
Unknown-timing quote accesses5542
Rejected fill groups / marks0 / 0
Closed trades17
First held-option snapshot2024-01-02T21:00:00.000Z
Missing-current-quote checks0
First recorded option holdingsSPY240202C00472000: quantity +1, call strike $472, expiry 2024-02-02

This saved long call completed a January 1 through December 31, 2024 backtest with $10,000 starting capital and interval Day. The result includes the full historical curve and the captured trade walkthrough near the top.

The SPY comparison invests the full starting balance, reinvests dividends and applies no strategy commission. This candidate uses a $1,000 option premium budget per opening and the fees shown here. Explore cash and position values to see how each deploys capital.

Use the pricing counters to explore observed and synthetic half-spread calls, including contract selection and sizing. Follow the detailed events below to connect entry conditions, selected contracts, quantities and fills.

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.

Three pricing states to distinguish

Synthetic pricing here means a modeled spread. It is unrelated to a synthetic options position such as a stock-equivalent combination of calls and puts. The current historical execution gate requires an observed quote with usable timing; a synthetic resolver-sizing call does not mean the engine accepted a synthetic fill.

Show the table · 3 rows, 3 columns

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

Observed quoteFinite bid and ask, bid > 0 and ask >= bidAn observed book still needs usable timing for historical execution.
Synthetic half-spreadA modeled width used when an indicative pricing call lacks a usable two-sided quoteA cost assumption, not a bid or ask observed in the market.
Missing or untimed observationPricing unavailable, unknown or ineligible at the decision timeInvestigate exclusions and rejected fills or marks; do not assume a frictionless price.

How the modeled width is calculated

When a half-spread is synthesized, the engine uses the larger of $0.025 per underlying share or price times a bucket percentage. The bucket depends on absolute delta and DTE. The current table below is an implementation snapshot, not market quotes and not a promise about future costs. No-delta inputs use their own row. Observed calls use (ask minus bid) divided by two.

Show the table · 5 rows, 5 columns

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

At least 0.7010.9%6.1%4.3%5.5%
0.45 to below 0.7016.4%8.4%6.4%5.4%
0.20 to below 0.4525.9%14.2%9.9%5.9%
Above 0 to below 0.2036.2%23.7%15.4%11.1%
Missing or zero delta35.7%30.0%19.8%17.1%

Fraction of the indicative price used as a synthetic half-spread in the current engine.

Timing is part of eligibility

Pricing contract version 8 requires known availability, an observation timestamp no later than the decision and pricing availability in the decision's minute bucket. Historical fills and fresh marks also require the observed bid and ask. Unknown timing and missing-current-quote counters track eligibility checks. They are not counts of mispriced accepted trades.

Read the counters without changing their meaning

The long-call example recorded 36 observed and 72 synthetic half-spread calls: 66.67% synthetic calls. The bull call spread recorded 78 observed and 74 synthetic calls: 48.68%. Those denominators count pricing calls, including indicative resolver sizing. They do not count unique trades, fills or contracts. Explore the timing and eligibility counters in the saved result alongside the resolution events.

To inspect an individual fill, follow its contract through selection, sizing and the Filled-order record.

Explore cost assumptions

Use the cost sensitivity calculator to vary a hypothetical half-spread and estimate how repeated entries and exits affect P&L. Compare different hypothetical costs, then run a separate backtest when you want to test a new configuration.

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.