## Introduction

Techniques for option valuation, both analytic and numeric, are well-established. Many of them cannot be used if the nature of the option is such that knowledge of the future is a prerequisite for valuation. For example, the value when the option expires may depend on the price of the underlying asset during the lifetime of the option.

This paper describes a method of overcoming this problem by manipulating a symbolic parameter in a numeric scheme for option valuation. This parameter characterises the option price at any stage in its lifetime as a function of its state when it expires. This parameterisation can be expressed as a function of, for example, the price history of the underlying asset. This enables 'path-dependent' options to be valued by established numerical techniques, which has hitherto been very difficult or impossible.

## Financial background

```        Explanation of the purpose of an option.
Definitions to be supplied:
Option, Put option, Call option, Exercise price, European option, American option
Payoff, cash-or-nothing.
```

## Option valuation and the Black-Scholes equation

It can be shown that the price, f(S, t) of an option, where S is the price of the underlying asset at a time t after the valuation, is governed by the Black-Scholes equation, in which r is the risk-free interest rate, sigma is the asset volatility, X is the option's exercise price and T is the lifetime of the option.

```D[f, t] + r S D[f, S] + (sigma S)^2 D[f, {S, 2}]/2 == r f;
f(t, 0) == X E^(-r(T-t);
f(t, Infinity) == 0;
f(T, S) == Max(0,X-S)
```

This equation applies for 0<=t<=T for a European option, and an analytical solution is available. However, the value of an American option is given either by the solution obtained from the above equation, or X-S, whichever is the greater. This condition makes an analytical solution impossible and numerical methods are necessary. The principal techniques employed in practice are binary trees and finite difference schemes. Finite element methods have also been considered recently (Willmot et al). In this analysis, finite differences are considered.

Many parabolic linear forms, such as the Black-Scholes equation above, can be transformed into a standardised diffusion equation D[U, tau] == D[U, {x, 2}], where U, x and tau are functions of f, S, t, r, X and sigma. If this can be done, a finite difference scheme becomes purely numeric and it is not possible to inject a path dependent element into the analysis. In practice, untransformed Black-Scholes equations are used more often than not because more complicated Black-Scholes models cannot be standardised in this way. The following analysis is therefore used with an untransformed Black-Scholes equation.

## Finite Difference Approximation

The terms D[f, t], D[f, S] and D[f, {S, 2}] in the Black-Scholes equation can be replaced by standard approximations in an explicit backward finite difference scheme. The explicit nature of such a scheme make it possible to propagate symbolic terms through the scheme. This would require much more memory and run unacceptably slow if an explicit scheme is used. However, the accuracy of the scheme is limited by the constraint Abs[Delta(x)/Delta(t)^2] < 0.5.

An arbitrary payoff function, PayOff[P, m, v] is used in place of the standard ramp payoff, Max[0, X-S]. The parameter P can be used to specify the strike price a posteriori, m represents the asset price at any stage in the iteration, and v is a parameter list which is reserved for any particular use. In this analysis v is used to specify a cut-off point in time. The used of the unresolved function PayOff[P, m, v] results in increasingly complex, but unnested, symbolic expressions. The number of terms in each one is limited by the asset price grid spacing. The cases considered here use an (M+1) by (NN+1) grid with M=NN=20. This gives asset prices ranging from 0 to 100 time steps, each of 1/48 years. At the final time step, the Valuation Profile (i.e. the option value for given asset prices) is obtained.

## A Posteriori specification of the payoff function

When all terms in the finite difference scheme have been determined in terms of the arbitrary function PayOff[P, m, v], specific payoff may be substituted. For example, to recover the standard Ramp payoff for a European Put, the following definitions are made.

