The Dow and the S&P 500 inched up on Friday, hitting new highs, after better-than-expected monthly US retail sales data offset disappointing results from big banks.
Retail sales rose more than expected in June as Americans bought motor vehicles and a variety of other goods, reinforcing views that economic growth picked up in the second quarter.
However, tepid results from Citi and Wells Fargo failed to match up to the expectation set by JPMorgan's strong numbers on Thursday.
Citi's second-quarter profit dropped less than expected, while Wells Fargo's profit fell in line with expectations.
Still, Citi shares were off 0.5%, while Wells Fargo's dropped 2.3%. The S&P 500 financial index dipped 0.4%, with Wells Fargo the biggest drag.
At 9:37 am ET (1337 GMT), the Dow Jones Industrial Average was up 29.42 points, or 0.16%, at 18,535.83. It hit 18,557.43, marking its fourth intraday high in a row.
More From This Section
The S&P 500 was up 3.21 points, or 0.15%, at 2,166.96. The index hit 2,169.05, its fifth straight intraday record.
The Nasdaq Composite was up 5.45 points, or 0.11%, at 5,039.51.
The three indexes are on track to post their third straight week of gains.
Seven of the 10 major S&P indexes were higher, led by a 0.6% rise in the healthcare sector.
Strong China data helped push world stocks to eight-month highs, but an attack in Nice, France that killed at least 84 people and injured scores weighed on sentiment.
"I am optimistic about the (US) markets today, but we are going to see some reaction to the attack in Nice," said Robert Pavlik, chief market strategist at Boston Private Wealth in New York.
Following news of the attack, shares of travel operators and airlines dropped on fears about travel to Europe.
Priceline, Expedia and TripAdvisor were down 1-2%, while Delta, Southwest and United Continental were also down 1-2%.
Herbalife jumped 6.6% to $63.25 after the weight-loss products maker agreed to pay the FTC $200 million to avoid being classified a pyramid scheme.
Advancing issues outnumbered decliners on the NYSE by 1,601 to 1,016. On the Nasdaq, 1,356 issues rose and 898 fell.
The S&P 500 index showed 22 new 52-week highs and no new lows, while the Nasdaq recorded 33 new highs and eight new lows.