Energy storage systems have the potential to deliver value in multiple ways, and these must be traded off against one another. An operational strategy that aims to maximize the returned value of such a system can often be significantly improved with the use of forecasting - of demand, generation, and pricing - but consideration of battery degradation is important too. This paper proposes a stochastic dynamic programming approach to optimally operate an energy storage system across a receding horizon. The method operates an energy storage asset to deliver maximal lifetime value, by using available forecasts and by applying a multi-factor battery degradation model that takes into account operational impacts on system degradation. Applying the method to a dataset of a residential Australian customer base demonstrates that an optimally operated system returns a lifetime value which is 160% more, on average, than that of the same system operated using a set-point-based method applied in many settings today.