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.