Estoy tratando de averiguar la fórmula para calcular la volatilidad implícita de una opción americana sobre una acción que paga dividendos (pagos discretos o rendimiento anualizado).
En la página 171 de Haug
El siguiente código se proporciona para el algoritmo de bisección, junto con el comentario: " Con pequeñas modificaciones, la función también puede utilizarse para encontrar la volatilidad implícita de las opciones americanas y exóticas ". Sin embargo, no he podido encontrar más información en el libro (o en Internet), que proporcione instrucciones sobre la(s) modificación(es) necesaria(s).
Incluyo el código de la función a continuación, espero que alguien pueda sugerir las modificaciones necesarias:
function BisectionAlgorithm(CallPutFlag As String, S As Double, X as Double, T As Double,
r As Double, b as Double, cm As Double) As Double
Dim vLow as Double, vHigh As Double, vi as Double
Dim cLow As Double, cHigh As Double, epsilon as Double, tempval As Double
vLow=0.01
vHigh=1
epsilon=0.000001
cLow = GBlackScholes(CallPutFlag,S,X,T,r,b,vLow)
cHigh = GBlackScholes(CallPutFlag,S,X,T,r,b,vHigh)
vi=vLow+(cm-cLow)*(vHigh-vLow)/(cHigh-cLow)
tempval=GBlackScholes(CallPutFlag,S,X,T,r,b,vi)
While Abs(cm-tempval) > epsilon
if tempval < cm Then
vLow=vi
Else
vHigh=vi
End If
cLow = GBlackScholes(CallPutFlag,S,X,T,r,b,vLow)
cHigh = GBlackScholes(CallPutFlag,S,X,T,r,b,vHigh)
vi=vLow+(cm-cLow)*(vHigh-vLow)/(cHigh-cLow)
tempval=GBlackScholes(CallPutFlag,S,X,T,r,b,vi)
Wend
BisectionAlgorithm=vi
End Function