corso isvap matlab per traders quantitativi

213
1 Matlab Financial and Optimization Toolbox Genova 17 – 18 ottobre 2013 Luigi Piva

Upload: luigi-piva

Post on 06-Dec-2014

1.786 views

Category:

Economy & Finance


2 download

DESCRIPTION

Corso ISVAP MATLAB Financial and Optimization Toolbox

TRANSCRIPT

Page 1: Corso isvap matlab per traders quantitativi

1

Matlab Financial and Optimization Toolbox

Genova 17 – 18 ottobre 2013Luigi Piva

Page 2: Corso isvap matlab per traders quantitativi

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 

Page 3: Corso isvap matlab per traders quantitativi

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) .

 

Page 4: Corso isvap matlab per traders quantitativi

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

Page 5: Corso isvap matlab per traders quantitativi

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

Page 6: Corso isvap matlab per traders quantitativi

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)

Page 7: Corso isvap matlab per traders quantitativi

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

Page 8: Corso isvap matlab per traders quantitativi

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

Page 9: Corso isvap matlab per traders quantitativi

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.

Page 10: Corso isvap matlab per traders quantitativi

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

Page 11: Corso isvap matlab per traders quantitativi

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.

Page 12: Corso isvap matlab per traders quantitativi

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

Page 13: Corso isvap matlab per traders quantitativi

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.

Page 14: Corso isvap matlab per traders quantitativi

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.

Page 15: Corso isvap matlab per traders quantitativi

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.

Page 16: Corso isvap matlab per traders quantitativi

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).

Page 17: Corso isvap matlab per traders quantitativi

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.

Page 18: Corso isvap matlab per traders quantitativi

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 è:

Page 19: Corso isvap matlab per traders quantitativi

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

Page 20: Corso isvap matlab per traders quantitativi

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.

Page 21: Corso isvap matlab per traders quantitativi

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.

Page 22: Corso isvap matlab per traders quantitativi

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.

Page 23: Corso isvap matlab per traders quantitativi

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)

Page 24: Corso isvap matlab per traders quantitativi

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.

Page 25: Corso isvap matlab per traders quantitativi

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 ]

Page 26: Corso isvap matlab per traders quantitativi

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»

Page 27: Corso isvap matlab per traders quantitativi

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.

Page 28: Corso isvap matlab per traders quantitativi

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.

Page 29: Corso isvap matlab per traders quantitativi

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

Page 30: Corso isvap matlab per traders quantitativi

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.

Page 31: Corso isvap matlab per traders quantitativi

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.

Page 32: Corso isvap matlab per traders quantitativi

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:

Page 33: Corso isvap matlab per traders quantitativi

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

Page 34: Corso isvap matlab per traders quantitativi

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à

Page 35: Corso isvap matlab per traders quantitativi

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.

Page 36: Corso isvap matlab per traders quantitativi

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) .

Page 37: Corso isvap matlab per traders quantitativi

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.

Page 38: Corso isvap matlab per traders quantitativi

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);

Page 39: Corso isvap matlab per traders quantitativi

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.

Page 40: Corso isvap matlab per traders quantitativi

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 .

Page 41: Corso isvap matlab per traders quantitativi

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:

Page 42: Corso isvap matlab per traders quantitativi

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.

Page 43: Corso isvap matlab per traders quantitativi

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

Page 44: Corso isvap matlab per traders quantitativi

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.

Page 45: Corso isvap matlab per traders quantitativi

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.

Page 46: Corso isvap matlab per traders quantitativi

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)

Page 47: Corso isvap matlab per traders quantitativi

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:

Page 48: Corso isvap matlab per traders quantitativi

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:

Page 49: Corso isvap matlab per traders quantitativi

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.

Page 50: Corso isvap matlab per traders quantitativi

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.

Page 51: Corso isvap matlab per traders quantitativi

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:

Page 52: Corso isvap matlab per traders quantitativi

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:

Page 53: Corso isvap matlab per traders quantitativi

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

Page 54: Corso isvap matlab per traders quantitativi

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)

Page 55: Corso isvap matlab per traders quantitativi

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

