• Non ci sono risultati.

Capitolo 3: Metodi Simulativi per il calcolo del VaR

N/A
N/A
Protected

Academic year: 2021

Condividi "Capitolo 3: Metodi Simulativi per il calcolo del VaR"

Copied!
16
0
0

Testo completo

(1)

Capitolo 3: Metodi Simulativi per il calcolo del VaR

La Simulazione Montecarlo è diventata il metodo più utilizzato di previsione del Value At Risk di portafogli contenenti asset come obbligazioni e/o opzioni, a causa delle limitazioni che i Metodi Analitici di calcolo del VaR presentano, e che sono stati discussi nel capitolo precedente.

L' idea che sta alla base della Simulazione Montecarlo è che si possano replicare risultati di mercato sul computer, basandoci su alcuni modelli di evoluzione del mercato stesso. Quindi, facendo un sufficiente numero di simulazioni, si ottiene un campione di possibili risultati, abbastanza esteso da permetterci di calcolare accuratamente elementi quali il prezzo di una opzione, di una obbligazione oppure il Value At Risk. Tutto ciò funziona perchè il dato che a noi interessa conoscere è basato su un' aspettativa matematica di un processo statistico sottostante. Se si osserva un campione sufficientemente esteso del processo statistico e ne calcoliamo la media, possiamo arrivare alla definizione di un numero che, approssimativamente, eguaglia l' aspettativa matematica.

Questo modello presenta principalmente due limiti:

• E' basato su un modello, per cui la qualità dei risultati dipende inevitabilmente dalla qualità del modello.

• Talvolta si necessità un campione molto esteso per effettuare il calcolo accuratamente, per cui è necessario molto tempo.

3.1 Generazione di numeri pseudo casuali

L' input fondamentale per l' implementazione della Simulazione Montecarlo è una lunga sequenza di numeri casuali, che vengono prodotti al computer attraverso un Generatore di numeri pseudo casuali; questo genera un integrale tra 0 ed un numero elevato di una distribuzione uniforme. La lunghezza della

(2)

numeri casuali del periodo, i numeri si ripetono. Infatti, solitamente vengono generati attraverso una funzione del tipo ui+1=h (ui) , dove ui rappresenta l'

i-esimo numero casuale e h(.) è il generatore di numeri casuali, per cui un numero casuale è funzione del numero precedente. Il generatore di numeri casuali può definire solo un numero fisso di diversi numeri casuali, e tale numero prende il nome di periodo; dopodiché li ripete.

Definire dei numeri che sono effettivamente casuali è molto difficile, ed è essenziale che la distribuzione di questi numeri sia del tipo IID uniforme. Sintomi di un generatore di numeri casuali di bassa qualità sono la scelta di un periodo breve, dipendenze seriali o lievi deviazioni dalla distribuzione standard. 3.2 Generatori congruenti lineari

Nessun algoritmo numerico può creare una vera e propria sequenza di numeri casuali, ma, ciononostante, ne esistono alcuni che generano sequenze ripetute di integrali che sono distribuiti casualmente all'interno di un certo range. I migliori generatori di numeri casuali sono quindi chiamati Generatori Congruenti Lineari (LCG), in cui la formula che collega l' i-esimo e l' (i+1)–esimo integrale è data da

ui+1=(a×ui+c) mod m (3.1)

dove a è un moltiplicatore, c è un incremento, m è il modulo in cui si trovano gli integrali e mod è la funzione del modulo.

Il primo numero casuale della sequenza è chiamato seed (seme), e solitamente viene scelto da chi utilizza il generatore; è consigliato fissare il seed a prescindere dalla stima della simulazione, così da essere sicuri di ottenere sempre la stessa sequenza di numeri casuali, e quindi lo stesso risultato della stima. Le correlazioni seriali sono il principale problema collegato agli LCG, e non vengono eliminate facilmente, per cui si preferisce utilizzare generatori di numeri casuali più complessi che introducono la non linearità. Il generatore di numeri

(3)

casuali di default in Matlab è il Mersenne Twister, il cui nome deriva dal fatto che ha un periodo pari a 219,937−1 , che è un numero primo di Mersenne.

3.3 Generatori di numeri casuali non lineari e metodi di trasformazione

