/
金融商品設計與評價 金融商品設計與評價

金融商品設計與評價 - PowerPoint Presentation

medshair
medshair . @medshair
Follow
345 views
Uploaded On 2020-08-28

金融商品設計與評價 - PPT Presentation

hw14 計財系大三 林奕全 Outline 1 range forward 出口商 long 美元賣權 進口商 long 美元買權 2Sallie Mae 3finite difference in European Call ID: 808662

matval sigma jud exp sigma matval exp jud smax normcdf idown veti vets price vett lattice sqrt function sol

Share:

Link:

Embed:

Download Presentation from below link

Download The PPT/PDF document "金融商品設計與評價" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

金融商品設計與評價hw14

計財系大三 林奕全

Slide2

Outline

1. range forward

-

出口商

(long

美元賣權

)

-

進口商

(long

美元買權

)

2.Sallie Mae

3.finite difference in European Call

-Explicit approach

-Implicit approach

Slide3

流程:以出口商為例

Step1:

給定

s0,X,r,rf,T,sigma

B-S

算出賣權的權利金

,

假設為

P

Step2:

P =a*exp(-r*T)*

normcdf

(-d2)-s0*exp(-

rf

*T)*

normcdf

(-d1)

解未知數

a(

P

為權利金的買權執行價格

)

Slide4

a=20:0.5:35;

s0=27;

X=26.7;

sigma=0.0311;

rf

=0.0304;

r=0.0565;

T=0.25;

d1=(log(s0./a)+(r-rf+sigma^2./2).*T)/(sigma.*sqrt(T));

d2=d1-sigma.*

sqrt

(T);

[K]=s0.*exp(-rf.*T).*

normcdf

(d1)-a.*exp(-r.*T).*

normcdf

(d2);

[ C,P ] =

Curoption

( s0,X,r,rf,T,sigma);

figure

plot(

a,P

-K,'-');

title('Solution');

xlabel

('a')

ylabel

('P-K')

legend('value')

Slide5

Slide6

Curoption

function [ C,P ] =

Curoption

( s0,X,r,rf,T,sigma )

d1=(log(s0/X)+(r-rf+sigma^2/2)*T)/(sigma*sqrt(T));

d2=d1-sigma*

sqrt

(T);

C=s0*exp(-

rf

*T)*

normcdf

(d1)-X*exp(-r*T)*

normcdf

(d2);

P=X*exp(-r*T)*

normcdf

(-d2)-s0*exp(-

rf

*T)*

normcdf

(-d1);

end

Slide7

Demovalue

function [ K ] =

Demovalue

(s0,a,r,rf,T,sigma,jud)

d1=(log(s0/a)+(r-rf+sigma^2/2)*T)/(sigma*sqrt(T));

d2=d1-sigma*

sqrt

(T);

if

jud

==0

K=s0*exp(-

rf

*T)*

normcdf

(d1)-a*exp(-r*T)*

normcdf

(d2);

else

K=a*exp(-r*T)*

normcdf

(-d2)-s0*exp(-

rf

*T)*

normcdf

(-d1);

end

end

Slide8

approx

function [sol] = approx(C,P,X,s0,r,rf,T,sigma,jud )

a=X;

S=zeros(1,2000);

if

jud

==0

for

i

=2:1:2001

S(i-1)=

Demovalue

(s0,a+(i-1)*0.001,r,rf,T,sigma,jud);

end

Slide9

for

i

=2:1:2001

if (P-S(i-1))*(P-S(

i

))<0

c=P-S(i-1);

d=P-S(

i

);

sol=(c/(c-d))*(a+i*0.001)+(-d/(c-d))*(a+(i-1)*0.001);

break;

end

end

Slide10

else

P=C;

for

i

=2:1:2001

S(i-1)=

Demovalue

(s0,a-(i-1)*0.001,r,rf,T,sigma,jud);

end

Slide11

for

i

=2:1:2001

if (P- S(i-1))*(P- S(

i

))<0

c=P-S(i-1);

d=P-S(

i

);

sol=(-c/(d-c))*(a-i*0.001)+(d/(d-c))*(a-(i-1)*0.001);

break;

end

end

end

end

Slide12

Curinterval

function [

lower,upper

] =

Curinterval

(s0,X,r,rf,T,sigma,jud )

[ C,P ] =

Curoption

( s0,X,r,rf,T,sigma );

[ K ] =

Demovalue

(s0,X,r,rf,T,sigma,jud);

if

jud

==0

sol = approx(C,P,X,s0,r,rf,T,sigma,jud );

lower=X;

upper=sol;

else

sol = approx(C,P,X,s0,r,rf,T,sigma,jud);

lower=sol;

upper=X;

end

end

Slide13

出口商

s0=27;

X=26.7;

>> sigma=0.0311;

>> rf=0.0304;

>> r=0.0565;

>> jud=0;

>> T=0.25;

Slide14

lower =

26.7000

upper =

27.6658

Slide15

進口商

s0=27;

X=27.65;

>> sigma=0.0311;

>> rf=0.0304;

>> r=0.0565;

>> jud=1;

>> T=0.25;

Slide16

lower =

26.7152

upper =

27.6500

Slide17

SalliieMaeBond

function [ price ] =

SalliieMaeBond

( s0,r,T,sigma,N )

deltaT

