← capabilities overview · Builder UI reference · Strategy JSON reference

FNOTrader Backtest — Strategy Builder & Backtesting Guide

FNOTrader Algo is a no-code builder for F&O trading systems. You describe a strategy as a recipe — which instruments to watch, what triggers an entry, which legs to fire, and how each leg is protected — then replay that exact recipe against minute-bar history in the backtester, and finally deploy the same recipe to paper or live trading.

The Builder is a single page of eight numbered steps:

  1. Strategy identity — name, underlying, template, single- or multi-leg.
  2. Instruments to watch — the market data your conditions can reference.
  3. Entry & exit conditions — when to get in and out, plus BTST/STBT and overnight protection.
  4. Strategy legs — the actual orders, with per-leg stop-loss, target, trailing and adjustment rules.
  5. Strategy risk settings — basket-level (combined) stops, targets, trailing and rollover.
  6. Execution — how orders go to the exchange: sequencing, order types, sizing, day filters.
  7. Summary — a one-page recap of every setting.
  8. Save — store the strategy, or export/import it as a file.

Once saved, the same strategy runs through the Backtest page. All times in the product are IST and all money values are ₹.

Step 1 — Strategy identity

Give the strategy a Name and an optional Description; both appear on the Strategies, Portfolios and Signals pages, so name it something you will recognise in a list ("920 Short Straddle NIFTY", not "test3").

Symbol

The Symbol is the underlying for the whole strategy — every watched instrument and every leg inherits it. The list covers:

Symbols with a backtest archive carry a "✓ backtest" badge in the dropdown. Everything else can still be forward-tested live on the paper broker.

Template

A Template seeds the later steps with a working recipe so you start from something that already runs:

Template What it sets up Use it when
Custom (build my own) A blank slate You want full control from the first leg
Short Straddle — SELL ATM CE + PE Two short ATM legs Classic premium-selling intraday base
Iron Condor — SELL straddle + BUY wings Short straddle plus protective OTM buys You want defined risk and lower margin
BTST — BUY ATM CE 15:15 → 09:20 T+1 Buy at close, exit next morning Playing overnight gap-ups
STBT — SELL ATM CE 15:15 → 09:20 T+1 Sell at close, cover next morning Harvesting overnight decay / gap-downs
Rolling Straddle — ATM CE+PE, roll ±0.5% Straddle that re-centres when spot drifts 0.5% Staying delta-neutral in trending sessions
Rolling Strangle — OTM-2 CE+PE, roll ±0.5% Same idea, two strikes out Rolling with more room and less gamma

The rolling templates also enable automatic re-centring with a move threshold and a cap on how many times the position may roll.

Strategy Kind

Choose Multi Leg (basket) for a fixed basket of legs — a straddle, condor, or any custom combination — or Single Leg (option / future) for exactly one leg whose direction comes from the incoming signal: a Long Entry buys it, a Short Entry sells it. Single Leg is the natural fit for TradingView-style directional signals; Multi Leg is for structures you define up front.

Step 2 — Instruments to watch

Everything you add here becomes a named data source your entry and exit conditions can reference — for example SPOT.EMA(10) or STRADDLE.LTP. If your entry is "sell the straddle when the spot crosses above VWAP", you first add the spot here so the condition has something to look at. Quick-add buttons create a plain instrument, an ATM Straddle or a Strangle in one click.

Each watch row has:

Scope What you're watching Use it when
Option (single strike) One CE or PE contract's premium, OI, greeks Conditioning on a specific strike's behaviour
Underlying Spot The cash index / stock price Price-action entries — VWAP, EMA, breakouts
Futures The futures contract You want futures price, OI and buildup, not cash
ATM Straddle (auto-tracking) Combined CE+PE premium at the ATM strike Straddle-premium entries; volatility reads
Straddle (fixed strike) CE+PE at one fixed strike Tracking the straddle you actually sold
Strangle (CE + PE) A two-strike combined premium OTM premium plays with per-side offsets
Custom Strategy (multi-leg) Any weighted CE/PE combination Synthetic spreads — condor premium, ratio structures

Example. For a trend-filtered straddle sale, add the spot on a 15m timeframe (alias SPOT_15M) and an auto-tracking ATM Straddle. Your entry can then require SPOT_15M above its EMA(20) while the straddle premium is still above a floor you set.

