← Back to Straddle Lab|Plans & pricingStraddle Lab — User Guide · Quantimental Capital Research

User Guide

Straddle Lab

A visual, plain-English guide to reading the heatmap, choosing a structure, and understanding what every number on the page means — for the desktop app and the mobile page.

⚠ Research & educational tool only — not investment advice

Straddle Lab shows historical, backtested performance of options strategies over past market data. Past performance is not indicative of future results, and nothing on this page is a recommendation to buy, sell or hold any security or derivative. Options trading involves substantial risk of loss and is not suitable for all investors. Backtested results have inherent limitations — no market impact, fills assumed at historical prices, and slippage/brokerage figures are your own estimates, not guarantees. Please consult a SEBI-registered investment adviser before making any trading decision. See the full note at the bottom of this guide.

01 — Overview

What is Straddle Lab?

Straddle Lab is a research tool for studying how short options strategies have historically behaved on NIFTY, BANKNIFTY and SENSEX. For every trading day in its dataset, it replays a chosen structure at a chosen entry time and stop-loss level and shows the historical outcome — gross of costs, before your own cost assumptions are applied. History depth varies by structure and instrument — the Period panel always shows the exact range for what you have selected. The earliest weeks of a series are used to warm up the regime filters (a day is ranked against its own trailing history), so charts can begin a few weeks after the first day of data.

Nothing on this page is a signal, a forecast, or a recommendation. It is a way to explore how a structure historically behaved across thousands of trading days, and to compare that behaviour across instruments, structures, exit times and market conditions.

Screenshots in this guide are illustrative — the numbers shown are simulated for documentation and are not actual backtest values.

Straddle Lab desktop overview
Straddle Lab — desktop view (NIFTY, Short Straddle ATM)
1The heatmap — historical result by entry time × stop-loss
2Equity curve — cumulative historical result of the selected cell
3Controls — instrument, structure, DTE, metric, costs
4Regime filter — historical result split by market condition

02 — The core view

Reading the heatmap

The heatmap is the heart of Straddle Lab. Every cell answers one question: "If I had opened this trade at this time, with this stop-loss, on every eligible day in the window — how did it historically do?"

Annotated heatmap explaining rows, columns and colour scale
Entry time (rows) × stop-loss (columns), coloured by the selected metric
A cell with no colour is simply untested or unpriceable — not a real day of trading. Straddle Lab never fills a missing day in with zero, because that would silently read as "traded, made nothing," which is not the same as "no data." See the FAQ for more on blank cells.

03 — Setup

Choosing instrument, structure & DTE

The left-hand Test panel controls what the heatmap is testing.

Instrument, structure and DTE controls
Instrument, structure and DTE controls (Console panel)

Instrument: NIFTY, BANKNIFTY or SENSEX.

Structure: the options position being tested. The picker groups the families — Simple Straddles & Strangles (open by default), Iron Fly / Iron Condor, Delta Adjusted Straddles & Strangles and Batman. Simple opens by default (plus the family holding your current pick); tap Show all or any collapsed heading to expand every family, tap an open heading to collapse it. On the phone the picker opens as a bottom sheet. Each family behaves differently:

Short Straddle (ATM)
Sells an at-the-money call and put together. The simplest structure, highest premium, and an uncapped loss on both sides.
Short Strangle (OTM1–3)
Sells a call and put further out of the money for a wider breakeven and lower premium than a straddle.
Iron Fly
A short straddle plus a bought wing on each side. The bought wings cap the maximum loss, at the cost of some premium.
Iron Condor
A short strangle plus bought wings — the same capped-loss idea, starting from a wider body.
Δ-Adjusted Straddle / Strangle (4 variants)
Starts as a short ATM straddle (a short OTM1 strangle for the "(OTM1)" variant) and is delta-managed intraday: at each adjustment ONLY the currently losing leg — the side the market moved against — is closed and re-sold; the other leg is left alone. All triggers, rolls and the overall stop-loss are evaluated at 1-minute bar closes; rolls fill at that same close. Where it re-sells is the variant: Overall Δ Adjustment triggers when the two legs' deltas drift 0.25 apart (0.25 = 25 delta) and re-strikes to match the winning leg's delta; Legwise Δ Adjustment gives each leg its own 0.25-drift trigger, delta-matched re-strike; Legwise (ATM) re-sells a fresh at-the-money option of the same side; Legwise (OTM1) re-sells a fresh OTM1. "max N" variants cap adjustments per day. The stop-loss stays a percent of the original entry premium — adjustments never re-base it — and every adjustment order is included in the costs shown.
Batman (NIFTY & BANKNIFTY)
Sells two "ear" legs further out and buys one inner wing on each side — four legs; whether it opens as a net credit or a small debit depends on the ear width and day — the structure card shows the measured median. Unlike Iron Fly/Condor, the loss is not capped beyond the ears; its stop-loss is a percent of the absolute net entry value (the credit received or debit paid). SENSEX has no Batman on purpose: BSE strike-level liquidity cannot price the four legs reliably through the day, so rather than ship unreliable numbers it is left out.