Page 56: Corso isvap matlab per traders quantitativi

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:

Page 57: Corso isvap matlab per traders quantitativi

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:

Page 58: Corso isvap matlab per traders quantitativi

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.

Page 59: Corso isvap matlab per traders quantitativi

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

Page 60: Corso isvap matlab per traders quantitativi

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»)

Page 61: Corso isvap matlab per traders quantitativi

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.

Page 62: Corso isvap matlab per traders quantitativi

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);

Page 63: Corso isvap matlab per traders quantitativi

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.

Page 64: Corso isvap matlab per traders quantitativi

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.

Page 65: Corso isvap matlab per traders quantitativi

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]

Page 66: Corso isvap matlab per traders quantitativi

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);

Page 67: Corso isvap matlab per traders quantitativi

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);

Page 68: Corso isvap matlab per traders quantitativi

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)];

Page 69: Corso isvap matlab per traders quantitativi

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.

Page 70: Corso isvap matlab per traders quantitativi

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

Page 71: Corso isvap matlab per traders quantitativi

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

Page 72: Corso isvap matlab per traders quantitativi

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.

Page 73: Corso isvap matlab per traders quantitativi

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;

Page 74: Corso isvap matlab per traders quantitativi

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);

Page 75: Corso isvap matlab per traders quantitativi

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]);

Page 76: Corso isvap matlab per traders quantitativi

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');

Page 77: Corso isvap matlab per traders quantitativi

77

Financial Toolbox :

Black-Scholes in Matlab:

Plottare le Sensitivities di un’opzione:

Page 78: Corso isvap matlab per traders quantitativi

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.

Page 79: Corso isvap matlab per traders quantitativi

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 .

Page 80: Corso isvap matlab per traders quantitativi

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 .

Page 81: Corso isvap matlab per traders quantitativi

81

Financial Toolbox :

Il modello Black (1976)

Le formule per il pricing di una Call e di una Put sono quindi:

con:

Page 82: Corso isvap matlab per traders quantitativi

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

Page 83: Corso isvap matlab per traders quantitativi

83

Financial Toolbox :

Il modello Black (1976)

Le Greche per una Call:

Page 84: Corso isvap matlab per traders quantitativi

84

Financial Toolbox :

Il modello Black (1976)

Le Greche per una Put:

Page 85: Corso isvap matlab per traders quantitativi

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)

Page 86: Corso isvap matlab per traders quantitativi

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)

Page 87: Corso isvap matlab per traders quantitativi

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 .

Page 88: Corso isvap matlab per traders quantitativi

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).

Page 89: Corso isvap matlab per traders quantitativi

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.

Page 90: Corso isvap matlab per traders quantitativi

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.

Page 91: Corso isvap matlab per traders quantitativi

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).

Page 92: Corso isvap matlab per traders quantitativi

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

Page 93: Corso isvap matlab per traders quantitativi

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)

Page 94: Corso isvap matlab per traders quantitativi

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.

Page 95: Corso isvap matlab per traders quantitativi

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

Page 96: Corso isvap matlab per traders quantitativi

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.

Page 97: Corso isvap matlab per traders quantitativi

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à.

Page 98: Corso isvap matlab per traders quantitativi

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):

Page 99: Corso isvap matlab per traders quantitativi

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) ;

Page 100: Corso isvap matlab per traders quantitativi

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

Page 101: Corso isvap matlab per traders quantitativi

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

Page 102: Corso isvap matlab per traders quantitativi

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.

Page 103: Corso isvap matlab per traders quantitativi

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.

Page 104: Corso isvap matlab per traders quantitativi

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

.

Page 105: Corso isvap matlab per traders quantitativi

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:

.

Page 106: Corso isvap matlab per traders quantitativi

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.

.

Page 107: Corso isvap matlab per traders quantitativi

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.

.

Page 108: Corso isvap matlab per traders quantitativi

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:

.

Page 109: Corso isvap matlab per traders quantitativi

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:

.

Page 110: Corso isvap matlab per traders quantitativi

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.

Page 111: Corso isvap matlab per traders quantitativi

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)

