You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(17) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(23) |
| 2002 |
Jan
(18) |
Feb
(20) |
Mar
(22) |
Apr
(41) |
May
(28) |
Jun
(25) |
Jul
(10) |
Aug
(7) |
Sep
(5) |
Oct
(20) |
Nov
(13) |
Dec
(11) |
| 2003 |
Jan
(28) |
Feb
(5) |
Mar
(6) |
Apr
(5) |
May
(17) |
Jun
(6) |
Jul
(45) |
Aug
(35) |
Sep
(24) |
Oct
(50) |
Nov
(53) |
Dec
(6) |
| 2004 |
Jan
(4) |
Feb
(10) |
Mar
(52) |
Apr
(46) |
May
(8) |
Jun
(25) |
Jul
(12) |
Aug
(6) |
Sep
(8) |
Oct
(8) |
Nov
(9) |
Dec
(7) |
| 2005 |
Jan
(18) |
Feb
(60) |
Mar
(19) |
Apr
(26) |
May
(14) |
Jun
(27) |
Jul
(8) |
Aug
(15) |
Sep
(19) |
Oct
(53) |
Nov
(20) |
Dec
(23) |
| 2006 |
Jan
(16) |
Feb
(27) |
Mar
(33) |
Apr
(51) |
May
(36) |
Jun
(25) |
Jul
(54) |
Aug
(30) |
Sep
(25) |
Oct
(67) |
Nov
(43) |
Dec
(13) |
| 2007 |
Jan
(23) |
Feb
(27) |
Mar
(55) |
Apr
(79) |
May
(60) |
Jun
(66) |
Jul
(46) |
Aug
(30) |
Sep
(90) |
Oct
(49) |
Nov
(85) |
Dec
(74) |
| 2008 |
Jan
(68) |
Feb
(59) |
Mar
(64) |
Apr
(28) |
May
(66) |
Jun
(35) |
Jul
(73) |
Aug
(76) |
Sep
(65) |
Oct
(46) |
Nov
(41) |
Dec
(19) |
| 2009 |
Jan
(46) |
Feb
(90) |
Mar
(51) |
Apr
(104) |
May
(13) |
Jun
(24) |
Jul
(20) |
Aug
(39) |
Sep
(109) |
Oct
(101) |
Nov
(117) |
Dec
(57) |
| 2010 |
Jan
(55) |
Feb
(42) |
Mar
(39) |
Apr
(22) |
May
(33) |
Jun
(41) |
Jul
(25) |
Aug
(52) |
Sep
(75) |
Oct
(60) |
Nov
(62) |
Dec
(52) |
| 2011 |
Jan
(70) |
Feb
(31) |
Mar
(26) |
Apr
(28) |
May
(17) |
Jun
(38) |
Jul
(51) |
Aug
(35) |
Sep
(27) |
Oct
(35) |
Nov
(10) |
Dec
(20) |
| 2012 |
Jan
(21) |
Feb
(29) |
Mar
(13) |
Apr
(37) |
May
(33) |
Jun
(12) |
Jul
(34) |
Aug
(27) |
Sep
(29) |
Oct
(35) |
Nov
(58) |
Dec
(27) |
| 2013 |
Jan
(27) |
Feb
(16) |
Mar
(40) |
Apr
(16) |
May
(34) |
Jun
(37) |
Jul
(6) |
Aug
(3) |
Sep
(4) |
Oct
(49) |
Nov
(13) |
Dec
(12) |
| 2014 |
Jan
(15) |
Feb
(21) |
Mar
(11) |
Apr
(13) |
May
(27) |
Jun
(60) |
Jul
(19) |
Aug
(29) |
Sep
(20) |
Oct
(28) |
Nov
(41) |
Dec
(15) |
| 2015 |
Jan
(33) |
Feb
(29) |
Mar
(26) |
Apr
(17) |
May
(2) |
Jun
(13) |
Jul
(21) |
Aug
(30) |
Sep
(22) |
Oct
(15) |
Nov
(46) |
Dec
(20) |
| 2016 |
Jan
(6) |
Feb
(5) |
Mar
(9) |
Apr
(15) |
May
(9) |
Jun
(4) |
Jul
(3) |
Aug
(4) |
Sep
(39) |
Oct
(8) |
Nov
(5) |
Dec
(8) |
| 2017 |
Jan
(4) |
Feb
(14) |
Mar
(4) |
Apr
(16) |
May
(5) |
Jun
(10) |
Jul
(25) |
Aug
(2) |
Sep
(5) |
Oct
(11) |
Nov
(8) |
Dec
(11) |
| 2018 |
Jan
(7) |
Feb
(4) |
Mar
|
Apr
(1) |
May
(4) |
Jun
(21) |
Jul
(8) |
Aug
(3) |
Sep
(2) |
Oct
(2) |
Nov
(1) |
Dec
|
| 2019 |
Jan
(1) |
Feb
(5) |
Mar
(18) |
Apr
(9) |
May
(5) |
Jun
(21) |
Jul
(25) |
Aug
(25) |
Sep
(4) |
Oct
(2) |
Nov
(2) |
Dec
(5) |
| 2020 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
(2) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(2) |
Nov
(6) |
Dec
|
| 2021 |
Jan
(1) |
Feb
|
Mar
(2) |
Apr
(1) |
May
(4) |
Jun
|
Jul
(1) |
Aug
|
Sep
(2) |
Oct
(9) |
Nov
(1) |
Dec
(5) |
| 2022 |
Jan
(7) |
Feb
(3) |
Mar
|
Apr
(2) |
May
(5) |
Jun
(3) |
Jul
(3) |
Aug
(3) |
Sep
(3) |
Oct
(14) |
Nov
|
Dec
(1) |
| 2023 |
Jan
(10) |
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
(2) |
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(5) |
Nov
|
Dec
|
| 2024 |
Jan
(8) |
Feb
|
Mar
(2) |
Apr
(1) |
May
|
Jun
|
Jul
(4) |
Aug
(5) |
Sep
|
Oct
(4) |
Nov
(1) |
Dec
(1) |
| 2025 |
Jan
(3) |
Feb
(2) |
Mar
(2) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2026 |
Jan
(1) |
Feb
(12) |
Mar
|
Apr
(2) |
May
(8) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Luigi B. <lui...@gm...> - 2014-06-15 14:35:31
|
Yes, the timing might be off. I suspect that the Boost timer is reporting the total CPU time, that is, the sum of the actual time per each CPU. On my box, if I run the BermudanSwaption example with OpenMP enabled, it outputs: Run completed in 2 m 35 s but if I call it through "time", I get an output like: real 1m19.767s user 2m34.183s sys 0m0.538s that is, total CPU time 2m34s, but real time 1m19s. Being the untrusting individual that I am, I also timed it with a stopwatch. The elapsed time is actually 1m19s :) This said, I still see a little slowdown in the test cases Peter listed. My times are: AmericanOptionTest: disabled 2.4s, enabled 3.4s (real time) AsianOptionTest: disabled 10.6s, enabled 10.4s BarrierOptionTest: disabled 4.9s, enabled 6.1s DividendOptionTest: disabled 5.1s, enabled 6.5s FdHestonTest: disabled 73.4s, enabled 76.8s FdmLinearOpTest: disabled 11.4s, enabled 11.6s Not much, but a bit slower anyway. I've only got 2 CPUs though (and I compiled with -O2). Peter, what do you get on your 8 CPUs if you run the cases via "time"? Luigi On Sun, Jun 15, 2014 at 3:40 PM, Joseph Wang <joe...@gm...> wrote: > > That's quite odd since OpenMP should not be causing such huge slowdowns. > > Since by default the items are not complied, I'd rather keep the pragma's > there. > > Also is there any possibilities that the timing code is off? > > ------------------------------------------------------------------------------ > HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions > Find What Matters Most in Your Big Data with HPCC Systems > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > Leverages Graph Analysis for Fast Processing & Easy Data Exploration > http://p.sf.net/sfu/hpccsystems > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > -- <https://implementingquantlib.blogspot.com> <https://twitter.com/lballabio> |
|
From: Joseph W. <joe...@gm...> - 2014-06-15 13:41:07
|
That's quite odd since OpenMP should not be causing such huge slowdowns. Since by default the items are not complied, I'd rather keep the pragma's there. Also is there any possibilities that the timing code is off? |
|
From: Klaus S. <kl...@sp...> - 2014-06-15 12:00:23
|
Hi Peter, I share your experiences, OpenMP slows down QL on my hardware as well. OpenMP might work for very large problems but for "normal" problems the overhead kills the speed-up. I'd rather remove it. regards Klaus On Saturday, June 14, 2014 08:10:55 PM Peter Caspers wrote: > Hello, > > enabling OpenMP slows down the test-suite on my maching significantly. > Compiling with gcc 4.10.0 and O3 on my i7-2760QM@2.40GHz I get the > timings below (left = OpenMP enabled, right = disabled), using all 8 > threads. > > Am I doing something wrong here, does anyone gets a different picture > ? If no I wonder, should we better remove the existing #pragmas in the > fd and tree part of the library again ? > > Thanks a lot > Peter > > Testing Barone-Adesi and Whaley approximation for American options... > Testing Bjerksund and Stensland approximation for American options... > Testing Ju approximation for American options... > Testing finite-difference engine for American options... > Testing finite-differences American option greeks... > Testing finite-differences shout option greeks... > > Tests completed in 20.25 s / Tests completed in 1.63 s > > Testing analytic continuous geometric average-price Asians... > Testing analytic continuous geometric average-price Asian greeks... > Testing analytic discrete geometric average-price Asians... > Testing analytic discrete geometric average-strike Asians... > Testing Monte Carlo discrete geometric average-price Asians... > Testing Monte Carlo discrete arithmetic average-price Asians... > Testing Monte Carlo discrete arithmetic average-strike Asians... > Testing discrete-averaging geometric Asian greeks... > Testing use of past fixings in Asian options... > > Tests completed in 19.28 s / Tests completed in 6.16 s > > Testing barrier options against Haug's values... > Testing barrier options against Babsiri's values... > Testing barrier options against Beaglehole's values... > Testing local volatility and Heston FD engines for barrier options... > > Tests completed in 13.86 s / Tests completed in 2.70 s > > Testing dividend European option values with no dividends... > Testing dividend European option with a dividend on today's date... > Testing dividend European option greeks... > Testing finite-difference dividend European option values... > Testing finite-differences dividend European option greeks... > Testing finite-differences dividend American option greeks... > Testing degenerate finite-differences dividend European option... > Testing degenerate finite-differences dividend American option... > > Tests completed in 25.06 s / Tests completed in 3.55 s > > Testing FDM with barrier option for Heston model vs Black-Scholes model... > Testing FDM with barrier option in Heston model... > Testing FDM with American option in Heston model... > Testing FDM Heston for Ikonen and Toivanen tests... > Testing FDM Heston with Black Scholes model... > Testing FDM with European option with dividends in Heston model... > Testing FDM Heston convergence... > > Tests completed in 3 m 31.86 s / Tests completed in 44.90 s > > Testing indexing of a linear operator... > Testing uniform grid mesher... > Testing application of first-derivatives map... > Testing application of second-derivatives map... > Testing application of second-order mixed-derivatives map... > Testing triple-band map solution... > Testing FDM with barrier option in Heston model... > Testing FDM with American option in Heston model... > Testing FDM with express certificate in Heston model... > Testing FDM with Heston Hull-White model... > Testing bi-conjugated gradient stabilized algorithm with Heston operator... > Testing Crank-Nicolson with initial implicit damping steps for a > digital option... > Testing SparseMatrixReference type... > Testing assignment to zero in sparse matrix... > > Tests completed in 46.73 s / Tests completed in 6.63 s > > ---------------------------------------------------------------------------- > -- HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions > Find What Matters Most in Your Big Data with HPCC Systems > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > Leverages Graph Analysis for Fast Processing & Easy Data Exploration > http://p.sf.net/sfu/hpccsystems > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
|
From: Peter C. <pca...@gm...> - 2014-06-14 18:11:03
|
Hello, enabling OpenMP slows down the test-suite on my maching significantly. Compiling with gcc 4.10.0 and O3 on my i7-2760QM@2.40GHz I get the timings below (left = OpenMP enabled, right = disabled), using all 8 threads. Am I doing something wrong here, does anyone gets a different picture ? If no I wonder, should we better remove the existing #pragmas in the fd and tree part of the library again ? Thanks a lot Peter Testing Barone-Adesi and Whaley approximation for American options... Testing Bjerksund and Stensland approximation for American options... Testing Ju approximation for American options... Testing finite-difference engine for American options... Testing finite-differences American option greeks... Testing finite-differences shout option greeks... Tests completed in 20.25 s / Tests completed in 1.63 s Testing analytic continuous geometric average-price Asians... Testing analytic continuous geometric average-price Asian greeks... Testing analytic discrete geometric average-price Asians... Testing analytic discrete geometric average-strike Asians... Testing Monte Carlo discrete geometric average-price Asians... Testing Monte Carlo discrete arithmetic average-price Asians... Testing Monte Carlo discrete arithmetic average-strike Asians... Testing discrete-averaging geometric Asian greeks... Testing use of past fixings in Asian options... Tests completed in 19.28 s / Tests completed in 6.16 s Testing barrier options against Haug's values... Testing barrier options against Babsiri's values... Testing barrier options against Beaglehole's values... Testing local volatility and Heston FD engines for barrier options... Tests completed in 13.86 s / Tests completed in 2.70 s Testing dividend European option values with no dividends... Testing dividend European option with a dividend on today's date... Testing dividend European option greeks... Testing finite-difference dividend European option values... Testing finite-differences dividend European option greeks... Testing finite-differences dividend American option greeks... Testing degenerate finite-differences dividend European option... Testing degenerate finite-differences dividend American option... Tests completed in 25.06 s / Tests completed in 3.55 s Testing FDM with barrier option for Heston model vs Black-Scholes model... Testing FDM with barrier option in Heston model... Testing FDM with American option in Heston model... Testing FDM Heston for Ikonen and Toivanen tests... Testing FDM Heston with Black Scholes model... Testing FDM with European option with dividends in Heston model... Testing FDM Heston convergence... Tests completed in 3 m 31.86 s / Tests completed in 44.90 s Testing indexing of a linear operator... Testing uniform grid mesher... Testing application of first-derivatives map... Testing application of second-derivatives map... Testing application of second-order mixed-derivatives map... Testing triple-band map solution... Testing FDM with barrier option in Heston model... Testing FDM with American option in Heston model... Testing FDM with express certificate in Heston model... Testing FDM with Heston Hull-White model... Testing bi-conjugated gradient stabilized algorithm with Heston operator... Testing Crank-Nicolson with initial implicit damping steps for a digital option... Testing SparseMatrixReference type... Testing assignment to zero in sparse matrix... Tests completed in 46.73 s / Tests completed in 6.63 s |
|
From: Eric E. <eri...@na...> - 2014-06-13 09:24:28
|
Hello, > I use qlgensrc project from 1.2.0 version > 1>> File "c:\QL\QuantLib-1.4\build_ql_1_4_0\gensrc\gensrc.py", line You say you are using gensrc 1.2, but the error indicates version 1.4 - are you mixing two different versions? That would not work. > I would like to expose functions to Cpp Client, but errors occur > from Python Code when I rebuild qlgensrc project: > For these following functions: I am not sure I understand. If I remember correctly, under 1.2, the C++ addin compiles out of the box. Are you modifying that? What did you change? Kind Regards, Eric =================================================== Eric Ehlers nazcatech sprl | Brussels | http://www.nazcatech.be * Distributed computing for pricing analytics * Use Microsoft Excel as a client to the Grid |
|
From: Eric E. <eri...@na...> - 2014-06-13 09:20:53
|
Hello, > In termstructures.xml , for qlInterpolatedYieldCurve, the InterpolatorID is > defined as a string and there is a complicated parsing algorithm to convert > that to an enum. That is a special case where enumerations in the addin are converted into templates in C++. > But according to > http://quantlib.org/quantlibaddin/extend_enum_tutorial.html the parameters > can be declared as enums directly in the XML. That would be the usual way to do it. > How should I proceed? I guess it depends on your requirements. I would start by attempting the approach explained in the documentation, if that doesn't do what you want then you might need to customize it. Kind Regards, Eric =================================================== Eric Ehlers nazcatech sprl | Brussels | http://www.nazcatech.be * Distributed computing for pricing analytics * Use Microsoft Excel as a client to the Grid |
|
From: Francois B. <ig...@gm...> - 2014-06-11 12:20:06
|
Hi, I want to implement some more classes in the add-in. What is the convention for specifying enum parameters? I see some conflicting examples. In termstructures.xml , for qlInterpolatedYieldCurve, the InterpolatorID is defined as a string and there is a complicated parsing algorithm to convert that to an enum. But according to http://quantlib.org/quantlibaddin/extend_enum_tutorial.html the parameters can be declared as enums directly in the XML. There is also a commented out qlPiecewiseYieldCurveImprovements section in piecewiseyieldcurve.xml. I assume this is work in progress. This part also uses the enum way. How should I proceed? thanks Francois Botha |
|
From: Codron C. <cc...@li...> - 2014-06-11 09:00:44
|
Hi, I use qlgensrc project from 1.2.0 version I would like to expose functions to Cpp Client, but errors occur from Python Code when I rebuild qlgensrc project: For these following functions: qlYieldTSForwardRate qlYieldTSDiscount qlTSZeroRate qlCalendarAdvance Each time visual displays: gensrc has encountered a fatal error. 1>> 1>> >>>>>>>>>> BEGIN STACK TRACE >>>>>>>>>> 1>> 1>> File "c:\QL\QuantLib-1.4\build_ql_1_4_0\gensrc\gensrc.py", line 125, in <module> 1>> addinList.generate() 1>> File "c:\QL\QuantLib-1.4\build_ql_1_4_0\gensrc\gensrc\addins\addinlist.py", line 74, in generate 1>> self.generateCode() 1>> File "c:\QL\QuantLib-1.4\build_ql_1_4_0\gensrc\gensrc\addins\addinlist.py", line 83, in generateCode 1>> addin.generate(self.categoryList_, self.enumerationList_) 1>> File "c:\QL\QuantLib-1.4\build_ql_1_4_0\gensrc\gensrc\addins\cpp.py", line 55, in generate 1>> self.generateFunctions() 1>> File "c:\QL\QuantLib-1.4\build_ql_1_4_0\gensrc\gensrc\addins\cpp.py", line 71, in generateFunctions 1>> bufferCpp += self.generateFunction(func) 1>> File "c:\QL\QuantLib-1.4\build_ql_1_4_0\gensrc\gensrc\addins\cpp.py", line 92, in generateFunction 1>> 'functionBody' : func.generateBody(self), 1>> File "c:\QL\QuantLib-1.4\build_ql_1_4_0\gensrc\gensrc\functions\member.py", line 43, in generateBody 1>> return self.behavior_.generateBody(addin) 1>> File "c:\QL\QuantLib-1.4\build_ql_1_4_0\gensrc\gensrc\functions\behaviorloop.py", line 50, in generateBody 1>> 'inputParam' : addin.loopName(self.loopParamRef_), 1>> File "c:\QL\QuantLib-1.4\build_ql_1_4_0\gensrc\gensrc\addins\cpp.py", line 110, in loopName 1>> if param.type() == common.STRING: 1>> 1>> <<<<<<<<<< END STACK TRACE <<<<<<<<<< 1>> 1>> gensrc error: 1>> 'Parameter' object has no attribute 'type' 1>> 1>> NMAKE : fatal error U1077: '..\..\gensrc\gensrc.py' : return code '0x1' 1>Stop. 1>Project : error PRJ0019: A tool returned an error code from "Performing Makefile project actions" 1>Build log was saved at "file://c:\QL\QuantLib-1.4\build_ql_1_4_0\QuantLibAddin\gensrc\build\vc\BuildLog.htm" 1>qlgensrc - 2 error(s), 0 warning(s) ========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ========== Best Regards Clement |
|
From: Francois B. <ig...@gm...> - 2014-06-10 21:34:34
|
Yes, I think this has been solved. I work off Luigi's master branch and don't experience this problem anymore. Thanks. Francois Botha On 10 June 2014 18:43, Peter Caspers <pca...@gm...> wrote: > Hi Eric, > I sent this pull request only to Luigi and I think it is merged in > his current master already, but not in the R01040x-branch (which > should compile fine though, > since both the error and the fix were introduced in the 1.5 branch). > best regards > Peter > > On 10 June 2014 10:30, Eric Ehlers <eri...@na...> wrote: > > Hi Francois, > > > > If you are compiling QuantLibXL from git source, then the best place to > go > > at the moment might be > > https://github.com/eehlers/quantlib/tree/R01040x-branch. > > > > I do not remember yet seeing Peter's pull request but if Luigi got it > then I > > should have it as I keep my R01040x-branch in synch with Luigi's. > > > > Kind Regards, > > Eric > > > > > > Quoting Luigi Ballabio <lui...@gm...>: > > > >> Is it? My bad, I've missed it. > >> > >> Luigi > >> On May 19, 2014 7:14 PM, "Peter Caspers" <pca...@gm...> > wrote: > >> > >>> yes, it is part of https://github.com/lballabio/quantlib/pull/81 > >>> best > >>> Peter > >>> > >>> > >>> > >>> > >>> On 19 May 2014 17:15, Luigi Ballabio <lui...@gm...> wrote: > >>> > Sure, but I don't have a PR yet. Peter, did you make a pull request > to > >>> > Eric instead? If so, I'll pull from him one he's accepted it. > >>> > > >>> > Luigi > >>> > > >>> > On Thu, May 15, 2014 at 8:40 PM, Francois Botha <ig...@gm...> > >>> wrote: > >>> >> Thanks. I fetched those commits and it fixed my compilation problem. > >>> Luigi, > >>> >> can you perhaps accept the PR? > >>> >> > >>> >> Francois > >>> >> > >>> >> On 14 May 2014 7:10 PM, "Peter Caspers" <pca...@gm...> > >>> >> wrote: > >>> >>> > >>> >>> Hi, > >>> >>> > >>> >>> I think I introduced this problem. The fixes should be here > >>> >>> > >>> >>> > >>> >>> > >>> > >>> > https://github.com/pcaspers/quantlib/commit/2c4cd34bdbf3a514ffff121f085938be29197b83 > >>> >>> > >>> >>> > >>> > >>> > https://github.com/pcaspers/quantlib/commit/384595ec875734c69a8747add6a42125d74e4928 > >>> >>> > >>> >>> However these are not yet merged in Luigi's master. > >>> >>> > >>> >>> Thank you > >>> >>> Peter > >>> >>> > >>> >>> > >>> >>> On 14 May 2014 17:25, Francois Botha <ig...@gm...> wrote: > >>> >>> > Hi all, > >>> >>> > > >>> >>> > I'm trying to compile QuantLibXL from the git source. I'm doing a > >>> full > >>> >>> > build, which includes the gensrc parts. > >>> >>> > > >>> >>> > The compilation fails with the following error: > >>> >>> > > >>> >>> > error C2664: 'QuantLib::CmsMarket::CmsMarket(const > std::vector<_Ty> > >>> >>> > &,const > >>> >>> > std::vector<boost::shared_ptr<T>> &,const > >>> >>> > boost::shared_ptr<QuantLib::IborIndex> &,const > >>> >>> > std::vector<std::vector<QuantLib::Handle<QuantLib::Quote>>> > &,const > >>> >>> > std::vector<boost::shared_ptr<QuantLib::CmsCouponPricer>> &,const > >>> >>> > QuantLib::Handle<QuantLib::YieldTermStructure> &)' : cannot > convert > >>> >>> > parameter 5 from 'std::vector<_Ty>' to 'const std::vector<_Ty> &' > >>> >>> > C:\dev\quantlib\QuantLibAddin\qlo\cmsmarket.cpp > >>> >>> > > >>> >>> > Is this a known issue or how do I resolve this? > >>> >>> > > >>> >>> > thanks > >>> >>> > Francois Botha > >>> >>> > > >>> >>> > > >>> >>> > > >>> > >>> > ------------------------------------------------------------------------------ > >>> >>> > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For > >>> FREE > >>> >>> > Instantly run your Selenium tests across 300+ browser/OS combos. > >>> >>> > Get unparalleled scalability from the best Selenium testing > >>> >>> > platform > >>> >>> > available > >>> >>> > Simple to use. Nothing to install. Get started now for free." > >>> >>> > http://p.sf.net/sfu/SauceLabs > >>> >>> > _______________________________________________ > >>> >>> > QuantLib-dev mailing list > >>> >>> > Qua...@li... > >>> >>> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > >>> >>> > > >>> >> > >>> >> > >>> >> > >>> > >>> > ------------------------------------------------------------------------------ > >>> >> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For > FREE > >>> >> Instantly run your Selenium tests across 300+ browser/OS combos. > >>> >> Get unparalleled scalability from the best Selenium testing platform > >>> >> available > >>> >> Simple to use. Nothing to install. Get started now for free." > >>> >> http://p.sf.net/sfu/SauceLabs > >>> >> _______________________________________________ > >>> >> QuantLib-dev mailing list > >>> >> Qua...@li... > >>> >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev > >>> >> > >>> > > >>> > > >>> > > >>> > -- > >>> > <https://implementingquantlib.blogspot.com> > >>> > <https://twitter.com/lballabio> > >>> > > > > =================================================== > > Eric Ehlers > > nazcatech sprl | Brussels | http://www.nazcatech.be > > * Distributed computing for pricing analytics > > * Use Microsoft Excel as a client to the Grid > > > |
|
From: Peter C. <pca...@gm...> - 2014-06-10 16:43:21
|
Hi Eric, I sent this pull request only to Luigi and I think it is merged in his current master already, but not in the R01040x-branch (which should compile fine though, since both the error and the fix were introduced in the 1.5 branch). best regards Peter On 10 June 2014 10:30, Eric Ehlers <eri...@na...> wrote: > Hi Francois, > > If you are compiling QuantLibXL from git source, then the best place to go > at the moment might be > https://github.com/eehlers/quantlib/tree/R01040x-branch. > > I do not remember yet seeing Peter's pull request but if Luigi got it then I > should have it as I keep my R01040x-branch in synch with Luigi's. > > Kind Regards, > Eric > > > Quoting Luigi Ballabio <lui...@gm...>: > >> Is it? My bad, I've missed it. >> >> Luigi >> On May 19, 2014 7:14 PM, "Peter Caspers" <pca...@gm...> wrote: >> >>> yes, it is part of https://github.com/lballabio/quantlib/pull/81 >>> best >>> Peter >>> >>> >>> >>> >>> On 19 May 2014 17:15, Luigi Ballabio <lui...@gm...> wrote: >>> > Sure, but I don't have a PR yet. Peter, did you make a pull request to >>> > Eric instead? If so, I'll pull from him one he's accepted it. >>> > >>> > Luigi >>> > >>> > On Thu, May 15, 2014 at 8:40 PM, Francois Botha <ig...@gm...> >>> wrote: >>> >> Thanks. I fetched those commits and it fixed my compilation problem. >>> Luigi, >>> >> can you perhaps accept the PR? >>> >> >>> >> Francois >>> >> >>> >> On 14 May 2014 7:10 PM, "Peter Caspers" <pca...@gm...> >>> >> wrote: >>> >>> >>> >>> Hi, >>> >>> >>> >>> I think I introduced this problem. The fixes should be here >>> >>> >>> >>> >>> >>> >>> >>> https://github.com/pcaspers/quantlib/commit/2c4cd34bdbf3a514ffff121f085938be29197b83 >>> >>> >>> >>> >>> >>> https://github.com/pcaspers/quantlib/commit/384595ec875734c69a8747add6a42125d74e4928 >>> >>> >>> >>> However these are not yet merged in Luigi's master. >>> >>> >>> >>> Thank you >>> >>> Peter >>> >>> >>> >>> >>> >>> On 14 May 2014 17:25, Francois Botha <ig...@gm...> wrote: >>> >>> > Hi all, >>> >>> > >>> >>> > I'm trying to compile QuantLibXL from the git source. I'm doing a >>> full >>> >>> > build, which includes the gensrc parts. >>> >>> > >>> >>> > The compilation fails with the following error: >>> >>> > >>> >>> > error C2664: 'QuantLib::CmsMarket::CmsMarket(const std::vector<_Ty> >>> >>> > &,const >>> >>> > std::vector<boost::shared_ptr<T>> &,const >>> >>> > boost::shared_ptr<QuantLib::IborIndex> &,const >>> >>> > std::vector<std::vector<QuantLib::Handle<QuantLib::Quote>>> &,const >>> >>> > std::vector<boost::shared_ptr<QuantLib::CmsCouponPricer>> &,const >>> >>> > QuantLib::Handle<QuantLib::YieldTermStructure> &)' : cannot convert >>> >>> > parameter 5 from 'std::vector<_Ty>' to 'const std::vector<_Ty> &' >>> >>> > C:\dev\quantlib\QuantLibAddin\qlo\cmsmarket.cpp >>> >>> > >>> >>> > Is this a known issue or how do I resolve this? >>> >>> > >>> >>> > thanks >>> >>> > Francois Botha >>> >>> > >>> >>> > >>> >>> > >>> >>> ------------------------------------------------------------------------------ >>> >>> > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For >>> FREE >>> >>> > Instantly run your Selenium tests across 300+ browser/OS combos. >>> >>> > Get unparalleled scalability from the best Selenium testing >>> >>> > platform >>> >>> > available >>> >>> > Simple to use. Nothing to install. Get started now for free." >>> >>> > http://p.sf.net/sfu/SauceLabs >>> >>> > _______________________________________________ >>> >>> > QuantLib-dev mailing list >>> >>> > Qua...@li... >>> >>> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev >>> >>> > >>> >> >>> >> >>> >> >>> >>> ------------------------------------------------------------------------------ >>> >> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE >>> >> Instantly run your Selenium tests across 300+ browser/OS combos. >>> >> Get unparalleled scalability from the best Selenium testing platform >>> >> available >>> >> Simple to use. Nothing to install. Get started now for free." >>> >> http://p.sf.net/sfu/SauceLabs >>> >> _______________________________________________ >>> >> QuantLib-dev mailing list >>> >> Qua...@li... >>> >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev >>> >> >>> > >>> > >>> > >>> > -- >>> > <https://implementingquantlib.blogspot.com> >>> > <https://twitter.com/lballabio> >>> > > =================================================== > Eric Ehlers > nazcatech sprl | Brussels | http://www.nazcatech.be > * Distributed computing for pricing analytics > * Use Microsoft Excel as a client to the Grid > |
|
From: Eric E. <eri...@na...> - 2014-06-10 08:30:34
|
Hi Francois, If you are compiling QuantLibXL from git source, then the best place to go at the moment might be https://github.com/eehlers/quantlib/tree/R01040x-branch. I do not remember yet seeing Peter's pull request but if Luigi got it then I should have it as I keep my R01040x-branch in synch with Luigi's. Kind Regards, Eric Quoting Luigi Ballabio <lui...@gm...>: > Is it? My bad, I've missed it. > > Luigi > On May 19, 2014 7:14 PM, "Peter Caspers" <pca...@gm...> wrote: > >> yes, it is part of https://github.com/lballabio/quantlib/pull/81 >> best >> Peter >> >> >> >> >> On 19 May 2014 17:15, Luigi Ballabio <lui...@gm...> wrote: >> > Sure, but I don't have a PR yet. Peter, did you make a pull request to >> > Eric instead? If so, I'll pull from him one he's accepted it. >> > >> > Luigi >> > >> > On Thu, May 15, 2014 at 8:40 PM, Francois Botha <ig...@gm...> >> wrote: >> >> Thanks. I fetched those commits and it fixed my compilation problem. >> Luigi, >> >> can you perhaps accept the PR? >> >> >> >> Francois >> >> >> >> On 14 May 2014 7:10 PM, "Peter Caspers" <pca...@gm...> wrote: >> >>> >> >>> Hi, >> >>> >> >>> I think I introduced this problem. The fixes should be here >> >>> >> >>> >> >>> >> https://github.com/pcaspers/quantlib/commit/2c4cd34bdbf3a514ffff121f085938be29197b83 >> >>> >> >>> >> https://github.com/pcaspers/quantlib/commit/384595ec875734c69a8747add6a42125d74e4928 >> >>> >> >>> However these are not yet merged in Luigi's master. >> >>> >> >>> Thank you >> >>> Peter >> >>> >> >>> >> >>> On 14 May 2014 17:25, Francois Botha <ig...@gm...> wrote: >> >>> > Hi all, >> >>> > >> >>> > I'm trying to compile QuantLibXL from the git source. I'm doing a >> full >> >>> > build, which includes the gensrc parts. >> >>> > >> >>> > The compilation fails with the following error: >> >>> > >> >>> > error C2664: 'QuantLib::CmsMarket::CmsMarket(const std::vector<_Ty> >> >>> > &,const >> >>> > std::vector<boost::shared_ptr<T>> &,const >> >>> > boost::shared_ptr<QuantLib::IborIndex> &,const >> >>> > std::vector<std::vector<QuantLib::Handle<QuantLib::Quote>>> &,const >> >>> > std::vector<boost::shared_ptr<QuantLib::CmsCouponPricer>> &,const >> >>> > QuantLib::Handle<QuantLib::YieldTermStructure> &)' : cannot convert >> >>> > parameter 5 from 'std::vector<_Ty>' to 'const std::vector<_Ty> &' >> >>> > C:\dev\quantlib\QuantLibAddin\qlo\cmsmarket.cpp >> >>> > >> >>> > Is this a known issue or how do I resolve this? >> >>> > >> >>> > thanks >> >>> > Francois Botha >> >>> > >> >>> > >> >>> > >> ------------------------------------------------------------------------------ >> >>> > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For >> FREE >> >>> > Instantly run your Selenium tests across 300+ browser/OS combos. >> >>> > Get unparalleled scalability from the best Selenium testing platform >> >>> > available >> >>> > Simple to use. Nothing to install. Get started now for free." >> >>> > http://p.sf.net/sfu/SauceLabs >> >>> > _______________________________________________ >> >>> > QuantLib-dev mailing list >> >>> > Qua...@li... >> >>> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> >>> > >> >> >> >> >> >> >> ------------------------------------------------------------------------------ >> >> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE >> >> Instantly run your Selenium tests across 300+ browser/OS combos. >> >> Get unparalleled scalability from the best Selenium testing platform >> >> available >> >> Simple to use. Nothing to install. Get started now for free." >> >> http://p.sf.net/sfu/SauceLabs >> >> _______________________________________________ >> >> QuantLib-dev mailing list >> >> Qua...@li... >> >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> >> >> > >> > >> > >> > -- >> > <https://implementingquantlib.blogspot.com> >> > <https://twitter.com/lballabio> >> =================================================== Eric Ehlers nazcatech sprl | Brussels | http://www.nazcatech.be * Distributed computing for pricing analytics * Use Microsoft Excel as a client to the Grid |
|
From: Francois B. <ig...@gm...> - 2014-06-09 10:33:59
|
Hi, This is a continuation of the discussion at http://quantlib.10058.n7.nabble.com/Valuing-CPI-Bond-at-real-yield-curve-td15354.html . To recap: I want to value a CPI Bond by discounting at the real yield curve and input a zero inflation curve consisting only of 0 rates. I've successfully constructed that curve using InterpolatedZeroCurve. This curve is used for forecasting CPI indices. I also input historic CPI indices from far back to the most recent available. I'm now in a tricky situation where there is a bit of overlap. Suppose my settlement date is 2014-05-27 and my observation lag is 4 months. What I want to do is use actual CPI indices up to the lagged date of 2014-01-27 (calculated by linear interpolation between 2014-01-01 and 2014-02-01) and for anything after that I want to use the zero inflation curve, which implies any index that is looked up for a date after 2014-01-27 will be exactly the same (no growth). My zero inflation curve already has a base date of 2014-01-27, and my historic CPI indices go up to April 2014. So there is a bit of overlap. At the moment, the ZeroInflationIndex.fixing() method prefers to use CPI indices if they are available. I want to rather use the zero inflation curve. There is a forecastTodaysFixing parameter which is currently ignored. I propose to implement the forecastTodaysFixing so that when a 'true' is passed to it, the method will rather using the forecasting part and thus use the zero inflation curve. In CPICoupon, where this method is called, I will check whether the zero inflation curve base date is before the CPICoupon's fixing date and if so, pass 'true'. Or the alternative is to introduce a new parameter in the CPIBond constructor and pass this through to CPICoupon to determine which of the two curves get preference. I'm posting here to ask what I should look out for? I don't want to introduce a breaking change. The fixing date methods are quite tricky and it took me a while to get my head around it. Any advice will be appreciated. As a sidenote, limiting the historic CPI indices up to an earlier date doesn't solve the problem. The algorithm uses the availability and observation lags to deduce up to which date the CPI index should be used. So if I exclude indices after 2014-02-01, then a lookup error occurs. regards, Francois Botha |
|
From: Luigi B. <lui...@gm...> - 2014-06-09 09:38:40
|
I think you're creating a Schedule passing a vector of custom dates. Try using the other constructor instead (the one taking start date, end date etc). Luigi On Mon, Jun 9, 2014 at 11:36 AM, benedict 1 <ben...@ho...> wrote: > > Hi Luigi and all, > > I faced this problem when i wanted to implement the FixedRateBond class with > the pricingengine, TreeFixedRateBondEngine. > Does anyone face this problem ? > > > Exception in thread "main" java.lang.RuntimeException: full interface not > available > at org.quantlib.quantlibJNI.new_FixedRateBond(Native Method) > at org.quantlib.FixedRateBond.<init>(FixedRateBond.java:39) > at > org.quantlib.examples.COMBINED_swap_curves.main(COMBINED_swap_curves.java:279) > > Cheers > Benedict > > ------------------------------------------------------------------------------ > HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions > Find What Matters Most in Your Big Data with HPCC Systems > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > Leverages Graph Analysis for Fast Processing & Easy Data Exploration > http://www.hpccsystems.com > _______________________________________________ > QuantLib-users mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-users > -- <https://implementingquantlib.blogspot.com> <https://twitter.com/lballabio> |
|
From: benedict 1 <ben...@ho...> - 2014-06-09 09:36:51
|
Hi Luigi and all, I faced this problem when i wanted to implement the FixedRateBond class with the pricingengine, TreeFixedRateBondEngine.Does anyone face this problem ? Exception in thread "main" java.lang.RuntimeException: full interface not available at org.quantlib.quantlibJNI.new_FixedRateBond(Native Method) at org.quantlib.FixedRateBond.<init>(FixedRateBond.java:39) at org.quantlib.examples.COMBINED_swap_curves.main(COMBINED_swap_curves.java:279) Cheers Benedict |
|
From: Luigi B. <lui...@gm...> - 2014-06-06 09:31:27
|
Right, this case is not covered. You're giving a nice workout to
Schedule... I'm starting to think that we should have a number of
different generating functions, instead of just one taking different
combinations of parameters...
Luigi
On Fri, Jun 6, 2014 at 11:21 AM, Francois Botha <ig...@gm...> wrote:
> If I use end-of-month = false, then the dates generated will be either 30
> March (not 31) and 30 September, right? Maturity date is 30 September 2021
> in this case.
>
> Francois Botha
>
>
> On 6 June 2014 11:19, Luigi Ballabio <lui...@gm...> wrote:
>>
>> In this case you wouldn't use end-of-month = true.
>>
>> On Fri, Jun 6, 2014 at 11:16 AM, Francois Botha <ig...@gm...> wrote:
>> > Yes, that is what I want.
>> >
>> > This specific bond pays coupons on 31 March and 30 September each year,
>> > and
>> > if those days fall on a non-business day, the next business day is used.
>> > So
>> > instead 2017-09-30 falls on a Saturday, so the coupon will pay on
>> > 2017-10-02.
>> >
>> > I understood that I could use 'Following' instead of 'Modified
>> > Following' if
>> > I want to allow crossing over to the next month.
>> >
>> > Francois Botha
>> >
>> >
>> > On 6 June 2014 11:01, Luigi Ballabio <lui...@gm...> wrote:
>> >>
>> >> You want the last business day of the month, so you take the last day
>> >> of the month and adjust it backwards. If you adjusted it forward,
>> >> you'd get the first business day of the following month instead.
>> >>
>> >> Luigi
>> >>
>> >> On Fri, Jun 6, 2014 at 10:56 AM, Francois Botha <ig...@gm...>
>> >> wrote:
>> >> > Hi,
>> >> >
>> >> > In schedule.cpp, lines 349 - 355:
>> >> >
>> >> > if (convention == Unadjusted) {
>> >> > for (Size i=1; i<dates_.size()-1; ++i)
>> >> > dates_[i] = Date::endOfMonth(dates_[i]);
>> >> > } else {
>> >> > for (Size i=1; i<dates_.size()-1; ++i)
>> >> > dates_[i] = calendar_.endOfMonth(dates_[i]);
>> >> > }
>> >> >
>> >> > And calendar.hpp: lines 207-209:
>> >> >
>> >> > inline Date Calendar::endOfMonth(const Date& d) const {
>> >> > return adjust(Date::endOfMonth(d), Preceding);
>> >> > }
>> >> >
>> >> > This is applicable when the endOfMonth rule is true. If the business
>> >> > day
>> >> > convention is Unadjusted, it works fine, but if the business day
>> >> > convention
>> >> > is e.g. Modified Following, the second part of the code is executed.
>> >> > But
>> >> > calendar_.endOfMonth is hardcoded to use Preceding. The actual
>> >> > business
>> >> > day
>> >> > convention isn't passed through. Is this a bug or maybe I don't
>> >> > understand
>> >> > something?
>> >> >
>> >> > regards
>> >> > Francois Botha
>> >> >
>> >> >
>> >> >
>> >> > ------------------------------------------------------------------------------
>> >> > Learn Graph Databases - Download FREE O'Reilly Book
>> >> > "Graph Databases" is the definitive new guide to graph databases and
>> >> > their
>> >> > applications. Written by three acclaimed leaders in the field,
>> >> > this first edition is now available. Download your free book today!
>> >> > http://p.sf.net/sfu/NeoTech
>> >> > _______________________________________________
>> >> > QuantLib-dev mailing list
>> >> > Qua...@li...
>> >> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> <https://implementingquantlib.blogspot.com>
>> >> <https://twitter.com/lballabio>
>> >
>> >
>>
>>
>>
>> --
>> <https://implementingquantlib.blogspot.com>
>> <https://twitter.com/lballabio>
>
>
--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>
|
|
From: Francois B. <ig...@gm...> - 2014-06-06 09:21:49
|
If I use end-of-month = false, then the dates generated will be either 30
March (not 31) and 30 September, right? Maturity date is 30 September 2021
in this case.
Francois Botha
On 6 June 2014 11:19, Luigi Ballabio <lui...@gm...> wrote:
> In this case you wouldn't use end-of-month = true.
>
> On Fri, Jun 6, 2014 at 11:16 AM, Francois Botha <ig...@gm...> wrote:
> > Yes, that is what I want.
> >
> > This specific bond pays coupons on 31 March and 30 September each year,
> and
> > if those days fall on a non-business day, the next business day is used.
> So
> > instead 2017-09-30 falls on a Saturday, so the coupon will pay on
> > 2017-10-02.
> >
> > I understood that I could use 'Following' instead of 'Modified
> Following' if
> > I want to allow crossing over to the next month.
> >
> > Francois Botha
> >
> >
> > On 6 June 2014 11:01, Luigi Ballabio <lui...@gm...> wrote:
> >>
> >> You want the last business day of the month, so you take the last day
> >> of the month and adjust it backwards. If you adjusted it forward,
> >> you'd get the first business day of the following month instead.
> >>
> >> Luigi
> >>
> >> On Fri, Jun 6, 2014 at 10:56 AM, Francois Botha <ig...@gm...>
> wrote:
> >> > Hi,
> >> >
> >> > In schedule.cpp, lines 349 - 355:
> >> >
> >> > if (convention == Unadjusted) {
> >> > for (Size i=1; i<dates_.size()-1; ++i)
> >> > dates_[i] = Date::endOfMonth(dates_[i]);
> >> > } else {
> >> > for (Size i=1; i<dates_.size()-1; ++i)
> >> > dates_[i] = calendar_.endOfMonth(dates_[i]);
> >> > }
> >> >
> >> > And calendar.hpp: lines 207-209:
> >> >
> >> > inline Date Calendar::endOfMonth(const Date& d) const {
> >> > return adjust(Date::endOfMonth(d), Preceding);
> >> > }
> >> >
> >> > This is applicable when the endOfMonth rule is true. If the business
> day
> >> > convention is Unadjusted, it works fine, but if the business day
> >> > convention
> >> > is e.g. Modified Following, the second part of the code is executed.
> But
> >> > calendar_.endOfMonth is hardcoded to use Preceding. The actual
> business
> >> > day
> >> > convention isn't passed through. Is this a bug or maybe I don't
> >> > understand
> >> > something?
> >> >
> >> > regards
> >> > Francois Botha
> >> >
> >> >
> >> >
> ------------------------------------------------------------------------------
> >> > Learn Graph Databases - Download FREE O'Reilly Book
> >> > "Graph Databases" is the definitive new guide to graph databases and
> >> > their
> >> > applications. Written by three acclaimed leaders in the field,
> >> > this first edition is now available. Download your free book today!
> >> > http://p.sf.net/sfu/NeoTech
> >> > _______________________________________________
> >> > QuantLib-dev mailing list
> >> > Qua...@li...
> >> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> >> >
> >>
> >>
> >>
> >> --
> >> <https://implementingquantlib.blogspot.com>
> >> <https://twitter.com/lballabio>
> >
> >
>
>
>
> --
> <https://implementingquantlib.blogspot.com>
> <https://twitter.com/lballabio>
>
|
|
From: Luigi B. <lui...@gm...> - 2014-06-06 09:19:43
|
In this case you wouldn't use end-of-month = true.
On Fri, Jun 6, 2014 at 11:16 AM, Francois Botha <ig...@gm...> wrote:
> Yes, that is what I want.
>
> This specific bond pays coupons on 31 March and 30 September each year, and
> if those days fall on a non-business day, the next business day is used. So
> instead 2017-09-30 falls on a Saturday, so the coupon will pay on
> 2017-10-02.
>
> I understood that I could use 'Following' instead of 'Modified Following' if
> I want to allow crossing over to the next month.
>
> Francois Botha
>
>
> On 6 June 2014 11:01, Luigi Ballabio <lui...@gm...> wrote:
>>
>> You want the last business day of the month, so you take the last day
>> of the month and adjust it backwards. If you adjusted it forward,
>> you'd get the first business day of the following month instead.
>>
>> Luigi
>>
>> On Fri, Jun 6, 2014 at 10:56 AM, Francois Botha <ig...@gm...> wrote:
>> > Hi,
>> >
>> > In schedule.cpp, lines 349 - 355:
>> >
>> > if (convention == Unadjusted) {
>> > for (Size i=1; i<dates_.size()-1; ++i)
>> > dates_[i] = Date::endOfMonth(dates_[i]);
>> > } else {
>> > for (Size i=1; i<dates_.size()-1; ++i)
>> > dates_[i] = calendar_.endOfMonth(dates_[i]);
>> > }
>> >
>> > And calendar.hpp: lines 207-209:
>> >
>> > inline Date Calendar::endOfMonth(const Date& d) const {
>> > return adjust(Date::endOfMonth(d), Preceding);
>> > }
>> >
>> > This is applicable when the endOfMonth rule is true. If the business day
>> > convention is Unadjusted, it works fine, but if the business day
>> > convention
>> > is e.g. Modified Following, the second part of the code is executed. But
>> > calendar_.endOfMonth is hardcoded to use Preceding. The actual business
>> > day
>> > convention isn't passed through. Is this a bug or maybe I don't
>> > understand
>> > something?
>> >
>> > regards
>> > Francois Botha
>> >
>> >
>> > ------------------------------------------------------------------------------
>> > Learn Graph Databases - Download FREE O'Reilly Book
>> > "Graph Databases" is the definitive new guide to graph databases and
>> > their
>> > applications. Written by three acclaimed leaders in the field,
>> > this first edition is now available. Download your free book today!
>> > http://p.sf.net/sfu/NeoTech
>> > _______________________________________________
>> > QuantLib-dev mailing list
>> > Qua...@li...
>> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
>> >
>>
>>
>>
>> --
>> <https://implementingquantlib.blogspot.com>
>> <https://twitter.com/lballabio>
>
>
--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>
|
|
From: Francois B. <ig...@gm...> - 2014-06-06 09:17:08
|
Yes, that is what I want.
This specific bond pays coupons on 31 March and 30 September each year, and
if those days fall on a non-business day, the next business day is used. So
instead 2017-09-30 falls on a Saturday, so the coupon will pay on
2017-10-02.
I understood that I could use 'Following' instead of 'Modified Following'
if I want to allow crossing over to the next month.
Francois Botha
On 6 June 2014 11:01, Luigi Ballabio <lui...@gm...> wrote:
> You want the last business day of the month, so you take the last day
> of the month and adjust it backwards. If you adjusted it forward,
> you'd get the first business day of the following month instead.
>
> Luigi
>
> On Fri, Jun 6, 2014 at 10:56 AM, Francois Botha <ig...@gm...> wrote:
> > Hi,
> >
> > In schedule.cpp, lines 349 - 355:
> >
> > if (convention == Unadjusted) {
> > for (Size i=1; i<dates_.size()-1; ++i)
> > dates_[i] = Date::endOfMonth(dates_[i]);
> > } else {
> > for (Size i=1; i<dates_.size()-1; ++i)
> > dates_[i] = calendar_.endOfMonth(dates_[i]);
> > }
> >
> > And calendar.hpp: lines 207-209:
> >
> > inline Date Calendar::endOfMonth(const Date& d) const {
> > return adjust(Date::endOfMonth(d), Preceding);
> > }
> >
> > This is applicable when the endOfMonth rule is true. If the business day
> > convention is Unadjusted, it works fine, but if the business day
> convention
> > is e.g. Modified Following, the second part of the code is executed. But
> > calendar_.endOfMonth is hardcoded to use Preceding. The actual business
> day
> > convention isn't passed through. Is this a bug or maybe I don't
> understand
> > something?
> >
> > regards
> > Francois Botha
> >
> >
> ------------------------------------------------------------------------------
> > Learn Graph Databases - Download FREE O'Reilly Book
> > "Graph Databases" is the definitive new guide to graph databases and
> their
> > applications. Written by three acclaimed leaders in the field,
> > this first edition is now available. Download your free book today!
> > http://p.sf.net/sfu/NeoTech
> > _______________________________________________
> > QuantLib-dev mailing list
> > Qua...@li...
> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> >
>
>
>
> --
> <https://implementingquantlib.blogspot.com>
> <https://twitter.com/lballabio>
>
|
|
From: Luigi B. <lui...@gm...> - 2014-06-06 09:01:59
|
You want the last business day of the month, so you take the last day
of the month and adjust it backwards. If you adjusted it forward,
you'd get the first business day of the following month instead.
Luigi
On Fri, Jun 6, 2014 at 10:56 AM, Francois Botha <ig...@gm...> wrote:
> Hi,
>
> In schedule.cpp, lines 349 - 355:
>
> if (convention == Unadjusted) {
> for (Size i=1; i<dates_.size()-1; ++i)
> dates_[i] = Date::endOfMonth(dates_[i]);
> } else {
> for (Size i=1; i<dates_.size()-1; ++i)
> dates_[i] = calendar_.endOfMonth(dates_[i]);
> }
>
> And calendar.hpp: lines 207-209:
>
> inline Date Calendar::endOfMonth(const Date& d) const {
> return adjust(Date::endOfMonth(d), Preceding);
> }
>
> This is applicable when the endOfMonth rule is true. If the business day
> convention is Unadjusted, it works fine, but if the business day convention
> is e.g. Modified Following, the second part of the code is executed. But
> calendar_.endOfMonth is hardcoded to use Preceding. The actual business day
> convention isn't passed through. Is this a bug or maybe I don't understand
> something?
>
> regards
> Francois Botha
>
> ------------------------------------------------------------------------------
> Learn Graph Databases - Download FREE O'Reilly Book
> "Graph Databases" is the definitive new guide to graph databases and their
> applications. Written by three acclaimed leaders in the field,
> this first edition is now available. Download your free book today!
> http://p.sf.net/sfu/NeoTech
> _______________________________________________
> QuantLib-dev mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
>
--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>
|
|
From: Francois B. <ig...@gm...> - 2014-06-06 08:56:45
|
Hi,
In schedule.cpp, lines 349 - 355:
if (convention == Unadjusted) {
for (Size i=1; i<dates_.size()-1; ++i)
dates_[i] = Date::endOfMonth(dates_[i]);
} else {
for (Size i=1; i<dates_.size()-1; ++i)
dates_[i] = calendar_.endOfMonth(dates_[i]);
}
And calendar.hpp: lines 207-209:
inline Date Calendar::endOfMonth(const Date& d) const {
return adjust(Date::endOfMonth(d), Preceding);
}
This is applicable when the endOfMonth rule is *true*. If the business day
convention is Unadjusted, it works fine, but if the business day convention
is e.g. Modified Following, the second part of the code is executed. But
calendar_.endOfMonth is hardcoded to use Preceding. The actual business day
convention isn't passed through. Is this a bug or maybe I don't understand
something?
regards
Francois Botha
|
|
From: Luigi B. <lui...@gm...> - 2014-06-06 08:18:19
|
Done. The repo is at <https://github.com/lballabio/quantlib/>. Luigi On Thu, Jun 5, 2014 at 10:06 PM, Ioan F. <if...@ny...> wrote: > Luigi, > > I'm glad that the code works. > If you really need to provide a copyright name, please feel free to use your > name or, if uncomfortable with that, "Anonymous" would work. > A link to the GitHub repository would be nice. > > Thank you, > Ioan > > > > > > -- > View this message in context: http://quantlib.10058.n7.nabble.com/QuantLib-extension-creating-a-FedFunds-derived-class-equivalent-of-Eonia-for-USD-tp15344p15398.html > Sent from the quantlib-dev mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > Learn Graph Databases - Download FREE O'Reilly Book > "Graph Databases" is the definitive new guide to graph databases and their > applications. Written by three acclaimed leaders in the field, > this first edition is now available. Download your free book today! > http://p.sf.net/sfu/NeoTech > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev -- <https://implementingquantlib.blogspot.com> <https://twitter.com/lballabio> |
|
From: Ioan F. <if...@ny...> - 2014-06-05 21:16:09
|
Hi Luigi,
Pretty sad state of affairs with my SWIG code, but I guess you're right,
it's better to start from somewhere rather than from scratch.
The code below should be placed within interpolation.i interface file.
Regards,
Ioan
*%{
// safe versions which copy their arguments
template <class I1, class I2>
class SafeInterpolationConvex {
public:
SafeInterpolationConvex(const Array& x, const Array& y, Real
quadraticity,
Real monotonicity, bool forcePositive, bool flatFinalPeriod,
const helper_map& preExistingHelpers)
: x_(x), y_(y),
quadraticity_(quadraticity), monotonicity_(monotonicity),
forcePositive_(forcePositive),
flatFinalPeriod_(flatFinalPeriod),
helper_map_(helper_map()),
f_(x_.begin(), x_.end(), y_.begin(), quadraticity_,
monotonicity_, forcePositive_,
flatFinalPeriod_, helper_map_()) {}
Real operator()(Real x, bool allowExtrapolation=false) {
return f_(x, allowExtrapolation);
}
protected:
Array x_, y_;
Real quadraticity_,
Real monotonicity_,
bool forcePositive_,
bool flatFinalPeriod_,
const &preExistingHelpers helper_map_,
I1 f_;
};
%}
%define make_safe_interpolationConvex(T1,T2,Alias)
%{
typedef SafeInterpolationConvex<QuantLib::T1, QuantLib::T2> Safe##T;
%}
%rename(Alias) Safe##T;
class Safe##T {
#if defined(SWIGMZSCHEME) || defined(SWIGGUILE) \
|| defined(SWIGCSHARP) || defined(SWIGPERL)
%rename(call) operator();
#endif
public:
Safe##T(const T1& x, const T2& y);
Real operator()(Real x, bool allowExtrapolation=false);
};
%enddef
make_safe_interpolationConvex(ConvexMonotoneInterpolation,ConvexMonotoneInterpolation,ConvexMonotoneInterpolation);
%{
using QuantLib::ConvexMonotone;
%}
struct ConvexMonotone{};*
--
View this message in context: http://quantlib.10058.n7.nabble.com/Convex-Monotone-Interpolation-SWIG-exposed-to-Python-tp15327p15400.html
Sent from the quantlib-dev mailing list archive at Nabble.com.
|
|
From: Ioan F. <if...@ny...> - 2014-06-05 20:06:30
|
Luigi, I'm glad that the code works. If you really need to provide a copyright name, please feel free to use your name or, if uncomfortable with that, "Anonymous" would work. A link to the GitHub repository would be nice. Thank you, Ioan -- View this message in context: http://quantlib.10058.n7.nabble.com/QuantLib-extension-creating-a-FedFunds-derived-class-equivalent-of-Eonia-for-USD-tp15344p15398.html Sent from the quantlib-dev mailing list archive at Nabble.com. |
|
From: Luigi B. <lui...@gm...> - 2014-06-05 16:18:27
|
Hi Ioan,
I kind of hate to say that, but your changes work on my machine.
I'm going to commit them to the GitHub repository so that you can
check them out and try them. One thing, though: to whom should I
assign the copyright at the beginning of the files?
Luigi
On Thu, Jun 5, 2014 at 5:19 PM, Ioan F. <if...@ny...> wrote:
> Hi Luigi,
>
> Thank you for the reply. Please see the relevant part of the indexes.i
> interface file below.
> Also note that the first two "export_quoted_xibor_instance" calls work fine,
> as I was able to use them in Python (Eonia and Sonia), while the third one
> (FedFunds) gives me the error.
>
> Regards,
> Ioan
>
>
> *// OvernightIndex indexes
> %{
> using QuantLib::OvernightIndex;
> typedef boost::shared_ptr<Index> OvernightIndexPtr;
> %}
>
> %rename(OvernightIndex) OvernightIndexPtr;
>
> class OvernightIndexPtr : public IborIndexPtr {
> public:
> %extend {
> OvernightIndexPtr(const std::string& familyName,
> Natural settlementDays,
> const Currency& currency,
> const Calendar& calendar,
> const DayCounter& dayCounter,
> const Handle<YieldTermStructure>& h =
> Handle<YieldTermStructure>())
> {
> return new OvernightIndexPtr(new
> OvernightIndex(familyName,
> settlementDays,
> currency,
> calendar,
> dayCounter, h));
> }
> }
> };
>
> export_quoted_xibor_instance(Eonia,OvernightIndex);
> export_quoted_xibor_instance(Sonia,OvernightIndex);
> export_quotes_xibor_instance(FedFunds,OvernightIndex);*
>
>
>
> --
> View this message in context: http://quantlib.10058.n7.nabble.com/QuantLib-extension-creating-a-FedFunds-derived-class-equivalent-of-Eonia-for-USD-tp15344p15395.html
> Sent from the quantlib-dev mailing list archive at Nabble.com.
>
> ------------------------------------------------------------------------------
> Learn Graph Databases - Download FREE O'Reilly Book
> "Graph Databases" is the definitive new guide to graph databases and their
> applications. Written by three acclaimed leaders in the field,
> this first edition is now available. Download your free book today!
> http://p.sf.net/sfu/NeoTech
> _______________________________________________
> QuantLib-dev mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>
|
|
From: Ioan F. <if...@ny...> - 2014-06-05 15:20:02
|
Hi Luigi,
Thank you for the reply. Please see the relevant part of the indexes.i
interface file below.
Also note that the first two "export_quoted_xibor_instance" calls work fine,
as I was able to use them in Python (Eonia and Sonia), while the third one
(FedFunds) gives me the error.
Regards,
Ioan
*// OvernightIndex indexes
%{
using QuantLib::OvernightIndex;
typedef boost::shared_ptr<Index> OvernightIndexPtr;
%}
%rename(OvernightIndex) OvernightIndexPtr;
class OvernightIndexPtr : public IborIndexPtr {
public:
%extend {
OvernightIndexPtr(const std::string& familyName,
Natural settlementDays,
const Currency& currency,
const Calendar& calendar,
const DayCounter& dayCounter,
const Handle<YieldTermStructure>& h =
Handle<YieldTermStructure>())
{
return new OvernightIndexPtr(new
OvernightIndex(familyName,
settlementDays,
currency,
calendar,
dayCounter, h));
}
}
};
export_quoted_xibor_instance(Eonia,OvernightIndex);
export_quoted_xibor_instance(Sonia,OvernightIndex);
export_quotes_xibor_instance(FedFunds,OvernightIndex);*
--
View this message in context: http://quantlib.10058.n7.nabble.com/QuantLib-extension-creating-a-FedFunds-derived-class-equivalent-of-Eonia-for-USD-tp15344p15395.html
Sent from the quantlib-dev mailing list archive at Nabble.com.
|