Asian Options : Analytical Approach
Igor Hlivka
MUFG Securities International, LONDON
Asian options are special case of standard financial options where the option's payoff depends on an average value of an underlying asset over the contract's life. The rationale for Asian options comes from various motivations - contrary to the standard option contract, the user may want / need an exposure to an average value of the underlying asset over the whole life of the contract rather than its terminal value.
Asian options are transacted in various asset classes - the most common application can be found in the world of equities, foreign exchange or commodities.
Asian options come in two basic forms:
- Fixed strike:
![v = LinearAlgebra:-Transpose(`+`(conjugate(S[t]), `-`(K)))](/view.aspx?SI=6875/Asian options done analytically_2.gif)
- Floating strike
![v = LinearAlgebra:-Transpose(`+`(S[t], `-`(conjugate(S[t]))))](/view.aspx?SI=6875/Asian options done analytically_3.gif)
Average can be defined as Arithmetic or Geometric and can be structured as Discrete or Continuous
- Arithmetic Discrete:
![`/`(`*`(sum(S[t[i]], i = 1 .. n)), `*`(N))](/view.aspx?SI=6875/Asian options done analytically_4.gif)
- Arithmetic Continuous:
![int(S[T], t = 0 .. T)](/view.aspx?SI=6875/Asian options done analytically_6.gif)
- Geometric Discrete:
![product(`^`(S[t[i]], `/`(1, `*`(n))), i = 1 .. n)](/view.aspx?SI=6875/Asian options done analytically_7.gif)
- Geometric Continuous:
![exp(`/`(`*`(int(ln(S[t]), t = 0 .. T)), `*`(T)))](/view.aspx?SI=6875/Asian options done analytically_8.gif)
Valuation of Asian options depends on the nature of the option. Discrete averages do not lead to a closed-form solution, and as such need to be valued numerically. Continuous Asian options naturally form a basis for analytical valuation, however, as we will see, not every continuous averaging returns a closed-form solution.
Arithmetic Average Asian Options
Let's define the arithmetic average of the stochastic process on the interval
and let's assume that the process is the stock price:
We are interested in the distribution of
> |
 |