=T/N;

strike=[131.75,131.75,129.5,127,124.5];

u=exp(sigma.*

sqrt

(

deltaT

));

d=1./u;

p=(exp(r.*deltaT)-d)/(u-d);

lattice=zeros(N+1,N+1);

for j=0:N

s=(50*((s0-124.5)/s0))*(

u^j

)*(d^(N-j));

if s<9.25

lattice(N+1,j+1)=9.25;

end

end

Slide18

for

i

=N-1:-1:0

for j=0:i

k=strike(ceil(5*(i+1)/N));

s=s0*(

u^j

)*(d^(

i

-j));

lattice(i+1,j+1)=max((50*((s-k)/s)),exp(-r*

deltaT

)*(p*lattice(i+2,j+2)+(1-p)*lattice(i+2,j+1)));

if lattice(i+1,j+1)<9.25*exp(-r*(T-(5*

i

/N)))

lattice(i+1,j+1)=9.25*exp(-r*(T-(5*i/N)));

end

end

end

price=lattice(1,1);

Slide19

N=500;

s0=10:5:500;

sigma=0.4;

r=0.02;

T=5;

Slide20

Slide21

EuCallExpl1

function [

price,matval,vetS,vetT

] =EuCallExpl1 (s0,X,r,T,sigma,Smax,dS,dt )

M=round(

Smax

/

dS

);

dS

=

Smax

/M;

N=round(T/

dt

);

dt

=T/N;

matval

=zeros(M+1,N+1);

vetS

=

linspace

(0,Smax,M+1);

vetj

=0:N;

veti

=0:M;

vetT

=

linspace

(0,T,N+1);

Slide22

matval

(:,N+1)=max(vetS-X,0);

matval

(1,:)=0;

matval(M+1,:)=(vetS(M+1)-X).*exp(-r*dt*(N-vetj));

a=0.5*

dt

*(sigma^2*

veti

-r).*

veti

;

b=1-dt*(sigma^2*veti.^2+r);

c=0.5*

dt

*(sigma^2*

veti+r

).*

veti

;

Slide23

for j=N:-1:1

for

i

=2:M

matval(i,j)=a(i)*matval(i-1,j+1)+b(i)*matval(i,j+1)+c(i)*matval(i+1,j+1);

end

end

idown

=floor(s0/

dS

);

iup

=ceil(s0/

dS

);

Slide24

if

idown

==

iup

price=

matval

(idown+1,1);

else

price=

matval

(idown+1,1)+(s0-(idown+1)*

dS

)*(

matval

(iup+1,1)-

matval

(iup,1))/

dS

;

end

Slide25

s0=50;

X=50;

r=0.1;

T=5/12;

sigma=0.3;

>>

Smax

=100;

>>

dS

=2;or

dS

=1.2

>>

dT

=5/1200;

Slide26

[Expds1,matval,vetS,vetT] =EuCallExpl1 (s0,X,r,T,sigma,Smax,dS,dT);

mesh(

vetT,vetS,matval

);

xlabel

('Time');

>>

ylabel

('Stock price');

>> Title('European Call

Option,Explicit

Method');

Slide27

Slide28

Slide29

EuCallImpl1(Confused)

function [

price,matval,vetS,vetT

] =EuCallImpl1 (s0,X,r,T,sigma,Smax,dS,dt )

M=round(

Smax

/

dS

);

dS

=

Smax

/M;

N=round(T/

dt

);

dt

=T/N;

matval

=zeros(M+1,N+1);

vetS

=

linspace

(0,Smax,M+1);

vetj

=0:N;

veti

=0:M;

Slide30

vetT

=

linspace

(0,T,N+1);

matval

(:,N+1)=max(vetS-X,0);

matval

(1,:)=0;

matval(M+1,:)=(Smax-X)*exp(-r*dt*(N:-1:0));

a=0.5*(r*

dt

*veti-sigma^2*

dt

*(veti.^2));

b=1+sigma^2*

dt

*(veti.^2)+r*

dt

;

c=(-0.5)*(r*dt*veti+sigma^2*dt*(veti.^2));

coeff=diag(a(3:M),-1)+diag(b(2:M))+diag(c(2:M-1),1);

[L,U]=

lu

(

coeff

);

aux=zeros(M-1,1);

Slide31

for j=N:-1:1

aux(1)=-a(2)*

matval

(1,j);

matval

(2:M,j)=U\(L\(

matval

(2:M,j+1)+aux));

end

idown

=floor(s0/

dS

);

iup

=ceil(s0/

dS

);

if

idown

==

iup

price=

matval

(idown+1,1);

else

price=

matval

(idown+1,1)+(s0-idown*

dS

)*(

matval

(idown+2,1)-

matval

(idown+1,1))/

dS

;

end

Slide32

s0=50;

X=50;

r=0.1;

T=5/12;

sigma=0.3;

>>

Smax

=100;

>>

dS

=2;or

dS

=1.2

>>

dT

=5/1200;

Slide33

[Expds1,matval,vetS,vetT] =EuCallImpl1 (s0,X,r,T,sigma,Smax,dS,dT);

mesh(

vetT,vetS,matval

);

xlabel

('Time');

>>

ylabel

('Stock price');

>> Title('European Call

Option,Implicit

Method');

Slide34

Slide35

Related Contents


Next Show more