Option Pricing

@gradientdev with special thanks to @bobdbldr for help ideating, drafting and preparing this section. March 2023

Link to code: https://github.com/IVX-FI/ivx-diem/blob/main/src/libraries/Binomial.sol

Pricing Approaches

Option pricing models are essential tools to determine the fair value of derivative instruments, such as options. There are several approaches to option pricing, including the widely used Black-Scholes model, Binomial Option Pricing Model, and more advanced techniques like Monte Carlo simulations and lattice models. Each of these methods has unique features and assumptions, making them suitable for different scenarios and option types. For short-duration options, the Binomial method in particular provides additional interpretability and is computationally more efficient to calculate, making it a contender for on-chain calculations where reducing computational complexity is paramount. The binomial model works by breaking down the option lifetime into a series of discrete time steps and simulating the underlying asset’s price movements through a branching structure, enabling the pricing of both European and American options. Additionally, the binomial model’s approach provides interpretable insights into the dynamics of the option price and risk metrics, such as the option delta ∆.

In this model, S0 is the initial price of the underlying asset, and u and d are the upward and downward price movements over one period, respectively. The probability of an upward movement is denoted by p, and the probability of a downward movement is 1 − p. The option’s payoff at the end of the period depends on the value of the underlying asset at that time and can be calculated using the option’s payoff function. The option price at time 0 can then be calculated using the risk-neutral pricing formula:

Pricing a Two-Period Call Option

The two-period Binomial option pricing model assumes that there are only three possible outcomes for the price of the underlying asset at the expiration of the option, S0 u² , S0 u d and S0 d² , where u and d are the one-period up and down movements of the underlying asset from the initial price S0 respectively.

Based on this we can construct a Binomial tree and use these price paths to calculate the value of the call option at expiration. For simplicity, we denote the state transition probabilities by

p and 1 − p respectively. In Section Determining p , we suggest concrete implementations for the transition probability p, for which the corresponding probability 1 − p can also be inferred.

Pricing the call option will be accomplished by beginning at the leaf nodes of the tree and recursively working backward to the current price S0. At the bottom of the tree, the value of the call option is the difference between the current price and the strike price of the option if such difference is positive, else it is 0. For simplicity, we denote this value as Cuu for the state consisting of two up movements and Cdd for the corresponding down movement state respectively.

We then calculate the present value of the call option as the expected value of the discounted future payoff from the next step of the state, which is the sum of the discounted values of the two possible future values of the option at state 1:

(1)

where r is the risk-free interest rate.

Pricing a N-Period Call Option

To price an N-period call option using the binomial model, we start by dividing the time period into N equal sub-intervals, each of length ∆t. Next, we calculate the up factor, u, and down factor, d according to the methodology in Section Determining p.

With these factors in hand, we can construct a binomial tree that represents the possible price movements of the underlying asset over the N periods.

where Ci + 1, j + 1 and Ci+1,j are the option values at the two possible nodes in the next time step. To simplify notation, we have denoted all transition probabilities by p. This methodology is repeated at each node until reaching the option price of the initial node C0 as in the example in Section Pricing a Two-Period Call Option

Pricing a N-Period Put Option

Put-call parity is a fundamental relationship in options pricing theory that states that the price of a call option Ct and the price of a put option Pt with the same strike price K and expiration time T must be related in a specific way. Specifically, put-call parity states that:

Determining ∆

The delta, ∆ of an option measures the rate of change of the option price with respect to changes in the price of the underlying asset.In order to determine ∆ in the context of the Binomial option pricing model, we consider a portfolio consisting of a call option Ct and a short position in the underlying St, of which we have sold ∆ units of S, and by that the present value of this portfolio at time t is given by:

Using the binomial option pricing model, we can calculate the option values at each time step by recursively running through the binomial tree. In particular, in the two-period example, equations (2) and (3) allow us to substitute and resolve the value for ∆. We can calculate the option values at each time step by working our way up the Binomial tree, and then use these values to calculate the delta at each time step using the formula above. The value ∆ of the option will change over time as the price of the underlying asset changes, and this quantity will be used by the Diem AMM to hedge directional risk associated with open positions.

Determining σ

In order to determine the appropriate value for σ, we analyze the empirical return distribution of the underlying asset when returns are considered on the ∆t time-frame. The benefit of this approach is that it allows us to estimate σ for assets for which there is not an existing volatility market, and for which there can be no oracle for at-the-money volatility. The methodology proceeds by first calculating returns for the asset S on the ∆t time-frame, which can be represented as a histogram as shown below:

Once the empirical data is collected, since ∆t is relatively small, we are able to produce smooth kernel density estimates for the underlying empirical distribution of outcomes with belong to the space of infinitely-differentiable functions C∞. With smooth estimates, we are able to infer more accurate estimates for the state transition variables u and d as described in Section Determining p:

Determining p

To determine an appropriate transition probability p in the binomial model, we must at first determine appropriate values for the up factor, u, and down factor, d. These factors are calculated based on the volatility of the underlying asset and the time step of the model:

where σ represents the standard deviation of the asset price returns over one time step and ∆t is the length of each time step in the model in seconds. The rationale behind the assumptions (15) and (16) is that we want to model transition states which encapsulate sequential one standard deviation moves in log-return space. To see this, observe that u represents the one-period asset return in the upward direction, and

Once u and d are determined, we can then use them to determine the probability of an up move, denoted by p. This is done by setting the expected return on the asset equal to the risk-free rate and solving for p. In other words, we have

where r is the risk-free interest rate and ∆t is the time step. Dividing by S0 and solving for p yields the following expression for p:

One additional modelling assumption we can make is the assumption that downside volatility is distinct from upside volatility, namely that we can model d in the same way as u, with the difference being that we fit a new σ ′ quantity which is fit using downside estimates for volatility. This affords greater flexibility in parametrically modelling the state space of the binomial tree. Another parametric assumption the Diem AMM makes is that the value σ skews upward as the state transitions closer to expiry. This allows the AMM to quote higher implied volatilities closer to expiry, affording greater downside compensation for Diem LPs in the form of larger premia asks for equivalent option positions. One interpretation of this is an increase in the theta decay of options closer to expiry.

Algorithmic Implementation of the N-Period Calculation

In calculating the computational complexity of Algorithm 3.8, we first note that efficient approximate evaluation of the function x 7→ e x can be achieved for |x| small by use of Taylor’s theorem. That is, we can expand

and since for the terms requiring evaluation in Algorithm, |x| ≪ 1, it is sufficient to expand to the n-th power as an approximation where we anticipate that n = 4 is sufficient. For the remainder of the algorithm, we prove below that it is possible to evaluate the price of an option in quadratic time: Theorem 1. The computational complexity of Algorithm is O( N² ).

Proof. Considering the first for loop, evaluation of SN,i for fixed i requires N + 1 arithmetic operations, and is performed N + 1 times. Likewise, evaluation of C(N,i) for fixed i requires O(1) operations. Hence, the runtime of the first for loop is

O((N + 1)² ) = O (N² ).

Considering the second for loop, evaluation of C(j,i) for fixed j and fixed i requires O(1) operations, and hence the total number of operations required is equal to

Hence, the runtime of the second for loop is also O(N²), resulting in a total runtime of O(N²) for the full Algorithm.

Last updated