S&P 500 tops 7,000 for first time as truce hopes fuel rally