VEEMANDocs
DocumentationSupportOpen Dashboard

Getting started

  • Introduction
  • Quick start
  • Core concepts

Importing data

  • Supported formats
  • How import works
  • Splitting a file
  • Troubleshooting

Building your portfolio

  • Workspace & equity
  • Weights & capital
  • Weekday filter
  • Keyframes
  • Currencies & FX
  • Library
  • Strike guard
  • Variants & comparison
  • History (undo/redo)
  • Shared spaces

Analytics

  • Metrics reference
  • Charts (deep-dive)
  • Monthly P&L
  • Correlations
  • Comparison
  • Monte Carlo
  • Equity Control
  • Optimization
  • IBKR reconciliation
  • Veeman AI

Research

  • Research overview
  • Define
  • Composing a backtest
  • How the engine trades
  • Results & archive
  • Parameter study
  • Rewind
  • Tactics
  • Indicators

Reference

  • Keyboard & command palette
  • Exporting data
  • Settings

Technical

  • Architecture
  • API reference
  • Security
  • Your data & privacy
  • Risk disclosure
← PreviousResearch overviewNext →Composing a backtest

Define

Define is the drawing table of Research. You pick a historical day and minute, and you compose an options structure on the chain that was actually quoted at that minute: real strikes, real bid/ask, real implied volatilities. Define then shows what the structure is: its payoff now and at expiration, its risk, its greeks, its probability of profit.

What Define does not do is book a trade. Its numbers are a display model (see The pricing model); the accounting truth, with bid/ask fills, slippage and commissions, belongs to Rewind and the backtest engine. That is why the page ends with two bridges: Rewind (relive this day) and Backtest this structure (validate it over the whole history).

Layout

The page is organised from what to how much:

  1. Header: the structure's name (editable: it is the model's title), its traits (credit or debit, defined or open risk, expirations), Save model, Saved models, and the two bridges.
  2. Session bar (sticky on tablet and desktop; on a phone it scrolls with the page): underlying, day and minute, with the day's index price drawn behind the time slider.
  3. Bench, main column: expirations, the strike ruler with draggable leg chips, the summary figures, the payoff chart and its controls.
  4. Bench, right column: a one-line summary of each leg, the Add leg and Structure buttons, and the position greeks.

Your work survives navigation: the current structure, day, minute and chart settings are kept in the browser and restored when you come back.

Choosing the moment

The session bar fixes the historical context:

Underlying
SPX today. Switching underlying removes legs with fixed strikes of the old one, after confirmation.
Session
The trading day, from a calendar where only the sessions in the dataset can be picked. The ‹ › arrows step to the previous or next session.
Time
The minute, from 09:31 to 15:59 ET (at 09:30 the chain is the opening print, not a market). Drag the slider, or use ← → for one minute and Shift + ← → for fifteen. Behind the slider the day's index path is drawn, with the part after the chosen minute dimmed. On a half-day the market closes at 13:00: later minutes keep the last quotes, there is no IV, and the structure is at expiration (every leg is worth its intrinsic value).
Price
The index at the chosen minute and its change from the open, read from the same path, so they follow the slider without waiting for the chain.

Moving the time re-prices everything on that minute's chain: spot, mids and IVs move as they really did. The chart and ruler are centred on the middle of the day's price range, so changing the time never shifts the views: the spot moves inside a fixed frame.

Building the structure

