Gold was set for its biggest weekly gain in two months on Friday as a surging euro pushed the dollar to its weakest since June 2016, making bullion cheaper for holders of other currencies.
Bond yields also fell after Mario Draghi said on Thursday the European Central Bank was in no rush to scale back its asset purchase programme.
Lower yields help gold prices by reducing the opportunity cost of holding non-yielding bullion.
Spot gold was up 0.2 percent at $1,247.09 an ounce at 0946 GMT, after earlier touching $1,248.35, the highest since June 29. It was on track for a weekly gain of 1.5 percent.
U.S. gold futures for August delivery were 0.1 percent higher at $1,246.70 an ounce.
While gold was benefiting from the dollar`s weakness against the euro and the move in yields, expected interest rate rises by the U.S. Federal Reserve would limit gains and it would remain in a $1,200-$1,250 range, ABN AMRO analyst Georgette Boele said.
Gold is highly sensitive to rising interest rates because they cause bond yields to rise and tend to boost the dollar.
The Fed`s rate setting committee is due to meet on July 25 and 26.
Gold was hitting resistance at its technically important 100- and 50-day moving averages, both around $1,250.
"We look to a break through the 100- and 50-day moving averages as a pivot point for further gains," MKS PAMP trader Sam Laughlin said in a note.
Support was at the 200 day moving average around $1,230, analysts at ScotiaMocatta said.
Falling bond yields and a weakening dollar have helped gold rise 3.5 percent from a low of $1,204.45 on July 10, but this was driven by short-covering and not backed by demand for physical metal, Julius Baer analyst Carsten Menke said.
"Unless investment demand improves, the positioning-driven recovery should run out of steam," he said in a note.
Holdings in the SPDR Gold Trust, the world`s largest gold-backed exchange-traded fund, have fallen 4.3 percent, or 1.2 million tonnes, this month.
In other precious metals, silver was up 0.5 percent at $16.37 an ounce, close to Thursday`s two-week high of $16.42 and up 2.6 percent this week.
Platinum was 0.2 percent higher at $928.25 an ounce and on track for a weekly gain of 1.2 percent. Palladium was up 1 percent at $850.95 an ounce, but set for a weekly fall of around 1 percent.
(This article has not been edited by Zeebiz editorial team and is auto-generated from an agency feed.)
Get Latest Business News, Stock Market Updates and Videos; Check your tax outgo through Income Tax Calculator and save money through our Personal Finance coverage. Check Business Breaking News Live on Zee Business Twitter and Facebook. Subscribe on YouTube.