Step 3A & 3B — Entry and exit conditions

Entry (3A) and exit (3B) share the same row builder. Each row reads like a sentence: Symbol · Metric · Operator · value(s) — "SPOT LTP Crossing Up VWAP", "STRADDLE LTP Moving Down ₹10 in 5 bars × 5m". Multiple rows combine with AND (all) or OR (any). A live Preview box shows exactly what you've built, in plain text, before you save.

Symbols you can condition on

The symbol picker lists every Step-2 alias, plus two built-ins:

Metrics

Every alias exposes the full metric catalogue:

Group Metrics Typical use
Market data LTP, OI, OI Chg, OI Chg %, IV, Delta, Gamma, Theta, Vega, Volume, CDV, Buildup Raw price, open-interest and greeks reads
Averages & momentum VWAP, EMA (period 10), SMA (20), RSI (14), ATR (14), MACD (12/26), MACD Signal (12/26/9), MACD Histogram (12/26/9), ROC (12), SAR (0.02/0.2) Trend and momentum filters
Bands & trend Supertrend (10, ×3), BB Upper (20, 2σ), BB Middle (20), BB Lower (20, 2σ) Volatility-band entries and mean-reversion
Oscillators Stoch %K (14), Stoch %D (14, 3), ADX (14), CCI (20), Williams %R (14), OBV Overbought/oversold and trend-strength gates
Floor pivots Pivot P, Pivot R1/R2/R3, Pivot S1/S2/S3 Classic support/resistance levels
CPR CPR Pivot, CPR TC (Top), CPR BC (Bottom), CPR Width, CPR R1–R3, CPR S1–S3 Narrow-CPR trend days, wide-CPR chop filters
Fibonacci pivots Fib Pivot P, Fib R1–R3, Fib S1–S3 Fib-based intraday levels
Camarilla Camarilla H1–H3, H4 (breakout), L1–L3, L4 (breakout) Range-reversal (H3/L3) and breakout (H4/L4) plays
Day structure Day High, Day Low, Prev Day High, Prev Day Low, Prev Day Close Breakouts of today's or yesterday's range

Indicator periods are editable inline next to the metric — change EMA's period box to 25 and the condition uses EMA(25).

