Spot gold was up 0.7pc at $1,351.16 per ounce at 1247 GMT, after hitting its highest since April 2018 at $1,358.04 earlier in the session.
Prices have risen 0.8pc so far this week, keeping the metal on track for its fourth consecutive weekly gain. US gold futures climbed 1pc to $1,356.9 an ounce.
"In people's minds there is a sense of a deeply darkening macroeconomic backdrop, in particular the likelihood that the US will drop interest rates quite soon," said Ross Norman, chief executive at bullion dealer Sharps Pixley.
Investors are getting ahead of the curve by buying gold in expectation the US Federal Reserve will have to reverse its previous tightening policy, by extension pressuring the dollar and lifting gold, Norman said.
China's industrial output growth slowed to a more than 17-year low of 5pc in May, the latest sign of weakening demand in the world's second-largest economy as the US ramps up trade pressures.
The impact of the US-China trade war was also evident in the US labour market, which saw an unexpected rise in the number of Americans filing applications for unemployment over the last week.
Recent soft US economic readings have also boosted expectations of a Fed rate cut. In addition to weighing on the dollar, lower interest rates also cut the opportunity cost of holding non-yielding bullion.
Meanwhile, world stocks struggled as Chinese data rekindled concerns over the global economy, while fears of a new US-Iran confrontation intensified.
Iran has rebuffed blame from Washington for this week's attacks on two oil tankers in the Gulf of Oman, and affirmed its responsibility for security in the Strait of Hormuz, through which almost a fifth of the world's oil passes, state radio reported.
The price action of gold is attracting new investors and a fresh multi-year high is a possibility, said Ronan Manly, a precious metals analyst at BullionStar Singapore.
"This would bring momentum to the gold price and would spur further western gold demand, but could bring in more selling from the East."
Elsewhere, silver gained 1pc to $15.04, while platinum was up 0.2pc at $808.95.
Palladium rose 0.8pc to $1,455.80 after hitting its highest since April 29 at $1,466.05 earlier in the session.
The autocatalyst metal has risen about 7pc so far this week, its biggest weekly gain since the week ended Sept. 21, 2018.