DTE (days to expiry): how many trading days remain to expiry on the entry day. 0 is expiry day itself; you can pick a single DTE, several at once (merged into one grid), or All.

Special days: a chips row (next to CAS) filters day types — Normal, Monthly-expiry and Quarterly-expiry sessions (identified from the instrument's own expiry calendar), Budget −1, Budget day and Budget +1 as three separate classes, and Election −1, Election day and Election +1 (around results-counting days) as three separate classes. Each day counts in exactly one class, by severity: budget-day > budget−1 > budget+1 > election-day > election−1 > election+1 > quarterly > monthly. Keep a single chip on to see performance on JUST those days, turn one chip off to exclude them, or leave all on (the default); the equity-curve selector (desktop) and the mobile Console's own Special Days row offer the same as Only…/Excl… presets. They exist because these sessions historically behaved differently — quarterly-expiry sessions ran well below ordinary expiry days for plain short structures — and pooling them in silently colours every average. The budget/election lists are curated 2021-01-01 to 2026-07-30; days after that window carry no event tag.

Research builds of the Lab show a Data switch in the top-right corner for comparing two dataset generations side by side. The published site serves a single, current dataset — every structure listed here is in it — so if you do not see that switch, nothing is missing.

04 — Timing

Exit time & the closing auction

By default, a trade is held to the session close. For history before 2026-08-03 that means the 3:29 PM price; from 2026-08-03 — when NSE/BSE moved index settlement to a closing auction — newly-tested days use the 3:30 PM settlement print. The app labels the exit from what each dataset actually contains (an older dataset that was never re-tested after the change keeps its 3:29 PM label rather than claiming "market close"). The closing-auction note below applies to trades held to the close; earlier square-offs are mechanically unaffected. Some structures also have historical data for earlier square-offs, shown as extra buttons: 11:15 AM, 1:15 PM, 3:15 PM.

Exit time chips including alternate square-off times
Alternate exit times, where tested
Locked exit time chip for a structure with close-only data
Greyed out when only the close exit has been tested

Where a structure has not been tested at an alternate exit, that option appears greyed out with "only close swept," and a tooltip explains that only the session-close exit exists in the data — a data-coverage note, not a bug. (Batman gained alternate-exit data on 2026-08-26, so its exit selector is live like the others'.)

Closing auction (CAS): from 2026-08-03, NSE/BSE indices settle the last few minutes of the trading day through a call auction rather than continuous trading, while options keep trading continuously. Because the last 15 minutes of a trade can behave differently either side of that change, Straddle Lab lets you view results from before it, after it, or both together.

05 — Your assumptions

Costs: slippage & fees

The underlying P&L in Straddle Lab is gross — the raw historical option prices, before any trading costs. Your slippage, brokerage and STT inputs — plus the statutory charges the app models for you (exchange transaction charges, SEBI fee, stamp duty on bought legs, GST) — are applied live on top of that gross number. STT is charged on sold-leg premium and stamp duty on bought-leg premium, matching how the charges actually fall on multi-leg structures; brokerage is flat per order and does not scale with lot count. For Δ-adjusted structures the order count is per day and exact: each completed adjustment adds two orders (the early close plus the replacement) on top of the entry and exit orders, and the rolled legs' premiums are already inside the slippage/STT turnover. What you see reflects the cost assumptions you set — not a fixed number baked into the data.

Costs panel with slippage, STT and brokerage inputs
Slippage %, STT % and brokerage — edit to match your own execution

Adjust these under Costs to match your own broker and typical execution style. Because they change results live, two people can look at the same structure and see different net numbers — that is expected.

06 — Vocabulary

Metrics explained

The heatmap can be coloured by any of these. Switch between them to ask a different question of the same historical data.

Metric selector
The metric selector — pick what "better" means
MetricWhat it measuresWhat comparison it supports
Hist R/MDDTotal historical return divided by the worst historical drawdown.A quick reward-for-pain ratio over the whole window.
Ann R/MDDReturn divided by calendar years spanned, then by the worst drawdown (a simple annualization, not compounding).Comparing windows of different lengths on equal footing.
Hist / Ann returnTotal, or annualized, historical % return.The historical return over the window, in ₹ or as % of margin.
Win %Share of tested days that were historically profitable.The share of tested days that were profitable, regardless of size.
Reward:RiskAverage historical win size versus average historical loss size.Understanding the shape of outcomes, not just the frequency.
Sharpe (@7% RF)Historical return per unit of volatility, in excess of a risk-free rate (7% is the editable default; at 0 it becomes a plain mean-to-volatility ratio).Judging how smooth or bumpy the historical return stream was.
ConsistencyHow steady historical results were across sub-periods. Losing cells score 0 — a view where every cell lost paints the whole grid red.Avoiding a result that is really just one strong quarter.
RobustnessAn average of a cell's Consistency with its immediate neighbours — high when the surrounding entry-time/stop-loss region was also historically strong.Checking a cell isn't a lucky outlier surrounded by weak neighbours.
Windows shorter than about one month show "n/a" for annualized figures — there simply isn't enough historical data to annualize a number honestly.

07 — Market conditions

Regime filters & the optimiser

Regime filters restrict the historical window to days that matched a market condition: VIX percentile, IV percentile, price gap up/down, weekday, and more. This lets you see whether a structure's historical behaviour held up in high-VIX days, gap-down days, and so on — rather than pooling every day together.

Regime tab showing ranked historical filter combinations
The Regime tab ranks historical filter combinations for the current selection
The optimiser searches today's regime readings — each one alone and in pairs, requiring a minimum number of matching historical days — and ranks entry-time/stop-loss cells by their historical result on those matching days, under your current selections (instrument, structure, DTE, exit, period). It searches independently of any regime filters you already have applied; choosing one of its rows replaces them. It is a description of the past, conditional on your current filters — not a recommendation of what to trade next, and not a forecast of future performance.

Working the filter bars

Pick a conditioner (say VIX %ile) as the primary filter and the panel splits every tested day into four groups — Q1 (the 25% of days the reading was lowest) to Q4 (the highest). For the percentile conditioners the quartiles are ranked within the selected DTE by default (the "rank" toggle switches to overall), so each group stays ≈25% of the days you are looking at — ranking IV percentile across all DTEs at once mostly measures time-to-expiry, not regime. The look-back window defaults to 12 months — in our testing it separated good days from bad best for both the VIX and IV percentile lenses (3m/6m remain selectable). Each horizontal bar shows the structure's average historical return per trade on that group's days. Tap a bar (or its Q chip) to include or exclude that group — the heatmap, KPIs and equity curve instantly recompute on only the days you kept. A secondary filter (overlay) composes on top: for example, keep only Q1-VIX days that were also gap-down days. Tap again to bring a group back.

The Strategy tab

The Strategy tab spells out exactly what the selected cell would have traded: each leg (bought or sold, and how far from the money), the entry time, the exit rule, and how the stop-loss is measured (percent of combined premium; percent of net premium for wing structures; percent of the original entry premium for Δ-adjusted structures — adjustments never re-base it; percent of the absolute net entry value for Batman). For Δ-adjusted structures it also states the exact adjustment rule. It re-reads your current selection, so it always describes the cell you are looking at — read it before interpreting any number on the grid.

The Regime tab

The Regime tab has two views. Last session shows the readings (VIX level and percentile, IV percentile, price gap, VIX gap) as of the newest day in the data; Today's is for reading the current morning by hand — the Lab has no live feed. Below them, the optimiser lists ranked regime matches; tapping Apply on a row sets the main window's conditioner and buckets to that regime (its ★ then lands on the matching cell), and tapping it again returns to your previous view. More regimes searched means a thin slice can look good by luck — the row notes the day count for exactly that reason.

08 — Under the hood

The structure card: legs, credit/debit & margin

Selecting a structure shows a card describing exactly what it is: the individual legs (bought vs. sold, and how far from the money), whether it is a net credit or net debit at entry, and the margin required.

Structure card showing legs, credit and margin
Iron Fly (wing 2 strikes) — legs, entry credit and margin

The margin figure comes from a SPAN-plus-exposure replica of the exchange calculation — a representative value (median over a recent 250-trading-day window), per structure and per DTE, not a flat number and not an exact quote for any given day. You can type your own figure to override it. The P&L and return percentages on the page are calculated against this margin, so it's worth checking whenever you compare two structures: a structure with more short legs (like Batman) typically needs more margin than one with fewer, even when it looks "more hedged."

09 — On your phone

Mobile guide

The mobile page carries the same underlying data in a single-column, tap-to-expand layout. Tabs — Heat Map, Equity Curve, Filters — replace the desktop's side-by-side panels (the strategy setup opens as a bottom sheet), and each section header (Test, Metric, Filters, Costs, Structure…) expands in place when tapped.

Mobile heatmap view
The heatmap on mobile — same rows, columns and colours
Mobile instrument, structure and DTE controls
Tap Test to reveal instrument, structure and DTE

Everything explained above for desktop — the heatmap, structures, exit times, costs, metrics, regime filters, and the structure card — is the same data on mobile, just laid out for a narrower screen.

10 — Questions

FAQ

Is this investment advice?

No. Straddle Lab is a research and educational tool. It shows historical, backtested behaviour of options strategies — it does not recommend, and should not be treated as a signal to buy, sell or hold any security or derivative. Please consult a SEBI-registered investment adviser before making any trading decision.

In-app disclaimer banner
This note appears throughout the app, wherever a structure is described

Why is a cell blank?

Some entry-time / stop-loss / date combinations were never tested, or the underlying option price was unpriceable on that day (for example, a very cheap Batman leg near its credit/debit crossover). A blank cell means "no data" — it is deliberately never filled in as a zero, because that would look identical to "traded and made nothing."

Why does a metric show "n/a" for a short window?

Annualized figures need enough history to be meaningful. A window shorter than about a month shows n/a rather than a precise-looking but misleading annualized number.

Why does margin change with DTE?

Exchange margin rules add an extra buffer on expiry day itself (a regulatory expiry-day exposure add-on), so DTE0 margin is typically higher than DTE1–4 for the same structure. Because margin is the denominator of the P&L and return percentage figure, this also shifts the % numbers you see between DTEs.

Why is Batman's margin higher than a straddle's, even though it's "hedged"?

The exposure part of exchange margin is charged per short lot, with no hedge relief. Batman carries four short lots (two sold body legs, double quantity each side) against a straddle's two, so its margin runs meaningfully higher — around 20–30% in the shipped figures, not double, because the SPAN part does recognise the bought wings — even though its intraday price swings are typically gentler thanks to the bought inner legs.

What does "undefined tail risk" mean on Batman?

Batman's potential loss is not capped in the tails. The stop-loss manages risk on a normal day; the flag is about what sits beyond it. Beyond its outer "ear" strikes, losses can keep growing as the underlying moves further — unlike Iron Fly or Iron Condor, where the bought outer wings put a hard ceiling on the maximum loss.

Are the P&L numbers gross or net?

The underlying historical numbers are gross — before any trading costs. Your own slippage, brokerage and STT assumptions in the Costs panel are then applied live on top, so the net figures you see reflect your assumptions.

Can I use the optimiser's suggestion as a trade idea?

Treat it as a description of the past, not a plan for tomorrow. The optimiser highlights the cell with the highest historical result for your current filters — it does not know what will happen next, and market conditions that produced a strong historical result may not repeat.