La maggioranza dei generatori di numeri casuali genera numeri uniformi (u), che nella maggior parte dei casi sono definiti per essere nell' intervallo [0,1]; in pratica, però, sono richiesti numeri casuali tratti da una distribuzione diversa. I Metodi di Trasformazione convertono numeri uniformi in numeri casuali a partire della distribuzione considerata, attraverso la trasformazione inversa, anche se questo approccio non è raccomandato, dal momento che queste trasformazioni, talvolta, sono lente e poco accurate, soprattutto per la coda della distribuzione. Il metodo per la generazione di numeri normali casuali più comune è il Box – Muller Method. Questo metodo afferma che, se generiamo due numeri uniformi (u1,u2) , possiamo trasformarli in una coppia di numeri uniformi IID (n1,n2) attraverso le formule:

n1=

−2 logu1sin(2πu2) (3.2)

n2=

−2 logu1cos(2πu2) (3.3)

Questo metodo è veloce e ragionevole per la computazione casuale, ma potrebbe non essere il metodo migliore, poiché, in alcune circostanze, i due numeri normali generati non sono completamente indipendenti. Matlab comunque fornisce un range di generatori di numeri casuali e metodi di trasformazione nella stessa funzione.

3.4 Simulazione di prezzo

La teoria sottostante l' approccio simulativo consiste nel fatto che il prezzo di un asset corrisponde all'aspettativa della funzione del payoff finale, presa sotto l' ipotesi di neutralità al rischio. Il payoff di un derivato dipende dai movimenti di

(4)

di tali movimenti di prezzo, possiamo ottenere una stima puntuale del prezzo. 3.4.1 Obbligazioni

Il prezzo ed il rischio di un asset a reddito fisso come le obbligazioni sono basati sul tasso di interesse di mercato. Usando un modello di distribuzione del tasso di interesse è possibile simulare una curva dei rendimenti casuale, la quale a sua volta viene utilizzata per ottenere la distribuzione dei prezzi delle obbligazioni. Indicando il tasso di interesse annuo rj , cioè il tasso di uno zero coupon bond

usato per scontare un pagamento effettuato nel futuro al tempo j, si definisce la funzione del prezzo, in cui non si assume che la curva dei rendimenti sia piatta:

P=

j=1 T τ j (1+rj) j (3.4)

P è il prezzo dell' obbligazione, τj è il flusso di cassa da essa derivante, che include anche il valore nominale τT .Ai fini della simulazione si fa un' ipotesi

semplificatrice, e cioè che la curva dei rendimenti non possa cambiare forma, ma solo muoversi verso l' alto o verso il basso, come illustrato nella Fig 3.1.

Fig 3.1. Curva dei rendimenti dell' obbligazione vera e simulata

(5)

standard σ, εi∼N (0,σ2) .

Il codice per fare tale simulazione in Matlab è il seguente:

La matrice dei rendimenti simulati è ysim; per ottenerla vengono utilizzati principalmente due metodi: il primo corrisponde ad un loop per ogni curva dei rendimenti simulata, il secondo all'utilizzo di un operatore di matrice build-in, in cui il vettore dei rendimenti ed i numeri casuali sono duplicati S volte (S corrisponde al numero di simulazioni effettuate) all'interno della matrice.

L' i-esimo prezzo simulato, Pi , corrisponde al valore attuale dei flussi di cassa,

usando il tasso di interesse simulato εi

Pi=

j=1 T τ j (1+rj+εi) t, i=1 ,... ,S (3.5)

dove rj+εi è l' i-esimo tasso di interesse simulato al tempo j.

Dopo aver simulato i prezzi, questi vengono rappresentati nella Fig 3.2 e nella Fig 3.3, dove però S=50000 lungo la distribuzione normale, con stessa media e varianza dei prezzi simulati. E' da notare che nella distribuzione simulata c'è una lieve asimmetria.

(6)

Fig 3.2. Simulazione di 8 obbligazioni con rendimenti della Fig 3.1

Nella applicazione sopra abbiamo fatto l' assunzione semplificatrice che la curva dei rendimenti potesse solo traslare verso l' alto o verso il basso, poiché lo shock casuale è normalmente distribuito. Questo, nella pratica, è uno scenario irrealistico, poiché la curva dei rendimenti nel tempo cambia la sua forma, e la distribuzione delle variazioni dei tassi di interesse potrebbe non essere normale. Sarebbe allora relativamente semplice modificare tale metodo per inserire gli effetti in questione. Se volessimo far cambiare forma alla curva dei rendimenti, si può effettuare un'analisi delle componenti principali (PCA) e simulare i primi due o tre componenti nella simulazione.

Fig 3.3. Distribuzione di 50000 simulazioni di obbligazioni con la distribuzione normale

(7)

3.4.2 Opzioni

