US stock markets have closed at fresh records for the second day in a row. They were spurred on by energy stocks and miners, which benefited from rising oil and metal prices.

Wall Street's also been lifted in recent weeks by strong corporate results.

"We're almost three quarters of the way through earnings season and about 75% of the companies have beat the targets," said Randy Frederick, vice president of trading & derivatives at Charles Schwab. "That's the best number we've seen, in terms of beats, for the last three years."

The Dow Jones finished 0.5% higher at 20,269.37. The S&P 500 gained 0.4% to 2,316.10. And the tech-heavy Nasdaq rose 0.3% to 5,734.13.