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: SourceForge.net <no...@so...> - 2008-04-14 10:19:06
|
Feature Requests item #1941916, was opened at 2008-04-14 15:49 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=362740&aid=1941916&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 Priority: 5 Private: No Submitted By: abhishek Srivastava (abhiabhi001) Assigned to: Nobody/Anonymous (nobody) Summary: Asian Average Strike Option Initial Comment: Hi in the instrument list "Asian Average Strike Option" is not avaialable. Thanks Abhishek ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=362740&aid=1941916&group_id=12740 |
|
From: Plamen N. <pla...@re...> - 2008-04-14 08:29:15
|
Hi Ferdinando, no problem - I'll revert the change asap (tonight) - I wasn't aware of this policy - obviously not following the discussions here on the list - sorry. cheers, Plamen -----Original Message----- From: "Ferdinando Ametrano" <na...@am...> Sent: Mon, 14 Apr 2008 10:10:15 +0200 To: qua...@li... CC: pla...@us... Received: 14-Apr-2008 10:10:54 +0200 Subject: Re: [Quantlib-dev] [QuantLib-svn] SF.net SVN: quantlib: [14708] branches/serialization_enhancements2 * 0 RECENT * 1210 FETCH (UID 41427 BODY[1] {2395} Hi Plamen > Log Message: > ----------- > small project file changes to allow for boost installed in an arbitrary directory > > Modified Paths: > -------------- > branches/serialization_enhancements2/ObjectHandler/Examples/C++/ExampleCpp_vc8.vcproj > branches/serialization_enhancements2/ObjectHandler/Examples/xl/ExampleXllDynamic1_vc8.vcproj > branches/serialization_enhancements2/ObjectHandler/Examples/xl/ExampleXllDynamic2_vc8.vcproj > branches/serialization_enhancements2/ObjectHandler/Examples/xl/ExampleXllStatic_vc8.vcproj > branches/serialization_enhancements2/QuantLibAddin/Clients/Cpp/ClientCppDemo_vc8.vcproj > > Modified: branches/serialization_enhancements2/ObjectHandler/Examples/C++/ExampleCpp_vc8.vcproj > =================================================================== > --- branches/serialization_enhancements2/ObjectHandler/Examples/C++/ExampleCpp_vc8.vcproj 2008-04-13 16:08:51 UTC (rev 14707) > +++ branches/serialization_enhancements2/ObjectHandler/Examples/C++/ExampleCpp_vc8.vcproj 2008-04-13 21:31:49 UTC (rev 14708) > @@ -75,7 +75,7 @@ > OutputFile="bin\ExampleCpp-vc80-mt-0_9_5.exe" > LinkIncremental="1" > SuppressStartupBanner="true" > - AdditionalLibraryDirectories="..\..\lib,..\..\..\log4cxx\msvc\Lib" > + AdditionalLibraryDirectories="..\..\lib;..\..\..\log4cxx\msvc\Lib;"$(BOOST_DIR)\lib"" I would prefer no to have environment variable for the boost library resolution. In my opinion it should up to the developer to configure properly its Visual Studio IDE (Tools | Options | Project and Solutions | VC++ Directories) to point to its favorite boost version. Am I missing something? Do you agree? ciao -- Nando ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ QuantLib-dev mailing list Qua...@li... https://lists.sourceforge.net/lists/listinfo/quantlib-dev |
|
From: Ferdinando A. <na...@am...> - 2008-04-14 08:10:21
|
Hi Plamen > Log Message: > ----------- > small project file changes to allow for boost installed in an arbitrary directory > > Modified Paths: > -------------- > branches/serialization_enhancements2/ObjectHandler/Examples/C++/ExampleCpp_vc8.vcproj > branches/serialization_enhancements2/ObjectHandler/Examples/xl/ExampleXllDynamic1_vc8.vcproj > branches/serialization_enhancements2/ObjectHandler/Examples/xl/ExampleXllDynamic2_vc8.vcproj > branches/serialization_enhancements2/ObjectHandler/Examples/xl/ExampleXllStatic_vc8.vcproj > branches/serialization_enhancements2/QuantLibAddin/Clients/Cpp/ClientCppDemo_vc8.vcproj > > Modified: branches/serialization_enhancements2/ObjectHandler/Examples/C++/ExampleCpp_vc8.vcproj > =================================================================== > --- branches/serialization_enhancements2/ObjectHandler/Examples/C++/ExampleCpp_vc8.vcproj 2008-04-13 16:08:51 UTC (rev 14707) > +++ branches/serialization_enhancements2/ObjectHandler/Examples/C++/ExampleCpp_vc8.vcproj 2008-04-13 21:31:49 UTC (rev 14708) > @@ -75,7 +75,7 @@ > OutputFile="bin\ExampleCpp-vc80-mt-0_9_5.exe" > LinkIncremental="1" > SuppressStartupBanner="true" > - AdditionalLibraryDirectories="..\..\lib,..\..\..\log4cxx\msvc\Lib" > + AdditionalLibraryDirectories="..\..\lib;..\..\..\log4cxx\msvc\Lib;"$(BOOST_DIR)\lib"" I would prefer no to have environment variable for the boost library resolution. In my opinion it should up to the developer to configure properly its Visual Studio IDE (Tools | Options | Project and Solutions | VC++ Directories) to point to its favorite boost version. Am I missing something? Do you agree? ciao -- Nando |
|
From: Ole P. <ole...@ya...> - 2008-04-13 23:57:12
|
Hi, do any of you use the objecthandler independently of quantlib for addin development? If yes, then I would like to pick your brain in order to assess how manageable that is and if it can be used for maintainable and scalable addin applications? Thanks, Ole __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
|
From: Chongseok <or...@ha...> - 2008-04-11 00:21:15
|
/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* Copyright (C) 2004 FIMAT Group Copyright (C) 2007 StatPro Italia srl Copyright (C) 2008 Charles Chongseok Hyun (or...@ha...) This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - 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 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \file southkorea.hpp \brief South Korean calendars */ #ifndef quantlib_south_korean_calendar_hpp #define quantlib_south_korean_calendar_hpp #include <ql/time/calendar.hpp> namespace QuantLib { //! South Korean calendars /*! Public holidays with definite rules: <ul> <li>Saturdays</li> <li>Sundays</li> <li>New Year's Day, January 1st</li> <li>Independence Day, March 1st</li> <li>Children's Day, May 5th</li> <li>Memorial Day, June 6th</li> <li>Liberation Day, August 15th</li> <li>National Fondation Day, October 3th</li> <li>Christmas Day, December 25th</li> </ul> Other public holidays for which no rule is given (data available for 2004-2010 only): <ul> <li>Lunar New Year: The last day of the previous lunar year, January 1st, 2nd in lunar calendar</li> <li>Election Days <ul> <li>National Assembly: 2004-APR-15, 2008-APR-09</li> <li>Presidency: 2007-DEC-19</li> <li>Regional Election: 2006-MAY-31</li> </ul> <li>Buddha's birthday, April 8th in lunar calendar</li> <li>Harvest Moon Day: August 14th, 15th, 16th in lunar calendar</li> </ul> <B>Holidays for settlements</B>: <ul> <li>All public holidays listed above</li> <li>Labour Day, May 1st</li> </ul> <B>Holidays for the Korea exchange</B> (data from <http://www.krx.co.kr> or <http://www.dooriworld.com/daishin/holiday/holiday.html>): <ul> <li>All public holidays listed above <li>Labour Day, May 1st</li> <li>Year-end closing: 2004-DEC-31, 2005-DEC-30, 2006-DEC-29, 2007-DEC-31</li> </ul> <B>Important changes!!!</B>: <ul> <li>Arbour Day, April 5th: a holiday until 2005, not a holiday after 2005</li> <li>Constitution Day, July 17th: a holiday until 2007, not a holiday after 2008</li> </ul> \ingroup calendars */ class SouthKorea : public Calendar { private: //! SettlementImpl represents South Korean public holidays. class SettlementImpl : public Calendar::Impl { public: SettlementImpl() : calendarName_("South Korean settlement"){} virtual std::string name() const { return calendarName_; } virtual bool isWeekend(Weekday) const; virtual bool isBusinessDay(const Date&) const; protected: //! Constructor /*! This constructor is for the sake of calling from subclasses. */ SettlementImpl(const std::string& calendarName) : calendarName_(calendarName){} protected: std::string calendarName_; }; /*! KrxImpl inherits SettlementImpl because all KRX business days are also settlement business days. */ class KrxImpl : public SettlementImpl { public: KrxImpl() : SettlementImpl(std::string("South Korean settlement")){} virtual bool isBusinessDay(const Date&) const; }; public: enum Market { Settlement, //!< generic settlement calendar KRX //!< Korea exchange calendar }; SouthKorea(Market m = Settlement); }; } #endif |
|
From: Ferdinando A. <na...@am...> - 2008-04-09 17:10:31
|
On Tue, Apr 8, 2008 at 1:14 PM, Simon Ibbotson <Sim...@st...> wrote: > Currently the NPV for a bond (as returned from the DiscountingBondEngine) is > actually the dirty price, paid on the settlement date. This seems to be a > bug. > > If the pricing engine returned both values (NPV and dirty-price) to the bond > class, where the NPV includes coupon payments after today but before the > settlement date, would anyone object? I agree with your proposal ciao -- Nando |
|
From: Luigi B. <lui...@gm...> - 2008-04-09 15:33:51
|
On Tue, 2008-04-08 at 11:14 +0000, Simon Ibbotson wrote: > Currently the NPV for a bond (as returned from the > DiscountingBondEngine) is actually the dirty price, paid on the > settlement date. This seems to be a bug. > > If the pricing engine returned both values (NPV and dirty-price) to > the bond class, where the NPV includes coupon payments after today but > before the settlement date, would anyone object? I wouldn't. Object, I mean :) Luigi -- Glendower: I can call spirits from the vasty deep. Hotspur: Why, so can I, or so can any man; But will they come when you do call for them? -- King Henry the Fourth Part I, Act III, Scene I |
|
From: Simon I. <Sim...@st...> - 2008-04-08 11:14:51
|
Currently the NPV for a bond (as returned from the DiscountingBondEngine) is actually the dirty price, paid on the settlement date. This seems to be a bug. If the pricing engine returned both values (NPV and dirty-price) to the bond class, where the NPV includes coupon payments after today but before the settlement date, would anyone object? Simon Simon Ibbotson Quantitative Analytics Capital Markets Straumur |
|
From: Luigi B. <lui...@gm...> - 2008-04-05 13:22:39
|
On Apr 4, 2008, at 9:04 PM, Yee Man Chan wrote: > Any updates to the status of my GJR-GARCH > contribution? I haven't heard anything for a week. Yee Man, sorry---I've been busy this week. I'll try and put it in shortly. Luigi |
|
From: Yee M. C. <ym...@ya...> - 2008-04-04 19:04:14
|
Any updates to the status of my GJR-GARCH contribution? I haven't heard anything for a week. Thanks Yee Man --- Yee Man Chan <ym...@ya...> wrote: > > Hi Chris > > Thanks for your hint. I added the code to re-use > intermediate results in the analytic GJR-GARCH > engine. > > I also fixed a bug in gjrgarchprocess. > > Please update my previously sent files with these > five attached files > > Attached files: > test-suite/gjrgarchmodel.cpp > ql/processes/gjrgarchprocess.hpp > ql/processes/gjrgarchprocess.cpp > ql/pricingengines/vanilla/analyticgjrgarchengine.hpp > ql/pricingengines/vanilla/analyticgjrgarchengine.cpp > > Yee Man > > --- Chris Kenyon <chr...@ya...> wrote: > > > > > Hi, > > > > re: > > " > > I can speed it up quite a bit if I can re-use > > some > > intermediate results when some parameters are the > > same. But this requires me to introduce some data > > members to AnalyticGJRGARCHengine and assign > values > > to > > them during calculate(). But calculate() is a > const > > function, so I can't really do that. What do you > > think > > I should do? > > " > > > > If you need some local data, then declare it > mutable > > (=never const), > > this overrides the const in calculate(). Use with > > care: > > > http://www.highprogrammer.com/alan/rants/mutable.html > > This is done elsewhere in QL. > > > > Regards, > > Chris > > > > > > ------------------------------------------------------------------------- > > Check out the new SourceForge.net Marketplace. > > It's the best place to buy or sell services for > > just about anything Open Source. > > > http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace> > _______________________________________________ > > QuantLib-dev mailing list > > Qua...@li... > > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > > > > ____________________________________________________________________________________ > Looking for last minute shopping deals? > Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping> ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace> _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > ____________________________________________________________________________________ You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost. http://tc.deals.yahoo.com/tc/blockbuster/text5.com |
|
From: Simon I. <Sim...@st...> - 2008-03-31 10:43:07
|
Hi folks, The constructor for the FixedRateBondHelper class that takes a bond as a parameter doesn't instantiate member variable ::bond_ before use. Either the input bond should be used (if it is assumed that the bond will not be used elsewhere) or a copy of the bond should be created for specific use with the yieldtermstructure. Currently, neither solution is perfect: a) If a copy of the bond is created, then for a derived class (from FixedRateBond) to work, we'd also require a FixedRateBond::clone() method. b) If we use the input bond, there's no guarantee that the bond is not used elsewhere with a different yieldcurve which would lead to uncertain results. Regards, Simon Simon Ibbotson Quantitative Analytics Capital Markets Straumur |
|
From: Yee M. C. <ym...@ya...> - 2008-03-29 00:57:06
|
Hi Chris Thanks for your hint. I added the code to re-use intermediate results in the analytic GJR-GARCH engine. I also fixed a bug in gjrgarchprocess. Please update my previously sent files with these five attached files Attached files: test-suite/gjrgarchmodel.cpp ql/processes/gjrgarchprocess.hpp ql/processes/gjrgarchprocess.cpp ql/pricingengines/vanilla/analyticgjrgarchengine.hpp ql/pricingengines/vanilla/analyticgjrgarchengine.cpp Yee Man --- Chris Kenyon <chr...@ya...> wrote: > > Hi, > > re: > " > I can speed it up quite a bit if I can re-use > some > intermediate results when some parameters are the > same. But this requires me to introduce some data > members to AnalyticGJRGARCHengine and assign values > to > them during calculate(). But calculate() is a const > function, so I can't really do that. What do you > think > I should do? > " > > If you need some local data, then declare it mutable > (=never const), > this overrides the const in calculate(). Use with > care: > http://www.highprogrammer.com/alan/rants/mutable.html > This is done elsewhere in QL. > > Regards, > Chris > > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace> _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > ____________________________________________________________________________________ Looking for last minute shopping deals? Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping |
|
From: Chris K. <chr...@ya...> - 2008-03-28 11:48:37
|
Hi,
re:
"
I can speed it up quite a bit if I can re-use some
intermediate results when some parameters are the
same. But this requires me to introduce some data
members to AnalyticGJRGARCHengine and assign values to
them during calculate(). But calculate() is a const
function, so I can't really do that. What do you think
I should do?
"
If you need some local data, then declare it mutable (=never const),
this overrides the const in calculate(). Use with care:
http://www.highprogrammer.com/alan/rants/mutable.html
This is done elsewhere in QL.
Regards,
Chris
|
|
From: Yee M. C. <ym...@ya...> - 2008-03-28 01:21:08
|
Attached files:
ql/models/equity/gjrgarchmodel.hpp
ql/models/equity/gjrgarchmodel.cpp
ql/pricingengines/vanilla/analyticgjrgarchengine.hpp
ql/pricingengines/vanilla/analyticgjrgarchengine.cpp
ql/pricingengines/vanilla/mceuropeangjrgarchengine.hpp
Yee Man
--- Luigi Ballabio <lui...@gm...> wrote:
> On Wed, 2008-03-26 at 17:44 -0700, Yee Man Chan
> wrote:
> > I finally get my code (including a simple test
> case
> > that is based on test-suite/hestonmodel.cpp) to
> > compile . I added a line to call my test case in
> > test-suite/quantlibtestsuite.cpp.
> >
> > I then ran test-suite/quantlib-test-suite. It gave
> me
> > one line of error but no print out from the
> > BOOST_MESSAGE calls I made. Where can I see the
> print
> > outs such that I can debug my code?
>
> You should set the environment variable
>
> BOOST_TEST_LOG_LEVEL=message
>
> If you run the tests with 'make check', it is done
> for you.
>
> Luigi
>
>
> --
>
> Hofstadter's Law:
> It always takes longer than you expect, even when
> you take
> Hofstadter's Law into account.
>
>
>
____________________________________________________________________________________
Looking for last minute shopping deals?
Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping |
|
From: Yee M. C. <ym...@ya...> - 2008-03-28 01:12:52
|
Hi Luigi
I am done coding now. The files are attached in
this email and the next.
I am sure the analytic pricing engine I implemented
is correct. But the algorithm is O(n^3) where n is the
number of days till expiry, so it is very slow when
number of days is large. It took me 20min to run the
36 test cases in Duan et al's paper.
I can speed it up quite a bit if I can re-use some
intermediate results when some parameters are the
same. But this requires me to introduce some data
members to AnalyticGJRGARCHengine and assign values to
them during calculate(). But calculate() is a const
function, so I can't really do that. What do you think
I should do?
I find that my MC results are a bit lower than my
analytic approximation. I think it is due to the fact
that I am using the following code to set maturity
Date exDate = today + 10; // 10 days maturity
boost::shared_ptr<Exercise> exercise(new
EuropeanExercise(exDate));
I find that the time is a bit less than 10 days
when I call
process->time(arguments_.exercise->lastDate()) and
multiply it by 365.0. Do you know how I can get almost
10 days here? Thanks
Attached files are:
test-suite/gjrgarchmodel.hpp
test-suite/gjrgarchmodel.cpp
ql/processes/gjrgarchprocess.hpp
ql/processes/gjrgarhprocess.cpp
Let me know if there are any questions and
comments
Yee Man
PS More files in another email
> > BOOST_MESSAGE calls I made. Where can I see the
> print
> > outs such that I can debug my code?
>
> You should set the environment variable
>
> BOOST_TEST_LOG_LEVEL=message
>
> If you run the tests with 'make check', it is done
> for you.
>
> Luigi
>
> --
>
> Hofstadter's Law:
> It always takes longer than you expect, even when
> you take
> Hofstadter's Law into account.
>
>
>
____________________________________________________________________________________
Never miss a thing. Make Yahoo your home page.
http://www.yahoo.com/r/hs |
|
From: Luigi B. <lui...@gm...> - 2008-03-27 10:38:47
|
On Wed, 2008-03-26 at 17:44 -0700, Yee Man Chan wrote: > I finally get my code (including a simple test case > that is based on test-suite/hestonmodel.cpp) to > compile . I added a line to call my test case in > test-suite/quantlibtestsuite.cpp. > > I then ran test-suite/quantlib-test-suite. It gave me > one line of error but no print out from the > BOOST_MESSAGE calls I made. Where can I see the print > outs such that I can debug my code? You should set the environment variable BOOST_TEST_LOG_LEVEL=message If you run the tests with 'make check', it is done for you. Luigi -- Hofstadter's Law: It always takes longer than you expect, even when you take Hofstadter's Law into account. |
|
From: Yee M. C. <ym...@ya...> - 2008-03-27 00:44:56
|
I finally get my code (including a simple test case
that is based on test-suite/hestonmodel.cpp) to
compile . I added a line to call my test case in
test-suite/quantlibtestsuite.cpp.
I then ran test-suite/quantlib-test-suite. It gave me
one line of error but no print out from the
BOOST_MESSAGE calls I made. Where can I see the print
outs such that I can debug my code?
Thanks
Yee Man
--- Luigi Ballabio <lui...@gm...> wrote:
> On Wed, 2008-03-26 at 09:39 -0700, Yee Man Chan
> wrote:
> > I added my files to Makefile.am in
> ql/models/equity
> > and then I type make but all.hpp doesn't change
> and no
> > object files are created
>
> You probably need automake and autoconf (and
> possibly libtool.)
> There might be packages available for your
> distribution. Otherwise
> you'll have to download them from the GNU site and
> install them.
>
> Luigi
>
>
> --
>
> Ninety percent of everything is crap.
> --- Theodore Sturgeon
>
>
>
____________________________________________________________________________________
Looking for last minute shopping deals?
Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping
|
|
From: Yee M. C. <ym...@ya...> - 2008-03-26 16:58:53
|
I think I fixed it now. The automake on my Linux box
is 1.9.5 but your am files were generated by 1.9.6. So
I went to aclocal.m4 and changed it to 1.9.5 and now
it compiles.
Yee Man
--- Luigi Ballabio <lui...@gm...> wrote:
> On Tue, 2008-03-25 at 18:56 -0700, Yee Man Chan
> wrote:
> > How do I add files to the Makefile such that they
> can
> > be compiled?
> >
> > I tried to modify Makefile.am but it didn't
> work...
>
> Modifying Makefile.am should work. What did you do?
>
> Luigi
>
>
> --
>
> A child of five would understand this. Send someone
> to fetch a child of
> five.
> -- Groucho Marx
>
>
>
____________________________________________________________________________________
Looking for last minute shopping deals?
Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping
|
|
From: Luigi B. <lui...@gm...> - 2008-03-26 16:54:01
|
On Wed, 2008-03-26 at 09:39 -0700, Yee Man Chan wrote: > I added my files to Makefile.am in ql/models/equity > and then I type make but all.hpp doesn't change and no > object files are created You probably need automake and autoconf (and possibly libtool.) There might be packages available for your distribution. Otherwise you'll have to download them from the GNU site and install them. Luigi -- Ninety percent of everything is crap. --- Theodore Sturgeon |
|
From: Yee M. C. <ym...@ya...> - 2008-03-26 16:40:07
|
I added my files to Makefile.am in ql/models/equity
and then I type make but all.hpp doesn't change and no
object files are created
Then I go to the root directory and then type make but
nothing happened either.
Yee Man
--- Luigi Ballabio <lui...@gm...> wrote:
> On Tue, 2008-03-25 at 18:56 -0700, Yee Man Chan
> wrote:
> > How do I add files to the Makefile such that they
> can
> > be compiled?
> >
> > I tried to modify Makefile.am but it didn't
> work...
>
> Modifying Makefile.am should work. What did you do?
>
> Luigi
>
>
> --
>
> A child of five would understand this. Send someone
> to fetch a child of
> five.
> -- Groucho Marx
>
>
>
____________________________________________________________________________________
Never miss a thing. Make Yahoo your home page.
http://www.yahoo.com/r/hs
|
|
From: Luigi B. <lui...@gm...> - 2008-03-26 08:01:21
|
On Tue, 2008-03-25 at 18:56 -0700, Yee Man Chan wrote: > How do I add files to the Makefile such that they can > be compiled? > > I tried to modify Makefile.am but it didn't work... Modifying Makefile.am should work. What did you do? Luigi -- A child of five would understand this. Send someone to fetch a child of five. -- Groucho Marx |
|
From: Yee M. C. <ym...@ya...> - 2008-03-26 01:57:09
|
How do I add files to the Makefile such that they can
be compiled?
I tried to modify Makefile.am but it didn't work...
Thanks
Yee Man
--- Luigi Ballabio <lui...@gm...> wrote:
> On Thu, 2008-03-13 at 10:08 -0700, Yee Man Chan
> wrote:
> > > It would be nice to have a test case exercising
> your
> > > process. May you write one?
> > >
> >
> > Of course I am going to write a test case.
>
> Ok, thanks.
>
> Luigi
>
> P.S. I never went to Stanford...
>
>
> --
>
> Hofstadter's Law:
> It always takes longer than you expect, even when
> you take
> Hofstadter's Law into account.
>
>
>
____________________________________________________________________________________
Looking for last minute shopping deals?
Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping
|
|
From: Eric E. <eri...@na...> - 2008-03-20 11:55:19
|
Hi Slava, On Wed, March 19, 2008 6:25 pm, Slava Mazur wrote: > Greetings, > > I noticed that method properties() in ObjectHandler::Object class > declared as non-const: > const boost::shared_ptr<ValueObject>& properties(); > > Is it intended? If yes, could someone tell me the reason? > Wouldn't it better to have the following? > > const boost::shared_ptr<ValueObject>& properties() const; You're right, that function ought to be const, and making it so seems not to break anything. I made the change in subversion for inclusion in the next release. Thank you. Regards, Eric |
|
From: Slava M. <Sla...@ro...> - 2008-03-19 18:28:04
|
Greetings, I noticed that method properties() in ObjectHandler::Object class declared as non-const: const boost::shared_ptr<ValueObject>& properties(); Is it intended? If yes, could someone tell me the reason? Wouldn't it better to have the following? const boost::shared_ptr<ValueObject>& properties() const; Thanks, Slava |
|
From: Luigi B. <lui...@gm...> - 2008-03-19 16:54:09
|
On Wed, 2008-03-19 at 15:28 +0000, Oleg Burundukov wrote: > > Hi Oleg, & list,both of the first two layers are really interfaces:- the > first says what you get- the second (interpolated) says that if you already > know the answer here is what you get, as you say a data representation.- the > third layer says how to build something on the second [...] I would argue (am > arguing ) against combining levels two and three because combining them would > force the second layer (interpolated) to be made in a certain way from a > certain set of input data. > > > I agree with you and the idea to separate level 2 and level 3. Although , ways > to do this may differ. It would be nice to discuss which is the best. > [However, what I propose may require too large volume of changes.] > > > For sake of clarity let's postulate following: > Level 2 comprises of static data and collateral methods, all but bootstrapping. > It also _implements_ what level 1 defines, therefore instances of level2 are > creatable. Level 3 subclasses level2, aggregates the bootstrap and makes curve > observable. Hi Oleg, just for the sake of clarity: level 1 is already observable. What level 3 adds is lazy calculation. > Should one level 2 be different from another , if _implementation_ is somewhere > outside ? Not likely. Data containers and all manipulations with them seem to > be copied from class to class. Unfortunately, the level 2 classes are all different. Each of the curves implements a different interface. InterpolatedDiscountCurve implements the abstract discountImpl() method in YieldTermStructure; InterpolatedZeroCurve implements zeroImpl() from the ZeroStructure adapter; and InterpolatedForwardCurve implements forwardImpl() from the ForwardStructure adapter. The inflation and credit curves implement other interfaces. > Should level 3 be a subclass of level 2? What if bootstrap is just another > object, the observer linked to instrument helpers? Then , the curve is > essentially level2, with _implementation_ and data arrays has been filled up by > extern bootstrap. We pay for having another instance, bootstrap, in the > program. But does not this decouple bare curve and its bootstrap? I was under the impression that the base curve(s) and the bootstrap were pretty much decoupled already---the generic bootstrap class does the filling for all curves, and the piecewise curves are only a thin layer over level 2 that call the bootstrap instance. Having the bootstrap as an external instance (as opposed to a data member) doesn't give us much of an advantage---especially since the curve would then have to register with the bootstrapper, and thus store it as a data member implicitly. > What prevents us from separating bootstrap and curve? Bootstrap uses very > limited set of operations to modify curve points. Basically, these are: reset > (size), add(time, value), set(index, value). All these interpolator->update() > look redundant, because we should assume that the bare curve knows about how to > update its interpolator _better_ than bootstrap does. So we can decouple them > to having just a common interface, e.g. CurveBuildStrategy. Here we agree completely. It is indeed possible to create a generic InterpolatedCurve<Interpolation> class that stores the data and the methods to manipulate them, and that the interpolated curves can inherit from. Unfortunately, we'd still need all level 2 curves because they have to implement different interfaces; but their common code would be written just once in InterpolatedCurve. I'd be happy to include the class in the library. > What keeps bootsrapper inside the level 3 _now_ is observability, namely, the > issue with calling calculate() inside every member. Since bootstrap is > separate, curve has to be able to wake it. It can be done surprisingly simple. It's not only observability---it's also laziness. But let's start with observability. Let's say the bootstrap is an external object and stores the helpers itself. We instantiate it, we ask it to create a curve, and pass the curve to an instrument. The instrument has to be notified when the value of a helper quote changes. Also, the instrument should not know that a bootstrap is involved; it only knows it holds a YieldTermStructure instance. This means that either: a) the term structure registers as an observer of the bootstrap, and asks the bootstrap to redo its magic when needed. But this requires the curve to store the bootstrap, so I guess this isn't what you had in mind. b) the bootstrap observes the helpers, and makes sure the curve is up to date whenever they change by performing the calculation. However, this causes us to lose laziness. If the curve is based on, say, ten helpers, and we want to change the value of all ten, this implementation would cause 10 bootstrap to be performed, nine of which we didn't need---only the final one gives us the result we wanted. In the current implementation, instead, setting the ten values just flips a boolean flag, and only one bootstrap is performed when we ask the curve for data. (Incidentally, we could already remove all the calculate() calls by calling it just once inside the curve update() method. But we would have the same issue with the ten bootstraps.) Later, Luigi -- Flon's Law: There is not now, and never will be, a language in which it is the least bit difficult to write bad programs. |