6.1.3 generalizzazione del moto geometrico browniano · % formula di black e scholes per la...

3
62 Programmi in MATLAB 6.1.2 Simulazioni con generatore di numeri casuali % Simulazione dell ’andamento di un’azione soggetta al moto geometrico browniano % mediante il generatore di numeri casuali . function [f , s]=mgb(T,N, sigma ,mu, nsim , iniz ) % iniz = prezzo iniziale x= linspace (0,T,N+1); dt=T/N; for j =1:nsim+1 s(1)=iniz; for i =2:N+1 s(i)=s(i 1)+ s ( i 1)mu dt+sigma s(i 1) randn (dt^0.5); end f(j)=s( end ); end plot (x,s) media=mean (f) % Test: % mgb(20 ,100 ,.2,.1,1000 ,30) 6.1.3 Generalizzazione del moto geometrico browniano % Generalizzazione del moto geometrico browniano e caso di varianza % infinita. % function [s,v,m]=mgb_var_infinita(So,N,nsim,T,a,b,c,al,be) dt=T/N; u=1+a dt^al; d=1+b dt^al; pr=0.5 (1+c dt^be); for j =1:nsim s(1,j)=So; for i =1:N if rand <pr s(i+1,j)=u s(i,j); else s(i+1,j)=d s(i,j); end end end v=var(s(N+1,:)) m=mean (s(N+1,:)) hist (s(N+1,:)); % % Test: %[s ,v]=mgb_var_infinita (80,100,100,1,.4,.6,1, 1,1.5) %[s ,v,m]=mgb_var_infinita (80,100,100,1,0.2,5,1, 1,1) %[s ,v,m]=mgb_var_infinita (50,100,50,1,0.2,5,1, 1,1) % Moto geometrico browniano ; simulazioni successive implementate con % generatore di numeri casuali e stima numerica di media e varianza. % function [t ,S,M,V,m,v]=MGB_media(T,N,mu, si ,So, nsim) dt=T/N; t= linspace (0,T,N+1); for j =1:nsim S(1,j)=So;

Upload: others

