Corso isvap matlab per traders quantitativi

4,555 views

Published on

Corso ISVAP MATLAB Financial and Optimization Toolbox

Published in: Economy & Finance
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,555
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
160
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Corso isvap matlab per traders quantitativi

  1. 1. Matlab Financial and Optimization Toolbox Genova 17 – 18 ottobre 2013 Luigi Piva 1
  2. 2. LUIGI PIVA   EDUCATION University of Bologna , Degree in Applied Economics and Econometrics Dissertation: “Pricing interest rate futures: applying models to the BTP futures “   CQF-Certificate in Quantitative Finance – 7City-London Dissertations: “Uncertain volatility with static hedge by Finite Difference: pricig vanilla and binary options ” “Multivariate Financial Time Series Analysis: energy futures” PUBLISHED WORKS 2004 Analisi tecnica efficace applicata ai trading systems [Effective technical analysis applied to trading systems] Forlì: Experta Editrice 2005 Trader Magazine. Digest 2005-2006, • FORLÌ: EXPERTA EDITRICE 2010   2011 Borsa italiana Milano (Italian Stock Exchange) : High Frequency Trading: market microstructure Borsa italiana Milano (Italian Stock Exchange): quantitative basis for Energy commodities trading   2
  3. 3. LUIGI PIVA   WORK EXPERIENCE Since September 2012 Quantlab Limited – Quant Strategies Consultant - London, UK  Having the IP of the strategies , I brought them with me in Quantlab and I worked closely with IT professionals to automate every aspect of the trading process.I've been working on my strategies, which already had produced excellent results, to improve them and to extend the range of derivatives we can trade using the strategies, always in a fully automated way.   Since June 2013 Finanza&Previdenza Sicav – Quant Risk consultant - Bologna  Monitornig VAR and other Risk Measures for the portfolio managers. 2007-2012 Equity Line Solutions Ltd – Quantitative Researcher Investment Manager –Shareholder- London, UK Profitably managed a Prop Shop invested in energy stocks , futures and options. The Personal performance from January 2008 to September 2012 showed an amazing +183% growth. Developed HFT algorithms ,based on econometric studies (Statistical Arbitrage) to trade futures (EUREX,CME, CBOT, NYMEX, IDEM) and models (stochastic volatility jump diffusion,...) (Schwartz-Ross,...) to trade futures , options and crack spread (futures and options) .   3
  4. 4. Programma Giorno 1:                Financial Toolbox   -1) Introduzione e funzionalità chiave. -2) Pricing dei Derivati -3) Senstivity Models -4) Modelli per Vanilla e American Options -5) Monte Carlo simulations -6) Modelli per Digital e Asian Options -7) Finite Difference -8) Modelli avanzati per il Pricing di Futures sul Natural Gas -9) Costruzione di un Portfolio di Opzioni "Greek-Neutral" -10) Analisi serie stroriche finanziarie -11) Modelli di Studio e Previsione della Volatilità -12) Regressione e stima con dati mancanti -13) Analisi di Correlazione, Autocorrelazione, Causalità e Cointegrazione 4
  5. 5. Programma Giorno 2:  Optimization Toolbox  Funzionalità chiave Definizione di un Portfolio di Assets Definizione, soluzione e valutazione di problemi di ottimizzazione: Definirzione di objective functions e costrains Settarggio delle opzioni d'ottimizzazione Programmazione non lineare Ottimizzazione multi-obiettivo Minimi quadrati , fitting dei dati ed equazioni non lineari Linear Programming Programmazione quadratica Risoluzione di problemi di ottimizzazione usando il calcolo parallelo           5
  6. 6. Introduzione: MATLAB è un linguaggio ad alto rendimento per la computazione tecnica. In esso sono integrati il calcolo, la visualizzazione e la programmazione in un ambiente di facile impiego, in cui i problemi e le soluzioni sono espressi in una notazione matematica familiare. Con MATLAB si possono svolgere le seguenti attività:     Matematica e calcolo Modellistica e Simulazioni Analisi dei dati, esplorazione e visualizzazione Sviluppo di applicazioni e costruzione grafica dell’interfaccia utente (GUI) 6
  7. 7. Introduzione: MATLAB è un sistema interattivo in cui l’elemento base è l’Array . Questo permette la risoluzione di molti problemi di calcolo tecnico, in particolare quelli con formulazioni vettoriali e matriciali. I problemi affrontati attraverso algoritmi sono molto più semplici rispetto ad un linguaggio scalare come C . È possibile utilizzare le funzioni incorporate per risolvere Problemi potenzialmente complessi ma standard, oppure si possono creare i propri programmi scrivendoli come M-file, cioè, come file di testo con sequenze di istruzioni scritte in un linguaggio matrice-orientato ad alto livello. Inoltre, MATLAB ha un ricco set di capacità grafiche, tra cui la capacità di sviluppare rapidamente interfacce grafiche. la sconosciuta 7
  8. 8. Introduzione: Il nome MATLAB corrisponde all’acronimo del termine «Matrix Laboratori» In ambiente universitario è lo strumento didattico standard per affrontare corsi introduttivi e avanzati di matematica, ingegneria e scienza. Alcuni problemi numerici classici vengono prontamente risolti con funzioni di MATLAB, essi comprendono:      Risoluzione di sistemi di equazioni lineari Risoluzione di equazioni non lineari con una variabile non nota Trovare massimi e minimi di funzioni a variabile singola Calcolare integrali definiti Risolvere equazioni alle differenze ordinarie e semplici PDEs 8
  9. 9. Introduzione: MATLAB è caratterizzato dalla presenza di soluzioni specifiche a problemi applicativi denominate Toolboxes. Molto utili per la maggiore parte degli utenti, forniscono le basi per applicare tali strumenti alla tecnologia specialistica. Le Toolboxes rappresentano collezioni complete di funzioni di MATLAB (denominate M-files) che estendono l’ambiente per risolvere problemi particolari. Per esempio, l’ Optimization Toolbox è necessaria per risolvere problemi di ottimizzazione complessi, che coinvolgono diverse variabili decisionali con vincoli complesso, nonché per sistemi di equazioni non lineari. Un altro toolbox rilevante per la finanza è ila Statistics Toolbox. 9
  10. 10. Introduzione: Sulla base della Statistical e dell’Optimization Toolboxe, alcuni anni fa è stato ideata Financial Toolbox , che comprende diversi gruppi di funzionalità. Alcune erano funzioni di basso livello finalizzate alla manipolazione di date e del calendario o grafici tipici della finanza, che sono blocchi-base per applicazioni concrete, altre funzionalità riguardano ottimizzazione del portafoglio e il pricing dei derivati​​ .Dopo questa prima Toolbox , sono state introdotte altre che sono direttamente collegate alla finanza:     GARCH Toolbox Financial time Series Toolbox Financial Derivatives Toolbox Fixed-Income Toolbox 10
  11. 11. Metodologie Numeriche: E’ prassi assai diffusa associare le idee di metodi numerici e «number crunching» a problemi nel campo della scienza e dell'ingegneria, piuttosto che della finanza. Questo punto di vista i è contraddetto dal numero relativamente elevato di libri e riviste scientifiche dedicati alla Finanza Computazionale o Quantitativa. Questi metodi non sono confinati al mondo accademico, ma sono in uso nella vita reale. Come risultato, vi è stato un aumento costante del numero di programmi accademici dedicati alla finanza quantitativa. Inoltre professionisti con una preparazione a sfondo quantitativa o numerica hanno iniziato a lavorare nel campo della finanza, tra cui ingegneri, matematici e fisici. 11
  12. 12. Metodologie Numeriche: Infatti, come il termine ingegneria finanziaria può suggerire, la finanza computazionale è un campo in cui culture diverse si incontrano. Tutta la trattazione di questi giorni si può riassumere in questi due semplici punti:  1. In ingegneria finanziaria abbiamo bisogno di metodi numerici  2. Abbiamo bisogno di ambienti di calcolo numerici sofisticati e «user-friendly», come MATLAB 12
  13. 13. Metodologie Numeriche: Probabilmente, il risultato più noto di ingegneria finanziaria è la formula di Black-Scholes per il prezzo di opzioni su azioni, che vedremo ampiamente in seguito. Le opzioni sono una categoria di derivati​​, vale a dire, le attività finanziarie il cui valore dipende da un altro bene, chiamato sottostante. Il sottostante può essere anche una attività non finanziaria, come una merce (Commodities) , o di un quantità arbitraria, che rappresenta un fattore di rischio per qualcuno, come il tempo (in senso metereologico) , in modo tale per cui la creazione di un mercato per il trasferimento dei rischi ha senso per i partecipanti a tali mercato. 13
  14. 14. Metodologie Numeriche: Le opzioni sono contratti con regole ben precise per l’emissione, il trading, e la contabilità. Per esempio, un'opzione call in stile europeo su un titolo conferisce al titolare il diritto, ma non l'obbligo, di acquistare una determinata azione in un dato momento (maturità, denotato da T), per un prezzo predeterminato (strike price, indicato con K). Analogamente, un'opzione put dà il diritto di vendere l'attività sottostante ad un predeterminato prezzo di esercizio. In derivati ​in stile europeo, il diritto specificato nel contratto può essere esercitato solo alla scadenza T, in derivati ​di tipo americano, si può esercitare il suo diritto in qualunque momento prima T, che in questo caso gioca il ruolo del data di scadenza dell'opzione. 14
  15. 15. Metodologie Numeriche: Nel caso di un'opzione call in stile europeo, se il prezzo dell'attività alla scadenza è S(T), allora il payoff è : max {S (T) - K, 0) La logica è che, sotto ipotesi ideali sui mercati finanziari, il titolare dell'opzione può acquistare l'attività sottostante al prezzo S (T) e venderel’opzione immediatamente a prezzo K. Chiaramente, il titolare dell'opzione lo farà solo se questo si traduce in un profitto. In realtà, le imperfezioni del mercato, come ad esempio i costi di transazione , impediscono un tale trading ideale. Anche se S (T) è l'ultimo prezzo quotato, non vi è alcuna garanzia che il titolare dell'opzione possa effettivamente acquistare le azioni al quel prezzo. Noi qui trascureremo tali questioni, che sono legati alla micro-struttura dei mercati finanziari. 15
  16. 16. Metodologie Numeriche: Se ci troviamo in un istante di tempo t <T, vorremmo assegnare un valore, o un prezzo, per l'opzione. Tuttavia, ciò che sappiamo è solo il prezzo dell'attività sottostante corrente S (t), mentre il suo prezzo S (T) alla scadenza non è noto. Se costruiamo un modello matematico per la dinamica del prezzo S (t) come funzione del tempo, si può considerare S (T) come una variabile casuale. Sia f (S (t), t) il prezzo dell'opzione al tempo t se il prezzo corrente del sottostante è S (t), per semplificare le notazioni, di solito si scrive come f (S, t). 16
  17. 17. Metodologie Numeriche: Si può dimostrare che, sotto opportune ipotesi, il valore del contratto dipende davvero solo su T e S, e soddisfa la seguente equazione differenziale parziale (PDE): dove r è il tasso di interesse risk-free, cioè, il tasso di interesse che si può guadagnare nell’investire in un conto sicuro e sigma è un parametro relativo al volatilità del prezzo dell'attività Sottostante. L’equazione sopra, con l'aggiunta di opportune condizioni al contorno legato al tipo di opzione, può, in alcuni casi essere risolta analiticamente. 17
  18. 18. Metodologie Numeriche: Ad esempio, se indichiamo la funzione di distribuzione cumulativa della distribuzione normale standard con N (z) , dove Z è una variabile normale standard, il prezzo C di un’opzione call europea al tempo t è: 18
  19. 19. Metodologie Numeriche: Questa formula è facile da valutare, ma in generale non siamo così fortunati. la complessità delle PDEs o di alcune condizioni supplementari, che dobbiamo imporre a caratterizzare completamente una specifica opzione, possono richiedere metodi numerici. Noi vedremo metodi numerici relativamente semplici per risolvere PDEs , sulla base delle differenze finite o metodi Monte Carlo con applicazioni al prezzo delle opzioni. Vedremo anche quando una opzione complessa non può essere valutata analiticamente. Nella valutazione delle opzioni con simulazione Monte Carlo le formule di pricing analitico possono produrre convergenze utili per ridurre la varianza della stima di prezzo 19
  20. 20. Metodologie Numeriche: La distinzione tra metodi numerici ed analitici a volte è abbastanza futile. Può succedere che formule analitiche siano piuttosto complicate, come la seguente: che è la formula per la valutazione di una Call di tipo europeo quando i «salti» di prezzo sono inclusi nel modello. La formula di Black-Scholes assume la continuità dell’andamento dei prezzi del sottostante. Qui Merton generalizza aggiungendo una componente che considera i salti accadano secondo un processo di Poisson. E’ una modifica della formula di Black-Scholes con l’aggiunta di una variabile casuale Xn legata a lambda, il numero atteso di salti per unità di tempo. Anche senza addentrarci nei dettaglia, è intuitivo che la valutazione della formula richiede una qualche approssimazione computazionale. 20
  21. 21. Metodologie Numeriche: In altri contesti problematici, dobbiamo approssimare una funzione definita da un integrale. Per esempio, si consideri una funzione g (x, y) e definiamo una funzione di x come: Tale situazione si verifica spesso in ottimizzazione stocastica, quando x è una variable decisionale che influenza il risultato, che è solo in parte sotto il nostro controllo perché dell'effetto di un "disturbo" casuale Y. Dato che il calcolo degli integrali è così importante, ce ne occuperemo ancora. Più che i metodi di integrazione deterministici, affronteremo estensivamente i metodi di campionamento casuali note come integrazione Monte Carl o di simulazione Monte Carlo, che hanno un’ ampia gamma di applicazioni, includendo il pricing dei derivati e la gestione del Rischio. 21
  22. 22. Metodologie Numeriche: Un altro importante tema del corso è l'ottimizzazione. Modelli e metodi di ottimizzazione svolgono molti ruoli diversi in finanza. Nel contesto option pricing, l'ottimizzazione è usata per il pricing di opzioni di stile americano. Dal momento che le opzioni di tipo americano possono essere esercitati, in qualsiasi momento prima della scadenza, strategie ottimali di esercizio deve essere Per esempio, in una opzione call in stile americano, si sarebbe tentati di esercitare l'opzione, non appena si arriva in-the-money, cioè quando S (t)> K per un'opzione call e si potrebbe guadagnare un profitto immediato. Tuttavia, ci si dovrebbe chiedere anche se potrebbe essere meglio aspettare un'occasione migliore. questo è non è un problema banale, soprattutto nel caso di un titolo che paghi dividendi prima della scadenza. 22
  23. 23. Metodologie Numeriche: Un altro metodo di applicazione dell’ottimizzazione è la gestione del portafoglio. Dato un insieme di attività in cui si può investire un certo patrimonio, dobbiamo decidere quanto deve essere assegnato a ciascuna attività, dando una caratterizzazione all'incertezza del rendimento di un attività. Il modello di ottimizzazione di portafoglio più noto si basa sull'idea di minimizzare la varianza del rendimento del portafoglio (una misura di rischio), nel rispetto di un vincolo sul suo Rendimento atteso. Questo porta alla teoria di portafoglio media-varianza proposto da Harry Markowitz nel 1950. Anche se un po 'idealizzato, questo modello aveva un enorme impatto pratico e teorico per lo stato dell’arte del tempo, garantendo a Markowitz un premio Nobel per l'economia e posando uno dei pilastri della finanza quantitativa. Da allora sono stati sviluppati molti approcci diversi all'ottimizzazione di portafoglio (per.es modelli multifattoriali) 23
  24. 24. Financial Toolbox : USO DI MATRICI IN FINANZA Molte procedure di analisi finanziaria coinvolgono insiemi di numeri, ad esempio, un portafoglio di titoli a vari prezzi e rendimenti. Matrici, funzioni di matrice, e matriciali sono i modi più efficaci per analizzare insiemi di numeri e le loro relazioni. I fogli di calcolo si concentrano su singole celle e sui rapporti tra celle . Invece si può pensare ad un insieme di celle del foglio di calcolo (un intervallo di righe e colonne) come matrice, un tool orientato alle matrici come MATLAB manipola insiemi di numeri in modo più rapido, semplice e naturale. 24
  25. 25. Financial Toolbox : DEFINIZIONI CHIAVE Una Matrice è un Array rettangolare di quantità numeriche o algebriche soggette a operazioni matematiche, con una formazione regolare di elementi in righe e colonne. Una matrice descritta come "m-by-n" ha m righe ed n colonne. La descrizione è sempre "riga per colonna. Per esempio, di seguito vediamo una matrice 2 per 3 di due obbligazioni (le file) con valori di rimborso, tassi e frequenza di pagamento annuale della cedola: Bonds = [ 100 0.06 2 100 0.055 4] Un Vettore è una matrice con una sola colonna del tipo Cash = [ 1500 4470 5280 -1299 ] 25
  26. 26. Financial Toolbox : Referenziare gli elementi della Matrice: Per referenziare gli elementi si usa la notazione (riga.colonna): Bonds (1.2) e invio… Cash (3) e invio… Le matrici si possono allargare usando piccole matrici o vettori come elementi della matrice. Per esempio: AddBonds = [ 100 0.065 2 ] Bonds = [ Bonds ; AddBonds ] Aggiunge una riga allla matrice «Bonds» 26
  27. 27. Financial Toolbox : Grafici Finanziari: Ecco come plottare i dati finanziari e produrre grafici di qualità in modo rapido e semplice. Lavoriamo qui con funzioni MATLAB standard che disegnano gli assi, definiscono l’aspetto, e aggiungono etichette e titoli. Facciamo alcuni esempi di plotting: un agrafico High-Low-Close del Crude Oil con dati giornalieri e un grafico delle bande di Bollinger dei dati stessi. Carico i dati da un file excel quindi richiamo le funzioni utilizzando sottoinsiemi del dati. Crude Oil è una matrice a 4 colonne in cui ogni riga è dati un giorno di trading e dove le colonne 2, 3 e 4 contengono i prezzi High, Low, e Close rispettivamente. 27
  28. 28. Financial Toolbox : Grafici Finanziari: Di seguito vediamo come la funzione dellaToolbox «Bolling» plotta le bande di Bollinger usando i prezzi di chiusura della matrice dei prezzi del Crude Oil. Il grafico quindi plotta il grafico a barre dei prezzi , insieme ad altri tre bande . Quella superiore è due deviazioni standard sopra la media mobile; la banda inferiore è di due deviazioni standard sotto questa media mobile, e banda centrale è la media mobile stessa. In questo esempio utilizziamo una media a 15 periodi (giorni). Vediamo un altro esempio, come fare un grafico con le chiusure giornaliere e le relative medie mobili esponenziali a 5 e 20 periodi. 28
  29. 29. Financial Toolbox : Prezzare I Derivati In alcuni casi, un approccio analitico di valutazione delle opzioni può portare a utili formule per ottenere dei prezzi approssimati. In generale, comunque: abbiamo bisogno di ricorrere a procedure numeriche. Ci sono fondamentalmente tre approcci numerici per prezzare uno strumento derivato:  Risolvere un’equazione alle differenze parziali, per esempio con un’approssimazione di differenze finite  La simulazione Monte Carlo  Alberi Binomiali o Trinomiali 29
  30. 30. Financial Toolbox : Albero Binomiale: Consideriamo un singolo step temporale di lunghezza delta t. Conosciamo il prezzo dell'attività S0 all'inizio dello step Il prezzo S1 alla fine del periodo è una variabile casuale. Il modello più semplice che possiamo pensare specifica solo due possibili valori, considerando, ad esempio, la possibilità di un aumento ed una diminuzione il prezzo delle azioni. 30
  31. 31. Financial Toolbox : Albero Binomiale: Si comincia con un prezzo S0, all’ stante successivo si assume che il prezzo può assumere i valori uS0 o dS0, dove d<u , con probabilità pari a pu e pd, rispettivamente. Ora, immaginiamo un opzione il cui valore sconosciuto ora è indicata da fo. Se l'opzione può essere esercitata solo dopo delta t, è facile trovare il valore dell’opzione fu e fd corrispondenti a i due risultati. Sono semplicemente i payoff delle opzioni, che sono determinati Dal tipo di contratto. Come trovare f0 ? Possiamo ancora sfruttare il principio di non arbitraggio. Cerchiamo di impostare un portafoglio composto da due asset: un obbligazione priva di rischio, con il prezzo iniziale BO = 1 e prezzo futuro B1 = exp{r-delta t} , e la attività sottostante con valore iniziale SO. 31
  32. 32. Financial Toolbox : Albero Binomiale: Indichiamo il numero di quote azionarie nel portafoglio con DELTA e il numero di BONDS da PSI. Il valore iniziale di questa portafoglio è: E il suo valore futuro, a seconda dello stato realizzato, sarà: Ora costruiamo un portafoglio che replica esattamente il payoff dell’opzione: 32
  33. 33. Financial Toolbox : Albero Binomiale: risolvendo il sistema di due equazioni lineari in due variabili, otteniamo: Ma per potere evitare arbitraggi, il valore del portafoglio deve essere uguale ad f0: Importante notare come questa relazione NON dipende dalle probabilità pu e pd, in questa scrittura, il prezzo dell’opzione non è il valore atteso del payoff scontato 33
  34. 34. Financial Toolbox : Albero Binomiale: Pensando al pricing di contratti Forward, possiamo interpretare l ’equazione precedente come un valore atteso. Infatti se noi Settiamo i valori pi : E abbiamo che :  La somma dei due valori è uguale a uno.  Sono entrambi positivi se d< exp { r –delta t} < u , che succede se non ci sono possibilità di arbitraggio tra gli assets, quindi possiamo interpretare i due valori come probabilità. Il prezzo dell’opzione può essere interpretato come il valore atteso del payoff scontato sotto quelle probabilità 34
  35. 35. Financial Toolbox : Albero Binomiale: Il prezzo dell’opzione può essere interpretato come il valore atteso del payoff scontato sotto quelle probabilità: Il valore atteso di S1 sotto le probabilità pi (u) e pi (d) è: Le probabilità pi (u) e pi (d) sono chiamate neutrali al rischio. Quello che abbiamo trovato è coerente con i metodi per il pricing di un contratto forward e suggerisce che anche i derivati ​possono essere valutati prendendo le aspettative nell'ambito di una misura neutrale al rischio. 35
  36. 36. Financial Toolbox : Albero Binomiale: La misura oggettiva di probabilità non svolge qui alcun ruolo, siccome il payoff dell’opzione può essere perfettamente replicato dal due beni "primari ", l’azione e l’obbligazione Quando una serie di attività "primarie" ci permette di replicare un payoff arbitrario, diciamo che il mercato è completo, non mancano attività finanziarie che soddisfino ogni esigenza. Può essere dimostrato che una misura neutrale al rischio esiste se l'arbitraggio è impossibile ed è unica se il mercato è completo. Il principio di valutazione neutrale verso il rischio ha conseguenze di vasta portata , rimandiamo alla bibliografia per una analisi più approfondita. Quello che abbiamo visto è un tipico argomento di pricing a base di replica (di un portafoglio) . 36
  37. 37. Financial Toolbox : Albero Binomiale: Il modello binomiale per il prezzo delle opzioni o di altri derivati ​ azionari assume quindi che la probabilità, nel corso del tempo ,di ogni prezzo possibile, segua una distribuzione binomiale. Il presupposto di base è che i prezzi possono muovere solo verso due valori, uno su e uno giù, in un periodo di tempo breve. Tracciare i due valori, e poi i successivi due valori, e poi i successivi due valori e così via nel tempo, è un procedimento noto come la "costruzione di un albero binomiale." Questo modello è particolarmente valido per le opzioni americane, che possono essere esercitate in qualsiasi momento fino alla data di scadenza. Per quanto riguarda le opzioni europee, si tende a non usare i modelli ad albero. 37
  38. 38. Financial Toolbox : Albero Binomiale: Vediamo ora quindi un esempio per i prezzi di una Call americana con un modello binomiale. il prezzo dell'azione è 100,00 dollari, il prezzo di esercizio è 95,00 dollari, l'interesse privo di rischio tasso è del 10%, e la vita residua è di 0,25 anni. Si calcola l'albero in incrementi di 0,05 anni, quindi ci sono 0.25/0.05 = 5 periodi nell'esempio. La volatilità è pari a 0.50, questa è una Call (flag = 1), il tasso sul dividendo è pari a 0, e si paga un dividendo di 5,00 dollari dopo tre periodi (data di stacco del dividendo). In MATLAB: [optionpr, optionval] = binprice(100, 95, 0.10, 0.25, 0.05, ... 0.50, 1, 0, 5.0, 3); 38
  39. 39. Financial Toolbox : Albero Binomiale: Otteniamo i valori del prezzo del titolo e dell’opzione In questo caso l’output è un albero binomiale con ricongiungimento. 39
  40. 40. Financial Toolbox : Albero Trinomiale: L'idea di un albero trinomiale si pone naturalmente come una generalizzazione dell’albero binomiale. Ogni nodo ha tre successori, corrispondenti al prezzo in salita, in discesa o invariato (quest’ultima in realtà è solo una scelta possibile). L’albero è calibrato in modo tale da consentire la ricombinazione e la coincidenza dei primi due momenti della variabile casuale Un albero trinomiale può essere particolarmente utile è nel pricing di un'opzione a barriera, in tal caso può essere utile che il prezzo di barriera sia sull’albero . 40
  41. 41. Financial Toolbox : Albero Trinomiale: Nel corso di un piccolo passo temporale delta-t, ci possiamo spostare in tre direzioni corrispondenti agli incrementi +delta t, -delta t e 0 del logaritmo del prezzo Le tre alternative si verificano con probabilità neutrali al rischio p u , pd e pm rispettivamente. Data la solita equazione : Scriviamo l’equazione che fa coincidere i primi due momenti: 41
  42. 42. Financial Toolbox : Albero Trinomiale: Risolviamo il sistema di equazioni: dove si vede che si lascia un ulteriore grado di libertà per scegliere delta x . Si scopre che non si possono scegliere delta x e delta t liberamente. Una regola comune è: Dobbiamo anche notare che una scelta erronea può provocare probabilità negative. 42
  43. 43. Financial Toolbox : Albero Trinomiale: Come esempio, consideriamo di prezzare una call option Eiuropea su un azione che non paga dividendi , con: S0 = 100; K= 100; r= 0.06; T = 1; sigma = 0.3 Se costruiamo un albero in tre fasi, con delta x = 0.2 si ottiene, il reticolo in figura: dove p u= 0,3878 p m = 0,2494 p d = 0,3628 43
  44. 44. Financial Toolbox : Black-Scholes: Nel modello binomiale visto prima, siamo in grado di prezzare un'opzione assumendo che il prezzo futuro del sottostante prenderà uno dei due valori. Quindi, utilizzando solo due beni, siamo in grado di replicare qualsiasi payoff. Ma usare solo due stati rende il modellare l’incertezza piuttosto superficiale e grezzo. E se volessimo poi usare una migliore distribuzione di probabilità? Un'alternativa è quella di considerare la negoziazione a tempi intermedi. Dobbiamo modellare prezzi delle attività non solo ora e alla scadenza, ma anche lungo tutto il percorso. Questo può essere fatto utilizzando schema binomiale ricorsivo ed elaborare una completa ricombinazione binomiale; questo percorso produce interessanti schemi numerici che vedremo in seguito. Gli alberi binomiali multistadio sono modelli a stati discreti e tempo discreto. 44
  45. 45. Financial Toolbox : Black-Scholes: E se volessimo tenere conto di una distribuzione continua dei prezzi futuri, come ad esempio la distribuzione log-normale associato con moto browniano geometrico? La risposta è che dovremmo permettere la negoziazione, in teoria infinita, che prevede un modello a tempo continuo. Curiosamente, questo che sembra un modello complesso può produrre semplici soluzioni in forma esplicita. Si consideri una opzione call in stile europeo scritta su un’azione che non paga dividendo, il cui prezzo S (t) segue un moto browniano geometrico. Poiché gli incrementi nel processo di Wiener sono indipendenti, possiamo dire che la storia futura non dipende dal passato. E possiamo anche dimostrare che il valore dell'opzione in un tempo t prima scadenza dipende solo dal tempo (più precisamente, il tempo di scadenza) e il prezzo corrente del sottostante. 45
  46. 46. Financial Toolbox : Black-Scholes: se noi denotiamo questo valore con f (S (t), t) che soddisfa l’equazione differenziale stocastica: Quello che sappiamo è che , a maturità, il valore dell’opzione è il payoff: E quello che vogliamo sapere è il giusto prezzo dell’opzione ora, f(S(0),0). L’equazione differenziale non suggerisce un modo immediato per trovare il prezzo dell'opzione, ma potrebbe sembrare un po’ più familiare senza il termine casuale in Ds . Ricordiamo che usando l’argomento di non arbitraggio, abbiamo ottenuto relazioni deterministiche nonostante la casualità coinvolta. (Forward) 46
  47. 47. Financial Toolbox : Black-Scholes: Per sbarazzarsi della casualità, possiamo cercare di utilizzare opzioni e azioni per la costruzione di un portafoglio il cui valore è deterministico, proprio come abbiamo fatto nella semplice impostazione binomiale. Si consideri un portafoglio composto da una posizione corta su un'opzione e una posizione lunga in un certo numero, diciamo Delta , di quote azionarie. Il valore di questo portafoglio sarà: Derivando e sostituendo otteniamo: Possiamo eliminare il rischio scegliendo: 47
  48. 48. Financial Toolbox : Black-Scholes: Semplificando, abbiamo una equazione deterministica alle derivate parziali che descrive il valore di una opzione f (S, t). Questa equazione vale per qualsiasi opzione il cui payoff dipende solo dal prezzo corrente dell'attività sottostante, o il suo prezzo alla scadenza. Tipicamente le equazioni alle derivate parziali bisogno di boundary e condizioni iniziali per ottenere una soluzione esplicita. Nel nostro caso abbiamo condizioni finali. Per una Call europea abbiamo un condizione finale al tempo T: Per una Put: 48
  49. 49. Financial Toolbox : Black-Scholes: Una caratteristica notevole e contro-intuitiva dell'equazione di cui sopra è che il drift dell'attività sottostante non gioca alcun ruolo. Solo il tasso di interesse privo di rischio r è coinvolto. Questa in realtà non è una sorpresa, dato quello che abbiamo visto per un'opzione sotto il modello binomiale a step singolo, ed è un altro esempio del principio generale e di valutazione risk-neutral. In generale, un'equazione differenziale parziale è troppo difficile da maneggiare per ottenere un soluzione in forma esplicita e deve essere risolta con approcci numerici; La difficoltà deriva in parte dalla equazione stessa e in parte dalle condizioni boundary . Tuttavia, ci sono alcuni i casi in cui l'equazione sopra può essere risolta analiticamente. 49
  50. 50. Financial Toolbox : Black-Scholes: Una caratteristica notevole e contro-intuitiva dell'equazione di cui sopra è che il drift dell'attività sottostante non gioca alcun ruolo. Solo il tasso di interesse privo di rischio r è coinvolto. Questa in realtà non è una sorpresa, dato quello che abbiamo visto per un'opzione sotto il modello binomiale a step singolo, ed è un altro esempio del principio generale e di valutazione risk-neutral. In generale, un'equazione differenziale parziale è troppo difficile da maneggiare per ottenere un soluzione in forma esplicita e deve essere risolta con approcci numerici; La difficoltà deriva in parte dalla equazione stessa e in parte dalle condizioni boundary . Tuttavia, ci sono alcuni i casi in cui l'equazione sopra può essere risolta analiticamente. 50
  51. 51. Financial Toolbox : Black-Scholes: Il caso più celebre è dovuto a Black e Scholes, che sono stati in grado di dimostrare che la soluzione per una Call europea è: dove: e N è la funzione di distribuzione per la Normale Standard: Usando la Put-Call Parity: 51
  52. 52. Financial Toolbox : Black-Scholes: E 'anche possibile dare un valore al numero di azioni Delta che dovremmo vendere allo scoperto per costruire il portafoglio privo di rischio II: Per una generica opzione di valore f(S,t): Misura la sensistivity del prezzo dell’opzione a piccole variazioni nel prezzo dell’azione. Possono essere ottenute altre misure di sensitivity, definite in genere le «greche» di un’opzione: 52
  53. 53. Financial Toolbox : Black-Scholes in Matlab: Implementare la formula di Black-Scholes in MATLAB è abbastanza facile. possiamo sfruttare la funzione «normcdf» fornite dalla Statistic Toolbox per calcolare la funzione di distribuzione cumulativa della distribuzione normale standard. Dalla semplice traduzione delle equazioni otteniamo: d1= (log(SO/K)+(r+sigma^2/2)*T) / (sigma * sqrt(T)); d2 = dl - (sigma*sqrt(T)); C = SO * normcdf(d1) - K * (exp(-r*T)*normcdf(d2)); P = K*exp(-r*T) * normcdf (-d2) - SO * normcdf (-dl); Prima inseriamo i valori di S0: il prezzo del titolo al periodo corrente K= Strike Price r= tasso risk-free T= time to expiry (year) sigma= volatility q= dividend yeld 53
  54. 54. Financial Toolbox : Black-Scholes in Matlab: La funzione della Financial Toolbox «blsprice» implementa queste formule con un paio di estensioni. Prima, può prendere un vettore argomenti per calcolare un insieme di prezzi un'opzione i in una sola volta, in secondo luogo, si può tener conto di un tasso di dividendo continuo q (il cui valore di default è zero). S0=50; K= 52; r= 0.1; T= 5/12; sigma= 0.4; q= 0; [ C P] = blsprice(S0,K,r,T, sigma,q) 54
  55. 55. Financial Toolbox : Black-Scholes in Matlab: È interessante tracciare il valore di un'opzione, diciamo una Call europea, per diversi valori del prezzo corrente, mentre si avvicina la maturità. Eseguendo il codice dello script si ottiene il diagramma che evidenzia come cambia la trama quando il tempo progredisce. S0 = 30:1:70; K = 50; r = 0.08; sigma = 0.4; for T=2:-0.25:0 plot (S0 ,blsprice (S0 ,K, r ,T, sigma)) ; hold on; end axis( [30 70 -5 35]) ; grid on 55
  56. 56. Financial Toolbox : Black-Scholes in Matlab: Le Greche: Le greche possono essere usatie per approssimare la variazione di un valore delle opzioni con riferimento ai fattori di rischio, come accade per la durata e la convessità per un portafoglio obbligazionario, dove il principale fattore di rischio è l'incertezza dei tassi di interesse. Per esempio, consideriamo la variazione del prezzo di una opzione Call a causa di un aumento del prezzo del titolo sottostante. Utilizzando lo un sviluppo di Taylor del secondo ordine, otteniamo la seguente approssimazione di questa variazione: 56
  57. 57. Financial Toolbox : Black-Scholes in Matlab: Le Greche: In MATLAB possiamo utilizzare una tale approssimazione sfruttando le funzioni «blsdelta» e «blsgamma». È importante notare che blsgamma restituisce solo un argomento, come si può vedere è o stesso per una Call e una Put. Un semplice snapshot MATLAB mostra che l'approssimazione è abbastanza buona: 57
  58. 58. Financial Toolbox : Black-Scholes in Matlab: Le Greche: Le greche come abbiamo detto, possono svolgere un ruolo nella copertura, e Delta e Gamma giocano lo stesso ruolo di duration e convessità delle obbligazioni. Possiamo costruire strategie per la costruzione di portafogli di opzioni che sono Delta-neutrali, il che significa che il valore complessivo del portafoglio non cambierà per i piccoli cambiamenti nel prezzo del sottostante. In realtà, da un punto di vista pratico, è probabilmente meglio avere una copertura imperfetta per le grandi perturbazioni nei pezzi che una copertura perfetta per perturbazioni infinitesimali. Copertura a parte, dobbiamo notare che le Greche hanno anche un ruolo nella gestione rischio. Si consideri la stima del Value at Risk per un portafoglio di opzioni in cui si usa l’approssimazione Delta-Normal. 58
  59. 59. Financial Toolbox : Black-Scholes in Matlab: Ancora sulle Greche: Delta: Delta di un titolo derivato è il tasso di variazione del prezzo rispetto variazione di prezzo dell'attività sottostante. È la derivata prima della curva a cui si riferisce il prezzo del derivato per il prezzo del titolo sottostante. Quando il delta è grande, il prezzo del derivato è sensibile a piccole variazioni del prezzo di il titolo sottostante. Gamma: Gamma di un titolo derivato è il tasso di variazione del delta rispetto al prezzo dell'attività sottostante, cioè la derivata seconda del prezzo dell'opzione rispetto al prezzo del titolo. Questa misura della sensibilità è importante per decidere come per regolare una posizione in hedging. Lambda Lambda, noto anche come l'elasticità di una opzione, rappresenta la percentuale variazione del prezzo di un'opzione relativa a una variazione dell'1% nel prezzo del titolo sottostante 59
  60. 60. Financial Toolbox : Black-Scholes in Matlab: Ancora sulle Greche: Rho Rho è il tasso di variazione del prezzo dell'opzione rispetto al variare del tasso di interesse privo di rischio. Theta Theta è il tasso di variazione del prezzo di un titolo derivato rispetto al tempo. Theta è generalmente molto piccolo o negativa poiché il valore di un'opzione tende a scendere mentre si avvicina la maturità.(Time Decay) Vega Vega è il coefficiente di variazione del prezzo di un titolo derivato rispetto al cambiamento della volatilità del titolo sottostante. Quando Vega è grande l’opzione è sensibile alle piccole variazioni di volatilità. («the bastard greek») 60
  61. 61. Financial Toolbox : Black-Scholes in Matlab: Ancora sulle Greche: Spesso il trader in opzioni deve decidere se acquistare una opzione per coprirsi da Vega o da Gamma. La copertura scelta, di solito dipende da quanto spesso uno riequilibra detta copertura e anche dalla variazione del prezzo dell'attività sottostante (la volatilità). Se la volatilità sta cambiando rapidamente, la copertura da Vega è generalmente preferibile. Volatilità implicita La volatilità implicita di un'opzione è la volatilità che, inserita nella formula di Black-Scholes , fa ottenere il prezzo di un'opzione Call pari al prezzo di mercato. (Calibration) Esso è utilizzato per determinare una stima di mercato per la volatilità futura di un’azione e fornisce la volatilità di ingresso (quando necessario) alle altre funzioni di Black-Scholes. 61
  62. 62. Financial Toolbox : Black-Scholes in Matlab: Ancora sulle Greche: Per illustrare le funzioni di Black-Scholes toolbox, questo esempio calcola la Call e i prezzi di una opzione europea e del suo delta, gamma, lambda, e implicita volatilità. Il prezzo dell'attività è 100,00 dollari, il prezzo di esercizio è 95,00 dollari, il tasso di interesse risk-free è del 10%, il time to maturity è di 0,25 anni, la volatilità è 0,50, e il tasso sul dividendo è 0. Basta eseguire le funzioni :       [optcall, optput] = blsprice(100, 95, 0.10, 0.25, 0.50, 0); [callval, putval] = blsdelta(100, 95, 0.10, 0.25, 0.50, 0); gammaval = blsgamma(100, 95, 0.10, 0.25, 0.50, 0); vegaval = blsvega(100, 95, 0.10, 0.25, 0.50, 0); [lamcall, lamput] = blslambda(100, 95, 0.10, 0.25, 0.50, 0); volatility = blsimpv(100, 95, 0.10, 0.25, optcall); 62
  63. 63. Financial Toolbox : Black-Scholes in Matlab: Costruire un Portafoglio Greek-Neutral: Abbiamo visto che le sei principali misure di sensibilità del prezzo delle opzioni sono denominate con lettere greche, da cui «Greche»: delta, gamma, lambda, rho, theta, e vega. Le Greche di una particolare opzione sono una funzione del modello utilizzato per determinare il prezzo del opzione. Tuttavia, avendo abbastanza opzioni diverse con cui lavorare, un trader può costruire un portafoglio con i valori desiderati per le Greche. Per ridurre la vulnerabilità di un portafoglio alle variazioni del prezzo del sottostante, un trader potrebbe costruire un portafoglio il cui delta è pari a zero. Il portafoglio viene poi detto «delta neutrale» Un altro trader può credere che la volatilità di un certa azione aumenterà oltre le aspettative del mercato, e cercherà di costruire un portafoglio con un Vega grande per poi comprarlo. 63
  64. 64. Financial Toolbox : Black-Scholes in Matlab: Costruire un Portafoglio Greek-Neutral: Questo esempio consente di creare un portafoglio di opzioni su azioni, oggetto di copertura (secondo il modello di Black-Scholes per le opzioni europee) contro più Greche. Si usa il fatto che il valore di un particolare greca per un portafoglio di opzione è un media ponderata del valore degli stessi greco per ogni singola opzione, dove i pesi sono quelli delle opzioni in portafoglio. La copertura così diventa un caso di risoluzione di un sistema di equazioni lineari, che è molto facile in MATLAB. 64
  65. 65. Financial Toolbox : Black-Scholes in Matlab: Costruire un Portafoglio Greek-Neutral: Step 1: Creare una matrice dei dati rilevanti delle opzioni. Ogni riga contiene gli imputs standard delle funzioni BlackScholes nella Financial toolbox: prezzo corrente, prezzo di esercizio, , la volatilità, gli anni alla maturità, il tasso sul dividendo. La colonna 6 indica una Put (0) o una Call (1). DataMatrix = [100.00 100 0.2 0.3 0 1 119.1 125 0.2 0.2 0.025 0 87.2 85 0.1 0.23 0 1 300.15 315 0.5 0.25 0.333 0] 65
  66. 66. Financial Toolbox : Black-Scholes in Matlab: Costruire un Portafoglio Greek-Neutral: Assumiamo anche che il il tasso risk-free annualizzato sia pari al 10% RiskFreeRate = 0.1; Per chiarezza assegniamo a ogni colonna di DataMatrix un vettore colonna il cui nome riflette il tipo di dato: StockPrice = DataMatrix(:,1); StrikePrice = DataMatrix(:,2); ExpiryTime = DataMatrix(:,3); Volatility = DataMatrix(:,4); DividendRate = DataMatrix(:,5); 66
  67. 67. Financial Toolbox : Black-Scholes in Matlab: Costruire un Portafoglio Greek-Neutral: Step 2: Basandoci sul modelo di Black-Scholes, calcoliamo i prezzi così come Delta, Gamma, e Vega di ognuna delle quattro opzioni. Da notare che le funzioni «blsprice» e «blsdelta» hanno due outoputs, mentre «blsgamma» e «blsvega» ne hanno solo uno. La funzione standard diag di MATLAB ottiene il prezzo della Call della prima opzione e il prezzo della Put della seconda opzione . [CallPrices, PutPrices] = blsprice (StockPrice, StrikePrice, RiskFreeRate, Expitytime, Volatility, DividendRate); [CallDeltas , PutDeltas ] = blsdelta((StockPrice, StrikePrice, RiskFreeRate, Expitytime, Volatility, DividendRate); 67
  68. 68. Financial Toolbox : Black-Scholes in Matlab: Costruire un Portafoglio Greek-Neutral: Gammas = blsgamma (StockPrice, StrikePrice, RiskFreeRate, Expitytime, Volatility, DividendRate); Vegas = blsvega ((StockPrice, StrikePrice, RiskFreeRate, Expitytime, Volatility, DividendRate); Estraiamo i Prezzi e i Delta che ci interessano per tenere conto delle differenze tra Call e Put Prices = [CallPrices(1), PutPrices(2), CallPrices(3), PutPrices(4)]; Deltas = [CallDeltas(1), PutDeltas(2), CallDeltas(3), PutDeltas(4)]; 68
  69. 69. Financial Toolbox : Black-Scholes in Matlab: Costruire un Portafoglio Greek-Neutral: Ora, assumendo un valore arbitrario di Portafoglio pari a $ 17.000 settiamo e risolviamo il sistema lineare di equazioni tale che l’intero portfolio di opzioni è simultanemente:    Delta-neutrale Gamma-neutrale Vega-Neutrale La soluzione calcola il valore della particolare Greca di un portafoglio di opzioni come media pesata della Greca corrispondente di ogni singola opzione nel portafoglio. 69
  70. 70. Financial Toolbox : Black-Scholes in Matlab: Costruire un Portafoglio Greek-Neutral: Il sistema di equazioni è risolto usando l’operatore backslash ( ) Che serve nel caso ci sia da risolvere un sistema di equazioni lineari simultanee A = [Deltas ; Gammas ; Vegas ; Prices] ; b = [0 ; 0; 0; 17000] OptionQuantities = A b; %quantità di ogni opzione 70
  71. 71. Financial Toolbox : Black-Scholes in Matlab: Costruire un Portafoglio Greek-Neutral: Alla Fine calcoliamo il valore di mercato, Delta, Gamma, e Vega dell’intero portafoglio come medie pesata dei parametri corrispondenti delle opzioni che compongono il portafoglio. La media pesata è calcolata come prodotto interno di due vettori: A = [Deltas ; Gammas ; Vegas ; Prices] ; b = [0 ; 0 ; 0 ; 17000]; OptionQuantities = Ab; %quantità di ogni opzione 71
  72. 72. Financial Toolbox : Black-Scholes in Matlab: Plottare le Sensitivities di un’opzione: Questo esempio crea un plot tridimensionale che mostra le variazioni di Gamma rispetto ai cambiamenti del prezzo di un opzione in Black-Scholes. Ricordiamo che gamma è la derivata seconda del prezzo dell'opzione rispetto al prezzo del titolo sottostante. Il plot mostra una superficie tridimensionale il cui valore z è il Gamma di un'opzione quando prezzo (asse x) e del tempo (asse y) variano. Si aggiunge ancora una quarta dimensione, mostrando il Delta dell’opzione (la derivata prima del prezzo dell'opzione al prezzo del titolo), rappresentato dal colore della superficie. 72
  73. 73. Financial Toolbox : Black-Scholes in Matlab: Plottare le Sensitivities di un’opzione: In primo luogo impostare l'intervallo di prezzo delle opzioni, e impostare il periodo ad un anno divisi in metà mesi ed espresso in frazioni di anno: range = 10:70; span = length(range); j = 1:0.5:12; newj = j(ones(span,1),:)'/12; 73
  74. 74. Financial Toolbox : Black-Scholes in Matlab: Plottare le Sensitivities di un’opzione: Per ogni periodo di tempo creare un vettore di prezzi dal 10 al 70 e una matrice : jspan = ones(length(j),1); newrange = range(jspan,:); pad = ones(size(newj)); richiamiamo le funzioni di sensistivity Gamma e Delta della Toolbox . Il prezzo di esercizio è di $ 40, il tasso di interesse privo di rischio è del 10%, e la volatilità è 0,35 per tutti i prezzi e periodi. Gamma è l'asse z, Delta è il colore. zval = blsgamma(newrange, 40*pad, 0.1*pad, newj, 0.35*pad); color = blsdelta(newrange, 40*pad, 0.1*pad, newj, 0.35*pad); 74
  75. 75. Financial Toolbox : Black-Scholes in Matlab: Plottare le Sensitivities di un’opzione: Plottiamo la superficie come una rete (mesh) , aggiungendo le etichette degli assi e un titolo. Gli assi vanno da 10 a 70, da 1 a 12, e più e meno infinito. mesh(range, j, zval, color); xlabel('Stock Price ($)'); ylabel('Time (months)'); zlabel('Gamma'); title('Call Option Sensitivity Measures'); axis([10 70 1 12 -inf inf]); 75
  76. 76. Financial Toolbox : Black-Scholes in Matlab: Plottare le Sensitivities di un’opzione: Infine aggiungiamo una box attorno alla figura, denotiamo tutti i colori con un barra e etichettiamo lal colorbar: set(gca, 'box', 'on'); colorbar('horiz'); a = findobj(gcf, 'type', 'axes'); set(get(a(2), 'xlabel'), 'string', 'Delta'); 76
  77. 77. Financial Toolbox : Black-Scholes in Matlab: Plottare le Sensitivities di un’opzione: 77
  78. 78. Financial Toolbox : Il modello Black (1976) Opzioni su Futures e Forward La sfida nel pricing di opzioni su commodity (e su futures su Commodities ) è la non-casualità nell'evoluzione di molti prezzi delle materie prime. Per esempio, il prezzo spot di un prodotto agricolo in genere tende a salire prima di un raccolto e scendere successivamente alla raccolta. Il gas naturale tende ad essere più costosi durante i mesi invernali rispetto a mesi estivi. A causa di tale non-casualità, molti prezzi Spot su Commodities non possono essere modellati con un moto browniano geometrico, e il modello Black-Scholes-Merton (1973) per le opzioni su azioni non è applicabile. 78
  79. 79. Financial Toolbox : Il modello Black (1976) Nel 1976 , Fischer Black ha pubblicato un Paper per affrontare questo problema . La sua soluzione era quella di modellare i prezzi a termine in contrasto con i prezzi a pronti . I prezzi a termine non presentano la stessa non- casualità dei prezzi spot . Si consideri un prezzo a termine per la consegna subito dopo il raccolto di un prodotto agricolo . Prima del raccolto, il prezzo spot può essere elevato , per effetto di una scarsità stimata del raccolto , ma il prezzo a termine non sarà alto . 79
  80. 80. Financial Toolbox : Il modello Black (1976) Siccome il prezzo Forward è il prezzo per la consegna dopo il raccolto , sarà relativamente basso in previsione di un calo dei prezzi dopo il raccolto . Quindi, non essendo ragionevole modellare il prezzo a pronti con un moto browniano , può essere ragionevole modellare il prezzo Forward con tale modello. La formula di valutazione delle opzioni di Black riflette questa soluzione , modellando un prezzo a termine come un prezzo spot . Il modello è quindi ampiamente utilizzato per la modellazione di opzioni europee su prodotti fisici , contratti a termine o futures . Viene anche utilizzato anche per prezzare Interest Rate Cap e Floors . 80
  81. 81. Financial Toolbox : Il modello Black (1976) Le formule per il pricing di una Call e di una Put sono quindi: con: 81
  82. 82. Financial Toolbox : Il modello Black (1976) Dove: log denota il logaritmo naturale f = l’attuale prezzo del Forward sottostante . x = lo strike price r = il tasso risk-free continuosly compounded t = il tempo ad Expiry dell’opzione espresso in anni σ = la volatilità implicita del prezzo forward sottostante Φ =la funzione di distribuzione cumulativa della Normale Standard 82
  83. 83. Financial Toolbox : Il modello Black (1976) Le Greche per una Call: 83
  84. 84. Financial Toolbox : Il modello Black (1976) Le Greche per una Put: 84
  85. 85. Financial Toolbox : Il modello Black (1976) MATLAB ha una funzione per prezzare opzioni Call e Put Europee usando le Formule relative al modello Black (1976): Sintassi: Definiamo gli imputs , che sono sempre i soliti : Price= 90; Strike=100; Rate=0.05; Time=5/12; Volatility=0.08; [Call, Put] = blkprice( rice, Strike, Rate, Time, Volatility) 85
  86. 86. Financial Toolbox : Il modello Black (1976) MATLAB ha un’altra funzione per calcolare la volatilità implicita sempre relativa al modello Black (1976): Sintassi: Definiamo gli imputs , che in questo caso saranno : Price= 90; Strike=100; Rate=0.05; Time=5/12; Value= 0.0362; Limit= 10; % upper bound of the implied volatility Tollerance=1e-6 % Implied volatility termination tolerance; Class= {‘Call’}; % Option class Volatility = blkimpv (Price, Strike, Rate, Time, Value, Limit, Tolerance, Class) 86
  87. 87. Financial Toolbox : Il modello Black (1976) MATLAB non ha funzioni nelle Toolbox per calcolare direttamente le Greche del modello Black (1976). E’ tuttavia abbastanza facile creare uno Script che calcoli:      Delta Gamma Vega Theta Rho Usando le funzioni della Statistic Toolbox relative alla funzione di distribuzione cumulativa della Normale Standard. Da tale calcolo è poi possibile calcolare portafogli GreeksNeutral . 87
  88. 88. Financial Toolbox : Metodi Monte Carlo : L'integrale definito di una funzione è un numero, e il calcolo di tale numero è un problema deterministico che non coinvolge la casualità. Tuttavia, possiamo trasportare il problema in un contesto stocastico interpretando l'integrale come valore atteso. Consideriamo un integrale sul intervallo unitario [0,1]: Possiamo pensare a questo integrale come il valore atteso E [g (U)], dove U è una variabile casuale uniforme sull'intervallo (0, 1). Possiamo stimare il valore atteso (un numero) da una media del campione (una variabile casuale). 88
  89. 89. Financial Toolbox : Metodi Monte Carlo : Quello che dobbiamo fare è generare una successione {Ui} di campioni casuali indipendenti dalla distribuzione uniforme e quindi valutare la media del campione: La legge dei grandi numeri implica che, con probabilità = 1 : Il campionamento casuale, che è da dove "Monte Carlo" deriva, in realtà non è possibile con un computer, ma siamo in grado di generare una sequenza pseudo-casuale di numeri utilizzando generatori forniti dalla maggior parte dei linguaggi e ambienti di programmazione. 89
  90. 90. Financial Toolbox : Metodi Monte Carlo : La simulazione Monte Carlo è uno strumento importante nella finanza computazionale: può essere utilizzato per valutare le regole di gestione del portafoglio, per prezzare le opzioni , per simulare strategie di copertura, estimare il Value at Risk. I suoi principali vantaggi sono la relativa facilità di utilizzo, e flessibilità. Può gestire problematiche come volatilità stocastica e molti complicate caratteristiche delle opzioni esotiche e si presta a trattare problemi di elevate dimensioni, dove gli alberi e l’impostazione PDE non possono essere applicati. 90
  91. 91. Financial Toolbox : : Metodi Monte Carlo : Il potenziale svantaggio di Monte Carlo simulazione è il suo carico computazionale. Un rilevante numero di repliche (10.000 , 100.000, 1.000.000) è necessario per perfezionare l'intervallo di confidenza delle stime ci interessano. Il problema può essere parzialmente risolto con tecniche di riduzione della varianza o ricorrendo a sequenze a bassa discrepanza. (generazione delle sequenze numeriche) . Il punto di partenza nell’applicazione delle simulazioni Monte Carlo è la generazione campione del percorso, data una equazione differenziale stocastica che descrive la dinamiche di un prezzo (o di un tasso di interesse). 91
  92. 92. Financial Toolbox : Metodi Monte Carlo : Il punto di partenza per l'applicazione di metodi Monte Carlo per prezzare un’opzione è la generazione di percorsi campione del titolo sottostante. Nelle opzioni Vanilla , non c'è bisogno di generazione del percorso, come abbiamo in precedenza. E’ rilevante solo il prezzo del titolo sottostante alla scadenza. Se la opzione è dipendente dal percorso, abbiamo bisogno l'intero percorso o, almeno, una sequenza di valori in istanti di tempo. Col moto browniano geometrico, siamo di fronte ad un caso fortunato. Infatti, abbiamo «solo» due potenziali fonti di errori nella generazione del percorso:   errori nel campionamento errori di discretizzazione 92
  93. 93. Financial Toolbox : Metodi Monte Carlo : L’errore di campionamento è dovuto alla natura casuale dei metodi Monte Carlo, e può essere mitigato utilizzando strategie di riduzione della varianza (vedi bibliografia) . Per capire cos’è l’errore di discretizzazione, consideriamo come possiamo discretizzare un tipico modello in tempo continuo , cioè l’equazione differenziale stocastica di Ito: Usando l’approccio più semplice di discretizzazione, noto come schema di Eulero , si ottiene il seguente modello a tempo discreto: dove delta t è il passo di discretizzazione e epsilon è una variabile Normale (0,1) 93
  94. 94. Financial Toolbox : Metodi Monte Carlo : Dobbiamo comunque tenere in conto che l'errore dovuto alla discretizzazione può anche cambiare le distribuzioni di probabilità caratterizzante la soluzione. Per esempio, prendere in considerazione il modello di moto browniano geometrico : Lo schema di Eurlero diventa: Questo è più semplice da implementare. La distribuzione marginale di ogni valore Si è normale, invece che lognormale. 94
  95. 95. Financial Toolbox : Metodi Monte Carlo : Un codice semplice per generare percorsi campione dei prezzi delle attività che seguono un moto browniano geometrico è : function SPaths=AssetPaths(SO,mu,sigma,T,NSteps,NRepl) SPaths = zeros(NRep1, l+NSteps); SPaths(:,l) = SO; dt = T/NSteps; nudt = (mu-0.5*sigma-2)*dt; sidt = sigma*sqrt(dt) ; for i=l:NRepl for j=1: NSteps End End 95
  96. 96. Financial Toolbox : Metodi Monte Carlo : La funzione «AssetPaths» produce una matrice di percorsi campione , in cui le repliche sono memorizzati riga per riga e le colonne corrispondono ai periodi di tempo. Dobbiamo fornire la funzione con il prezzo iniziale SO, il mu (drift), la volatilità sigma, il tempo T (giorni),il numero di passi temporali NSteps, e il numero di repliiche Nrepl. 96
  97. 97. Financial Toolbox : Metodi Monte Carlo : Applicando il teorema di Feyman-Kac, alle PDE di Black-Scholes , possiamo dire che il prezzo di una opzione di stile europeo è il valore atteso, sotto la misura risk-neutral, del payoff scontato delll'opzione: dove Ft è il payoff alla scadenza T ed è assunto un tasso privo di rischio r costante. La notazione E [-] viene usato per sottolineare che l’aspettativa è preso rispetto alla misura di valutazione risk-neutral. Se assumiamo un moto geometrico browniano , questo significa che il drift mu per il prezzo attività deve essere sostituito dal tasso r privo di rischio . A seconda della natura dell'opzione a mano, potremmo aver bisogno di generare i percorsi completi di campionamento, o semplicemente il terminale prezzi delle attività. 97
  98. 98. Financial Toolbox : Metodi Monte Carlo : Un’opzione Call Vanilla richiede solo il campionamento del payoff : max {O, S (T) - K} dove S (T) è il prezzo del titolo sottostante alla scadenza e K è il prezzo di esercizio. Abbiamo visto che che possiamo facilmente ottenere questo risultato generando una variabile standard normale casuale N(0, 1): 98
  99. 99. Financial Toolbox : Metodi Monte Carlo : Vediamo una funzione MATLAB per prezzare un’opzione Call . I primi cinque parametri di input sono auto-esplicativi e sono quelli richiesti dal funzione «blsprice» per la Black-Scholes. L'ultimo parametro NRepl è il numero di repliche, cioè, campioni che vogliamo prendere. Possiamo verificare l'impatto di questo parametro facendo diverse prove. function Price = BlsMC1 (S0, K , r , T , sigma, NRepl) nuT = (r - 0.5*sigma^2)*T; siT = sigma * sqrt(T) ; DiscPayoff = exp(-r*T) *max(0, S0*exp(nuT+siT*randn(NRepl,1)) -K) ; Price = mean(DiscPayoff) ; 99
  100. 100. Financial Toolbox : Metodi Monte Carlo : Le opzioni americane si caratterizzano perché il l possessore ha il diritto di decidere se esercitare o meno l’esercizio in un qualsiasi momento durante la vita del contratto. Le opzioni americane possono essere sia di tipo call che di tipo put. A parità di altre caratteristiche, le opzioni americane hanno sempre un valore superiore rispetto alle opzioni europee poiché la facoltà posseduta dall'acquirente dell'opzione risulta più estesa in termini temporali. Non è quasi mai conveniente esercitare un'opzione americana di tipo call prima della sua naturale scadenza poichè mantenendola in vita il suo possessore gode di due benefici: posticipa il giorno in cui dovrà versare il prezzo di esercizio e in più conserva l'elemento assicurativo caratteristico di ogni opzione L'unica eccezione è rappresentata dall'opzione americana scritta su un titolo che paga dividendi. Nel caso di un'opzione americana di tipo call, in prossimità della data di stacco del dividendo, se il valore del dividendo supera una determinata soglia, il possessore dell'opzione potrà trovare conveniente esercitare l'opzione, entrare in possesso del titolo sottostante e incassare anche il dividendo 100
  101. 101. Financial Toolbox : Finite Difference : Vediamo ora alcuni esempi di come il quadro delle equazioni differenziali parziali ( PDE ) può essere sfruttato nell’ option pricing . L' idea è quella di applicare i metodi alle differenze per risolvere la PDE di Black-Scholes . Cominciamo richiamando gli schemi approssimazione delle derivate e facendo notare come condizioni di contorno appropriate possono essere istituito al fine di modellare una specifica opzione Successivamente vediamo come un metodo completamente implicito può superare il problema dell'instabilità numerica 101
  102. 102. Financial Toolbox : Finite Difference : Essendo sempre nel mondo di Black-Scholes, si assume che il prezzo di un’attività segua un processo del tipo : Usiamo il lemma di Ito e otteniamo un processo stocastico: dove V è il prezzo dell’opzione, S è il prezzo dell’attività sottostante. 102
  103. 103. Financial Toolbox : Finite Difference : Abbiamo un portafoglio: Facciamo Delta–Hedging per eliminare la fonte di incertezza del sottostante. Π è un portafoglio istantaneo privo di rischio e come tale deve avere un rendimento, che coincide con il rendimento privo di rischio. dove r è il tasso privo di rischio. Assumiamo che r è una costante. 103
  104. 104. Financial Toolbox : Finite Difference : Si ottiene l'equazione Black-Scholes, che è: Lo utilizzeremo come modello nelle differenze finite. Metodi numerici: differenze finite Le equazioni differenziali che possono essere risolti da una formula esplicita sono poche. Di conseguenza, lo sviluppo di schemi di approssimazione numerica accurati è essenziale per estrarre informazioni quantitative. Con l'aiuto di metodi numerici possiamo utilizzare i modelli che sono validi, ma che non hanno una soluzione esplicita . 104
  105. 105. Financial Toolbox : Finite Difference : Il metodo delle differenze finite può essere utilizzato per ottenere approssimazioni di equazioni differenziali che non hanno una soluzione analitica. Queste approssimazioni sono ottenuti sostituendo le derivate nell'equazione con adeguate formule di derivazione numerica. Per applicare il metodo delle differenze finite, creiamo una griglia: . 105
  106. 106. Financial Toolbox : Finite Difference : La griglia tipicamente ha lo stesso numero di step temporali e nell’asse dell’attività e passi . La griglia è costituita da punti ai valori dell’attività: E del tempo: Indichiamo il valore dell'opzione in ciascun punto della griglia come: con i che rappresenta è la variabile dell’asset, e k che marca la variabile tempo. 106
  107. 107. Financial Toolbox : Finite Difference : Cercando il valore V della opzione in qualsiasi punto nel tempo marceremo ritroso (metodo implicito) a partire dalla scadenza, perché conosciamo il payoff , che è una funzione del prezzo del sottostante. . 107
  108. 108. Financial Toolbox : Finite Difference : Come anticipato, useremo l’equazione differenziale parziale di Black-Scholes. Abbiamo anche detto che, in poche parole, il metodo consiste nel sostituire le derivate parziali con le approssimazioni utilizzando i punti della griglia e l'equazione di Black-Scholes. Andremo ad approssimare θ con la differenza forward : e ad approssimare Δ con la differenza centrale: 108
  109. 109. Financial Toolbox : Finite Difference : Esiste ovviamente un errore di approssimazione, come in tutti i metodi numerici, discretizzando equazioni parziali continue. Applichiamo una condizioni di contorno da applicare a S0, che elimina drift e diffusion : e al massimo livello di S, diciamo all'infinito: . 109
  110. 110. Financial Toolbox : Analisi delle Serie Storiche Prendiamo ad esempio l’indice S&P 500, publicato dal 1957. E’ possibile scaricare le serie storiche direttamente in Matlab da diversi siti gratuitamente, noi useremo Yahoo Finance. Lo script seguente dimostra come i prezzi giornalieri dal 2005 ad oggi possano essere scaricati da Yahoo, dove il simbolo è ^gspc . price=hist_stock_data('01011990','13092013','^gspc'); price=[price(1).AdjClose(end:-1:1)] plot (price) Possiamo usare sia le chiusure che le chiusure aggiustate, a seconda di quello che dobbiamo fare. Le chiusure aggiustate tengono conto degli split delle azioni, dei buyback. 110
  111. 111. Financial Toolbox : Analisi delle Serie Storiche A questo punto plottiamo ed esploriamo alcune statistiche della serie storica dei rendimenti: %% Returns y= diff(log(price(end:-1:1))) plot (y) %% media mean(y) %% Deviazione standards std (y) %% minimo min(y) %% massimo max(y) %% Skewness skewness(y) %% Kurtosis kurtosis(y) 111
  112. 112. Financial Toolbox : Analisi delle Serie Storiche Considerazioni sui rendimenti In finanza quantitativa raramente siamo interessati ai prezzi, molto più spesso siamo interessati ai rendimenti, intesi come variazione del prezzo nel tempo. Ricerche estese sulle proprietà dei rendimenti finanziari hanno dimostrato che essi esibiscono le seguenti proprietà statistiche.   Clusters di Volatilità Fat Tails La prima proprietà, si riferisce all’osservazione che la grandezza della volatilità dei rendimenti finanziari tende a raggrupparsi in clusters, quindi osserviamo diversi giorni di alta volatilità e viceversa. 112
  113. 113. Financial Toolbox : Analisi delle Serie Storiche Volatilità La misura più comune dell’incertezza dei mercati è la volatilità, la deviazione standard dei rendimenti. La sola osservazione di un baso livello di volatilità non implica che il rischio sia basso, poiché la volatilità potrebbe essere bassa anche quando abbiamo fat tails. Volatility clusters: In genere, si usano due concetti di volatilità: condizionata e incondizionata. La prima è la volatilità in un periodo di tempo definito, mente la seconda è la volatilità in un periodo non definito. 113
  114. 114. Financial Toolbox : Analisi delle Serie Storiche Volatility clusters: Osservando la volatilità, è evidente che cambia nel tempo. In più, dato che ci sono apparentemente dei cicli, la volatilità è parzialmente prevedibile. Questo fenomeno è detto «volatility clustering». Quasi tutti i rendimenti finanziari esibiscono questo fenomeno. Per esempio, alla metà degli anni ‘90, la volatilità sui mercati azionari era bassa, come in questo periodo, metre all’inizio e alla fine dei ‘90 era molto più alta. Funzione di Autocorrelazione : Un metodo grafico standard per esplorare la prevedibilità dei dati statistici è la funzione di auto-correlazione (ACF) 114
  115. 115. Financial Toolbox : Analisi delle Serie Storiche Modelli di Volatilita Una prima stima della volatilità può essere ottenuta tramite l’uso di medie mobili: Non si tratta di una buona stima, perché dà pesi uguali Per esempio, se abbiamo un grande balzo , questo non farà aumentare la volatilità finché non entra nel campione. Questo è detto effetto spurio (o secondario) 115
  116. 116. Financial Toolbox : Analisi delle Serie Storiche Modelli di Volatilita Se diamo maggior peso ai dati più recenti possiamo sperare di ottenere una stima più realistica per la volatilità. Invece di ponderazione ogni rendimento con 1/m, usiamo pesi alpha-i in cui alpha-i varia per dare ai rendimenti più recenti maggior peso: Con: 116
  117. 117. Financial Toolbox : Analisi delle Serie Storiche Modelli di Volatilita Se esaminiamo i dati, si potrebbe sostenere che la volatilità tende A variare attorno ad una media a lungo termine (sigma medio). Quindi, se inseriamo questo fattore nel nostro modello allora potremmo aggiornare il modello : Dove γ è il peso assegnato alla volatilità di lungo periodo. Anche in questo caso la somma dei pesi è uno: 117
  118. 118. Financial Toolbox : Analisi delle Serie Storiche Modelli di Volatilita Questo è noto come : Modello Auto-regressivo Eteroschedastico Condizionale o modello ARCH (m). Se definiamo ω = γ *(sigma medio quadro) allora: 118
  119. 119. Financial Toolbox : Analisi delle Serie Storiche Modelli di Volatilita GARCH Se prendiamo i metodi precedenti, li generalizziamo eaggiungiamo una volatilità a lungo termine otterremo lo schema GARCH (Generalized Autoregressive Conditional Heteroskedasticity) . 119
  120. 120. Financial Toolbox : Analisi delle Serie Storiche Modelli di Volatilita GARCH L’equazione del modello ha alcuni vincoli : 120
  121. 121. Financial Toolbox : Analisi delle Serie Storiche Garch Come possiamo trovare i valori di α , β e ω ? La stima di massima verosimiglianza (MLE) è un metodo statistico per “fittare” i dati rispetto ad un modello (analisi dei dati). Ci poniamo la domanda: "Dato l'insieme di dati e un modello, quali sono i parametri del modello che più probabilmente ci daranno questi dati? " Nota: Quando si utilizza il modello MLE dobbiamo prima assumere una distribuzione, un modello parametrico, dopo di che si può cercare di determinare i parametri del modello. In genere, nell’analisi dei rendimenti finanziari si usano le distriibuzioni Normale e T-student. 121
  122. 122. Financial Toolbox : Analisi delle Serie Storiche Garch La Financial Toolbox in MATLAB offre le seguenti funzioni per familiarizzare coi modelli GARCH: ugarch (stima dei parametri) ugrachlif (funzione obiettivo di log-likelihood ) ugarchpredict (previsione della volatiltà condizionale) ugarchsim (simula il processo GARCH) La GARCH Toolbox offre un ambiente più completo e integrato che include anche : previsione della volatilità simulazioni Monte Carlo, testing di ipotesi e analisi grafica. 122
  123. 123. Financial Toolbox : Analisi delle Serie Storiche Funzione di Autocorrelazione : L’ACF misura quanto i rendimenti su un giorno sono correlati coi rendimenti del giorno precedente. Se tali correlazioni sono statisticamente rilevanti, abbiamo forti prove di prevedibilità. Vediamo come esplorare l’ACF su Apple, per esempio: Scarichiamo i dati: %% Download dati price=hist_stock_data('01012006','12062013','aapl'); price=[price(1).AdjClose(end:-1:1)] [Returns, Daily]=price2ret(price) 123
  124. 124. Financial Toolbox : Analisi delle Serie Storiche Funzione di Autocorrelazione : Calcoliamo e plottiamo la ACF e PACF sui rendimenti di Apple: %% ACF e PACF figure subplot(2,1,1) autocorr(Returns) title('ACF of returns') subplot(2,1,2) parcorr(Returns) title('PACF of the returns') 124
  125. 125. Financial Toolbox : Analisi delle Serie Storiche Funzione di Autocorrelazione : Calcoliamo e plottiamo la ACF e PACF sul quadrato dei rendimenti di Apple: %% ACF e PACF of the Squared Returns figure subplot(2,1,1) autocorr(Returns.^2) title('ACF of returns') subplot(2,1,2) parcorr(Returns.^2) title('PACF of the returns') 125
  126. 126. Financial Toolbox : Analisi delle Serie Storiche Funzione di Autocorrelazione : Sempre, anche cambiando titolo o periodo, l’autocorrelazione del quadrato dei rendimenti, che come vedremo è una proxy della volatilità usata in molti altri studi, è molto più alta. 126
  127. 127. Financial Toolbox : Analisi delle Serie Storiche Non-Normalità e Fat Tails : Molte applicazioni, come abbiamo visto, assumono che i rendimenti siano distribuiti normalmente. Nell’esempio dell’S&P 500, la caduta più rilevante è stata del 23%. Se i rendimenti fossero davvero distribuiti normalmente , alora la probabilità di un crash giornaliero di tale portata sarebbe tale da accadere una volta in 10^95 anni. 127
  128. 128. Financial Toolbox : Analisi delle Serie Storiche Non-Normalità e Fat Tails : Molte ci sono due approcci principali per identificare ed analizzare le Fat Tails nei rendimenti finanziari: test statistici e metodi grafici. I test statistici confrontano i rendimenti osservati con una distribuzione di probabilità base, tipicamente la Normale. I metodi grafici mettono in relazione i rendimenti con in valori previsti da qualche distribuzione , spesso sempre la Normale. Test Statistici: Una variabile casuale si dice abbia FatTails se esibisce più valori estremi rispetto ad una variabile casuale distribuita normalmente, che abbia la stessa media e varianza. Una proprietà di base delle osservazioni distribuite normalmente è che sono completamente descritte dalla loro media e varianza (i momenti primo e secondo). Questo implica che la Skewness e la Kurtosis siano le stesse per ogni variabile distribuita normalmente (pari rispettivamente a zero e a tre) . 128
  129. 129. Financial Toolbox : Analisi delle Serie Storiche Metodi grafici: Esistono diversi metodi grafici per identificare la presenza di code. Probabilmente quello più usato è il QQ Plot (Quantilequantile Plot) . Viene usato per vedere se un campione di osservazioni ha una particolare distribuzione. Il QQ Plot confronta i quantili del campione di dati con i quantili della distribuzione di riferimento. In MATLAB il QQ Plot è disponibile sono la Normale: % QQPlot Qqplot(y) 129
  130. 130. Financial Toolbox : Analisi delle Serie Storiche Metodi grafici: Applicando sempre l’esempio dell’S&P500, vediamo evidente la presenza di Fat Tails. 130
  131. 131. Financial Toolbox : Analisi delle Serie Storiche Metodi grafici: Esistono diversi metodi grafici per identificare la presenza di code. Probabilmente quello più usato è il QQ Plot (Quantilequantile Plot) . Viene usato per vedere se un campione di osservazioni ha una particolare distribuzione. Il QQ Plot confronta i quantili del campione di dati con i quantili della distribuzione di riferimento. In MATLAB il QQ Plot è disponibile sono la Normale: % QQPlot Qqplot(y) 131
  132. 132. Financial Toolbox : Analisi delle Serie Storiche Metodi grafici: Spesso comunque i lrendimenti delle attività finanziarie, hanno “fat tails” (kurtosis >=3) e possono essere asimmetriche (skewness) quindi non hanno una distribuzione normale. 132
  133. 133. Financial Toolbox : Analisi delle Serie Storiche Granger Causality: Il test di causalità Granger è un test di un’ipotesi statistica per determinare se una serie storica è utile per prevederne un’altra. Di solito, la regressione lineare riflette "semplici" correlazioni, ma Granger, che ha vinto un premio Nobel in Economia, ha sostenuto che la causalità in economia si può ravvisare una sorta di test. Una serie storica X si dice che causa , nel senso di Granger, Y se si può dimostrare, in genere attraverso una serie di t-test e test F su valori ritardati di X , che tali valori X forniscono informazioni statisticamente significativo sui valori futuri di Y. Vediamo alcuni utilizzi pratici in MATLAB 133
  134. 134. Financial Toolbox : Analisi delle Serie Storiche Granger Causality: Il test di causalità Granger è un test di un’ipotesi statistica per determinare se una serie storica è utile per prevederne un’altra. Di solito, la regressione lineare riflette "semplici" correlazioni, ma Granger, che ha vinto un premio Nobel in Economia, ha sostenuto che la causalità in economia si può ravvisare una sorta di test. Una serie storica X si dice che causa , nel senso di Granger, Y se si può dimostrare, in genere attraverso una serie di t-test e test F su valori ritardati di X , che tali valori X forniscono informazioni statisticamente significativo sui valori futuri di Y. Vediamo alcuni utilizzi pratici in MATLAB 134
  135. 135. Financial Toolbox : Analisi delle Serie Storiche Multivariate Test di Stazionarietà: La Stazionarietà in senso stretto è la forma più forte di stazionarietà. Ciò significa che la distribuzione statistica congiunta di qualsiasi serie storica non dipende mai dal tempo. Così, la media, la varianza e ogni momento di qualsiasi serie storica è lo stesso in tutti i diversi periodi o finestre temporali random. Per l’uso pratico, questa definizione così rigorosa di stazionarietà è troppo rigida. Quindi, la seguente definizione più debole è spesso usato preferibilmente. 135
  136. 136. Financial Toolbox : Analisi delle Serie Storiche Multivariate Test di Stazionarietà: Stazionarietà di ordine 2 Per l'uso pratico spesso consideriamo serie storiche che hanno:     _ una media costante     _ una varianza costante Tale serie temporali si denotano come stazionarie di secondo ordine o stazionarie di ordine 2. D’ora in poi, ogni volta che usiamo il termine stazionarietà, intendiamo stazionarietà del secondo ordine. Il test di stazionarietà probabilmente maggiormente usato è il Dickey-Fuller test di radice unitaria. Vediamo esempi pratici in MATLAB. 136
  137. 137. Financial Toolbox : Analisi delle Serie Storiche Multivariate Cointegrazione: La Cointegrazione è una proprietà statistica delle variabili serie storica. Due o più serie storiche sono cointegrate se condividono un drift stocastico comune. Se due o più serie storiche sono integrate singolarmente (nonstazionarie) , ma una loro combinazione lineare ha un ordine inferiore di integrazione (stazionarie), allora si dice che le serie siano cointegrate. Per esempio, ipotizziamo che un indice di mercato azionario e il prezzo dei suoi contratti futures si muovano attraverso il tempo, ognuno seguendo un random walk 137
  138. 138. Financial Toolbox : Analisi delle Serie Storiche Multivariate Cointegrazione: Possiamo allora testare l'ipotesi che ci sia una connessione statisticamente significativa (cointegrazione) tra il prezzo del future e il prezzo spot potrebbe utilizzando un test per l'esistenza di una combinazione cointegrata (stazionaria) delle due serie. Se tale combinazione ha un basso grado di integrazione - in particolare se si tratta di I (0), questo può significare un rapporto di equilibrio tra la serie originale, che si dice siano cointegrate. 138
  139. 139. Financial Toolbox : Analisi delle Serie Storiche Multivariate Cointegrazione: 139
  140. 140. Financial Toolbox : Analisi delle Serie Storiche Multivariate Vector Autoregression Models : In econometria, un modello VAR, o Vector Autoregression , è un sistema di equazioni simultanee nella forma: I modelli VAR sono stati introdotti da Christopher Sims in uno storico articolo pubblicato su Econometrica nel 1980, che proponeva una critica dei modelli strutturali di equazioni simultanee, allora il principale strumento di analisi econometria nell'ambito della macroeconomia. In particolare, i modelli VAR risultano nel complesso più semplici rispetto ai modelli strutturali, e la loro performance in termini di capacità previsiva di variabili macroeconomiche appare migliore 140
  141. 141. Financial Toolbox : Analisi delle Serie Storiche Multivariate Vector Error Regression Models : Un modello di correzione degli errori è un sistema dinamico che ha la caratteristica di immettere deviazione dello stato attuale della sua relazione di lungo periodo nella sua dinamica di breve periodo. I modelli di correzione degli errori (ECM) sono una categoria di più modelli di serie storiche che stimano direttamente la velocità con cui una variabile dipendente-Y-ritorna in equilibrio dopo un cambiamento (shock) di una variabile-X indipendenti.I ECM sono un approccio theory-driven utile per stimare a breve termine gli effetti a lungo termine di una serie di tempo su un altro. 141
  142. 142. PROBLEMI DI OTTIMIZZAZIONE 142
  143. 143. PROBLEMI DI OTTIMIZZAZIONE 143
  144. 144. PROBLEMI DI OTTIMIZZAZIONE 144
  145. 145. PROBLEMI DI OTTIMIZZAZIONE 145
  146. 146. PROBLEMI DI OTTIMIZZAZIONE OPTIMIZATION TOOLBOX L’ Optimization Toolbox fornisce funzioni per la ricerca di parametri che minimizzano o massimizzano gli obiettivi, oltre a soddisfare i vincoli. L’Optimization Toolobox comprende risolutori per la programmazione lineare, programmazione quadratica, ottimizzazione non lineare, e minimi quadrati non lineari. È possibile utilizzare questi risolutori per trovare le soluzioni ottimali ai problemi continui e discreti e incorporare metodi di ottimizzazione in algoritmi e applicazioni. 146
  147. 147. PROBLEMI DI OTTIMIZZAZIONE OPTIMIZATION TOOLBOX Funzioni chiave: • Ottimizzazione non lineare e multi-obiettivo • Risolutori di minimi quadrati non lineari, fitting dei dati • Programmazione quadratica e lineare • Applicazioni d’ottimizzazione per definire e risolvere problemi di ottimizzazione • Accelerazione del vincolati solutori non lineari con Parallel Computing 147
  148. 148. PROBLEMI DI OTTIMIZZAZIONE I metodi di ottimizzazione svolgono un ruolo importante nella finanza. Tali modelli di ottimizzazione possono essere utilizzati nella gestione del portafoglio, in tal caso essi sono utilizzati come strumento di supporto alle decisioni. A volte, i metodi di ottimizzazione sono alquanto più mirati e vengono utilizzati, ad esempio, per risolvere problemi di taratura del modello. Occuparsi in profondità tutti i metodi di ottimizzazione che potrebbe essere utile per risolvere i problemi in finanza richiederebbe moltissimo tempo. Qui noi vogliamo solo fornire un minimo di backgroud necessario per cogliere ciò che MATLAB offre nell’Optimization Toolbox . In particolare, la consapevolezza delle differenze nel momento in cui si sceglie uno tra i vari metodi che sono disponibili per fronteggiare lo stesso tipo di problema. 148
  149. 149. PROBLEMI DI OTTIMIZZAZIONE Per semplificare, ora consideriamo solo i problemi di ottimizzazione di base. In particolare, si assume che essi siano convessi e deterministici. Il grafico di una funzione convessa si trova sempre al di sotto della corda sottesa a due suoi punti arbitrari. In sostanza, la convessità garantisce un minimo locale è anche globale, e permette di trovare facili caratterizzazioni di soluzioni ottimali. Inoltre, se e strettamente convessa, allora esiste al massimo un punto di minimo globale. 149
  150. 150. PROBLEMI DI OTTIMIZZAZIONE Quando i dati sono incerti, dovremmo ricorrere ai modelli di ottimizzazione stocastica, che è piuttosto importante nel contesto delle decisioni dinamiche nel tempo. Ci sono due approcci di base per far fronte con il processo decisionale dinamico in condizioni di incertezza:   la programmazione dinamica la programmazione stocastica In realtà, questi due approcci hanno molto in comune, ma a quanto pare, il primo è abbastanza comune in economia, mentre il secondo uno è più apprezzato all'interno dell’ ingegneria. 150
  151. 151. PROBLEMI DI OTTIMIZZAZIONE Infatti, i modelli di ottimizzazione possono essere classificati lungo più direzioni, per esempio problemi vincolati e non vincolati. (costrains) . I metodi di ottimizzazione non vincolata si differenziano per le loro esigenze: molti sono gradiente-based, e richiedono la capacità di calcolare o approssimare funzioni derivate, altri metodi sono privo di strumenti derivati​​, nel senso che sono solo basate solo sulla valutazione di funzione. Per l’ottimizzazione vincolata introduciamo concetti fondamentali come le condizioni di Kuhn-Tucker e teoria della dualità. Un caso specifico di ottimizzazione vincolata è la programmazione lineare. Molto spesso, problemi non banali possono essere espressi come modelli di programmazione lineare e la capacità di risolvere enormi problemi di ottimizzazione in modo efficiente rende la programmazione lineare uno strumento fondamentale 151
  152. 152. PROBLEMI DI OTTIMIZZAZIONE Classificazione : C'è una grande varietà di modelli di ottimizzazione si possono incontrare in finanza e che possono essere coperti da un altrettanto vasta gamma di metodi. Problemi di dimensione finita e infinita Ci occupiamo ora di problemi la cui forma astratta è : La funzione obiettivo f è una funzione scalare che quantifica l'idoneità di una soluzione x, che è un vettore di variabili di decisione e deve appartenere a un insieme S, che è un sottoinsieme dell'insieme di vettori con n componenti reali. 152
  153. 153. PROBLEMI DI OTTIMIZZAZIONE Classificazione : Poiché la soluzione è espresso da un vettore di dimensione finita, si parla di un problema di dimensione finita. Non vi è alcuna perdita di generalità nel considerare solo problemi di minimo, dal momento che un problema di massimizzazione possono essere trasformati in un problema di minimizzazione semplicemente cambiando il segno dell'obiettivo: In effetti, tutte le funzioni di MATLAB nell’Optimization Toolbox assumono un problema di minimizzazione. 153
  154. 154. PROBLEMI DI OTTIMIZZAZIONE Classificazione : La risoluzione di un tale problema di ottimizzazione significa trovare un punto x* tale che : Il punto x * si dice che sia un ottimo globale. Né l'esistenza né la unicità di un ottimo globale dovrebbe essere dato per scontato. Per esempio, il problema potrebbe essere illimitato (unbounded). Oppure il problema potrebbe non essere risolvibile, cioè l’insieme S potrebbe essere vuoto. Infine la soluzione potrebbe non essere unica, quando la condizione di cui sopra è soddisfatta da un insieme di ottimi alternativi. 154
  155. 155. PROBLEMI DI OTTIMIZZAZIONE Classificazione : ESEMPIO: Una funzione obiettivo tipica che dà origine a ottimi locali è una funzione polinomiale, c’è da ricordare che il comportamento oscillatorio dei polinomi di ordine alto è il motivo per cui non sono adatte all’interpolazione della funzione: Possiamo verificare questo con un semplice snapshot in MATLAB g = @(x) polyval( [ 1 -10.5 39 -59.5 301, x); xvet=1:0.05:4; plot(xvet,g(xvet)) 155
  156. 156. PROBLEMI DI OTTIMIZZAZIONE Classificazione : ESEMPIO: Qui sotto il grafico prodotto, da cui è chiaro che vi sono due minimi locali : 156
  157. 157. PROBLEMI DI OTTIMIZZAZIONE Classificazione : ESEMPIO: Una tipica funzione MATLAB per risolvere un problema di minimizzazione è «fminunc» , dove «unc» sta per «uncostrained» dal momento che non dobbiamo imporre alcun requisito particolare nella variabile decisionale. Questa funzione richiede un argomento che è il punto iniziale del processo di ricerca: [x,fval] = fminunc(g, 0) Possiamo cambiare punto di inizio: [x,fval] = fminunc(g, 5) 157
  158. 158. PROBLEMI DI OTTIMIZZAZIONE Classificazione : ESEMPIO: Si vede che , a seconda del punto di partenza, si ottiene il minimo globale o locale. Una situazione diversa si verifica nel caso seguente: f = @(x) polyval( [1 -8 22 -24 1] , x); xvet=0:0.05:4; plot (xvet , f (xvet) ) Il grafico evidenzia la presenza di due minimi globali. 158
  159. 159. PROBLEMI DI OTTIMIZZAZIONE Classificazione : Problemi Lineari e Non-Lineari Un problema di dimensione finita è chiamato un problema di programmazione lineare (LP) quando entrambi i vincoli e gli obiettivi sono espressi da funzioni lineari. La forma generale di un problema di programmazione lineare è: 159
  160. 160. PROBLEMI DI OTTIMIZZAZIONE Classificazione : Problemi Lineari e Non-Lineari Che può anche essere espresso in notazione matriciale: I problemi di programmazione lineare hanno due importanti caratteristiche:  sono sia problemi convessi che concavi.  un ottimo locale è anche un ottimo globale,e si trova sul confine della soluzione fattibile Si scopre che l'insieme ammissibile è un poliedro e che vi è una soluzione ottimale che corrisponde ad uno dei suoi vertici. 160
  161. 161. PROBLEMI DI OTTIMIZZAZIONE Classificazione : Problemi Lineari e Non-Lineari Esempio: Questo è un esempio di Problema Lineare: Se una delle due condizioni non è soddisfatta, cioè se la funzione obiettivo o di un vincolo è espressa da una funzione non lineare, abbiamo un problema di programmazione non lineare. 161
  162. 162. Analizzare Portafogli I gestori di portafogli concentrano i loro sforzi sul raggiungimento della migliore trade-off tra rischio e rendimento. Per i portafogli costruiti da una serie fissa di assets, il profilo rischio/rendimento varia con la composizione del portafoglio. Portafogli che massimizzano il redimento, dato il rischio, o, al contrario, minimizzare il rischio dato il rendimento dato, sono chiamati ottimali. I portafogli ottimali definiscono una linea del piano definito da rischio/rendimento chiamata la Frontiera Efficiente . 162
  163. 163. Analizzare Portafogli Un Portafoglio può anche dover soddisfare dei requisiti aggiuntivi, a parte quelli descritto prima. Per esempio, potremmo avere a che fare con diversi investitori che hanno diversi livelli di tolleranza al rischio. Ne consegue che la selezione del portafoglio adeguato per un particolare investitore è un processo piuttosto complicato. Per fare fronte a questo ed altri problemi, il gestore può coprire il rischio legato a un particolare portafoglio, muovendosi sempre lungo la frontiera efficiente , con investimenti di parte del capitale in attività prive di rischio. 163
  164. 164. Analizzare Portafogli La definizione della linea di allocazione del capitale, e la definizione di dove si trova il portafoglio finale lungo questa linea, in larga parte, è una funzione di: • Il profilo di rischio / rendimento di ciascuna asset • Il tasso privo di rischio • Il tasso di indebitamento • Il grado di avversione al rischio che caratterizza un investitore Le Toolboxes includono una serie di funzioni progettate per risolvere il problema di trovare il portafoglio che meglio soddisfa le esigenze degli investitori, considerando tutti i parametri. 164
  165. 165. Analizzare Portafogli Specifiche dei dati degli Assets Le funzioni di calcolo della frontiera efficiente richiedono informazioni su ciascuno di gli assets in portafoglio. Questi dati vengono inseriti nelle funzioni tramite due matrici: un vettore di rendimento atteso e una matrice di covarianza. Il vettore dei rendimenti attesi contiene il rendimento medio previsto per ogni asset nel portafoglio. La matrice di covarianza è una matrice quadrata che rappresenta le interrelazioni tra coppie di assets. Queste informazioni possono essere specificate direttamente oppure possono essere stimate una serie storica dei rendimenti degli assets con la funzione «ewstats» . 165
  166. 166. Analizzare Portafogli Esempio di Frontiera Efficiente Questo esempio calcola la frontiera efficiente di portafogli composti da tre attività diverse, utilizzando la funzione «frontcon» di MATLAB. Per visualizzare la frontiera efficiente curva con chiarezza, consideriamo 10 diversi portafogli equidistanti. Si supponga che il rendimento atteso per il primo titolo è del 10%, il secondo è del 20%, e il terzo è 15%. 166
  167. 167. Analizzare Portafogli Esempio di Frontiera Efficiente La covarianza è definita nella matrice ExpCovariance . ExpReturn = [0.1 0.2 0.15]; ExpCovariance = [0.005 -0.010 0.004 ; -0.010 0.040 -0.002 ; 0.004 -0.002 0.023]; NumPorts = 10; 167
  168. 168. Analizzare Portafogli Esempio di Frontiera Efficiente Dal momento che non ci sono vincoli, è possibile chiamare «frontcon» direttamente con i dati che già abbiamo. Se si chiama «frontcon» senza specificare alcun argomento di output,si ottiene un grafico che rappresenta la curva di frontiera efficiente: frontcon (ExpReturn, ExpCovariance, NumPorts); 168
  169. 169. Analizzare Portafogli Esempio di Frontiera Efficiente 169
  170. 170. Analizzare Portafogli Esempio di Frontiera Efficiente Se richiamiamo «frontcon» specificando gli argomenti di output , ci restituisce i vettori e matrici corrispondenti che rappresentano il rischio, il rendimento e i pesi per ciascuno dei 10 punti calcolati lungo la frontiera efficiente. I dati di uscita sono da leggere riga per riga. Il rischio di ogni portafoglio, il tasso di rendimento e i pesi associati sono identificati con le righe corrispondenti ai vettori e alla matrice. Ad esempio, si può vedere da questi risultati che il secondo portafoglio ha un rischio di 0.0445, un rendimento atteso del 13,16%, e le allocazioni di circa il 67% nella prima attività, il 30% nella seconda, e il 3% nel terza. 170
  171. 171. Analizzare Portafogli Esempio di Frontiera Efficiente 171
  172. 172. Analizzare Portafogli Selezione di Portafoglio e Avversione al Rischio Uno dei fattori da considerare nella scelta del portafoglio ottimale per un particolare investitore, è grado di avversione al rischio. Questo livello di avversione al rischio può essere specificato definendo la curva di indifferenza dell'investitore . Questa è costituita dall’insieme delle coppie di valori di rischio / rendimento che definiscono il trade-off dell’investitore tra rendimento e rischio attesi. La curva definisce l'incremento di rendimento necessario, per un particolare investitore, affinchè l’investitore accetti un determinato incremento del rischio Tipicamente i coefficienti che definiscono l’avversione al rischio sono compresi tra 2.0 e 4.0, con numeri più alti che rappresentano una minore tolleranza al rischio. 172
  173. 173. Analizzare Portafogli Selezione di Portafoglio e Avversione al Rischio L'equazione utilizzata per rappresentare l'avversione al rischio in MATLAB (mutuata dalla teoria economica) è : U = E(r) – 0.005*A*sig^2 dove: U è il valore d‘utilità E (r) è il rendimento atteso. A è l'indice di avversione dell’investitore sig è la deviazione standard. 173
  174. 174. Analizzare Portafogli Selezione di Portafoglio e Avversione al Rischio 174
  175. 175. Analizzare Portafogli Esempio di Portafoglio rischioso Calcoliamo ora un portafoglio rischioso ottimale sulla frontiera efficiente in base al tasso privo di rischio, il tasso debitore, e il grado di avversione al rischio dell'investitore. A tale scopo, utilizziamo la funzione «portalloc» di MATLAB. Prima di tutto, generiamo i dati della frontiera efficiente , per fare questo possiamo utilizzare sia la funzione «portopt» che la funzione «frontcon». In questo esempio utilizziamo «portopt» e gli stessi dati patrimoniali dell’esempio fatto in precedenza. 175
  176. 176. Analizzare Portafogli Esempio di Portafoglio rischioso ExpReturn = [0.1 0.2 0.15]; ExpCovariance = [0.005 -0.010 0.004 ; -0.010 0.040 -0.002 ; 0.004 -0.002 0.023]; Questa volta, però, consideriamo 20 punti lungo la frontiera efficiente: NumPorts = 20; 176
  177. 177. Analizzare Portafogli Esempio di Portafoglio rischioso [PortRisk, PortReturn, PortWts] = portopt(ExpReturn,... ExpCovariance, NumPorts); Come con la funzione «frontcon», chiamando «portopt» e precisando gli argomenti in uscita , quest’ultima funzione ritorna i vettori e le matrici che rappresentano il rischio, il rendimento ei pesi per ciascuno dei portafogli lungo la frontiera efficiente. Li usiamo come i primi tre inputs della funzione «portalloc». 177
  178. 178. Analizzare Portafogli Esempio di Portafoglio rischioso Ora trova il portafoglio rischioso ottimale e l'allocazione ottimale dei fondi tra il portafoglio rischioso e il risk-free asset. Utilizziamo i seguenti valori per il tasso privo di rischio, tasso debitore e il grado di avversione al rischio degli investitori: RisklessRate = 0.08 BorrowRate = 0.12 RiskAversion = 3 178
  179. 179. Analizzare Portafogli Esempio di Portafoglio rischioso Se richiamiamo «portalloc» senza specificare alcun argomento di output fornisce un grafico visualizzazione dei punti critici: portalloc (PortRisk, PortReturn, PortWts, RisklessRate,... BorrowRate, RiskAversion); 179
  180. 180. Analizzare Portafogli Esempio di Portafoglio rischioso 180
  181. 181. Analizzare Portafogli Esempio di Portafoglio rischioso Se invece richiamiamo «portalloc» specificando gli argomenti di output restituisce la varianza (RiskyRisk), il rendimento atteso (RiskyReturn), ed i pesi (RiskyWts) allocati nel portafoglio rischioso ottimale. Inoltre restituisce la frazione (RiskyFraction) del portafoglio totale assegnato al portafoglio rischioso e la varianza (OverallRisk) e rendimento atteso (OverallReturn) del del portafoglio ottimale complessivo. Il portafoglio complessivo combina investimenti nell’asset privo di rischio dell'attività e nel portafoglio rischioso. La percentuale effettivamente assegnato a ciascuno di questi due investimenti è determinata dal grado di avversione al rischio che caratterizza l'investitore. 181
  182. 182. Analizzare Portafogli Esempio di Portafoglio rischioso [RiskyRisk, RiskyReturn, RiskyWts,RiskyFraction, OverallRisk,... OverallReturn] = portalloc (PortRisk, PortReturn, PortWts,... RisklessRate, BorrowRate, RiskAversion) RiskyRisk = 0.1288 RiskyReturn = 0.1791 RiskyWts = 0.0057 0.5879 0.4064 RiskyFraction = 1.1869 OverallRisk = 0.1529 OverallReturn = 0.1902 Il valore di RiskyFraction supera 1 (100%), il che implica che la tolleranza al rischio specificata permette il prestito di denaro da investire nel portafoglio rischioso, e che nessuna denaro sarà investito nella finanziaria priva di rischio. 182
  183. 183. Analizzare Portafogli Specificazione dei Vincoli Questo esempio calcola la frontiera efficiente di portafogli composti da tre attività diverse, INTC (Intel corporation) , XON (Exxon) e RD (Royal Dutch Shell) , dato un elenco di vincoli. I rendimenti previsti per INTC, XON e RD sono rispettivamente: ExpReturn = [0.1 0.2 0.15]; La matrice delle covarianze: ExpCovariance = [ 0.005 –0.010 0.004 ; –0.010 0.040 –0.002 ; 0.004 –0.002 0.023]; 183
  184. 184. Analizzare Portafogli Specificazione dei Vincoli Vincoli: Vincolo 1: consentire vendite short in qualsiasi attività fino al 10% del valore del portafoglio, ma limitare l'investimento in un qualsiasi bene al 110% del valore del portafoglio. Vincolo 2: Consideriamo due diversi settori, la tecnologia e l'energia. Vincoliamo l'investimento nel settore energetico al 80% del valore del portafoglio, e l'investimento nel settore dell'Information Technology al 70%. 184
  185. 185. Analizzare Portafogli Specificazione dei Vincoli Per risolvere questo problema, utilizziamo la funzione «frontcon», passando un elenco di vincoli patrimoniali. Consideriamo otto portafogli diversi lungo la frontiera efficiente: NumPorts = 8; Per introdurre i limiti specificati nel Vincolo 1, creiamo una matrice «AssetBounds», dove ogni colonna rappresenta un asset. La fila superiore rappresenta i limiti inferiori, e la fila inferiore rappresenta il limiti superiore: AssetBounds = [–0.10, –0.10, –0.10; 1.10, 1.10, 1.10]; 185

×