Valutazione opzioni Europee:

Slides:



Advertisements
Presentazioni simili
Lez. 12 (10/11) - PBElementi di Programmazione1 Lezione 12 Esercizi.
Advertisements

Laboratorio Processi Stocastici
Uso avanzato di C.
PROGRAMMARE IN PASCAL (le basi)
Lez. 6 (10/11) - PBElementi di Programmazione1 Lezione 6 Parametri Facoltativi Matrici Matrici di parametri.
Lez. 8 (10/11) - PBElementi di Programmazione1 Lezione 8 Date Valutazione di espressioni File di testo sequenziali.
Lez. 11 (11/12) - PBElementi di Programmazione1 Lezione 11 Esercizi.
Lez 4 (11/12)Elementi di Programmazione1 Istruzioni per il controllo del Flusso 2.
Lez 4 (10/11)Elementi di Programmazione1 Istruzioni per il controllo del Flusso 2.
Lez. 11 (10/11) - PBElementi di Programmazione1 Lezione 11 Esercizi.
Lez 4 (10/11)Elementi di Programmazione1 Istruzioni per il controllo del Recupero lez.4.
Dipartimento di Matematica
La teoria di portafoglio: cap.7-9
Programmazione Concorrente
N. 5/2006 FACOLTA’ DI SCIENZE ECONOMICHE E AZIENDALI
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi Paralleli e Distribuiti a.a. 2008/09
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Distribuzioni di probabilità
Esercizio 4 Data una stringa P di lunghezza m e definita sullalfabeto, scrivere un programma PERL per calcolare la seguente funzione: PREFIX_FUNCTION:
Algoritmi e Strutture Dati Valutazione del tempo di esecuzione degli algoritmi.
Algoritmi e Strutture Dati
Cosè un programma? LALA PROGRAMMAZIONE PROGRAMMAZIONELALA PROGRAMMAZIONE PROGRAMMAZIONE UN ELENCO DI ISTRUZIONI, APPARTENENTI A UN BEN DEFINITO LINGUAGGIO,
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Introduzione alla programmazione lll
APPUNTI SUL LINGUAGGIO C
Somma = A + B start Stampa Somma Leggi A,B stop Sub SOMMA( ) Dim A, B as Integer A = InputBox("Immetti un numero") B = InputBox(Immetti un secondo numero)
Istruzioni Iterative Nicola Fanizzi
Problema Ci sono 5 signore nel parco. Ognuna di loro ha 1 figlio. Ogni bambino ha 10 figurine di calciatori, per un totale quindi di 50 figurine. Questi.
Algebra Lineare Esercizi assegnati.
Esercitazione 2 – Generazione di variabili Matlab.
Le funzioni.
Analisi e Gestione del Rischio
Analisi e gestione del rischio
Analisi e gestione del rischio
Analisi e gestione del rischio
Assicurazioni vita e mercato del risparmio gestito
Volatilità e informazione implicita
e il valore attuale allargato
Anche la RB-Delete ha due fasi: Nella prima viene tolto un nodo y avente uno dei sottoalberi vuoto sostituendolo con la radice dellaltro sottoalbero. Per.
Radix-Sort(A,d) // A[i] = cd...c2c1
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
Programmare in Visual Basic
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Modelli Finanziari nel Tempo Continuo
Un modem, una scheda di rete, o comunque una unità di comunicazione tra calcolatori elettronici, trasmettendo uninformazione, a causa di disturbi esterni,
ESERCIZI.
ND-partizione (A) n   A  somma  0 M  1/2 (  a i ) for i  1 to n do S[i]  choice ({true, false}) if S[i] then somma  somma + a i if somma > M then.
1/32 Algoritmi e Strutture Dati HEAP Anno accademico
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Il ciclo while.  Permette di ripetere un blocco di istruzioni fino a quando non si verifica un determinato evento  Il ciclo while può essere realizzato.
Introduzione alle opzioni
Lez. 9 (13/14)Elementi di Programmazione1 Lezione 9 Valutazione di espressioni File di testo sequenziali.
PROVA INTERCORSO MOD.B a.a RICORSIONE ESERCIZI A1.1-A1.6.
Lez 4 (13/14)Elementi di Programmazione1 Strutture di controllo 2.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Lez. 12 (13/14)Elementi di Programmazione1 Lezione 12 Esercizi.
Lez. 11 (13/14)Elementi di Programmazione1 Lezione 11 Esercizi.
Valutazione delle opzioni
Lez.6 (13/14)Elementi di Programmazione1 Lezione 6 Funzioni Passaggio di parametri.
I rischi di mercato: i modelli di simulazione Lezione 9
Assicurazioni vita e mercato del risparmio gestito Lezione 6 Il modello di Black Scholes.
Analisi e Gestione del Rischio Lezione 7 Prodotti con pay-off non lineare.
Laboratorio di R 1° Lezione: fondamenti e distribuzioni 21 Aprile 2007 Dott.ssa Michela Cameletti.
Ordinamento. Introduzione Una delle operazioni che si possono eseguire sui vettori, è quella di ordinare gli elementi del vettore in ordine crescente.
Luca Chichisola1 Dal problema al programma LUCA CHICHISOLA.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Interconnessione tramite reti Lezione n°6.
A = InputBox("Immetti un numero")
Transcript della presentazione:

Valutazione opzioni Europee: Formula per valutazione Call Europea su albero binomiale: Put Europea:

Call Europea Function EurCall(S, X, T, rf, sigma, n) delta_t = T / n up = Exp(sigma * Sqr(delta_t)) down = Exp(-sigma * Sqr(delta_t)) R = Exp(rf * delta_t) q_up = (R - down) / (R * (up - down)) q_down = 1 / R - q_up EurCall = 0 For Index = 0 To n EurCall = EurCall + Application.Combin(n, Index) * q_up ^ Index * _ q_down ^ (n - Index) * Application.Max(S * up ^ Index * down ^ _ (n - Index) - X, 0) Next Index End Function

Valutazione opzioni Americane Procedimento backward Ad ogni nodo il valore dell’opzione è pari al massimo tra: Il payoff se esercitata Il valore attuale atteso sotto la probabilità risk-neutral dei payoff nei due nodi collegati al tempo successivo

Call Americana Function AmericanCall(S, X, T, rf, sigma, n) delta_t = T / n up = Exp(sigma * Sqr(delta_t)) down = Exp(-sigma * Sqr(delta_t)) R = Exp(rf * delta_t) q_up = (R - down) / (R * (up - down)) q_down = 1 / R - q_up Dim OptionReturnEnd() As Double Dim OptionReturnMiddle() As Double ReDim OptionReturnEnd(n) For State = 0 To n OptionReturnEnd(State) = Application.Max(S * _ up ^ State * down ^ (n - State) - X, 0) Next State Dichiarazione variabili ed assegnazione valori Assegnazione valori ai nodi finali

Call Americana (continua) Ciclo che sconta i payoff fino al tempo 0 For Index = n - 1 To 0 Step -1 ReDim OptionReturnMiddle(Index) For State = 0 To Index OptionReturnMiddle(State) = Application.Max(S * _ up ^ State * down ^ (Index - State) - X, _ q_down * OptionReturnEnd(State) + _ q_up * OptionReturnEnd(State + 1)) Next State ReDim OptionReturnEnd(Index) OptionReturnEnd(State) = OptionReturnMiddle(State) Next Index AmericanCall = OptionReturnMiddle(0) End Function Assegna dimensione e valori al vettore dei nodi centrali Assegna dimensione e valori al vettore dei nodi finali uguali a quelli del vettore dei nodi centrali

Proprietà opzioni Call E Put E Call A Put A S + - X T ? sigma R Div

La Distribuzione Lognormale Assunzione centrale del modello di Black & Scholes Proprietà ragionevoli dei prezzi delle azioni Esaminiamo i prezzi ed i rendimenti dell’S&P500 Usiamo la funzione matrice FREQUENZA(matr dati;matr classi) per i rendimenti e notiamo che si distribuiscono normalmente.

La Distribuzione Lognormale St+Dt=SterDt Assumiamo che il tasso di rendimento abbia una distribuzione normale, allora il prezzo dell’azione ha una distribuzione lognormale St+Dt=Ste(mDt+sZradq(Dt)) Estraiamo una serie di numeri casuali da una distribuzione normale standard ed usiamo l’equazione precedente per simulare il sentiero di prezzo dell’azione

Generazione numeri casuali Strumenti / Analisi dati / generazione numero casuale Stimiamo il valore dell’azione a fine anno utilizzando la serie di numeri casuali Usiamo la funzione frequenza e facciamo un istogramma che illustra la forma della distribuzione lognormale

Simulazione in VBA Sub simula() Dim vettore(1 To 1000) As Double For i = 1 To 1000 z = Application.NormSInv(Rnd) vettore(i) = z Cells(i, 1).Value = vettore(i) Next i End Sub

Black & Scholes Call Europea: Put Europea: Put Call Parity:

Black & Scholes Function dOne(Azione, Esercizio, Scadenza, Interesse, sigma) dOne = (Log(Azione / Esercizio) + Interesse * Scadenza) / (sigma * Sqr(Scadenza)) _ + 0.5 * sigma * Sqr(Scadenza) End Function Function BSCall(Azione, Esercizio, Scadenza, Interesse, sigma) BSCall = Azione * Application.NormSDist(dOne(Azione, Esercizio, _ Scadenza, Interesse, sigma)) - Esercizio * Exp(-Scadenza * Interesse) * _ Application.NormSDist(dOne(Azione, Esercizio, Scadenza, Interesse, sigma) _ - sigma * Sqr(Scadenza))

Black & Scholes 'Questo è il prezzo dell'opzione put B&S secondo la parità put-call Function BSPut(Azione, Esercizio, Scadenza, Interesse, sigma) BSPut = BSCall(Azione, Esercizio, Scadenza, Interesse, sigma) + _ Esercizio * Exp(-Scadenza * Interesse) - Azione End Function

Volatilità implicita Function CallVolatility(Azione, Esercizio, Scadenza, Interesse, Obiettivo) High = 1 Low = 0 Do While (High - Low) > 0.0001 If CallOption(Azione, Esercizio, Scadenza, Interesse, (High + Low) / 2) > _ Obiettivo Then High = (High + Low) / 2 Else: Low = (High + Low) / 2 End If Loop CallVolatility = (High + Low) / 2 End Function

Risolutore Componenti aggiuntivi Strumenti\Riferimenti\Solver.xla Solveradd ( cellRef, relation, formulaText) Relation: 1 <= 2 = 3 >= SolverOk (SetCell, MaxMinVal, ValueOf, ByChange) Value of: 1 max 2 min 3 al valore di SolverOptions SolverSolve