clear; stacksize(50000000); //paramètres T=1;//horizon r=0.05;//intérêt S0=100;//valeur initiale du sous-jacent sig0=0.2;//valeur moyenne de la volatilité rho=-0.5;//corrélation des browniens alpha=2;//vitesse de retour à la moyenne de la volatilité beta=0.1;//coefficient multiplicatif du bruit de la vol K=100;//strike b=130;//barrière up and out : l'option est désactivée //lorsque le sous-jacent dépasse b N=1;//nombre initial de pas de discrétisation M=100000;//nombre de simulations indépendantes //expression explicite de E^*(1_{S_TK).*(S-K); payeul=pay.*indb; prix=sum(payeul)/M; prixeul=[prixeul,prix]; liceul=[liceul,1.96*sqrt((sum(payeul^2)/M-prix^2)/M)]; //contribution des trajectoires au prix du Call avec technique de pont paypont=pay.*probab; prix=sum(paypont)/M; prixpont=[prixpont,prix]; licpont=[licpont,1.96*sqrt((sum(paypont^2)/M-prix^2)/M)]; Npas=[Npas,N]; N=N*5;//multiplication du nombre de pas par 5 end; prixeul liceul prixpont licpont //representation graphique de (N,prixeul) et (N,prixmil) et de prixBS xbasc(); subplot(2,1,1); plot2d(Npas',[prixeul;prixeul-liceul;prixeul+liceul]'); if (beta==0) plot2d(Npas',prixBS*ones(Npas)'); end; subplot(2,1,2); plot2d(Npas',[prixpont;prixpont-licpont;prixpont+licpont]'); if (beta==0) plot2d(Npas',prixBS*ones(Npas)'); end;