The Cox-Ross random walk, widely used in Finance, is
defined as follows. Let
be a sequence of
independent random variables with common law
,
where
,
and
being two fixed real numbers. Let
and
Let
be a finite Markov chain following a Cox-Ross model,
we want to recursively compute for
:
r=log(1 + 0.05); // non risky interest rate mu=0.05; // unused sigma=0.2; // volatility of risky asset S0=40; // price at time 0 of the risky asset T=4.0/12.0; // horizon K=40; // strike value N = 10; // number of time steps Dt = T/N; // step size R = r* Dt; // interest rate on time step down = (1+R) * exp(- sigma * sqrt(Dt)); // state "up" up = (1+R) * exp(+ sigma * sqrt(Dt)); // state "down" p = (up-(1+R))/(up-down); // probability to go down ! a=up-1; b=down-1; X0=S0;
Question 1
For a given discrete time
t=3; I=0:t; X=.... |
Question 2
Draw on a figure all the possible states that can be reached from
X0
when discrete time evolves from 0 to t=N; xbasc(); for i=0:t .... plot2d(...) // plot the states at time i with a mark end |
Question 3
The number of possible states at time
|
Question 4
We want now to recursively compute the value function
V(x,n) and store all the
results in a matrix V. The number of rows of the matrix is given by the number
of possible states at the last discrete time V(i,t) we will
store the value function at time t for the state labelled i.
Choosing
U(x,n) which for a state labeled x at
time n return 1 or 2 (2 if the optimal strategy is to stop). |
Question 5
Compute also for each discrete time, the values of the state variables and
plot the value function according to the state value.
// The cost function at time T function y=f(x,K) .... endfunction // at each time we compute in a column of V the function value associated to states // X_0(1+a)^i*(1+b)^(t-i) T=10; I=0:T; XT=... n=.. // maximum number of states for t in [0,T] V=zeros(n,T); // initialize V X=zeros(n,T); // initialize X V(:,T)=... X(:,T)=... for t=T-1:-1:1 ... X(I+1,t)=... // I is the vector of possible indices at time t V(I+1,t) =... end // plot the value function at each step for t=1:T xbasc(); I=0:t; plot2d(X(I+1,t),V(I+1,t)) halt(); end |
Question 6
Use the
U matrix to plot the tree of discrete value for the state according to time
using a different mark for stopping or non-stopping states. |
Question 7
Use the previous code to implement a function which computes
the value function at time
|