Si vuole utilizzare la Simulazione Montecarlo per calcolare il prezzo di una opzione Europea (è il caso più semplice) basata su un' azione che non paga dividendi, tenendo presente che valgono tutte le assunzioni fatte nel Modello di Black and Scholes. In tale modello ci sono due asset “primitivi”: un conto di mercato monetario, il quale è valutato al tasso free risk, e l' azione sottostante, che segue una camminata casuale distribuita casualmente con tendenza r (tasso di interesse free risk annuo). Quest'ultima, quando si considera il continuo, è definito Moto Browniano Geometrico, ed è una delle assunzioni di base del modello.

In assenza di arbitraggio, il prezzo futuro di un' opzione su azioni con consegna al tempo T al tasso di interesse free risk annuo r è dato da

F=P erT (3.6)

Al fine di una comparazione con i risultati ottenuti attraverso una simulazione Montecarlo, viene utilizzato il modello analitico di cui al capitolo precedente per calcolare il prezzo di una opzione Call europea. Il relativo codice per Matlab è

Definendo poi i dati necessari per svolgere il calcolo, ed assumendo che il file per il calcolo abbia il nome bs.m

(8)

Ed il risultato che si ottiene è pari a $ 11.0873.

Adesso si determina il prezzo della opzione Call europea attraverso la simulazione Montecarlo:

Per prima cosa, si calcolano i rendimenti nel periodo fino a scadenza, che verranno poi utilizzati per il calcolo dei prezzi futuri simulati. Una volta ottenuto un campione sufficientemente ampio, si calcola il set di risultati per l' opzione, ed il risultato della simulazione corrisponde alla media di tali payoff. L' unica difficoltà riscontrata nella procedura deriva dall'aspettativa di una variabile casuale log-normale, cioè

O∼N (µ ,σ2)

se si verifica questo, allora abbiamo che

E=[exp(O)]=exp(µ+1 2σ

2

) (3.7) Si deve cioè applicare una correzione log-normale (1

2σ 2

) per assicurarci che l' aspettativa sul prezzo futuro simulato corrisponda al valore teorico. Il relativo codice per Matlab corrisponde a

(9)

Per misurare l' accuratezza del calcolo si deve confrontare il risultato ottenuto con quello del modello di Black and Scholes, che è $11.0873. Si ottiene $11.0996, che è molto vicino, per cui la accuratezza della procedura viene confermata. Nelle Fig 3.4. e 3.5. vengono raffigurate le densità dei prezzi simulati ed i payoff delle opzioni. L' asimmetria presente nella Fig 3.4. deriva dal fatto che i prezzi sono distribuiti log-normalmente.

Fig 3.4. Simulazione di 106 prezzi futuri con la distribuzione normale sovraimposta

(10)

3.5 Simulazione del VaR per un singolo asset

L' approccio migliore per la definizione del VaR di un asset attraverso la simulazione Montecarlo consiste nel simulare i rendimenti giornalieri di un asset, e poi applicare la formula analitica per simulare il prezzo dell' opzione. La differenza tra valore futuro e valore conosciuto di oggi rappresenta il profitto o la perdita simulata del portafoglio, dal quale noi possiamo calcolare il VaR con la simulazione Montecarlo.

Si consideri un asset con prezzo Pt, rendimenti indipendenti e identicamente distribuiti, volatilità giornaliera σ e tasso di interesse free risk annuo r. Il numero di unita dell' asset di riferimento nel portafoglio è definito xb , mentre il numero di opzioni possedute è x0 .

La procedura per ottenere il VaR viene riassunta in sei passaggi: 1. Si calcola il valore iniziale del portafoglio, cioè

ϑt=xbPt (3.8) 2. Si simula un numero S di rendimenti giornalieri, yt+1, t , dalla

distribuzione N(0, σ2) , i=1,... , S

3. Si calcola il prezzo futuro tramite la formula

Pt+1, t=Pte

r(1/365)×eyt+1, t×e−0,5σ2,i=1,... , S (3.9)

dove 365 corrisponde al calendar time, usato per il calcolo del tasso di interesse e Pt+1, t . L' ultimo termine della formula è la correzione log-normale di cui abbiamo già parlato.

4. Si calcola il valore futuro del portafoglio

ϑt+1,i=xbPt+1,i (3.10) 5. Si calcola il valore dell' i-esimo profitto o perdita simulato

qt+1,i=ϑt+1, i−ϑt (3.11)

6. Si ottiene il VaR dal vettore dei profitti e perdite simulate P/L, {qt+1, i}i=1

S

. E' importante tenere presente che ad essere simulato è il prezzo dell'asset

(11)

all'epoca t+1, calcolato moltiplicando l' esponenziale dei rendimenti simulati per il prezzo futuro, applicando una correzione legata alla log-normalità. Si usa un rendimento free risk perchè è una assunzione del modello Black and Scholes. 3.5.1 Value At Risk di un' opzione su un asset base

