
|
Halmstad 2006
Version pdf de ce document
|
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
|
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 previous code to implement a function which computes
the value function at time
// fix a time and compute the V value on a grid function v=compute_V(T,X0) ... v=V(1,1); endfunction X=linspace(K-10,K+10,100); V=zeros(X); for T=0:10 // Compute V(i) value at 0 for initial state X(i). ... plot2d(X,V,style=T) halt(); end |
We want now to verify that given the price
at time 0 of a call,
we can manage a portfolio with initial value
which contains the non risky asset
and the risky asset in order to bring the portfolio value to f(X_T,K) at time
.
Using the previously programmed function compute_V(N,S0) we can write
// price at time 0 of the call with horizon N function[Y]= price(n,N,S0) Y= compute_V(N-n,S0); endfunction // the quantity of risky asset that we must have at time $n$ function[Y]= hedging(n,N,x) Y = (price(n+1,N,x*up)-price(n+1,N,x*down)) / (x*(up-down)) endfunction
Now using the policy given by hedging and a possible sample of
in a vector cours we can compute the evolution of the
portfolio :
function [res]=check_hedging(N,cours)
S = cours(1)
V = price(0,N,S);
H = hedging(0,N,S);
SoHo = V - H * S;
for n=1:N-1
S = cours(n+1);
V = H * S + SoHo * (1+R);
H = hedging(n,N,S);
SoHo = V - H * S;
end;
V = H * cours(N+1) + SoHo * (1+R);
res = V - f(cours(N+1),K);
endfunction
Question 7
Use random generator to generate samples of a Cox-Ross
model for
check_hedging to check
that the portfolio value at f.
You can modify the previous function to get also a trajectory for the portfolio
value and make drawings of its time evolution. Note that the result does not
depend |