corso isvap matlab per traders quantitativi
DESCRIPTION
Corso ISVAP MATLAB Financial and Optimization ToolboxTRANSCRIPT
1
Matlab Financial and Optimization Toolbox
Genova 17 – 18 ottobre 2013Luigi Piva
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 Borsa italiana Milano (Italian Stock Exchange) : High Frequency Trading: market microstructure
2011 Borsa italiana Milano (Italian Stock Exchange):
quantitative basis for Energy commodities trading
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) .
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
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
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)
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 scrittein un linguaggio matrice-orientato ad alto livello.
Inoltre, MATLAB ha un ricco set di capacità grafiche, tra cuila capacità di sviluppare rapidamente interfacce grafiche. la sconosciuta
7
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
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.
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
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.
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
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.
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.
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.
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).
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.
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 è:
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
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.
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.
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.
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)
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.
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 ]
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»
27
Financial Toolbox :
Grafici Finanziari:
Ecco come plottare i dati finanziari e produrre grafici diqualità 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.
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.
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
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.
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
determinatiDal 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.
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:
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
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à
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.
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 replicareun 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) .
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.
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);
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.
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 .
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 pu , pd e pm rispettivamente.
Data la solita equazione :
Scriviamo l’equazione che fa coincidere i primi due momenti:
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.
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.3Se 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
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, utilizzandosolo 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 atempi intermedi. Dobbiamo modellare prezzi delle attività non solo ora e alla scadenza, ma anche lungo tutto il percorso.
Questo può essere fatto utilizzando schema binomialericorsivo 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.
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.
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)
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:
48
Financial Toolbox :
Black-Scholes:
Semplificando, abbiamo una equazione deterministica alle derivate parziali che descrive il valore di una opzionef (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:
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.
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.
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:
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:
53
Financial Toolbox :
Black-Scholes in Matlab:
Implementare la formula di Black-Scholes in MATLAB è
abbastanza facile. possiamosfruttare la funzione «normcdf» fornite dalla Statistic Toolbox percalcolare 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 correnteK= Strike Pricer= tasso risk-freeT= time to expiry (year)sigma= volatilityq= dividend yeld
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'opzionei 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)
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:0plot (S0 ,blsprice (S0 ,K, r ,T, sigma)) ;hold on;endaxis( [30 70 -5 35]) ;grid on
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:
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:
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.
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.
LambdaLambda, 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
60
Financial Toolbox :
Black-Scholes in Matlab:
Ancora sulle Greche:
RhoRho è il tasso di variazione del prezzo dell'opzione rispetto al variare del tasso di interesse privo di rischio.
ThetaTheta è 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)
VegaVega è 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»)
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 coperturae 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 lavolatilità futura di un’azione e fornisce la volatilità di ingresso (quando necessario) alle altre funzioni di Black-Scholes.
62
Financial Toolbox :
Black-Scholes in Matlab:
Ancora sulle Greche:
Per illustrare le funzioni di Black-Scholes toolbox, questo esempio calcola la Calle 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);
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.
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 (secondoil 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.
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 Black-Scholes 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]
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);
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);
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)];
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.
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
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 = A\b; %quantità di ogni opzione
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, mostrandoil Delta dell’opzione (la derivata prima del prezzo dell'opzione al prezzo del titolo), rappresentato dal colore della superficie.
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;
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);
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]);
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');
77
Financial Toolbox :
Black-Scholes in Matlab:
Plottare le Sensitivities di un’opzione:
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.
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 .
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 .
81
Financial Toolbox :
Il modello Black (1976)
Le formule per il pricing di una Call e di una Put sono quindi:
con:
82
Financial Toolbox :
Il modello Black (1976)
Dove:
log denota il logaritmo naturale f = l’attuale prezzo del Forward sottostante . x = lo strike pricer = il tasso risk-free continuosly compoundedt = il tempo ad Expiry dell’opzione espresso in anniσ = la volatilità implicita del prezzo forward sottostanteΦ =la funzione di distribuzione cumulativa della Normale
Standard
83
Financial Toolbox :
Il modello Black (1976)
Le Greche per una Call:
84
Financial Toolbox :
Il modello Black (1976)
Le Greche per una Put:
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)
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)
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 Greeks-Neutral .
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).
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.
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à stocasticae 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.
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).
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
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)
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 log-normale.
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:NReplfor j=1: NStepsEndEnd
96
Financial Toolbox :
Metodi Monte Carlo :
La funzione «AssetPaths» produce una matrice di percorsi campione , in cui le repliche sono memorizzati riga per rigae 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.
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 è ilvalore 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à.
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):
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) ;
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 opzioneL'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
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
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.
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.
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
.
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:
.
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.
.
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.
.
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:
.
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:
.
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.
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 standardsstd (y) %% minimomin(y) %% massimomax(y) %% Skewnessskewness(y) %% Kurtosis kurtosis(y)
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.
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.
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)
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)
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:
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:
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:
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) .
120
Financial Toolbox :
Analisi delle Serie Storiche
Modelli di Volatilita
GARCH
L’equazione del modello ha alcuni vincoli :
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.
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.
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)
124
Financial Toolbox :
Analisi delle Serie Storiche
Funzione di Autocorrelazione :
Calcoliamo e plottiamo la ACF e PACF sui rendimenti di Apple:
%% ACF e PACFfigure subplot(2,1,1)autocorr(Returns)title('ACF of returns')subplot(2,1,2)parcorr(Returns)title('PACF of the returns')
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 Returnsfigure subplot(2,1,1)autocorr(Returns.^2)title('ACF of returns')subplot(2,1,2)parcorr(Returns.^2)title('PACF of the returns')
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.
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.
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) .
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 (Quantile-quantile 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:
% QQPlotQqplot(y)
130
Financial Toolbox :
Analisi delle Serie Storiche
Metodi grafici:
Applicando sempre l’esempio dell’S&P500, vediamo evidente la presenza di Fat Tails.
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 (Quantile-quantile 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:
% QQPlotQqplot(y)
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.
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
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
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.
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.
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 (non-stazionarie) , 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
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.
139
Financial Toolbox :
Analisi delle Serie Storiche Multivariate
Cointegrazione:
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
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.
142
PROBLEMI DI OTTIMIZZAZIONE
143
PROBLEMI DI OTTIMIZZAZIONE
144
PROBLEMI DI OTTIMIZZAZIONE
145
PROBLEMI DI OTTIMIZZAZIONE
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.
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
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.
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.
150
PROBLEMI DI OTTIMIZZAZIONE
Quando i dati sono incerti, dovremmo ricorrere ai modelli di ottimizzazione stocastica, che è piuttosto importante nel contestodelle 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.
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
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.
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.
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.
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))
156
PROBLEMI DI OTTIMIZZAZIONE
Classificazione :
ESEMPIO:
Qui sotto il grafico prodotto, da cui è chiaro che vi sono due minimi locali :
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)
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.
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 è:
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.
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.
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.
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.
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.
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» .
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%.
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;
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);
169
Analizzare Portafogli
Esempio di Frontiera Efficiente
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.
171
Analizzare Portafogli
Esempio di Frontiera Efficiente
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.
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’investitoresig è la deviazione standard.
174
Analizzare Portafogli
Selezione di Portafoglio e Avversione al Rischio
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.
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;
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 ritornai vettori e le matrici che rappresentano il rischio, il rendimento e ipesi per ciascuno dei portafogli lungo la frontiera efficiente.
Li usiamo come i primi tre inputs della funzione «portalloc».
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.08BorrowRate = 0.12RiskAversion = 3
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);
180
Analizzare Portafogli
Esempio di Portafoglio rischioso
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.
182
Analizzare Portafogli
Esempio di Portafoglio rischioso
[RiskyRisk, RiskyReturn, RiskyWts,RiskyFraction, OverallRisk,...
OverallReturn] = portalloc (PortRisk, PortReturn, PortWts,...
RisklessRate, BorrowRate, RiskAversion)
RiskyRisk = 0.1288RiskyReturn = 0.1791RiskyWts = 0.0057 0.5879 0.4064RiskyFraction = 1.1869OverallRisk = 0.1529OverallReturn = 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.
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];
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%.
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];
186
Analizzare Portafogli
Specificazione dei Vincoli
Il Vincolo 2 deve essere inserito in due parti, la prima parte che definisce i gruppi, e la seconda parte che definisce i vincoli per ogni gruppo.
Date le informazioni di cui sopra, è possibile costruire una matrice di 0 e 1 che indica se un specifica attività appartiene a un gruppo. Ogni colonna rappresenta un bene, e ogni riga rappresenta un gruppo.
Questo esempio ha due gruppi: il gruppo tecnologico, e il gruppo energetico. Creiamo i gruppi con la matrice come segue:
Groups = [ 0 1 1 ; 1 0 0 ];
187
Analizzare Portafogli
Specificazione dei Vincoli
La matrice «GroupBounds» consente di specificare un limite superiore e il limite inferiore per ogni gruppo.
Ogni riga della matrice rappresenta un gruppo. La prima colonnarappresenta l’assegnazione minima, e la seconda colonna rappresenta l’assegnazione massima a ciascun gruppo.
Dal momento che l'investimento nel settore energeticoè limitato all’ 80% del valore del portafoglio, e l'investimento
nella tecnologia settore è limitato al 70%, creiamo la matrice GroupBounds utilizzando queste informazioni:
GroupBounds = [ 0 0.80; 0 0.70 ];
188
Analizzare Portafogli
Specificazione dei Vincoli
Ora usiamo la funzione «frontcon» per ottenere i vettori e le matrici che rappresentano: il rischio, il rendimento, e i pesi per ognuno degli otto portafogli calcolati lungo la frontiera efficiente .
[PortRisk, PortReturn, PortWts] = frontcon (ExpReturn, ...ExpCovariance, NumPorts, [], AssetBounds, Groups, … GroupBounds)
I dati di uscita sono rappresentata riga per riga:il rischio di ogni portafoglio, il tasso rendimento , e il peso
associato vengono identificati come righe corrispondenti nei vettori e nella matrice.
189
Analizzare Portafogli
Specificazione dei Vincoli
190
Analizzare Portafogli
Equazioni con Vincoli Lineari
Mentre «frontcon» consente di inserire una serie fissa di vincoli legati ai valori minimo e massimo di gruppi o singoli beni , spessoè necessario specificare un insieme più grande e più generale di vincoli quando siamo alla ricerca del portafoglio rischioso ottimale.
La funzione «portopt» risponde a questa esigenza, accettandoun insieme arbitrario di vincoli come matrice di input.
La funzione «portcons» può essere usata per creare la matrice dei vincoli, con ogni riga rappresenta da una disuguaglianza. Queste disuguaglianze sono del tipo :
A * Wts '<= b
dove A è una matrice, b è un vettore, e Wts è un vettore rigadi asset allocation.
Il numero di colonne della matrice A, e la lunghezza del vettore Wts corrispondono al numero di beni. Le righe della matrice A, e la lunghezza del vettore b corrispondono al numero di vincoli.
191
Analizzare Portafogli
Specificare dei Vincoli Aggiuntivi
La funzione «portcons» è stata creato per semplificare la creazione dei vincoli più comuni.
Per esempio, possiamo avere una matrice di vincoli che specifica un insieme di tipico scenari:
Vengono definiti gruppi di assets (per settore, area geografica, ecc..) , specificati limiti massimi e minimi per la quantità complessiva di ciascuno di questi gruppi di asset.
Supponiamo che sia necessario aggiungere un po’ più di vincoli. Per esempio, aggiungiamo un vincolo che indica che la somma dei pesi in qualsiasi portafoglio dovrebbe essere uguale a 1, e un altro insieme vincolo (uno per ogni attività) che indica che il peso di ciascun asset deve essere maggiore di 0.
192
Analizzare Portafogli
Specificare dei Vincoli Aggiuntivi
Questo significa dovere specificare diverse righe per esprimere il vincolo. Chiaramente, creare un’ulteriore matrice di vincoli può trasformarsi in un compito noioso.
Per creare la nuova matrice di restrizione utilizzando portcons, utilizzare due distinti vincolo-specificatore stringhe: 'Default', che indica che ogni peso è maggiore di 0 e che il sumof totale dei pesi aggiunge 1, e 'GroupLims', che definisce l'allocazione minima e massima su ciascun gruppo. l'unica requisito di dati per la stringa di vincolo-specificatore 'Default' è NumAssets(il numero totale di attività).
La stringa di vincolo-specificatore 'GroupLims'richiede tre diversi argomenti: una matrice di gruppi che indica i beni che appartengono a ciascun gruppo, il vettore GroupMin indicante i limiti minimi per ciascun gruppo, e il vettore GroupMax indicante i limiti massimi per ciascungruppo.
193
Analizzare Portafogli
Specificare dei Vincoli Aggiuntivi
Sulla base di Tabella 1-2, costruire la matrice di gruppo, con ogni riga che rappresenta un gruppo, e ogni colonna rappresenta un bene:
Group = [1 1 0; 0 0 1; 1 0 0; 0 1 1]
Tabella 1-1 contiene le informazioni per costruire GroupMin e GroupMax:
GroupMin = [0.30 0.10 0.20 0.50];GroupMax = [0.75 0.55 0.50 0.50];
194
Analizzare Portafogli
Specificare dei Vincoli Aggiuntivi
Dato che il numero di attività è tre, costruire la matrice di vincolo chiamando :
ConSet = portcons('Default', 3, 'GroupLims', Group, GroupMin,...
GroupMax);
Nella maggior parte dei casi, portcons ('default') restituisce l'insieme minimo di vincoli richiesto per la chiamata portopt. Se CONSET non è specificato nella chiamata a portopt,la funzione chiama portcons passano 'Default' come unico identificatore.Ora usare portopt per ottenere i vettori e le matrici che rappresentano il rischio,tornare, e pesi per i portafogli calcolati lungo la frontiera efficiente.
195
Optimization Toolbox
Sensibilità di Bond Prezzi alle modifiche nei tassi di interesse
La Macaulay Duration e la Duration modificata misurano la sensibilità del prezzo di un'obbligazione alla variazione del livello dei tassi di interesse .
La Convessità misura il cambiamento di Duration per i piccoli spostamenti della curva dei rendimenti , e misura quindi la sensibilità di secondo ordine del prezzo di un Bond .
Entrambe le misure possono valutare la vulnerabilità del valore di un 'obbligazione a variazioni del livello dei tassi di interesse.
In alternativa , gli analisti possono utilizzare Duration e Convessità per costruire un portafoglio obbligazionario che è in parte coperto contro le piccole variazioni della struttura a termine dei tassi .
196
Optimization Toolbox
Sensibilità di Bond Prezzi alle modifiche nei tassi di interesse
Se si combinano le obbligazioni in un portafoglio la cui durata è pari a zero , il portafoglio è isolato , in qualche misura , contro fluttuazioni dei tassi di interesse.
Se anche la convessità del portafoglio è pari a zero , questo isolamento è ancora migliore.
Tuttavia, dal momento che la copertura costa denaro o riduce il rendimento atteso , è necessario sapere quanta protezione risulta dalla copertura della duration da sola rispetto a copertura sia della duration che della convessità .
197
Optimization Toolbox
Sensibilità di Bond Prezzi alle modifiche nei tassi di interesse
Creiamo uno Script come esempio che mostra un modo per analizzare l'importanza relativa di durata e convessità di un portafoglio obbligazionario con alcune delle funzioni della Financial e dell’Optimization Toolbox .
Utilizzando la Duration , si costruisce una approssimazione del primo ordine della variazione del prezzo di portafoglio ad un cambiamento di livello dei tassi di interesse .
Quindi, utilizzando la Convessità , si calcola una approssimazione del secondo ordine .
Infine, si può confrontare le due approssimazioni con il vero cambiamento prezzo risultante da una variazione della curva dei tassi .
198
Optimization Toolbox
Costruire un Portafoglio di Bonds per coprirsi contro Duration e Convessità
quest’altro esempio costruisce un portafoglio obbligazionario a copertura del portafoglio precedente .
Assume una posizione lunga del portafoglio , e che altri tre titoli siano disponibili per la copertura.
Si scelgono pesi per questi altri tre titoli in un nuovo portafoglio in modo che la Duration e la Convessità del nuovo portafoglio corrispondano a quelli del portafoglio originale.
Prendendo una posizione corta nel nuovo portafoglio , per un importo pari al valore del primo portafoglio , copre parzialmente contro spostamenti paralleli della curva dei rendimenti .
199
Optimization Toolbox
Costruire un Portafoglio di Bonds per coprirsi contro Duration e Convessità
Ricordiamo che la Duration e Convessità del portafoglio è una media ponderata delle Duration o Convessità dei singoli titoli in un portafoglio .
Come nell'esempio precedente , questo esempio utilizza Duration Modificata e Convessità espresse in anni .
Il problema di copertura diventa quindi quello di risolvere un sistema di equazioni lineari , cosa molto facile da fare in MATLAB
200
Optimization Toolbox
Costruire un Portafoglio di Bonds per coprirsi contro Duration e Convessità
Passo 1 . Definire tre titoli disponibili per la copertura del portafoglio originale . Specificare i valori per la data di Settlement , data di scadenza , il valore nominale e cedola .
Per semplicità , accettiamo i valori predefiniti per la periodicità di pagamento della cedola ( semestrale) , la regola il pagamento a fine mese , e la base di calcolo giornaliera .
Inoltre , sincronizziamo la struttura di pagamento della cedola a scadenza (ossia non dispari prima o l'ultima data di cedole) .
Impostiamo gli inputs per i quali sono accettati i valori predefiniti a matrici vuote ( [ ] ) .
201
Optimization Toolbox
Costruire un Portafoglio di Bonds per coprirsi contro Duration e Convessità
Lo scopo dell’esempio è quello di copertura del Portafoglio contro Duration e Convessità , nonché vincolare il prezzo totale del portafoglio.
Settle = '19 -ago - 1999 '; Maturità = [ '15 - giu-2005 '; '02 -Ott - 2010' , '01 - mar -2025 '] ; Face = [ 500; 1000; 250 ] ; CouponRate = [ 0.07 , 0.066 , 0.08 ] ;
Inoltre, specifichiamo la curva dei rendimenti per ogni obbligazione .
Yelds = [ 0.06 , 0.07 , 0.075 ] ;
202
Optimization Toolbox
Costruire un Portafoglio di Bonds per coprirsi contro Duration e Convessità
Passo 2. Utilizzare le funzioni della Financial Toolbox per calcolare il prezzo , durata modificata negli anni , e convessità in anni di ciascun titolo .
Il vero prezzo è denominato «clean price» più gli interessi maturati .
[ CleanPrice , AccruedInterest ] = bndprice ( Yelds, CouponRate , ... Settle , Maturity , 2 , 0 , [ ] , [ ] , [ ] , [ ] , [ ] , Face) ;
Durations = bnddury ( Yelds , CouponRate , Settle , Maturity, ... 2 , 0 , [ ] , [ ] , [ ] , [ ] , [ ] , Face) ;
Convexity = bndconvy ( Yeld , CouponRate , Settle , ... Maturity , 2 , 0 , [ ] , [ ] , [ ] , [ ] , [ ] , Face) ;
Prices = CleanPrice + AccruedInterest ;
203
Optimization Toolbox
Costruire un Portafoglio di Bonds per coprirsi contro Duration e Convessità
Passo 3 . Impostiamo e risolviamo il sistema di equazioni lineari, la cui soluzione sono i pesi delle nuove obbligazioni in un nuovo portafoglio con la stessa duration e convessità del portafoglio originale.
Inoltre , scaliamo i pesi perché si sommino a 1 , cioè, li portiamo ad essere pesi di portafoglio .
È quindi possibile scalare tale portafoglio unitario per avere lo stesso prezzo del portafoglio originale.
La duration e convessità del portafoglio originale erano 10,3181 e 157,6346 , rispettivamente .
204
Optimization Toolbox
Costruire un Portafoglio di Bonds per coprirsi contro Duration e Convessità
Si noti inoltre che l' ultima riga del sistema lineare garantisce che la somma dei pesi sia pari all l'unità.
A = [ Durations ' convexities ' 1 1 1 ] ;
b = [ 10,3181 157.6346 1 ] ;
Weights= A \ b ;
205
Optimization Toolbox
Costruire un Portafoglio di Bonds per coprirsi contro Duration e Convessità
Passo 4 . Calcoiamo la duration e la convessità del portafoglio di copertura , che ora dovrebbe corrispondere al portafoglio originale .
PortfolioDuration = Weights'* Duration ; PortfolioConvexity = Weights ‘ * convexity ;
Passo 5 . Infine , ridimensioniamo il portafoglio unitario in modo che corrisponda al valore del portafoglio originale e trovare il numero di titoli necessari per l'isolamento contro i piccoli spostamenti paralleli della curva dei rendimenti .
PortfolioValue = 100000; HedgeAmounts = Pesi / Prezzi * PortfolioValue . ;
206
Optimization Toolbox
Costruire un Portafoglio di Bonds per coprirsi contro Duration e Convessità
Passo 6. Confrontiamo i risultati .
Come richiesto , la duration e la convessità del nuovo portafoglio sono 10,3181 e 157,6346 , rispettivamente .
Gli importi di copertura per le obbligazioni 1, 2 e 3 sono -57,37 , 71.70 e 216.27 , rispettivamente .
Si noti che la copertura corrisponde alla duration , convessità , e il valore ($ 100.000) del portafoglio originale. Se deteniamo il primo portafoglio, è possibile coprirlo prendendo una posizione corta nel nuovo portafoglio .
207
Optimization Toolbox
Utilizzare la Programmazione Quadratica in problemi di Ottimizzazione di Portafoglio
Il modello quadratico
La somma delle frazioni di investimento xi dovrebbe, ovviamente, raggiungere un totale pari a uno
ed essendo frazioni (o percentuali), devono essere numeri compresi tra zero e uno
Poiché l'obiettivo di ridurre al minimo il rischio di portafoglio è quadratico, ei vincoli sono lineari, il problema di ottimizzazione che ne risulta è un programma quadratica, o QP.
208
Optimization Toolbox
Utilizzare la Programmazione Quadratica in problemi di Ottimizzazione di Portafoglio
Il modello quadratico
Nello specifico, prendiamo in considerazione un esempio.
In breve, andiamo a minimizzare una funzione quadratica soggetta ad alcuni vincoli.
Teniamo presente che la funzione quadratica quantifica la nozione di rischio nel problema degli investimenti
209
Optimization Toolbox
Utilizzare la Programmazione Quadratica in problemi di Ottimizzazione di Portafoglio
Il modello quadratico
Il problema di ottimizzazione è:
210
Optimization Toolbox
Utilizzare la Programmazione Quadratica in problemi di Ottimizzazione di Portafoglio
Il modello quadratico
Per la soluzione in MATLAB lo esprimiamo il problema di programmazione quadratica in forma matriciale:
dove H, A e Aeq sono matrici, e f, b, beq, lb, ub, e x sono vettori
211
Optimization Toolbox
Utilizzare la Programmazione Quadratica in problemi di Ottimizzazione di Portafoglio
Il modello quadratico
Risoluzione
x = quadprog (H, f, A, b)
restituisce un vettore x che minimizza:
1/2 * x ‘ * H * x + f ' * x
soggetto al vincolo A * x <= B.
Prima di eseguire «quadprog» dobbiamo creare la matrice H, A ed i vettori f, b, come mostrato nello script.
212
Optimization Toolbox
Utilizzare la Programmazione Quadratica in problemi di Ottimizzazione di Portafoglio
213
Optimization Toolbox
Utilizzare la Programmazione Quadratica in problemi di Ottimizzazione di Portafoglio
Lanciando:
x = quadprog(H,f,A,b)
Otteniamo:
Optimization terminated successfully.x =500.00000500.0000
Dalla soluzione del problema di ottimizzazione, la nostra decisione ottimale è di investire 500 dollari in azioni IBM e 500 dollari in azioni SEHI.