- Codice: Seleziona tutto
Function Call_Theta(Prezzo, Strike, Giorni, Tasso, Volatilità, Optional Dividendo)
Tempo = Giorni / 365
If IsMissing(Dividendo) Then
d1 = (Log(Prezzo / Strike) + (Tasso + Volatilità ^ 2 / 2) * Tempo) / (Volatilità * Sqr(Tempo))
d2 = d1 - (Volatilità * Sqr(Tempo))
A = Prezzo * Normale(d1) * Volatilità / (2 * Sqr(Tempo))
B = Tasso * Strike * Exp(-Tasso * Tempo) * Application.NormSDist(d2)
Call_Theta = Round(-A - B, 4)
Else
d1 = (Log(Prezzo / Strike) + (Tasso - Dividendo + Volatilità ^ 2 / 2) * Tempo) / (Volatilità * Sqr(Tempo))
d2 = d1 - (Volatilità * Sqr(Tempo))
A = Prezzo * Normale(d1) * Volatilità * Exp(-Dividendo * Tempo) / (2 * Sqr(Tempo))
B = Dividendo * Prezzo * Application.NormSDist(d1) * Exp(-Dividendo * Tempo)
C = Tasso * Strike * Exp(-Tasso * Tempo) * Application.NormSDist(d2)
Call_Theta = Round(-A + B - C, 4)
End If
End Function