Per le opzioni si deve fare un passo in più: si deve applicare l' equazione di Black and Scholes ai prezzi correnti ed a quelli futuri simulati. L' equazione viene indicata con g( ), mentre x0 indica il numero di opzioni.

Il valore attuale del portafoglio corrisponde a

ϑt=x

0

g( Pt, X , T ,

250 σ , r) (3.12)

dove 250 corrisponde al trading time (periodo di contrattazione), mentre l' i-esimo valore futuro simulato del portafoglio è

ϑt+1,i=x 0

g( Pt+1, i, X , T−1/365,

250 σ , r) (3.13) Gli altri passaggi corrispondono a quanto detto nel paragrafo precedente.

3.5.2 Portafoglio con azioni ed opzioni.

La metodologia appena esposta può essere applicata a situazioni in cui, in un portafoglio, sono presenti sia un' azione che un' opzione o vari tipologie di opzioni sulla stessa azione. Ipotizziamo, ai fini della semplicità e della chiarezza, di avere una sola tipologia di opzione; il valore iniziale del portafoglio corrisponde a

ϑt=xbPt+x0g( Pt, X , T ,

250 σ , r) (3.14)

mentre l' i-esimo valore futuro simulato del portafoglio corrisponde a

ϑt+1,i=x

b

Pt+1,i+x 0

g( Pt+1, i, X , T−1/365,

250 σ , r) (3.15) Gli altri passaggi corrispondo a quanto detto nei paragrafi precedenti.

(12)

3.6 Simulazione del VaR di un portafoglio

La simulazione del VaR di un intero portafoglio comporta la presenza di un modello di rischio multivariato; la principale differenza con ciò che abbiamo visto fino ad adesso è che, invece di simulare i rendimenti di un solo asset, si devono calcolare i rendimenti correlati per ogni asset presente nel portafoglio. I prezzi futuri simulati sono calcolati nello stesso modo fatto in precedenza, per cui si ottiene il valore del portafoglio semplicemente sommando il valore dei singoli asset detenuti.

Supponiamo di avere all'interno del portafoglio due asset che non corrispondono a derivati, con distribuzione dei rendimenti giornalieri

N

(

µ=

(

0.05/365 0.05/365

)

, ∑=

(

0.01 0.0005

0.0005 0.02

)

)

(3.17)

Il codice di Matlab relativo al calcolo dei rendimenti simulati è

dove mu è il vettore delle medie, sigma è la covarianza della matrice K x K ed y è il vettore dei rendimenti simulati dell' asset nel portafoglio.

A questo punto si deve simulare il VaR dell' intero portafoglio. Definiamo xb il vettore delle attività detenute, i è l' indice numerico della simulazione e k è l' indice numerico dell'asset, così che Pi , k ,t corrisponda all'i-esimo prezzo

simulato del bene k all'epoca t. Il calcolo del VaR si sviluppa attraverso sei passaggi:

1. Si calcola il valore iniziale del portafoglio

ϑt=

k=1

K

xkbPt ,k (3.18)

(13)

chiamato yt+1, i , dalla distribuzione

N(µ−12Diag ∑ , ∑) (3.19) dove Diag ∑ estrae gli elementi della diagonale di ∑ per effettuare la correzione prevista a causa della log-normalità.

3. Si calcola l' i-esimo prezzo futuro simulato del bene k

Pt+1, k ,i=Pt , kexp( yt+1, k ,i) (3.20) 4. Si calcola l' i-esimo valore futuro del portafoglio

ϑt+1,i=

k=1

K

xkbPt+1, k ,i (3.21)

5. Si calcola l' i-esimo valore simulato dei profitti o perdite q

qt+1,i=ϑt+1, i−ϑt (3.22)

6. Si calcola il VaR dal vettore dei profitti / perdite simulato {qt+1, i}i=1

S

3.7 Calcolo del VaR di un portafoglio contenente opzioni

Se nel portafoglio sono presenti opzioni, sono richieste alcune modifiche ai passaggi effettuati nel paragrafo precedente. Per semplicità, si assume che per azione ci sia un solo tipo di opzione. Il valore iniziale del portafoglio viene calcolato attraverso la formula

ϑt=

k=1

K

xkb( Pt ,k+xk0g( Pt , k, Xk,T ,

250 σk, r)) (3.23)

Si calcola poi l' i-esimo valore simulato del portafoglio attraverso la formula

ϑt+1,i=

