SutraLipi docs grammar v1

Symbols

A symbol literal is exchange:instrument:"name", plus expiry (and strike / CE-PE for options).

EquitySymbol nifty = NSE:IDX:"NIFTY BANK";
FutureSymbol fut   = NFO:FUTIDX:"NIFTY":Expiry.Monthly(0);
OptionSymbol ce    = NFO:OPTIDX:"NIFTY":Expiry.Weekly(0):25000:CE;
KindInstruments
Equity / indexEQ BE IDX SM ST A B T Z ZP
FuturesFUTSTK FUTIDX FUTCOM
OptionsOPTSTK OPTIDX · type CE / PE

Expiry

Expiry can be an explicit date or a relative series that resolves at runtime — so a script never rots when contracts roll. Weekly(0)/Monthly(0) is the current series, 1 the next.

The same four forms work on future symbols, option symbols and chain calls:

// on futures — NFO:FUTIDX:"name":<expirySpec>
FutureSymbol futDate    = NFO:FUTIDX:"NIFTY":'2026-07-30';                 // bare date literal
FutureSymbol futOnDate  = NFO:FUTIDX:"NIFTY":Expiry.OnDate('2026-07-30');  // explicit, keyword form
FutureSymbol futWeekly0 = NFO:FUTIDX:"NIFTY":Expiry.Weekly(0);            // current weekly
FutureSymbol futWeekly1 = NFO:FUTIDX:"NIFTY":Expiry.Weekly(1);            // next weekly
FutureSymbol futMonth0  = NFO:FUTIDX:"NIFTY":Expiry.Monthly(0);           // current monthly
FutureSymbol futMonth1  = NFO:FUTIDX:"NIFTY":Expiry.Monthly(1);           // next monthly

// on options — NFO:OPTIDX:"name":<expirySpec>:<strike>:<CE|PE>
OptionSymbol optDate    = NFO:OPTIDX:"NIFTY":'2026-07-30':25000:CE;
OptionSymbol optWeekly0 = NFO:OPTIDX:"NIFTY":Expiry.Weekly(0):25000:CE;
OptionSymbol optMonth1  = NFO:OPTIDX:"NIFTY":Expiry.Monthly(1):25000:PE;

Ready to run this? Build and backtest strategies in the SutraLipi algo trading platform — no-code builder, tick-level backtesting and one-click live execution. Browse all documentation topics.

Code copied — paste it into the editor with Ctrl+V.