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...> - 2007-06-28 15:57:08
|
On Thu, 2007-06-28 at 12:32 +0000, John Maiden wrote: > In DiscreteConvertible there is a protected array called dividendValues_. > It's used once to compute the present value of the dividends, but is not used > again. The code below goes into the constructor for DiscreteConvertible: John, are you applying your changes to a released tarball or to a Subversion checkout? Later, Luigi -- Never mistake motion for action. -- Ernest Hemingway |
|
From: John M. <jwm...@ya...> - 2007-06-28 13:06:56
|
Luigi-
In DiscreteConvertible there is a protected array called dividendValues_.
It's used once to compute the present value of the dividends, but is not used
again. The code below goes into the constructor for DiscreteConvertible:
//existing code
dividendValues_ = Array(arguments_.dividends.size(), 0.0);
boost::shared_ptr<GeneralizedBlackScholesProcess> process =
boost::dynamic_pointer_cast<GeneralizedBlackScholesProcess>(
arguments_.stochasticProcess);
QL_REQUIRE(process, "Black-Scholes process required");
Date settlementDate = process->riskFreeRate()->referenceDate();
for (Size i=0; i<arguments_.dividends.size(); i++) {
if (arguments_.dividends[i]->date() >= settlementDate) {
dividendValues_[i] =
arguments_.dividends[i]->amount() *
process->riskFreeRate()->discount(
arguments_.dividends[i]->date());
}
}
//load in a schedule of dirty dividend prices
for (Size i=0; i<arguments_.dividends.size(); i++) {
dirtyDividends_.push_back(
boost::shared_ptr<Dividend>(new FixedDividend(dividendValues_[i],
arguments_.dividends[i]->date())));
}
|
|
From: Luigi B. <lui...@gm...> - 2007-06-28 09:32:19
|
John, first of all, thanks for the effort you're putting into this review. On Fri, 2007-06-22 at 13:49 +0000, John Maiden wrote: > Two things I noticed about the existing convertible bond model that I think > needs to be changed: > > 1. All the dividends that are added back to the stock price in > DiscretizedConvertible are the clean price, and need to be adjusted back at the > risk free rate. Changes would be: > - In class DiscretizedConvertible (DiscretizedConvertible.hpp), add a new > DividendSchedule (I call it dirtyDividends_) > - In Disposable<Array> ExtendedDiscretizedConvertible::adjustedGrid() const > (DiscretizedConvertible.cpp), the pointer d is now const > boost::shared_ptr<Dividend>& d = dirtyDividends_[i]; I'm not sure i follow. Can you send a patch for the above? > 2. Probabilities in the Tsiveriotis-Fernandes Lattice (tflattice.hpp) that are > used to weigh the lattice values are fixed, and independent of the tree used. True---I just applied your fix to the repository. Later, Luigi -- The first rule of intelligent tinkering is to save all the parts. -- Paul Erlich |
|
From: eric <eri...@gm...> - 2007-06-26 12:01:43
|
Oops, I forgot that one. Thank you. On 6/25/07, na...@us... <na...@us...> wrote: > Revision: 11676 > http://quantlib.svn.sourceforge.net/quantlib/?rev=11676&view=rev > Author: nando > Date: 2007-06-25 11:37:02 -0700 (Mon, 25 Jun 2007) > > Log Message: > ----------- > double clicking on the .xla now defaults to dynamic xlls > > Modified Paths: > -------------- > trunk/QuantLibAddin/todonando.txt > trunk/QuantLibXL/framework/QuantLibXL.xla > > Modified: trunk/QuantLibAddin/todonando.txt > =================================================================== > --- trunk/QuantLibAddin/todonando.txt 2007-06-25 18:11:20 UTC (rev 11675) > +++ trunk/QuantLibAddin/todonando.txt 2007-06-25 18:37:02 UTC (rev 11676) > @@ -22,6 +22,8 @@ > --- > GENERAL > > +- add ohxlversion > +- rename QuantLibXLDynamic to QuantLibXL: use only -s to discriminate > - review QL::RelinkableHandle usage in QLO > - apply Luigi's clean up to QLO, etc code > - remove ql/handle.hpp dependency > > Modified: trunk/QuantLibXL/framework/QuantLibXL.xla > =================================================================== > (Binary files differ) > > > This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > QuantLib-cvs mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-cvs > |
|
From: Ferdinando A. <na...@am...> - 2007-06-25 08:35:53
|
Hi On 6/25/07, xg...@12... <xg...@12...> wrote: > i did not found there are any classes deal with future, isn't it? yes, there is not a Futures class derived from Instrument. There are few Forward(s) classes, and the functions needed to work with IMM dates. ciao -- Nando |
|
From: <xg...@12...> - 2007-06-25 08:02:31
|
Hi, all
=20
i did not found there are any classes deal with future, isn't it?
=20
=20
=20
=20
=20
150 =CD=F2 =C8=CB =CD=AC =CA=B1 =D4=DA =CD=E6 =B5=C4 =CD=F8 =D3=CE=A3=AC=C4=
=E3 =B2=BB =CA=D4 =CA=D4 =C2=F0 =A3=BF =20 |
|
From: Luigi B. <lui...@gm...> - 2007-06-24 19:49:11
|
On Jun 19, 2007, at 3:03 PM, DU VIGNAUD DE VILLEFORT FRANCOIS GASAPRD PHI wrote: > All interpolation classes have a data member named global (which is > used during YC boostrap), coded as an enumeration. What about using a > dedicated trait class to store this information instead ? Possibly. Or we could use the existing bootstrap-traits classes. Luigi |
|
From: John M. <jwm...@ya...> - 2007-06-22 15:50:56
|
Two things I noticed about the existing convertible bond model that I think
needs to be changed:
1. All the dividends that are added back to the stock price in
DiscretizedConvertible are the clean price, and need to be adjusted back at the
risk free rate. Changes would be:
- In class DiscretizedConvertible (DiscretizedConvertible.hpp), add a new
DividendSchedule (I call it dirtyDividends_)
- In Disposable<Array> ExtendedDiscretizedConvertible::adjustedGrid() const
(DiscretizedConvertible.cpp), the pointer d is now const
boost::shared_ptr<Dividend>& d = dirtyDividends_[i];
I've checked this, and the effect on the price in minimal, but there is a
definite change.
2. Probabilities in the Tsiveriotis-Fernandes Lattice (tflattice.hpp) that are
used to weigh the lattice values are fixed, and independent of the tree used.
For some reason pu_ and pd_ are set to Cox-Ross-Rubinstein probabilities. The
constructor for the TFLattice should now have the following code:
dt_ = end/steps;
pd_ = tree->probability(0,0,0);
pu_ = tree->probability(0,0,1);
riskFreeRate_ = riskFreeRate;
creditSpread_ = creditSpread;
QL_REQUIRE(pu_<=1.0, "negative probability");
QL_REQUIRE(pu_>=0.0, "negative probability");
This has a major effect on the prices. Before, using the example provided, there
was a huge spread between values for different trees. Now the different trees
produce much less spread (the difference is around 0.10 instead of the previous
10.00).
|
|
From: DU V. DE V. F. G. P. <fra...@ca...> - 2007-06-19 17:22:16
|
>No, this is not correct. If the nodes are far apart, there's nothing >that forbids the discount at a node to be less than half of the = previous >value; yet you're preventing such a curve from bootstrapping. I agree with you that even if this is unlikely to happen it is not = satisfactory to leave such a hole. Let say that it is a quick fix. >If the minimum at 0 was wrecking havoc on the spline, we could use the >other solve() method in Solver1D, namely, the one that takes a guess = and >a step and tries to bracket the solution on its own. It's going to be >slower, but probably more robust. Thanks for your suggestion, I was not aware of this method,=20 Fran=E7ois |
|
From: Luigi B. <lui...@gm...> - 2007-06-19 16:26:42
|
On Tue, 2007-06-19 at 08:53 -0700, fd...@us... wrote: > Log Message: > ----------- > QL : > minValueAfter of Discount curve traits modified to allow the use of > CubicSpline. This method returns half of the previous DF value. No, this is not correct. If the nodes are far apart, there's nothing that forbids the discount at a node to be less than half of the previous value; yet you're preventing such a curve from bootstrapping. If the minimum at 0 was wrecking havoc on the spline, we could use the other solve() method in Solver1D, namely, the one that takes a guess and a step and tries to bracket the solution on its own. It's going to be slower, but probably more robust. Luigi ---------------------------------------- The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise. -- W.E. Dijkstra |
|
From: DU V. DE V. F. G. P. <fra...@ca...> - 2007-06-19 13:03:22
|
Hi all,=20 =20 All interpolation classes have a data member named global (which is used = during YC boostrap), coded as an enumeration. What about using a = dedicated trait class to store this information instead ? Fran=E7ois |
|
From: eric e. <eri...@gm...> - 2007-06-15 19:40:03
|
Hi Misha,
I'm pleased to see a request to customize QLXL. The architecture
behind QLXL has been carefully designed to be independent of QuantLib
and it would be great to see it used for other applications.
Documentation and examples are presently thin but I'd be happy to
extend them if there is interest and any kind of
feedback/testing/contributions anyone might care to make would be much
appreciated.
> 1) If I have a class MyClass, what is the easiest way to create an instance
> of it in Excel and use it?
> First I want to create an instance of an object ( get a pointer into
> excel cell), then modify the object, then call some function on the object.
> Basically, could you point me to the simplest example, which can
> exercise the following interface in Excel:
> class MyClass
> {
> public:
> MyClass( double x );
> void change( double z);
> double get() const;
> }
For a "hello world" example of this type open
ObjectHandler\ObjectHandler_vc8.sln (VC2005) or
ObjectHandler\ObjectHandler_vc7.sln (VC2003) and look at the examples.
ExampleXllStatic shows a simple class exposed to Excel. For that
build, the ObjectHandler functionality is compiled into a standalone
XLL, demonstrated in spreadsheet
ObjectHandler\Examples\xl\exampleStatic.xls. ExampleXllDynamic1 and
ExampleXllDynamic2 implement the same functionality but demonstrate
how the ObjectHandler XLL can be separate from multiple client XLLs as
explained at http://www.objecthandler.org/installation.html.
ExampleCpp shows the same functionality in a C++ program.
The above examples are hand-written. Alternatively you can use gensrc
to autogenerate the source code for the Addin. gensrc is used to
autogenerate some source code for the ObjectHandler project itself,
and this is the simplest available example of gensrc usage. Under
directory ObjectHandler\gensrc, the configuration files are found, and
a makefile there invokes the core gensrc application (a separate
download) which outputs the OH source.
The basic idea of using gensrc is explained at
http://www.quantlibaddin.org/extending.html but that document is out
of date.
Addins created by gensrc may or may not have a dependency on
ObjectHandler, as required. gensrc supports creation of addins with
any of the following features:
- simple stateless functions
- class constructors and member functions
- datatypes specific to the client application
- Enumerated datatypes and classes
(http://www.quantlibaddin.org/auto/enums.html)
- Automatic coercion of input datatypes
(http://www.quantlibaddin.org/coercion.html)
- Functions which loop automatically on their inputs
(http://www.quantlibaddin.org/loops.html)
- ValueObjects and (in the next release) serialization
- platforms Excel, Calc, C, C++, and Guile
- documentation (e.g. http://www.quantlibaddin.org/auto/categories.html)
The QuantLibAddin/QuantLibXL application is another example of a
collection of addins generated by gensrc. Unfortunately QLXL's use of
gensrc is complex and undocumented. Instructions for building QLXL
from source code are at
http://www.quantlibaddin.org/build_tutorial.html.
> 2) I need to create a function, which returns a lot of stuff. Not all the
> stuff will be used all the time. Ideally, I would return a value of type
> ObjectHandler::ValueObject into Excel (map from string to any), then get
> only the fields I need at the time. The fields may be dynamic, e.g. value is
> always calculated, but greeks and diagnostic information are optional. Could
> you point me to an example of how I can create such a function?
The purpose of ValueObjects is to capture a snapshot of the input
arguments to a constructor for use in serialization. Under the
current design it's not possible to use a VO as the return value of a
function. Instead you could return a matrix of datatype any,
qlSwapLegAnalysis() is an example of a function which does this. The
configuration of qlSwapLegAnalysis() is found in file
QuantLibAddin\gensrc\metadata\Functions\swap.xml.
I'd be very happy to see ObjectHandler and gensrc used outside of the
QuantLib project and would do whatever I can to help that happen.
Regards,
Eric
|
|
From: Misha F. <fo...@gm...> - 2007-06-15 16:24:57
|
I have two questions regarding exposing complex data structures to Excel
using QuantLibXL.
1) If I have a class MyClass, what is the easiest way to create an instance
of it in Excel and use it?
First I want to create an instance of an object ( get a pointer into
excel cell), then modify the object, then call some function on the object.
Basically, could you point me to the simplest example, which can
exercise the following interface in Excel:
class MyClass
{
public:
MyClass( double x );
void change( double z);
double get() const;
}
2) I need to create a function, which returns a lot of stuff. Not all the
stuff will be used all the time. Ideally, I would return a value of type
ObjectHandler::ValueObject into Excel (map from string to any), then get
only the fields I need at the time. The fields may be dynamic, e.g. value is
always calculated, but greeks and diagnostic information are optional. Could
you point me to an example of how I can create such a function?
Many thanks in advance!
Misha
|
|
From: Joseph W. <jo...@gn...> - 2007-06-15 14:26:11
|
Hi all, I'd like to change the README.txt file in the QuantLib distribution to point to installation instructions on a wiki, but I'm not sure which wiki to use. wiki.quantlib.org points to a wiki at the GNA site, but it was mentioned that we are trying to move things to the wiki sourceforge site which doesn't seem to be public right now. Alternatively, we can use the wiki pages at wikiversity. I've already started some quantlib pages at http://en.wikiversity.org/wiki/QuantLib . This would be something to consider because there is already an active community there which can take care of things like anti-vandalism and also it could bootstrap a wider academic community discussing quantitative finance and open source scientific computing. Something else that I'm finding is that a lot of the users of quantlib would like to remain rather low key and the standard authentication mechanism of sending an e-mail back to an account is actually a minor road block to participation. -- ------------------------------------------------------------------------------- Joseph Wang Ph.D. - jo...@gn... http://en.wikiversity.org/wiki/User:Roadrunner |
|
From: SourceForge.net <no...@so...> - 2007-06-15 14:20:11
|
Patches item #1736373, was opened at 2007-06-13 11:54 Message generated for change (Comment added) made by ericehlers You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1736373&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: Eric Ehlers (ericehlers) Summary: Make a default constructor to Business252 daycount class Initial Comment: Enumerated data types of QuantLibAddin/QuantLibXL needs a default constructor. This new version will defaults to Brazilian settlement calendar class once is the only country I know uses this day count basis. ---------------------------------------------------------------------- >Comment By: Eric Ehlers (ericehlers) Date: 2007-06-15 16:20 Message: Logged In: YES user_id=1143221 Originator: NO I applied the patch and added the enumeration, thanks Piter. ---------------------------------------------------------------------- Comment By: Piter Dias (piterdias) Date: 2007-06-13 12:05 Message: Logged In: YES user_id=975167 Originator: YES File Added: daycounters.patch ---------------------------------------------------------------------- Comment By: Piter Dias (piterdias) Date: 2007-06-13 12:04 Message: Logged In: YES user_id=975167 Originator: YES File Added: daycounters.cpp ---------------------------------------------------------------------- Comment By: Piter Dias (piterdias) Date: 2007-06-13 11:55 Message: Logged In: YES user_id=975167 Originator: YES File Added: business252.hpp ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1736373&group_id=12740 |
|
From: SourceForge.net <no...@so...> - 2007-06-15 11:29:03
|
Patches item #1736373, was opened at 2007-06-13 11:54 Message generated for change (Settings changed) made by ericehlers You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1736373&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: Pending Resolution: None Priority: 5 Private: No Submitted By: Piter Dias (piterdias) >Assigned to: Eric Ehlers (ericehlers) Summary: Make a default constructor to Business252 daycount class Initial Comment: Enumerated data types of QuantLibAddin/QuantLibXL needs a default constructor. This new version will defaults to Brazilian settlement calendar class once is the only country I know uses this day count basis. ---------------------------------------------------------------------- Comment By: Piter Dias (piterdias) Date: 2007-06-13 12:05 Message: Logged In: YES user_id=975167 Originator: YES File Added: daycounters.patch ---------------------------------------------------------------------- Comment By: Piter Dias (piterdias) Date: 2007-06-13 12:04 Message: Logged In: YES user_id=975167 Originator: YES File Added: daycounters.cpp ---------------------------------------------------------------------- Comment By: Piter Dias (piterdias) Date: 2007-06-13 11:55 Message: Logged In: YES user_id=975167 Originator: YES File Added: business252.hpp ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1736373&group_id=12740 |
|
From: Luigi B. <lui...@gm...> - 2007-06-13 15:18:04
|
On Wed, 2007-06-13 at 08:05 -0700, na...@us... wrote: > Modified Paths: > -------------- > trunk/QuantLib/ql/models/marketmodels/correlations/timehomogeneoustimedependentforwardcorrelation.cpp Too long---'make dist' fails. It wouldn't be bad to shorten the class name, too. Later, Luigi ---------------------------------------- Things should be made as simple as possible, but no simpler. -- Albert Einstein |
|
From: SourceForge.net <no...@so...> - 2007-06-13 10:05:24
|
Patches item #1736373, was opened at 2007-06-13 06:54 Message generated for change (Comment added) made by piterdias You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1736373&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: Open Resolution: None Priority: 5 Private: No Submitted By: Piter Dias (piterdias) Assigned to: Nobody/Anonymous (nobody) Summary: Make a default constructor to Business252 daycount class Initial Comment: Enumerated data types of QuantLibAddin/QuantLibXL needs a default constructor. This new version will defaults to Brazilian settlement calendar class once is the only country I know uses this day count basis. ---------------------------------------------------------------------- >Comment By: Piter Dias (piterdias) Date: 2007-06-13 07:05 Message: Logged In: YES user_id=975167 Originator: YES File Added: daycounters.patch ---------------------------------------------------------------------- Comment By: Piter Dias (piterdias) Date: 2007-06-13 07:04 Message: Logged In: YES user_id=975167 Originator: YES File Added: daycounters.cpp ---------------------------------------------------------------------- Comment By: Piter Dias (piterdias) Date: 2007-06-13 06:55 Message: Logged In: YES user_id=975167 Originator: YES File Added: business252.hpp ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1736373&group_id=12740 |
|
From: SourceForge.net <no...@so...> - 2007-06-13 10:04:24
|
Patches item #1736373, was opened at 2007-06-13 06:54 Message generated for change (Comment added) made by piterdias You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1736373&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: Open Resolution: None Priority: 5 Private: No Submitted By: Piter Dias (piterdias) Assigned to: Nobody/Anonymous (nobody) Summary: Make a default constructor to Business252 daycount class Initial Comment: Enumerated data types of QuantLibAddin/QuantLibXL needs a default constructor. This new version will defaults to Brazilian settlement calendar class once is the only country I know uses this day count basis. ---------------------------------------------------------------------- >Comment By: Piter Dias (piterdias) Date: 2007-06-13 07:04 Message: Logged In: YES user_id=975167 Originator: YES File Added: daycounters.cpp ---------------------------------------------------------------------- Comment By: Piter Dias (piterdias) Date: 2007-06-13 06:55 Message: Logged In: YES user_id=975167 Originator: YES File Added: business252.hpp ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1736373&group_id=12740 |
|
From: SourceForge.net <no...@so...> - 2007-06-13 09:55:47
|
Patches item #1736373, was opened at 2007-06-13 06:54 Message generated for change (Comment added) made by piterdias You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1736373&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: Open Resolution: None Priority: 5 Private: No Submitted By: Piter Dias (piterdias) Assigned to: Nobody/Anonymous (nobody) Summary: Make a default constructor to Business252 daycount class Initial Comment: Enumerated data types of QuantLibAddin/QuantLibXL needs a default constructor. This new version will defaults to Brazilian settlement calendar class once is the only country I know uses this day count basis. ---------------------------------------------------------------------- >Comment By: Piter Dias (piterdias) Date: 2007-06-13 06:55 Message: Logged In: YES user_id=975167 Originator: YES File Added: business252.hpp ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1736373&group_id=12740 |
|
From: SourceForge.net <no...@so...> - 2007-06-13 09:54:34
|
Patches item #1736373, was opened at 2007-06-13 06:54 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1736373&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: Open Resolution: None Priority: 5 Private: No Submitted By: Piter Dias (piterdias) Assigned to: Nobody/Anonymous (nobody) Summary: Make a default constructor to Business252 daycount class Initial Comment: Enumerated data types of QuantLibAddin/QuantLibXL needs a default constructor. This new version will defaults to Brazilian settlement calendar class once is the only country I know uses this day count basis. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=1736373&group_id=12740 |
|
From: Toyin A. <toy...@ho...> - 2007-06-12 17:45:26
|
Hi Eric, Thanks for the response!! Your ValueObject approach is exactly what we have done. However, for both the stateless and statefull approaches, the API for the developer is exactly the same. Thus you program against only one set of interfaces and later on decide on whether you want to use the stateless server (for client/server work) or the more traditional stateful library (probably for local (fat) application development). You just link to the right library. Currently we have over 600 valueObjects coded. Each valueObject corressponds to a function within our low-level library that creates an object in memory. The rest of our 1500 query functions are split across 120 singleton classes. For the statefull library, we have packaged up both the valueObjects and the calculation classes within the same library (java, c++ and .NET). For the stateless library, we have packaged the valueObjects within a single library and the calculation classes within another. With this split, the valueObjects can be provided to the client to develop against. The valueObjects library will have no depenencies on the server/calculation libraries and as such can be deployed to client linux/macs/window boxes to be developed against (java/.NET at the moment). Our ValueObjects are not simply dumb data objects. They can notify the user when one of the data inputs have changed (ie, a tick within one of the points within the yieldcurve) via an event. You can also modify the contents of any of the input parameters directly without recreating the entire valueObject. When used in client/server mode, each valueObject (in which the majority will have links to other dependant valueObjects (ie - YieldCurve valueObjects will hold references to Index valueObjects, Calendar valueObjects etc... )) know how to prepare and seralize the XML stream needed to be passed to the c++ layer. When used in fat application mode, valueObjects do not construct XML packets. The data is passed directly to the c++ library (with a little help via SWIG for java and .NET). The valueObjects can also be saved to file as either binary or XML. In a nutshell, our new API layer now returns ValueObjects rather than string keys that are pointers to memory locations. The valueObjcets are the new reference data types, but this time, you can directly query the valueObjects for it's state (parameter inputs). The user would build their financial objects via a combination of valueObjects. Once this is done, the objects are then saved to the required stream (c++, java or .NET depending on the language in use and once this stream hits the server, the objects are packaged up into XML packages and then passed to the c++ library for pricing. The c++ library would simply create the needed c++ objects and then price. Thus the objects would remain in memory during the pricing request. The library must also be multi-threaded in order to cater for other users pricing at the same time. Once the pricing is done, the memory is wiped for the current user and the result returned. For the .NET libraries, we have embedded (server library and fat application library) 17 categories of windows performance counters, thus you can monitor the performance of the the library (via the performance monitor) in order to help you make decisions on how to better partition/plan your server architecture under regular/heavy load. This framework is currently being testing and we have produced over 1500 test cases for each of the c++, java and .NET (C#) libraries (our current release only has test cases for the low level .NET library). The source code for the test cases will be released as part of the developer libraries. For this release, the .NET layer will have .NET Remoting and .NET web services. We are currently looking at java web services and java remoting as well as Microsoft's new WCF framework. We did look at using gSOAP for our c++ layer, but the gSOAP framework could not hande the number of functions we were exposing. Anyway, web services should not really expose chatty interfaces!! Our ultimate goal is to produce a working environment using some of the excellent public domain GRID frameworks such as the java GLOBUS and .NET Alchemi.NET frameworks. Another thing we are looking at is the serialsation of our valueObjects to a database via NHibernate/Hibernate. However doing all this from c++ is bloody hard. Java and .NET have great support (especially free) for web services, remoting, GRID computing and object database serialisation. The remoting part is of special interest to us because we would also like to create some nice user interfaces using Adobe Flex/Flash. Adobe Flex (Actionscript 3.0) can comminicate with .NET via remoting and thus this will allow us to write some user interface demos that can run on Windows/Linux and Macs. There is WPF also but there's a lot to nerd up on and I'm not sure how great the support for linux with be via WPF/E Best Regards, Toyin Akin, www.QuantTools.com >From: "eric ehlers" <eri...@gm...> >To: "Toyin Akin" <toy...@ho...> >CC: qua...@li... >Subject: Re: [Quantlib-dev] QuantLib/SOAP: a SOAP interface to QuantLib >Date: Tue, 12 Jun 2007 18:05:26 +0200 > >Hello, > >A few thoughts in response to the key points in Toyin's message. > >Two approaches have been proposed for implementing serialization in >QuantLib: > >1) Fpml: Under this approach QuantLib Would be supplemented with a >library QuantLibFpML which would support the serialization to/from >FpML of those QuantLib classes which map to FpML representations. No >serialization support would be added directly to QuantLib. Details of >this idea can be found in the mailing list archives. > >2) ValueObjects: This is a feature of ObjectHandler, supported by >QuantLibAddin/QuantLibXL, in which each object in the OH repository is >supplemented by a VO which captures the inputs to the object's >constructor. The VO can be serialized and later reused to >reconstitute the object to its original state. VOs are stateless, the >disadvantage of this is that the VO doesn't reflect changes to the >state of the corresponding object after construction, the advantage is >that it's simpler to implement serialization around VOs than a lower >level approach such as FpML. Following a design and initial prototype >provided by Plamen Neykov I'm in the process of implementing VO >serialization in the development environment for inclusion in the next >release. > >Stateful/Stateless grid - Toyin I agree with you that a stateless grid >simplifies things considerably and in my experience this approach can >be implemented quickly with dramatic results. > >I wouldn't entirely dismiss the idea of a stateful grid. Objects >could be persisted on the server and their state shared by multiple >clients. I concede that implementation would be considerably more >expensive. > >VOs offer us a middle ground. Suppose you want to price a portfolio >of instruments. With a truly stateless grid, you have one big fat >function which accepts all of the inputs needed to price a single >swap, from setting the rates through to bootstrapping the yield curve >and pricing the instrument. This exercise must be repeated from >scratch for each instrument in the portfolio. > >With VOs you could serialize the entire state of the client >environment and send this to the grid as a batch of objects. >Deserializing these would cause them to be stored in the OH >repository. It would only be necessary to set up the market >environment once and this could be reused to price all instruments. >The state of the grid would be discarded when the results are returned >to the client. A similar approach could be used for sensitivity or >monte carlo analyses. > >I shouldn't have used the term "QuantLib Server" as that's an >exaggeration. I envision a process which runs on each node of the >grid, supporting the QLA/OH interface, the process receives a batch of >serialized VOs, loads them into the OH repository, prices the >instruments and returns a result. The process would be single >threaded and would lose its state after each call. If a batch of n PV >calculations is split across multiple nodes then each node would >initialize its own copy of the market data objects. > >Regards, >Eric > >------------------------------------------------------------------------- >This SF.net email is sponsored by DB2 Express >Download DB2 Express C - the FREE version of DB2 express and take >control of your XML. No limits. Just data. Click to get it now. >http://sourceforge.net/powerbar/db2/ >_______________________________________________ >QuantLib-dev mailing list >Qua...@li... >https://lists.sourceforge.net/lists/listinfo/quantlib-dev _________________________________________________________________ Play your part in making history - Email Britain! http://www.emailbritain.co.uk/ |
|
From: eric e. <eri...@gm...> - 2007-06-12 16:05:30
|
Hello, A few thoughts in response to the key points in Toyin's message. Two approaches have been proposed for implementing serialization in QuantLib: 1) Fpml: Under this approach QuantLib Would be supplemented with a library QuantLibFpML which would support the serialization to/from FpML of those QuantLib classes which map to FpML representations. No serialization support would be added directly to QuantLib. Details of this idea can be found in the mailing list archives. 2) ValueObjects: This is a feature of ObjectHandler, supported by QuantLibAddin/QuantLibXL, in which each object in the OH repository is supplemented by a VO which captures the inputs to the object's constructor. The VO can be serialized and later reused to reconstitute the object to its original state. VOs are stateless, the disadvantage of this is that the VO doesn't reflect changes to the state of the corresponding object after construction, the advantage is that it's simpler to implement serialization around VOs than a lower level approach such as FpML. Following a design and initial prototype provided by Plamen Neykov I'm in the process of implementing VO serialization in the development environment for inclusion in the next release. Stateful/Stateless grid - Toyin I agree with you that a stateless grid simplifies things considerably and in my experience this approach can be implemented quickly with dramatic results. I wouldn't entirely dismiss the idea of a stateful grid. Objects could be persisted on the server and their state shared by multiple clients. I concede that implementation would be considerably more expensive. VOs offer us a middle ground. Suppose you want to price a portfolio of instruments. With a truly stateless grid, you have one big fat function which accepts all of the inputs needed to price a single swap, from setting the rates through to bootstrapping the yield curve and pricing the instrument. This exercise must be repeated from scratch for each instrument in the portfolio. With VOs you could serialize the entire state of the client environment and send this to the grid as a batch of objects. Deserializing these would cause them to be stored in the OH repository. It would only be necessary to set up the market environment once and this could be reused to price all instruments. The state of the grid would be discarded when the results are returned to the client. A similar approach could be used for sensitivity or monte carlo analyses. I shouldn't have used the term "QuantLib Server" as that's an exaggeration. I envision a process which runs on each node of the grid, supporting the QLA/OH interface, the process receives a batch of serialized VOs, loads them into the OH repository, prices the instruments and returns a result. The process would be single threaded and would lose its state after each call. If a batch of n PV calculations is split across multiple nodes then each node would initialize its own copy of the market data objects. Regards, Eric |
|
From: eric e. <eri...@gm...> - 2007-06-12 14:24:29
|
Hi Piter, > Hi. How are you? Life is good, thanks. Glad to see you're still in action. Are you still maintaining the batch script to build QuantLibXL? > Some time ago I did a Business252 daycounter to QuantLib and you told me = it > would not be so easy to integrate it to QuantLibXL due to design of both > (QuantLibXL and my class). > Where you able to do that? I lost the thread where you explained the issu= es > about this integration and there is sometime I don=B4t check the project. > Is there something I could help? I don't remember the discussion and can't find any mention of it in the archives. But looking at it now I see the problem, that the constructor of the Business252 class expects an input argument. This is not supported by the design for enumerated datatypes. The user supplies a string e.g. "Actual/360" and the system automatically calls the default constructor of the corresponding class e.g. QuantLib::Actual360(). There is no mechanism for an argument to be supplied to the constructor. Could the class be reworked to support a default constructor? If not, perhaps we could expose it as a proper stateful object. Thanks, Eric |
|
From: SourceForge.net <no...@so...> - 2007-06-11 19:44:18
|
Patches item #1734245, was opened at 2007-06-10 01:58 Message generated for change (Settings changed) 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: Open >Resolution: None Priority: 5 Private: No Submitted By: Piter Dias (piterdias) >Assigned to: Nobody/Anonymous (nobody) 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: 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 |