The loonie traded 0.3% higher at 1.2730 to the greenback, or 78.55 U.S. cents, after touching its strongest since May 5 at 1.2729. For the week, the currency was up 0.8%.

"The risk mood is clearly a big driver of the CAD's performance but firm commodities and modestly supportive (interest rate) spreads are perhaps adding to CAD tailwinds," strategists at Scotiabank, including Shaun Osborne, said in a note.

U.S. stock market benchmark the S&P 500 index was set for its best weekly gain since mid-March as upbeat earnings, strength in consumer spending and signs of inflation peaking eased worries about a sharp slowdown in economic growth.

Oil, one of Canada's major exports, was up 0.5% at $114.70 a barrel as signs of a tight market supported prices ahead of the U.S. Memorial Day holiday weekend, the unofficial start of the peak U.S. summer demand season.

Gains for the loonie came ahead of a Bank of Canada interest rate decision next Wednesday. The central bank is expected to hike by half a percentage point for a second straight meeting to tackle soaring inflation.

Canadian government bond yields were mixed across the curve. The 10-year was little changed at 2.793%, after touching a four-week low of 2.743% on Wednesday.

(Reporting by Fergal Smith; editing by Jonathan Oatis and Richard Chang)

By Fergal Smith