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: Ferdinando A. <na...@am...> - 2008-08-20 09:10:41
|
On Wed, Aug 20, 2008 at 9:57 AM, Luigi Ballabio <lui...@gm...> wrote: > You need to talk to your IT crew and install on those workstations the > free redistributable package: > <http://www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=en> > (there's also service packs at > <http://msdn.microsoft.com/en-us/visualc/aa336402.aspx>; check what you > need.) thank you Luigi, I did know about the VC9 free redistributable package, but I missed its SP1 version. Anyway my point is that I didn't have to distribute the equivalent package for VC8, so it must be included in XP SP2 or .Net Framework 2.0 I wonder if the VC9 package is included in XP SP3 and/or .Net Framework 3.5, in which I'll probably just wait for wider adoption of them. ciao -- Nando |
|
From: Luigi B. <lui...@gm...> - 2008-08-20 07:59:48
|
On Wed, 2008-08-20 at 07:56 +0000, su...@us... wrote:
> Modified: branches/oh_upgrade/ObjectHandler/oh/logger.cpp
> ===================================================================
> --- branches/oh_upgrade/ObjectHandler/oh/logger.cpp 2008-08-20 06:56:20 UTC (rev 15396)
> +++ branches/oh_upgrade/ObjectHandler/oh/logger.cpp 2008-08-20 07:56:40 UTC (rev 15397)
> @@ -79,7 +79,8 @@
> boost::filesystem::path path(logFileName);
>
> // If a parent directory has been specified then ensure it exists.
> - if (path.has_branch_path()) {
> + //if (path.has_parent_path()) {
> + if (path.branch_path().empty()) {//for support boost 1.35 and 1.36
> OH_REQUIRE(boost::filesystem::exists(path.branch_path()),
> "Invalid path : " << logFileName);
> }
I'm no boost::filesystem expert, but it seems to me that
path.has_branch_path() and path.branch_path().empty() mean opposite
things. Are you sure you don't need a 'not' somewhere?
Luigi
--
Newton's Law of Gravitation:
What goes up must come down. But don't expect it to come down
where you can find it. Murphy's Law applies to Newton's.
|
|
From: Luigi B. <lui...@gm...> - 2008-08-20 07:57:40
|
On Tue, 2008-08-19 at 19:12 +0200, Ferdinando Ametrano wrote: > I'm currently using VC8 SP1, just because the > runtime libraries of VC9 are missing from the default configuration of > most of the (non-developer) workstation I work with (XP SP2; it might > be the case those dlls are available in XP SP3, I'm not sure. Again: > any clue from anyone?). You need to talk to your IT crew and install on those workstations the free redistributable package: <http://www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=en> (there's also service packs at <http://msdn.microsoft.com/en-us/visualc/aa336402.aspx>; check what you need.) Luigi -- Don't say "yes" until I finish talking. -- Darryl F. Zanuck |
|
From: Slava M. <Sla...@ro...> - 2008-08-19 18:53:40
|
Hi Eric,
Thank you for the information and for the insides of ObjectHandler
functionality which have been really helpful to pinpoint the problem.
Objects are stored in objectMap_ using object ID as a key (see
std::string Repository::storeObject).
ObjectXL class returns a user defined id ignoring the calling range and
this id is used as a key in the object map (see ObjectXL::id() and
RepositoryXL::storeObject()).
This is obviously a problem - if we create two different objects in
different Excel cells they will definitely substitute each other in the
object map.
Another problem is CallingRange::updateCount_. Since it's a non-static
member then it's possible to generate the same ObjectXL::idFull_ for
different objects with the same user defined id (see
ObjectXL::setCallingRange()).
Note that if a user doesn't specify their id, everything works fine
because in this case internally generated id takes into account a
calling range (see again ObjectXL::setCallingRange()).
I think this can be fixed in two ways. For my quick fix I changed the
logic of ObjectXL::id() - it generates id upending calling range key
regardless of whether a user passed a valid id or not.
However, as far as I understood, one of motivations for the current
design was to hide calling range keys from the users and handle them
internally. In this case one needs to figure out a caller range key and
generate a key to find an object in the map out of a user defined id and
the calling range key. I'm not sure how to do that. And also, in this
case one needs to make CallingRange::updateCount_ static. Otherwise a
user will be able to generate the same object ids for different objects,
which although will be handled correctly internally (since calling
ranges are different) would look misleading from the user's perspective.
Eric, I know I owe you my reply regarding XLL containers. Thank you for
your appreciation and interest. I still don't have any feedback from my
employer regarding the source code (perhaps because of vacation time and
Olympic Games of course :), but it looks like they won't object. As for
technical details, I'll definitely get back to you as soon as I sort out
all existing issues with ObjectHandler.
Regards,
Slava Mazur
-----Original Message-----
From: Eric Ehlers [mailto:eri...@na...]
Sent: Tuesday, August 19, 2008 5:21 AM
To: Slava Mazur
Cc: qua...@li...
Subject: Re: [Quantlib-dev] Error calling xlfGetDef Excel API function
from Objecthandler's FunctionCall::callerName()
Hi Slava,
Functions of the Excel C API are documented in the macrofun help file
that
shipped with Excel 4:
http://support.microsoft.com/kb/128185
The help file identifies the functions by their old names in the Excel 4
macro
language, xlfGetDef was called GET.DEF. xlfGetDef retrieves the name,
if any,
that is associated with the specified range.
ObjectHandler names the ranges from which addin functions are called as
a way
of tracking objects. The names are created by the call to xlfSetName in
the
constructor of class CallingRange. FunctionCall::callerName() wraps
xlfGetDef
and returns the name which has been associated with the range that
invoked
whatever function is currently executing.
If no name is associated with the given range then xlfGetDef returns a
value
of type xltypeErr (16). This isn't an error condition as far as
FunctionCall::callerName() is concerned and the function returns an
empty
string. The possible return values of FunctionCall::callerName() are
handled
in RepositoryXL::getCallingRange(). It would not make sense for
FunctionCall::callerName() to return FunctionCall::callerAddress() in
the
absence of a name.
If two different objects are somehow acquiring duplicate keys, that's
certainly an error condition which should be prevented. I haven't seen
the
error, is there any chance that you could troubleshoot further and maybe
come
up with an example that would enable me to recreate the problem?
Regards,
Eric
-------------------------
Eric Ehlers
nazcatech sprl | Brussels | http://www.nazcatech.be
Distributed computing for pricing analytics - Use Microsoft Excel as a
client
to the Grid
On Fri, August 15, 2008 19:07, Slava Mazur wrote:
> Greetings,
>
> Has anyone experienced such a behavior? It happens intermittently for
some
spreadsheets in some circumstances and I cannot figure out why. Also I
couldn't find any details about xlfGetDef function.
> If anyone knows could you please point me to?
>
> Here are some details.
>
> The following function call inside FunctionCall::callerName() returns
xName->xltype = 16 meaning error:
>
> Excel(xlfGetDef, &xName, 1, FunctionCall::instance().callerAddress());
>
> The function returns an empty string in such a case. This may result
in
duplicate object keys defined in different cells, which is totally
undesirable. So my questions are:
>
> 1. Does anyone know why the function fails?
> 2. Why ObjectHandler doesn't handle a possible error condition?
> 3. Wouldn't it better to return
FunctionCall::instance().callerAddress()
instead of an empty string in such a case?
>
> Thanks,
>
> Slava Mazur
|
|
From: Ferdinando A. <na...@am...> - 2008-08-19 17:12:29
|
Hi Eric, I've switched today to boost 1.36 and noticed that while QL 0.96 has no problem with it, this is not the case for OH 0.96: error C2039: 'has_branch_path' : is not a member of 'boost::filesystem::basic_path<String,Traits>' c:\Projects\DevEnv\R000905-branch\ObjectHandler\oh\logger.cpp 82 warning C4251: 'ObjectHandler::ProcessorFactory::processorMap_' : class 'std::map<_Kty,_Ty>' needs to have dll-interface to be used by clients of class 'ObjectHandler::ProcessorFactory' c:\Projects\DevEnv\R000905-branch\ObjectHandler\oh\processor.hpp 107 error C2039: 'has_branch_path' : is not a member of 'boost::filesystem::basic_path<String,Traits>' c:\Projects\DevEnv\R000905-branch\ObjectHandler\oh\serializationfactory.cpp 135 probably "has_branch_path" has been replaced with a similar method, but I didn't have time to check. Any clue from anyone? Would be nice to have a patch that would work with both 1.35 and 1.36 BTW what compiler do you (plan to) use for the binaries to be distributed with QLXL? I'm currently using VC8 SP1, just because the runtime libraries of VC9 are missing from the default configuration of most of the (non-developer) workstation I work with (XP SP2; it might be the case those dlls are available in XP SP3, I'm not sure. Again: any clue from anyone?). Of course this is not relevant if we distribute the static xll. ciao -- Nando |
|
From: Slava M. <Sla...@ro...> - 2008-08-19 16:33:08
|
Greetings,
The QuantLibAddin project doesn't compile with QuantLib 0.9.6. I
downloaded all the projects from corresponding SourceForge page. The
version of QuantLibAddin project is 0.9.0.
When tried to compile I got a lot of error messages. A fragment of
compiler log below gives an idea what's wrong. I don't think a
compiler's vendor and version matter since it looks like the
QuantLibAddin source code doesn't reflect recent changes in QuantLib.
Could someone please take a look at it?
Thanks,
Slava Mazur
------ Build started: Project: QuantLibObjects, Configuration: Debug
CRTDLL Win32 ------
Compiling...
utilities.cpp
Will (need to) link to lib file: QuantLib-vc71-mt-gd-0_9_6.lib
timeseries.cpp
settings.cpp
schedule.cpp
quotes.cpp
processes.cpp
index.cpp
exercise.cpp
date.cpp
serializationfactory.cpp
create_volatility.cpp
create_volatilities.cpp
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_vo
latilities.cpp(33) : fatal error C1083: Cannot open include file:
'ql/experimental/abcdatmvolcurve.hpp': No such file or directory
create_vanillaswap.cpp
create_timeseries.cpp
create_termstructures.cpp
create_swaptionvolstructure.cpp
create_swaption.cpp
create_swap.cpp
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(37)
: error C2039: 'ModelOfYieldCurve' : is not a member of
'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLib\ql\cashflows\conundrumpricer.hpp
(71) : see declaration of 'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(33)
: error C2226: syntax error : unexpected type 'boost::shared_ptr<T>'
with
[
T=ObjectHandler::ValueObject
]
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(33)
: error C2238: unexpected token(s) preceding ';'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(49)
: error C2039: 'ModelOfYieldCurve' : is not a member of
'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLib\ql\cashflows\conundrumpricer.hpp
(71) : see declaration of 'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(46)
: error C2226: syntax error : unexpected type 'boost::shared_ptr<T>'
with
[
T=ObjectHandler::ValueObject
]
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(46)
: error C2238: unexpected token(s) preceding ';'
c:\Program Files\Microsoft Visual Studio .NET
2003\Vc7\include\xlocmon(231) : fatal error C1903: unable to recover
from previous error(s); stopping compilation
create_statistics.cpp
create_smilesection.cpp
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_sm
ilesection.cpp(32) : fatal error C1083: Cannot open include file:
'ql/experimental/sabrvolsurface.hpp': No such file or directory
create_simplecashflow.cpp
create_shortratemodels.cpp
create_sequencestatistics.cpp
create_schedule.cpp
create_ratehelpers.cpp
create_rangeaccrual.cpp
create_randomsequencegenerator.cpp
create_quotes.cpp
create_products.cpp
create_processes.cpp
create_pricingengines.cpp
create_piecewiseyieldcurve.cpp
create_payoffs.cpp
create_options.cpp
create_optimization.cpp
create_mathf.cpp
create_marketmodels.cpp
create_marketmodelevolvers.cpp
create_leg.cpp
create_interpolation.cpp
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\interpolation.hpp(24) :
fatal error C1083: Cannot open include file:
'ql/math/interpolations/cubicspline.hpp': No such file or directory
create_index.cpp
create_forwardrateagreement.cpp
create_exercise.cpp
create_evolutiondescription.cpp
create_driftcalculators.cpp
create_curvestate.cpp
create_ctsmmcapletcalibration.cpp
create_couponvectors.cpp
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(37)
: error C2039: 'ModelOfYieldCurve' : is not a member of
'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLib\ql\cashflows\conundrumpricer.hpp
(71) : see declaration of 'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(33)
: error C2226: syntax error : unexpected type 'boost::shared_ptr<T>'
with
[
T=ObjectHandler::ValueObject
]
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(33)
: error C2238: unexpected token(s) preceding ';'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(49)
: error C2039: 'ModelOfYieldCurve' : is not a member of
'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLib\ql\cashflows\conundrumpricer.hpp
(71) : see declaration of 'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(46)
: error C2226: syntax error : unexpected type 'boost::shared_ptr<T>'
with
[
T=ObjectHandler::ValueObject
]
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(46)
: error C2238: unexpected token(s) preceding ';'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(64) : error C2039: 'ModelOfYieldCurve' : is not a member
of 'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLib\ql\cashflows\conundrumpricer.hpp
(71) : see declaration of 'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(64) : error C2146: syntax error : missing ';' before
identifier 'ModelOfYieldCurveEnum'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(64) : error C2065: 'ModelOfYieldCurveEnum' : undeclared
identifier
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(65) : error C2039: 'ModelOfYieldCurve' : is not a member
of 'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLib\ql\cashflows\conundrumpricer.hpp
(71) : see declaration of 'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(65) : error C2923: 'ObjectHandler::Create' :
'ModelOfYieldCurve' is invalid as template argument '#1', type expected
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(53) : see declaration of 'ModelOfYieldCurve'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(65) : error C2955: 'ObjectHandler::Create' : use of
class template requires template argument list
c:\Experimental\QuantLib-0.9.6\ObjectHandler\oh\Enumerations\typefactory
.hpp(146) : see declaration of 'ObjectHandler::Create'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(65) : error C2955: 'ObjectHandler::Create' : use of
class template requires template argument list
c:\Experimental\QuantLib-0.9.6\ObjectHandler\oh\Enumerations\typefactory
.hpp(146) : see declaration of 'ObjectHandler::Create'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(81) : error C3861: 'ModelOfYieldCurveEnum': identifier
not found, even with argument-dependent lookup
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(290) : error C2039: 'ModelOfYieldCurve' : is not a
member of 'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLib\ql\cashflows\conundrumpricer.hpp
(71) : see declaration of 'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(290) : error C2146: syntax error : missing ';' before
identifier 'ModelOfYieldCurveEnum'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(291) : error C2039: 'ModelOfYieldCurve' : is not a
member of 'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLib\ql\cashflows\conundrumpricer.hpp
(71) : see declaration of 'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(291) : error C2923: 'ObjectHandler::Create' :
'ModelOfYieldCurve' is invalid as template argument '#1', type expected
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(259) : see declaration of 'ModelOfYieldCurve'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(291) : error C2955: 'ObjectHandler::Create' : use of
class template requires template argument list
c:\Experimental\QuantLib-0.9.6\ObjectHandler\oh\Enumerations\typefactory
.hpp(146) : see declaration of 'ObjectHandler::Create'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(291) : error C2955: 'ObjectHandler::Create' : use of
class template requires template argument list
c:\Experimental\QuantLib-0.9.6\ObjectHandler\oh\Enumerations\typefactory
.hpp(146) : see declaration of 'ObjectHandler::Create'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(290) : error C3861: 'ModelOfYieldCurveEnum': identifier
not found, even with argument-dependent lookup
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(307) : error C3861: 'ModelOfYieldCurveEnum': identifier
not found, even with argument-dependent lookup
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_co
uponvectors.cpp(307) : error C2514:
'QuantLibAddin::ConundrumPricerByNumericalIntegration' : class has no
constructors
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(44)
: see declaration of
'QuantLibAddin::ConundrumPricerByNumericalIntegration'
create_correlation.cpp
create_cmsmarketcalibration.cpp
c:\work\workspace2\cpplibs\boost\boost_1_34_1\boost\shared_ptr.hpp(209)
: error C2680: 'boost::shared_ptr<T>::element_type *' : invalid target
type for dynamic_cast
with
[
T=QuantLib::SwaptionVolatilityStructure
]
'SwaptionVolatilityStructure' : class must be defined before
using in a dynamic_cast
c:\work\workspace2\cpplibs\boost\boost_1_34_1\boost\shared_ptr.hpp(462)
: see reference to function template instantiation
'boost::shared_ptr<T>::shared_ptr<LibraryClass>(const
boost::shared_ptr<LibraryClass> &,boost::detail::dynamic_cast_tag)'
being compiled
with
[
T=QuantLib::SwaptionVolatilityStructure,
LibraryClass=QuantLib::Extrapolator
]
c:\Experimental\QuantLib-0.9.6\ObjectHandler\oh\libraryobject.hpp(50) :
see reference to function template instantiation 'boost::shared_ptr<T>
boost::dynamic_pointer_cast<LibraryDerivedClass,LibraryClass>(const
boost::shared_ptr<LibraryClass> &)' being compiled
with
[
T=QuantLib::SwaptionVolatilityStructure,
LibraryDerivedClass=QuantLib::SwaptionVolatilityStructure,
LibraryClass=QuantLib::Extrapolator
]
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Conversions\coercehandl
e.hpp(63) : see reference to function template instantiation 'void
ObjectHandler::LibraryObject<LibraryClass>::getLibraryObject<T>(boost::s
hared_ptr<T> &) const' being compiled
with
[
LibraryClass=QuantLib::Extrapolator,
T=QuantLib::SwaptionVolatilityStructure
]
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Conversions\coercehandl
e.hpp(83) : see reference to function template instantiation 'bool
QuantLibAddin::wrapObject<ObjectClass,LibraryClass>(const
boost::shared_ptr<T>
&,QuantLib::Handle<QuantLib::SwaptionVolatilityStructure> &)' being
compiled
with
[
ObjectClass=QuantLibAddin::SwaptionVolatilityStructure,
LibraryClass=QuantLib::SwaptionVolatilityStructure,
T=ObjectHandler::Object
]
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Conversions\coercehandl
e.hpp(80) : while compiling class-template member function
'QuantLibAddin::CoerceHandle<ObjectClass,LibraryClass>::Conversion
*QuantLibAddin::CoerceHandle<ObjectClass,LibraryClass>::getConversions(v
oid) '
with
[
ObjectClass=QuantLibAddin::SwaptionVolatilityStructure,
LibraryClass=QuantLib::SwaptionVolatilityStructure
]
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\Serialization\create_cm
smarketcalibration.cpp(73) : see reference to class template
instantiation 'QuantLibAddin::CoerceHandle<ObjectClass,LibraryClass>'
being compiled
with
[
ObjectClass=QuantLibAddin::SwaptionVolatilityStructure,
LibraryClass=QuantLib::SwaptionVolatilityStructure
]
c:\work\workspace2\cpplibs\boost\boost_1_34_1\boost\shared_ptr.hpp(210)
: fatal error C1903: unable to recover from previous error(s); stopping
compilation
create_cmsmarket.cpp
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(37)
: error C2039: 'ModelOfYieldCurve' : is not a member of
'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLib\ql\cashflows\conundrumpricer.hpp
(71) : see declaration of 'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(33)
: error C2226: syntax error : unexpected type 'boost::shared_ptr<T>'
with
[
T=ObjectHandler::ValueObject
]
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(33)
: error C2238: unexpected token(s) preceding ';'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(49)
: error C2039: 'ModelOfYieldCurve' : is not a member of
'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLib\ql\cashflows\conundrumpricer.hpp
(71) : see declaration of 'QuantLib::GFunctionFactory'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(46)
: error C2226: syntax error : unexpected type 'boost::shared_ptr<T>'
with
[
T=ObjectHandler::ValueObject
]
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\conundrumpricer.hpp(46)
: error C2238: unexpected token(s) preceding ';'
c:\Program Files\Microsoft Visual Studio .NET
2003\Vc7\include\xlocmon(231) : fatal error C1903: unable to recover
from previous error(s); stopping compilation
create_capletvolstructure.cpp
create_capfloor.cpp
create_browniangenerators.cpp
create_bonds.cpp
create_assetswap.cpp
create_alphaform.cpp
create_accountingengines.cpp
create_abcd.cpp
optimization.cpp
conversions.cpp
yieldtermstructures.cpp
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\yieldtermstructures.cpp
(31) : fatal error C1083: Cannot open include file:
'ql/math/interpolations/cubicspline.hpp': No such file or directory
ratehelpers.cpp
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\ratehelpers.cpp(50) :
error C2661: 'QuantLib::DepositRateHelper::DepositRateHelper' : no
overloaded function takes 8 arguments
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\ratehelpers.cpp(73) :
error C2664: 'QuantLib::FuturesRateHelper::FuturesRateHelper(const
QuantLib::Handle<T> &,const QuantLib::Date &,QuantLib::Size,const
QuantLib::Calendar &,QuantLib::BusinessDayConvention,bool,const
QuantLib::DayCounter &,const QuantLib::Handle<T> &)' : cannot convert
parameter 6 from 'const QuantLib::DayCounter' to 'bool'
with
[
T=QuantLib::Quote
]
No user-defined-conversion operator available that can perform
this conversion, or the operator cannot be called
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\ratehelpers.cpp(135) :
error C2661: 'QuantLib::FraRateHelper::FraRateHelper' : no overloaded
function takes 9 arguments
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\ratehelpers.cpp(160) :
error C2661: 'QuantLib::FraRateHelper::FraRateHelper' : no overloaded
function takes 9 arguments
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\ratehelpers.cpp(184) :
error C2664: 'QuantLib::FixedRateBondHelper::FixedRateBondHelper(const
QuantLib::Handle<T> &,QuantLib::Natural,QuantLib::Real,const
QuantLib::Schedule &,const std::vector<_Ty> &,const QuantLib::DayCounter
&,QuantLib::BusinessDayConvention,QuantLib::Real,const QuantLib::Date
&)' : cannot convert parameter 3 from 'const QuantLib::Schedule' to
'QuantLib::Real'
with
[
T=QuantLib::Quote,
_Ty=double
]
No user-defined-conversion operator available that can perform
this conversion, or the operator cannot be called
piecewiseyieldcurve.cpp
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(211) : error C2039: 'CubicSpline' : is not a member of 'QuantLib'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(211) : error C2065: 'CubicSpline' : undeclared identifier
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(211) : error C2783: 'void
QuantLibAddin::Call::CallerFactory::init(QuantLibAddin::Call::TokenPair)
' : could not deduce template argument for 'Traits'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(200) : see declaration of 'QuantLibAddin::Call::CallerFactory::init'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(211) : error C2783: 'void
QuantLibAddin::Call::CallerFactory::init(QuantLibAddin::Call::TokenPair)
' : could not deduce template argument for 'Interpolator'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(200) : see declaration of 'QuantLibAddin::Call::CallerFactory::init'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(219) : error C2039: 'CubicSpline' : is not a member of 'QuantLib'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(219) : error C3861: 'CubicSpline': identifier not found, even with
argument-dependent lookup
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(219) : error C2783: 'void
QuantLibAddin::Call::CallerFactory::init(QuantLibAddin::Call::TokenPair)
' : could not deduce template argument for 'Traits'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(200) : see declaration of 'QuantLibAddin::Call::CallerFactory::init'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(219) : error C2783: 'void
QuantLibAddin::Call::CallerFactory::init(QuantLibAddin::Call::TokenPair)
' : could not deduce template argument for 'Interpolator'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(200) : see declaration of 'QuantLibAddin::Call::CallerFactory::init'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(227) : error C2039: 'CubicSpline' : is not a member of 'QuantLib'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(227) : error C3861: 'CubicSpline': identifier not found, even with
argument-dependent lookup
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(227) : error C2783: 'void
QuantLibAddin::Call::CallerFactory::init(QuantLibAddin::Call::TokenPair)
' : could not deduce template argument for 'Traits'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(200) : see declaration of 'QuantLibAddin::Call::CallerFactory::init'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(227) : error C2783: 'void
QuantLibAddin::Call::CallerFactory::init(QuantLibAddin::Call::TokenPair)
' : could not deduce template argument for 'Interpolator'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\piecewiseyieldcurve.cpp
(200) : see declaration of 'QuantLibAddin::Call::CallerFactory::init'
volatility.cpp
products.cpp
marketmodels.cpp
marketmodelevolvers.cpp
evolutiondescription.cpp
driftcalculators.cpp
curvestate.cpp
ctsmmcapletcalibration.cpp
correlation.cpp
browniangenerators.cpp
alphaform.cpp
accountingengines.cpp
abcd.cpp
volatilities.cpp
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\volatilities.cpp(29) :
fatal error C1083: Cannot open include file:
'ql/experimental/abcdatmvolcurve.hpp': No such file or directory
swaptionvolstructure.cpp
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\swaptionvolstructure.cp
p(45) : error C2039: 'SwaptionConstantVolatility' : is not a member of
'QuantLib'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\swaptionvolstructure.cp
p(45) : error C2660:
'QuantLibAddin::SwaptionConstantVolatility::SwaptionConstantVolatility'
: function does not take 3 arguments
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\swaptionvolstructure.cp
p(67) : error C2664:
'QuantLib::SwaptionVolatilityMatrix::SwaptionVolatilityMatrix(const
QuantLib::Calendar &,QuantLib::BusinessDayConvention,const
std::vector<_Ty> &,const std::vector<_Ty> &,const
std::vector<std::vector<QuantLib::Handle<T>>> &,const
QuantLib::DayCounter &)' : cannot convert parameter 2 from 'const
std::vector<_Ty>' to 'QuantLib::BusinessDayConvention'
with
[
_Ty=QuantLib::Period,
T=QuantLib::Quote
]
and
[
_Ty=QuantLib::Period
]
No user-defined-conversion operator available that can perform
this conversion, or the operator cannot be called
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\swaptionvolstructure.cp
p(100) : error C2661: 'QuantLib::SwaptionVolCube2::SwaptionVolCube2' :
no overloaded function takes 7 arguments
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\swaptionvolstructure.cp
p(128) : error C2664:
'QuantLib::SwaptionVolCube1::SwaptionVolCube1(const QuantLib::Handle<T>
&,const std::vector<_Ty> &,const std::vector<_Ty> &,const
std::vector<double> &,const
std::vector<std::vector<QuantLib::Handle<QuantLib::Quote>>> &,const
boost::shared_ptr<QuantLib::SwapIndex> &,const
boost::shared_ptr<QuantLib::SwapIndex> &,bool,const
std::vector<std::vector<QuantLib::Handle<QuantLib::Quote>>> &,const
std::vector<bool,_Ax> &,bool,const
boost::shared_ptr<QuantLib::EndCriteria> &,QuantLib::Real,const
boost::shared_ptr<QuantLib::OptimizationMethod> &)' : cannot convert
parameter 7 from 'bool' to 'const boost::shared_ptr<T> &'
with
[
T=QuantLib::SwaptionVolatilityStructure,
_Ty=QuantLib::Period,
_Ax=std::allocator<bool>
]
and
[
T=QuantLib::SwapIndex
]
Reason: cannot convert from 'bool' to 'const
boost::shared_ptr<T>'
with
[
T=QuantLib::SwapIndex
]
No constructor could take the source type, or constructor
overload resolution was ambiguous
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\swaptionvolstructure.cp
p(268) : error C2039: 'SpreadedSwaptionVolatilityStructure' : is not a
member of 'QuantLib'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\swaptionvolstructure.cp
p(269) : error C2039: 'SpreadedSwaptionVolatilityStructure' : is not a
member of 'QuantLib'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\swaptionvolstructure.cp
p(269) : error C2660:
'QuantLibAddin::SpreadedSwaptionVolatilityStructure::SpreadedSwaptionVol
atilityStructure' : function does not take 2 arguments
smilesection.cpp
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\smilesection.cpp(28) :
fatal error C1083: Cannot open include file:
'ql/experimental/sabrvolsurface.hpp': No such file or directory
cmsmarketcalibration.cpp
cmsmarket.cpp
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\cmsmarket.cpp(39) :
error C2661: 'QuantLib::CmsMarket::CmsMarket' : no overloaded function
takes 5 arguments
capletvolstructure.cpp
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\capletvolstructure.cpp(
43) : error C2039: 'ConstantOptionletVol' : is not a member of
'QuantLib'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\capletvolstructure.cpp(
43) : error C2660:
'QuantLibAddin::ConstantOptionletVol::ConstantOptionletVol' : function
does not take 3 arguments
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\capletvolstructure.cpp(
63) : error C2039: 'SpreadedOptionletVol' : is not a member of
'QuantLib'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\capletvolstructure.cpp(
64) : error C2039: 'SpreadedOptionletVol' : is not a member of
'QuantLib'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\capletvolstructure.cpp(
64) : error C2660:
'QuantLibAddin::SpreadedOptionletVol::SpreadedOptionletVol' : function
does not take 2 arguments
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\capletvolstructure.cpp(
78) : error C2664:
'QuantLib::CapFloorTermVolCurve::CapFloorTermVolCurve(QuantLib::Natural,
const QuantLib::Calendar &,QuantLib::BusinessDayConvention,const
std::vector<_Ty> &,const std::vector<QuantLib::Handle<T>> &,const
QuantLib::DayCounter &)' : cannot convert parameter 3 from 'const
std::vector<_Ty>' to 'QuantLib::BusinessDayConvention'
with
[
_Ty=QuantLib::Period,
T=QuantLib::Quote
]
and
[
_Ty=QuantLib::Period
]
No user-defined-conversion operator available that can perform
this conversion, or the operator cannot be called
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\capletvolstructure.cpp(
97) : error C2664:
'QuantLib::CapFloorTermVolSurface::CapFloorTermVolSurface(QuantLib::Natu
ral,const QuantLib::Calendar &,QuantLib::BusinessDayConvention,const
std::vector<_Ty> &,const std::vector<double> &,const
std::vector<std::vector<QuantLib::Handle<T>>> &,const
QuantLib::DayCounter &)' : cannot convert parameter 3 from 'const
std::vector<_Ty>' to 'QuantLib::BusinessDayConvention'
with
[
_Ty=QuantLib::Period,
T=QuantLib::Quote
]
and
[
_Ty=QuantLib::Period
]
No user-defined-conversion operator available that can perform
this conversion, or the operator cannot be called
pricingengines.cpp
rangeaccrual.cpp
leg.cpp
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\leg.cpp(52) : error
C2039: 'currentCouponRate' : is not a member of 'QuantLib::CashFlows'
c:\Experimental\QuantLib-0.9.6\QuantLib\ql\cashflows\cashflows.hpp(42) :
see declaration of 'QuantLib::CashFlows'
c:\Experimental\QuantLib-0.9.6\QuantLibAddin\qlo\leg.cpp(52) : error
C2660: 'QuantLibAddin::Leg::currentCouponRate' : function does not take
2 arguments
flowanalysis.cpp
couponvectors.cpp
conundrumpricer.cpp
|
|
From: Luigi B. <lui...@gm...> - 2008-08-19 16:20:21
|
On Tue, 2008-08-19 at 11:23 +0200, Florent Grenier wrote: > I'm currently in the process of writing such a sample (it's almost > over in fact). I'm still having small discrepancies between direct > calculations of the prices and yields, and the results of yield to > price/price to yield computations. I'm going to investigate them as > soon as I have some time. Thanks, Florent. It was sorely missed. I'll look at your code as soon as I get some time. Luigi -- fix, n.,v. What one does when a problem has been reported too many times to be ignored. -- the Jargon file |
|
From: Florent G. <flo...@gm...> - 2008-08-19 09:23:51
|
Today: Wednesday, June 18th, 2008
Settlement date: Friday, June 20th, 2008
ZC Fixed Floating
------------------------------------------------
Net present value 94.24 99.66 101.49
Clean price 94.24 99.18 101.09
Dirty price 94.24 99.66 101.49
Accrued coupon 0.00 0.48 0.40
Previous coupon 0.00 % 4.50 % 5.23 %
Next coupon xxx 4.50 % 2.67 %
Yield 4.22 % 4.60 % 3.64 %
Sample indirect computations (for the floating rate bond):
------------------------------------------------
Yield to Clean Price: 101.08
Clean Price to Yield: 3.63 %
Run completed in 0 s
|
|
From: Eric E. <eri...@na...> - 2008-08-19 08:07:12
|
Hi Nando, On Mon, August 18, 2008 14:55, Ferdinando Ametrano wrote: > what about having a dedicated XllContainers library? Then the XLL specialization of ObjectHandler would just use it. It seems cleaner to me Agreed. Regards, Eric ------------------------- Eric Ehlers nazcatech sprl | Brussels | http://www.nazcatech.be Distributed computing for pricing analytics - Use Microsoft Excel as a client to the Grid |
|
From: Eric E. <eri...@na...> - 2008-08-19 08:07:02
|
Hi Slava,
Functions of the Excel C API are documented in the macrofun help file that
shipped with Excel 4:
http://support.microsoft.com/kb/128185
The help file identifies the functions by their old names in the Excel 4 macro
language, xlfGetDef was called GET.DEF. xlfGetDef retrieves the name, if any,
that is associated with the specified range.
ObjectHandler names the ranges from which addin functions are called as a way
of tracking objects. The names are created by the call to xlfSetName in the
constructor of class CallingRange. FunctionCall::callerName() wraps xlfGetDef
and returns the name which has been associated with the range that invoked
whatever function is currently executing.
If no name is associated with the given range then xlfGetDef returns a value
of type xltypeErr (16). This isn't an error condition as far as
FunctionCall::callerName() is concerned and the function returns an empty
string. The possible return values of FunctionCall::callerName() are handled
in RepositoryXL::getCallingRange(). It would not make sense for
FunctionCall::callerName() to return FunctionCall::callerAddress() in the
absence of a name.
If two different objects are somehow acquiring duplicate keys, that's
certainly an error condition which should be prevented. I haven't seen the
error, is there any chance that you could troubleshoot further and maybe come
up with an example that would enable me to recreate the problem?
Regards,
Eric
-------------------------
Eric Ehlers
nazcatech sprl | Brussels | http://www.nazcatech.be
Distributed computing for pricing analytics - Use Microsoft Excel as a client
to the Grid
On Fri, August 15, 2008 19:07, Slava Mazur wrote:
> Greetings,
>
> Has anyone experienced such a behavior? It happens intermittently for some
spreadsheets in some circumstances and I cannot figure out why. Also I
couldn't find any details about xlfGetDef function.
> If anyone knows could you please point me to?
>
> Here are some details.
>
> The following function call inside FunctionCall::callerName() returns
xName->xltype = 16 meaning error:
>
> Excel(xlfGetDef, &xName, 1, FunctionCall::instance().callerAddress());
>
> The function returns an empty string in such a case. This may result in
duplicate object keys defined in different cells, which is totally
undesirable. So my questions are:
>
> 1. Does anyone know why the function fails?
> 2. Why ObjectHandler doesn't handle a possible error condition?
> 3. Wouldn't it better to return FunctionCall::instance().callerAddress()
instead of an empty string in such a case?
>
> Thanks,
>
> Slava Mazur
|
|
From: Luigi B. <lui...@gm...> - 2008-08-18 19:47:44
|
On Aug 17, 2008, at 3:47 AM, maria vieira wrote: > I am a very experienced programmer in fortran, but I know very > little of objected oriented programming.To help me to get started > using QuantLib, could someone post or send to me > (mar...@ya...) a simple example of yield calculation of a > fixed rate coupon bond? I was told to look at the "test suite" but I > am so new to all this, including QuantLib, that this advice did not > help me much. I need a complete code such as the > "ConvertibleBonds.cpp", which comes in the QuantLib package. That > is, a code in which I just have to compile and run. Of course, I > would also appreciate receiving other examples of code, but the one > mentioned above would already be very helpful. Thanks! A quick note: if anyone wants to write a bond example, post it here--- I'll be happy to include it in next release. Thanks, Luigi P.S. Maria: in the meantime, you can start looking at the file test- suite/bonds.cpp. It cannot be compiled as it is, but chances are that you can can take any of the functions in there, copy it in a separate file, rename it as main() and obtain a running program. (You'll probably have to remove the BOOST_ERROR function calls, too.) |
|
From: Ferdinando A. <na...@am...> - 2008-08-18 14:38:24
|
On Fri, Aug 15, 2008 at 3:17 PM, petercaspers <pet...@ar...> wrote: > Hi, I think in swaptionVolCube2.cpp, line 70 (QL 0.9.0) is a bug: > > Period swapTenor( ... rounder(swapLength/12.0) , Months) > > must be > > Period swapTenor( ... rounder(swapLength*12.0) , Months) yes, you're right. I'll fix on the trunk shortly We probably didn't catch it before because smileSectionImpl(const Date& optionDate, const Period& swapTenor) const is used much more than smileSectionImpl(Time optionTime, Time swapLength) const thank you ciao -- Nando |
|
From: Ferdinando A. <na...@am...> - 2008-08-18 13:55:50
|
Hi Slava I join Eric in the appreciation for your proposal and second your contribution On Wed, Aug 13, 2008 at 1:09 PM, Eric Ehlers <eri...@na...> wrote: > [...] we could get your classes onto the svn > trunk for inclusion in the next release. I would put them in new folder > ObjectHandler/ohxl/xllcontainers in a sub-namespace. As you note, your new > classes can be used independently of ObjectHandler and I would definitely want > to retain that orthogonality. what about having a dedicated XllContainers library? Then the XLL specialization of ObjectHandler would just use it. It seems cleaner to me > It would be good to get some example applications for XLL Containers, maybe > showing the usage of the classes with and without ObjectHandler? > [... we ] have the conversion logic in one place where it is > reused by all platforms, for example if you serialize the Excel environment > into a stream that can be loaded by a QuantLib C++ application on Linux. How > would that work if the ObjectHandler XLL and QuantLibXL were to use the XLL > Container classes in place of the existing Excel bindings? I second this requests as they would help understanding how beneficial would be merging your library into OH instead of keeping it separate and how to effectively use it without losing the "platform neutrality" ciao -- Nando |
|
From: Tito I. <tit...@ya...> - 2008-08-17 19:18:40
|
Hi,
Could someone kindly add the below code to QuantLib-SWIG/SWIG/stochasticprocess.i
It's a purely additive change: it just exposes a teeny bit of functionality to users of the SWIG interfaces to QuantLib.
I have just tested it against the current repository and it builds and runs correctly. If you provide me with access to that project, I'll be happy to make the change myself. Thanks and regards,
Tito.
--
%{
using QuantLib::GeometricBrownianMotionProcess;
typedef boost::shared_ptr<StochasticProcess> GeometricBrownianMotionProcessPtr;
%}
%rename(GeometricBrownianMotionProcess) GeometricBrownianMotionProcessPtr;
class GeometricBrownianMotionProcessPtr : public StochasticProcess1DPtr {
public:
%extend {
GeometricBrownianMotionProcessPtr
(double initialValue, double mue, double sigma) {
return new GeometricBrownianMotionProcessPtr
(new GeometricBrownianMotionProcess(initialValue, mue, sigma));
}
}
};
|
|
From: maria v. <mar...@ya...> - 2008-08-17 01:47:51
|
I am a very experienced programmer in fortran, but I know very little of objected oriented programming.To help me to get started using QuantLib, could someone post or send to me (mar...@ya...) a simple example of yield calculation of a fixed rate coupon bond? I was told to look at the "test suite" but I am so new to all this, including QuantLib, that this advice did not help me much. I need a complete code such as the "ConvertibleBonds.cpp", which comes in the QuantLib package. That is, a code in which I just have to compile and run. Of course, I would also appreciate receiving other examples of code, but the one mentioned above would already be very helpful. Thanks! Maria Vieira |
|
From: Slava M. <Sla...@ro...> - 2008-08-15 18:08:23
|
Greetings, Has anyone experienced such a behavior? It happens intermittently for some spreadsheets in some circumstances and I cannot figure out why. Also I couldn't find any details about xlfGetDef function. If anyone knows could you please point me to? Here are some details. The following function call inside FunctionCall::callerName() returns xName->xltype = 16 meaning error: Excel(xlfGetDef, &xName, 1, FunctionCall::instance().callerAddress()); The function returns an empty string in such a case. This may result in duplicate object keys defined in different cells, which is totally undesirable. So my questions are: 1. Does anyone know why the function fails? 2. Why ObjectHandler doesn't handle a possible error condition? 3. Wouldn't it better to return FunctionCall::instance().callerAddress() instead of an empty string in such a case? Thanks, Slava Mazur |
|
From: petercaspers <pet...@ar...> - 2008-08-15 13:17:18
|
Hi, I think in swaptionVolCube2.cpp, line 70 (QL 0.9.0) is a bug: Period swapTenor( ... rounder(swapLength/12.0) , Months) must be Period swapTenor( ... rounder(swapLength*12.0) , Months) ? Regards, Peter -- View this message in context: http://www.nabble.com/swaptionVolCube2-bug-tp18998476p18998476.html Sent from the quantlib-dev mailing list archive at Nabble.com. |
|
From: Eric E. <eri...@na...> - 2008-08-15 10:31:42
|
Hi Rahul,
On Thu, August 14, 2008 12:38, Rahul Gupta wrote:
> Eric,
>
> Thank you for such a thorough reply.
Happy to help.
> I should first clarify the following issues:
>
> 1) I was explicitly providing a null, I merely didn't type it correctly. 2)
The boosts issue is again a testament to my typing skills.
That makes more sense.
> Now with regards to the engine. I believe that I may have taken an
excessively complex route towards adding an engine. My terminal goal is to
expose Analytic and MC heston engines. Assuming I strip my code, would this
be the best way to add the engines?
>
> 1) Provide a type in enumeratedclasses.xml - Analytic = without
> timesteps, MC = with timesteps [in terms of type] (say, AHE and MCHE) 2) Add
a similar definition in pricingengines.xml/cpp/hpp to what I have already
done in my own files.
I have just reviewed the code in more detail, it's slightly more complicated.
Pricing engines come in 2 flavors:
1) Full fledged objects
2) Enumerated classes
2a) Without timesteps
2b) With timesteps
DiscountingSwapEngine is an example of 1):
- Class QuantLibAddin::DiscountingSwapEngine is implemented in files
QuantLibAddin\qlo\pricingengines.*pp
- Function qlDiscountingSwapEngine() is configured in file
QuantLibAddin\gensrc\metadata\functions\pricingengines.xml
AnalyticEuropeanEngine is an example of 2a):
- Function AE_Engine() is implemented in files
QuantLibAddin\qlo\enumerations\constructors\enumeratedclasses.*pp
- Enumeration AE is configured in file
QuantLibAddin\gensrc\metadata\enumerations\enumeratedclasses.xml
Note that in the case of 2) no QuantLibAddin class is implemented.
Your new classes would need to follow one approach or the other. The
differences between the two approaches should be fairly clear:
1) Fully fledged stateful object which can be instantiated in its own
cell, serialized, etc. No restrictions on the signature of the
constructor.
2) Enumeration, exists only as a transient object which cannot be directly
accessed by the user, must conform to one of the two available
constructor signatures (2a or 2b).
Before starting on this I would first identify the cause of the "class xxx is
not available" error. As mentioned I can't see anything in your description
of your initial changes which would have caused that error and you should get
to the bottom of that before proceeding.
Please let me know how it goes. Maybe when this is done there will be some
code to contribute back to the project, and perhaps a new section on
enumerations in the "Extending QuantLibXL" tutorial?
Regards,
Eric
-------------------------
Eric Ehlers
nazcatech sprl | Brussels | http://www.nazcatech.be
Distributed computing for pricing analytics - Use Microsoft Excel as a client
to the Grid
|
|
From: Rahul G. <rah...@mo...> - 2008-08-14 11:38:59
|
Eric,
Thank you for such a thorough reply. I should first clarify the
following issues:
1) I was explicitly providing a null, I merely didn't type it correctly.
2) The boosts issue is again a testament to my typing skills.
Now with regards to the engine. I believe that I may have taken an
excessively complex route towards adding an engine. My terminal goal is
to expose Analytic and MC heston engines. Assuming I strip my code,
would this be the best way to add the engines?
1) Provide a type in enumeratedclasses.xml - Analytic = without
timesteps, MC = with timesteps [in terms of type] (say, AHE and MCHE)
2) Add a similar definition in pricingengines.xml/cpp/hpp to what I have
already done in my own files.
Many thanks,
Rahul
-----Original Message-----
From: Eric Ehlers [mailto:eri...@na...]
Sent: 14 August 2008 12:50 PM
To: Rahul Gupta
Cc: qua...@li...
Subject: Re: [Quantlib-dev] Exposure Issues
Hello,
On Wed, August 13, 2008 11:15, Rahul Gupta wrote:
>
> Lack of label for the engine simply means I get a excel assigned name
> rather
than my
> own.
Not exactly ;)
For excel to assign the name you would need explicitly to provide a
null:
qlPricingEngine(, "AE", B30)
Note the comma before the "AE". In this case QLXL generates an ID like
obj_00000.
You have this:
qlPricingEngine("AE", B30)
In that case "AE" is interpreted as the object ID, and the contents of
B30 are used as the Engine ID.
> Any other ideas?
Assuming the above is sorted out...
> When I try to instantiate a qlPricingEngine("AE",B30), i.e. a
> GeneralizedBlackScholesEngine, I get #NUM, and the following error
> from
> ohRetrieveError():
>
> qlPricingEngine - Error retrieving Enumeration from Registry - the
> type 'class boost::shared_ptr<class QuantLib::PricingEngine>
> (__cdecl*)(class boosts::shared_ptr<class
QuantLib::GeneralizedBlackScholesProcess> const &)'
> is not available!
That error indicates that the enumeration registry is in an inconsistent
state. In the standard release of QLXL I believe it's completely
impossible to trigger that error regardless of the inputs, so your
change has somehow broken the initialization of the app.
The long type name you are looking at is the signature of function
AE_Engine() in file
QuantLibAddin\qlo\Enumerations\Constructors\enumeratedclasses.hpp.
The link between the string "AE" and the function AE_Engine() is
established in line 51 of file
QuantLibAddin\qlo\Enumerations\Register\register_classes.cpp:
create.registerType("AE",
reinterpret_cast<void*>(AE_Engine));
That code is autogenerated by gensrc based on the contents of
QuantLibAddin\gensrc\metadata\Enumerations\enumeratedclasses.xml.
Did you edit enumeratedclasses.xml?
I notice in the error message you have "boosts" instead of "boost". You
didn't do some hard core hackage in which you hard coded a type name and
misspelled it?
Otherwise... I see nothing in your description of your changes which
would corrupt the enumeration registry. Whatever the cause of the
problem, I'm afraid there's not enough info in your email to identify
it.
Maybe a sanity check - comment out all of your changes, rebuild, and see
if the problem goes away? Also compare the behavior of your XLL with
that of the binary release.
Good luck. Pls send another message if you come across more details
that might help identify the problem. I'd be curious to know the
resolution once you find it.
Regards,
Eric
-------------------------
Eric Ehlers
nazcatech sprl | Brussels | http://www.nazcatech.be Distributed
computing for pricing analytics - Use Microsoft Excel as a client to the
Grid
*********** Legal Disclaimer and Other Information***********
The information contained in this e-mail message is intended only for the use of the individual named above. If the reader of this e-mail message is not the intended recipient, or the employee or agent responsible to deliver it to the intended recipient, you are hereby notified that any dissemination, distribution, or copying of this message is strictly prohibited. If you have received this message in error, please immediately notify us by telephone at 020.7470.7400, and destroy the original message.
Moore Europe Capital Management, LLP - One Curzon Street, London, W1J 5HA, UK
Registered as a limited liability partnership in England and Wales No: OC322533
with its registered office at One Silk Street, London, EC2Y 8HQ
Authorised and regulated by the Financial Services Authority
|
|
From: Eric E. <eri...@na...> - 2008-08-14 10:35:19
|
Hello,
On Wed, August 13, 2008 11:15, Rahul Gupta wrote:
>
> Lack of label for the engine simply means I get a excel assigned name rather
than my
> own.
Not exactly ;)
For excel to assign the name you would need explicitly to provide a null:
qlPricingEngine(, "AE", B30)
Note the comma before the "AE". In this case QLXL generates an ID like
obj_00000.
You have this:
qlPricingEngine("AE", B30)
In that case "AE" is interpreted as the object ID, and the contents of B30 are
used as the Engine ID.
> Any other ideas?
Assuming the above is sorted out...
> When I try to instantiate a qlPricingEngine("AE",B30), i.e. a
> GeneralizedBlackScholesEngine, I get #NUM, and the following error from
> ohRetrieveError():
>
> qlPricingEngine - Error retrieving Enumeration from Registry - the type
> 'class boost::shared_ptr<class QuantLib::PricingEngine> (__cdecl*)(class
> boosts::shared_ptr<class QuantLib::GeneralizedBlackScholesProcess> const &)'
> is not available!
That error indicates that the enumeration registry is in an inconsistent
state. In the standard release of QLXL I believe it's completely impossible
to trigger that error regardless of the inputs, so your change has somehow
broken the initialization of the app.
The long type name you are looking at is the signature of function AE_Engine()
in file
QuantLibAddin\qlo\Enumerations\Constructors\enumeratedclasses.hpp.
The link between the string "AE" and the function AE_Engine() is established
in line 51 of file
QuantLibAddin\qlo\Enumerations\Register\register_classes.cpp:
create.registerType("AE", reinterpret_cast<void*>(AE_Engine));
That code is autogenerated by gensrc based on the contents of
QuantLibAddin\gensrc\metadata\Enumerations\enumeratedclasses.xml.
Did you edit enumeratedclasses.xml?
I notice in the error message you have "boosts" instead of "boost". You
didn't do some hard core hackage in which you hard coded a type name and
misspelled it?
Otherwise... I see nothing in your description of your changes which would
corrupt the enumeration registry. Whatever the cause of the problem, I'm
afraid there's not enough info in your email to identify it.
Maybe a sanity check - comment out all of your changes, rebuild, and see if
the problem goes away? Also compare the behavior of your XLL with that of the
binary release.
Good luck. Pls send another message if you come across more details that
might help identify the problem. I'd be curious to know the resolution once
you find it.
Regards,
Eric
-------------------------
Eric Ehlers
nazcatech sprl | Brussels | http://www.nazcatech.be
Distributed computing for pricing analytics - Use Microsoft Excel as a client
to the Grid
|
|
From: Rahul G. <rah...@mo...> - 2008-08-13 10:16:02
|
Thanks for your response.
Unfortunately, that does not change the error that is produced. Lack of
label for the engine simply means I get a excel assigned name rather than my
own. Any other ideas?
Eric Ehlers-2 wrote:
>
> Hello,
>
> On Tue, August 12, 2008 11:14, Rahul Gupta wrote:
>
>> When I try to instantiate a qlPricingEngine("AE",B30), i.e. a
>> GeneralizedBlackScholesEngine, I get #NUM, and the following error from
> ohRetrieveError():
>
> That's the wrong syntax, in the first parameter you specify the ID of the
> object you're creating. Try qlPricingEngine("my_engine", "AE", B30).
>
> Regards,
> Eric
>
> -------------------------
> Eric Ehlers
> nazcatech sprl | Brussels | http://www.nazcatech.be
> Distributed computing for pricing analytics - Use Microsoft Excel as a
> client
> to the Grid
>
>
>
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> Grand prize is a trip for two to an Open Source event anywhere in the
> world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> QuantLib-dev mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
>
>
--
View this message in context: http://www.nabble.com/Exposure-Issues-tp18941365p18960367.html
Sent from the quantlib-dev mailing list archive at Nabble.com.
|
|
From: Eric E. <eri...@na...> - 2008-08-13 10:11:04
|
Hello,
On Tue, August 12, 2008 11:14, Rahul Gupta wrote:
> When I try to instantiate a qlPricingEngine("AE",B30), i.e. a
> GeneralizedBlackScholesEngine, I get #NUM, and the following error from
ohRetrieveError():
That's the wrong syntax, in the first parameter you specify the ID of the
object you're creating. Try qlPricingEngine("my_engine", "AE", B30).
Regards,
Eric
-------------------------
Eric Ehlers
nazcatech sprl | Brussels | http://www.nazcatech.be
Distributed computing for pricing analytics - Use Microsoft Excel as a client
to the Grid
|
|
From: Eric E. <eri...@na...> - 2008-08-13 09:53:53
|
Hi Slava,
Wow, that is one impressive design. You have pushed the XLOPER/STL/Boost
combination to its limit.
Every XLL library tries to solve the problem of separating the guts of an
XLOPER from its interface, your "duality" idea is the most elegant approach I
have seen yet. I have considered the idea of inheriting from XLOPER and could
not get it to work but I think you have found a way.
I like the fact that you use different classes depending on whether XLOPER
memory is to be managed by Excel or the XLL. Many libraries including
ObjectHandler and XLW use a single class with a switch and I find your
approach safer and more intuitive.
Many thanks for considering the idea of contributing this to ObjectHandler.
The contribution would be welcome. I understand that you would need to do
some negotiating on your side, please keep me posted. Would you be able to
provide a statement authorizing the release of this code under the QuantLib
license? Depending on you contract and the laws in your country it may be
that your thoughts are the property of your employer ;) in which case the
statement would have to come from them.
I'm in the process of packaging up the 0.9.6 release of ObjectHandler and
we're too late to add more to that, but we could get your classes onto the svn
trunk for inclusion in the next release. I would put them in new folder
ObjectHandler/ohxl/xllcontainers in a sub-namespace. As you note, your new
classes can be used independently of ObjectHandler and I would definitely want
to retain that orthogonality.
It would be good to get some example applications for XLL Containers, maybe
showing the usage of the classes with and without ObjectHandler?
As you observe, for ObjectHandler 0.9.6, boost::any is replaced everywhere by
property_t, which wraps boost::variant, because the latter is supported
natively by boost::serialization. I'm not sure how this change impacts your
classes, which also use boost::any but in a different context.
Your design document could go into a new section of the ObjectHandler
documentation. If you would like also to use doxygen compatible comments in
the code then those would be included in the reference manual.
Longer term I would consider the idea of using these classes for QuantLibXL,
but that would be more complicated. The design of OH/QLA is platform
independent and all of the Excel bindings have C++ equivalents. For example,
consider the conversion from a variant type to a QuantLib::Quote:
The abstract implementation of this conversion is
convertQuote()
in QuantLibAddin\qlo\conversions\conversion_tmpl.hpp
The C++ instantiation is
convert2<boost::shared_ptr<QuantLib::Quote>, property_t>
in QuantLibAddin\qlo\conversions\conversions.cpp
The Excel instantiation is
convert2<boost::shared_ptr<QuantLib::Quote>, ConvertOper>
in QuantLibXL\qlxl\conversions\opertovector.cpp
This approach allows us to have the conversion logic in one place where it is
reused by all platforms, for example if you serialize the Excel environment
into a stream that can be loaded by a QuantLib C++ application on Linux. How
would that work if the ObjectHandler XLL and QuantLibXL were to use the XLL
Container classes in place of the existing Excel bindings?
Regards,
Eric
-------------------------
Eric Ehlers
nazcatech sprl | Brussels | http://www.nazcatech.be
Distributed computing for pricing analytics - Use Microsoft Excel as a client
to the Grid
On Mon, August 11, 2008 19:33, Slava Mazur wrote:
> Greetings,
>
>
>
> For more than a year I've been using several stl-compliant wrappers
> around XLOPER structure, which I've developed as an extension to
> ObjectHandler libraries and which I found pretty helpful and efficient.
>
> Although my solution is completely independent of ObjectHandler, I think
> it might make sense embedding my classes to it, so I'm considering
> contribution. Moreover, the latest developments in ObjectHandler and
> introduction of property_t class in particular makes me think that I
> ought to introduce my solution rather sooner than later.
>
>
>
> Please find the attached an incomplete draft version of documentation of
> implemented classes in html format which gives an idea what is all about
> and let me know if this makes any sense so that I could discuss such a
> contribution with other parties involved. If not, then well, I'll
> continue to use these classes as my own extension to ObjectHandler.
>
>
>
> Thanks,
>
>
>
> Slava Mazur
>
>
>
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/_______________________________________________
> QuantLib-dev mailing list
> Qua...@li...
> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
>
|
|
From: Rahul G. <rah...@mo...> - 2008-08-12 10:14:49
|
My aim has been to expose the Heston process, model, and analytic engine to
QuantLibXL.
For the process/model, I simply followed the guide, and it worked fine.
However for the analytic engine, the approach I took was to inherit from the
pricingengine class. I did this as follows:
analytichestonengine.hpp:
namespace QuantLibAddin {
//class AnalyticHestonEngine : public
ObjectHandler::LibraryObject<QuantLib::PricingEngine> {
class AnalyticHestonEngine : public QuantLibAddin::PricingEngine {
public:
AnalyticHestonEngine(
const boost::shared_ptr<ObjectHandler::ValueObject>& properties,
const boost::shared_ptr<QuantLib::HestonModel> &model,
double integrationOrder, bool permanent);
};
}
analytichestonengine.cpp:
namespace QuantLibAddin {
AnalyticHestonEngine::AnalyticHestonEngine(
const boost::shared_ptr<ObjectHandler::ValueObject> &properties,
const boost::shared_ptr<QuantLib::HestonModel> &model,
double integrationOrder, bool permanent)
: QuantLibAddin::PricingEngine(properties, permanent) {
libraryObject_ = boost::shared_ptr<QuantLib::PricingEngine>(
new QuantLib::AnalyticHestonEngine(model, (int)integrationOrder));
}
}
Unfortunately, whilst this works fine, I appear to have broken the core
functionality.
When I try to instantiate a qlPricingEngine("AE",B30), i.e. a
GeneralizedBlackScholesEngine, I get #NUM, and the following error from
ohRetrieveError():
qlPricingEngine - Error retrieving Enumeration from Registry - the type
'class boost::shared_ptr<class QuantLib::PricingEngine> (__cdecl*)(class
boosts::shared_ptr<class QuantLib::GeneralizedBlackScholesProcess> const &)'
is not available!
I would really appreciate any input, as i'm kinda stuck.
Thanks!
--
View this message in context: http://www.nabble.com/Exposure-Issues-tp18941365p18941365.html
Sent from the quantlib-dev mailing list archive at Nabble.com.
|
|
From: bill d. <bi...@ya...> - 2008-08-12 08:01:43
|
Hello, Nando, We have updated it, and now it is correct. Regards, Bill ------------------------------ Original Message ------------------------------ Subject: Re: [Quantlib-dev] [QuantLib-svn] SF.net SVN: quantlib:[15348] branches/oh_functions From: "Ferdinando Ametrano" <na...@am...> Date: Thu, August 7, 2008 15:07 To: qua...@li... Cc: qua...@li... ------------------------------------------------------------------------------ On Thu, Aug 7, 2008 at 8:51 AM, <su...@us...> wrote: > Revision: 15348 > > http://quantlib.svn.sourceforge.net/quantlib/?rev=15348&view=rev > [...] > --- branches/oh_functions/ObjectHandler/oh/utilities.cpp 2008-08-07 06:49:16 UTC (rev 15347) > +++ branches/oh_functions/ObjectHandler/oh/utilities.cpp 2008-08-07 06:51:19 UTC (rev 15348) >[...] > @@ -305,17 +318,20 @@ > } > } > OH_REQUIRE(b, "month outside valid range"); > - totalSecond -= days * SECS_PER_DAY; > + totalMSecond -= days * MILLISECS_PER_DAY; > > days -= pMonth[monthoffset - 1]; > > - hours = totalSecond / 3600; > - totalSecond -= hours * 3600; > - minutes = totalSecond / 60; > - seconds = totalSecond - minutes * 60; > + hours = totalMSecond / (3600 * 1000); > + totalMSecond -= (hours * 3600 * 1000) ; > + minutes = totalMSecond / (60 * 1000); > + totalMSecond -= minutes * 60 * 1000; > + seconds = totalMSecond / 60 * 1000; > + milliseconds = totalMSecond - seconds * 1000; if I get it right it should be: > + seconds = totalMSecond / 1000; > + milliseconds = totalMSecond - seconds * 1000; ciao -- Nando ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ QuantLib-dev mailing list Qua...@li... https://lists.sourceforge.net/lists/listinfo/quantlib-dev |