Problem 20.10

Exchange rate @ time t = 0, risk free return rates in dollars and pounds, volatility, and time in 3-period model are given.  First find up/down fractions as well as risk-neutral probabilities.

xzero =1.43; 
rpound = 0.09;
rdollar= 0.08;
sigma = 0.3;
h=.25;
up =Exp[(rdollar-rpound)*h+sigma*Sqrt[h]]
down =Exp[(rdollar-rpound)*h-sigma*Sqrt[h]]

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

Define Derivative To Be Priced

Lambda[S_,K_]:=Max[K-S,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 = 1.56;

InitialPriceVector = Table[(up^n)*(down^(T-n))*xzero,{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))*xzero,{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]]]]