Page 112: Corso isvap matlab per traders quantitativi

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.

Page 113: Corso isvap matlab per traders quantitativi

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.

Page 114: Corso isvap matlab per traders quantitativi

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)

Page 115: Corso isvap matlab per traders quantitativi

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)

Page 116: Corso isvap matlab per traders quantitativi

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:

Page 117: Corso isvap matlab per traders quantitativi

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:

Page 118: Corso isvap matlab per traders quantitativi

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:

Page 119: Corso isvap matlab per traders quantitativi

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) .

Page 120: Corso isvap matlab per traders quantitativi

120

Financial Toolbox :

Analisi delle Serie Storiche

Modelli di Volatilita

GARCH

L’equazione del modello ha alcuni vincoli :

Page 121: Corso isvap matlab per traders quantitativi

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.

Page 122: Corso isvap matlab per traders quantitativi

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.

Page 123: Corso isvap matlab per traders quantitativi

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)

Page 124: Corso isvap matlab per traders quantitativi

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')

Page 125: Corso isvap matlab per traders quantitativi

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')

Page 126: Corso isvap matlab per traders quantitativi

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.

Page 127: Corso isvap matlab per traders quantitativi

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.

Page 128: Corso isvap matlab per traders quantitativi

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) .

Page 129: Corso isvap matlab per traders quantitativi

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)

Page 130: Corso isvap matlab per traders quantitativi

130

Financial Toolbox :

Analisi delle Serie Storiche

Metodi grafici:

Applicando sempre l’esempio dell’S&P500, vediamo evidente la presenza di Fat Tails.

Page 131: Corso isvap matlab per traders quantitativi

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)

Page 132: Corso isvap matlab per traders quantitativi

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.

Page 133: Corso isvap matlab per traders quantitativi

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

Page 134: Corso isvap matlab per traders quantitativi

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

Page 135: Corso isvap matlab per traders quantitativi

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.

Page 136: Corso isvap matlab per traders quantitativi

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.

Page 137: Corso isvap matlab per traders quantitativi

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

Page 138: Corso isvap matlab per traders quantitativi

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.

Page 139: Corso isvap matlab per traders quantitativi

139

Financial Toolbox :

Analisi delle Serie Storiche Multivariate

Cointegrazione:

Page 140: Corso isvap matlab per traders quantitativi

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

Page 141: Corso isvap matlab per traders quantitativi

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.

Page 142: Corso isvap matlab per traders quantitativi

142

PROBLEMI DI OTTIMIZZAZIONE

Page 143: Corso isvap matlab per traders quantitativi

143

PROBLEMI DI OTTIMIZZAZIONE

Page 144: Corso isvap matlab per traders quantitativi

144

PROBLEMI DI OTTIMIZZAZIONE

Page 145: Corso isvap matlab per traders quantitativi

145

PROBLEMI DI OTTIMIZZAZIONE

Page 146: Corso isvap matlab per traders quantitativi

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.

Page 147: Corso isvap matlab per traders quantitativi

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

Page 148: Corso isvap matlab per traders quantitativi

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.

Page 149: Corso isvap matlab per traders quantitativi

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.

Page 150: Corso isvap matlab per traders quantitativi

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.

Page 151: Corso isvap matlab per traders quantitativi

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

Page 152: Corso isvap matlab per traders quantitativi

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.

Page 153: Corso isvap matlab per traders quantitativi

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.

Page 154: Corso isvap matlab per traders quantitativi

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.

Page 155: Corso isvap matlab per traders quantitativi

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))

Page 156: Corso isvap matlab per traders quantitativi

156

PROBLEMI DI OTTIMIZZAZIONE

Classificazione :

ESEMPIO:

Qui sotto il grafico prodotto, da cui è chiaro che vi sono due minimi locali :

Page 157: Corso isvap matlab per traders quantitativi

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)

Page 158: Corso isvap matlab per traders quantitativi

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.

Page 159: Corso isvap matlab per traders quantitativi

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 è:

Page 160: Corso isvap matlab per traders quantitativi

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.

Page 161: Corso isvap matlab per traders quantitativi

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.

