La clase derivada es una Opción vainilla sobre un futuro y necesito especificar el vencimiento del futuro subyacente, que en general es diferente (posterior) al vencimiento de la opción Vanilla. He implementado un par de PricingEngine
que se derivan de VanillaOption::engine
y por el momento sus respectivos calculate()
Los métodos suponen que el vencimiento del futuro coincide con el vencimiento de la opción.
Pienso proceder de la siguiente manera:
- Declarar la clase derivada VanillaOptionFuture de la siguiente manera:
class VanillaOptionFuture : public VanillaOption
- Defina un nuevo tipo de argumento para esta clase como sigue:
class VanillaOptionFuture::arguments : public VanillaOption::arguments
y añadir un nuevo campo llamadofutureExpiry_
. - Redefinir el método
setupArguments
para la claseVanillaOptionFuture
para llamar al método homónimo de la claseVanillaOption
además de establecer elfutureExpiry_
de la clase de argumentos, que se pasará al constructor de la clase.
Pregunta: Me gustaría que mis motores de precios funcionaran para el caso general de un VanillaOption
con el comportamiento por defecto futureExpiry_ = arguments_.exercise->lastDate()
. Estaba pensando en dejar las declaraciones de mis motores de precios tal y como están y tratar los dos casos directamente en el calculate()
métodos mediante el uso de boost::dynamic_pointer_cast
. ¿Cree que esta es la forma correcta de proceder? Gracias por cualquier consejo.