void unregisterEvolutiondescription(const XLOPER &xDll) { XLOPER xlRegID; // Unregister each function. Due to a bug in Excel's C API this is a // two-step process. Thanks to Laurent Longre for discovering the // workaround implemented here. Excel(xlfRegister, 0, 16, &xDll, // function code name TempStrNoSize("\x16""qlEvolutionDescription"), // parameter codes TempStrNoSize("\x08""CCPPPPL#"), // function display name TempStrNoSize("\x16""qlEvolutionDescription"), // comma-delimited list of parameter names TempStrNoSize("\x3D""ObjectId,RateTimes,EvolutionTimes,Permanent,Trigger,Overwrite"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x43""Construct an object of class EvolutionDescription and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x12""rate fixing times."), TempStrNoSize("\x22""evolution times in the simulation."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x16""qlEvolutionDescription")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x24""qlEvolutionDescriptionEvolutionTimes"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x24""qlEvolutionDescriptionEvolutionTimes"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x34""evolution times for the EvolutionDescription object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::EvolutionDescription object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x24""qlEvolutionDescriptionEvolutionTimes")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x24""qlEvolutionDescriptionFirstAliveRate"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x24""qlEvolutionDescriptionFirstAliveRate"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x4C""first alive rate at each evolution time for the EvolutionDescription object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::EvolutionDescription object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x24""qlEvolutionDescriptionFirstAliveRate")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 15, &xDll, // function code name TempStrNoSize("\x21""qlEvolutionDescriptionFromProduct"), // parameter codes TempStrNoSize("\x07""CCCPPL#"), // function display name TempStrNoSize("\x21""qlEvolutionDescriptionFromProduct"), // comma-delimited list of parameter names TempStrNoSize("\x2C""ObjectId,Product,Permanent,Trigger,Overwrite"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x43""Construct an object of class EvolutionDescription and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x15""ID of product object."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x21""qlEvolutionDescriptionFromProduct")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x23""qlEvolutionDescriptionNumberOfRates"), // parameter codes TempStrNoSize("\x04""NCP#"), // function display name TempStrNoSize("\x23""qlEvolutionDescriptionNumberOfRates"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x34""number of rates for the EvolutionDescription object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::EvolutionDescription object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x23""qlEvolutionDescriptionNumberOfRates")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x23""qlEvolutionDescriptionNumberOfSteps"), // parameter codes TempStrNoSize("\x04""NCP#"), // function display name TempStrNoSize("\x23""qlEvolutionDescriptionNumberOfSteps"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x34""number of steps for the EvolutionDescription object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::EvolutionDescription object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x23""qlEvolutionDescriptionNumberOfSteps")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x1E""qlEvolutionDescriptionRateTaus"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x1E""qlEvolutionDescriptionRateTaus"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x2E""rate taus for the EvolutionDescription object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::EvolutionDescription object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x1E""qlEvolutionDescriptionRateTaus")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x1F""qlEvolutionDescriptionRateTimes"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x1F""qlEvolutionDescriptionRateTimes"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x37""rates fixing times for the EvolutionDescription object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::EvolutionDescription object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x1F""qlEvolutionDescriptionRateTimes")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 13, &xDll, // function code name TempStrNoSize("\x18""qlIsInMoneyMarketMeasure"), // parameter codes TempStrNoSize("\x05""LCPP#"), // function display name TempStrNoSize("\x18""qlIsInMoneyMarketMeasure"), // comma-delimited list of parameter names TempStrNoSize("\x27""EvolutionDescription,Numeraires,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x67""Returns TRUE if the numeraire vector is money market measure for the given EvolutionDescription object."), // parameter descriptions TempStrNoSize("\x22""ID of EvolutionDescription object."), TempStrNoSize("\x15""vector of numeraires."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x18""qlIsInMoneyMarketMeasure")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 14, &xDll, // function code name TempStrNoSize("\x1C""qlIsInMoneyMarketPlusMeasure"), // parameter codes TempStrNoSize("\x06""LCPPP#"), // function display name TempStrNoSize("\x1C""qlIsInMoneyMarketPlusMeasure"), // comma-delimited list of parameter names TempStrNoSize("\x2E""EvolutionDescription,Numeraires,Offset,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x6C""Returns TRUE if the numeraire vector is money market measure plus for the given EvolutionDescription object."), // parameter descriptions TempStrNoSize("\x22""ID of EvolutionDescription object."), TempStrNoSize("\x15""vector of numeraires."), TempStrNoSize("\x3D""offset applied to the MoneyMarket measure. Default value = 1."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x1C""qlIsInMoneyMarketPlusMeasure")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 13, &xDll, // function code name TempStrNoSize("\x15""qlIsInTerminalMeasure"), // parameter codes TempStrNoSize("\x05""LCPP#"), // function display name TempStrNoSize("\x15""qlIsInTerminalMeasure"), // comma-delimited list of parameter names TempStrNoSize("\x27""EvolutionDescription,Numeraires,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x63""Returns TRUE if the numeraire vector is Terminal measure for the given EvolutionDescription object."), // parameter descriptions TempStrNoSize("\x22""ID of EvolutionDescription object."), TempStrNoSize("\x15""vector of numeraires."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x15""qlIsInTerminalMeasure")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x14""qlMoneyMarketMeasure"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x14""qlMoneyMarketMeasure"), // comma-delimited list of parameter names TempStrNoSize("\x1C""EvolutionDescription,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x61""Returns the discretely compounded money market measure for the given EvolutionDescription object."), // parameter descriptions TempStrNoSize("\x22""ID of EvolutionDescription object."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x14""qlMoneyMarketMeasure")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 13, &xDll, // function code name TempStrNoSize("\x18""qlMoneyMarketPlusMeasure"), // parameter codes TempStrNoSize("\x05""PCPP#"), // function display name TempStrNoSize("\x18""qlMoneyMarketPlusMeasure"), // comma-delimited list of parameter names TempStrNoSize("\x23""EvolutionDescription,Offset,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x61""Returns the discretely compounded money market measure for the given EvolutionDescription object."), // parameter descriptions TempStrNoSize("\x22""ID of EvolutionDescription object."), TempStrNoSize("\x3D""offset applied to the MoneyMarket measure. Default value = 1."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x18""qlMoneyMarketPlusMeasure")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x11""qlTerminalMeasure"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x11""qlTerminalMeasure"), // comma-delimited list of parameter names TempStrNoSize("\x1C""EvolutionDescription,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x47""Returns the terminal measure for the given EvolutionDescription object."), // parameter descriptions TempStrNoSize("\x22""ID of EvolutionDescription object."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x11""qlTerminalMeasure")); Excel4(xlfUnregister, 0, 1, &xlRegID); }
void unregisterPathGenerator(const XLOPER &xDll) { XLOPER xlRegID; // Unregister each function. Due to a bug in Excel's C API this is a // two-step process. Thanks to Laurent Longre for discovering the // workaround implemented here. Excel(xlfRegister, 0, 13, &xDll, TempStrNoSize("\x15""createESGSingleFactor"), TempStrNoSize("\x05""CCCL#"), TempStrNoSize("\x15""createESGSingleFactor"), TempStrNoSize("\x18""ObjectID,Rates,Permanent"), TempStrNoSize("\x01""1"), TempStrNoSize("\x9""prObjects"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x4C""Construct an object of class SingleFactorGBMPathGenerator and returns its id"), TempStrNoSize("\x1A""ID of object to be created"), TempStrNoSize("\x17""ID of Rates Environment"), TempStrNoSize("\x1D""object permanent/nonpermanent")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x15""createESGSingleFactor")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 14, &xDll, TempStrNoSize("\x0F""getESGPathForCI"), TempStrNoSize("\x06""PCPBP#"), TempStrNoSize("\x0F""getESGPathForCI"), TempStrNoSize("\x28""ObjectID,Dates,ConfInt,Trigger,Permanent"), TempStrNoSize("\x01""1"), TempStrNoSize("\x9""prObjects"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x55""Returns a path of forward rates environments corresponding to the Confidence Interval"), TempStrNoSize("\x18""ID of the path generator"), TempStrNoSize("\xD""Forward dates"), TempStrNoSize("\x23""Confidence interval NB 0 < c.i. < 1"), TempStrNoSize("\x7""Trigger")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0F""getESGPathForCI")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 14, &xDll, TempStrNoSize("\x11""getESGPathForSpot"), TempStrNoSize("\x06""PCPPP#"), TempStrNoSize("\x11""getESGPathForSpot"), TempStrNoSize("\x1F""ObjectID,Dates,SpotPath,Trigger"), TempStrNoSize("\x01""1"), TempStrNoSize("\x9""prObjects"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x4F""Returns a path of rates environments corresponding to the input input spot path"), TempStrNoSize("\x18""ID of the path generator"), TempStrNoSize("\xD""Forward dates"), TempStrNoSize("\x09""Spot Path"), TempStrNoSize("\x7""Trigger")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x11""getESGPathForSpot")); Excel4(xlfUnregister, 0, 1, &xlRegID); }
void unregisterCapfloor(const XLOPER &xDll) { XLOPER xlRegID; // Unregister each function. Due to a bug in Excel's C API this is a // two-step process. Thanks to Laurent Longre for discovering the // workaround implemented here. Excel(xlfRegister, 0, 17, &xDll, // function code name TempStrNoSize("\x0A""qlCapFloor"), // parameter codes TempStrNoSize("\x09""CCCCPPPL#"), // function display name TempStrNoSize("\x0A""qlCapFloor"), // comma-delimited list of parameter names TempStrNoSize("\x3D""ObjectId,OptionType,LegID,Strikes,Permanent,Trigger,Overwrite"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x37""Construct an object of class CapFloor and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x1B""option type (cap or floor)."), TempStrNoSize("\x0E""coupon vector."), TempStrNoSize("\x08""strikes."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0A""qlCapFloor")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 13, &xDll, // function code name TempStrNoSize("\x11""qlCapFloorAtmRate"), // parameter codes TempStrNoSize("\x05""ECCP#"), // function display name TempStrNoSize("\x11""qlCapFloorAtmRate"), // comma-delimited list of parameter names TempStrNoSize("\x1B""ObjectId,YieldCurve,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x3C""Returns the at-the-money rate for the given CapFloor object."), // parameter descriptions TempStrNoSize("\x28""id of existing QuantLib::CapFloor object"), TempStrNoSize("\x29""discounting YieldTermStructure object ID."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x11""qlCapFloorAtmRate")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x12""qlCapFloorCapRates"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x12""qlCapFloorCapRates"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x34""Returns the cap rates for the given CapFloor object."), // parameter descriptions TempStrNoSize("\x28""id of existing QuantLib::CapFloor object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x12""qlCapFloorCapRates")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x14""qlCapFloorFloorRates"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x14""qlCapFloorFloorRates"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x36""Returns the floor rates for the given CapFloor object."), // parameter descriptions TempStrNoSize("\x28""id of existing QuantLib::CapFloor object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x14""qlCapFloorFloorRates")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 20, &xDll, // function code name TempStrNoSize("\x1B""qlCapFloorImpliedVolatility"), // parameter codes TempStrNoSize("\x0C""ECECPPPPPPP#"), // function display name TempStrNoSize("\x1B""qlCapFloorImpliedVolatility"), // comma-delimited list of parameter names TempStrNoSize("\x53""ObjectId,Price,YieldCurve,Guess,Accuracy,MaxIter,MinVol,MaxVol,Displacement,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x50""Returns the volatility implied by the given price for the given CapFloor object."), // parameter descriptions TempStrNoSize("\x28""id of existing QuantLib::CapFloor object"), TempStrNoSize("\x2B""Price used to infer the implied volatility."), TempStrNoSize("\x29""discounting YieldTermStructure object ID."), TempStrNoSize("\x27""Volatility guess. Default value = 0.10."), TempStrNoSize("\x28""solver accuracy. Default value = 1.0e-6."), TempStrNoSize("\x2B""solver max iterations. Default value = 100."), TempStrNoSize("\x3E""Minimum volatility, no lower solution. Default value = 1.0e-7."), TempStrNoSize("\x3C""Maximum volatility, no higher solution. Default value = 4.0."), TempStrNoSize("\x41""displacement in a displaced diffusion model. Default value = 0.0."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x1B""qlCapFloorImpliedVolatility")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 13, &xDll, // function code name TempStrNoSize("\x15""qlCapFloorLegAnalysis"), // parameter codes TempStrNoSize("\x05""PCPP#"), // function display name TempStrNoSize("\x15""qlCapFloorLegAnalysis"), // comma-delimited list of parameter names TempStrNoSize("\x1A""ObjectId,AfterDate,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x3D""Returns the cash flow analysis for the given CapFloor object."), // parameter descriptions TempStrNoSize("\x2D""id of existing QuantLibAddin::CapFloor object"), TempStrNoSize("\x47""Shows only cashflows after given date Default value = QuantLib::Date()."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x15""qlCapFloorLegAnalysis")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x16""qlCapFloorMaturityDate"), // parameter codes TempStrNoSize("\x04""NCP#"), // function display name TempStrNoSize("\x16""qlCapFloorMaturityDate"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x4C""Returns the maturity (i.e. last payment) date for the given CapFloor object."), // parameter descriptions TempStrNoSize("\x28""id of existing QuantLib::CapFloor object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x16""qlCapFloorMaturityDate")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x13""qlCapFloorStartDate"), // parameter codes TempStrNoSize("\x04""NCP#"), // function display name TempStrNoSize("\x13""qlCapFloorStartDate"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x4A""Returns the start (i.e. first accrual) date for the given CapFloor object."), // parameter descriptions TempStrNoSize("\x28""id of existing QuantLib::CapFloor object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x13""qlCapFloorStartDate")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0E""qlCapFloorType"), // parameter codes TempStrNoSize("\x04""CCP#"), // function display name TempStrNoSize("\x0E""qlCapFloorType"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x41""Returns the type (e.g. Cap, Floor) for the given CapFloor object."), // parameter descriptions TempStrNoSize("\x28""id of existing QuantLib::CapFloor object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0E""qlCapFloorType")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 20, &xDll, // function code name TempStrNoSize("\x0E""qlMakeCapFloor"), // parameter codes TempStrNoSize("\x0C""CCCCCPCCPPL#"), // function display name TempStrNoSize("\x0E""qlMakeCapFloor"), // comma-delimited list of parameter names TempStrNoSize("\x64""ObjectId,OptionType,Length,IborIndex,Strike,ForwardStart,PricingEngineID,Permanent,Trigger,Overwrite"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x37""Construct an object of class CapFloor and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x1B""option type (Cap or Floor)."), TempStrNoSize("\x15""as period (e.g. 10Y)."), TempStrNoSize("\x1D""floating IborIndex object ID."), TempStrNoSize("\x39""strike. Default value = QuantLib::Null<QuantLib::Rate>()."), TempStrNoSize("\x35""as period (if zero days the first caplet is removed)."), TempStrNoSize("\x21""CapFloor PricingEngine object ID."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0E""qlMakeCapFloor")); Excel4(xlfUnregister, 0, 1, &xlRegID); }
void unregisterGarbagecollection(const XLOPER &xDll) { XLOPER xlRegID; // Unregister each function. Due to a bug in Excel's C API this is a // two-step process. Thanks to Laurent Longre for discovering the // workaround implemented here. Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x1A""ohRepositoryCollectGarbage"), // parameter codes TempStrNoSize("\x04""LPP#"), // function display name TempStrNoSize("\x1A""ohRepositoryCollectGarbage"), // comma-delimited list of parameter names TempStrNoSize("\x17""DeletePermanent,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x28""delete orphaned objects from repository."), // parameter descriptions TempStrNoSize("\x35""also delete permanent objects. Default value = false."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x1A""ohRepositoryCollectGarbage")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x1C""ohRepositoryDeleteAllObjects"), // parameter codes TempStrNoSize("\x04""LPP#"), // function display name TempStrNoSize("\x1C""ohRepositoryDeleteAllObjects"), // comma-delimited list of parameter names TempStrNoSize("\x17""DeletePermanent,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x23""delete all objects from repository."), // parameter descriptions TempStrNoSize("\x35""also delete permanent objects. Default value = false."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x1C""ohRepositoryDeleteAllObjects")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x18""ohRepositoryDeleteObject"), // parameter codes TempStrNoSize("\x04""LPP#"), // function display name TempStrNoSize("\x18""ohRepositoryDeleteObject"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x1E""delete object from repository."), // parameter descriptions TempStrNoSize("\x1B""ID of object to be deleted."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x18""ohRepositoryDeleteObject")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x19""ohRepositoryListObjectIDs"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x19""ohRepositoryListObjectIDs"), // comma-delimited list of parameter names TempStrNoSize("\x0D""Regex,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x35""list the IDs of objects in repository matching regex."), // parameter descriptions TempStrNoSize("\x3A""optional matching pattern in UNIX format (wildcard is .*)."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x19""ohRepositoryListObjectIDs")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 11, &xDll, // function code name TempStrNoSize("\x19""ohRepositoryLogAllObjects"), // parameter codes TempStrNoSize("\x03""LP#"), // function display name TempStrNoSize("\x19""ohRepositoryLogAllObjects"), // comma-delimited list of parameter names TempStrNoSize("\x07""Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x2A""write all object descriptions to log file."), // parameter descriptions TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x19""ohRepositoryLogAllObjects")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x15""ohRepositoryLogObject"), // parameter codes TempStrNoSize("\x04""LCP#"), // function display name TempStrNoSize("\x15""ohRepositoryLogObject"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x25""write object description to log file."), // parameter descriptions TempStrNoSize("\x1A""ID of object to be logged."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x15""ohRepositoryLogObject")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 11, &xDll, // function code name TempStrNoSize("\x17""ohRepositoryObjectCount"), // parameter codes TempStrNoSize("\x03""NP#"), // function display name TempStrNoSize("\x17""ohRepositoryObjectCount"), // comma-delimited list of parameter names TempStrNoSize("\x07""Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x18""#/objects in repository."), // parameter descriptions TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x17""ohRepositoryObjectCount")); Excel4(xlfUnregister, 0, 1, &xlRegID); }
void unregisterEnumerations(const XLOPER &xDll) { XLOPER xlRegID; // Unregister each function. Due to a bug in Excel's C API this is a // two-step process. Thanks to Laurent Longre for discovering the // workaround implemented here. Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x11""ohEnumeratedClass"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x11""ohEnumeratedClass"), // comma-delimited list of parameter names TempStrNoSize("\x0E""EnumId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x2F""return the members of a given enumerated class."), // parameter descriptions TempStrNoSize("\x18""name of enumerated type."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x11""ohEnumeratedClass")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x10""ohEnumeratedPair"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x10""ohEnumeratedPair"), // comma-delimited list of parameter names TempStrNoSize("\x0E""EnumId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x2E""return the members of a given enumerated pair."), // parameter descriptions TempStrNoSize("\x18""name of enumerated type."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x10""ohEnumeratedPair")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x10""ohEnumeratedType"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x10""ohEnumeratedType"), // comma-delimited list of parameter names TempStrNoSize("\x0E""EnumId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x2E""return the members of a given enumerated type."), // parameter descriptions TempStrNoSize("\x18""name of enumerated type."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x10""ohEnumeratedType")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 11, &xDll, // function code name TempStrNoSize("\x17""ohListEnumeratedClasses"), // parameter codes TempStrNoSize("\x03""PP#"), // function display name TempStrNoSize("\x17""ohListEnumeratedClasses"), // comma-delimited list of parameter names TempStrNoSize("\x07""Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x22""list supported enumerated classes."), // parameter descriptions TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x17""ohListEnumeratedClasses")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 11, &xDll, // function code name TempStrNoSize("\x15""ohListEnumeratedPairs"), // parameter codes TempStrNoSize("\x03""PP#"), // function display name TempStrNoSize("\x15""ohListEnumeratedPairs"), // comma-delimited list of parameter names TempStrNoSize("\x07""Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x20""list supported enumerated pairs."), // parameter descriptions TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x15""ohListEnumeratedPairs")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 11, &xDll, // function code name TempStrNoSize("\x15""ohListEnumeratedTypes"), // parameter codes TempStrNoSize("\x03""PP#"), // function display name TempStrNoSize("\x15""ohListEnumeratedTypes"), // comma-delimited list of parameter names TempStrNoSize("\x07""Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x20""list supported enumerated types."), // parameter descriptions TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x15""ohListEnumeratedTypes")); Excel4(xlfUnregister, 0, 1, &xlRegID); }