I used the daily returns of SPX Index, SPY US Equity, and SPA Index. I then calculate their standard deviation as hedging instruments with respect to SPX Index, i.e., (spx_ret - spy_ret) or (spx_ret - spa_ret). However, the results I obtained were strange:

SD (spx_ret - spy_ret) = 0.0012959
SD (spx_ret - spa_ret) = 0.0006794

How can an ETF have a larger tracking error? I thought Futures are almost like a "perfect hedge" and ETFs have huge tracking error due to management and rebalancing fees. Am I missing something in the calculation?

  • 1
    $\begingroup$ 1) isn't the ETF error larger (0.0012959 > 0.0006794)? 2) I would expect the ETF tracking error to be lower. It holds the actual index components and has fewer transactions than the futures index. The futures contracts must be rolled periodically, while the ETF only needs to transact for index constituent changes. $\endgroup$ Jul 16, 2014 at 11:52
  • $\begingroup$ yes typo. etf error is larger $\endgroup$
    – Mariska
    Jul 16, 2014 at 23:40

1 Answer 1


It depends on your ETF. Some have synthetic exposure to the index sold by a sponsor (ie someone give them exactly the performance of the index) but this has a cost (a constant / deterministic drag on the NAV of your ETF which doesn't appear in your tracking error).

Futures on the other hand have basis, are sensitive to changes in implied dividends and short term rates, and rolling costs, so they only perfectly track your index if you look at them between 2 rolling dates.

  • $\begingroup$ how should I "adjust" the futures price for the factors you mentioned? $\endgroup$
    – Mariska
    Jul 16, 2014 at 23:41
  • $\begingroup$ You can't really adjust, those are traded instruments so whatever price they finish at is the "right" price. If you want to formalize it a little (assuming no dividends ie you're looking at an excess-return index), the value of your future is $\exp(-r(T-t))S_t$ with $T$ the expiry of the future (it's an arbitrage argument, you borrow money, buy the stocks etc.). If you want to be really precise, you also need to take into account the margining of the future (you post cash to the exchange which in turns gives you interest). $\endgroup$
    – Matt B.
    Jul 17, 2014 at 10:49
  • $\begingroup$ hwo about rolling costs? If I'm using the generic futures for backtesting, how should I handle the rolling costs? $\endgroup$
    – Mariska
    Jul 18, 2014 at 0:39
  • 2
    $\begingroup$ Agree, it depends on the ETF and actual asset class, in case of VIX futures vs VIX ETF (VXX) the ETF has a much larger tracking error. Case in point, VIX Index advanced 39% at some point while the ETF advanced less than 9%. The futures fared a little better. The high tracking error (to the index) is related to several VIX specific issues but this is an example where generally the ETF tracks worse than the futures. $\endgroup$
    – Matt Wolf
    Jul 18, 2014 at 6:08
  • $\begingroup$ @Mariska : your rolling costs are trading costs, so they can be a bit hard to compute but sometimes you have "rolling contracts", where you buy the new contract / sell the old one (or the opposite). In that case, you simply have a bid-offer (provided that you roll close to the expiry). The generic future in bloomberg has the bad tendency to drop around the rolling dates so you need to be extra careful on the backtest. $\endgroup$
    – Matt B.
    Jul 18, 2014 at 10:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.