La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Valutazione opzioni Europee: Formula per valutazione Call Europea su albero binomiale: Put Europea:"— Transcript della presentazione:

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

2 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

3 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

4 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 Assegnazion e valori ai nodi finali

5 Call Americana (continua) 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) For State = 0 To Index OptionReturnEnd(State) = OptionReturnMiddle(State) Next State Next Index AmericanCall = OptionReturnMiddle(0) End Function Ciclo che sconta i payoff fino al tempo 0 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

6 Proprietà opzioni Call EPut ECall APut A S+-+- X-+-+ T??++ sigma++++ R+-+- Div-+-+

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

8 La Distribuzione Lognormale S t+  t =S t e r  t Assumiamo che il tasso di rendimento abbia una distribuzione normale, allora il prezzo dell’azione ha una distribuzione lognormale S t+  t =S t e (  t+  Zradq(  t)) Estraiamo una serie di numeri casuali da una distribuzione normale standard ed usiamo l’equazione precedente per simulare il sentiero di prezzo dell’azione

9 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

10 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

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

12 Black & Scholes Function dOne(Azione, Esercizio, Scadenza, Interesse, sigma) dOne = (Log(Azione / Esercizio) + Interesse * Scadenza) / (sigma * Sqr(Scadenza)) _ * 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)) End Function

13 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

14 Volatilità implicita Function CallVolatility(Azione, Esercizio, Scadenza, Interesse, Obiettivo) High = 1 Low = 0 Do While (High - Low) > 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

15 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


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

Presentazioni simili


Annunci Google