![`+`(ln(2), ln(`/`(`*`(`+`(`-`(exp(`/`(`*`(sigma, `*`(Int(W[t], t = 0 .. T))), `*`(T)))), exp(`+`(`*`(T, `*`(r)), `-`(`*`(`/`(1, 2), `*`(T, `*`(`^`(sigma, 2))))), `/`(`*`(sigma, `*`(Int(W[t], t = 0 .. ...](/view.aspx?SI=6875/Asian options done analytically_19.gif) |
(1.2) |
As we can see, the distribution of an arithmetic average of the stock price over the period
does not possess analytical tractability, and as such closed-form solution does not exist. Market practitioners have devised various approaches to overcome this problem (approximation / numerical techniques), however they are outside the scope of this demonstration.
Arithmetic averages tend to be valued numerically using Monte Carlo simulation and the interested reader can look for details at the Maplesoft Application Demonstration - "Asian Options" from the Financial Modeling Toolbox
Since arithmetic average of a log-normal process is not well defined, we will concentrate on Geometric continuous average case where closed-formed solution exists.
Fixed Strike
Let's define the stochastic process for the financial security (stock price , FX rate etc.)
terminal value of the financial security
volatility of 
time to maturity
stochastic Wiener process 
Geometric average defined according to the formula above
> |
 |
 |
![`*`(S0, `*`(exp(`+`(`*`(`/`(1, 2), `*`(T, `*`(r))), `-`(`*`(`/`(1, 4), `*`(T, `*`(`^`(sigma, 2))))), `/`(`*`(sigma, `*`(Int(W[t], t = 0 .. T))), `*`(T))))))](/view.aspx?SI=6875/Asian options done analytically_34.gif) |
(2.1) |
We need to resolve the handling of the stochastic path above:
Apply first the integration by parts first:
> |
 |
 |
(2.2) |
We can revert the integration and simplify the expression:
From the properties of stochastic integral and Ito we can see that:
- [

- [

Let's compute the variance of the stochastic integral
> |
 |
 |
(2.3) |
This shows that
From here we can establish that the logarithm of the average price return is normally distributed with parameters:
> |
![`:=`(Gt2, simplify(subs(Int(W[t], t = 0 .. T) = `*`(sqrt(`+`(`*`(`/`(1, 3), `*`(`^`(T, 3))))), `*`(y)), Gt), symbolic)); 1](/view.aspx?SI=6875/Asian options done analytically_45.gif) |
 |
(2.4) |
This is essentially an adapted stochastic process similar to the one we defined for the
and hence options can be derived analytically. It differs from the standard process by the drift and volatility.
When the stock price pay the dividend at a continuous dividend yield
we need to determine the correct drift for the averaging process:
> |
 |
We need to solve for
to find the dividend adjustment
> |
 |
 |
(2.6) |
We can now value the fixed-strike Geometric Average Asian Options:
- Call Option:
![LinearAlgebra:-Transpose(`+`(conjugate(S[t]), `-`(K)))](/view.aspx?SI=6875/Asian options done analytically_56.gif)
- Put Option:
![LinearAlgebra:-Transpose(`+`(K, `-`(conjugate(S[t]))))](/view.aspx?SI=6875/Asian options done analytically_57.gif)
The geometric average process for the stock price
will now take the form:
> |
 |
 |
(2.7) |
This is a lognormal process with adapted drift and volatility. To value an option, we will:
- determine the integration limits
- discount the integrated option's payoff
> |
 |
 |
(2.8) |
> |

 |
> |

 |
Analytical solution allows sensitivities to be computed symbolically:
Eg: Asian Call Option Gamma = second derivative of the option premium w.r.t stock price:
> |
 |
As chart above shows, Option's Gamma is the highest when security price (S0) is close to the strike (K) and is the most sensitive when the volatility drops to low level.
Asian options are cheaper than standard ones as averaging tends to smooth down excessive spikes in the stochastic path. As such, they are more attractive tool for corporate treasurers and risk managers alike when they design cost-efficient hedging programmes. We can compare the premiums for the Standard and Asian Calls:
 |
(2.12) |
> |
![`:=`(SCall, evalf(eval(StCallOpt, [S0 = 10, K = 10, t = 3, sigma = .25, r = 0.5e-1]))); 1; `:=`(ACall, evalf(eval(AsFxCallOpt, [S0 = 10, K = 10, t = 3, sigma = .25, r = 0.5e-1]))); 1](/view.aspx?SI=6875/Asian options done analytically_86.gif)
![`:=`(SCall, evalf(eval(StCallOpt, [S0 = 10, K = 10, t = 3, sigma = .25, r = 0.5e-1]))); 1; `:=`(ACall, evalf(eval(AsFxCallOpt, [S0 = 10, K = 10, t = 3, sigma = .25, r = 0.5e-1]))); 1](/view.aspx?SI=6875/Asian options done analytically_87.gif) |
 |
 |
(2.13) |
Since Asian options have lower drift and lower volatility, the premium is naturally lower.
Floating Strike
We will use here the findings and results derived in the previous section.
Floating strike Asian option (floating = Average price) changes the option definition in terms of process specification:
is an option involving two stochastic process: (i) standard process:
and (ii) average process:
. In essence, the Floating strike Asian Options are sort of multi-factor options.
In order to value this type of option, we need to specify the dependency structure between these two stochastic processes:
Two stochastic variables
will have their correlation defined as:
> |
 |
 |
 |
(3.1) |
We need to define the covariance term:
This can be achieved in two steps:
- rewriting the expectation term
![`𝔼`[`*`(`*`(`+`(`*`(`/`(1, 3), `*`(sigma, `*`(W[St], `*`(sqrt(3)))))), sigma), `*`(W[Gt]))] = `/`(`*`(`^`(sigma, 2), `*`(int(`𝔼`[`*`(W[t], `*`(W[T]))], t = 0 .. T))), `*`(T))](/view.aspx?SI=6875/Asian options done analytically_99.gif)
- specifying the product expectation of two Wiener stochastic processes:
which implies that:
![`𝔼`[`*`(W[t], `*`(W[T]))] = t](/view.aspx?SI=6875/Asian options done analytically_101.gif)
> |
 |
 |
 |
(3.2) |
Now we are in the position to define the volatility of the bi-variate process:
- we note that
which implies that the standard deviation of :
= ![sqrt(`+`(`*`(`^`(sigma[St], 2)), `*`(`^`(sigma[Gt], 2)), `-`(`*`(2, `*`(rho, `*`(sigma[St], `*`(sigma[Gt])))))))](/view.aspx?SI=6875/Asian options done analytically_107.gif)
> |
 |
 |
(3.3) |
What is the drift of the ratio of two processes? We need to consider two cases:(i) Call drift
and (ii) Put drift
> |

 |
 |
 |
(3.4) |
This shows that in case of Call Option
and in case of Put Option
~
This will allow us valuing these options in a standard way:
- Defining the "ratio" process for Call Option:
> |
 |
 |
(3.5) |
- Defining the same "ratio" for Put Option:
> |
 |
 |
(3.6) |
We will calculate the option premium in three steps:
- Determine the integration limits that satisfy each option payoff
- Specify the option payoff with the "theoretical" fixed strike = K
- Value the option with the "actual" strike = 1 Eg: Call =

> |
 |
 |
 |
(3.7) |
> |

 |

 |
(3.8) |
> |

 |

 |
(3.9) |
> |
![`:=`(CallValue, evalf(eval(AsFtCallOpt, [S0 = 10, T = 3, sigma = .25, r = 0.5e-1]))); 1; `:=`(PutValue, evalf(eval(AsFtPutOpt, [S0 = 10, T = 3, sigma = .25, r = 0.5e-1]))); 1](/view.aspx?SI=6875/Asian options done analytically_135.gif)
![`:=`(CallValue, evalf(eval(AsFtCallOpt, [S0 = 10, T = 3, sigma = .25, r = 0.5e-1]))); 1; `:=`(PutValue, evalf(eval(AsFtPutOpt, [S0 = 10, T = 3, sigma = .25, r = 0.5e-1]))); 1](/view.aspx?SI=6875/Asian options done analytically_136.gif) |
 |
 |
(3.10) |
Again, we can ask Maple to calculate option's sensitivities:
- Let's compute option's delta (derivative w.r.t underlying stock price)
> |
 |

 |
(3.11) |
> |
![plot3d(eval(CallVega, [S0 = 10, r = 0.5e-1]), T = 0 .. 5, sigma = 0.5e-1 .. .3, title = [](/view.aspx?SI=6875/Asian options done analytically_148.gif)
![plot3d(eval(CallVega, [S0 = 10, r = 0.5e-1]), T = 0 .. 5, sigma = 0.5e-1 .. .3, title = [](/view.aspx?SI=6875/Asian options done analytically_149.gif) |
Conclusion
This application demonstration presents an alternative analytical method for handling averages of a stochastic process on a given time interval. Although the application looks at the particular case of stock price, any lognormal dynamics can be easily adapted to be valued in this close-form environment.
We show that the valuation of averages (both with fixed and floating strikes) relies on symbolic manipulation of process parameters where Maple analytics comes in particularly helpful.
Legal Notice: The copyright for this application is owned by the author(s). Neither Maplesoft nor the author are responsible for any errors contained within and are not liable for any damages resulting from the use of this material.. This application is intended for non-commercial, non-profit use only. Contact the author for permission if you wish to use this application in for-profit activities.