Following examples\EquityOption\EquityOption.cpp, I tried to value an
american option on underly that has discrete dividend schedule by simply changing the EuropeanOption to DividendVanillaOption: DividendVanillaOption(stochProcess, payoff, exercise, dividendDates, dividendAmount, engine) Where stochProcess is Black ScholesMertonProcess, engine is CoxRossRubinstern, payoff is standard american payoff, div amount and dates are preset vectors: boost::shared_ptr<PricingEngine> engine( new BinomialVanillaEngine<CoxRossRubinstein>(timesteps) ); boost::shared_ptr<StochasticProcess> stochProcess(new BlackScholesMertonProcess(Handle<Quote>(spot), Handle<YieldTermStructure>(qTS), Handle<YieldTermStructure>(rTS), Handle<BlackVolTermStructure>(volTS)) ); boost::shared_ptr<StrikedTypePayoff> payoff(new PlainVanillaPayoff(call_or_put, K)); Date settlementDate = today; // assume this option is exercisable from today. boost::shared_ptr<Exercise> exercise( new AmericanExercise(settlementDate, maturity)); However during runtime, exceptions pops up from DividendVanillaOption::setupArguments, telling me "wrong engine type". Can someone tell me whether DividendVanillaOption can be used along with CRR model binomial engine? Thank you Yun -------------- next part -------------- An HTML attachment was scrubbed... ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
On Thu, 2007-02-08 at 23:00 -0600, Bai, Yun wrote:
> Following examples\EquityOption\EquityOption.cpp, I tried to value an > american option on underly that has discrete dividend schedule by simply > changing the EuropeanOption to DividendVanillaOption: > However during runtime, exceptions pops up from > DividendVanillaOption::setupArguments, telling me "wrong engine type". > Can someone tell me whether DividendVanillaOption can be used along with > CRR model binomial engine? Yun, no, unfortunately it can't. The CRR engine (or any binomial-tree engine) cannot yet manage discrete dividends. Would you be willing to contribute a patch? Later, Luigi ---------------------------------------- Everything that can be invented has been invented. -- Charles Duell, Director of U.S. Patent Office, 1899 ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Luigi, Yun,
I also need CRR binomial-tree engine with discrete dividends and will be implementing this functionality in the short term. Any chance of cooperation on this Yun? Luigi: since I am still not familiar with the code do you have any tips on how to go about implementing this? Any other code already implemented I can base it on? Thanks. Best regards, --Pedro. Luigi Ballabio wrote: > On Thu, 2007-02-08 at 23:00 -0600, Bai, Yun wrote: >> Following examples\EquityOption\EquityOption.cpp, I tried to value an >> american option on underly that has discrete dividend schedule by simply >> changing the EuropeanOption to DividendVanillaOption: > >> However during runtime, exceptions pops up from >> DividendVanillaOption::setupArguments, telling me "wrong engine type". >> Can someone tell me whether DividendVanillaOption can be used along with >> CRR model binomial engine? > > Yun, > no, unfortunately it can't. The CRR engine (or any binomial-tree > engine) cannot yet manage discrete dividends. Would you be willing to > contribute a patch? > > Later, > Luigi > > > ---------------------------------------- > > Everything that can be invented has been invented. > -- Charles Duell, Director of U.S. Patent Office, 1899 > > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier. > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
It will be great to work on it together. I have worked with Mike and
come close to an implementation. Following known dollar dividend model, chp 18.3 of Hull's 5th edition, we tried two designs. Please feel free to advice on our methodolody and understanding of QuantLib's framework. A simple way to to implement discrete dividend for Tree models is to separate underlying process into two parts: - An modified smooth process similar to input process, stripped of pv of future divdends. - A scheduled dividendcash flow. During backward induction of option value, we will need the following information to come up with intrinsic and hence option value at each node. - Value of option on previous level of nodes. - Underlying value from modified smooth process. - Dividend schedule Design option 1: Have a payoff object that encloses all logic of dividend adjustment while leaving the dividend stripped underly diffuse with BinomialVanillaEngine. This sounds the simplest solution. However, this requires extending payoff interface to provide T on top of S, which requires more changes to the framework. Design option 2: create discretizedvanilaoption and binomialdividenvanilaengine, to mirror discretizedoption and binomialengine pair. Following option 2, we are getting close to an implementation. However, option2 requires duplication of much of binomialengine code, to circumvent restriction of vanilaoption's argument type in binomialvanilaengine template. Please advice on how would you implement this feature without duplication of code. Thanks -Yun -----Original Message----- From: Pedro Romano [mailto:[hidden email]] Sent: Saturday, February 10, 2007 10:05 AM To: Luigi Ballabio; Bai, Yun Cc: [hidden email] Subject: Re: Can CRR model valuate options on stocks with discrete dividend schedule? Luigi, Yun, I also need CRR binomial-tree engine with discrete dividends and will be implementing this functionality in the short term. Any chance of cooperation on this Yun? Luigi: since I am still not familiar with the code do you have any tips on how to go about implementing this? Any other code already implemented I can base it on? Thanks. Best regards, --Pedro. Luigi Ballabio wrote: > On Thu, 2007-02-08 at 23:00 -0600, Bai, Yun wrote: >> Following examples\EquityOption\EquityOption.cpp, I tried to value an >> american option on underly that has discrete dividend schedule by simply >> changing the EuropeanOption to DividendVanillaOption: > >> However during runtime, exceptions pops up from >> DividendVanillaOption::setupArguments, telling me "wrong engine type". >> Can someone tell me whether DividendVanillaOption can be used along with >> CRR model binomial engine? > > Yun, > no, unfortunately it can't. The CRR engine (or any binomial-tree > engine) cannot yet manage discrete dividends. Would you be willing to > contribute a patch? > > Later, > Luigi > > > ---------------------------------------- > > Everything that can be invented has been invented. > -- Charles Duell, Director of U.S. Patent Office, 1899 > > > > - > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier. > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Free forum by Nabble | Edit this page |