Hello Quantlib Group,
I've added a new method into singleassetoption
this is a method impliedDivYield which returns the equivalent continuous
dividend yield for American options given the option Price and implied Vol.
example:
Option Type: American Call
Name: CAC40
Underlying: 3897.37
Strike: 3900
Today 10/19/2001
Maturity: 10/17/2002
Risk free rate: 9.5253%
The vector of dividends dates in fraction of year
vector<Time> divdate;
divdate.push_back(0.2);
divdate.push_back(0.5);
The array of dividends amount
vector<double> divamount;
divamount.push_back(150);
divamount.push_back(600);
Dividend Yield: 0%
given Price from market : 456.16
The implied vol deduced from quantlib is 0.417226
I input this option into a new American Option in Quantlib
Option Type: American Call
Name: CAC40
Underlying: 3897.37
Strike: 3900
Maturity: 10/17/2002
Risk free rate: 9.5253%
Implied vol : 0.417226
Dividend Yield: 20.3248%
Price deduced is 456.149
I find this amount calling:
double volatility = 0.417226; // dummy volatility won't be used
Rate riskFreeRate = 0.095253; // 9.5 % risk free rate, possibel
enhancement: to be specified by Option
FdAmericanOption Ameroptioniv(Option::Call,
3897.37,3900,
0.203262,0.095253
0.994521,
volatility,365,300);
std::cout<<"Option value "<<Ameroptioniv.value()<<std::endl;
std::cout<< " ** Implied Yield is: "
<< Ameroptioniv.impliedDivYield(456.16)<<std::endl;
I use this method because many major commercial reporting tools only work
with continous dividend yield and not with discrete dividend yield.
Could you please add this new method into the Core Quantlib?
Thanks
Xavier
(See attached file: singleassetoption.cpp)(See attached file:
singleassetoption.hpp)