Dear Forum
I found some time to calculate the total return of futures on the S&P 500 and compare it to the total return of the S&P 500 and the return on USD as a borrowing benchmark.
tl;dr: Futures are likely better for leverage. Considering the total return of S&P 500, I compute an equivalent borrowing cost of the risk-free rate +0.85%. But there are no withholding taxes on futures, whilst there are PILs for buying on margin.
Data Source
I gathered 3 series of data:
- S&P 500 futures spot prices (daily): From this github repo by Robert Carver. He has written a full blown open source trading system in Python including using data to automatically execute trades on IBKR. Iâ€™m not sure if the data itself is SP or ES futures, but likely ES, since I didnâ€™t find SP futures on IBKR. Also it shouldnâ€™t matter, since the spread is virtually 0 (mostly just one tick) and it would be easy to do arbitrage.
- S&P 500 total return (daily): Yahoo with the ticker ^SP500TR.
- Returns on USD (monthly): Portfoliovisualizerâ€™s CASHX. I couldnâ€™t find an authoritative source, but I believe it is 1-month Treasury Bills.
Method
To produce an adjusted closing price series for the futures I first calculated the factor of selling the front-month contract and buying the next back-month contract. This factor represents how many percent less (more) contract you hold after executing the rolling. I started with 1 contract and multiplied it with the factor each time I rolled. For rolling I took the last prices on the last trading day of the front-month contract. There 4 expiry dates and contracts per year. To finally get the adjusted price I just multiplied the amount of contracts left with the price of the front-month contract on that date and time.
Then I combined this with the data of SP500TR. I removed all dates that didnâ€™t have complete data and got a composite series from 1988-01-04 to 2022-12-29. I normalized the price data so that each series starts with 1. The closing of SP500TR and my futures series can diverge by some hours. This error has a maximum of a daily movement, which will be greatly diminished by over 30 years when annualized. To double check I have additionally calculated my results by each year.
The factor of dividing the returns of the SP500TR by the returns of futures series can be interpreted as financing cost of buying the S&P 500 with borrowed money. This was then compared to the return of ultra-short-term treasury bills. For the yearly calculation, I annualized the return from 21 days around the start of the year to the 21 days around the end of the year, and took the median of the implied financing cost.
Results
This generates the following table for financing costs and their difference:
Year | CASHX | Futures | Î” |
---|---|---|---|
1988 | 6.80% | 6.56% | -0.24% |
1989 | 8.61% | 9.00% | 0.39% |
1990 | 7.89% | 8.92% | 1.03% |
1991 | 5.71% | 6.42% | 0.71% |
1992 | 3.57% | 3.99% | 0.42% |
1993 | 3.05% | 3.41% | 0.36% |
1994 | 4.20% | 4.19% | -0.01% |
1995 | 5.71% | 6.26% | 0.55% |
1996 | 5.17% | 5.90% | 0.73% |
1997 | 5.22% | 6.12% | 0.90% |
1998 | 4.97% | 5.78% | 0.81% |
1999 | 4.77% | 5.55% | 0.78% |
2000 | 5.99% | 7.23% | 1.24% |
2001 | 3.70% | 4.95% | 1.25% |
2002 | 1.65% | 2.13% | 0.48% |
2003 | 1.04% | 1.30% | 0.26% |
2004 | 1.32% | 1.53% | 0.21% |
2005 | 3.14% | 3.49% | 0.35% |
2006 | 4.82% | 5.21% | 0.39% |
2007 | 4.56% | 5.53% | 0.97% |
2008 | 1.53% | 3.67% | 2.14% |
2009 | 0.16% | 0.73% | 0.57% |
2010 | 0.14% | 0.33% | 0.19% |
2011 | 0.07% | 0.40% | 0.33% |
2012 | 0.08% | 0.27% | 0.19% |
2013 | 0.05% | 0.62% | 0.57% |
2014 | 0.03% | 0.58% | 0.55% |
2015 | 0.05% | 0.62% | 0.57% |
2016 | 0.30% | 0.51% | 0.21% |
2017 | 0.88% | 1.47% | 0.59% |
2018 | 1.90% | 2.44% | 0.54% |
2019 | 2.13% | 2.16% | 0.03% |
2020 | 0.44% | 0.64% | 0.20% |
2021 | 0.04% | 0.55% | 0.51% |
2022 | 1.82% | 1.89% | 0.07% |
Geometric average |
Geometric average |
(Median) Î” | |
Yearly Data |
2.87% | 3.41% | 0.51% |
1988-01-04 to 2022-12-29 |
2.87% | 3.42% | 0.52% |
We can see that both methods lead to very similar results:
- Smoothing over data by calculating 21 yearly returns, and taking the median of the resulting implied financing cost for each year. Then taking the median from the resulting yearly deltas for the final annual delta.
- Directly calculating delta from the difference between first and last adjusted price.
Using averages instead of medians makes nearly no difference and changes the delta to 0.55%.
Discussion
There are some spikes with the deltas around some very specific dates 2008, 2000, 2001, 1990. For the latest 3 I could imagine that the reason is insecurity about financial market stability.
There are also some very low deltas: 2022, 2019, 1994, 1988. I tried explaining it with rising interest rates (going long futures means being short bonds with duration equal to time to expiry). But it doesnâ€™t fit.
Now should you buy the S&P 500 with futures, or should you buy ETF on margin?
In addition to the calculated delta, having futures positions means you have to put up collateral. At IBKR that means cash and it also doesnâ€™t pay any interest. As of today, the initial margin requirement is 13693.95 USD for a contract size of 216500 USD. The contract size is calculated from multiplying the underlying by the multiplier, so 4330 * 50 USD. So that blocks about 6.33% of your allocation to the S&P 500. Taking IBKRâ€™s USD borrowing benchmark of 5.38% that means an additional annual opportunity cost of 0.34%. Of course these numbers are subject to change, but I think we are in a rather normal market, so they could be somewhat representative. Also your opportunity could be something else than getting the risk-free rate.
This means that you can buy the S&P 500 with total return for about the risk-free rate +0.85%. You could say, that with over a million USD you can get something better (+0.75%) at IBKR. But futures return is not subject to withholding taxes. It also does not subject itself or any other distribution paying securities to 30% unrecoverable withholding tax, because your broker lent 140% of your debit balance and gives you PILs (payment in lieu) instead of ordinary dividends.
For over 50 million USD you can borrow for +0.50%. Before you get average anywhere close, you will be passing 100 million USD. There is bound to be more efficient schemes than being an IBKR customer at that size.
I say futures win. But I would be very happy to have some paper to confirm or invalidate my results.