America's broadest stock index hit its highest level in four years, as shares across North America were going through a strong buying spree today.

The S&P 500 hit 1,432 late in the afternoon, up 28 points or almost two per cent, the highest level since May 2008.

The main driver of optimism was word out of Europe that the ECB would buy "unlimited" amounts of bonds from debt-laden European governments, in an attempt to keep their borrowing costs down. That's in effect a new round of stimulus, giving governments more cash at their disposal to inject into the system, and investors view that as a strong positive for stocks.

"It will help the markets in the short term but what it won't do is solve the problem long term," said Sadiq Adatia, chief investment officer at Sun Life Global Investment.

"I think people are feeling good that there is some progress happening in the eurozone, no matter how small it may be and that will get people's confidence a boost."

The Dow Jones Industrial Average also gained about two per cent, up 244 points, to 13,291. In Toronto, the benchmark S&P/TSX composite index was also higher, up 139 points, or more than a per cent, to 12,149.

The Canadian dollar joined the party, gaining half a cent to 101.46, it's highest level in four months.

Oil was lower, down almost $1 a barrel in New York to $94.77 US.

ECB president Mario Draghi said the program will have no set limit and be a "fully effective backstop."

But that doesn't mean there are no catches. The program comes on the condition that any country wanting the ECB to buy its bonds must first officially ask for help from Europe's bailout funds and agree to "strict and effective" budget policy conditions.

With files from The Canadian Press