A structure has up to 8 legs. There are five ways to add them:

  • From the chart: right-click a point on the payoff chart or on the strike ruler (on a phone, press and hold). A small window opens at that point with the leg's strike, which is the quoted strike nearest to the price under the pointer (the arrows step it to the previous or next quoted strike), on the active expiration. It asks three things:
    • Type: Put or Call. It starts on a put below spot and a call above, the out-of-the-money side.
    • Quantity, with a sign: negative sells, positive buys (−2 is two sold contracts). Zero is skipped.
    • Premium: the price per share you enter the leg at. It starts on the chain's mid at this minute and follows the contract while you change type or strike, until you type your own; Bid, Mid and Ask under the field fill it in one click. Press Enter or Add leg to confirm.
  • Add leg on the ruler or in the right column: the right-column button opens the legs editor, where you pick Buy or Sell, Call or Put, and the leg is created on the quoted strike nearest to spot, on the active expiration.
  • Structure: the catalog of templates, one family at a time on tabs (single leg, verticals, volatility, iron, butterflies, condors, ratio, ladders, lizards and combos), with a search across all families. A template is resolved on this minute's real chain: a delta leg takes the quoted strike with the nearest delta, a wing takes the quoted strike nearest to the requested distance from the leg it is attached to. Each button shows the template's own expiry payoff at this minute's mids. Every leg stays editable.
  • Chain tab: the full chain at this minute. Click a bid to sell that contract, an ask to buy it; click again to remove the leg. By default the table shows a window around spot; Show all strikes expands it.
  • Saved models: reopen a structure you saved earlier (see Saving models).

Entry premium

A leg prices at the chain's mid at the current minute unless you give it a premium of your own, from the chart window or by clicking the Mid figure of a leg in the legs editor. A leg with its own premium shows Fill instead of Mid. That premium is its entry price in every number Define shows (credit or debit, the payoff curves, max profit and loss, breakevens, PoP). Volatility and repricing still come from the chain. Leaving the field empty, typing the mid again, or the ↺ next to it puts the leg back on the mid. Moving the leg to another strike, type or expiration drops the premium too, because it belonged to the old contract. The premium is saved with the model. Rewind and Backtest this structure ignore it and use the engine's fills.

Moving and editing legs

On the strike ruler each leg is a chip sitting on its strike: bought legs above the ruler, sold legs below, so the two sides of a spread never overlap (chips that would overlap within a band stack in lanes of fixed height, so nothing below the ruler ever moves). Drag a chip to move the strike: it jumps from one quoted strike to the next, lighting the matching tick. With a chip focused, ← → moves it by one strike. The ruler has a fixed scale (two adjacent quoted strikes are always the same distance apart) and scrolls instead of zooming: drag its background, use a horizontal scroll, or push a chip against the edge. When you open a structure whose legs are all off-screen, the ruler moves onto them once.

Clicking a chip opens the leg popover:

Bid · Ask · Mid
The leg's quote at the current minute, with its IV and delta. Without a quote you're told to try another strike, expiration or time.
Quantity · Strike
Steppers: one unit more or less, the previous or next quoted strike.
Direction
Buy or sell the leg.
Switch to Put / Call
Change the option type at the same strike.
Expiration
Move the leg to another expiration of the day.
Exclude from pricing
Keep the leg in the structure but leave it out of every number (handy to see what one leg contributes).
Remove leg
Delete it.

The popover closes with Esc or a click outside.

The right column only reads the structure: one line per leg (direction and quantity, put or call, strike, expiration, mid). Clicking a line, or Add leg, opens the legs editor, a panel over the right column on desktop (the chart stays visible and updates as you edit) and a centered window on smaller screens. It closes with Esc, the × or a click outside.

In the legs editor each row carries the same controls in compact form (Sell/Buy and Put/Call switches, quantity − / +, strike stepping to the previous or next quoted strike) plus what only Define has: the real strike, the expiration and the leg's quote at the minute (mid, IV, delta). A leg whose IV is estimated shows an IV≈ marker (see below). A counter warns when some legs have no quote at the current time: those legs are left out of the numbers until they are quoted again.

Expirations

The expirations rail lists the expirations the dataset holds for the day on two levels (months above, clickable days below), each with its settlement badge (AM for the monthly third-Friday series, PM for the rest) and a dot when the structure has legs on it. The selected expiration is the active one: new legs are created there and the ruler shows its strikes. The same-day expiration is the default and the only one the backtest engine and Rewind accept today. You can model a structure across several expirations (the header then says Multiple expirations), but the bridges stay disabled until every leg is back on the day's expiration.

Reading the structure

The summary figures

Credit / Debit (mid)
The net entry premium at the chain's mids (or at the premium you entered for a leg), in dollars per structure, with no commissions. The backtest uses the engine's fills instead (bid/ask, slippage, commissions), so its premium is always a little worse.
Max profit / Max loss
The extremes of the payoff at the nearest expiration among the legs. Unlimited when the net call quantity leaves an open tail (net long calls make the profit unlimited, net short calls the loss). The put side is always finite because the index stops at zero.
PoP
Model probability of profit: the probability that the P&L at expiration is above zero, with a lognormal underlying centred on spot (zero rates, no skew) and the at-the-money IV of the nearest expiration (scaled by the IV slider): the same IV the IV reading under the chart shows. It is a study number, not a forecast.
R/R ratio
Max profit divided by max loss, at the nearest expiration. Shown only when both are finite.
Breakeven
The underlying prices where the expiration payoff crosses zero (up to four).
Legs
How many legs are included in pricing.

The payoff chart

The chart draws the P&L of the structure against the underlying price:

  • the valuation curve, at the horizon you choose (see below);
  • the expiration curve, drawn as a reference whenever the horizon is not already the expiration;
  • a faint now curve when the horizon is in the future, so you can see how time changes the shape;
  • vertical lines at the spot (dashed) and at each breakeven.

Hover the chart for a crosshair readout: the price, its distance from spot in %, the P&L at the chosen horizon and at expiration, and the value of every greek drawn on the chart.

Greeks on the chart

The Greeks menu under the chart overlays one or more position greeks (Delta, Gamma, Theta, Vega, Vanna, Charm) on the payoff chart. Each one is drawn as a curve across the underlying price, so you see the greek and the P&L change together as the price moves.

  • Each greek is computed at the same horizon as the valuation curve. When the horizon is now, the curve passes through the figure shown in the Position greeks panel.
  • Each greek has its own scale and no axis of its own. All greeks share one zero, which normally sits on the P&L zero line, so the sign reads directly: above the line is positive, below is negative. If the P&L sits almost entirely on one side and leaves a greek too little room, all greeks move together to a common zero at mid-height, marked by a faint dotted line labelled Greeks 0.
  • The legend shows each greek's value at spot, and a dot marks it on the curve. The crosshair readout gives each greek's value at the price under the pointer.
  • The scales are tied to the structure, not to the current values. They fit the curves when you turn a greek on, change a leg (strike, side, ratio, expiration, include or exclude), change the day or the underlying, and when you press Rescale in the Greeks menu. Moving the IV, the time, the valuation horizon or the range never changes them, while you drag or after you let go. So what you see is the real change: double the IV and the gamma peak halves on screen; move the time towards the close and you watch gamma sharpen and vega fade.
  • A curve that grows past the chart is cut at the edge, and a small caret in the greek's color marks where it leaves. Its true value is still in the legend and in the crosshair readout. Press Rescale to fit the scales to the current values, for example to study the shape near the close.
  • Vega is fitted lower than the other greeks. It has almost the same shape as gamma, and at the same height the two curves would sit on top of each other. With no axis the height of a greek is arbitrary, so this hides nothing: the two curves separate as soon as you move the IV or the time.
  • Vanna and Charm are drawn dashed. Your selection is saved with the studio draft.

Its controls, under the chart:

