US shares have come off earlier highs, but are still ahead in afternoon trading. The S&P energy index was up 1% as oil prices rose on Opec supply cuts and expectations of lower US inventories.
The S&P 500 financial index gained 0.5% after five straight sessions of losses.
Apple shares were down 0.6%, having been up close to 2% at the start of the trading day. On Monday, the iPhone maker unveiled its video streaming service, a credit card and an online gaming arcade.
With less than two hours to go to the close, the Dow Jones is up 0.31% at 25,595.2, the S&P 500 has gained 0.4% to 2,809.9, and the Nasdaq has added 0.39% to 7,666.9.