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...> - 2012-02-07 13:59:35
|
Hi Peter,
apologies for the delay.
> 1. Why is CalibratedModel derived from Observer as "public" and not
> "public virtual" ?
It's probably an oversight. Try changing it and running the test
suite; if it works, give me a shout and I'll correct it.
> 2. Why is update() and not generateArguments(); notifyObservers();
> called in CalibratedModel::setParams() ?
It might just be that whoever wrote the call didn't think that
update() could be extended.
On the other hand, it's been a while since I looked at that part of
the library, and I'm not sure that one wouldn't want the model to
update fully when parameters are set... Hmm. Again, you might try to
make the change and see what happens.
Another possibility is that you decouple the two updates entirely.
You might call update2 code from the model's update() method, and
manage update1() by using another observer. Something like:
class YourModel {
private:
class updateHelper : public Observer {
public:
updateHelper(YourModel* model) : model(model) {}
void update() { model->update1(); }
};
...
updateHelper uh;
public:
YourModel(whatever) : uh(this) {
this->registerWith(a); // triggers update2()
this->registerWith(b); // triggers update2()...
uh->registerWith(b); // ...and also update1()
}
};
The problem is, it's not guaranteed in what order update1() and
update2() will be called, which might be a showstopper for you.
In any case, let me know how it goes.
Later,
Luigi
On Sun, Jan 29, 2012 at 6:09 PM, Peter Caspers <pca...@vo...> wrote:
> Hello Luigi,
>
> I want to add a new model to the lib. The model observes a yield term
> structure and a volatility structure. Whenever one of them changes a
> method update1() shall be called. Furthermore the model has a (piecewise
> constant) parameter that can be calibrated to additional instruments.
> When this parameter changes, another method update2() should be called.
> In fact, update1() calls update2(). Both methods update1() and update2()
> need some computation time, so in particular during calibration
> update1() should _not_ be called. Finally, the model should be a
> LazyObject, because multiple changes in market data (say a parallel
> shift in the volatility surface) should trigger only one call of update1().
>
> I think I have a solution, but I want to learn a bit about the libs
> design and I want to be sure to be in line with this design and not have
> overseen something. So could you please have a look?
>
> My first attempt was the following: Let the model inherit from
> TermstructureConsistentModel, CalibratedModel and LazyObject. However,
> when calling registerWith(myYts's), this registration is ambiguous
> because both LazyObject and CalibratedModel derive from Observer, but in
> the case of CalibratedModel this is no virtual inheritance. So my first
> question would be: Is there a special reason for that or could the
> declaration also be CalibratedModel : public virtual Observer, ... ?
> Given I would change that, I need to overwrite the update() method in my
> model then basically calling LazyObject::update(). The
> performCalculations() implementation in my model would call update1()
> and update2().
>
> The next problem occurs in the setParams() method of CalibratedModel
> which calls update() at the end, causing full recalculation (i.e. calls
> of update1() and update2()) of the model, which I wanted to avoid. My
> interpretation of the purpose of generateArguments() up to now was to
> update the model w.r.t. changes in its parameters. So a call of
> generateArguments() and notifyObservers() instead of update() in the
> setParams() method would be enough (and produce the desired behaviour in
> my case). The implementation of generateArguments() in my model would
> then simply call update2(). In fact, a call of setParams() would
> instantaneously trigger a call of update2(), which would not be
> consistent with the lazy behaviour of the model w.r.t. market data
> changes, but this is no serious problem I guess.
>
> Summarizing my questions:
>
> 1. Why is CalibratedModel derived from Observer as "public" and not
> "public virtual" ?
> 2. Why is update() and not generateArguments(); notifyObservers();
> called in CalibratedModel::setParams() ?
>
> The solution I actually arrived at (requiring no adjustments in the lib)
> is the following:
>
> - Use LazyObject::registerWith(myYts's), i.e. only let the Observer of
> LazyObject observe the term structures and not the observers copy in
> CalibratedModel.
> - Do not implement an update() method in my model.
> - Implement performCalculations() and generateArguments() just as
> described above.
>
> Is this latter way correct ?
>
> Thanks a lot
> Peter
>
>
>
> ------------------------------------------------------------------------------
> Try before you buy = See our experts in action!
> The most comprehensive online learning library for Microsoft developers
> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
> Metro Style Apps, more. Free future releases when you subscribe now!
> http://p.sf.net/sfu/learndevnow-dev2
> _______________________________________________
> QuantLib-dev mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
|
|
From: Luigi B. <lui...@gm...> - 2012-02-07 13:38:41
|
Luca,
thanks for the report. Ferdinando applied your changes to the repository.
Luigi
On Sun, Feb 5, 2012 at 9:26 PM, Luca Billi <luc...@gm...> wrote:
> I noticed that the current implementation of LazyObjects generates
> infinite recursions
> in the case the dependency hierarchy among Observer/Observable objects
> contains loops.
>
> A suggestion to break the infinite recursion is to replace the update()
> method as follows:
>
> void LazyObject::update() {
>
> if (!frozen_&& calculated_){
> //
> // Set calculated_=false before calling notifyObservers()
> //
> calculated_ = false;
>
> notifyObservers();
> }
>
> calculated_ = false;
> }
>
>
> Luca
>
> ------------------------------------------------------------------------------
> Try before you buy = See our experts in action!
> The most comprehensive online learning library for Microsoft developers
> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
> Metro Style Apps, more. Free future releases when you subscribe now!
> http://p.sf.net/sfu/learndevnow-dev2
> _______________________________________________
> QuantLib-dev mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
|
|
From: Luca B. <luc...@gm...> - 2012-02-05 20:27:00
|
I noticed that the current implementation of LazyObjects generates
infinite recursions
in the case the dependency hierarchy among Observer/Observable objects
contains loops.
A suggestion to break the infinite recursion is to replace the update()
method as follows:
void LazyObject::update() {
if (!frozen_&& calculated_){
//
// Set calculated_=false before calling notifyObservers()
//
calculated_ = false;
notifyObservers();
}
calculated_ = false;
}
Luca
|
|
From: Luigi B. <lui...@gm...> - 2012-01-31 10:45:55
|
Hi Rasheed,
one exercise could be to implement a simple option; that would
make you familiar with instruments and pricing engines and give you an
overview of the library design. If you happen to have Haug's book,
for example, there's plenty of such options with a simple analytic
formula. For a description of the framework and an example, you can
read chapter 2 at <http://sites.google.com/site/luigiballabio/qlbook>.
Do write here if you get stuck.
Later,
Luigi
On Wed, Jan 25, 2012 at 2:52 PM, Rasheed Abiaka <ras...@gm...> wrote:
> I've taken a bunch of programming courses and I'm now looking for a
> way to learn programming in an applied way. What exercises would you
> suggest for a beginner, over let's say a year, to get up to speed to
> become capable of making a real contribution to the Quantlib project?
|
|
From: Peter C. <pca...@vo...> - 2012-01-29 17:23:13
|
Hello Luigi, I want to add a new model to the lib. The model observes a yield term structure and a volatility structure. Whenever one of them changes a method update1() shall be called. Furthermore the model has a (piecewise constant) parameter that can be calibrated to additional instruments. When this parameter changes, another method update2() should be called. In fact, update1() calls update2(). Both methods update1() and update2() need some computation time, so in particular during calibration update1() should _not_ be called. Finally, the model should be a LazyObject, because multiple changes in market data (say a parallel shift in the volatility surface) should trigger only one call of update1(). I think I have a solution, but I want to learn a bit about the libs design and I want to be sure to be in line with this design and not have overseen something. So could you please have a look? My first attempt was the following: Let the model inherit from TermstructureConsistentModel, CalibratedModel and LazyObject. However, when calling registerWith(myYts's), this registration is ambiguous because both LazyObject and CalibratedModel derive from Observer, but in the case of CalibratedModel this is no virtual inheritance. So my first question would be: Is there a special reason for that or could the declaration also be CalibratedModel : public virtual Observer, ... ? Given I would change that, I need to overwrite the update() method in my model then basically calling LazyObject::update(). The performCalculations() implementation in my model would call update1() and update2(). The next problem occurs in the setParams() method of CalibratedModel which calls update() at the end, causing full recalculation (i.e. calls of update1() and update2()) of the model, which I wanted to avoid. My interpretation of the purpose of generateArguments() up to now was to update the model w.r.t. changes in its parameters. So a call of generateArguments() and notifyObservers() instead of update() in the setParams() method would be enough (and produce the desired behaviour in my case). The implementation of generateArguments() in my model would then simply call update2(). In fact, a call of setParams() would instantaneously trigger a call of update2(), which would not be consistent with the lazy behaviour of the model w.r.t. market data changes, but this is no serious problem I guess. Summarizing my questions: 1. Why is CalibratedModel derived from Observer as "public" and not "public virtual" ? 2. Why is update() and not generateArguments(); notifyObservers(); called in CalibratedModel::setParams() ? The solution I actually arrived at (requiring no adjustments in the lib) is the following: - Use LazyObject::registerWith(myYts's), i.e. only let the Observer of LazyObject observe the term structures and not the observers copy in CalibratedModel. - Do not implement an update() method in my model. - Implement performCalculations() and generateArguments() just as described above. Is this latter way correct ? Thanks a lot Peter |
|
From: Edouard T. <tal...@ly...> - 2012-01-27 12:11:45
|
Salut Maxime. A straight way to submit your developments is via the Quantlib page on sourceforge. Right? Are you aware of researches based on the Schwartz & Smith's paper? (I mean it is quite 'old' now. Right?) For my part, I'm interested in your development process, from the implementation of the model to your "thinking of" the C++ code. I have very few experience on that. I'd be keen to discuss with you, If you wish. Anyway, good luck. Edouard -- http://quantcorner.wordpress.com 8. Willing to contribute to Quantlib (Maxime Biette) =========================== Message: 8 Date: Fri, 27 Jan 2012 08:52:44 +0100 From: Maxime Biette Subject: [Quantlib-dev] Willing to contribute to Quantlib To: "qua...@li..." Message-ID: Content-Type: text/plain; charset="utf-8" Dear Quantlib community, I'm contacting you today to submit you a proposal related to QuantLib. I'm actually studying financial engineering in ECE Paris, Engineering School (in France). In the framework of my studies, I'm working on a one-year project consisting in developing a financial tool. I'm actively working with a team composed of six people. Since we look forward to broadcast it thanks to the OpenSource "pipe", and as QuantLib is well-known all over the world, my team would like to participate. Then we need your approval to take part. *Let me give you a short overview of the work in progress. It is based on Schwartz and Smith (2000) paper : Short-Term Variations and Long-Term Dynamics in Commodity Prices.* *Their research is aimed to describe the processes of commodity products with a two-factor model. Concerning our project, we want to implement efficiently their theory to price Crude Oil spot in the first place. Then the final aim is to predict the value of financial instruments from the spot : options, caps, floors, futures...* *The added-value is that no full implementation has been done so far in C++ and other 'high level' languages. Hence it offers the opportunity to many users to make use of this approach. That may even be an add-on to their paper somehow (it allows people to check its performance). It is a very known paper so it is of interest to broadcast this tool.* (An optional goal is to build a handy GUI allowing many actions to the user: to display special statistics or characteristics, to allow an adaptive GUI... But that may not concern the QuantLib project actually) The implementation of the algorithm has already been made with MATLAB (especially for testing). I thank you for considering my request in advance. Kinds regards, -- Maxime Biette +33607717007 |
|
From: Maxime B. <bie...@gm...> - 2012-01-27 10:30:45
|
We really do appreciate your consideration for our proposal. So far, we have been looking/studying the design patterns used in QuantLib and the different modules. Thanks to our studies (oriented partly in IT systems), we have a good understanding of the patterns such as the Observer since we have been using it several times. Actually, we wanted to get your approval before focusing in the study of the whole framework. We started to see some parts of our algorithm that may be replaced by QuantLib modules. We are motivated to develop our tool respecting your specifications. That will also be a way to ensure the EXCEL integration afterwards. Concerning the version-control tool, we are quite well familiarized with SVN (Subversion). That is the one we are furnished with at our school. On Fri, Jan 27, 2012 at 10:37 AM, Luigi Ballabio <lui...@gm...>wrote: > Maxime, > that's great. Are you familiar with QuantLib already? What > version-control tools does your team use? > > Later, > Luigi > > > On Fri, Jan 27, 2012 at 8:52 AM, Maxime Biette <bie...@gm...> > wrote: > > Dear Quantlib community, > > > > I'm contacting you today to submit you a proposal related to QuantLib. > I'm > > actually studying financial engineering in ECE Paris, Engineering School > > (in France). > > > > In the framework of my studies, I'm working on a one-year > project consisting > > in developing a financial tool. I'm actively working with a > team composed of > > six people. > > Since we look forward to broadcast it thanks to the OpenSource "pipe", > > and as QuantLib is well-known all over the world, my team would like > > to participate. > > Then we need your approval to take part. > > > > *Let me give you a short overview of the work in progress. It is based > > on Schwartz and Smith (2000) paper : Short-Term Variations and > > Long-Term Dynamics in Commodity Prices.* > > *Their research is aimed to describe the processes of commodity > > products with a two-factor model. Concerning our project, we want to > > implement efficiently their theory to price Crude Oil spot in the first > > place. Then the final aim is to predict the value of financial > instruments > > from the > > spot : options, caps, floors, futures...* > > > > > > *The added-value is that no full implementation has been done so far in > C++ > > and other 'high level' languages. Hence it offers the opportunity to > > many users to make use of this approach. That may even be an add-on to > > their paper somehow (it allows people to check its performance). It is a > > very > > known paper so it is of interest to broadcast this tool.* > > > > (An optional goal is to build a handy GUI allowing many actions to > the user: > > to display special statistics or characteristics, to allow an adaptive > > GUI... But that may not concern the QuantLib project actually) > > The implementation of the algorithm has already been made with MATLAB > > (especially for testing). > > > > > > I thank you for considering my request in advance. > > > > Kinds regards, > > > > -- > > Maxime Biette > > +33607717007 > > > > > ------------------------------------------------------------------------------ > > Try before you buy = See our experts in action! > > The most comprehensive online learning library for Microsoft developers > > is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, > > Metro Style Apps, more. Free future releases when you subscribe now! > > http://p.sf.net/sfu/learndevnow-dev2 > > _______________________________________________ > > QuantLib-dev mailing list > > Qua...@li... > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > -- *Maxime Biette * ECE Paris 4th year student in Finance Engineering Students' representative of group 4FII2 Vice-president Web of L'Expression * cellphone: +33607717007 * |
|
From: Luigi B. <lui...@gm...> - 2012-01-27 09:37:51
|
Maxime,
that's great. Are you familiar with QuantLib already? What
version-control tools does your team use?
Later,
Luigi
On Fri, Jan 27, 2012 at 8:52 AM, Maxime Biette <bie...@gm...> wrote:
> Dear Quantlib community,
>
> I'm contacting you today to submit you a proposal related to QuantLib. I'm
> actually studying financial engineering in ECE Paris, Engineering School
> (in France).
>
> In the framework of my studies, I'm working on a one-year project consisting
> in developing a financial tool. I'm actively working with a team composed of
> six people.
> Since we look forward to broadcast it thanks to the OpenSource "pipe",
> and as QuantLib is well-known all over the world, my team would like
> to participate.
> Then we need your approval to take part.
>
> *Let me give you a short overview of the work in progress. It is based
> on Schwartz and Smith (2000) paper : Short-Term Variations and
> Long-Term Dynamics in Commodity Prices.*
> *Their research is aimed to describe the processes of commodity
> products with a two-factor model. Concerning our project, we want to
> implement efficiently their theory to price Crude Oil spot in the first
> place. Then the final aim is to predict the value of financial instruments
> from the
> spot : options, caps, floors, futures...*
>
>
> *The added-value is that no full implementation has been done so far in C++
> and other 'high level' languages. Hence it offers the opportunity to
> many users to make use of this approach. That may even be an add-on to
> their paper somehow (it allows people to check its performance). It is a
> very
> known paper so it is of interest to broadcast this tool.*
>
> (An optional goal is to build a handy GUI allowing many actions to the user:
> to display special statistics or characteristics, to allow an adaptive
> GUI... But that may not concern the QuantLib project actually)
> The implementation of the algorithm has already been made with MATLAB
> (especially for testing).
>
>
> I thank you for considering my request in advance.
>
> Kinds regards,
>
> --
> Maxime Biette
> +33607717007
>
> ------------------------------------------------------------------------------
> Try before you buy = See our experts in action!
> The most comprehensive online learning library for Microsoft developers
> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
> Metro Style Apps, more. Free future releases when you subscribe now!
> http://p.sf.net/sfu/learndevnow-dev2
> _______________________________________________
> QuantLib-dev mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
>
|
|
From: Maxime B. <bie...@gm...> - 2012-01-27 08:22:16
|
Dear Quantlib community, I'm contacting you today to submit you a proposal related to QuantLib. I'm actually studying financial engineering in ECE Paris, Engineering School (in France). In the framework of my studies, I'm working on a one-year project consisting in developing a financial tool. I'm actively working with a team composed of six people. Since we look forward to broadcast it thanks to the OpenSource "pipe", and as QuantLib is well-known all over the world, my team would like to participate. Then we need your approval to take part. *Let me give you a short overview of the work in progress. It is based on Schwartz and Smith (2000) paper : Short-Term Variations and Long-Term Dynamics in Commodity Prices.* *Their research is aimed to describe the processes of commodity products with a two-factor model. Concerning our project, we want to implement efficiently their theory to price Crude Oil spot in the first place. Then the final aim is to predict the value of financial instruments from the spot : options, caps, floors, futures...* *The added-value is that no full implementation has been done so far in C++ and other 'high level' languages. Hence it offers the opportunity to many users to make use of this approach. That may even be an add-on to their paper somehow (it allows people to check its performance). It is a very known paper so it is of interest to broadcast this tool.* (An optional goal is to build a handy GUI allowing many actions to the user: to display special statistics or characteristics, to allow an adaptive GUI... But that may not concern the QuantLib project actually) The implementation of the algorithm has already been made with MATLAB (especially for testing). I thank you for considering my request in advance. Kinds regards, -- Maxime Biette +33607717007 |
|
From: Ferdinando A. <na...@am...> - 2012-01-26 14:22:42
|
On Tue, Jan 24, 2012 at 5:30 PM, <ja...@fr...> wrote: > line 62 of ql/math/randomnumbers/inversecumulativersg.hpp > reads: > //! returns next sample from the Gaussian distribution > > not necessarily 'Gaussian' right? right. fixed as //! returns next sample from the inverse cumulative distribution thanks ciao -- Nando |
|
From: Rasheed A. <ras...@gm...> - 2012-01-25 13:53:27
|
I've taken a bunch of programming courses and I'm now looking for a way to learn programming in an applied way. What exercises would you suggest for a beginner, over let's say a year, to get up to speed to become capable of making a real contribution to the Quantlib project? I'm no longer in school, but I have a whole lot of spare time when I'm not at my non-programming job. I'm really interested in teaching myself. |
|
From: <ja...@fr...> - 2012-01-24 16:30:23
|
Silly one really, but line 62 of ql/math/randomnumbers/inversecumulativersg.hpp reads: //! returns next sample from the Gaussian distribution not necessarily 'Gaussian' right? Rgds PP |
|
From: SourceForge.net <no...@so...> - 2012-01-21 11:20:17
|
Bugs item #3476025, was opened at 2012-01-19 04:33 Message generated for change (Comment added) made by klausspanderen You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=3476025&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: Simon (simon_ibbotson) Assigned to: Nobody/Anonymous (nobody) Summary: Code error in fdmblackscholesmesher.cpp Initial Comment: Line 68 currently reads " std::pair<Real,Real>(std::log(cPoint.first),cPoint.second)));" it should read " std::pair<Real,Real>(std::log(cPoint.first),std::log(cPoint.second)))); ---------------------------------------------------------------------- >Comment By: Klaus Spanderen (klausspanderen) Date: 2012-01-21 03:20 Message: Hi Simon the first parameter must be given in log(cPoint.first) because the mesher is in log(S). The second parameter controls the number of grid points x_i that lie in the neighborhood of log(K). Therefore it is not a bug but a question of the convention we want to use to specify this density parameter. In the the past I've used the currently implemented convention that follows e.g. the Tavella book. If you want to change it we'll have to change the value of the density parameter in fdblackscholesvanillaengine.cpp etc from 0.1 to exp(0.1)~1.1. Because the implemented behavior should remain as it is. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=3476025&group_id=12740 |
|
From: SourceForge.net <no...@so...> - 2012-01-19 12:33:21
|
Bugs item #3476025, was opened at 2012-01-19 04:33 Message generated for change (Tracker Item Submitted) made by simon_ibbotson You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=3476025&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: Simon (simon_ibbotson) Assigned to: Nobody/Anonymous (nobody) Summary: Code error in fdmblackscholesmesher.cpp Initial Comment: Line 68 currently reads " std::pair<Real,Real>(std::log(cPoint.first),cPoint.second)));" it should read " std::pair<Real,Real>(std::log(cPoint.first),std::log(cPoint.second)))); ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112740&aid=3476025&group_id=12740 |
|
From: Laser Y. <las...@gm...> - 2012-01-13 11:29:31
|
Thanks! It seems work for me. After closing all the unrelated projects and including only the head files needed. The building time is shortened to less than one minute. On Fri, Jan 13, 2012 at 6:39 PM, Luigi Ballabio <lui...@gm...>wrote: > On Fri, Jan 13, 2012 at 11:31 AM, Laser Yuan <las...@gm...> wrote: > > Every time I change something, it takes almost ten minutes to rebuild > it. I > > noticed that there a lots of warning there so it seems it's recompiling > many > > files. > > > > I wondered if I need some make file to make the modification easier? > > No, it should already be recompiling only what's needed. Does it > compile the examples, too? (They are the projects called > DiscreteHedging, EquityOption etc.) These might take a bit of time. > Try removing the corresponding projects from the solution. > Also, I guess you're running some code you wrote to test the > modifications. Does it include only the headers that you need, or > <ql/quantlib.hpp>? The latter is huge and takes a while, whereas if > you only include what you need you should gain some time. > > Luigi > |
|
From: Luigi B. <lui...@gm...> - 2012-01-13 10:39:19
|
On Fri, Jan 13, 2012 at 11:31 AM, Laser Yuan <las...@gm...> wrote: > Every time I change something, it takes almost ten minutes to rebuild it. I > noticed that there a lots of warning there so it seems it's recompiling many > files. > > I wondered if I need some make file to make the modification easier? No, it should already be recompiling only what's needed. Does it compile the examples, too? (They are the projects called DiscreteHedging, EquityOption etc.) These might take a bit of time. Try removing the corresponding projects from the solution. Also, I guess you're running some code you wrote to test the modifications. Does it include only the headers that you need, or <ql/quantlib.hpp>? The latter is huge and takes a while, whereas if you only include what you need you should gain some time. Luigi |
|
From: Laser Y. <las...@gm...> - 2012-01-13 10:31:57
|
Every time I change something, it takes almost ten minutes to rebuild it. I noticed that there a lots of warning there so it seems it's recompiling many files. I wondered if I need some make file to make the modification easier? On Fri, Jan 13, 2012 at 6:21 PM, Luigi Ballabio <lui...@gm...>wrote: > [Note: please leave the mailing list in cc. The discussion might be > useful to others.] > > On Fri, Jan 13, 2012 at 11:04 AM, Laser Yuan <las...@gm...> wrote: > > It looks like I do need to modify the head file frequently. I'm in debug > > mode. > > My objective is to modify the LongstaffSchwartzPathPricer by using a > > different payoff function whose independent variables are underlying > price, > > time to expiry, drift, diffusion instead of the strike price. > > I also want to test it with O-U stochastic process instead of GBM. > > Still, modifying ql/methods/montecarlo/longstaffschwartzpathpricer.hpp > should only cause you to recompile a handful of files in the library, > a couple in the test suite, and the examples. It shouldn't take this > much. What files does your IDE recompile? > > Luigi > |
|
From: Luigi B. <lui...@gm...> - 2012-01-13 10:21:32
|
[Note: please leave the mailing list in cc. The discussion might be useful to others.] On Fri, Jan 13, 2012 at 11:04 AM, Laser Yuan <las...@gm...> wrote: > It looks like I do need to modify the head file frequently. I'm in debug > mode. > My objective is to modify the LongstaffSchwartzPathPricer by using a > different payoff function whose independent variables are underlying price, > time to expiry, drift, diffusion instead of the strike price. > I also want to test it with O-U stochastic process instead of GBM. Still, modifying ql/methods/montecarlo/longstaffschwartzpathpricer.hpp should only cause you to recompile a handful of files in the library, a couple in the test suite, and the examples. It shouldn't take this much. What files does your IDE recompile? Luigi |
|
From: Luigi B. <lui...@gm...> - 2012-01-13 09:54:40
|
On Fri, Jan 13, 2012 at 7:50 AM, Laser Yuan <las...@gm...> wrote: > I want to modified some part of the library and maybe add some feature to it > in the future. But I found it's really slow to compile and debug the > project. I wondered, In what way I can improve development efficiency, since > currently I spend more time on waiting for it's building than to debug with > it? What are you modifying? If you edit a hpp file, it might take some time to rebuild all the files that include it directly or indirectly, but if you edit a cpp file your IDE should only recompile that single one. Also, in Release mode VC++ is set to run the test suite after recompilation, which takes half an hour. You can disable that if you're recompiling frequently (it's a post-build action in the test-suite project). Luigi |
|
From: Luigi B. <lui...@gm...> - 2012-01-13 08:28:44
|
On Fri, Jan 13, 2012 at 7:50 AM, Laser Yuan <las...@gm...> wrote: > I want to modified some part of the library and maybe add some feature to it > in the future. But I found it's really slow to compile and debug the > project. I wondered, In what way I can improve development efficiency, since > currently I spend more time on waiting for it's building than to debug with > it? What development environment are you using? Luigi |
|
From: Laser Y. <las...@gm...> - 2012-01-13 06:51:39
|
I want to modified some part of the library and maybe add some feature to it in the future. But I found it's really slow to compile and debug the project. I wondered, In what way I can improve development efficiency, since currently I spend more time on waiting for it's building than to debug with it? |
|
From: Simon I. <Sim...@fs...> - 2012-01-11 12:00:21
|
Hi, Does QuantLib have any methods of ensuring that a vol-surface is arbitrage free? Typically this would be some kind of smoothing approach or fitting method - such as Andreasen and Huge published this year. Thanks, Simon This communication and any attachments contains information which is confidential and may be subject to legal privilege. It is for intended recipients only. If you are not the intended recipient you must not copy, distribute, publish, rely on or otherwise use it without our consent. Some of our communications may contain confidential information which it could be a criminal offence for you to disclose or use without authority. If you have received this email in error please notify pos...@fs... immediately and delete the email from your computer. The FSA reserves the right to monitor all email communications for compliance with legal, regulatory and professional standards. This email is not intended to nor should it be taken to create any legal relations or contractual relationships. This email has originated from The Financial Services Authority (FSA) 25 The North Colonnade, Canary Wharf, London E14 5HS United Kingdom Registered as a Limited Company in England and Wales No.1920623. Registered Office as above Switchboard: 020 7066 1000 Web Site: http://www.fsa.gov.uk ***************************************************************** |
|
From: Luigi B. <lui...@gm...> - 2012-01-09 19:16:37
|
On Mon, Jan 9, 2012 at 7:41 PM, Animesh Saxena <ani...@co...> wrote: > I was looking through this document "http://quantlib.org/quep/quep005.html" > and found it very interesting. It mentions that a proof of concept is > already present. I couldn't locate the files in the svn dump i downloaded. > There are no files like argsandresults.hpp That was quite a few years ago. It's no longer a proof of concept, it's a staple of the library. For the current implementation, start from <ql/instrument.hpp> and <ql/pricingengine.hpp>; the available engines are in the <ql/pricingengines> folder, while the corresponding instruments are in the <ql/instruments> folder. For an updated discussion of the architecture, see chapter 2 at <https://sites.google.com/site/luigiballabio/>. Luigi |
|
From: Animesh S. <ani...@co...> - 2012-01-09 18:41:39
|
Hi, I was looking through this document "http://quantlib.org/quep/quep005.html" and found it very interesting. It mentions that a proof of concept is already present. I couldn't locate the files in the svn dump i downloaded. There are no files like argsandresults.hpp Can someone tell me the location of the POC? - Animesh ( http://www.coffeequant.com ) |
|
From: Jérôme B. Z. <j.b...@gm...> - 2011-12-29 13:46:50
|
Good morning,
I am developing in C++ some new features to QuantLib, especially for
simulations with Monte Carlo method from Sobol, and I would like to create
a New Project within QuantLibXL_basic_vc10 (like ohxllib, QuantLib,
QuantLibObjects…).
In this New Project I would like to put all my new functions in order for
example to make easier an update of QuantLib.
This New Project would have QuantLibXLStatic as dependency.
In fact I have tried to make a New Project on the example of the project
QuantLib but the whole thing did not work.
So my question is: How do we create a New Project within
QuantLibXL_basic_vc10 that would work like the project QuantLib (where you
can find i.e. matrix.cpp, interestrate.cpp etc.) ?
Kind Regards and thank you for your help.
Jérôme
|