PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAHjälp med sista delen i en VBA kod för implicita volatiliteter, SNÄLLA..Hjälp med sista delen i en VBA kod för implicita volatiliteter, SNÄLLA..
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2009-09-10 20:43
 

Function ImplicitVol(Price As Double, S As Double, K As Double, r As Double, t As Double) As Double
Dim sigma  As Double
Dim ldb  As Double
Dim udb  As Double
Dim d1  As Double
Dim d2  As Double
Dim bsPrice  As Double
Dim i  As Long
   
   
ldb = 0
ubd = 2000

For i = 1 To 100
sigma = (ldb + udb) / 2
d1 = (Log(S / K) + (r + sigma ^ 2 / 2) * t) / (sigma * Sqr(t))
d2 = d1 - sigma * Sqr(t)
bsPrice = S * Application.NormSDist(d1) - K * Exp(-r * t) * Application.NormSDist(d2)

If (bsPrice > Price) Then
ubd = sigma

ElseIf (bsPrice < Price) Then
lbd = sigma
Else
ImplicitVol = sigma
End If
Next
End Function

Kan nån hjälpa mig skriva den rätt? Jag försöker lära mig detta men kört fast.. :(
Jag tror att det är rätt fram till det i fetstil men är inte 100.

Snälla jag är desperat :D

 

 

Nytt inlägg
 2009-09-11 09:38
 

Hej Jayman,

Det låter som att detta är en skoluppgift?

Jag är inte speciellt insatt i optionshandel, och känner i synnerhet inte till beräkningen av implicita volatiliteter, men du verkar ju ändå ha en färdig formel för det?

Det ser dessutom ut som en binärsökning, vilket är vanligt inom datalogi. Jag kan därför inte hjälpa dig med själva beräkningen, men jag kan ge några tips:

1. Börja med att konstatera att bsPrice beräknas rätt. Använd värden på K, S, R, t och sigma där du vet vad priset skall bli.

2. När du är säker på att beräkningen är rätt så bör du börja med att skriva ut varje värde på sigma för att se att de faktiskt konvergerar.

3. Slutligen måste du alltid tilldela till ImplicitVol innan koden har körts klart. Det är förmodligen det som är problemet nu. (lägg då bara ImplicitVol=sigma sist i funktionen)

4. Alternativt så ändrar du villkoret till bsPrice > Price+0.5 eller något i den stilen (och motsv. för <), så att du godkänner ett större intervall runt Price.

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAHjälp med sista delen i en VBA kod för implicita volatiliteter, SNÄLLA..Hjälp med sista delen i en VBA kod för implicita volatiliteter, SNÄLLA..

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter