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
← PreviousVeeman AINext →Define

Research overview

Analysis starts from trades you already have. Research is where trades come from: you describe an options strategy, and VEEMAN runs it on real historical option chains, minute by minute, to tell you what it would have done.

Research is built around three modules that form one loop:

Define
Draw a structure on a real historical minute: payoff now and at expiration, position greeks, probability of profit, volatility what-ifs. Read more.
Rewind
Play one market day minute by minute and trade it: it opens on the latest session at 9:30, you mount structures by hand at the minutes you choose and close them when you want (or open a trade from a saved backtest: it plays from the open, with its entry as an event of the day), and watch the payoff profile slide toward expiration next to the index candles, with each structure's P&L and the total, the exact cause of every exit, alerts, adjustments and a journal. Read more.
Backtest
Run the strategy over the dataset's whole history with realistic fills and costs: equity, drawdown, statistics, the trade log, and an honest parameter study. Read more.

The usual path is design → relive → validate: you sketch a structure in Define, open it in Rewind to watch how a single day would have played out, then send it to Backtest to see whether it holds over years. Every arrow also goes backwards: any trade in a backtest's log opens in Rewind, and a saved backtest becomes a strategy in Analysis with one click.

Next to the loop, Indicators holds your own indicators written in Pine Script: it shows exactly what runs in Veeman, previews them on the same data and checks them against your own chart, and a backtest can use them to decide its entries and exits. Read more.

Availability

Research is a section of the program that exists only in builds where it is enabled. When it is, every signed-in user can use it: there is no extra plan or permission. If you don't see Research in the top-bar switcher, your deployment doesn't include it.

What Research is, and what it is not

Research is a simulation and study tool. Like the rest of VEEMAN it never connects to a broker, never places orders and never sends alerts outside the app. Every number is computed on historical data, and every backtest is a statement about the past: what a precise set of rules would have produced on the days in the dataset.

The engine is deliberately conservative where backtests usually flatter themselves: fills are never at the pure mid unless you switch slippage off, every exit pays its slippage and commissions, no filter ever looks at data that wasn't available at the moment of the decision, and the parameter study treats every configuration you try as one more chance to fool yourself. Targets and stops are triggered by the market itself: with the default slippage model the legs are marked at their mid rounded to 0.05, and the slippage is then charged on the exit fill. See How the engine trades and Parameter study.

The universe: SPX, same-day expiration

Today Research works on one underlying and one expiration:

Underlying
SPX, the S&P 500 index. Options are the SPXW series: European exercise, cash-settled, multiplier 100 (a premium quoted at $1.00 is worth $100 per contract). The underlyings of the data plan (SPY, QQQ, NDX, RUT, IWM, VIX options, XSP) are already described with their contract specifications, all at multiplier 100, and open once their data is downloaded and validated; every premium in $ is read per contract with the multiplier of its own underlying.
Expiration
0DTE only: every leg expires the same day it is opened. A backtest position is opened and closed (or settled) within the session.
Multiple expirations
Define can display the other expirations the dataset holds for a day, and you can model a structure across them. Rewind and Backtest accept only same-day legs for now: calendars, diagonals and any multi-day structure are on the roadmap.

The underlying and expiration selectors appear in all three modules, so new underlyings and expirations will plug into the same screens. When you switch underlying, legs that use fixed strikes of the old underlying are removed (you are asked to confirm first); legs defined by a criterion (delta, % OTM, premium, offset) stay.

Daily expirations

SPX has listed an expiration every weekday only since mid-May 2022. Before that, same-day options existed on Mondays, Wednesdays and Fridays only, so days without a 0DTE expiration simply produce no trade. The SPX daily period preset in the backtest starts on 2022-05-16 for this reason.

The dataset

Research reads a historical archive stored on the server that runs it. Its contents:

Option chain
One row per contract per minute of the regular session: bid, ask, mid, implied volatility, delta, gamma, theta, vega. The quote at a minute is the last NBBO at that timestamp, a sample, not an aggregate of the minute.
Underlying
The SPX price every minute: the last print published by that instant, the same moment the option quotes are taken at. The first print of the day arrives at 9:30:01, so at 9:30:00 there is no price yet. Plus native 1-minute OHLC candles where available (Rewind uses them for its candle chart, and shows a candle only once its minute has closed).
Volatility indices
The daily VIX close, and minute-level VIX and VIX9D for the regime filters and exits: at each minute the last value published by then (they update every 15 seconds).
Index daily closes
A long history of official SPX closes, used by the daily indicators (RSI, SMA) of the backtest filters and of Rewind before the first day of the options archive.
Open interest
Per contract, the day's report: the positions open at the previous close, known at the open and fixed for the day.
Signed trade flow
Every same-day option trade, matched with the bid and ask at that instant and summed minute by minute by the customer's side: bought, sold, or unknown. Rewind uses it to estimate the dealers' position (Gamma exposure). Adding it to the archive doesn't change the dataset version.

Conventions that hold everywhere in Research:

  • Times are US Eastern (ET), the exchange's wall clock. The regular session runs 09:30–16:00; half-days close at 13:00, and the engine never enters after a half-day's close.
  • Implied volatility is the IV of the mid (the average of bid and ask IVs), not the IV of the last trade, which goes stale on far strikes.
  • IV and greeks are shown on the real time to expiry. The data provider computes them as if at least one hour were left, and always up to 16:00, half-days included. Define and Rewind convert them exactly to the real time to the settlement (16:00, or 13:00 on half-days): prices don't change, but in the last hour the IV, theta and vega read like the market's. At the settlement itself the option has expired and has no IV. The engine trades on bid and ask, so backtest results don't depend on this.
  • mid exists only where there is an ask: a contract with no offer has no market.
  • Greeks are stored in Black-Scholes units and converted for display: theta per day, vega per point of IV.

Each saved backtest records the dataset version it ran on, so a result stays reproducible and Rewind warns you when the data has changed since.

The economic event calendar

Next to the market data, the server keeps a calendar of the releases that move the market, used by the economic event rules of the backtest.

Fed
FOMC rate decisions (statement at 14:00 ET; 14:15 on 30 January 2013) and the release of the minutes (14:00 ET), from the Federal Reserve's meeting calendars. Unscheduled meetings and notation votes with a statement are kept as unscheduled events.
BLS
CPI, PPI and the jobs report (08:30 ET), JOLTS (10:00 ET), from the Bureau of Labor Statistics archive of releases; upcoming dates from the release calendar.
Labor Department
Weekly jobless claims (08:30 ET): every Thursday the report comes out, or the day it moved to in a holiday week (the Wednesday before Thanksgiving, July 4 or Christmas, for example), from the release dates of the weekly claims report on FRED. Weeks without a report (the 2025 shutdown) have no event.
BEA
PCE (the Personal Income and Outlays release) and GDP, at the time BEA published them (08:30 ET, sometimes 10:00), from BEA's release archive and schedule.
Census
Retail sales (08:30 ET): the advance monthly report, not the annual revisions.
ISM
ISM manufacturing and services (10:00 ET), from ISM's release calendars; known from January 2021.
Market
Computed from the trading calendar: monthly options expiration (the third Friday, the session before when it's a holiday), quad witching (the March, June, September and December expirations), VIX expiration (the Wednesday 30 days before the next month's standard expiration, with the exchange's holiday rule), month end and quarter end (the last session), half days.

Release history starts in 2013. Every release records the date it actually came out: the releases moved by the government shutdowns of 2013, 2018–2019 and 2025 sit on their real dates, and those that were never published are absent.

The calendar stays up to date by itself. Every weekday morning, before the day's market data, the server reads the official calendars again: new dates (the next year's schedule as soon as it is published) and rescheduled releases enter the calendar. The past doesn't change silently: dates older than about six weeks stay as they are, and a source that doesn't answer, shows no dates or reads oddly (far fewer dates than were known, or more than a year can hold) leaves the previous dates in place for its events. An event whose source hasn't updated for more than a week says so in the rule's window. When a source comes back after a long outage, the releases it missed in the meantime are added; until then the calendar declares its dates only up to the last one it read, so those days are reported as not checked instead of passing for event-free.

Study numbers versus accounting numbers

Two kinds of numbers live in Research. Define and the payoff curves are a display model (Black-Scholes on the chain's IVs, mid prices, no commissions): ideal for understanding a shape. The backtest engine and Rewind's P&L path are the accounting truth: bid/ask fills, slippage, commissions, the exact minute-by-minute marking used to trigger stops. When the two disagree, the engine is right.

From Research to Analysis

A backtest produces the same object Analysis is built on: a daily P&L series. That makes the bridge exact:

  1. Save the backtest (it goes to the Research archive).
  2. It appears at once in the Analysis library as a strategy with a Backtest badge, and it can be added to any session, combined with other strategies, stress-tested with Monte Carlo, sized, compared.
  3. Save as strategy makes a permanent copy in the library, carrying the recipe and dataset version as provenance; from the library, Reopen in Research re-runs that recipe in the console.

The detailed metrics tab of a backtest is computed by the very engine of the Metrics module, on the same daily series: the numbers you read in Research are, to the cent, those you will read in Analysis.

Pages in this section

  • Define: the structure studio.
  • Composing a backtest: every field of the recipe.
  • How the engine trades: the simulation, step by step.
  • Results & archive: reading a run, comparing runs, saving.
  • Parameter study: optimizing without fooling yourself.
  • Rewind: the minute-by-minute replay.
  • Tactics: mechanical adjustments.
  • Indicators: your own Pine Script indicators.