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 program. Lower yields help gold prices by reducing the opportunity cost of holding non-yielding bullion.
Spot gold was up 0.9 percent at $1,255.50 an ounce, the highest since June 29, and crossing its 50-day moving average of $1,249.30 for the first time since June 15. It was on track for a weekly gain of 1.6 percent.
U.S. gold futures for August delivery settled $1,254.90 per 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, was up 1.27 percent at $16.497 an ounce, the highest since July 3. Silver has risen 3.1 percent this week.
was 0.98 percent higher at $935.40 an ounce and on track for a weekly gain of around 2 percent.
was mixed at $842.35 an ounce, and is set for a weekly fall of around 1 percent.