Gold prices surged to their highest since October 2012 on Tuesday, driven by a weakness in the U.S. dollar and widespread monetary stimulus packages by central banks as a jump in coronavirus cases dents the economic outlook.
Spot gold climbed 0.7% to $1,767 per ounce, having hit $1,768.96, its highest since October 2012. U.S. gold futures were up 0.9% to $1,782.30 per ounce.
"The tsunami of stimulus coming in from everywhere is not only inflationary but also painting a weaker picture for the economy and making gold look attractive," said Edward Meir, analyst at ED&F Man Capital Markets.
Gold has gained nearly 16% this year supported by global stimulus measures since the non-yielding metal is considered a hedge against inflation and currency debasement.
The dollar was down 0.5% at 96.55 against a basket of currencies, making gold cheaper for non-U.S. currency holders.
More than 9.14 million people have been reported to be infected by the coronavirus globally and 473,031 have died, a Reuters tally showed on Tuesday.
Gold's gains came despite a rise in equities driven by encouraging economic data and after U.S. President Donald Trump tweeted the U.S.-China trade pact was "fully intact".
"Gold's biggest enemy right now is if other markets grab attention and capital," said Tai Wong, head of base and precious metals derivatives trading at BMO.
"Barring a poor close under $1,750 in the coming days the October 2012 high of about $1,800 should only be a matter of time, a week, perhaps less."
Holdings in SPDR Gold Trust , the world's largest gold-backed exchange-traded fund, rose 0.58% to 1,166.04 tonnes on Monday, a level last seen in April 2013.
Elsewhere, palladium was little changed at $1,937.37 per ounce, platinum was up 1.1% at $831.03 per ounce and silver rose 0.6% to $17.93 per ounce.