SCUOLA ENRICO MATTEI Master MEDEA - Anno Accademico 2003 – 2004
PROJECT ENIFIN
Modello di pricing per opzioni
Allievi: Loreto Avendaño Chiara Lo Prete Pedro Nobre Manuel Pianazzi Massimo Stolzuoli
Modello di pricing per opzioni
Project Work Enifin
Abstract Poichè il pricing di opzioni di tipo asiatico a media aritmetica pone il problema di non poter utilizzare formule “chiuse” tipo Black & Scholes, si rende necessario a tale scopo l’utilizzo del metodo Montecarlo. Dopo aver effettuato l’analisi della serie storica del Brent Dated in euro, si propongono tre modelli di pricing dell’opzione, che differiscono nelle ipotesi sottostanti la volatilità. I risultati ottenuti dimostrano che, nel caso in esame, la simulazione del prezzo realizzata con il metodo Montecarlo risulta estremamente sensibile al rendimento medio e poco sensibile alla volatilità.
Indice 1. Introduzione 2. Approccio al problema 2.1 Analisi della serie storica 2.2 Strumenti utilizzati 2.3 Modelli di simulazione 3. Conclusioni 4. Bibliografia 5. Allegati
1. Introduzione Il tema del lavoro svolto è: sviluppo di un modello Montecarlo di pricing per opzioni di tipo asiatico a media aritmetica, sul Brent Dated denominato in euro, al tasso di cambio giornaliero corrispondente, calcolate su dati in parte storici e in parte previsionali. Il gruppo è composto da 5 studenti: Loreto Avendaño, Chiara Lo Prete, Pedro Nobre, Manuel Pianazzi e Massimo Stolzuoli. La proposta di ricerca è stata offerta dall’Area Controllo della Gestione della società EniFin S.p.A Il lavoro è stato supportato dai Dott. Petralia e Fanucci, facenti capo al Dott. Dal Piaz. Il punto di partenza è stato il contratto per una strip di opzioni su commodities (greggio) siglato da ENI con una banca internazionale. Il progetto è stato svolto in più fasi. In un primo momento si sono approfondite le conoscenze teoriche circa gli strumenti ed i modelli da utilizzare, in particolare il Metodo Montecarlo, il metodo GARCH ed il software Eviews. Quindi, sono state analizzate le serie storiche di Brent Dated e cambio EUR/USD al fine di ricavarne l’andamento ed alcune caratteristiche necessarie per simularne gli andamenti futuri. Contemporaneamente sono stati implementati tre diversi modelli di simulazione, ognuno dei quali schematizza il parametro volatilità secondo un differente approccio. I tre modelli sono stati utilizzati per simulare l’andamento del prezzo del Brent durante il periodo di validità di una opzione call in modo da ricavare il prezzo teorico. Infine i risultati sono stati verificati con le serie dei prezzi del Brent aggiornati a 22/03/04.
ENI Corporate University 2003/04
-1-
Modello di pricing per opzioni
Project Work Enifin
2. Approccio al problema Le opzioni da valutare sono di tipo asiatico, cioè il loro payoff alla scadenza dipende dal valore medio dei prezzi del bene sottostante durante un determinato periodo di tempo (nel nostro caso, 9 mesi prima della data di scadenza). La presenza di un valore medio quale parametro fondamentale per il calcolo del profitto dell’opzione non ci permette di utilizzare la tradizionale formula di Black & Scholes per calcolare il suo valore teorico. Infatti, qualora la media da considerare sia di tipo aritmetico, il prezzo di riferimento del bene sottostante (prezzo medio) non seguirà mai una distribuzione di tipo lognormale, con media e varianza costante, poiché la somma di variabili casuali distribuite secondo una legge lognormale non è lognormale. Inoltre, c’è un altro motivo fondamentale per cui la formula Black & Scholes non può essere utilizzata: in base al campione analizzato, la varianza del tasso di rendimento istantaneo giornaliero del Brent in euro non è costante nel tempo. Occorre quindi considerare la volatilità una variabile stocastica e modellizzarla adeguatamente. Infine, il mercato delle commodities è caratterizzato da frizioni quali, ad esempio, i costi di transazione, l’impossibilità di operare allo scoperto, il fatto che le contrattazioni non avvengono con continuità, etc. La violazione di una, o più, delle ipotesi alla base del modello di Black & Scholes porta inevitabilmente quest’ultimo a commettere errori sistematici. Occorre per tanto, trovare un modello più complesso che riesca a catturare meglio le caratteristiche del tipo di opzione che dobbiamo valutare. In questo lavoro, si presentano 3 modelli alternativi alla formula di Black & Scholes per determinare il prezzo teorico delle opzioni, il cui “motore” è costituito dalla metodologia Montecarlo. Questi tre modelli si contraddistinguono nella diversa specificazione della volatilità del bene sottostante: Modello 1: Simulazione del prezzo del sottostante applicando il metodo Montecarlo nell’ipotesi di volatilità costante. Modello 2: Simulazione del prezzo applicando il metodo Montecarlo con volatilità descritta da un modello econometrico tipo GARCH. Modello 3: Metodo Montecarlo per simulare congiuntamente i processi del prezzo del sottostante e della volatilità. La stima della volatilità e la simulazione dei prezzi vengono effettuati con l’ausilio di Eviews.
ENI Corporate University 2003/04
-2-
Modello di pricing per opzioni
Project Work Enifin
Modello 1: Ipotesi: - Il prezzo del bene sottostante (S), cioè il prezzo spot del Brent Dated in euro valutato al tasso di cambio giornaliero corrispondente, si evolve in modo continuo secondo un Moto Geometrico Browniano (GBM):
dS = µSdt + σSdz S indica il prezzo spot del Brent Dated in euro al tempo corrente. µ indica il rendimento istantaneo atteso del Brent. σ indica lo scarto quadratico medio del rendimento istantaneo del Brent (misura della volatilità). dz indica un particolare processo di Markov, noto come processo di Wiener. L’ipotesi sulla dinamica del prezzo dell’attività sottostante si evolva secondo un GBM è particolarmente importante, in quanto implica che i rendimenti istantanei del Brent si distribuiscono normalmente con varianza costante nel tempo. -
La volatilità (σ) è costante e uguale alla deviazione standard campionaria dei rendimenti nel periodo 2/01/01-22/03/04.
Modello 2: Ipotesi: - Si mantiene l’ipotesi sull’andamento del prezzo del Brent ma si considera un modello econometrico tipo GARCH (1,1) per spiegare il comportamento della volatilità: p
q
i =1
j =1
σ t = ω + ∑ α i R t2− i + ∑ β j σ t − j ω, αi, βj sono parametri costanti. R rendimenti logaritmici del Brent in euro.
Modello 3: Ipotesi: - Si suppone che il prezzo del bene sottostante e la volatilità seguano i seguenti processi: dS = µSdt + σSdz1 dσ = ησdt + ξσdz 2
η è il tasso istantaneo di variazione della volatilità. ζ è la deviazione standard della volatilità. dz1, dz2 sono due processi di Wiener con coefficiente di correlazione ρ.
ENI Corporate University 2003/04
-3-
Modello di pricing per opzioni
Project Work Enifin
2.1 Analisi della serie storica •
Analisi dei prezzi:
A partire dalla serie storica dei prezzi del Brent Dated, espressa in USD/bbl e relativa al periodo 02/01/2001-22/03/2004, abbiamo proceduto alla sua conversione in euro moltiplicandola per il tasso di cambio EUR/USD giornaliero, tenendo conto che l’opzione da valutare è espressa in tale valuta. La serie storica dei prezzi mostra l’andamento tipico di un random walk non stazionario (si veda Allegato 1, grafico dei prezzi). La non stazionarietà sembra confermata dalla presenza di radice unitaria, accertata tramite il test di Dickey Fuller ad un livello di significatività del 5% (si veda Allegato 2, risultato del test DF sulla serie in livelli) •
Analisi dei rendimenti:
I rendimenti sono stati invece ricavati dalla serie di partenza come ln (St /St-1), dove St indica il prezzo del Brent Dated in EUR/bbl al momento t. Essi mostrano il tipico andamento di una serie stazionaria in senso debole white-noise, vale a dire un processo stocastico a media nulla, varianza costante e autocorrelazione nulla. Risulta evidente dal grafico la presenza di alcuni outliers o valori anomali, dovuti ad eventi eccezionali che potrebbero distorcere le conclusioni circa il processo generatore dei dati. La letteratura econometrica consiglia in questi casi di depurare la serie di partenza; i rendimenti sono stati considerati anomali quando il loro valore eccede 3 volte la deviazione standard (Allegato 3). Abbiamo dunque sostituito al posto degli 8 outliers la media del valore precedente e di quello successivo contenuti nella serie originaria. La serie “Rendimenti_depurati” mostra un andamento stazionario, segnalato anche dal correlogramma in livelli e dal rifiuto della presenza di radice unitaria ad un livello di significatività dell’1% (si veda Allegato 4, risultato del test ADF sulla serie dei rendimenti depurati). Utili informazioni sulla distribuzione dei rendimenti depurati possono essere ricavate dall’istogramma (Allegato 5). Il rendimento giornaliero depurato medio che compare nell’istogramma (Mean = 0.001009) corrisponde al Mu, uno dei parametri utilizzato nelle simulazioni. Quest’ultimo, equivalente ad un 25,25% annuale, è calcolato come media aritmetica semplice dei valori della serie e costituisce una stima del valore atteso dei rendimenti. Un’indicazione della dispersione della distribuzione dei rendimenti attorno al valore medio è fornita dalla standard deviation non condizionale, che non corrisponde tuttavia alla SD condizionale successivamente ottenuta dalla stima del modello GARCH (1,1). La natura della distribuzione può essere ulteriormente compresa mediante il calcolo di altri indici sintetici che ne descrivono la forma. I valori di asimmetria e curtosi risultano assai prossimi a quelli di una normale. I risultati del test di normalità Jarque-Bera, con un valore critico di 2,92 e una probabilità del 23%, non ci permettono di rifiutare l’ipotesi nulla secondo la quale la serie considerata si distribuisce come una normale. È importante notare che non era possibile parlare di normalità nella serie originaria dei rendimenti, in quanto i valori anomali distorcevano l’autocorrelazione. L’ipotesi di normalità dei rendimenti è molto importante in quanto ci permette di utilizzare i modelli proposti nella metodologia Montecarlo.
ENI Corporate University 2003/04
-4-
Modello di pricing per opzioni
•
Project Work Enifin
Analisi della volatilità:
Modello 1 Ipotizziamo che la volatilità del prezzo del Brent in euro è costante nel tempo e pari alla deviazione standard condizionale campionaria dei rendimenti depurati giornalieri al 31/12/03 ottenuta con un modello GARCH. σ = 0.02064 Tale valore equivale ad una volatilità annuale del 32.63%. Modello 2 Dall’analisi del grafico dei rendimenti depurati, sembra esistere volatility clustering, vale a dire l’alternanza di periodi di elevata variabilità a periodi di bassa volatilità. In altri termini, la varianza della serie non è costante nel tempo, dunque occorre modellarne l’eteroschedasticità, condizionata ad un determinato set di informazioni. La volatility clustering è un fenomeno riscontrato nella maggior parte delle serie finanziarie ed è segnalata dalla presenza di autocorrelazione in trasformazioni positive dei rendimenti, come il quadrato o il valore assoluto. Nella serie in esame, il grafico del quadrato dei rendimenti depurati (“rend_dep_quadr”) mostra effettivamente un andamento autocorrelato (Allegato 6), che misuriamo anche con il correlogramma della serie e il test Q Ljung-Box. Allo scopo di modellare la volatilità della serie dei rendimenti depurati, abbiamo deciso di utilizzare un GARCH (Generalized Autoregressive Conditional Heteroskedasticity), il quale rispetto al modello ARCH introduce i valori ritardati della varianza condizionata.
σ t = c + αε t2−1 + βσ t −1 + υ t Il modello GARCH (1,1) è una combinazione lineare che contiene 1 valore ritardato dei residui al quadrato e 1 valore ritardato della varianza condizionata. La varianza condizionata stimata è espressa dalla seguente regressione: h_stimato = 0.0000194 + 0.041718*rend_dep_quadr(-1) + 0.92116*garch01(-1)
in cui: 1. la serie “rend_dep_quadr” corrisponde alla serie di partenza (“rendimenti_depurati“) elevata al quadrato e ritardata di un periodo. Essa rappresenta gli shock al quadrato del periodo precedente. Poiché la serie dei rendimenti depurati è un white noise, i residui corrispondono ai valori della serie stessa; 2. la serie “garch01“ contiene i valori della varianza condizionale, ritardata di un periodo; 3. i coefficienti sono tratti dalla stima del modello GARCH effettuata da Eviews (eq01). Dall’analisi dei risultati della regressione, si ricava che tutti i regressori sono significativi; sono rispettati i vincoli sui coefficienti, vale a dire: 1. 2. 3. 4.
c > 0; α ≥ 0; β ≥ 0; α+β <1
ENI Corporate University 2003/04
-5-
Modello di pricing per opzioni
Project Work Enifin
La bontà di adattamento di un modello GARCH può essere valutata in rapporto alla capacità della varianza condizionata di rendere i residui standardizzati della regressione prossimi ad una distribuzione normale. Abbiamo effettuato una serie di test sui residui per accertarci della loro normalità: 1) 2) 3)
l’istogramma della serie dei residui standardizzati (si veda Allegato 7) ha parametri di asimmetria e curtosi prossimi a quelli di una normale e la probabilità associata al test Jarque-Bera non permette di rifiutare l’ipotesi nulla di normalità. Sia il correlogramma della serie dei residui standardizzati sia quello dei residui standardizzati al quadrato mostrano l’andamento tipico di una serie white noise stazionaria. Non è possibile rifiutare l’ipotesi nulla di assenza di eteroschedasticità condizionata autorregresiva segnalata dal test ARCH-LM ad un livello di significatività del 5% (si veda Allegato 8).
La positività di questi risultati indica che il modello stimato è stato in grado di ripulire i termini di errore degli effetti attribuibili alla varianza condizionata. Il modello GARCH (1,1) tratta in maniera simmetrica gli shock positivi e quelli negativi, dato che i residui (che in questo caso coincidono con la serie dei rendimenti depurati, un white noise) sono elevati al quadrato ed hanno dunque il medesimo impatto sulla varianza condizionata, misurato dal coefficiente ad essi associato (nel nostro caso pari a 0.041718). Di conseguenza, non si riescono a cogliere possibili effetti differenziali tra residui positivi e negativi. Peraltro, una correlazione negativa fra volatilità e shocks dei rendimenti è documentata da Black (1976) ed è nota come fenomeno di leverage che in questo contesto implica un impatto asimmetrico degli shocks negativi e di quelli positivi sulla volatilità. Con riferimento alla problematica sollevata, Engle e Ng (1993, “Measuring and testing the impact of news on volatility”, Journal of Finance, 48 pag.1749-1778) hanno proposto tre tipi di test per la verifica della presenza di effetti asimmetrici. Il primo test, detto sign bias test, si basa sul risultato di una regressione dei residui standardizzati al quadrato su una costante e su una variabile dummy che assume valore pari a 1 in corrispondenza di valori negativi dei residui ritardati di un periodo. La dummy in questione prende il nome di sneg, ed è stata definita in questo modo: genr sneg(-1) = (rendimenti_depurati(-1)<0)
I residui standardizzati sono calcolati dividendo i rendimenti_depurati elevati al quadrato per la serie della varianza condizionata (garch01). Infine, la regressione che abbiamo eseguito è la seguente (test01): ls resstd2 c sneg(-1)
Il coefficiente associato alla variabile dummy misura in questo caso una differenza nella media dei residui standardizzati a seconda che i residui del periodo precedente siano positivi o negativi. L’ipotesi nulla del test è che non esistano differenze nelle medie dei residui. Se è verificata l’ipotesi alternativa di presenza di asimmetria (coefficiente associato alla dummy>0), la media dei rendimenti al quadrato per le osservazioni corrispondenti a shock negativi nel periodo precedente dovrebbe
ENI Corporate University 2003/04
-6-
Modello di pricing per opzioni
Project Work Enifin
essere maggiore di quella relativa al gruppo degli shock ritardati positivi. Dai risultati, si ricava che pur essendo il coefficiente stimato di segno positivo, esso non risulta significativo. Il secondo test prende il nome di negative size bias test. Esso ipotizza che i residui ritardati di un periodo hanno un effetto legato non solo al segno, ma anche alla dimensione. La regressione è: genr snegres(-1) = rendimenti_depurati(-1)*sneg(-1)
La variabile dummy “sneg” stimata in precedenza viene “pesata” per i residui del periodo (-1); rispetto al sign bias test, non ci si limita a verificare il fatto che i residui negativi siano collegati ad un aumento della volatilità, ma anche che il residuo negativo determini un aumento della volatilità proporzionale al suo valore. ls resstd2 c snegres(-1)
Nell’ipotesi di un effetto asimmetrico, ci si aspetterebbe un segno negativo del coefficiente associato a “snegres” in modo da aumentare la varianza condizionata; il segno che compare nella regressione (test02) è quello atteso, ma il coefficiente non risulta statisticamente significativo. Il terzo test è il positive size bias test. In questo caso, la variabile dummy “spos” è costruita come complemento ad 1 della variabile “sneg” calcolata precedentemente. ls resstd2 c sposres(-1)
La regressione precedente (test03), analoga a quella del secondo test ma di segno contrario, misura l’effetto differenziale relativo ai rendimenti depurati di segno positivo. Il coefficiente associato alla variabile “sposres” ha il segno atteso ma non mostra alcuna significatività dell’effetto di riduzione della varianza condizionata a seguito del verificarsi di rendimenti di segno positivo. Infine, l’ultimo test che abbiamo effettuato per valutare l’eventuale presenza di effetti asimmetrici è un test che valuta congiuntamente le tre ipotesi prima valutate separatamente. Questo test (test_congiunto) assume particolare rilevanza perché ipotizza l’assenza contemporanea di effetti sulla varianza condizionata. L’ipotesi nulla è dunque un’ipotesi congiunta di non significatività dei coefficienti scelti. ls resstd2 c sneg(-1) snegres(-1) sposres(-1)
Tutti i coefficienti risultano non significativi se presi singolarmente, e anche il test F per zero slopes calcolato nella regressione indica la non significatività dei regressori. I risultati dei test sono contenuti negli Allegati 9 e 10. Modello 3: Abbiamo simulato l’andamento della volatilità secondo un processo diffusivo GBM con η pari alla volatilità condizionale media (chiamata nella simulazione sd_bar = 0.022936) e ξ pari alla deviazione standard della volatilità nel periodo in esame (chiamata nella simulazione vol = 0.002695).
ENI Corporate University 2003/04
-7-
Modello di pricing per opzioni
Project Work Enifin
2.2 Strumenti utilizzati E’ stato utilizzato il software E-Views per il calcolo del prezzo stimato per le varie opzioni comprese nello strip. Il programma permette di simulare attraverso la metodologia Montecarlo un numero determinato di percorsi casuali del prezzo del Brent attraverso una generazione numerica random che sottintende una distribuzione normale dei risultati ottenuti. Attraverso l’opportuna programmazione, i distinti listati permettono di calcolare le medie aritmetiche dei prezzi relativi al periodo considerato; il confronto tra medie prezzi e strike genera i payoffs possibili la cui media determina il pricing dell’opzione asiatica. Il programma provvede all’elaborazione delle diverse matrici di dati generate dai diversi passaggi algebrici previsti dai differenti listati, oltre che alla generazione di un percorso medio di evoluzione dei prezzi che permette di confrontare i risultati ottenibili dai tre modelli e di confrontarli con la serie storica. L’utilizzo di tecniche di simulazioni quali quella da noi adottata può comportare una mole di operazioni di calcolo che, seppur sostenibili dagli attuali hardware a disposizioni, non rispetta i vincoli di tempo coerenti con l’orizzonte dei mercati finanziari. A tal riguardo, l’utilizzo della metodologia Montecarlo e l’assunzione di normalità che la contraddistingue permettono di utilizzare una variante che consente di duplicare il numero di osservazioni senza aumentare il carico di calcoli del processore ottenendo, a parità di tempo di elaborazione impiegato, maggiore precisione; si sfrutta, infatti, il principio della variabile antitetica ovvero, cambiando di segno i numeri ottenuti da generazione random, dai quali mediante modello si ottengono i prezzi previsti, si ottiene una distribuzione sempre normale di uguale media e minore deviazione standard.
2.3. Modelli di simulazione Come caso base è stato valutato il prezzo dell’opzione call relativa al periodo Agosto 2003- Aprile 2004. L’orizzonte temporale relativo a tale opzione, coerentemente con la serie storica a disposizione, necessita di 196 dati giornalieri. Ai fini del calcolo abbiamo ipotizzato di effettuare il pricing al 31.12.2003, utilizzando quindi 108 dati storici e generando 88 dati previsionali. Questa scelta permette di testare la bontà del trend individuato dal modello attraverso il confronto con i prezzi del Brent Dated in euro effettivamente rilevati sul mercato. Sono stati implementati tre diversi modelli, ognuno dei quali schematizza in modo differente il parametro di volatilità della serie del Brent. I tre modelli hanno in comune i seguenti input: a) Serie storica del Brent Dated convertita in Euro da Agosto 2003 a Dicembre 2003; b) Media dei rendimenti depurati dagli outliers (parametro µ); c) Deviazione standard (parametro sd) della serie storica valutata con metodologia GARCH; d) Tasso risk-free (parametro rf); e) Strike price dell’opzione (parametro skp). Il prezzo è stato valutato mediante la formula proposta da Hull(1):
S t = S t −1 * e ENI Corporate University 2003/04
1 ( µ − sd 2 ) * passo + sd * random _ number * 2
-8-
passo
Modello di pricing per opzioni
Project Work Enifin
Analizziamo di seguito le particolarità dei tre modelli. Modello 1 (Allegato A): Il modello calcola il prezzo considerando costante il parametro sd. I percorsi generati sono quindi funzione dei soli numeri random generati. Testando il modello con 20000 simulazioni: Mu Sd (31/12/03) Nr. Passi Nr. Simulazioni Ampiezza Passo Tasso RF Durata Opzione (T-t) Prezzo Spot Strike Price
Parametri 0.0010090 0.0206400 284 20000 1 0.02134 0.08330 38.0226 27.4400 Premio
8.9788 Call Media calcolata su numero giorni lavorativi = 196
Premio a Termine 8.9947
Modello 2 (Allegato B): Il modello calcola il prezzo utilizzando un valore di volatilità del sottostante ricavata dal modello GARCH (1,1) seguente: 2
⎛ S ⎞ 2 sd t = c0 + c1 * ⎜⎜ ln t ⎟⎟ + c2 * sd t −1 ⎝ S t −1 ⎠
Dove c0, c1, c2 sono tre coefficienti ottenuti stimando con una regressione lineare attraverso l’analisi GARCH della serie della volatilità. Testando il modello con 20000 simulazioni si ottengono i seguenti risultati:
Mu Sd0 C0 C1 C2 Nr. Passi Nr. Simulazioni Ampiezza Passo Tasso RF Durata Opzione (T-t) Prezzo Spot Strike Price
Parametri 0.0010090 0.0206400 0.0000194 0.041718 0.921160 284 20000 1 0.02134 0.08330 38.0226 27.4400 Premio
8.9809 Call Media calcolata su numero giorni lavorativi = 196
Premio a Termine 8.9969
Modello 3 (Allegato C):
ENI Corporate University 2003/04
-9-
Modello di pricing per opzioni
Project Work Enifin
Il modello calcola il prezzo utilizzando una funzione di volatilità del sottostante ricavata dalla formula di Clewlow e Strickland(2): sd = sd + α * (sd − sd t
t −1
t −1
) * passo + vol *
passo *
(ρ * random_ number + 1 − ρ * random_ number) 2
Dove: α : valore del parametro di mean reversion della volatilità; sd_bar : valore della volatilità media; vol : valore del parametro di volatilità della volatilità; ρ : valore del parametro di correlazione istantaneo. Testando il modello con 20000 simulazioni si ottengono i seguenti risultati:
Mu Sd0 Α sd_bar Vol Ρ Nr. Passi Nr. Simulazioni Ampiezza Passo Tasso RF Durata Opzione (T-t) Prezzo Spot Strike Price
Parametri 0.0010090 0.0206400 0.029489 0.022936 0.002695 -0.020968 284 20000 1 0.02134 0.08330 38.0226 27.4400 Premio
8.9806 Call Media calcolata su numero giorni lavorativi = 196
ENI Corporate University 2003/04
Premio a Termine 8.9965
- 10 -
Modello di pricing per opzioni
Project Work Enifin
3. Conclusioni 1. In primo luogo abbiamo osservato che la simulazione del prezzo del sottostante effettuata tramite il metodo Montecarlo risulta estremamente sensibile al rendimento medio, Mu. Ciò è evidente a partire dai risultati dei tre modelli, che non differiscono in misura rilevante (si veda Allegato 11). Inserendo nella simulazione un rendimento medio di segno negativo, si osserva un’inversione nella pendenza della curva dei valori previsti: si ottiene così un valore della call completamente differente (Allegato 12). Occorre considerare che il rendimento medio inserito è un parametro costante calcolato a partire da dati storici. Poiché in partenza abbiamo verificato che i rendimenti seguono un processo stazionario di tipo white noise (dunque il mercato è efficiente e i rendimenti passati non possono aiutarci nella stima di quelli futuri), ci sembrerebbe più corretto: a) considerare il rendimento medio non come variabile deterministica, ma come ulteriore fattore di aleatorietà da modellizzare in aggiunta al prezzo del sottostante, come suggerito dalla letteratura in materia. b) utilizzare una stima ricavata dal mercato forward per incorporare nel modello le aspettative degli operatori. 2. La metodologia utilizzata è poco sensibile alla volatilità, in quanto il metodo Montecarlo prevede una traiettoria dei prezzi costruita a partire da valori medi simulati. Ciò comporta che il risultato finale della simulazione si stabilizzi attorno ad un trend definito dal rendimento medio Mu. Inserendo nella simulazione una volatilità elevatissima, pari a circa il 100% annuale, i risultati non cambiano in misura rilevante (Allegato 13). 3.
I risultati ottenuti ci inducono a suggerire l’inserimento di alcune modifiche nel metodo adottato. In particolare, la tecnica della “variabile di controllo” potrebbe rivelarsi particolarmente interessante. Si potrebbero poi considerare alcuni metodi di stima alternativi, quali ad esempio formule chiuse specifiche per le opzioni asiatiche o altri metodi numerici (es: albero binomiale, trinomiale).
ENI Corporate University 2003/04
- 11 -
Modello di pricing per opzioni
Project Work Enifin
4. Bibliografia ¾ Pianca, Paolo, (1986), “Elementi di Teoria delle opzioni finanziarie”, Torino: G. Giappichelli Editore. ¾ Strickland, Clewlow, (2000), “Energy derivatives, price and risk management”, Lacima Group. ¾ AA.VV., (1998), “Monte Carlo: Methodologies and Applications for Pricing and Risk Management”, Risk Books, Bruno Dupire. ¾ Fusaro, Peter C., “Energy Risk Management: Hedging Strategies and Instruments for the International Energy Markets” , McGraw-Hill. ¾ Gallo, Giampiero M.; Pacini, Barbara; (2002), “Metodi Quantitativi per I Mercati Finanziari”, Carocci Editore S.p.A, Roma. ¾ Hull, John C., “Opzioni, futures e altri derivati”, Il Sole 24 ore, Milano 2004. ¾ F. Caparrelli, (2001), “I Derivati”, McGraw-Hill. ¾ Strickland, Clewlow, “Implementino Derivatives Model”, Lacima Group 2003. ¾ Ross, Westerfield, Jaffe, (1997), “Finanza Aziendale”, Il Mulino. ¾ Galitz, Lawrence, (2003), “Financial Engineering: Tools and Techniques to Manage Financial Risk”, Revised Edition. ¾ “EViews 4 user’s guide”, (2002), Quantitative Microsoftware.
ENI Corporate University 2003/04
- 12 -
Modello di pricing per opzioni
Project Work Enifin
5. Allegati
Brent Dated in EUR/bbl (valutato al tasso di cambio giornaliero corrispondente)
45 40 35 30 25 20 15 10 2-gen-01
2-lug-01
2-gen-02
2-lug-02
2-gen-03
2-lug-03
Allegato 1: Serie originaria del Brent Dated in EUR/bbl
ENI Corporate University 2003/04
- 13 -
2-gen-04
Modello di pricing per opzioni
Project Work Enifin
Null Hypothesis: PREZZI has a unit root Exogenous: Constant Lag Length: 0 (Fixed) Augmented Dickey-Fuller test statistic Test critical values: 1% level 5% level 10% level
t-Statistic
Prob.*
-0.631261 -3.438004 -2.864808 -2.568564
0.8609
*MacKinnon (1996) one-sided p-values. Augmented Dickey-Fuller Test Equation Dependent Variable: D(PREZZI) Method: Least Squares Date: 06/10/04 Time: 18:08 Sample(adjusted): 2 831 Included observations: 830 after adjusting endpoints Variable
Coefficient
Std. Error
t-Statistic
Prob.
PREZZI(-1) C
-0.002205 0.082627
0.003492 0.097349
-0.631261 0.848764
0.5280 0.3963
R-squared Adjusted R-squared S.E. of regression Sum squared resid Log likelihood Durbin-Watson stat
0.000481 -0.000726 0.657123 357.5394 -828.2143 1.949772
Mean dependent var S.D. dependent var Akaike info criterion Schwarz criterion F-statistic Prob(F-statistic)
0.022884 0.656885 2.000516 2.011893 0.398490 0.528044
Allegato 2: Risultati del test Dickey Fuller sulla serie dei prezzi del Brent in euro (serie in livelli)
ENI Corporate University 2003/04
- 14 -
Modello di pricing per opzioni
Project Work Enifin
15% 1/19/01
10%
1/8/02
2/1/01
5% 0% -5% 11/14/01
-10%
3/14/03
11/15/01
-15%
3/21/03
24/09/2001
-20% 2-gen-01
2-lug-01
2-gen-02
2-lug-02
2-gen-03
2-lug-03
2-gen-04
Allegato 3: Serie originaria dei rendimenti giornalieri Brent in euro
ENI Corporate University 2003/04
- 15 -
Modello di pricing per opzioni
Project Work Enifin
Null Hypothesis: RENDIMENTI_DEPURATI has a unit root Exogenous: Constant Lag Length: 4 (Fixed) Augmented Dickey-Fuller test statistic Test critical values: 1% level 5% level 10% level
t-Statistic
Prob.*
-13.18750 -3.438042 -2.864825 -2.568573
0.0000
*MacKinnon (1996) one-sided p-values. Augmented Dickey-Fuller Test Equation Dependent Variable: D(RENDIMENTI_DEPURATI) Method: Least Squares Date: 06/10/04 Time: 18:27 Sample(adjusted): 6 831 Included observations: 826 after adjusting endpoints Variable
Coefficient
Std. Error
t-Statistic
Prob.
-1.012792
0.076799
-13.18750
0.0000
D(RENDIMENTI_DEPURATI(-1))
0.010209
0.068349
0.149360
0.8813
D(RENDIMENTI_DEPURATI(-2))
0.050385
0.059689
0.844115
0.3989
D(RENDIMENTI_DEPURATI(-3))
0.061632
0.049391
1.247842
0.2124
D(RENDIMENTI_DEPURATI(-4))
0.009166
0.034860
0.262945
0.7927
0.000978
0.000809
1.209035
0.2270
RENDIMENTI_DEPURATI(-1)
C R-squared Adjusted R-squared S.E. of regression Sum squared resid Log likelihood Durbin-Watson stat
0.502986 0.499955 0.023140 0.439092 1941.828 1.997280
Mean dependent var S.D. dependent var Akaike info criterion Schwarz criterion F-statistic Prob(F-statistic)
-3.56E-05 0.032724 -4.687236 -4.652975 165.9705 0.000000
Allegato 4: Risultati del test Augmented Dickey Fuller eseguito sulla serie dei rendimenti depurati
ENI Corporate University 2003/04
- 16 -
Modello di pricing per opzioni
Project Work Enifin
80
Series: RENDIMENTI_DEPURATI Sample 1 831 Observations 831
70 60 50 40 30 20 10 0 -0.05
0.00
Mean Median Maximum Minimum Std. Dev. Skewness Kurtosis
0.001009 0.001611 0.075914 -0.069366 0.023125 -0.115372 3.176641
Jarque-Bera Probability
2.923919 0.231782
0.05
Allegato 5: Istogramma della serie dei rendimenti depurati
ENI Corporate University 2003/04
- 17 -
Modello di pricing per opzioni
Project Work Enifin
Rendimenti depurati del Brent in euro al quadrato 0.70% 0.60% 0.50% 0.40% 0.30% 0.20% 0.10% 0.00% 2-gen-01
2-lug-01
2-gen-02
2-lug-02
2-gen-03
2-lug-03
2-gen-04
Allegato 6: Serie dei rendimenti depurati del Brent in euro al quadrato
ENI Corporate University 2003/04
- 18 -
Modello di pricing per opzioni
Project Work Enifin
100
Series: Standardized Residuals Sample 1 831 Observations 831
80 60 40 20 0 -3
-2
-1
0
1
2
Mean Median Maximum Minimum Std. Dev. Skewness Kurtosis
0.045762 0.067281 2.751726 -3.097166 0.999428 -0.140754 3.035259
Jarque-Bera Probability
2.786953 0.248211
3
Allegato 7: Istogramma dei residui standardizzati del modello GARCH
ENI Corporate University 2003/04
- 19 -
Modello di pricing per opzioni
Project Work Enifin
ARCH Test: F-statistic Obs*R-squared
0.515224 0.516147
Probability Probability
0.473089 0.472490
Test Equation: Dependent Variable: STD_RESID^2 Method: Least Squares Date: 06/22/04 Time: 12:02 Sample(adjusted): 2 831 Included observations: 830 after adjusting endpoints Variable
Coefficient Std. Error
t-Statistic
Prob.
C STD_RESID^2(-1)
1.023152 0.060241 -0.024927 0.034727
16.98428 -0.717791
0.0000 0.4731
R-squared Adjusted R-squared S.E. of regression Sum squared resid Log likelihood Durbin-Watson stat
0.000622 -0.000585 1.418641 1666.386 -1466.968 1.997791
Mean dependent var S.D. dependent var Akaike info criterion Schwarz criterion F-statistic Prob(F-statistic)
0.998243 1.418226 3.539683 3.551060 0.515224 0.473089
Allegato 8: Test ARCH-LM sui residui del modello GARCH
ENI Corporate University 2003/04
- 20 -
Modello di pricing per opzioni
Project Work Enifin
Dependent Variable: RESSTD2 Method: Least Squares Date: 05/24/04 Time: 15:40 Sample(adjusted): 2 831 Included observations: 830 after adjusting endpoints Variable
Coefficient
Std. Error
t-Statistic
Prob.
C SNEG(-1)
0.970566 0.058751
0.067715 0.098658
14.33319 0.595501
0.0000 0.5517
R-squared Adjusted R-squared S.E. of regression Sum squared resid Log likelihood Durbin-Watson stat
0.000428 -0.000779 1.418779 1666.709 -1467.049 2.049249
Mean dependent var S.D. dependent var Akaike info criterion Schwarz criterion F-statistic Prob(F-statistic)
0.998243 1.418226 3.539877 3.551254 0.354621 0.551671
Dependent Variable: RESSTD2 Method: Least Squares Date: 05/24/04 Time: 15:39 Sample(adjusted): 2 831 Included observations: 830 after adjusting endpoints Variable
Coefficient
Std. Error
t-Statistic
Prob.
C SNEGRES(-1)
0.992551 -0.663396
0.058179 3.609017
17.06019 -0.183816
0.0000 0.8542
R-squared Adjusted R-squared S.E. of regression Sum squared resid Log likelihood Durbin-Watson stat
0.000041 -0.001167 1.419054 1667.355 -1467.210 2.054869
Mean dependent var S.D. dependent var Akaike info criterion Schwarz criterion F-statistic Prob(F-statistic)
0.998243 1.418226 3.540264 3.551641 0.033788 0.854203
Allegato 9: Risultati del Sign Bias Test e del Negative Size Bias Test
ENI Corporate University 2003/04
- 21 -
Modello di pricing per opzioni
Project Work Enifin
Dependent Variable: RESSTD2 Method: Least Squares Date: 05/24/04 Time: 15:41 Sample(adjusted): 2 831 Included observations: 830 after adjusting endpoints Variable
Coefficient
Std. Error
t-Statistic
Prob.
C SPOSRES(-1)
1.028284 -3.122709
0.060441 3.644113
17.01301 -0.856919
0.0000 0.3917
R-squared Adjusted R-squared S.E. of regression Sum squared resid Log likelihood Durbin-Watson stat
0.000886 -0.000321 1.418454 1665.945 -1466.859 2.021201
Mean dependent var S.D. dependent var Akaike info criterion Schwarz criterion F-statistic Prob(F-statistic)
0.998243 1.418226 3.539419 3.550795 0.734310 0.391738
Dependent Variable: RESSTD2 Method: Least Squares Date: 05/24/04 Time: 15:42 Sample(adjusted): 2 831 Included observations: 830 after adjusting endpoints Variable
Coefficient
Std. Error
t-Statistic
Prob.
C SNEG(-1) SNEGRES(-1) SPOSRES(-1)
1.025756 0.028696 1.380124 -3.034288
0.112351 0.159865 4.842118 4.926414
9.129900 0.179501 0.285025 -0.615922
0.0000 0.8576 0.7757 0.5381
R-squared Adjusted R-squared S.E. of regression Sum squared resid Log likelihood Durbin-Watson stat
0.000985 -0.002643 1.420100 1665.780 -1466.818 2.008141
Mean dependent var S.D. dependent var Akaike info criterion Schwarz criterion F-statistic Prob(F-statistic)
0.998243 1.418226 3.544139 3.566892 0.271521 0.845959
Allegato 10: Risultati del Positive Size Bias Test e del Test Congiunto
ENI Corporate University 2003/04
- 22 -
Modello di pricing per opzioni
Project Work Enifin
Allegato A: Programma del Modello 1 *************************************************************************************************************************** 'valutazione call agosto 2003-aprile 2004 'metodo della volatilità costante nel parametro sd 'generazione dei numeri casuali con distr. normale 'raddoppio del numero di simulazioni con la variabile antitetica 'valori storici della serie 197 'valori previsionali 22*4 'utilizzo della formula con media semplice '*************************************************************************************************************************** workfile MC u 1 1000000 'creo un worfile di dimensione 1000000 media semplice !R=50000 'numero di righe della matrice pari al numero di simulazioni che si vuole realizzare !C=197+88 'numero di colonne della matrice pari al numero di passi scalar mu=0.001009 'valore parametro mu scalar SD=0.020640 'valore parametro sd stimato al 22/3/04 con GARCH scalar passo=1 'valore parametro passo scalar tassoRF=0.02134 'valore parametro tasso RF scalar skp=27.44 'valore parametro strike price opzione scalar tempo=0.0833 'valore parametro tempo tra T-t in anni read(o580, s=foglio1) "u:\pricing\seriedef.xls" 1'leggo dal foglio excel la serie conevrtita del brent vector (197) sb ' creo il vettore per la serie brent stom(ser01,sb) matrix sbt= @transpose(sb) matrix(!R+!R,197) p2 'creo matrice dei prezzi iniziali for !i=1 to !R+!R rowplace(p2,sbt,!i) ' ciclo for per creare la matrice dei prezzi iniziale next 'genero i numeri casuali con la funzione nrnd che me li estrae da una distribuzione normale standardizzata ossia con media 0 varianza 1 matrix (!R,!C) nc for !i = 1 to !R for !j = 1to !C nc(!i,!j) =@RNORM 'genero i numeri casuali next next matrix (!R,!C) nc_neg=-nc matrix (!R+!R,!C) nc_grande matplace(nc_grande,nc,1,1) matplace(nc_grande,nc_neg,!R+1,1) matplace(nc_grande,p2,1,1) 'introduco la matrice p2 nella matrice nc in posizione 1° colonna 1° riga matrix(@rows(nc_grande),@columns (nc_grande)) pz=nc_grande for !i = 1 to !R+!R for !j = 198 to !C pz(!i,!j) =pz(!i,!j-1)*@exp((mu-((sd^2)*0.5))*passo+sd*nc_grande(!i,!j)*sqr(passo)) 'formula per la creazione del prezzo next next matrix (1,@columns(pz)) mediaprezzi for !i = 1 to @columns(pz) mediaprezzi (1,!i) = @mean(@columnextract(pz,!i)) next matrix mediaprezzit=@transpose(mediaprezzi) ENI Corporate University 2003/04
- 23 -
Modello di pricing per opzioni
Project Work Enifin
matrix pzt= @transpose(pz) ' faccio la matrice trasposta della matrice prezzi al fine di vedere graficamente la struttura generata dalla metodologia Montecarlo matrix pzt0=@subextract(pzt,!C-196,1,!C,!R+!R) 'creo una matrice intermedia al fine di definire l'ampiezza della media matrix (1,@columns(pzt0)) media for !i = 1 to @columns(pzt0) media (1,!I) = @mean(@columnextract(pzt0,!i)) next matrix(@columns(pzt0)) pyof=(media-skp) 'calcolo tutti i payoff relativi a tutte le simulazioni matrix pyoft=@transpose(pyof) sample SS 1 40 'definisco il numero massimo di dati che deve essere inserita nella seire PAYOFFS al fine di poter convertire la matrice PAYOFT in serie per poter applicare la funzione RECODE series PAYOFFS 'creo la serie PAYOFFS mtos(pyoft,payoffs) 'converto la matrice PYOFFSSTRASPOSTI in serie PY payoffs=@recode(payoffs>0,payoffs,0) ' modifico la seire PAYOFFS in modo che i payoffss negativi siano posti uguali a 0 vector(1) premio_termine=@mean(payoffs) 'calcolo il premio a termine vector(1) premio=premio_termine*@exp(-tempo*tassoRF) ' attualizzo al tasso RF il premio a termine sopra calcolata 'Definiscio la tabella nella quale riportarte i dati table (21,5) Tabella 'dimensione della tabella righe colonne Tabella (2,3) = "Parametri" 'Introduco i nomi dei parameteri setcell (Tabella,4,1, "Mu","l",20) setcell (Tabella,5,1,"sd","l",20) setcell (Tabella,6,1,"Nr. Passi","l") setcell (Tabella,7,1,"Nr. Simulazioni","l") setcell (Tabella,8,1,"Ampiezza Passo","l",20) setcell (Tabella,9,1,"Tasso RF","l",20) setcell (Tabella,10,1,"Durata Opzione (T-t)","l",20) setcell (Tabella,11,1,"Prezzo Spot","l",20) setcell (Tabella,12,1,"Strike Price","l",20) 'Introduco i valori dei parametri setcell (Tabella,4,3, Mu,"l",7) setcell (Tabella,5,3,sd,"l",7) setcell (Tabella,6,3,!C-1,"l",0) setcell (Tabella,7,3,!R+!R,"l",0) setcell (Tabella,8,3,Passo,"l",0) setcell (Tabella,9,3,TassoRF,"l",5) setcell (Tabella,10,3,tempo,"l",5) setcell (Tabella,12,3,skp,"l",4) setline (Tabella,16) setline (Tabella, 18) Tabella (17,1) = "Call" Tabella (15,3) = "Premio" Tabella (15,4) = "Premio a Termine" Tabella (20,1) = "Media calcolata su numero giorni lavorativi = " + @str(@rows(pzt0)-1) for !i=1 to 1 setcell(Tabella,17,3,premio(!i),"c",4) setcell(Tabella,17,4,premio_termine(!i),"c",4) setcell (Tabella,11,3,p2(1,197),"l",4) next
ENI Corporate University 2003/04
- 24 -
Modello di pricing per opzioni
Project Work Enifin
Allegato B: Programma del Modello 2 ************************************************************************************************************************** 'valutazione call agosto 2003-aprile 2004 'metodo della volatilità valutata puntualmente con GARCH 'generazione dei numeri casuali con distr. normale 'raddoppio del numero di simulazioni con la variabile antitetica 'valori storici della serie 197 'valori previsionali 22*4 'utilizzo della formula con media semplice '*************************************************************************************************************************** workfile MC u 1 1000000 'creo un worfile di dimensione 1000000 media semplice !R=10000 'numero di righe della matrice pari al numero di simulazioni che si vuole realizzare !C=197+88 'numero di colonne della matrice pari al numero di passi scalar mu=0.001009 'valore parametro mu scalar SD=0.020640 'valore parametro sd stimato al 22/3/04 con GARCH scalar passo=1 'valore parametro passo scalar tassoRF=0.02134 'valore parametro tasso RF scalar skp=27.44 'valore parametro strike price opzione scalar tempo=0.0833 'valore parametro tempo tra T-t in anni scalar c0=0.0000194 scalar c1=0.041718 scalar c2=0.921160 read(o580, s=foglio1) "u:\Pricing delle opzioni\serie def.xls" 1'leggo dal foglio excel la serie conevrtita del brent vector (197) sb ' creo il vettore per la serie brent stom(ser01,sb) matrix sbt= @transpose(sb) matrix(!R+!R,197) p2 'creo matrice dei prezzi iniziali for !i=1 to !R+!R rowplace(p2,sbt,!i) ' ciclo for per creare la matrice dei prezzi iniziale next 'genero i numeri casuali con la funzione nrnd che me li estrae da una distribuzione normale standardizzata ossia con media 0 varianza 1 matrix (!R,!C) nc for !i = 1 to !R for !j = 1to !C nc(!i,!j) =@RNORM 'genero i numeri casuali next next matrix (!R,!C) nc_neg=-nc matrix (!R+!R,!C) nc_grande matplace(nc_grande,nc,1,1) matplace(nc_grande,nc_neg,!R+1,1) matplace(nc_grande,p2,1,1) 'introduco la matrice p2 nella matrice nc in posizione 1° colonna 1° riga matrix(@rows(nc_grande),@columns (nc_grande)) pz=nc_grande vector(!C) sdv 'creo un vettore per i valori della dev standard for !i=1 to 196 sdv(!i)=0 'volatilità dei vari valori storici next sdv(197)=sd 'volatilità dell'ultimo valore storico for !i = 1 to !R+!R for !j = 198 to !C pz(!i,!j) =pz(!i,!j-1)*@exp((mu-((sdv(!j-1)^2)*0.5))*passo+sdv(!j-1)*nc_grande(!i,!j)*sqr(passo)) 'formula per la creazione del prezzo ENI Corporate University 2003/04
- 25 -
Modello di pricing per opzioni
Project Work Enifin
sdv(!j)=sqr(c0+c1*(@log(pz(!i,!j)/pz(!i,!j-1))^2)+c2*sdv(!j-1)^2) 'formula per la volatilità next next matrix (1,@columns(pz)) mediaprezzi for !i = 1 to @columns(pz) mediaprezzi (1,!i) = @mean(@columnextract(pz,!i)) next matrix mediaprezzit= @transpose(mediaprezzi) matrix pzt= @transpose(pz) ' faccio la matrice trasposta della matrice prezzi al fine di vedere graficamente la struttura generata dalla metodologia Montecarlo matrix pzt0=@subextract(pzt,!C-196,1,!C,!R+!R) 'creo una matrice intermedia al fine di definire l'ampiezza della media matrix (1,@columns(pzt0)) media for !i = 1 to @columns(pzt0) media (1,!I) = @mean(@columnextract(pzt0,!i)) next matrix(@columns(pzt0)) pyof=(media-skp) 'calcolo tutti i payoff relativi a tutte le simulazioni matrix pyoft=@transpose(pyof) sample SS 1 40 'definisco il numero massimo di dati che deve essere inserita nella seire PAYOFFS al fine di poter convertire la matrice PAYOFT in serie per poter applicare la funzione RECODE series PAYOFFS 'creo la serie PAYOFFS mtos(pyoft,payoffs) 'converto la matrice PYOFFSSTRASPOSTI in serie PY payoffs=@recode(payoffs>0,payoffs,0) ' modifico la serie PAYOFFS in modo che i payoffs negativi siano posti uguali a 0 vector(1) premio_termine=@mean(payoffs) 'calcolo il premio a termine vector(1) premio=premio_termine*@exp(-tempo*tassoRF) ' attualizzo al tasso RF il premio a termine sopra calcolata 'Definiscio la tabella nella quale riportarte i dati table (21,5) Tabella 'dimensione della tabella righe colonne Tabella (2,3) = "Parametri" 'Introduco i nomi dei parameteri setcell (Tabella,4,1, "Mu","l",20) setcell (Tabella,5,1,"sd","l",20) setcell (Tabella,6,1,"Nr. Passi","l") setcell (Tabella,7,1,"Nr. Simulazioni","l") setcell (Tabella,8,1,"Ampiezza Passo","l",20) setcell (Tabella,9,1,"Tasso RF","l",20) setcell (Tabella,10,1,"Durata Opzione (T-t)","l",20) setcell (Tabella,11,1,"Prezzo Spot","l",20) setcell (Tabella,12,1,"Strike Price","l",20) 'Introduco i valori dei parametri setcell (Tabella,4,3, Mu,"l",7) setcell (Tabella,5,3,sd,"l",7) setcell (Tabella,6,3,!C-1,"l",0) setcell (Tabella,7,3,!R+!R,"l",0) setcell (Tabella,8,3,Passo,"l",0) setcell (Tabella,9,3,TassoRF,"l",5) setcell (Tabella,10,3,tempo,"l",5) setcell (Tabella,12,3,skp,"l",4) setline (Tabella,16) setline (Tabella, 18) Tabella (17,1) = "Call" Tabella (15,3) = "Premio" Tabella (15,4) = "Premio a Termine" Tabella (20,1) = "Media calcolata su numero giorni lavorativi = " + @str(@rows(pzt0)-1) for !i=1 to 1 setcell(Tabella,17,3,premio(!i),"c",4) setcell(Tabella,17,4,premio_termine(!i),"c",4) setcell (Tabella,11,3,p2(1,197),"l",4) next ENI Corporate University 2003/04
- 26 -
Modello di pricing per opzioni
Project Work Enifin
Allegato C: Programma del Modello 3 '********************************************************************************************************************************** Programma per il calcolo del prezzo dell'opzione con volatilità secondo la formula del Clewlow Strickland pag 118 '********************************************************************************************************************************** workfile MC u 1 100000 'creo un worfile di dimensione 1000000 media semplice !R=10000 'numero di righe della matrice pari al numero di simulazioni che si vuole realizzare !C=197+88 'numero di colonne della matrice pari al numero di passi scalar mu=0.001009 'valore parametro mu scalar SD=0.021908 'valore parametro sd scalar passo=1 'valore parametro passo scalar tassoRF=0.02134 'valore parametro tasso RF scalar skp=27.44 'valore parametro strike price opzione scalar tempo=0.0833 'valore parametro tempo tra T-t in anni scalar alfa=0.029489 'valore del parametro di mean reversion della volatilità scalar sd_bar=0.022936 'valore della volatilità media scalar vol=0.002695 'valore del parametro di volatilità della volatilità scalar ro=-0.020968 'valore del parametro di correlazione istantaneo read(o580, s=foglio1) "u:\Pricing delle opzioni\serie def.xls" 1'leggo dal foglio excel la serie conevrtita del brent vector (575) sb ' creo il vettore per la serie brent stom(ser01,sb) matrix sbt= @transpose(sb) matrix(!R+!R,197) p2 'creo matrice dei prezzi iniziali for !i=1 to !R+!R rowplace(p2,sbt,!i) ' ciclo for per creare la matrice dei prezzi iniziale next 'genero i numeri casuali con la funzione nrnd che me li estrae da una distribuzione normale standardizzata ossia con media 0 varianza 1 matrix (!R,!C) nc for !i = 1 to !R for !j = 1to !C nc(!i,!j) =@RNORM 'genero i numeri casuali next next matrix (!R,!C) nc_neg=-nc matrix (!R+!R,!C) nc_grande matplace(nc_grande,nc,1,1) matplace(nc_grande,nc_neg,!R+1,1) matplace(nc_grande,p2,1,1) 'introduco la matrice p2 nella matrice nc in posizione 1° colonna 1° riga matrix(@rows(nc_grande),@columns (nc_grande)) pz=nc_grande vector(!C) sdv 'creo un vettore per i valori della dev standard for !i=1 to 196 sdv(!i)=0 'volatilità dei vari valori storici next sdv(197)=sd 'volatilità dell'ultimo valore storico for !i=1 to !R for !j=198 to !C sdv(!j)=sdv(!j-1)+alfa*(sd_bar-sdv(!j-1))*passo+vol*(ro*nc(!i,!j)+sqr(1-ro^2)*nc(!R+1-!i,!C+1-!j))*sqr(passo) 'formula per la valutazione della volatilità next next
ENI Corporate University 2003/04
- 27 -
Modello di pricing per opzioni
Project Work Enifin
for !i = 1 to !R+!R for !j = 198 to !C pz(!i,!j) =pz(!i,!j-1)*@exp((mu-((sdv(!j-1)^2)*0.5))*passo+sdv(!j-1)*nc_grande(!i,!j)*sqr(passo)) 'formula per la creazione del prezzo next next matrix (1,@columns(pz)) mediaprezzi for !i = 1 to @columns(pz) mediaprezzi (1,!i) = @mean(@columnextract(pz,!i)) next matrix mediaprezzit=@transpose(mediaprezzi) matrix pzt= @transpose(pz) ' faccio la matrice trasposta della matrice prezzi al fine di vedere graficamente la struttura generata dalla metodologia Montecarlo matrix pzt0=@subextract(pzt,!C-196,1,!C,!R+!R) 'creo una matrice intermedia al fine di definire l'ampiezza della media matrix (1,@columns(pzt0)) media for !i = 1 to @columns(pzt0) media (1,!I) = @mean(@columnextract(pzt0,!i)) next matrix(@columns(pzt0)) pyof=(media-skp) 'calcolo tutti i payoff relativi a tutte le simulazioni matrix pyoft=@transpose(pyof) sample SS 1 1400 'definisco il numero massimo di dati che deve essere inserita nella seire PAYOFFS al fine di poter convertire la matrice PAYOFT in serie per poter applicare la funzione RECODE series PAYOFFS 'creo la serie PAYOFFS mtos(pyoft,payoffs) 'converto la matrice PYOFFSSTRASPOSTI in serie PY payoffs=@recode(payoffs>0,payoffs,0) ' modifico la seire PAYOFFS in modo che i payoffss negativi siano posti uguali a 0 vector(1) premio_termine=@mean(payoffs) 'calcolo il premio a termine vector(1) premio=premio_termine*@exp(-tempo*tassoRF) ' attualizzo al tasso RF il premio a termine sopra calcolata 'Definiscio la tabella nella quale riportarte i dati table (21,5) Tabella 'dimensione della tabella righe colonne Tabella (2,3) = "Parametri" 'Introduco i nomi dei parameteri setcell (Tabella,4,1, "Mu","l",20) setcell (Tabella,5,1,"sd","l",20) setcell (Tabella,6,1,"Nr. Passi","l") setcell (Tabella,7,1,"Nr. Simulazioni","l") setcell (Tabella,8,1,"Ampiezza Passo","l",20) setcell (Tabella,9,1,"Tasso RF","l",20) setcell (Tabella,10,1,"Durata Opzione (T-t)","l",20) setcell (Tabella,11,1,"Prezzo Spot","l",20) setcell (Tabella,12,1,"Strike Price","l",20) 'Introduco i valori dei parametri setcell (Tabella,4,3, Mu,"l",7) setcell (Tabella,5,3,sd,"l",7) setcell (Tabella,6,3,!C-1,"l",0) setcell (Tabella,7,3,!R+!R,"l",0) setcell (Tabella,8,3,Passo,"l",0) setcell (Tabella,9,3,TassoRF,"l",5) setcell (Tabella,10,3,tempo,"l",5) setcell (Tabella,12,3,skp,"l",4) setline (Tabella,16) setline (Tabella, 18) Tabella (17,1) = "Call" Tabella (15,3) = "Premio" Tabella (15,4) = "Premio a Termine" Tabella (20,1) = "Media calcolata su numero giorni lavoartivi = " + @str(@rows(pzt0)-1) ENI Corporate University 2003/04
- 28 -
Modello di pricing per opzioni
Project Work Enifin
for !i=1 to 1 setcell(Tabella,17,3,premio(!i),"c",4) setcell(Tabella,17,4,premio_termine(!i),"c",4) setcell (Tabella,11,3,p2(1,197),"l",4) next
ENI Corporate University 2003/04
- 29 -
Modello di pricing per opzioni
Project Work Enifin
Simulazione MonteCarlo Prezo Brent in euro 42
38
Metodologia 1 Metodologia 2 Metodologia 3 34
30
26
22
Allegato 11: Simulazione Montecarlo Prezzo Brent in euro
ENI Corporate University 2003/04
- 30 -
Modello di pricing per opzioni
Project Work Enifin
Simulazione MonteCarlo Prezo Brent in euro Mu= (-0,001009) 42
38
34
30
26
22
Allegato 12: Simulazione Montecarlo Prezzo Brent in euro con Mu negativo
ENI Corporate University 2003/04
- 31 -
Modello di pricing per opzioni
Project Work Enifin
Simulazione MonteCarlo Prezzo Brent in euro (Volatilità giornaliera: 0,07) 42
38
34
30
26
22
Allegato 13: Simulazione Montecarlo Prezzo Brent in euro con σ = 0,07
ENI Corporate University 2003/04
- 32 -