The Dow Jones industrial average has closed within 20 points of 12,000, its highest point since June 2008.
Technology stocks rose after Intel increased its dividend and said it would buy back more of its stock. The company gained 2%.
Materials companies jumped after a report showed that economists are more positive than at any time since the start of the Great Recession. Aluminium maker Alcoa gained 4%.
At the market close, the Dow was up 109 points, or 0.9%, to 11,981. The S&P 500 is up 8, or 0.6%, to 1,291. The Nasdaq composite is up 28, or 1%, to 2,718.
Three stocks rose for every one that fell on the New York Stock Exchange. Volume came to 961 million shares.