Problem 19.5

Asset Price @ Time t = 0, risk free and dividend return rates, volatility, and up/down asset fraction changes.  Also find the risk-neutral probabilities.

Szero = 110.;
r=.10;
delta = .08;
sigma = .32;
h=1/4;
up=Exp[(r-delta)*h+Sqrt[h]*sigma]
down=Exp[(r-delta)*h-Sqrt[h]*sigma]

p[u_,d_]:=(Exp[(r-delta)*h]-d)/(u-d);
prn = p[up,down]
qrn = 1-prn;

Define Derivative To Be Priced

EuropeanCall[S_,K_]:=Max[S-K,0];

Replicated Derivative Pricing Function Recursively Using Risk Neutral Expected Values of Intrinsic and Continuation Values of the Derivative.  Lambda is the derivative of interest.  K is the strike price.  T denotes the number of time periods.  The vector of option prices are listed for each period, starting with period T and ending with the price at time t = 0 at the beginning of period 1.

T = 3;

K = 100;

Lambda[S_,K_]:=EuropeanCall[S,K];

InitialPriceVector = Table[(up^n)*(down^(T-n))*Szero,{n,0,T}];

NewOptionValueList = Table[Lambda[x,K],{x,InitialPriceVector}];

PriceVector=InitialPriceVector;


Do[

Print[NewOptionValueList]; 

OldOptionValueList = NewOptionValueList;

PriceVector = Table[(up^n)*(down^(T-n-j))*Szero,{n,0,T-j}];

NewOptionValueList = Table[Max[Lambda[PriceVector[[i]],K],Exp[-(r*h)]*(prn*OldOptionValueList[[i+1]]+qrn*OldOptionValueList[[i]])],{i,1,T+1-j}];

,{j,1, T}];

 Print["Arbitrage Free American Option Price is $"<>ToString[NewOptionValueList[[1]]]]