2 votos

QuantLib-Python: Dividiendo el VAN de una opción en intrínseco y tiempo

Ahora mismo estoy trabajando en el "libro de cocina" de Goutham Balaraman y Luigi Ballabio. Por cierto una muy buena introducción en QuantLib-Python y un buen punto de partida :-)

En la sección cuatro se encuentra el siguiente ejemplo que valora una opción simple con Black&Scholes:

from QuantLib import *

today = Date(7, March, 2014)
Settings.instance().evaluationDate = today

# The Instrument
option = EuropeanOption( PlainVanillaPayoff(Option.Call, 100.0),
                         EuropeanExercise(Date(7, June, 2014)))

# The Market
u = SimpleQuote(100.0)      # set todays value of the underlying
r = SimpleQuote(0.01)       # set risk-free rate 
sigma = SimpleQuote(0.20)   # set volatility
riskFreeCurve = FlatForward(0, TARGET(), QuoteHandle(r), Actual360())
volatility = BlackConstantVol(0, TARGET(), QuoteHandle(sigma), Actual360())

# The Model
process = BlackScholesProcess( QuoteHandle(u), 
                               YieldTermStructureHandle(riskFreeCurve),
                               BlackVolTermStructureHandle(volatility))

# The Pricing Engine
engine = AnalyticEuropeanEngine(process)

# The Result
option.setPricingEngine(engine)
print( "NPV: ", option.NPV() )

El código escupe el VAN de la opción.

En la universidad aprendí una vez que el valor de una opción podía dividirse en una parte "intrínseca" y otra "temporal". ¿Es posible lograr esto con QouantLib-Python?

 NPV_intrinsic = max([ 0 , u.value() - option.getStrike() ]) 

Lo anterior no funciona porque 'option.getStrike()' no existe :-(

¡Muchas gracias!

1 votos

No creo que necesites QuantLib para calcular el valor intrínseco de tu opción. Es sencillo obtener max(S - K, 0) Una vez que se tiene esto, el valor temporal es sólo el precio menos el valor intrínseco.

0 votos

Si insiste en utilizar QuantLib para el valor intrínseco, puede obtenerlo utilizando un duplicado de la opción que está valorando pero con vencimiento = hoy.

0 votos

Tienes razón. La ecuación es simple. Así que no necesito que QuntLib la calcule por mí. Pero necesito reextraer el strike del objeto-opción y no tengo idea de cómo lograrlo

2voto

Brad Tutterow Puntos 5628

El método que busca es option.payoff() que devuelve el pago P de la opción como un objeto función; el valor intrínseco sería entonces P(u.value()) .

Sin embargo, el método está disponible en C++ pero aún no se ha exportado a Python. Te sugiero que abras un issue sobre esto en https://github.com/lballabio/QuantLib-SWIG/issues para que los desarrolladores puedan recogerlo.

0 votos

La función de pago evaluada en el precio. Eso tiene todo el sentido. ¡Gracias!

1 votos

La cuestión se ha añadido en GitHub, aquí: github.com/lballabio/QuantLib-SWIG/issues/113

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X