El código fuente para Margarble la fórmula en QuantLib está aquí. La aplicación requiere de un precio a futuro se calcula:
Real forward1 = process1_->stateVariable()->value() *
dividendDiscount1 / riskFreeDiscount;
Real forward2 = process2_->stateVariable()->value() *
dividendDiscount2 / riskFreeDiscount;
¿Por qué tenemos que calcular el precio a futuro? Margrable la fórmula expresamente a los estados que libre de riesgo de tasa de interés no supone, porque nos puede el precio de la opción, en virtud de una acción de medir. La fórmula en el documento original y la wikipedia no lo requiere.
Real d1 = (std::log((quantity1*forward1)/(quantity2*forward2))
+ 0.5*variance) / stdDev;
Si uno de los dividendos es cero, podríamos entrar en una situación de registro(0). ¿De donde proceden los términos adicionales que no se muestran provienen de?