Valutazione opzioni Europee Formula per valutazione Call Europea

  • Slides: 15
Download presentation
Valutazione opzioni Europee: • Formula per valutazione Call Europea su albero binomiale: • Put

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

Call Europea Function Eur. Call(S, X, T, rf, sigma, n) delta_t = T /

Call Europea Function Eur. Call(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 Eur. Call = 0 For Index = 0 To n Eur. Call = Eur. Call + 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 è

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 American. Call(S, X, T, rf, sigma, n) delta_t = T /

Call Americana Function American. Call(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 Option. Return. End() As Double Dim Option. Return. Middle() As Double Re. Dim Option. Return. End(n) For State = 0 To n Option. Return. End(State) = Application. Max(S * _ up ^ State * down ^ (n - State) - X, 0) Next State Dichiarazione variabili ed assegnazione valori Assegnazion e valori ai nodi finali

Call Americana (continua) For Index = n - 1 To 0 Step -1 Ciclo

Call Americana (continua) For Index = n - 1 To 0 Step -1 Ciclo che sconta i payoff fino al tempo 0 Re. Dim Option. Return. Middle(Index) For State = 0 To Index Option. Return. Middle(State) = Application. Max(S * _ up ^ State * down ^ (Index - State) - X, _ q_down * Option. Return. End(State) + _ q_up * Option. Return. End(State + 1)) Next State Re. Dim Option. Return. End(Index) For State = 0 To Index Option. Return. End(State) = Option. Return. Middle(State) Next State Next Index American. Call = Option. Return. Middle(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

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à

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

La Distribuzione Lognormale • St+Dt=Ster. Dt • Assumiamo che il tasso di rendimento abbia

La Distribuzione Lognormale • St+Dt=Ster. Dt • Assumiamo che il tasso di rendimento abbia una distribuzione normale, allora il prezzo dell’azione ha una distribuzione lognormale • St+Dt=Ste(m. Dt+s. Zradq(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

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

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

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

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

Black & Scholes Function d. One(Azione, Esercizio, Scadenza, Interesse, sigma) d. One = (Log(Azione

Black & Scholes Function d. One(Azione, Esercizio, Scadenza, Interesse, sigma) d. One = (Log(Azione / Esercizio) + Interesse * Scadenza) / (sigma * Sqr(Scadenza)) _ + 0. 5 * sigma * Sqr(Scadenza) End Function BSCall(Azione, Esercizio, Scadenza, Interesse, sigma) BSCall = Azione * Application. Norm. SDist(d. One(Azione, Esercizio, _ Scadenza, Interesse, sigma)) - Esercizio * Exp(-Scadenza * Interesse) * _ Application. Norm. SDist(d. One(Azione, Esercizio, Scadenza, Interesse, sigma) _ - sigma * Sqr(Scadenza)) End Function

Black & Scholes 'Questo è il prezzo dell'opzione put B&S secondo la parità put-call

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 Call. Volatility(Azione, Esercizio, Scadenza, Interesse, Obiettivo) High = 1 Low =

Volatilità implicita Function Call. Volatility(Azione, Esercizio, Scadenza, Interesse, Obiettivo) High = 1 Low = 0 Do While (High - Low) > 0. 0001 If Call. Option(Azione, Esercizio, Scadenza, Interesse, (High + Low) / 2) > _ Obiettivo Then High = (High + Low) / 2 Else: Low = (High + Low) / 2 End If Loop Call. Volatility = (High + Low) / 2 End Function

Risolutore • Componenti aggiuntivi • StrumentiRiferimentiSolver. xla • Solveradd ( cell. Ref, relation, formula.

Risolutore • Componenti aggiuntivi • StrumentiRiferimentiSolver. xla • Solveradd ( cell. Ref, relation, formula. Text) Relation: 1 <= 2 = 3 >= • Solver. Ok (Set. Cell, Max. Min. Val, Value. Of, By. Change) Value of: 1 max 2 min 3 al valore di • Solver. Options • Solver. Solve