For the change metrics (OI Chg, OI Chg %), a change basis selector sets the anchor: vs prev bar (default, bar-over-bar change), vs day open (cumulative since today's open) or vs prev day close (change including the overnight gap). "OI Chg % vs day open Greater Than 5" reads as "OI has built up 5% since the open".

Arithmetic between metrics

An optional Arith step (+, −, ×, ÷, or — for off) combines the left-hand metric with a second operand before the comparison. The second operand can be another metric on the same symbol, a symbol (a different instrument plus its metric), or a fixed number. The canonical use is a strike-wise PCR: ATM PE OI ÷ ATM CE OI Greater Than 1.2 as a bullish gate.

Operators

Operator Fires when Use it when
Moving Up The metric rises by at least your amount (₹ or %) within a window of N bars (1m, 5m, 15m, 30m, 1h or 1d bars) Momentum bursts — "premium up ₹15 in 3 × 5m bars"
Moving Down Same, falling Premium-crush entries for sellers
Crossing Crosses a threshold in either direction You care about the touch, not the direction
Crossing Up Crosses from below to above Classic bullish cross — LTP over VWAP
Crossing Down Crosses from above to below Bearish cross
Greater Than Metric is above a value Simple level gates — RSI > 60, IV > 18
Less Than Metric is below a value The mirror gate
Inside Channel Metric sits within [Low, High] Range filters — "ADX inside 15–25"
Outside Channel Metric sits outside [Low, High] Avoiding the middle of a range
Entering Channel Transitions from outside to inside Mean-reversion back into value
Exiting Channel Transitions from inside to outside Volatility expansion out of a range
Above Metric is above another metric Line-vs-line states — LTP above VWAP all bar
Below Metric is below another metric The mirror state
New Day High Price prints a fresh intraday high Strength confirmation
New Day Low Price prints a fresh intraday low Weakness confirmation
Range Breakout UP Price crosses above the high of a time window you set (default 09:15–10:15); armed only after the window closes Opening-range breakout longs
Range Breakout DOWN Crosses below the window low ORB shorts
Range Breakout EITHER Breaks the window high or low Direction-agnostic straddle/strangle triggers

Moving Up / Moving Down are offered on raw data metrics (LTP, OI, IV, Volume, Delta, Gamma, Theta, Vega) where "moved by X in a window" is meaningful. Range-breakout rows let you choose whether the window's extremes come from bar highs/lows or closes — closes give a cleaner range, highs/lows a stricter one.

For single-threshold operators, the right-hand side can be a value (with a ₹/% unit toggle), a metric on the same instrument (EMA crossing SMA), or a different instrument and its metric (CE OI Crossing Up PE OI — an OI-crossover regime flip). Crossing operators add a checkbox — "or fire on day's 1st bar if already crossed" — so a cross that happened before the open still counts on the first closed bar; tick it when your setup is a state ("above VWAP") rather than the moment of crossing.

Step 3C — BTST / STBT

Hold a position overnight with two fields: a Start Time today (typically 15:15) and an Exit Time the next trading day (typically 09:20). Filling both switches the strategy into overnight mode — the entry fires in the closing minutes, the position rides the gap, and it is squared off at your exit time next session. Any 3A/3B conditions still gate the entry inside that window. Leave both blank for a normal same-day strategy.

Example. BUY ATM CE at 15:15, exit 09:20 tomorrow: you capture the overnight gap with a defined, premium-limited risk. The STBT mirror sells at 15:15 to harvest overnight theta and gap-downs — pair it with Overnight Protection below.

Step 3D — Overnight protection

When you carry short options overnight, this feature buys a protective further-OTM option against every open short leg at a time you choose, and unwinds the hedge next morning — capping overnight gap risk without touching the core position. The hedge uses the same expiry and quantity (split to respect exchange freeze limits), its P&L counts in the strategy's MTM, and it needs the NRML product. In backtests it is simulated whenever an overnight carry is active.

Configure:

Method Picks the strike Use it when
Strike distance N strikes beyond the short Simple, predictable width
Premium closest to ₹ Whose premium is nearest your ₹ target Fixing the hedge's cost — "spend about ₹10"
Delta closest to Whose delta is nearest your target Consistent tail-risk sizing across vol regimes
Max OI strike The biggest OI wall beyond the short Parking the hedge at the market's own barrier
Straddle-width × A multiple of the ATM straddle premium away Width that auto-scales with volatility
Underlying % away A fixed % of spot away Percent-based width independent of premium

Example. An STBT short straddle with protection set to Premium closest to ₹ 10, applied 15:20 and removed 09:20, spends roughly ₹10 a side to make a violent overnight gap survivable — the hedge legs gain what the shorts lose beyond their strikes.

Step 4 — Strategy legs

Each row in the legs table is one order. The basics per leg:

Strike Selection

How the leg's strike is picked at entry:

Mode You enter Use it when
Distance A moneyness pick from ITM15 … ITM1, ATM, OTM1 … OTM15 The classic "sell ATM", "buy OTM2 wing". Offsets beyond ±10 are marked "(live only)" — backtests cover ATM±10 and clamp beyond it
Absolute An explicit strike number You want exactly the 24000 CE, every day
Premium A target ₹ premium — the strike whose price is closest at entry Selling "the ₹50 option" regardless of where it sits — consistent credit across vol regimes
Delta A target absolute delta (e.g. 0.30) Probability-based selection — a 0.10-delta strangle keeps risk roughly constant
Straddle Width A % of the ATM straddle premium, or a direct × multiplier Vol-adaptive strikes: 50% of straddle width sits closer on quiet days, further on wild ones
Underlying Price A signed % of spot (+0.5 → strike ≈ spot × 1.005) Fixed percentage OTM, independent of strike spacing
OI Levels (Max OI ± offset) An offset from the biggest OI wall — CE legs anchor on the max Call-OI strike, PE legs on the max Put-OI strike; 0 = the wall itself, ±1 = one strike either side Selling at the market's own support/resistance walls — a data-driven iron condor

Expiry

Expiry Selection is Relative (a named series the platform resolves each day) or Absolute (an explicit date you pick). Relative choices: Current Weekly, Next Weekly, Far Weekly, Current Monthly, Next Monthly, Far Monthly. Weekly expiries exist only for NIFTY and SENSEX; every other underlying — and all futures legs — offers the monthly series only. Far Weekly/Far Monthly reach two series out, for positional structures that want more time value.

Example. A weekly NIFTY iron condor: SELL ATM CE + PE on Current Weekly, BUY OTM5 CE + PE wings marked as Hedge, one lot each. A stock covered-call-style play on RELIANCE uses Current Monthly automatically, since stocks are monthly-only.

Per-leg risk — the ⚙ panel

Every leg's gear button opens five tabs: Wait & Trade · Stoploss · Target · Per-leg Trailing · Profit Lock & Trail.

Wait & Trade

Instead of entering immediately, the leg waits for the premium to move by an amount you set before placing the order. A positive value waits for a favourable move (confirmation); a negative value waits for an adverse move (a retracement entry at a better price); 0 places immediately. Units: pts (₹) — an absolute premium level, pts_rel — a points offset from the premium at the moment waiting starts, or % — a percentage offset. A per-leg Wait & Trade overrides the basket-wide one in Step 5.

Example. Selling a CE trading at ₹100 with Wait & Trade −5 pts_rel places the sell only if the premium first ticks up to ₹105 — you collect ₹5 more on the same strike whenever the market gives a bounce.

Stoploss

The main stop reads as a sentence: SL [type] [value], then [what happens to this leg], then [follow-up action].

Stop types:

Type Fires when Use it when
% of premium The premium moves against you by X% of entry The standard options stop — SL 30% on a short leg sold at ₹100 exits when it trades ₹130
Premium distance (points) The premium moves X ₹ against you You think in absolute points, not percentages
₹ on this leg This leg's loss reaches ₹X A hard rupee cap per leg regardless of premium level
Spot moves either side The underlying moves X (points or % of entry-time spot) in either direction Straddle sellers who care about the move, not the premium
Spot rises Same, but only upward moves Protecting a short CE against a rally
Spot falls Only downward moves Protecting a short PE against a slide
|delta| crosses The option's absolute delta crosses X A "the strike is becoming ATM" alarm — delta 0.45 on a sold 0.25-delta leg
× ATR The adverse move exceeds X × ATR(period) Volatility-scaled stops — wider on wild days, tighter on quiet ones. The ATR can be computed on the option's own premium or on any Step-2 instrument (e.g. spot ATR)

Leg fate — what happens to this leg when the stop fires: close this leg (default), close this strategy (square off every open leg — a hard stop), or no action on this leg (don't exit; use the stop purely as a trigger for the follow-up action — e.g. keep the short running but fire a hedge).

Follow-up actions — what happens next:

Action What it does Use it when
no further action Just the leg fate Simple stops
re-execute strategy Squares off everything and re-enters a fresh copy at the new ATM, up to N times with an optional wait Straddle re-entry after a stop-out — the classic "re-strike at new ATM"
re-execute leg Fresh entry on this same leg at market, N times / wait S sec Re-selling the stopped side only
re-enter at original price Places a limit at the leg's original entry; fills only if price comes back, capped at N times "Only re-enter if the move reverses" — no chasing
close all losing legs Exits every leg currently in the red Cutting all the pain at once
close all profitable legs Banks every winner Locking gains when one side blows through its stop
close all CE buys / CE sells / PE buys / PE sells Exits a whole side/direction class Side-level risk-off — "if the sold CE stops, drop every CE sell"
move SL to cost on profitable legs Ratchets winners' stops to breakeven Making the rest of the basket risk-free after a stop
execute other leg Fires a specific Leg ID, optionally after a delay Waking an Idle hedge or reverse leg
execute other strategy Launches another saved portfolio as a follow-up Chaining a defensive strategy after a stop-out
Close Leg N / Enter Leg N Direct close or fire of a named leg from the list Precise cross-leg choreography

Stacking conditions. + Add condition appends extra stop rows. Each row picks its own trigger — % of premium, premium points, ₹ P&L, spot either side/up/down, |delta|, × ATR, or absolute LTP ("exit if the premium itself trades ₹180") — its own action (the same vocabulary, plus just exit, close current strategy, close strategy & re-enter strategy, keep leg running, and add qty to this leg), and its own evaluation cadence (every tick or every X-minute close). Rows combine with AND (all) (every condition must be true — e.g. "premium up 25% AND spot beyond 150 points") or OR (any) (first one wins).

Timing controls. The group Check Frequency evaluates the stop on every tick or only at X-min bar close — bar-close checking ignores intrabar spikes entirely. SL Wait (sec) is a breach debounce (0–3600 s): the stop must stay breached that many consecutive seconds before firing, filtering one-tick flash spikes without dulling real moves. The × on the main row disables the stop altogether for a leg you intentionally run naked (say, a far OTM hedge).

Target

The Target tab mirrors the stop exactly — same types, same fates, same stacking, plus one extra type: × SL distance (R-multiple) — the target is placed at X times the stop-loss distance (default 2), so a 30% SL with R 2 books at a 60% favourable move, keeping reward:risk constant however you tune the stop. A delta target fires when |delta| decays to the value — a natural "the option has gone far OTM, book it" exit for sellers.

Target follow-up actions: no further action, re-execute strategy, re-execute leg, add qty to this leg (pyramid the winner), close all losing legs, close all profitable legs, close all CE buys / CE sells / PE buys / PE sells, move SL to cost (this leg), move SL to cost on profitable legs, execute other leg, execute other strategy.

Example. Short strangle: each leg SL 40%, target 80% of premium, on-target action move SL to cost (this leg) on the other side — when one side books, the survivor can no longer lose.

Per-leg Trailing

Once the leg moves in your favour by the Trail Trigger (in % of entry premium or premium points), the stop starts ratcheting: every further Trail Step of favourable move lifts the stop by Trail Lock (leave Lock blank and it moves in full lockstep with Step). Trail Check runs every tick or every X-min close.

With two or more stop conditions on the leg, Trail Mode decides what trailing does to the rest: Shift together (default) moves every stop condition up with the trail — your ladder stays intact, just tighter; Trail only collapses everything to the single trailed stop once it arms — cleaner, but drops the other conditions.

Example. A sold leg at ₹100 with Trigger 20%, Step 10%, Lock 5%: nothing happens until the premium hits ₹80; from there every further ₹10 of decay pulls the stop down ₹5, turning an open-ended winner into a locked one.

Profit Lock & Trail (₹, this leg)

Rupee guards on the leg's own P&L. Profit Locking — when the leg's profit reaches ₹X, never let it fall below ₹Y. Profit Trailing — every further ₹X of profit lifts that floor by ₹Y. Use these when you think in rupees per leg rather than premium percentages. Note: in backtests, profit lock/trail is honoured at the strategy level (Step 5); the per-leg version applies to live runs.

Step 4B — Strategy adjustment rules

Adjustment rules watch the open position and repair it automatically — rolling, exiting or hedging legs as the market moves — the way a discretionary seller manages a straddle. Switch them on with Enable rules, then add one card per rule. They act on live and paper deployments; backtests replay a rule only when it is set to act automatically rather than alert-only.

Rule What it does Configure Use it when
Roll / exit a leg at a price level When the CE and/or PE premium reaches your level, roll it N strikes or exit Per-side trigger (leave one blank to skip that side); unit: % from entry, points above entry, or absolute ₹ (LTP); action: Roll away (further OTM), Roll in (closer to ATM), or Exit that leg "If the sold CE doubles, roll it 2 strikes away" — mechanical defence
Roll / exit a leg at a delta level Same, triggered by the leg's |delta| (0.02–0.99), rolling by steps or to a target |delta| (target overrides steps) Actions: Roll away, Roll in, Exit that leg Delta-based defence — "when a side reaches 0.45, roll it back to ≈0.25"
Price-diff band around entry (two-sided) Draws a band above and below each leg's entry premium and acts on whichever edge is touched Band width per side in ₹ points or % of entry; separate ▲ above-entry and ▼ below-entry actions: Roll away, Roll in, Exit leg, or Do nothing Rolling losers away and rolling winners in from one rule
CE/PE divergence — winner & loser actions Fires when the gap between the CE and PE premiums exceeds a threshold (in % of combined entry premium or absolute ₹) Winner: Roll IN to ≈ % of loser's premium, Roll IN N strikes, Exit winner, or Do nothing; Loser: Roll AWAY N strikes, Exit loser, or Do nothing A trending day skews the straddle — rebalance both sides in one shot
Rebalance — roll the cheap side in (premium match) When one side's premium is ≥ N× the other (default 2), rolls the cheap side in until it's ≈ a set % of the expensive side (default 80) The two numbers Keeping a straddle's credit balanced without micromanaging
Delta / gamma hedge Watches the basket's net delta (default trigger |0.20|), optionally net gamma, and re-balances Action: Roll the heavy leg (delta-match, default) or Hedge with FUTURES (buy/sell front month, with an optional max-lots cap) Staying delta-neutral; the futures variant hedges without touching the options
Spot re-center at ATM ± offset When the underlying moves ≥ X% from entry, closes and re-opens the structure at the new ATM ± a strike offset Move %, offset; movement measured on Spot (index), Futures (current month), or Synthetic future (ATM CE−PE) The rolling-straddle behaviour, as a rule you control

Guards apply across all rules: a minimum CE−PE strike gap (default 100 points) stops rolls from inverting the structure; an auto-action limit caps actions at N per run (default 3) with a cooldown between them (default 60 s) so a whipsaw can't roll you to death; and Only sold (SHORT) legs (default on) keeps the rules' hands off your hedges.

Step 5 — Strategy risk settings (combined)

Everything here works on the basket as a whole — the sum of all legs — rather than any single leg.

Contract rollover

For positional strategies, Auto-rollover squares off and re-enters the whole position on the next expiry, N days before expiry (default 1; 0 = expiry day itself) at a time you set (default 15:00). Use it for strategies that should stay on continuously — a perpetual covered structure that never faces expiry day unattended.

Combined Wait & Trade

The basket-level version of Wait & Trade: hold all entries until the combined premium moves by your value. Units: pts (₹) — an absolute combined-premium level, pts_rel (default) — an offset from the combined premium when waiting starts, or %. A negative value waits for a move against the position (enter the straddle ₹5 richer than first quoted). The timeout sends orders to market anyway after S seconds (0 = wait forever). Any leg with its own Wait & Trade opts out of the basket-wide wait.

Combined Stoploss and Combined Target

The same stop/target machinery as a leg, applied to the basket:

Types — % of combined premium · combined premium distance (points) · ₹ on basket MTM (the default — a plain rupee stop on the whole position) · spot moves either side · spot rises · spot falls (each in points or % of spot) · basket |delta| · × ATR(period).

Actions when it fires:

Action What it does
just exit Fires the exit and nothing else
close current strategy (SL) / book the strategy (Target) Square off every open leg — the default
close strategy & re-enter strategy Flatten, then re-enter a fresh copy at the new ATM, × N times with a wait between
re-enter at original price Flatten, then wait for the combined premium to return to the original entry level and re-enter the same strikes, capped at N times
close all losing legs / close all profitable legs Partial exits by P&L
close all CE buys / CE sells / PE buys / PE sells Partial exits by side and direction
move SL to cost on profitable legs Breakeven-lock the winners
execute other leg Fire a specific leg (with delay)
execute other strategy Launch a saved portfolio as the follow-up

+ Add condition stacks extra basket conditions (same trigger vocabulary, including absolute LTP), combined with AND (all) or OR (any) (default OR). The group Check Frequency is tick or X-min close, and SL Wait (sec) debounces basket-level breaches. In backtests, which run on 1-minute bars, waits under 60 seconds are absorbed into the bar; longer waits require the breach to persist across bars.

Example. A 2-lot short straddle with Combined SL ₹3,000 on basket MTM and Combined Target ₹5,000 turns the whole position into a simple risk:reward bracket, whatever the individual legs do.

Combined Trailing, Profit Locking and Profit Trailing (₹)

Profit Locking/Trailing work independently of the Trailing switch — use locking alone for a simple "once I've seen ₹2,000, I keep at least ₹1,000" rule, or all three together for a full ratchet.

Additional gates

Two quieter protections also live at strategy level: a gap gate that can skip the day's entry when the underlying opens more than a set % away from the previous close — in either direction, gap-up only, or gap-down only — and an auto-hedge helper that can pick protection strikes by premium, by delta, by distance from ATM, or by strike distance. Use the gap gate on strategies whose edge dies on big gap days.

Step 6 — Execution

How orders actually reach the exchange.

Sequencing and failure policy

Entry quality guards

All default to 0 = off:

Trading days and sizing

Pick one day filter:

Sizing:

Notifications

Send to Telegram bot pushes entries, exits, stops and warnings to your Telegram.

Order types

Steps 7–8 — Summary & save

Show summary renders a one-page recap of every setting — read it before saving; it is the fastest way to catch a leg you forgot to configure. Then Save Strategy (saving again under the same name updates it), or Export JSON / Import JSON to move a strategy between accounts or keep versioned copies of your own.

Backtesting

The Backtest page replays a saved strategy bar-by-bar over minute-level options history — CE/PE prices, IV and OI per strike — with realistic fills, costs and slippage.

Setting up a run

Run Backtest consumes 1 credit per year of range (a 5Y run = 5 credits; portfolio mode multiplies by the number of strategies; Algo Unlimited plans show ∞). The credits chip shows your balance, queued runs land in Backtest History, and every finished report offers three views of the same replay — Plain, With Costs and With Slippage — so you see exactly how much friction eats.

Entry signals (optional)

Upload a CSV of external entry/exit signals and the backtest trades only when your signal says so. A TradingView Strategy Tester "List of Trades" export works as-is; or use the two-column template — a date-time (YYYY-MM-DD HH:MM, IST) and a signal code: ENTRY, EXIT, LONG ENTRY, LONG EXIT, SHORT ENTRY, SHORT EXIT (short codes E, X, LE, LX, SE, SX).

Example. Export your TradingView supertrend system's trade list, upload it, set Long only, and backtest "sell an ATM put whenever my TradingView system is long" — your indicator logic, the platform's option execution.

Parameter sweep

Tick Parameter sweep (single-strategy mode) to test variants side by side without cloning the strategy. The composer shows only the sections your strategy actually uses — per-leg stop rows (type, value, leg fate, action — the same dropdowns as the Builder) and any enabled adjustment rules' numbers plus the Guards. Name a variant, Save as variant (variants persist between sessions), or Reset to original. The original always runs as the baseline; results list one row per variant, best first, and Use this writes the winning values back into the strategy.

Example. Sweep a straddle's stop across 20% / 25% / 30% / 40% in four variants, run once, and let the table tell you where the stop-out cost stops paying for itself.

Reading the report

The report opens with a recap of the strategy's rules and headline stat chips, then:

Every run is saved to Backtest History — filter by text, symbol, or result (All · Profit · Loss), and click any row to reload the full report instantly without spending credits on a re-run.

How backtests differ from live

The backtester is built to be honest rather than flattering. Know these behaviours:

Supported markets & data coverage

Backtestable indices — NIFTY, SENSEX and BANKNIFTY carry the deep options archive (minute bars, IV and OI per ATM±10 strike). NIFTY history starts 2021-05-28 (about five years), SENSEX from 2023-05-15. The date pickers clamp to each symbol's coverage automatically.

Backtestable stocks — 211 stock F&O underlyings are backtestable from 2026-06-18 onwards, the day full-chain stock options capture began. Stock backtests use each name's real exchange lot size (RELIANCE 500, for example) and monthly expiries only — there are no weekly stock options, and the Builder's expiry dropdown reflects that. Anything dated before 2026-06-18 is outside the stock archive; don't expect stock runs to reach further back.

Weekly expiries exist only for NIFTY and SENSEX. BANKNIFTY, FINNIFTY, MIDCPNIFTY, BANKEX, NIFTYNXT50 and all stocks trade monthly series — the Builder offers only Current/Next/Far Monthly on those symbols.

MCX commodities are live-and-forward-test only: options on crude, natural gas, gold and silver (plus minis), and futures-only metals and index contracts. The backtester refuses MCX underlyings — use a free paper forward test to evaluate MCX strategies on live prices. MCX strategies can run to 23:30 IST with MIS square-off at 23:25.

Rule of thumb: if the symbol shows the "✓ backtest" badge, replay it against history; for everything else, save the strategy and forward-test it on the paper broker — same recipe, live data, zero credits.