Post on 18-Apr-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 6.1.3 Generalizzazione del moto geometrico browniano · % Formula di Black e Scholes per la determinazione del prezzo di un ’ opzione c all . function c=bsm_call (T, x , r , sigma

62 Programmi in M ATLAB

6.1.2 Simulazioni con generatore di numeri casuali

% Simu laz ione d e l l ’ andamento d i un ’ az ione s o g g e t t a a l motogeomet r i co browniano% mediante i l g e n e r a t o r e d i numer i c a s u a l i .

f unc t ion [ f , s ]=mgb (T , N, sigma , mu, nsim , i n i z )

% i n i z = p rezzo i n i z i a l e

x= l i n s p a c e( 0 , T ,N+ 1 ) ;d t =T /N;f o r j =1 : nsim +1

s (1 )= i n i z ;f o r i =2 :N+1

s ( i )= s ( i�1)+s ( i�1)�mu�d t +sigma�s ( i �1)�randn �( d t ^ 0 . 5 ) ;end

f ( j )= s ( end ) ;endp l o t ( x , s )media =mean( f )

% T e s t :% mgb ( 2 0 , 1 0 0 , . 2 , . 1 , 1 0 0 0 , 3 0 )

6.1.3 Generalizzazione del moto geometrico browniano

% G e n e r a l i z z a z i o n e d e l moto geomet r i co browniano e caso d i va r i a n z a% i n f i n i t a .%f unc t ion [ s , v ,m]= m g b _ v a r _ i n f i n i t a ( So ,N, nsim , T , a , b , c , a l , be )d t =T /N;u=1+a�d t ^ a l ;d=1+b�d t ^ a l ;p r =0.5� (1+ c�d t ^ be ) ;f o r j =1 : nsim

s ( 1 , j )= So ;f o r i =1 :N

i f rand < prs ( i +1 , j )= u�s ( i , j ) ;

e l s es ( i +1 , j )= d�s ( i , j ) ;

endend

endv= var ( s (N+ 1 , : ) )m=mean( s (N+ 1 , : ) )h i s t ( s (N+ 1 , : ) ) ;

%% T e s t :%[ s , v ]= m g b _ v a r _ i n f i n i t a ( 8 0 , 1 0 0 , 1 0 0 , 1 , . 4 , . 6 , 1 ,� 1 , 1 . 5 )%[ s , v ,m]= m g b _ v a r _ i n f i n i t a (80 , 100 , 100 , 1 , 0 . 2 , 5 , 1 ,�1 , 1 )%[ s , v ,m]= m g b _ v a r _ i n f i n i t a (50 , 100 , 50 , 1 , 0 . 2 , 5 , 1 ,�1 , 1 )

% Moto geomet r i co browniano ; s i m u l a z i o n i s u c c e s s i v e imp lemen ta te con% g e n e r a t o r e d i numer i c a s u a l i e s t ima numer ica d i media e v a ri a n z a .%f unc t ion [ t , S ,M,V,m, v ]=MGB_media (T ,N, mu, s i , So , nsim )d t =T /N;t = l i n s p a c e( 0 , T ,N+ 1 ) ;f o r j =1 : nsim

S ( 1 , j )= So ;

Page 2: 6.1.3 Generalizzazione del moto geometrico browniano · % Formula di Black e Scholes per la determinazione del prezzo di un ’ opzione c all . function c=bsm_call (T, x , r , sigma

6.2 Formula di Black e Scholes 63

f o r i =1 :NS ( i +1 , j )=S ( i , j )� [1+mu�d t + s i�randn�sq r t ( d t ) ] ;

endendM_num=mean( S (N+ 1 , : ) )V_num= var ( S (N+ 1 , : ) )m_ex=So�exp ( ( mu�T )+( s i ^2)�T)v_ex =( So ^2)� exp( (2�mu�T)+T�( s i ^2 ) )� ( exp (T�( s i ^2))�1)p l o t ( t , S ’ )%[ t , S]=MGB_media ( . 1 , 2 3 0 0 , . 3 , . 4 , 8 0 , 1 0 0 )

Simulazioni di prezzi azionari (moto geometrico browniano)

Tempo (anni)

Pre

zzo

0 0.02 0.04 0.06 0.08 0.150

60

70

80

90

100

110

120

Figura 6.1: Simulazioni successive di cammini azionari conmoto geometricobrowniano.

6.2 Formula di Black e Scholes

% Formula d i B lack e S c h o l e s per la d e t e r m i n a z i o n e d e l p rezzod i un ’ opz ione c a l l .

f unc t ion c= bsm _ca l l (T , x , r , sigma , s_0 )

% T = tempo d i e s e r c i z i o% x = s t r i k e p r i c e% r = t a s s o d i i n t e r e s s e f i s s o% sigma = v o l a t i l i t à% s_0 = prezzo i n i z i a l e d e l s o t t o s t a n t e

d1 =( l og ( s_0 . / x )+ ( r +( s igma ^ 2 / 2 ) )�T ) . / ( s igma�sq r t (T ) ) ;d2 =( l og ( s_0 . / x )+ ( r�(s igma ^ 2 / 2 ) )�T ) . / ( s igma�sq r t (T ) ) ;c=s_0�normcdf ( d1)�x .� exp(� r�T ) .� normcdf ( d2 ) ;

% A l t e r n a t i v a m e n t e , a l f i n e d i c a l c o l a r e la d i s t r i b u z i o n e cumu la t i va ,% s i può d e f i n i r e la f u n z i o n e a u s i l i a r i a che segue e r i c h i a m ar l a a l pos to% d i normcdf .

%f u n c t i o n N=cumu ( x )

Page 3: 6.1.3 Generalizzazione del moto geometrico browniano · % Formula di Black e Scholes per la determinazione del prezzo di un ’ opzione c all . function c=bsm_call (T, x , r , sigma

64 Programmi in M ATLAB

%N=0.5� e r f c (�x / s q r t ( 2 ) ) ;

% c=s_0�cumu ( d1)�x .� exp (� r�T ) .� cumu ( d2 ) ;

% T e s t :%x= l i n s p a c e ( 8 0 , 1 2 0 , 4 0 ) ;%a=bsm_ca l l ( . 5 , x , . 0 5 , . 2 , 1 0 0 ) ;%p l o t ( x , a )

Strike price

Pre

zzo

del

l’op

zio

ne

Prezzo di un’opzione call in funzione dello strike price

80 90 100 110 1200

5

10

15

20

25

Figura 6.2: Grafico del prezzo di un’opzionecall.

% Formula d i B lack e S c h o l e s per la d e t e r m i n a z i o n e d e l p rezzod i un ’ opz ione pu t .

f unc t ion c=bsm_put (T , x , r , sigma , s_0 )

% T = tempo d i e s e r c i z i o% x = s t r i k e p r i c e% r = t a s s o d i i n t e r e s s e f i s s o% sigma = v o l a t i l i t à% s_0 = prezzo i n i z i a l e d e l s o t t o s t a n t e

d1 =( l og ( s_0 . / x )+ ( r +( s igma ^ 2 / 2 ) )�T ) . / ( s igma�sq r t (T ) ) ;d2 =( l og ( s_0 . / x )+ ( r�(s igma ^ 2 / 2 ) )�T ) . / ( s igma�sq r t (T ) ) ;c=x .� exp(� r�T ) .� normcdf(�d2)�s_0�normcdf (�d1 ) ;

% A l t e r n a t i v a m e n t e , a l f i n e d i c a l c o l a r e la d i s t r i b u z i o n e cumu la t i va ,% s i può d e f i n i r e la f u n z i o n e a u s i l i a r i a che segue e r i c h i a m ar l a a l pos to% d i normcdf .

%f u n c t i o n N=cumu ( x )

%N=0.5� e r f c (�x / s q r t ( 2 ) ) ;

% c=x .� exp (� r�T ) .� cumu(�d2)�s_0�cumu(�d1 ) ;

% T e s t :%x= l i n s p a c e ( 8 0 , 1 2 0 , 4 0 ) ;%a=bsm_put ( . 5 , x , . 0 5 , . 2 , 1 0 0 ) ;%p l o t ( x , a )