The 30-share BSE Sensex closed near the day's high, rising 76 points or 0.43% to 17,539, while the Nifty index gained 25 points to 5,327. The Sensex has now gained over 100 points or little over 0.5% in four sessions. The Nifty has gained 50 points through the week.
However, analysts remained optimistic of a breakout from the tight range.
"The short to medium term remains positive. The next level to watch is 5,350-5,450. Markets have strong support at 5,200," Somil Mehta of Sharekhan told NDTV Profit.
ITC and ICICI Bank were the top Sensex movers, adding over 50 index points to the BSE benchmark. Banking (1%) and FMCG (1%) stocks also saw buying interest.
On the Nifty index, 32 of the 50 stocks closed higher. Infra lender IDFC (3.2%) was the top gainer, followed by drug maker Cipla (2.6%), and private lender ICICI Bank (2%).
High beta metals (-0.4%) and realty (-0.4%) saw profit booking. Asian Paints (-2.4%) was the top Nifty loser, followed by state run oil explorer ONGC (-2.2%), and two-wheeler major Bajaj Auto (-1.7%). Bajaj Auto shares fell after it turned ex-dividend today.
The rupee, however, traded with over 1% losses against the dollar at 55.04 at 03.45 p.m.
European stocks were mixed ahead of the ECB decision. Markets in France and Britain were flat to positive, while Spain's benchmark traded with nearly 1% losses. Earlier, Asian stocks closed off the day's low.

