I'm trying to build a model that values futures for equity indicies like SPX. For example, this product link here. I know that the model is simple (please correct me if I'm wrong):

$$ S_{T} =S_{0}e^{(r-d)(t-T)} $$ where $r$ is the risk-free rate, $d$ is the dividend yield/equity repo/cost of carry, $S_0$ is the underlying price (at 4:30est for SPX), and $S_T$ is the $T$-maturity futures price as of $t$.

I'm struggling to use real world data to tie out to real world prices. I'm using Bloomberg data for the underlying, the $t-T$ point of the 3m LIBOR curve for $r$, and an interpolated value for $d$ using implied dividend yields from Markit dividend yield curves. That being said, the $d$ value is negligible (<0.2%), and should probably be excluded from this example to avoid confusion, but I kept it in for completion.

Surprisingly, I'm finding this to not tie out to real world end of day futures prices. Many days, I see prices move in different directions (i.e. futures price goes up by \$5 while the underlying went down by \$30). I would expect some noise in the calculation, but given how simple futures are, I would have assumed futures would move in the same direction as the underlying almost every single day. Am I doing something wrong here, or do I have unreasonable expectations of the market data + model?

  • $\begingroup$ What "end of day prices" are you using? Up until 2020/10/23 the settlement price for S&P futures was the 16:15 NY (15:15 Chicago) price, while the end of day price for the index was the 16:00 New York price. Since 2020/10/26 both prices are 4pm NY prices. MAKE SURE YOU ARE USING SIMULTANEOUSLY OBSERVED PRICES FOR THE FUTURES AND THE UNDERLYING. Prices can move quite a bit in 15 minutes. Bloomberg in particular reports the setllement price for futures when daily prices are requested. $\endgroup$ – noob2 Jan 14 at 22:20
  • 1
    $\begingroup$ "Bloomberg in particular reports the setllement price for futures when daily prices are requested" - this depends on your settings in GFUT under "94) Price Settings" $\endgroup$ – user42108 Jan 14 at 23:50
  • $\begingroup$ True, I set GFUT a long time ago and never changed it, but it could be a different setting for you. Please check. $\endgroup$ – noob2 Jan 15 at 12:03
  • $\begingroup$ Thanks @noob2! That's very helpful. I checked GFUT and it's set to settlement price. Fascinating that the settlement times changed recently. In fact, I running my model through that date, so errors are starting to make sense. $\endgroup$ – John Matok Jan 15 at 16:13
  • $\begingroup$ You can red about the settlement time change here (it was announced in advance of course) cmegroup.com/education/articles-and-reports/… $\endgroup$ – noob2 Jan 15 at 16:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.