Friends,
Today is a continuation of calendar spreads through the eyes of a vol trader.
Recap
That post is a response to a conundrum that regularly presents itself to vol traders. These scenarios will feel familiar:
Harvesting VRP: "buying a time spread to harvest the front-month VRP" - selling expensive implied against cheaper realized while hedging with back-month options
Buying cheap vol: Vol screens low across the board, but front months are cheaper than back months. Do I buy the cheapest or pay up for duration?
Despite these situations being as common as dust, they don’t have an obvious playbook.
[Which is good because the moontower app has a point of view on this — because this is exactly the type of question you wrangle with when you run a vol book.]
My favorite approach to problems like this is not a backtest but a simulation. A sim is a controlled environment where you can fix assumptions, push a random variable, and get a platonic result that says “this is the shape of the p/l if the assumptions hold”. That might sound simplistic, but if you can’t forecast the output of the platonic case then you can benefit tremendously from some calibration. I predict you’ll benefit.
Understanding the simulation
The simulation approach I introduced uses a strike-resetting model to isolate vol realized vol’s contribution to the p/l — the variable you are betting on when you trade VRP. We initiate the stock at $100 then draw a return from a random walk of X vol. We compute the daily p/l of a portfolio comprised of:
a) the 100-strike calendar call spread (notice it is at-the-money)
b) a share position so that you start each day delta-neutral
So if the draw is +2% then we compute the p/l of the portfolio based on a stock price of $102 and time elapsing one trading day. We then reset the stock to $100 and repeat until M1 expires. We do this to minimize the noise of p/l path dependence that can occur if the stock gets far from the strike, choking off the dollar gamma in the process. In our sim, the dollar gamma starting each day follows the predictable glide path determined only by the DTE falling.
🔢Simulation Parameters
DTE for M1 and M2
IV for M1 and M2
Realized vol to sample daily changes from
In the earlier post, I stepped through 2 examples of buying the calendar spread for a flat IV (ie M1 IV and M2 IV are equal) and the IV is greater than the realized vol (ie positive VRP).
You expect to win in this scenario because you are short gamma and collecting theta while the realized moves are not large enough to punish the seller. The rent or “cost of gamma” was too high for the counterparty who owns M1. For the calendar spread owner, they lose on being long M2 but not as much as they gain on being short M1.
Now I gave 2 examples to highlight that the trade is indeed noisy because there is so much gamma on the last day before expiry that it can make or break the entire p/l.
Today’s post will not only address the noise but the starting approach to the question:
How do we evaluate the term structure premium when either harvesting VRP or getting long cheap vol?
🤖Included in the post is a webapp to let you run a single or thousands of simulations and step thru any single trial day by day to understand exactly how the p/l develops as well as the p/l distributon for the entire batch! You can even clone the app to modify it as you want.
Let’s start hacking away on the questions of whether we should be buying calendar spreads to collect the VRP.