Page 162: Corso isvap matlab per traders quantitativi

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.

Page 163: Corso isvap matlab per traders quantitativi

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.

Page 164: Corso isvap matlab per traders quantitativi

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.

Page 165: Corso isvap matlab per traders quantitativi

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» .

Page 166: Corso isvap matlab per traders quantitativi

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%.

Page 167: Corso isvap matlab per traders quantitativi

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;

Page 168: Corso isvap matlab per traders quantitativi

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);

Page 169: Corso isvap matlab per traders quantitativi

169

Analizzare Portafogli

Esempio di Frontiera Efficiente

Page 170: Corso isvap matlab per traders quantitativi

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.

Page 171: Corso isvap matlab per traders quantitativi

171

Analizzare Portafogli

Esempio di Frontiera Efficiente

Page 172: Corso isvap matlab per traders quantitativi

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.

Page 173: Corso isvap matlab per traders quantitativi

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.

Page 174: Corso isvap matlab per traders quantitativi

174

Analizzare Portafogli

Selezione di Portafoglio e Avversione al Rischio

Page 175: Corso isvap matlab per traders quantitativi

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.

Page 176: Corso isvap matlab per traders quantitativi

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;

Page 177: Corso isvap matlab per traders quantitativi

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».

Page 178: Corso isvap matlab per traders quantitativi

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

Page 179: Corso isvap matlab per traders quantitativi

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);

Page 180: Corso isvap matlab per traders quantitativi

180

Analizzare Portafogli

Esempio di Portafoglio rischioso

Page 181: Corso isvap matlab per traders quantitativi

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.

Page 182: Corso isvap matlab per traders quantitativi

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.

Page 183: Corso isvap matlab per traders quantitativi

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];

Page 184: Corso isvap matlab per traders quantitativi

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%.

Page 185: Corso isvap matlab per traders quantitativi

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];

Page 186: Corso isvap matlab per traders quantitativi

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 ];

Page 187: Corso isvap matlab per traders quantitativi

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 ];

Page 188: Corso isvap matlab per traders quantitativi

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.

Page 189: Corso isvap matlab per traders quantitativi

189

Analizzare Portafogli

Specificazione dei Vincoli

Page 190: Corso isvap matlab per traders quantitativi

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.

Page 191: Corso isvap matlab per traders quantitativi

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.

Page 192: Corso isvap matlab per traders quantitativi

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.

Page 193: Corso isvap matlab per traders quantitativi

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];

Page 194: Corso isvap matlab per traders quantitativi

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.

Page 195: Corso isvap matlab per traders quantitativi

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 .

Page 196: Corso isvap matlab per traders quantitativi

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à .

Page 197: Corso isvap matlab per traders quantitativi

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 .

Page 198: Corso isvap matlab per traders quantitativi

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 .

Page 199: Corso isvap matlab per traders quantitativi

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

Page 200: Corso isvap matlab per traders quantitativi

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 ( [ ] ) .

Page 201: Corso isvap matlab per traders quantitativi

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 ] ;

Page 202: Corso isvap matlab per traders quantitativi

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 ;

Page 203: Corso isvap matlab per traders quantitativi

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 .

Page 204: Corso isvap matlab per traders quantitativi

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 ;

Page 205: Corso isvap matlab per traders quantitativi

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 . ;

Page 206: Corso isvap matlab per traders quantitativi

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 .

Page 207: Corso isvap matlab per traders quantitativi

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.

Page 208: Corso isvap matlab per traders quantitativi

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

Page 209: Corso isvap matlab per traders quantitativi

209

Optimization Toolbox

Utilizzare la Programmazione Quadratica in problemi di Ottimizzazione di Portafoglio

Il modello quadratico

Il problema di ottimizzazione è:

Page 210: Corso isvap matlab per traders quantitativi

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

Page 211: Corso isvap matlab per traders quantitativi

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.

Page 212: Corso isvap matlab per traders quantitativi

212

Optimization Toolbox

Utilizzare la Programmazione Quadratica in problemi di Ottimizzazione di Portafoglio

Page 213: Corso isvap matlab per traders quantitativi

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.