Binomial tree: convergence and oscillations
Implementation: https://emre-ozer.github.io/mf/mfcm3/index.html
In the following, I will consider European call and put options (for which there exists exact analytic prices). The quantity by which we measure the rate of convergence is the percantage error:
As we will see, the tree price displays two types of oscillations, which I will call (1) even-odd oscillations and (2) large-N oscillations. Throughout this analysis, I fix the following parameters:
The general idea is to investigate how the convergence depends on \(N\) and \(S/K\). We will consider at-the-money, slightly in/out-of-money and far in/out-of-money cases.
Case 1: at-the-money \( (S=K=100) \)
First, we will look at the simpler type of oscillation: even-odd oscillation. This is simply the statement that tree prices for even and odd \(N\) follow different trends (they look independent). This is evident at the small \(N\) case, so let us consider a call option with \(N \in \{4,5,\ldots,49\}\). Let us also consider the even-odd averaged price, that is, the price obtained by taking the averaged prices of \(N\) and \(N+1\) layer trees.
Even-odd oscillations are evident: one curve corresponds to odd values of \(N\), and the other to even \(N\). It is important to note how quickly the tree price converges to the analytic price for an at-the-money option: even at \(N\sim 50\), the error is of order \(\mathcal{O}(10^{-3})\), less than one percent.
Intuitively, it makes sense that there exists such even-odd oscillations, as the final layer can either include the strike price or not depending on the number of final nodes.
Finally, the averaged price converges much faster thanks to the even-odd oscillations. For a given \(N\), it takes only twice as long to compute the averaged price yet it yields errors much smaller than a factor of two compared to the non-averaged case. It is definitely worthwhile to compute the averaged price for at-the-money options.
A more interesting and non-intuitive type of oscillation occur at larger \(N\): these are oscillations of the even and odd curves as a function of \(N\). Let us consider at-the-money call and put options for larger values of \(N\), up to 2000:
The two overlapping curves correspond to even and odd layers, with each oscillations in a qualitatively similar manner. It is important to note that the amplitude of these oscillations is very small, as the error is of order \(\mathcal{O}(10^{-4})\) - for all practical purposes vanishingly small. I am not aware of any intuitive explanation for these large period oscillations, but this trend is present for a large subspace of the parameter space of vanilla options. It would be interesting to consider different types of options (such as exotics, digitals, down-and-outs) to see whether similar oscillations also occur in those cases.
Case 2.1: slightly in/out-of-money \((S=120, \; K = 100)\)
We repeat the same analysis, for \(N = 100,101,\ldots,1000\). Again, we consider both put and call options. Both types of oscillations are evident from the plot:
There are a couple features of interest: firstly, the large-\(N\) oscillation frequency is significantly greater than the at-the-money case. Secondly, the call option converges much faster than the at-the-money call, and the put option converges much slower than the at-the-money put. This can be attributed to the fact that, since \(S>K\), the call option payoff is much more densely populated whereas the put option payoff is zero for a big fraction of nodes. We expect to see the exact opposite behaviour between calls and puts for the \(S < K\) case.
There is another very interesting property that might lend itself to analytic analysis: consider the envelope surrounding the oscillations. The peaks located above zero (set of local maxima) seem to decay as a power-law - that is, the amplitude of oscillations seems to decay as a power-law. To get a better look, let us consider the log-log plot:
The local maxima, for both non-averaged and averaged cases, displays a linear relationship on the log-log plot. This indicates a power law relation of the form:
I argue that one can aim for an analytic explanation of this power-law through the following observation: the way in which the binomial tree approximates Brownian motion is through approximating a normal randomvariable \(Z\sim\mathcal{N}(0,1)\) by a collection of discrete random variables \(X_i = \pm 1\) (with equal probability). See my tree implementation page for details. I expect that one should be able to use convergence bounds on the central limit theorem to relate how tree movements can differ from Brownian motion as a function of \(N\). This can be future work.
Case 2.2: slightly in/out-of-money \((S=80, \; K = 100)\)
A very similar pattern to the previous case emerges, but as expected the call price converges much more slowly and the put price more rapidly.
Case 3.1: far in/out-of-money \((S = 200, \; K =100)\)
This is an interesting case which is qualitatively different from the previous cases. The oscillations aren't centered around zero, but approach zero from below.
I would interpret this as a sort of "phase transition", happening somewhere in the \(S\in[120,200]\) region of parameter space, characterized by the overall oscillatory/decaying behaviour of the error vs. N curve.
Case 3.2: far in/out-of-money \((S = 100, \; K = 200)\)
Similar to the previous case with the call and put convergence rates reversed.