Stocks opened strong and closed strong...with more than 3 stocks advancing for each 1 declining.
Why the rally?
Three primary catalysts. First, stocks were due for a bounce. The S&P 500 has been down 9 of the last 14 trading sessions. Many sectors—such as transports, and interest rate sensitive groups like REITs and utilities—have already entered correction territory, down 10 percent or more from their recent highs.
Second, mid-morning German Chancellor Angela Merkel signaled she was willing to meet her Greek counterpart in Brussels in a bid to restart the stalled talks, though it's unclear what if any compromises both sides are willing to offer.
Finally, an auction of 10-year Treasurys was well-received. Bond yields moved down a bit on that.
The rally was broad-based. All 10 sectors in the S&P 500 were up; eight of the 10 were up more than one percent, a fairly rare occurrence.
That oversold bounce was particularly evident in tech stocks, which have had a rough month...despite strong up moves of roughly two percent today, big names like Texas Instruments, Akamai, Microsoft and Intel are still down on the month.
The rally extended into commodities, as a weaker dollar drove prices higher for copper, iron ore and oil drove rallies in materials and energy stocks.
Another sign of strength: stocks advanced even though interest rates continued to advance. Many bank stocks—which do better when rates are higher—hit 52-week highs, including Citigroup, and Wells Fargo, and regional banks like PNC and KeyCorp.
But even sectors that might be hurt by higher rates, such as utilities, REITs, and home builders rallied as well.
One factor missing from the rally: volume. It was merely average, indicating much of the move was due to a lack of sellers, rather than enthusiastic buyers.
On Thursday, trader attention will be focused on May retail sales, expected to be up 1.3 percent after a disappointing flat April.