In the prior form, running spot-price-history would yield a NullPointeException.  This is because GregorianCalendar.add(...) mutates the calendar in place and returns void.  Further, adding hours rather than (- hours) would create a window of time starting from now spanning 1 day into the future, which wouldn't create interesting results.

I've tried to stay within the realm of the original intent, using the same functions, but limiting the existence of the volatile calendar object into its own tiny (let).