US stocks broke a six-day losing streak Friday, helped by better-than-feared JPMorgan Chase results that bared a $5.8 billion loss on its bungled London derivatives trading operation.
At the close the Dow Jones Industrial Average was up 203.82 points (1.62 percent) to 12,777.09.
The S&P 500-stock index added 22.02 (1.65 percent) to 1,356.78, while the tech-rich Nasdaq gained 42.28 (1.48 percent) to 2,908.47.
Stocks got a boost from expectations that Beijing will take more action to stimulate its economy after reporting growth had slowed to 7.6 percent in the second quarter, less than expectations.
Banks led the markets higher.
JPMorgan shares rocketed 5.8 percent to $36.02. The bank managed a $5 billion second-quarter profit even after accounting for $4.4 billion in losses during the quarter from its disastrous "London Whale" derivatives hedging operation in April, more than double the previous $2 billion estimate.
In total, the mismanaged trading operation has cost the bank $5.8 billion and could lose as much as $1.7 billion more.
But the figures looked good next to the $9 billion in losses media reports had suggested in recent weeks.
"The losses do seem under control," said Jim Sinegal at Morningstar.
Bank of America gained 4.6 percent, while Wells Fargo added 3.2 percent after turning in what it called a record quarterly profit of $4.4 billion, 18 percent higher than a year ago.
Big-box retailer Target rose 3.5 percent a day after revealing details of its ambitious expansion plan for Canada, where it says it will open 125-135 new stores by next year.
Hewlett-Packard was the Dow's only loser, falling 1.9 percent, taking the huge computer maker to a nearly 27 percent loss for the year.
On the Nasdaq, Microsoft rose 2.7 percent, Comcast 2.5 percent, and Oracle 2.6 percent while Apple lagged with a 1.0 percent gain and Facebook shares were flat.
Bond prices fell. The 10-year Treasury yield rose to 1.50 percent from 1.48 percent Thursday, while the 30-year was unchanged at 2.58 percent.
Bond yields go up as prices go down.