Blog divulgativo sulla matematica applicata

Pricing dei derivati prima parte (i processi stocastici)

VasicekModel

Ci sono fenomeni che riusciamo a prevedere con grande precisione e fenomeni invece che hanno una componente casuale che non ci permette di fare previsioni deterministiche.

Ad esempio conoscendo le posizioni e le velocità attuali dei pianeti possiamo calcolare con grande precisione le loro posizioni e velocità tra 100 anni. Invece anche sapendo il prezzo del petrolio di oggi, non siamo in grado di prevedere nemmeno il prezzo di domani.

Come si descrivono questi fenomeni che hanno un'evoluzione non deterministica?

Il formalismo matematico usato in questi casi è quello dei processi stocastici. Definirli in modo rigoroso non è semplice, cercherò di darne un'idea intuitiva.

Un processo stocastico S è determinato da un'equazione differenziale stocastica del tipo:

dS(t) = a(S,t)dt + b(S,t)dW

dove i vari termini hanno questa interpretazione:

\underbrace{dS(t)}_\text{variazione di S} = \underbrace{a(S,t)dt}_\text{componente deterministica} + \underbrace{b(S,t)dW}_\text{componente casuale}

Le variazioni di S nel tempo (dS) dipendono da due funzioni a e b. La funzione a è detta drift o deriva e rappresenta la parte deterministica dell'evoluzione di S, la funzione b è detta diffusione e regola la parte casuale dell'evoluzione di S.

Un esempio di sistema fisico descritto da un processo di questo tipo potrebbe essere il seguente: una massa collegata a una molla che subisce un disturbo casuale provocato dagli scontri con altre particelle.

In questa analogia il termine di deriva a descrive come agisce la forza elastica mentre il termine di diffusione b rappresenta il contributo degli urti con le particelle.

Le due componenti possono avere peso diverso, in alcuni casi può prevalere la componente deterministica e il moto sarà praticamente uguale a quello previsto in assenza di componente casuale, oppure i disturbi caotici possono essere così ampi da mascherare completamente l'effetto della forza.

I tre grafici successivi rappresentano delle simulazioni di questo sistema. Nel primo il peso della componente casuale è molto basso mentre nei successivi è stato aumentato.

OscillatoreBrowniano1

 

OscillatoreBrowniano2

OscillatoreBrowniano3

Osservazione importante: ogni grafico mostra diverse possibili realizzazioni dello stesso processo stocastico. Fissata una certa equazione differenziale stocastica non è determinata l'evoluzione ma la probabilità di ottenere alcuni cammini piuttosto che altri e un certo cammino rappresenta un'estrazione casuale dall'insieme dei possibili cammini.

Ma come si fanno a creare queste simulazioni? Si usa la versione a intervalli discreti dell'equazione differenziale stocastica:

\Delta S(t) = S(t+\Delta t) - S(t) = a(S,t)\Delta t + b(S,t)\sqrt{\Delta t}N(0,1)

dove N(0,1) rappresenta un'estrazione casuale da una distribuzione normale standard (media zero, varianza 1).

Per generare un cammino casuale con n passi di simulazione si procede in questo modo:

  1. si fissa il punto di partenza del processo S_0 al tempo t_0 = 0
  2. si fissa un valore per \Delta t che rappresenta il passo di simulazione e che determina i tempi t_1 = \Delta t, t_2 = 2\Delta t, \ldots, t_n = n\Delta t
  3. si creano n estrazioni dalla distriubuzione normale standard E_1,\ldots E_n
  4. a partire da S_0 si costruisce un cammino S_1,\ldots,S_n in modo ricorsivo comeS_{i+1} = S_{i} + a(S_{i},t_i)\Delta t + b(S_i,t_i)\sqrt{\Delta t}E_i

Ogni volta che si ripete questo schema si ottengono diverse estrazioni E_1,\ldots, E_n e di conseguenza un diverso cammino S_1, \ldots, S_n.

Vediamo ora alcuni esempi pratici.

Per quanto riguarda il mondo delle azioni e indici finanziari il processo stocastico più semplice che si può usare è chiamato moto browniano geometrico ed è definito da un'equazione del tipo:

dS(t) = \mu S(t) dt + \sigma S(t) dW

dove \mu e \sigma sono delle costanti.

Partendo da un valore S_0 al tempo t=0, si può dimostrare che il processo al tempo t avrà un valore medio pari a S_0 e^{\mu t}. Il moto browniano geometrico descrive quindi una grandezza che tende a crescere in modo esponenziale con l'aggiunta di un disturbo regolato dal valore di \sigma detta volatilità.

Di seguito le simulazioni di un moto browniano geometrico con S_0 = 100, \mu = 0.1 e \sigma = 0.1.

GeometricBrownianMotion

Questo tipo di processo non è adatto invece a simulare tassi di interesse perché i tassi tendono ad avere valori che rimangono sempre compresi in certi intervalli (diciamo che raramente vanno sotto zero o sopra il 10%).

I modelli utilizzabili per simulare i tassi sono molti, uno di quelli più semplici, ma di facile interpretazione, è il modello di Vasicek in cui l'evoluzione di un tasso di interesse r segue l'equazione differenziale stocastica:

dr = a(b-r(t))dt + \sigma dW

Il termine deterministico tende a mantenere il processo attorno al valore b. Infatti quando r è maggiore di b il termine è negativo e tende a far diminuire r, mentre quando r è minore di b il termine è positivo e tende a far aumentare r.

Di seguito le simulazioni di un modello di Vasicek con r_0 = 0.01, a = 0.03, b = 0.02 e \sigma = 0.05.

VasicekModel

Il processo parte dal valore iniziale dell'1% e tende nel lungo periodo a rimanere attorno a un valore medio pari a b = 2%.

Ho creato le simulazioni con questo codice MatLab/Octave: SimulaProcessoStocastico. Il codice può essere facilmente modificato per simulare altri tipi di processi.

Nel prossimo post metteremo assieme tutti gli ingredienti di cui abbiamo parlato fin'ora, aggiungeremo qualche dettaglio e avremo finalmente un quadro completo di come effettuare il pricing di un derivato.

Ciao,

Enrico

PS: un paio di note tecniche per i lettori più esigenti:

  • potrebbe sembrare che il moto della particella attaccata al pendolo con disturbi casuali non si possa descrivere tramite l'equazione differenziale stocastica poiché richiede termini al secondo ordine. In realtà interpretando l'equazione in senso vettoriale si riescono a trattare tramite la stessa espressione anche equazioni differenziali di ordine più alto (ecco qui il codice MatLab/Octave che ho usato per creare i grafici SimulaOscillatoreBrowniano);
  • in letteratura la discretizzazione utilizzata per la simulazione dei processi stocastici è chiamata di Eulero-Maruyama poiché generalizza l'approccio di Eulero per la soluzione delle equazioni differenziali ordinarie a quelle stocastiche.

CC BY-NC-SA 4.0
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Similar posts

Nessun commento ancora

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Canale Telegram dedicato alla Matematica

Iscriviti sul nostro canale Telegram

MIA15 - Nomination

Rimani aggiornato sui più interessanti articoli di divulgazione matematica e non solo!

Iscriviti alla nostra newsletter

Resta aggiornato sui nostri post e su quello che facciamo.

Seguici su Twitter

Tag Cloud

Grazie per il sostegno ai #MIA2015

Grazie a tutti per averci votato ai "Macchia Nera Awards 2015" nella categoria "Miglior Sito Tecnico-Divulgativo".

Siamo arrivati in finale grazie al vostro sostegno!

MIA15 - Nomination