BENGALURU, Oct 17 (Reuters) - Indian shares ended higher for a second straight session on Monday, lifted by banking stocks, although gains were capped by losses in metals.

The NSE Nifty 50 index was 0.73% higher at 17,311.80 at close, and the S&P BSE Sensex advanced 0.85% to 58,410.98.

"Rallies triggered by market positioning will be temporary because there won't be any follow-on fundamental support for the rally," said V K Vijayakumar, chief investment strategist at Geojit Financial Services.

Strong flows into domestic mutual funds and optimism from retail investors could lend some stability ahead, even as strong dollar and high bond yields in U.S. may nudge foreign investors to sell, Vijayakumar said.

Foreign institutional investors had sold net 10.11 billion Indian rupees ($122.69 million) worth of equities on Friday, while domestic investors bought net 16.24 billion rupees worth of shares, as per provisional data available with the National Stock Exchange.

In Mumbai trading on Monday, Nifty's private bank sector , energy and public sector bank sub-indexes were among the top gainers, rising between 1.42% and 3.47%.

Nifty's metal index fell 0.97%.

Aluminium products maker Hindalco Industries and JSW Steel Ltd were down 2.2% and 1.4% respectively, and were among the top losers on the Nifty 50 index.

India's largest lender State Bank of India and Bajaj Finserv were among the top boosts to the benchmark Nifty index, advancing 3.1% and 1.8% respectively.

Thangamayil Jewellery Ltd closed 9.7% lower after the jewellery maker posted a 40.3% fall in September-quarter profit.

ACC Ltd reversed course and closed 1.2% higher after the cement maker said recent cooling off in energy costs will impact positively in the coming quarters.

It had reported a surprise loss in the September-quarter after a surge in fuel and power expenses.

In the broader market, European shares edged higher on Monday, as relief set in that Britain's new finance minister had ripped into the unfunded tax cuts that had triggered a turmoil. ($1 = 82.4000 Indian rupees) (Reporting by Rama Venkat in Bengaluru; Editing by Savio D'Souza and Neha Arora)