6 votos

Constructor de BlackProcess $x_{0}$ en QuantLib

Actualmente estoy utilizando BlackProcess a las opciones de precio y tengo una duda relacionada con el $x_{0}$ del constructor: Me he dado cuenta de que debería ser el precio a plazo del valor, porque el modelo de Black lo utiliza para tener en cuenta, por ejemplo, la rentabilidad implícita de los dividendos y, al final, utiliza la estructura de plazos libre de riesgo para descontar los precios de las opciones.

Este es mi fragmento de código:

  // ...
  // Exercise
  boost::shared_ptr< Exercise > europeanExercise(
      new EuropeanExercise(maturity));

  // Select underlying price according to maturity date
  boost::shared_ptr< Quote > underlyingQ;
  for(int i = 0; i < maturityArray_.size(); i++)
  {
      if(maturity == maturityArray_[i])
      {
          underlyingQ.reset(new SimpleQuote(forwardPrices[i]));
          break;
      }
  }
  if (!underlyingQ)
      return -1.0; // Error?
  Handle< Quote > underlyingH(underlyingQ);

  // Bootstrap interest rates curve
  Handle< YieldTermStructure > riskFreeTSH(riskFreeTS);

  // Payoff
  boost::shared_ptr< StrikedTypePayoff > payoff(
      new PlainVanillaPayoff(type, strike));

  // Process
  boost::shared_ptr< BlackProcess > blackProcess(
      new BlackProcess(underlyingH, riskFreeTSH, Handle< BlackVolTermStructure >(forwardVolSurface_)));

  // Options
  VanillaOption europeanOption(payoff, europeanExercise);
  europeanOption.setPricingEngine(boost::shared_ptr< PricingEngine >(
                                       new AnalyticEuropeanEngine(blackProcess)));
  //...

maturityArray_ y forwardPrices son matrices de la misma longitud que contienen fechas y precios a plazo.

Como puedes ver, underlyingQ se elige de entre una serie de precios a plazo mediante la coincidencia de la fecha de vencimiento de maturityArray_ y luego se utiliza en BlackProcess constructor como $x_{0}$ ¿Es esto correcto? O es $x_{0}$ ¿se supone que es el precio al contado subyacente?

Pregunto esto porque la fijación de precios de algunos cientos de opciones utilizando las entradas de Bloomberg (volatilidad implícita media, precios a plazo implícitos y curva de tipos de depósito) devuelve valores razonables que son ligeramente diferentes de lo que veo en los libros. Actualmente estoy trabajando con las opciones del índice EURO STOXX 50® (OESX) y el tipo de error en la fijación de precios es algo así como un desplazamiento paralelo: esto me sugiere un problema relacionado con las estructuras de plazos, no con las volatilidades implícitas u otros insumos.

0 votos

Cuando leo a través de europeanoption.cpp en el directorio de ejemplos, es el lugar.

0 votos

Ya veo, pero en ese ejemplo BlackProcess no se utiliza realmente: al contrario, BlackScholesMertonProcess se toma, para lo cual se utiliza el punto como $x_{0}$ es teóricamente correcto.

4voto

Brad Tutterow Puntos 5628

El proceso debe contener el precio al contado. El AnalyticEuropeanEngine se encargará de calcular el precio a plazo a partir de los datos que le pases en el proceso (en este caso al contado y sin riesgo) y el vencimiento de la opción.

Sin embargo, tal y como está implementado en QuantLib, el BlackProcess asume que no hay rentabilidad por dividendos. Si desea modelar algún tipo de rendimiento implícito, probablemente tendrá que utilizar una clase más genérica (como BlackScholesMertonProcess ) y pásale la rentabilidad por dividendo que has estimado.

0 votos

"[...] El BlackProcess clase asume que no hay rendimiento de dividendos ", ahí está la respuesta. Mi creencia era que $x_{0}$ era el precio a plazo, el motor hacía todos los cálculos "a plazo" (teniendo en cuenta implícitamente el coste del carry) y, por último, utilizaba la TS libre de riesgo para descontar los precios. En realidad, me equivoqué. Por favor, espere a que compruebe los cálculos en BlackScholesMertonProcess proceso con un TS de rentabilidad de dividendos antes de aceptar su amable respuesta. Supongo que dicha TS debería contener rendimientos anuales de dividendos, como una TS de tipos de interés (el constructor pide un Handle< YieldTermStructure > para ambos).

1 votos

Rentabilidad anual de los dividendos, eso es correcto.

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