%\documentclass[11pt,a4paper]{article}
%\usepackage{a4wide}
%\usepackage[latin1]{inputenc}
%\usepackage{listings}
%\usepackage[french]{babel}
%\usepackage{color}
%\usepackage{float}
%\usepackage{graphicx}
%opening


%\maketitle

{\it  Le modèle de Cox-Ross-Rubinstein  est une version discrétisée
du modèle de Black-Scholes dans laquelle on considère deux actifs :
un actif sans risque et un actif risqué.
 Tous les programmes sont rédigés en Matlab.}

\section*{Simulation d'une variable aléatoire discrète}
Le programme ci-dessous simule une variable aléatoire discrète X lorsque qu'on lui donne le vecteur x des valeurs que peut prendre X et le vecteur p des probabilités associées. On utilise pour cela la fonction rand de Matlab qui permet de simuler une variable aléatoire de distribution uniforme sur [0,1].
\begin{verbatim}
function z = simulationdiscrete(x,p)
%le vecteur p représente les probabilités des composantes x_i
if sum(p)~=1
    error('la somme des probabilités doit etre égale à 1')
elseif size(p)~=size(x)
    error('x et p doivent etre de meme longueur')
else
[n,m]=size(x);
u=rand(1,1);
sp=cumsum(p);
pp=[0 p(1:(n-1))];
spp=cumsum(pp);
k=find((u>=spp)&(u<sp));
z=x(k(1));
end
\end{verbatim}

\section*{Simulation du cours de l'actif risqué et des cours des call et put sur l'actif risqué}
\par Le rendement de l'actif sans risque est noté r. Le cours de l'actif risqué est donné par la formule suivante avec $-1<a<b$ :
\[
S_{n+1}= \left\lbrace \begin{array}{l} S_n(1+a) \textrm{ avec une probabilité }p\\ S_n(1+b)\textrm{ avec une probabilité }1-p\end{array} \right.
\]
Pour obtenir que le marché est viable et complet, j'ai démontré durant mon exposé qu'il est nécessaire et suffisant de vérifier les conditions suivantes :
\[
r \in ]a,b[ \textrm{ et } p=\frac{b-r}{b-a}
\]
Dans les programmes suivants, j'ai appelé 'départ' la valeur initiale de l'actif risqué, 'longueur' le temps pendant lequel j'étudie les cours (qui correspond à N l'échéance des options) et enfin 'K' le prix d'exercice de l'option.
\par La fonction trajectoire simule la valeur du cours de l'actif risqué.
\begin{verbatim}
function s=trajectoire(depart,a,b,r,longueur)
p=(b-r)/(b-a);
p=[p (1-p)];
x=[(1+a) (1+b)];
z=depart*ones(1,longueur);
for j=2:longueur
    z(j)=z(j-1)*simulationdiscrete(x,p);
end
s=z;

\end{verbatim}

\par La fonction call simule le cours du call à l'instant n en fonction du cours de l'actif risqué à l'instant n noté s et de l'instant n.
\[
\textrm{call}(n,s)=\sum_{j=0}^{N-n} C_{N-n}^{j}p^j(1-p)^{N-n-j}\left(s(1+a)^j(1+b) ^{N-n-j}-K\right)_{+}
\]
\begin{verbatim}
function c=valeurcall(n,s,r,N,a,b,K)
p=(b-r)/(b-a);
ta=(1+a)*ones(N-n,1);
ta=[1 ;ta(1:N-n)];
ta=cumprod(ta);
tb=(1+b)*ones(N-n,1);
tb=[1 ;tb(1:N-n)];
tb=cumprod(tb);
tb=[tb((N-n+1):-1:1)];
t=(s*ta.*tb)-K;
tpos=[(t>0)];
t=t.*tpos;
c=(1+r)^(n-N)*dbinom(0:(N-n),(N-n),p)*t;
\end{verbatim}

\par La fonction put calcule la valeur du put à l'instant n. Pour cela j'ai utilisé la relation de parité call-put :
\[
\textrm{call}(n,s)-\textrm{put}(n,s)=s-K(1+r)^{n-N}
\]
\begin{verbatim}
function p=valeurput(n,s,r,N,a,b,K)
p=valeurcall(n,s,r,N,a,b,K)-s+K*(1-r)^(n-N);
\end{verbatim}
\section*{Les simulations}
\par J'ai décidé d'étudier les cours au jour le jour pendant un an. J'ai choisi un rendement sans risque de 3\% par an et un cours de départ de l'actif risqué à 100 euros.

\begin{verbatim}


longueur=365;
r=(1.03)^(1/365)-1;
depart=100;

K=120;
a=-0.02;
b=0.02;
s=trajectoire(depart,a,b,r,longueur);
c=zeros(longueur,1);
p=zeros(longueur,1);
for j=1: longueur
    c(j)=valeurcall(j-1,s(j),r,longueur,a,b,K);
    p(j)=valeurput(j-1,s(j),r,longueur,a,b,K);
end
hold on
ylabel('Cours des actions')
xlabel('t en jours')
plot(1:365,s','b',1:365,c,'r:',1:365,p,'g-.',1:365,K,'y-.');
hold off
print -eps dessous.eps


\end{verbatim}
En trait plein est dessiné le cours de l'action, en pointillé  le cours du put et en pointillé plus léger le cours du call. Le trait horizontal correspond au prix d'exercice de l'option.
\begin{figure}
\includegraphics{dessous120.ps}
\caption{K est supérieur au cours de l'actif.}
\par Ici près de la date d'échéance la valeur du put se rapproche de la différence entre K et le cours de l'actif alors que le cours du call tend vers 0. En effet il n'y a aucun interêt à posséder le droit d'acheter l'actif à un prix plus élevé que celui pratiqué par le marché.
\end{figure}

\begin{figure}
\includegraphics{dessus120.ps}
\caption{K est inférieur au cours de l'actif.}
\par Dans ce cas on voit que près de la date d'échéance le cours du call vaut approximativement la différence entre le cours de l'action et K.
\end{figure}

\begin{figure}
\includegraphics{equilibre120.ps}
\caption{K est au niveau du cours de l'actif.}
\end{figure}
