MATLAB Examples

mVol2price

Compute risk-neutral prices of a contract paying an asset's return or powers thereof from volatility smile interpolation. Part of the IMOMBOX.

Syntax

M = MVOL2PRICE(S0,VOL,RF,Q,TAU,N)

Given the volatility smile function handle VOL = @(X) smile(X), the spot asset level S0, the annualized logarithmic risk free rate rf and dividend yield q as well as a time to maturity TAU in years, M will store the prices of the moment contracts specified in N, i.e.

$M = E( e^{-r_f\tau} \log(ST/S0)^N)$.

Input Arguments

VOL is a function handle expecting an array of inputs X and returning an array of the same dimension as X. S0, RF, Q, TAU are scalars, N is a vector containing the required return powers.

Contents

Example 1: flat vol smile

Let us assume a flat volatility of 25%

vol         = @(X) 0.25;

and the following parameters

S0          = 100;
rf          = 0.05;
q           = 0;
tau         = 0.25;
N           = 1:4;

The corresponding prices of the the contracts paying the return expectation and the second, third and fourth uncentered moment are:

mVol2price(S0,vol,rf,q,tau,N)
ans =

    0.0046    0.0155    0.0002    0.0007

I.e., the (discounted) return expectation - or the price of a contract that pays the return $R=\log(ST/S0)$ is 0.0046.

Example 2: pronounced vol smile

Let us now change the specification of the volatility smile to

vol         = @(X) 0.3.*exp(-1./100.*X)+0.2;
plot([0:300],vol([0:300])),ylim([0.1 0.5]),title('volatility smile');

The corresponding prices of the the contracts paying the return expectation and the second, third and fourth uncentered moment are now:

mVol2price(S0,vol,rf,q,tau,N)
ans =

    0.0003    0.0244   -0.0013    0.0019

I.e., the (discounted) return expectation - or the price of a contract that pays the return $R=\log(ST/S0)$ is now only 0.0003, which is only a fraction of the expectation under the constant volatility regime.