Examples
EMA crossover
EquitySymbol nifty = NSE:IDX:"NIFTY BANK";
float[] emaFast;
float[] emaSlow;
onTick {
INDICATOR_EMA(emaFast, nifty, M15, 9, 1);
INDICATOR_EMA(emaSlow, nifty, M15, 21, 1);
// fast crosses above slow -> buy
if (emaFast[1] <= emaSlow[1] && emaFast[0] > emaSlow[0]) {
OrderSend(nifty, BUY, 1, 0, 0, 0, INTRADAY, DAY, "ema cross up");
}
// fast crosses below slow -> close
if (emaFast[1] >= emaSlow[1] && emaFast[0] < emaSlow[0]) {
OrderCloseBySymbol(nifty, INTRADAY, DAY, "ema cross down");
}
}ATM short straddle (relative expiry)
OptionChain chain = NFO:OPTIDX:"NIFTY";
EquitySymbol nifty = NSE:IDX:"NIFTY";
OptionSymbol ce;
OptionSymbol pe;
onStart {
ce = chain.ATM(CE, Expiry.Weekly(0), nifty);
pe = chain.ATM(PE, Expiry.Weekly(0), nifty);
OrderSend(ce, SELL, 1, 0, 0, 0, NORMAL, DAY, "straddle ce");
OrderSend(pe, SELL, 1, 0, 0, 0, NORMAL, DAY, "straddle pe");
}Time-based square-off
EquitySymbol nifty = NSE:IDX:"NIFTY BANK";
onTick {
int hour = HOUR(CandleTime(nifty, M1, 0));
if (hour >= 15) {
OrderCloseAll(INTRADAY, DAY, "eod square off");
}
}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.