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: <fho...@gm...> - 2007-11-02 18:52:30
|
Hi Luigi! Thanks for your quick reply and the hints for possible correction. I = will play around a little with the existing code and would be happy to (hopefully) be able to contribute a version which suits better. By the way, does MakeMCEuropeanHestonEngine behave similarly? = Presumably, yes? Regards Frank > -----Urspr=FCngliche Nachricht----- > Von: Luigi Ballabio [mailto:lui...@gm...]=20 > Gesendet: Freitag, 2. November 2007 17:17 > An: fho...@gm... > Cc: qua...@li...;=20 > qua...@li... > Betreff: Re: [Quantlib-users] MakeMCEuropeanEngine<PseudoRandom> >=20 >=20 >=20 > Hi Frank, >=20 > On Thu, 2007-11-01 at 22:12 +0100, Frank H=F6vermann wrote: > > When I change the value which is passed to .withTimeSteps starting=20 > > from 1 to, say, 5 in the case of non-flat vol term=20 > structure (but flat > > skew) which is defined by 5 points on the time scale, the value 1=20 > > results in a plain vanilla call option's value which corresponds to=20 > > the start vol (all else being equal). Increasing the number of time=20 > > steps the option's value seems to approach the value of the closed=20 > > form solution where the speed of convergence depends on the=20 > particular=20 > > shape of the term structure in the neighborhood of maturity. > > =20 > > I would expect, especially in the case of one time step for=20 > this plain=20 > > vanilla call, the vol to be taken as the terminal vol not=20 > the initial=20 > > one. Am I wrong? >=20 > No, you're right. The problem is in the way that the=20 > Black-Scholes stochastic process is discretized. By default,=20 > it uses Euler discretization, which at each step simply takes=20 > the initial value (see > <ql/processes/eulerdiscretization.cpp>.) You can obtain the=20 > behavior you want by defining another discretization (you can=20 > do it by cloning the Euler code and modify it) that takes the=20 > terminal value. Once you have implemented it, you can pass it=20 > to the BlackScholesProcess constructor so that it overrides=20 > the default behavior. If you want, you can implement more=20 > refined behaviors, too (such as integrating the variance, or=20 > using some predictor-corrector algorithm.) >=20 > Luigi >=20 > P.S. If you implement the new class and want to contribute=20 > it, I'll be glad to add it to the library. >=20 >=20 >=20 > --=20 >=20 > The nice thing about standards is that there are so many of them to=20 > choose from.=20 > -- Andrew S. Tanenbaum=20 >=20 |
|
From: Luigi B. <lui...@gm...> - 2007-11-02 16:16:48
|
Hi Frank, On Thu, 2007-11-01 at 22:12 +0100, Frank Hövermann wrote: > When I change the value which is passed to .withTimeSteps starting > from 1 to, say, 5 in the case of non-flat vol term structure (but flat > skew) which is defined by 5 points on the time scale, the value 1 > results in a plain vanilla call option's value which corresponds to > the start vol (all else being equal). Increasing the number of time > steps the option's value seems to approach the value of the closed > form solution where the speed of convergence depends on the particular > shape of the term structure in the neighborhood of maturity. > > I would expect, especially in the case of one time step for this plain > vanilla call, the vol to be taken as the terminal vol not the initial > one. Am I wrong? No, you're right. The problem is in the way that the Black-Scholes stochastic process is discretized. By default, it uses Euler discretization, which at each step simply takes the initial value (see <ql/processes/eulerdiscretization.cpp>.) You can obtain the behavior you want by defining another discretization (you can do it by cloning the Euler code and modify it) that takes the terminal value. Once you have implemented it, you can pass it to the BlackScholesProcess constructor so that it overrides the default behavior. If you want, you can implement more refined behaviors, too (such as integrating the variance, or using some predictor-corrector algorithm.) Luigi P.S. If you implement the new class and want to contribute it, I'll be glad to add it to the library. -- The nice thing about standards is that there are so many of them to choose from. -- Andrew S. Tanenbaum |
|
From: Bianchetti M. <mar...@ba...> - 2007-11-02 16:06:27
|
> -----Original Message----- > From: Luigi Ballabio [mailto:lui...@gm...]=20 > Sent: 02 November 2007 16:39 > To: Bianchetti Marco > Cc: qua...@li... > Subject: Re: [Quantlib-dev] [QuantLib-svn] SF.net SVN:=20 > quantlib:[13271]trunk/QuantLib/ql/instruments >=20 >=20 >=20 > On Wed, 2007-10-31 at 18:12 +0100, Bianchetti Marco wrote: > > Why not under a dedicated folder /instruments/inflation/ ? >=20 > I'm not particularly fond of deep folder structures. I agree in general, but this time: - we already have termstructures\inflation=20 - we have non very clean-cut names for inflation instruments ("zciis" and "yyiis" are familiar only to Brigo&Mercurio's book readers...) Alternatively we could rename the instruments files as inflationzcswap and inflationyyswap. Other inflation instruments of common use could be Inflationbond Inflationassetswap Inflationzcoption Inflationyyoption ... Ciao M. |
|
From: Luigi B. <lui...@gm...> - 2007-11-02 16:00:51
|
On Sun, 2007-10-14 at 09:41 +0200, Klaus Spanderen wrote: > I'm having this problem using Visual Studio Express 2005. > > I nailed it down to a 15 line program (attached to this email), which > generates to wrong results when compiled within a separate Visual Studio > solution _and_ the option > > Common Language Runtime-Support (/clr) > > is switched on. Hmm. We might use the preprocessor to define the inline declaration conditional to that particular compiler and option---I'd like to keep it non-inline when possible, since inlining it might give problems on other compilers. What do you think? Later, Luigi -- There is no such thing as public opinion. There is only published opinion. -- Winston Churchill |
|
From: Luigi B. <lui...@gm...> - 2007-11-02 15:56:01
|
On Wed, 2007-10-31 at 05:40 -0700, mattknox_ca wrote: > Remembrance day is marked as a holiday for the Canada calendar, but this is > only a bond market/over the counter/"settlement" holiday, not a stock > exchange holiday (not on the TSX anyway, which is the primary Canadian stock > exchange). Furthermore, if November 11th falls on a Saturday or Sunday, then > the actual holiday is the following Monday (like this year), so the current > code doesn't handle remembrance day properly for bond markets in Canada > anyway. > > It would be very useful to have a separate "settlement" and "exchange" > calendar like the UnitedKingdom calendar has. Done. Thanks for the heads-up. Luigi -- Age is an issue of mind over matter. If you don't mind, it doesn't matter. -- Mark Twain |
|
From: Luigi B. <lui...@gm...> - 2007-11-02 15:38:47
|
On Wed, 2007-10-31 at 18:12 +0100, Bianchetti Marco wrote: > Why not under a dedicated folder /instruments/inflation/ ? I'm not particularly fond of deep folder structures. Especially when they're not clean-cut: if we added an inflation bond, would it go into inflation/ or into bonds/? Luigi -- The surest way to make a monkey of a man is to quote him. -- Robert Benchley |
|
From: <fho...@gm...> - 2007-11-01 21:12:40
|
Hi there! When I change the value which is passed to .withTimeSteps starting from 1 to, say, 5 in the case of non-flat vol term structure (but flat skew) which is defined by 5 points on the time scale, the value 1 results in a plain vanilla call option's value which corresponds to the start vol (all else being equal). Increasing the number of time steps the option's value seems to approach the value of the closed form solution where the speed of convergence depends on the particular shape of the term structure in the neighborhood of maturity. I would expect, especially in the case of one time step for this plain vanilla call, the vol to be taken as the terminal vol not the initial one. Am I wrong? Regards Frank |
|
From: Yomi <gui...@gm...> - 2007-11-01 08:44:33
|
Hi,
I was trying to make the NonLeastSquare algorithm.
The results were not performing well using ConjugateGradient, so I have
decided to use LevenbergMarquardt instead.
To make it work, you need to update the LeastSquareFunction values member
function as follow:
Disposable<Array> LeastSquareFunction::values(const Array& x) const {
// size of target and function to fit vectors
Array target(lsp_.size()), fct2fit(lsp_.size());
// compute its values
lsp_.targetAndValue(x, target, fct2fit);
// do the difference
Array diff = (target - fct2fit)*(target - fct2fit);
return diff;
}
Of course don't forget to remove the definition from the class declaration.
After this, the results are very close from what I can get elsewhere.
Cheers
--
View this message in context: http://www.nabble.com/NonLeastSquare-with-LevenbergMarquardt%3A-small-code-update-tf4730027.html#a13525064
Sent from the quantlib-dev mailing list archive at Nabble.com.
|
|
From: Bianchetti M. <mar...@ba...> - 2007-10-31 17:13:07
|
Why not under a dedicated folder /instruments/inflation/ ? M. > -----Original Message----- > From: qua...@li...=20 > [mailto:qua...@li...] On Behalf=20 > Of lba...@us... > Sent: 31 October 2007 17:09 > To: qua...@li... > Subject: [QuantLib-svn] SF.net SVN: quantlib:=20 > [13271]trunk/QuantLib/ql/instruments >=20 >=20 > Revision: 13271 > =20 > http://quantlib.svn.sourceforge.net/quantlib/?rev=3D13271&view=3Drev > Author: lballabio > Date: 2007-10-31 09:09:04 -0700 (Wed, 31 Oct 2007) >=20 > Log Message: > ----------- > Added inflation swaps (thanks to Chris Kenyon) >=20 > Modified Paths: > -------------- > trunk/QuantLib/ql/instruments/Makefile.am > trunk/QuantLib/ql/instruments/all.hpp >=20 > Added Paths: > ----------- > trunk/QuantLib/ql/instruments/inflationswap.cpp > trunk/QuantLib/ql/instruments/inflationswap.hpp > trunk/QuantLib/ql/instruments/yyiis.cpp > trunk/QuantLib/ql/instruments/yyiis.hpp > trunk/QuantLib/ql/instruments/zciis.cpp > trunk/QuantLib/ql/instruments/zciis.hpp >=20 > Modified: trunk/QuantLib/ql/instruments/Makefile.am > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- trunk/QuantLib/ql/instruments/Makefile.am 2007-10-31=20 > 15:09:00 UTC (rev 13270) > +++ trunk/QuantLib/ql/instruments/Makefile.am 2007-10-31=20 > 16:09:04 UTC (rev 13271) > @@ -23,6 +23,7 @@ > forward.hpp \ > forwardrateagreement.hpp \ > forwardvanillaoption.hpp \ > + inflationswap.hpp \ > lookbackoption.hpp \ > makecapfloor.hpp \ > makecms.hpp \ > @@ -40,7 +41,9 @@ > swaption.hpp \ > vanillaoption.hpp \ > vanillaswap.hpp \ > - varianceswap.hpp > + varianceswap.hpp \ > + yyiis.hpp \ > + zciis.hpp > =20 > libInstruments_la_SOURCES =3D \ > asianoption.cpp \ > @@ -57,6 +60,7 @@ > forward.cpp \ > forwardrateagreement.cpp \ > forwardvanillaoption.cpp \ > + inflationswap.cpp \ > lookbackoption.cpp \ > makecapfloor.cpp \ > makecms.cpp \ > @@ -74,7 +78,9 @@ > swaption.cpp \ > vanillaoption.cpp \ > vanillaswap.cpp \ > - varianceswap.cpp > + varianceswap.cpp \ > + yyiis.cpp \ > + zciis.cpp > =20 > libInstruments_la_LIBADD =3D \ > bonds/libBonds.la >=20 > Modified: trunk/QuantLib/ql/instruments/all.hpp > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- trunk/QuantLib/ql/instruments/all.hpp 2007-10-31=20 > 15:09:00 UTC (rev 13270) > +++ trunk/QuantLib/ql/instruments/all.hpp 2007-10-31=20 > 16:09:04 UTC (rev 13271) > @@ -18,6 +18,7 @@ > #include <ql/instruments/forward.hpp> > #include <ql/instruments/forwardrateagreement.hpp> > #include <ql/instruments/forwardvanillaoption.hpp> > +#include <ql/instruments/inflationswap.hpp> > #include <ql/instruments/lookbackoption.hpp> > #include <ql/instruments/makecapfloor.hpp> > #include <ql/instruments/makecms.hpp> > @@ -36,5 +37,7 @@ > #include <ql/instruments/vanillaoption.hpp> > #include <ql/instruments/vanillaswap.hpp> > #include <ql/instruments/varianceswap.hpp> > +#include <ql/instruments/yyiis.hpp> > +#include <ql/instruments/zciis.hpp> > =20 > #include <ql/instruments/bonds/all.hpp> >=20 > Added: trunk/QuantLib/ql/instruments/inflationswap.cpp > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- trunk/QuantLib/ql/instruments/inflationswap.cpp =20 > (rev 0) > +++ trunk/QuantLib/ql/instruments/inflationswap.cpp=09 > 2007-10-31 16:09:04 UTC (rev 13271) > @@ -0,0 +1,67 @@ > +/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil;=20 > c-basic-offset: 4 -*- */ > + > +/* > + Copyright (C) 2007 Chris Kenyon > + > + This file is part of QuantLib, a free-software/open-source library > + for financial quantitative analysts and developers -=20 > http://quantlib.org/ > + > + QuantLib is free software: you can redistribute it and/or modify it > + under the terms of the QuantLib license. You should have received a > + copy of the license along with this program; if not, please email > + <qua...@li...>. The license is also available online at > + <http://quantlib.org/license.shtml>. > + > + This program is distributed in the hope that it will be=20 > useful, but WITHOUT > + ANY WARRANTY; without even the implied warranty of=20 > MERCHANTABILITY or FITNESS > + FOR A PARTICULAR PURPOSE. See the license for more details. > +*/ > + > +#include <ql/instruments/inflationswap.hpp> > + > +namespace QuantLib { > + > + InflationSwap::InflationSwap(const Date& start, const=20 > Date& maturity, > + const Period& lag, const=20 > Calendar& calendar, > + BusinessDayConvention convention, > + const DayCounter& dayCounter, > + const=20 > Handle<YieldTermStructure>& yieldTS) > + : start_(start), maturity_(maturity), lag_(lag),=20 > calendar_(calendar), > + bdc_(convention), dayCounter_(dayCounter), yieldTS_(yieldTS) { > + > + baseDate_ =3D calendar_.adjust(start_ - lag_, bdc_); > + maturity_ =3D calendar_.adjust(maturity_, bdc_); > + > + registerWith(yieldTS_); > + } > + > + Date InflationSwap::baseDate() const { > + return baseDate_; > + } > + > + Period InflationSwap::lag() const { > + return lag_; > + } > + > + Date InflationSwap::startDate() const { > + return start_; > + } > + > + Date InflationSwap::maturityDate() const { > + return maturity_; > + } > + > + Calendar InflationSwap::calendar() const { > + return calendar_; > + } > + > + BusinessDayConvention=20 > InflationSwap::businessDayConvention() const { > + return bdc_; > + } > + > + DayCounter InflationSwap::dayCounter() const { > + return dayCounter_; > + } > + > +} > + >=20 >=20 > Property changes on: trunk/QuantLib/ql/instruments/inflationswap.cpp > ___________________________________________________________________ > Name: svn:eol-style > + native >=20 > Added: trunk/QuantLib/ql/instruments/inflationswap.hpp > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- trunk/QuantLib/ql/instruments/inflationswap.hpp =20 > (rev 0) > +++ trunk/QuantLib/ql/instruments/inflationswap.hpp=09 > 2007-10-31 16:09:04 UTC (rev 13271) > @@ -0,0 +1,75 @@ > +/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil;=20 > c-basic-offset: 4 -*- */ > + > +/* > + Copyright (C) 2007 Chris Kenyon > + > + This file is part of QuantLib, a free-software/open-source library > + for financial quantitative analysts and developers -=20 > http://quantlib.org/ > + > + QuantLib is free software: you can redistribute it and/or modify it > + under the terms of the QuantLib license. You should have received a > + copy of the license along with this program; if not, please email > + <qua...@li...>. The license is also available online at > + <http://quantlib.org/license.shtml>. > + > + This program is distributed in the hope that it will be=20 > useful, but WITHOUT > + ANY WARRANTY; without even the implied warranty of=20 > MERCHANTABILITY or FITNESS > + FOR A PARTICULAR PURPOSE. See the license for more details. > +*/ > + > +/*! \file inflationswap.hpp > + \brief Abstract base class for inflation swaps > +*/ > + > +#ifndef quantlib_inflation_swap_hpp > +#define quantlib_inflation_swap_hpp > + > +#include <ql/instrument.hpp> > +#include <ql/termstructures/inflationtermstructure.hpp> > + > +namespace QuantLib { > + > + //! Abstract base class for inflation swaps. > + /*! Inflation swaps need two term structures: > + - nominal > + - inflation (either zero-coupon or year-on-year) > + > + \ingroup instruments > + */ > + class InflationSwap : public Instrument { > + public: > + //! the constructor sets common data members > + InflationSwap(const Date& start, const Date& maturity, > + const Period& lag, const Calendar& calendar, > + BusinessDayConvention convention, > + const DayCounter& dayCounter, > + const Handle<YieldTermStructure>& yieldTS); > + //! \name Inspectors > + /*! The inflation rate is taken relative to the base date, > + which is a lag period before the start date of the swap. > + */ > + //@{ > + Date baseDate() const; > + Period lag() const; > + Date startDate() const; > + Date maturityDate() const; > + Calendar calendar() const; > + BusinessDayConvention businessDayConvention() const; > + DayCounter dayCounter() const; > + //@} > + virtual Rate fairRate() const =3D 0; > + protected: > + Date start_; > + Date maturity_; > + Period lag_; > + Calendar calendar_; > + BusinessDayConvention bdc_; > + DayCounter dayCounter_; > + Handle<YieldTermStructure> yieldTS_; > + Date baseDate_; > + }; > + > +} > + > + > +#endif >=20 >=20 > Property changes on: trunk/QuantLib/ql/instruments/inflationswap.hpp > ___________________________________________________________________ > Name: svn:eol-style > + native >=20 > Added: trunk/QuantLib/ql/instruments/yyiis.cpp > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- trunk/QuantLib/ql/instruments/yyiis.cpp =20 > (rev 0) > +++ trunk/QuantLib/ql/instruments/yyiis.cpp 2007-10-31=20 > 16:09:04 UTC (rev 13271) > @@ -0,0 +1,133 @@ > +/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil;=20 > c-basic-offset: 4 -*- */ > + > +/* > + Copyright (C) 2007 Chris Kenyon > + > + This file is part of QuantLib, a free-software/open-source library > + for financial quantitative analysts and developers -=20 > http://quantlib.org/ > + > + QuantLib is free software: you can redistribute it and/or modify it > + under the terms of the QuantLib license. You should have received a > + copy of the license along with this program; if not, please email > + <qua...@li...>. The license is also available online at > + <http://quantlib.org/license.shtml>. > + > + This program is distributed in the hope that it will be=20 > useful, but WITHOUT > + ANY WARRANTY; without even the implied warranty of=20 > MERCHANTABILITY or FITNESS > + FOR A PARTICULAR PURPOSE. See the license for more details. > +*/ > + > +#include <ql/instruments/yyiis.hpp> > +#include <ql/time/schedule.hpp> > + > +namespace QuantLib { > + > + > + YearOnYearInflationSwap::YearOnYearInflationSwap( > + const Date& start, > + const Date& maturity, > + const Period& lag, > + Rate fixedRate, > + const Calendar& calendar, > + BusinessDayConvention convention, > + const DayCounter& dayCounter, > + const Handle<YieldTermStructure>& yieldTS, > + const Handle<YoYInflationTermStructure>&=20 > inflationTS, > + bool allowAmbiguousPayments, > + const Period& ambiguousPaymentPeriod) > + : InflationSwap(start, maturity, lag, calendar, convention, > + dayCounter, yieldTS), > + fixedRate_(fixedRate), inflationTS_(inflationTS), > + allowAmbiguousPayments_(allowAmbiguousPayments), > + ambiguousPaymentPeriod_(ambiguousPaymentPeriod) { > + > + Schedule temp =3D MakeSchedule(start_, maturity_, > + Period(1,Years), > + calendar_, bdc_); > + paymentDates_.clear(); > + paymentDates_.reserve(temp.size()-1); > + > + // the first payment date is the _second_ date in=20 > the schedule, > + // so we start from index 1 > + for (Size i=3D1; i<temp.size(); ++i) { > + if (!allowAmbiguousPayments_) { > + if (temp[i] > start_ + ambiguousPaymentPeriod_) { > + paymentDates_.push_back(temp[i]); > + } > + } else { > + paymentDates_.push_back(temp[i]); > + } > + } > + > + QL_REQUIRE(!paymentDates_.empty(), > + " no payments dates, start " << start_ > + << ", maturity: " << maturity_); > + } > + > + > + bool YearOnYearInflationSwap::isExpired() const { > + return yieldTS_->referenceDate() > maturity_; > + } > + > + > + Rate YearOnYearInflationSwap::fairRate() const { > + calculate(); > + return fairRate_; > + } > + > + > + Rate YearOnYearInflationSwap::fixedRate() const { > + return fixedRate_; > + } > + > + > + std::vector<Date> YearOnYearInflationSwap::paymentDates() const { > + return paymentDates_; > + } > + > + > + void YearOnYearInflationSwap::setupExpired() const { > + Instrument::setupExpired(); > + fairRate_ =3D Null<Rate>(); > + } > + > + > + void YearOnYearInflationSwap::performCalculations() const { > + // Rates for instruments always look at earlier=20 > values paid later. > + Real nom =3D 0.0; > + Real inf1 =3D 0.0; > + Real inf2 =3D 0.0; > + Real frac; > + > + Date referenceDate =3D yieldTS_->referenceDate(); > + for (Size i=3D0; i<paymentDates_.size(); i++) { > + Date couponPayDate =3D paymentDates_[i]; > + if (couponPayDate >=3D referenceDate) { > + if (i=3D=3D0) { > + frac =3D dayCounter_.yearFraction(referenceDate, > + couponPayDate); > + } else { > + if (referenceDate > paymentDates_[i-1]) > + frac =3D=20 > dayCounter_.yearFraction(referenceDate, > + =20 > couponPayDate); > + else > + frac =3D=20 > dayCounter_.yearFraction(paymentDates_[i-1], > + =20 > couponPayDate); > + } > + > + nom +=3D frac * yieldTS_->discount(couponPayDate); > + inf1 +=3D frac * inflationTS_->yoyRate( > + calendar().adjust(couponPayDate=20 > - lag(), bdc_)); > + inf2 +=3D frac * inflationTS_->yoyRate( > + calendar().adjust(couponPayDate=20 > - lag(), bdc_)) * > + yieldTS_->discount(couponPayDate); > + } > + } > + > + NPV_ =3D nom*fixedRate_ - inf1; > + errorEstimate_ =3D 0.0; > + fairRate_ =3D inf2/nom; > + } > + > +} > + >=20 >=20 > Property changes on: trunk/QuantLib/ql/instruments/yyiis.cpp > ___________________________________________________________________ > Name: svn:eol-style > + native >=20 > Added: trunk/QuantLib/ql/instruments/yyiis.hpp > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- trunk/QuantLib/ql/instruments/yyiis.hpp =20 > (rev 0) > +++ trunk/QuantLib/ql/instruments/yyiis.hpp 2007-10-31=20 > 16:09:04 UTC (rev 13271) > @@ -0,0 +1,90 @@ > +/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil;=20 > c-basic-offset: 4 -*- */ > + > +/* > + Copyright (C) 2007 Chris Kenyon > + > + This file is part of QuantLib, a free-software/open-source library > + for financial quantitative analysts and developers -=20 > http://quantlib.org/ > + > + QuantLib is free software: you can redistribute it and/or modify it > + under the terms of the QuantLib license. You should have received a > + copy of the license along with this program; if not, please email > + <qua...@li...>. The license is also available online at > + <http://quantlib.org/license.shtml>. > + > + This program is distributed in the hope that it will be=20 > useful, but WITHOUT > + ANY WARRANTY; without even the implied warranty of=20 > MERCHANTABILITY or FITNESS > + FOR A PARTICULAR PURPOSE. See the license for more details. > +*/ > + > +/*! \file yyiis.hpp > + \brief Year-on-year inflation-indexed swap > +*/ > + > +#ifndef quantlib_yyiis_hpp > +#define quantlib_yyiis_hpp > + > +#include <ql/instruments/inflationswap.hpp> > + > +namespace QuantLib { > + > + //! Year-on-year inflation-indexed swap > + /*! \note The allowAmbiguousPayments parameter is to allow for > + payment arithmetic being ambiguous. If the maturity is > + in, say, 30.01 years according to the daycounter and > + roll rules does this mean that there is a payment in > + 0.01 years?. > + */ > + class YearOnYearInflationSwap : public InflationSwap { > + public: > + YearOnYearInflationSwap( > + const Date& start, > + const Date& maturity, > + const Period& lag, > + Rate fixedRate, > + const Calendar& calendar, > + BusinessDayConvention convention, > + const DayCounter& dayCounter, > + const Handle<YieldTermStructure>& yieldTS, > + const Handle<YoYInflationTermStructure>&=20 > inflationTS, > + bool allowAmbiguousPayments =3D false, > + const Period& ambiguousPaymentPeriod =3D=20 > Period(1, Months)); > + > + //! \name Instrument interface > + //@{ > + bool isExpired() const; > + //@} > + > + //! \name InflationSwap interface > + //@{ > + Rate fairRate() const; > + //@} > + > + //! \name Inspectors > + //@{ > + Rate fixedRate() const; > + std::vector<Date> paymentDates() const; > + //@} > + > + protected: > + //! \name Instrument interface > + //@{ > + void setupExpired() const; > + void performCalculations() const; > + //@} > + > + Rate fixedRate_; > + Handle<YoYInflationTermStructure> inflationTS_; > + > + bool allowAmbiguousPayments_; > + Period ambiguousPaymentPeriod_; > + std::vector<Date> paymentDates_; > + > + mutable Rate fairRate_; > + }; > + > +} > + > + > +#endif > + >=20 >=20 > Property changes on: trunk/QuantLib/ql/instruments/yyiis.hpp > ___________________________________________________________________ > Name: svn:eol-style > + native >=20 > Added: trunk/QuantLib/ql/instruments/zciis.cpp > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- trunk/QuantLib/ql/instruments/zciis.cpp =20 > (rev 0) > +++ trunk/QuantLib/ql/instruments/zciis.cpp 2007-10-31=20 > 16:09:04 UTC (rev 13271) > @@ -0,0 +1,68 @@ > +/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil;=20 > c-basic-offset: 4 -*- */ > + > +/* > + Copyright (C) 2007 Chris Kenyon > + > + This file is part of QuantLib, a free-software/open-source library > + for financial quantitative analysts and developers -=20 > http://quantlib.org/ > + > + QuantLib is free software: you can redistribute it and/or modify it > + under the terms of the QuantLib license. You should have received a > + copy of the license along with this program; if not, please email > + <qua...@li...>. The license is also available online at > + <http://quantlib.org/license.shtml>. > + > + This program is distributed in the hope that it will be=20 > useful, but WITHOUT > + ANY WARRANTY; without even the implied warranty of=20 > MERCHANTABILITY or FITNESS > + FOR A PARTICULAR PURPOSE. See the license for more details. > +*/ > + > +#include <ql/instruments/zciis.hpp> > + > +namespace QuantLib { > + > + ZeroCouponInflationSwap::ZeroCouponInflationSwap( > + const Date& start, > + const Date& maturity, > + const Period &lag, > + Rate fixedRate, > + const Calendar& calendar, > + BusinessDayConvention convention, > + const DayCounter& dayCounter, > + const Handle<YieldTermStructure>& yieldTS, > + const=20 > Handle<ZeroInflationTermStructure>& inflationTS) > + : InflationSwap(start, maturity, lag, calendar, convention, > + dayCounter, yieldTS), > + fixedRate_(fixedRate), inflationTS_(inflationTS) { > + registerWith(inflationTS_); > + } > + > + > + bool ZeroCouponInflationSwap::isExpired() const { > + return yieldTS_->referenceDate() > maturity_; > + } > + > + > + Rate ZeroCouponInflationSwap::fairRate() const { > + return inflationTS_->zeroRate(maturity_ - lag_); > + } > + > + > + Rate ZeroCouponInflationSwap::fixedRate() const { > + return fixedRate_; > + } > + > + > + void ZeroCouponInflationSwap::performCalculations() const { > + > + // the observation lag is also taken into account in=20 > fairRate(); > + // discount is relative to the payment date, not the=20 > observation date. > + Real T =3D dayCounter_.yearFraction(inflationTS_->baseDate(), > + maturity_ - lag_); > + NPV_ =3D yieldTS_->discount(maturity_) * > + (std::pow(1.0 + fixedRate_, T) - std::pow(1.0 +=20 > fairRate(), T)); > + errorEstimate_ =3D 0.0; > + } > + > +} > + >=20 >=20 > Property changes on: trunk/QuantLib/ql/instruments/zciis.cpp > ___________________________________________________________________ > Name: svn:eol-style > + native >=20 > Added: trunk/QuantLib/ql/instruments/zciis.hpp > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- trunk/QuantLib/ql/instruments/zciis.hpp =20 > (rev 0) > +++ trunk/QuantLib/ql/instruments/zciis.hpp 2007-10-31=20 > 16:09:04 UTC (rev 13271) > @@ -0,0 +1,78 @@ > +/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil;=20 > c-basic-offset: 4 -*- */ > + > +/* > + Copyright (C) 2007 Chris Kenyon > + > + This file is part of QuantLib, a free-software/open-source library > + for financial quantitative analysts and developers -=20 > http://quantlib.org/ > + > + QuantLib is free software: you can redistribute it and/or modify it > + under the terms of the QuantLib license. You should have received a > + copy of the license along with this program; if not, please email > + <qua...@li...>. The license is also available online at > + <http://quantlib.org/license.shtml>. > + > + This program is distributed in the hope that it will be=20 > useful, but WITHOUT > + ANY WARRANTY; without even the implied warranty of=20 > MERCHANTABILITY or FITNESS > + FOR A PARTICULAR PURPOSE. See the license for more details. > +*/ > + > +/*! \file zciis.hpp > + \brief Zero-coupon inflation-indexed swap > +*/ > + > +#ifndef quantlib_zciis_hpp > +#define quantlib_zciis_hpp > + > +#include <ql/instruments/inflationswap.hpp> > + > +namespace QuantLib { > + > + //! Zero-coupon inflation-indexed swap > + /*! A ZCIIS pays a fixed rate and receives the inflation rate at > + date \f$ d2 \f$ relative to inflation at date \f$ d1 \f$, > + where \f$ d1 \f$ is a lag period before start date=20 > and \f$ d2 \f$ > + is a lag period before maturity. > + */ > + class ZeroCouponInflationSwap : public InflationSwap { > + public: > + ZeroCouponInflationSwap( > + const Date& start, > + const Date& maturity, > + const Period& lag, > + Rate fixedRate, > + const Calendar& calendar, > + BusinessDayConvention convention, > + const DayCounter& dayCounter, > + const Handle<YieldTermStructure>& yieldTS, > + const=20 > Handle<ZeroInflationTermStructure>& inflationTS); > + > + //! \name Instrument interface > + //@{ > + bool isExpired() const; > + //@} > + > + //! \name InflationSwap interface > + //@{ > + Rate fairRate() const; > + //@} > + > + //! \name Inspectors > + //@{ > + Rate fixedRate() const; > + //@} > + > + protected: > + //! \name Instrument interface > + //@{ > + void performCalculations() const; > + //@} > + > + Rate fixedRate_; > + Handle<ZeroInflationTermStructure> inflationTS_; > + }; > + > +} > + > + > +#endif >=20 >=20 > Property changes on: trunk/QuantLib/ql/instruments/zciis.hpp > ___________________________________________________________________ > Name: svn:eol-style > + native >=20 >=20 > This was sent by the SourceForge.net collaborative=20 > development platform, the world's largest Open Source=20 > development site. >=20 > -------------------------------------------------------------- > ----------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and=20 > a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > QuantLib-cvs mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-cvs >=20 |
|
From: <fho...@gm...> - 2007-10-31 15:57:47
|
OK, I defined a new class GeneralSwaptionHelper parallel to and essentially copied from SwaptionHelper class which carries an additional parameter "const Handle<Quote>& strikeSpread" to which one has to paas a shared_ptr to a strike spread quote taken from smile information from vol cube data (according to sticky strike assumption). Within the class this value is to be added to the .fairRate() from the VanillaSwap which is used to calculate the private excerciseRate_. Done. Seems to work well so far. Rgds Frank -------- Original-Nachricht -------- > Datum: Wed, 31 Oct 2007 11:18:56 +0100 > Von: "Frank Hövermann" <fho...@gm...> > An: qua...@li... > Betreff: [Quantlib-dev] Swaption VolCube calibration > Good morning, > just to ensure that I'm not wrong: As far as I was able to find out there > is no 'general' SwaptionHelper class having a strike as parameter, right? > It does not seem to be a big deal since within the ATM SwaptionHelper class > the fairRate of a VanillaSwap is calculated and used as the private > excerciseRate_. I would suggest to leave that as an input parameter to be able to > use ITM and OTM swaptions as well for calibration purposes. Does that make > sense? > > Best regards > Frank > -- > Psssst! Schon vom neuen GMX MultiMessenger gehört? > Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev -- Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger |
|
From: mattknox_ca <Mat...@td...> - 2007-10-31 12:40:54
|
Hi there, Remembrance day is marked as a holiday for the Canada calendar, but this is only a bond market/over the counter/"settlement" holiday, not a stock exchange holiday (not on the TSX anyway, which is the primary Canadian stock exchange). Furthermore, if November 11th falls on a Saturday or Sunday, then the actual holiday is the following Monday (like this year), so the current code doesn't handle remembrance day properly for bond markets in Canada anyway. It would be very useful to have a separate "settlement" and "exchange" calendar like the UnitedKingdom calendar has. Here are some relevant links: https://www.phn.com/Default.aspx?tabid=1006 http://www.tsx.com/en/market_activity/market_hours.html Thanks, - Matt -- View this message in context: http://www.nabble.com/Canada-calendar---November-11-%28Remembrance-day%29-tf4724765.html#a13508288 Sent from the quantlib-dev mailing list archive at Nabble.com. |
|
From: <fho...@gm...> - 2007-10-31 10:19:07
|
Good morning, just to ensure that I'm not wrong: As far as I was able to find out there is no 'general' SwaptionHelper class having a strike as parameter, right? It does not seem to be a big deal since within the ATM SwaptionHelper class the fairRate of a VanillaSwap is calculated and used as the private excerciseRate_. I would suggest to leave that as an input parameter to be able to use ITM and OTM swaptions as well for calibration purposes. Does that make sense? Best regards Frank -- Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger |
|
From: SourceForge.net <no...@so...> - 2007-10-22 10:52:18
|
Patches item #1734245, was opened at 2007-06-10 01:58 Message generated for change (Comment added) made by lballabio You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1734245&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed >Resolution: Accepted Priority: 5 Private: No Submitted By: Piter Dias (piterdias) >Assigned to: Luigi Ballabio (lballabio) Summary: More generic FixedRateBond Class Initial Comment: Guys, I changed FixedRateBond class to include more complete information about coupon generation. Instead of passing just a Rates vector to the constructors, now we can pass a InterestRate vector too. ---------------------------------------------------------------------- >Comment By: Luigi Ballabio (lballabio) Date: 2007-10-22 12:52 Message: Logged In: YES user_id=75450 Originator: NO Partially applied. The FixedRateCoupon and FixedRateLeg classes were patched. The FixedRateBond was not, since the same functionality can be obtained without the patch. The Calendar fix was also applied. ---------------------------------------------------------------------- Comment By: Piter Dias (piterdias) Date: 2007-06-10 01:59 Message: Logged In: YES user_id=975167 Originator: YES File Added: FixedRateBond.patch ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1734245&group_id=12740 |
|
From: Luigi B. <lui...@gm...> - 2007-10-22 07:52:48
|
On Sat, 2007-10-20 at 23:43 -0200, Piter Dias wrote: > The problem with tolerance is related to revision 12585 of brazil.cpp. > Black Consciousness Day is not a holiday for Brazilian Payment System > (Central Bank), just a local holiday in some cities. Ok. fixed. Thanks for tracking it down. Luigi -- I am extraordinarily patient, provided I get my own way in the end. -- Margaret Thatcher |
|
From: Piter D. <pit...@ma...> - 2007-10-21 01:43:41
|
Luigi,
Thanks for the update.
The problem with tolerance is related to revision 12585 of brazil.cpp.
Black Consciousness Day is not a holiday for Brazilian Payment System
(Central Bank), just a local holiday in some cities.
You should delete
// Black Consciousness Day
|| (d == 20 && m == November && y >= 2004)
from Brazil::SettlementImpl::isBusinessDay.
Andima prices (where I got data to testsuite) and yields are based on
Brazilian Payment System calendar.
Regards,
Piter Dias
pit...@ca...
|
|
From: Luigi B. <lui...@gm...> - 2007-10-19 15:05:31
|
On Sun, 2007-09-23 at 15:14 -0300, Piter Dias wrote: > I am reviewing the patch I sent some time ago. Piter, I committed part of your patch to the repository, namely, the FixedRateCoupon and FixedRateLeg parts. I'd rather keep the fixed-rate bond as it is, to keep it simple; it's still possible to instantiate a bond with InterestRate-based coupons by using the Bond constructor itself, as done in the test case. A question though: I had to increase the tolerance of the test case quite a bit to make it pass. Can you check out the sources and have a look at them to see if I made some mistake or if it's because of some other change that might have occurred in the meantime? Thanks, Luigi -- Call on God, but row away from the rocks. -- Indian proverb |
|
From: Luigi B. <lui...@gm...> - 2007-10-19 14:56:44
|
On Fri, 2007-10-19 at 16:16 +0200, Ferdinando Ametrano wrote: > On 10/19/07, Luigi Ballabio <lui...@gm...> wrote: > > May you investigate a bit, since you can reproduce the problem? > I am Hold on, I'm confused now---was it failing before or after you reverted? The test suite was failing _after_ the revert, and I've just committed a fix for that. Were your spreadsheets failing _before_ the revert? Luigi -- A child of five would understand this. Send someone to fetch a child of five. -- Groucho Marx |
|
From: Ferdinando A. <na...@am...> - 2007-10-19 14:16:26
|
On 10/19/07, Luigi Ballabio <lui...@gm...> wrote: > May you investigate a bit, since you can reproduce the problem? I am ciao -- Nando |
|
From: Luigi B. <lui...@gm...> - 2007-10-19 14:13:47
|
On Fri, 2007-10-19 at 15:41 +0200, Ferdinando Ametrano wrote: > On 10/19/07, Luigi Ballabio <lui...@gm...> wrote: > > > reverted Rev13099 as it doesn't fix the issue, bootstrap still failing > > > > Is it failing, or just slower? > failing, somewhere the handle is accessed when it is still empty. Shouldn't be a problem. The handle is (well, was) accessed directly only in the spread() method, which checks for emptiness before accessing its value. Is QuantLibXL by any chance inheriting from SwapRateHelper and accessing the handle? May you investigate a bit, since you can reproduce the problem? Luigi -- Innovation is hard to schedule. -- Dan Fylstra |
|
From: Ferdinando A. <na...@am...> - 2007-10-19 13:41:17
|
On 10/19/07, Luigi Ballabio <lui...@gm...> wrote: > > reverted Rev13099 as it doesn't fix the issue, bootstrap still failing > > Is it failing, or just slower? failing, somewhere the handle is accessed when it is still empty. ciao -- Nando |
|
From: Luigi B. <lui...@gm...> - 2007-10-19 13:36:16
|
On Fri, 2007-10-19 at 06:26 -0700, na...@us... wrote: > Revision: 13104 > http://quantlib.svn.sourceforge.net/quantlib/?rev=13104&view=rev > Author: nando > Date: 2007-10-19 06:26:05 -0700 (Fri, 19 Oct 2007) > > Log Message: > ----------- > reverted Rev13099 as it doesn't fix the issue, bootstrap still failing Is it failing, or just slower? Luigi -- Hofstadter's Law: It always takes longer than you expect, even when you take Hofstadter's Law into account. |
|
From: Luigi B. <lui...@gm...> - 2007-10-19 11:12:50
|
On Fri, 2007-10-19 at 03:38 -0700, na...@us... wrote: > Revision: 13098 > http://quantlib.svn.sourceforge.net/quantlib/?rev=13098&view=rev > Author: nando > Date: 2007-10-19 03:38:22 -0700 (Fri, 19 Oct 2007) > > Log Message: > ----------- > partially reverted Rev13090, which has broken the 3M yield curve bootstrapping in QuantLibXL. > Spread dynamically changes and could even be not available at construction time That the spread is not available at construction time is not a problem. The problem is the premature optimization in RelativeDateRateHelper::update() which fails to call initializeDates if the spread changes. Luigi -- Better to have an approximate answer to the right question than a precise answer to the wrong question. -- John Tukey as quoted by John Chambers |
|
From: Luigi B. <lui...@gm...> - 2007-10-18 16:35:56
|
On Thu, 2007-10-18 at 18:26 +0200, Ferdinando Ametrano wrote: > it does not compile on VC8. see below Fixed. Luigi -- Use every man after his desert, and who shall scape whipping? -- Hamlet, Act II, scene II |
|
From: Ferdinando A. <na...@am...> - 2007-10-18 16:27:04
|
On 10/18/07, lba...@us... <lba...@us...> wrote: > Revision: 13084 > http://quantlib.svn.sourceforge.net/quantlib/?rev=13084&view=rev > Author: lballabio > Date: 2007-10-18 06:53:30 -0700 (Thu, 18 Oct 2007) > > Log Message: > ----------- > Added histogram class (thanks to Gang Liang) it does not compile on VC8. see below ciao -- Nando 1>------ Build started: Project: QuantLib, Configuration: Release CRTDLL Win32 ------ 1>Compiling... 1>histogram.cpp 1>.\ql\math\statistics\histogram.cpp(110) : error C2668: 'log' : ambiguous call to overloaded function 1> C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(121): could be 'double log(double)' 1> C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(519): or 'float log(float)' 1> C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(567): or 'long double log(long double)' 1> while trying to match the argument list '(unsigned int)' 1>Build Time 0:01 1>Build log was saved at "file://c:\Projects\DevEnv\trunk2\QuantLib\build\vc80\Release CRTDLL\BuildLog.htm" 1>QuantLib - 1 error(s), 0 warning(s) |
|
From: SourceForge.net <no...@so...> - 2007-10-18 14:26:16
|
Patches item #1576561, was opened at 2006-10-13 15:36 Message generated for change (Settings changed) made by lballabio You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1576561&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed >Resolution: Accepted Priority: 5 Private: No Submitted By: Yiping Chen (champing) Assigned to: Nobody/Anonymous (nobody) Summary: revised pseudosqrt.cpp patch Initial Comment: Now the Hypersphere salvation also applies to covariance matrix. Added the Lowerdiagonal salvation. patch is diff from ver 1.21 ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1576561&group_id=12740 |