Posted by
Xavier.Abulker on
Oct 31, 2002; 6:03am
URL: http://quantlib.414.s1.nabble.com/new-faster-method-to-price-American-option-with-discrete-dividends-tp2291.html
Hello Quantlib,
I've added the Roll, Geske, Whaley method to price American Call with
discrete dividends like it is discribed in Hull 4th P271.
I've added new things:
RGWAmericanOption is the new class
cumulativebinormaldistribution(x,y,rho) is the cumulative binormal
distribution.
impliedCriticalStock is used to find the critical stock value S : c(S) = S
+ D1 - X.
In term of performance it looks like it really improves the Binonial
method.
It took me 195 seconds to price 2 000 American Options with discrete
dividends with the fddividend class,
now it takes 20 seconds to price the same 100 000 American Options with
discrete dividends.
this is how I use it:
double underlyingPrice =4000;
double strike =4000;
vector<Time> divdate;
vector<double> divamount;
divdate.push_back(0.16);
divdate.push_back(0.41);
divamount.push_back(50);
divamount.push_back(50);
Time maturity =0.5;
RGWAmericanOption
Europeanoptioniv2(Option::Call,underlyingPrice,strike,dividend,zero_rate,maturity,implvol,divamount,divdate,4331);
// the 4331 has no effect here
double criticalstrike=Europeanoptioniv2.impliedCriticalStock(4000); //
retreive the critical stock value the 4000 is the strike value
RGWAmericanOption
Europeanoptioniv3(Option::Call,underlyingPrice,strike,dividend,zero_rate,maturity,implvol,divamount,divdate,criticalstrike);
std::cout<<"American option value "<<Europeanoptioniv3.value()<<std::endl;
std::cout<<"Implied Vol value "
<<Europeanoptioniv3.impliedVolatility(327.68)<<std::endl;
Is there a good soul who would like to help me to debug it and check the
way I developped that?
Also, I have a problem with American Put options. I don' know how to apply
the Roll Geske Whaley formula.
It looks like with a critical stock price very small (e.g 1), the pricing
is not too bad but I don't know if there's something better to do.
Here, I'm just using a standard European option Pricer if I understand
correclty.
Quantlib Admin: is it something you could add in a next release please?
Thanks
Xavier
(See attached file: quantlib.hpp)(See attached file: singleassetoption.hpp)
(See attached file: rgwamericanoption.hpp)(See attached file:
singleassetoption.cpp)(See attached file: rgwamericanoption.cpp)
*************************************************************************
Ce message et toutes les pieces jointes (ci-apres le "message") sont
confidentiels et etablis a l'intention exclusive de ses destinataires.
Toute utilisation ou diffusion non autorisee est interdite.
Tout message electronique est susceptible d'alteration.
La Fimat et ses filiales declinent toute responsabilite au
titre de ce message s'il a ete altere, deforme ou falsifie.
********
This message and any attachments (the "message") are confidential and
intended solely for the addressees.
Any unauthorised use or dissemination is prohibited.
E-mails are susceptible to alteration.
Neither Fimat nor any of its subsidiaries or affiliates shall
be liable for the message if altered, changed or falsified.
*************************************************************************