NEW YORK, Jan 7 ― Gold prices shot to an almost seven-year high yesterday as US-Iranian tensions drove demand for safe-haven assets and pushed a gauge of global equity markets lower, but shares on Wall Street rebounded on a less worrisome view of events.

Oil rose and the dollar weakened after the US killing last week of General Qassem Soleimani, the architect of Iran's drive to extend its influence across the Middle East. The death raised worldwide concerns that a regional conflict could erupt.

Iran's supreme leader, Ayatollah Ali Khamenei, wept in grief as hundreds of thousands of mourners thronged Tehran's streets for Soleimani's funeral, and the slain military commander's successor vowed to expel US forces from the region in revenge.

MSCI's gauge of stocks across the globe shed 0.07 per cent after European shares extended losses from Friday, the first day that markets reacted to Soleimani's death. The pan-European STOXX 600 index closed down 0.41 per cent.

Wall Street finished higher after reversing early declines and gains accelerated into the close, a sign investors were less concerned about the potential for rising hostilities.

The market's recovery from the 9/11 attacks in 2001 and the financial crisis a decade ago have made it easier to take lesser events in stride, said David Kelly, chief global strategist at JPMorgan Asset Management.

“This is a case that the market is probably under-reacting to a threat because we don't know what the Iranians may do to retaliate, and we don't know how the US administration may respond,” he said.

It is important not to get lulled into complacency because there is additional risk in the equity market after Soleimani's death and high stock valuations, Kelly said.

“In the past if you have a big increase in uncertainty, the market sells off first and asks questions later. We're in a different situation now,” he said.

The Dow Jones Industrial Average rose 68.5 points, or 0.24 per cent, to 28,703.38. The S&P 500 gained 11.43 points, or 0.35 per cent, to 3,246.28 and the Nasdaq Composite added 50.70 points, or 0.56 per cent, to 9,071.47.

Emerging market stocks lost 0.99 per cent, while earlier in Asia, China's blue-chip CSI300 index ended 0.4 per cent lower and Tokyo's Nikkei average fell 1.91 per cent to a one-month low.

Adding to tensions, Iran said it was taking another step back from its commitments under the 2015 nuclear deal with six powers that Washington withdrew from in 2018.

Spot gold hit US$1,582.59 (RM6,492.97) an ounce, its highest price since April 2013, but the precious metal later pared gains.

US gold futures settled 1.2 per cent higher at US$1,568.80.

The Swiss franc rose against the dollar on the worries about a broader escalation of Mideast conflict, and the safe-haven Japanese yen surged to a three-month high before weakening against the greenback.

Edward Moya, senior market analyst at OANDA in New York, said the market is still digesting the implications of the Iran events.

“We're having a little softness in the dollar against safe-haven currencies, but I think risk appetite will return. If Iran does retaliate, they know they're toast,” Moya said.

The dollar index fell 0.19 per cent, with the euro up 0.31 per cent to US$1.1193.

The yen weakened 0.34 per cent versus the greenback at 108.45 per dollar, while the dollar fell 0.28 per cent to 0.9701 franc.

The Treasury yield curve was flatter as the heightened US-Iranian tensions boosted demand for safe-haven assets. The 10-year US Treasury note fell 4/32 in price to yield 1.802 per cent.

The yield on Germany's 10-year bond dropped to its lowest level in over three weeks. The bond, a safe-haven that usually gains during global uncertainty or risk, briefly fell to -0.31 per cent. Yields later pulled back to -0.292 per cent, flat on the day.

Oil prices jumped, pushing Brent above US$70 a barrel, on the tensions in the Middle East.

Brent crude futures jumped more than 3 per cent to a high of US$70.74 a barrel at one point but pared gains to settle up 31 cents at US$68.91. US West Texas Intermediate crude gained 22 cents to settle at US$63.27 a barrel. ― Reuters