Unit
P/L $ or % of risk (the P&L as a percentage of the max loss). % of risk is available only when the max loss is finite.
Greeks
The greeks to overlay on the chart (multi-select). See Greeks on the chart.
Valuation
The horizon of the valuation curve: now (the current minute), a later time of the same day, +N days for longer expirations, up to at expiration.
IV
The at-the-money IV of each expiration in the structure, at the current minute. While you drag the time slider it keeps the last loaded minute and updates when you let go, together with the chain. Drag it to scale every IV of the chain (a volatility what-if): the scale shows next to the IV (for example ×1.20) and all numbers, PoP included, follow. ↺ returns to that minute's market.
Range
The width of the chart around spot, in ± %. It starts at ±2% and goes up to ±35%. The chart always widens enough to contain every leg and the whole path of the day; the strike ruler keeps its own scale.

Position greeks

The sum of the included legs' greeks, multiplied by the contract multiplier of the underlying (100 on SPX), at the current spot and minute:

Delta
In underlying units: the dollar P&L for a one-point move of SPX.
Gamma
Change of delta for a one-point move.
Theta $/d
Dollars per calendar day of time decay. It is a rate: in the last hour of a 0DTE it grows far beyond the premium that is left.
Vega $/pt
Dollars per one point of implied volatility.
Vanna
Change of delta for one point of IV.
Charm /d
Change of delta per day.

The pricing model

Every number in Define is computed in the browser with Black-Scholes, using:

  • the chain's own IV for each leg at the current minute (sticky strike: when the price moves along the chart, each strike keeps its IV);
  • the mid as the price of each leg;
  • zero interest rates and dividends, no commissions.

The time to expiry is the real one: calendar time to the settlement, at 16:00 or at 13:00 on half-days (the synthetic sample data uses a year of trading minutes). The data provider computes its IVs as if at least one hour were left, always up to 16:00; Define receives them already converted to the real time (see the dataset conventions). The conversion is exact, so prices don't change, but in the last hour the IV, theta and the valuation curve behave like the market: the premium melts away minute by minute instead of holding until the bell. In the last two or three minutes the real IV can jump around: prices move in $0.05 steps and almost no time value is left.

When the provider has no IV for a leg at that minute (typically a deep in-the-money option), Define uses, in order: the IV of the same-strike twin (the put for a call and vice versa), an IV implied from the leg's mid, or the last IV the leg had earlier in the day. The price is still the real mid. The leg shows IV≈ so you know.

Why Define and Backtest disagree

A credit of $250 in Define may book $235 in a backtest. That is expected: Define prices at the mid, the engine sells at the bid side and buys at the ask side, subtracts slippage and charges commissions. Use Define to understand a structure; use Rewind or the backtest to measure it.

Saving models

Save model stores the structure with its context: underlying, day, minute, IV scaling and every leg (strike, expiration, quantity, direction, included or not, entry premium if you entered one). Saved models lists them; opening one restores the day, the minute and the legs exactly. If a model's day is no longer in the dataset, you're told and nothing changes. Inside a shared space models belong to the space and show the usual version and comment actions.

Bridges

Rewind
Reopens this structure in Rewind: same day, same entry minute, same strikes, one contract, with the engine's fills minute by minute. Available when every included leg is quoted and on the day's expiration.
Backtest this structure
Pre-fills a new backtest recipe and opens it, without running it. Each leg becomes a delta target taken from this minute's chain (rounded to two decimals). A leg whose delta falls outside 1–99 (deep in or out of the money) can't be described by a delta: the composer gives it delta 10 and a notice above the recipe tells you, so pick its criterion by hand. The entry time is this minute (the backtest accepts 09:32–15:59: a structure drawn at 09:31 needs a later time). Exits start empty: you choose the period, target and stop. Capital, contracts and costs start from the same test bench assumptions as any new recipe ($100,000, 1 contract, $2 commissions, per-position slippage of $0.10). Same requirements as Rewind.

Strikes become rules

A backtest can't reuse "the 5,650 put": that strike only exists on this day. That is why the bridge translates each leg into a rule (its delta at this minute) that the engine can apply on every other day. After the transfer, the recipe lets you change a leg's criterion (delta, % OTM, premium, offset) if another rule describes your idea better.