Futures & options on Stretus
Derivatives on Stretus today are build, backtest and paper only.
Live derivative entry is refused by the execution engine. The reason is specific and worth knowing: the live exit path is not implemented. A capability that can open a position it cannot close must not be reachable, so entry is blocked with a typed, non-retryable refusal rather than left available.
Two independent controls enforce this:
FNO_ENABLEDdefaults to false, so the live arms are not taken at all.- Even with the flag on, a safety gate in the entry path refuses live entry while live exit is unsupported, logging the refusal at warning level for an operator to see.
What this means for you: build derivatives strategies, backtest them, run them in paper. Do not plan around live derivative execution until this page says otherwise.
What is supported
| Capability | Build | Backtest | Paper | Live |
|---|---|---|---|---|
| NSE index options | Yes | Yes | Yes | No, refused |
| NSE stock options | Yes | Yes | Yes | No, refused |
| NSE index futures | Yes | Yes | Yes | No, refused |
| NSE stock futures | Yes | Yes | Yes | No, refused |
| Crypto perpetual futures | Yes | Yes | Yes | No, refused |
| Multi-leg structures | Yes | Yes | Yes | No, refused |
The asset-class taxonomy covers equity_option, index_option, equity_future, index_future,
crypto_perpetual, crypto_dated_future and crypto_option.
Why the docs cover it at all
Because it is reachable. The AI engine will construct an F&O strategy today, the backtester will price it with a full derivatives cost model, and the paper engine will run it. A capability a user can reach and the documentation does not mention is worse than either extreme.
The honest position is: the research path is real and usable; the execution path is deliberately closed. Both halves of that sentence matter.
Building one
The builder treats a derivative as an underlying plus a derivative specification. The symbol is
always the underlying (RELIANCE, NIFTY, BTC_USDT) exactly as for a cash or spot strategy.
Then the derivative detail:
| Element | Values |
|---|---|
| Instrument type | future, option |
| Right (options) | call (CE), put (PE) |
| Strike rule | ATM, ATM±n, OTM+n, ITM+n, or ABS:<price> |
| Expiry rule | nearest, weekly, next_weekly, monthly, next_monthly, or a date |
| Direction | Buying a call or put is long_only; writing is short_only |
Examples that work:
build a long straddle on NIFTY, monthly expiry, ATM
buy a NIFTY 25000 call, weekly expiry, when RSI crosses above 60
short a BANKNIFTY straddle on expiry day when India VIX is below 14
long RELIANCE futures, monthly, when price breaks the 20-day high
Strike resolution
Strike rules resolve against the currently listed strike ladder for that underlying, expiry and option type. It is fail-closed:
| Rule | Needs live spot | Behaviour |
|---|---|---|
ABS:25000 | No | Uses that exact strike |
ATM | Yes | The listed strike nearest to spot |
ATM+2, OTM+1, ITM+3 | Yes | Ladder offsets from ATM |
Offsets are oriented by the option right: for a call, OTM is above ATM and ITM below; for a put, the reverse. An unsupported rule, a missing spot, an empty ladder, or an offset that runs off the end of the ladder all produce an error, not a nearest-guess substitute.
Multi-leg structures
Named structures the platform classifies:
| Category | Structures |
|---|---|
| Single-leg directional | long_future, short_future, long_perpetual, short_perpetual |
| Single-leg options | long_call, short_call, long_put, short_put |
| Vertical spreads | bull_call_spread, bear_call_spread, bull_put_spread, bear_put_spread |
| Straddles | long_straddle, short_straddle |
| Strangles | long_strangle, short_strangle |
| Four-leg | iron_condor, iron_butterfly |
| Unnamed | custom |
custom is the honest answer, not a failureA ratio spread, a calendar, or a mixed-kind basket is classified as custom rather than as
something almost right. The structure label is used as a filter, so a wrong label would silently put
a position in the wrong bucket. Treat custom as "unknown shape", not as an error.
Leg cap: 10 legs per group by default, with a platform ceiling of 20. Configurable per tenant within that ceiling.
Details: Multi-leg structures.
Costs
Derivatives carry their own charge family, not a variation of the equity one. Options are charged STT on the sell leg only however long the position is held, plus stamp duty on the buy leg, exchange transaction charges, IPFT, the SEBI turnover fee, 18% GST on the fee components, and a flat ₹20 per order.
Full rates: Fees & charges.
Margin and lot size
Two things that make derivatives sizing fundamentally different from cash:
Lot size. Positions are constrained to whole lots. The smallest possible position may be larger than your intended risk, which means per-trade risk sizing cannot always be satisfied.
Margin. A margined position requires margin, not full notional. Margin is currently computed per leg on a gross basis: there is no spread or hedge benefit, so a bull call spread reserves margin as if the two legs were unrelated. That is conservative and it overstates the requirement for genuinely hedged structures.
Details: Margin, leverage & lot size.
What exists in the execution engine
Documented for completeness, since it explains what "paper works, live does not" actually rests on:
| Component | State |
|---|---|
| Paper executor and coordinated close | Implemented |
| Live executor | Implemented for entry; entry gated off pending exit |
| Live exit routing | Not implemented, the reason live entry is refused |
| Expiry handling and expiry worker | Implemented |
| Group exit planning and costs | Implemented |
| Kill switch: halt new entries at global, tenant or strategy scope | Implemented, fail-closed, an unreadable halt state blocks |
| Operator force-close surface | Implemented |
| Margin reservation and validation | Implemented |
| Spread/hedge margin benefit | Not implemented |
| Reconciliation and position projection | Implemented |
| Payoff computation | Implemented |
The kill switch's fail-closed behaviour is worth noting as a genuine safety property: if the halt state cannot be read, new entries are blocked rather than allowed.
Risk
Derivatives risk is materially heavier than cash equity or spot crypto, and it has its own page: Derivatives risk disclosure.
Read it before you build one, even for paper, because a paper habit becomes a live habit if the execution path ever opens.