//TP3_09.sce Prix d'une option comme espérance conditionnelle //du payoff clear; //Exercice 1 binomial(0.5,1) binomial(0.5,2) binomial(0.5,3) binomial(0.5,3') //Calcul des valeurs de SS (reprise de TP1)//////////// n=100;T=1;delta_t=T/n;S0=140;sigma=0.40;K=S0; up=exp(sigma/sqrt(n));down=1/up; r=0.1;R=exp(r*delta_t); SS=zeros(n+1,n+1); SS(1+0,1+0)=S0; for i=0:n-1 SS(1+(i+1),1+0)=SS(1+i,1+0)*down; //ici j=0 for j=0:i SS(1+(i+1),1+(j+1))=SS(1+i,1+j)*up; end; end; SS(1+n,1+0:1+n) p=(R-down)/(up-down); function phi=phi(S); phi=max(S-K,0); endfunction; phi(SS(1+n,1+0:1+n))*binomial(p,n)'; C=(phi(SS(1+n,1+0:1+n))*binomial(p,n)')/R^n //Exercice 2 C=zeros(1+n,1+n); C(1+n,:)=phi(SS(1+n,:)) for i=0:n-1 for j=0:i C(1+i,1+j)=(phi(SS(1+n,1+j:1+j+n-i))*binomial(p,n-i)')/R^(n-i) end; end; //Exercice 3 clear; n=100;T=1;delta_t=T/n;S0=140;sigma=0.40;K=S0;r=0.1;R=exp(r*delta_t); //on redéfinit up, down, p, S comme des fonctions de sigma function up=up(sigma); up=exp(sigma/sqrt(n)) endfunction; function down=down(sigma); down=exp(-sigma/sqrt(n)) endfunction; function p=p(sigma); p=(R-down(sigma))./(up(sigma)-down(sigma)) endfunction; function S=S(i,j,sigma); S=S0.*up(sigma).^(j).*down(sigma).^(i-(j)); endfunction; function phi=phi(S); phi=max(S-K,0); endfunction; //on trace le prix du Call noté Csig comme une fonction de sigma //pour des valeurs de sigma comprises entre sigmin et sigmax sigmin=0.2;deltasig=0.05;sigmax=0.8; for sig=1:(sigmax-sigmin)/deltasig //sigma=sigmin+sig*deltasig Csig(sig)=(phi(S(n,0:n,sigmin+sig*deltasig))*binomial(p(sigmin+sig*deltasig),n)')/R^n; end; plot2d(sigmin+deltasig:deltasig:sigmax,Csig)