k=1 K xkbPt+1, k ,i+x0kg( Pt+1, k ,i, Xk, T− 1 365,

250 σk, r) (3.24)

3.8 Problemi nella stima

In ogni simulazione effettuata tramite il Metodo Montecarlo si verificano alcune problematiche, di cui le più importanti sono la qualità dei generatori di numeri

(14)

3.8.1 Generatori di numeri casuali

Come si è già detto, la simulazione Montecarlo cerca di riprodurre il mondo reale sul computer. La qualità di tale simulazione non dipende solamente dal modello stocastico sottostante, ma anche dal generatore di numeri casuali utilizzato; sono proprio le proprietà di questo ultimo che influiscono sul risultato finale. La qualità desiderata, così come il periodo del generatore, dipende dalle applicazioni sottostanti: se dobbiamo ottenere numeri casuali per un solo asset lo sforzo richiesto al generatore è molto piccolo, mentre se consideriamo un portafoglio contente opzioni di diversa natura, la quantità di numeri casuali necessari aumenta. La stessa importanza assume il metodo di trasformazione, poiché alcuni di essi sono definiti per gestire la parte centrale di una distribuzione; questo significa che si possono verificare dei problemi quando vengono simulati eventi estremi.

3.8.2 Numero di simulazioni

Il numero di simulazioni da effettuare è di estrema importanza, poiché se se ne definisce un numero troppo basso, il risultato probabilmente non è accurato; viceversa, se si effettua un numero di simulazioni troppo elevato, vengono sprecati tempo e risorse.

Non ci sono regole riguardanti il numero ottimale di simulazioni da effettuare, ma sono stati definiti dei metodi di definizione di questo in via informale: la proposta comune è che la accuratezza della simulazione sia correlata alla grandezza della simulazione stessa, ma questa si basa sulla linearità, per cui non può essere assunta con riguardo alla simulazione Montecarlo. Quest'ultima infatti, con riguardo al calcolo del VaR, si basa sulla trasformazione non lineare di variabili casuali, ed usa solamente un quantile dei risultati, per cui la determinazione del numero di simulazioni necessario è complessa. Solitamente la strada migliore è aumentare il numero di simulazioni e vedere come converge la

(15)

stima; quando i numeri smettono di variare per tre cifre significative, quello probabilmente è il numero di simulazioni sufficiente.

Come esempio sulla scelta del numero di simulazioni da effettuare, si considera la definizione del prezzo di una opzione europea attraverso il metodo Montecarlo, e poi si compara il risultato con il metodo analitico.

Fig 3.6. Stima cumulativa con il metodo Montecarlo, dalla simulazione della Fig 3.4

Il valore reale è circa 11.09, e per non fare verificare una variazione di tre cifre significative impiega 5000 simulazioni. La Fig 3.8. mostra il VaR ottenuto tramite la simulazione Montecarlo per un' azione con volatilità giornaliera pari al 1% , con il numero di simulazioni che passa da 100 fino a centinai di migliaia, insieme agli intervalli di confidenza del 1% e 99%.

(16)

Per il numero più basso di simulazioni, l' intervallo di confidenza è abbastanza ampio, ma diventa rapidamente più stretto; nel 99% dei casi, quindi, la stima con il metodo Montecarlo è pari a tre cifre significative. In considerazione del fatto che la previsione della volatilità è minore di questa, la conclusione è che 100000 simulazioni sono sufficienti.

Riferimenti

Documenti correlati

Oggi, questo genere di giornalismo è particolarmente attivo a tutela dei diritti e delle libertà dei cittadini della Repubblica Popolare Cinese (RPC), e grazie a esso, anche

Moreover, universal connection is always an equilibrium with network neutrality, while, in the unregulated regime, it is an equilibrium only when repeated ad impressions do not

• Nel terzo capitolo, dopo aver ricordato alcune nozioni finanziarie, introdurremo una generalizzazione della greca vega nota come indice locale vega: la possibilità di esprimere

La distribuzione per età della popolazione di pazienti FC risulta diversa da quella della popolazione italiana (fonte: ISTAT 2016); emerge, infatti, che per le classi di età più

Si è potuto riscontrare, attraverso casi reali, che la differenza tra i valori determinati con l’ausilio di formulazioni che omettono le resistenze di terra dei sostegni e

Da quanto detto, si evince che, tra i 7 livelli, una posizione particolare è assunta dal livello di transport, che si trova esattamente a metà delle due classificazioni fatte prima:

Quando la procedura sar` a terminata il cluster avr` a dei precisi confini, ed i legami con gli spin fuori dal cluster saranno m con spin uguali e n con spin opposti..

In questo caso non esiste una