```PayOffRamp[P_, m_ ] := P-5m /; 0 <= m <= P/5
PayOffRamp[P_,m_]:= 0 /; P/5 < m <= 20
ValuationProfile /. { PayOff[P_, m_, v___ ] -> PayOffRamp[ StrikePrice, m ],  a_. P -> StrikePrice a }
```
In the case of a Cash or Nothing payoff, the corresponding substitution is:
```PayOffCashOrNothing[ P_, m_ ] := P /; 0<= m <= 10
PayOffCashOrNothing[ P_ ,m_ ] := 0 /; 10 < m <= 20
ValuationProfile /. { PayOff[ P_ , m_, v___ ] -> PayOffCashOrNothing[ StrikePrice, m ],  a_. P -> StrikePrice a }; ```
In both cases, the results agree with purely numeric analyses.

In order to demonstrate that the method can include a path dependent facility and make effective use of the symbolic nature of the formulation, the analysis above is extended to the case of a switching option. Suppose that half way through the option's life, the option switches from a cash or nothing option to a ramped payoff option if the asset price is 30 or less (m <= 6), and remains a cash or nothing option otherwise. This is of interest to a buyer who bets that the asset price will stay near the money, and looks for a higher payout than a ramped option would give, but does not wish to pay the relatively high price of a pure cash or nothing option. The task for the writer of the option is to construct the option so that the valuation is not too sensitive to changes to S, particularly near the money. This is good hedging practice. It amounts to choosing the cash or nothing payout such the valuation profile is monotonic decreasing.

Parameters representing the strike price, P[], and the cash or nothing payout, P[], are respectively declared in the list P.
The parameter v is used to associate the time position of each option valuation in the grid with the option valuation itself. The payoff function is then replaced with a switching payoff function, which depends on the asset price at a given time step. In this way the path dependency is introduced after the finite differences have been computed and a symbolic valuation results.

```PayOffSwitch[ P_List, m_, v_ ] :=  PayOffCashOrNothing[ P[], m ] /; ( v < NN/2 )
PayOffSwitch[ P_List, m_, v_ ] :=  PayOffCashOrNothing[ P[], m ] /; ( v >= NN/2 && 6 < m <= M )
PayOffSwitch[ P_List ,m_ ,v_] :=  PayOffRamp[ P[[ 1 ]], m ] /; ( v>= NN/2 && 0 <= m<= 6 )
OptionPriceHistory /. { PayOff[ P_, m_, v___ ]-> PayOffSwitch[ {StrikePrice, CashOrNothingValue}, m, v ] };
OptionPriceHistorySwitched =  Partition[ % /. a_. + b_. P  -> a + b StrikePrice, M+1 ];
```

## Results and Discussion

Computing the valuation profile by the method outlined above yields, for each asset price considered and fixed numeric strike price, a linear function of Q for the option valuation. Simple manipulation gives the maximum cash or nothing payout which will ensure that the valuation function is monotonic decreasing. Given an asset price between 0 and 100, and a strike price of 50, the method gives a cash or nothing payout of about 31 with a valuation near the money of 16.5. This valuation is indeed cheaper than the corresponding valuation of 27.0 using a pure cash or nothing payout of 50. It is more expensive than a pure ramped payout option for strike price 50, which is valued at 4.0 by this finite difference scheme.

This method is successful in injecting a symbolic element into an explicit finite difference scheme for valuation of a European option. The problem of how to value the cash or nothing payout of the switching ramped/cash or nothing option involves very simple, but effective, manipulation of the symbolic valuation profile. It proved to be much harder to implement an implicit finite difference scheme because solving a system of linear equations containing symbolic expressions takes much longer than a purely numeric system of linear equations. More memory is also required. Using TridiagonalSolve from the LinearAlgebra`Tridiagonal` package did not improve matters sufficiently.

It remains to value an American option using this method. If, at any given stage of the iteration, a comparison with the payoff function must be made, and the symbolic nature of the problem is such that these comparisons cannot be simplified sufficiently, a combinatorially explosive situation results. The size and level of nestedness of terms in the finite difference schemes grows beyond reasonable memory capacity.