2 votos

El modelo Black de Quantlib para las opciones sobre materias primas (opciones sobre tipos de interés) es extremadamente ligero en cuanto a gamma y precio frente a BBG, ¿es el modelo incorrecto?

Estoy utilizando los desarrolladores de QuantLib ejemplo para intentar fijar el precio de una opción TY. El Delta está bastante cerca, pero el precio y la gamma están muy lejos (casi por un factor de 2).

¿Estoy utilizando mal el modelo o el modelo está mal?

Este es el código

import QuantLib as ql
import math
calendar = ql.UnitedStates()
bussiness_convention = ql.ModifiedFollowing
settlement_days = 0
day_count = ql.ActualActual()

interest_rate = 25/10000
calc_date = ql.Date(1,7,2021)
yield_curve = ql.FlatForward(calc_date, 
                             interest_rate,
                             day_count,
                             ql.Compounded,
                             ql.Continuous)
ql.Settings.instance().evaluationDate = calc_date
option_maturity_date = ql.Date(23,7,2021)
strike = 133
spot = 132.40625 # futures price
volatility = 3.896/100
flavor = ql.Option.Call

discount = yield_curve.discount(option_maturity_date)
strikepayoff = ql.PlainVanillaPayoff(flavor, strike)
T = yield_curve.dayCounter().yearFraction(calc_date, 
                                          option_maturity_date)
stddev = volatility*math.sqrt(T)

black = ql.BlackCalculator(strikepayoff, 
                           spot, 
                           stddev, 
                           discount)
print("Option Price: " + str(black.value() ))
print("Delta: " + str(black.delta(spot) ))
print("Gamma: " + str(black.gamma(spot) ))
print("Theta: "+  str(black.theta(spot, T) ))
print("Vega: "+  str(black.vega(T) ))

y la salida

Categoría

Valor

Precio de la opción

0.2638741114188638

Delta

0.3216355274081426

Gamma

0.28294608317127584

Theta

-3.7640249885989223

Vega

11.648484397370504

y aquí está la captura de pantalla de BBG enter image description here

3voto

BC. Puntos 9229

Respuesta corta:

  • La gamma se calcula de forma diferente;
  • el precio es cotizado por la bolsa de una manera que QuantLib no calcula

Respuesta larga: La página DES de BBG calcula la Gamma como un 1% de cambio en el subyacente - tampoco hay flexibilidad con la página DES y frecuentemente este no es el mejor cálculo que ofrecen.

Sin embargo, puede cargar cualquier opción cotizada en sus cotizadores OTC para obtener listed modo. TYQ1C 133.00 COMB Comdty OVME carga el ticker (junto al subyacente). Se computa al revés. Este ticker se cotiza en precio (ver OMON o HP) - por lo que IVOL es un resultado, no una entrada. El precio (acción) tendrá un código de colores ya que utiliza el precio de comilla.

En cuanto a la Gamma - haga clic en Ajustes (en OVME) - Ajustes de usuario - Precios - Sección de griegas - Gamma - ajuste a 1 unit underly chg y obtienes ~27. En la misma página, puede ver fraction of days marcada. Así que la expiración es en minutos, no en días completos (y sólo quedan 21). Creo que los campos de la API (DES) también lo hacen, pero por lo general BBG es más fuerte con OV pricers y MARS que esto FLDS API (pero está muy cerca aquí, así que debería estar bien).

No puedo comentar sobre quantlib, pero ¿es realmente un solucionador de PDE? Es una opción americana. El código ql.PlainVanillaPayoff me hace preguntarme si eso no es simplemente el negro estándar? Puede que me equivoque y que me dé pereza intentarlo por mi parte ahora. En cualquier caso, los solucionadores de PDE no son triviales e impondrán algunas diferencias.

Editar

Gracias @mmencke. En realidad no vi que hicieras referencia a la documentación de qlib de todos modos Danny. Se muestra que es estándar Negro. Dicho esto, con este contrato - hay poca o ninguna diferencia teóricamente. Usted podría hackear un BS American pricer (si usted tiene uno) mediante la inclusión de un dividendo artificial igual a r y utilizando el precio futuro como el precio subyacente.

Sinceramente, no lo miré bien y me limité a responder rápidamente ya que conocía la configuración de la gamma y que el precio es una comilla de mercado. He probado en OVME ahora y es esencialmente idéntico. Si bien todo lo anterior sigue siendo válido, la comprensión de la comilla de estos es la parte difícil y no es algo que qlib se preocupa. Al fin y al cabo, sólo es Black (y no hace referencia a qué contrato es). Técnicamente también existe la distinción entre precio y yield vol pero BBG ofrece sólo price vol para TYA que coincide con Black. Puedes echar un vistazo a EDA Cmdty en OVDV y OVME para ver el rendimiento vol, tanto en el espacio lognormal como en el normal.

Presupuesto :
Las acciones que aparecen en OVME tienen el valor de 1 punto. La comilla está en puntos y fracciones de puntos a la par sobre la base de 100 puntos . En su captura de pantalla, el precio es 0'17 y el valor del tick es de 15,625 USD. Por lo tanto, lo que se ve en OVME para el precio cotizado en ese día es

  • Precio (acción): 00'17 (lo que se cotiza)
  • Precio (total): Precio (acción)*Valor de la tilde = 281,25
  • Precio (%): Precio (total) por acción / Precio subyacente => $(281.25/1000)/132-13 =0.002124$

Lo que muestra qlib no es en realidad nada de esto. Es el Precio (Total) por acción = $263.9/1000 = 0.2639$ en la captura de pantalla de abajo. Estaba anulando manualmente OVME para usar sus entradas. Por lo tanto, el precio ya no es 00'17 sino 00'16 7/8 (ahora resuelve el precio como en tu ejemplo). La captura de pantalla de la derecha utiliza un nocional más alto, para que veas los decimales exactos - y lo cerca que están los dos $236895.16/1000000=0.26389516$ . enter image description here

Ahora todo coincide esencialmente. Vega es sólo una escala y Theta no es ciertamente una theta de libro de texto en Bloomberg. Se acostumbra a calcular la theta como la verdadera theta de un día (una especie de bump y re-precio por la disminución del tiempo hasta el vencimiento, manteniendo todo lo demás igual). No tengo un ejemplo a mano, pero la theta de libro de texto puede exceder el valor real de mercado de una opción si el tiempo hasta el vencimiento es corto.

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