S&P 500 up 10% at midyear despite Iran war, trade conflict