%METODO EXPLICITO PARA LA RESOLUCION DE LA ECUACION DE BLACK-SCHOLES MODIFICADA (CON LA ESTRUCTURA DE COSTOS DE TRANSACCION DE LELAND) %ECUACION: (dV/dt)+1/2*sigma^2*S^2*(d^2V/dS^2)-kapa*sigma*S^2*sqrt(2/(pi*deltat))*|d^2V/dS^2|+r*S*(dV/dS)-r*V=0 %Este modelo contempla tambien el caso sin costos, poniendo kapa=0 (y deltat distinto de 0 por como es el algoritmo) function V=explicito(sigma,r,kapa,deltat,dt,dS,M,N) % INPUT: sigma es la volatilidad, r la tasa de interes libre de riesgo, kapa la constante asociada al costo, delta t es el intervalo % entre rehedging, dt*M=T (donde T es el stike price), dt es el intervalo de tiempo en la grilla y M es la cantidad de pasos, dS es % el intervalo de la grilla y N es la cantidad de pasos en esa direccion. % OUTPUT: V(n) es V(n*dS,0)=V(S,0) for n=0:N-1 oldV(n+1)=pay_off(n*dS); %El Payoff es una funcion de S, hay que definirla end for m=M:-1:1 newV(1)=V_0(0,m*dt); newV(N)=V_inf(N*dS,m*dt); %Estas dos funciones son las condiciones de contorno, hay que definirlas for n=2:N-1 if (oldV(n-1)-2*oldV(n)+oldV(n+1)>0) a=(1/2*sigma^2*n^2-kapa*sigma*n^2*sqrt(2/(pi*deltat))-(r*n)/2)*dt; b=(1-(sigma^2*n^2+2*kapa*sigma^2*n^2*sqrt(2/(pi*deltat))+r)*dt); c=(1/2*sigma^2*n^2-kapa*sigma*n^2*sqrt(2/(pi*deltat))+(r*n)/2)*dt; newV(n)=a*oldV(n-1)+b*oldV(n)+c*oldV(n+1); else a=(1/2*sigma^2*n^2+kapa*sigma*n^2*sqrt(2/(pi*deltat))-(r*n)/2)*dt; b=(1-(sigma^2*n^2-2*kapa*sigma^2*n^2*sqrt(2/(pi*deltat))+r)*dt); c=(1/2*sigma^2*n^2+kapa*sigma*n^2*sqrt(2/(pi*deltat))+(r*n)/2)*dt; newV(n)=a*oldV(n-1)+b*oldV(n)+c*oldV(n+1); end end for n=1:N oldV(n)=newV(n); end end for n=1:N V(n)=oldV(n); end %Grafica S versus V el precio del activo contra el valor del portfolio for n=0:N-1 S(n+1)=dS*n; end plot(S,V) %Realizado por Manuel Maurette y Javier Kreiner para Introduccion a Finanzas, dictada el primer cuatrimestre de 2004 por Pablo Amster.