XLL_DEC XLOPER *ohRangeRetrieveError(XLOPER *xRange) { try { XLOPER xTemp; Excel(xlCoerce, &xTemp, 1, xRange); static XLOPER xRet; if (xTemp.xltype & xltypeErr) Excel(xlUDF, &xRet, 2, TempStrNoSize("\x13""ohRetrieveErrorImpl"), xRange); else ObjectHandler::scalarToOper(std::string(), xRet); return &xRet; } catch (...) { return 0; } }
XLL_DEC XLOPER *ohRangeRetrieveError(XLOPER *xRange) { try { reposit::Xloper xTemp; Excel(xlCoerce, &xTemp, 1, xRange); static XLOPER xRet; if (xTemp->xltype & xltypeErr) { Excel(xlUDF, &xRet, 2, TempStrNoSize("\x13""ohRetrieveErrorImpl"), xRange); xRet.xltype |= xlbitXLFree; } else { reposit::scalarToOper(std::string(), xRet); } return &xRet; } catch (...) { return 0; } }
inline void unregisterxlInitiateFixedLegUnitedStates(const XLOPER & xDll) { XLOPER xlRegID ; // Enregistre la fonction xlInitiateFixedLeg Excel(xlfRegister, 0, 20, & xDll, TempStrNoSize("\x1E""xlInitiateFixedLegUnitedStates"), TempStrNoSize("\x0C""PCEPPEPEPPP#"), TempStrNoSize("\x21""INSTANCE.JAMBE.FIXE.UNITED.STATES"), TempStrNoSize("\xA1""Identifiant de l'instrument,date effective,date de premier coupon,date de dernier coupon,date de maturité,notionel,taux de coupon,fréquence,base annuelle,trigger"), TempStrNoSize("\x01""1"), TempStrNoSize("\x17""xlObjectTools - Object"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x3A""Cette fonction instancie une jambe fixe de swap en dollar."), TempStrNoSize("\x19""L'identifiant de la jambe"), TempStrNoSize("\x2B""La date de début de cumul du premier coupon"), TempStrNoSize("\x19""La date du premier coupon"), TempStrNoSize("\x19""La date de dernier coupon"), TempStrNoSize("\x1F""La date de maturité de la jambe"), TempStrNoSize("\x16""Le notionel du contrat"), TempStrNoSize("\x11""Le taux de coupon"), TempStrNoSize("\x16""La fréquence de coupon"), TempStrNoSize("\x1C""La base annuelle de la jambe"), TempStrNoSize("\x17""Déclenche le recalcul ")) ; Excel4(xlfRegisterId, & xlRegID, 2, & xDll, TempStrNoSize("\x1E""xlInitiateFixedLegUnitedStates")) ; Excel4(xlfUnregister, 0, 1, & xlRegID) ; }
void registerFixingCurves(const XLOPER &xDll) { Excel(xlfRegister, 0, 14, &xDll, TempStrNoSize("\x16""createDailyFixingCurve"), TempStrNoSize("\x06""CCPPL#"), TempStrNoSize("\x16""createDailyFixingCurve"), TempStrNoSize("\x1E""ObjectID,Dates,Rates,Permanent"), TempStrNoSize("\x01""1"), TempStrNoSize("\x9""prObjects"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x40""Construct an object of class DailyFixingCurve and returns its id"), TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\xB""Curve dates"), TempStrNoSize("\xE""Rate Set Rates"), TempStrNoSize("\x1D""object permanent/nonpermanent")); Excel(xlfRegister, 0, 14, &xDll, TempStrNoSize("\x18""createMonthlyFixingCurve"), TempStrNoSize("\x06""CCPPL#"), TempStrNoSize("\x18""createMonthlyFixingCurve"), TempStrNoSize("\x1E""ObjectID,Dates,Rates,Permanent"), TempStrNoSize("\x01""1"), TempStrNoSize("\x9""prObjects"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x42""Construct an object of class MonthlyFixingCurve and returns its id"), TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\xB""Curve dates"), TempStrNoSize("\xE""Rate Set Rates"), TempStrNoSize("\x1D""object permanent/nonpermanent")); Excel(xlfRegister, 0, 12, &xDll, TempStrNoSize("\x6""getFix"), TempStrNoSize("\x05""PCPP#"), TempStrNoSize("\x6""getFix"), TempStrNoSize("\x16""ObjectID,Dates,Trigger"), TempStrNoSize("\x01""1"), TempStrNoSize("\x9""prObjects"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x2A""Returns the rate set for the relevant date"), TempStrNoSize("\x33""ID of the FixingRateSource to use for interpolation"), TempStrNoSize("\x7""Trigger")); }
inline void unregisterxlInstrumentYield(const XLOPER & xDll) { XLOPER xlRegID ; // Libère la fonction xlInstrumentTheoreticalYield Excel(xlfRegister, 0, 15, & xDll, TempStrNoSize("\x11""xlInstrumentYield"), TempStrNoSize("\x07""PCEPCP#"), TempStrNoSize("\x13""INSTRUMENT.TAUX.NEW"), TempStrNoSize("\x49""Identifiant de l'instrument,prix,date de règlement,convention,déclencheur"), TempStrNoSize("\x01""1"), TempStrNoSize("\x15""xlObjectTools - Bond"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x56""Cette fonction calcule le taux de l'instument selectionné selon la convention désignée"), TempStrNoSize("\x18""L'instrument à valoriser"), TempStrNoSize("\x17""Le prix de l'instrument"), TempStrNoSize("\x14""La date de règlement"), TempStrNoSize("\x28""L'identifiant de la convention de calcul"), TempStrNoSize("\x1C""Le déclencheur du recalcul ")) ; Excel4(xlfRegisterId, & xlRegID, 2, & xDll, TempStrNoSize("\x11""xlInstrumentYield")) ; Excel4(xlfUnregister, 0, 1, & xlRegID) ; }
inline void unregisterxlPricingDate(const XLOPER & xDll) { XLOPER xlRegID ; // libère la fonction xlPricingDate Excel(xlfRegister, 0, 12, & xDll, TempStrNoSize("\x0D""xlPricingDate"), TempStrNoSize("\x04""BPP#"), TempStrNoSize("\x12""ADDIN.PRICING.DATE"), TempStrNoSize("\x0C""date,trigger"), TempStrNoSize("\x01""1"), TempStrNoSize("\x16""xlObjectTools - addin"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x3B""This function sets the system pricing date (default: today)"), TempStrNoSize("\x10""Calculation date"), TempStrNoSize("\x07""trigger")); Excel4(xlfRegisterId, & xlRegID, 2, & xDll, TempStrNoSize("\x0D""xlPricingDate")); Excel4(xlfUnregister, 0, 1, & xlRegID); }
inline void unregisterxlCovarianceMatrixEWMA(const XLOPER & xDll) { XLOPER xlRegID ; // Enregistre la fonction xlCovarianceMatrixEWMA Excel(xlfRegister, 0, 14, & xDll, TempStrNoSize("\x16""xlCovarianceMatrixEWMA"), TempStrNoSize("\x07""PPEELP#"), TempStrNoSize("\x17""MATRICE.COVARIANCE.EWMA"), TempStrNoSize("\x56""plage des séries,facteur d'obsolescence, date d'évaluation,indicateur de norme,trigger"), TempStrNoSize("\x01""1"), TempStrNoSize("\x15""xlObjectTools - Math"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x9D""Cette fonction calcule la matrice des variances-covariances d'un ensemble de séries pour une valeur du facteur d'obsolescence et une date d'évaluation donnée"), TempStrNoSize("\x2E""La plage des identifiants des séries à estimer"), TempStrNoSize("\x25""La valeur du paramètre d'obsolescence"), TempStrNoSize("\x29""Indique si la volatilité doit être normée"), TempStrNoSize("\x17""Déclenche le recalcul ")) ; Excel4(xlfRegisterId, & xlRegID, 2, & xDll, TempStrNoSize("\x16""xlCovarianceMatrixEWMA")) ; Excel4(xlfUnregister, 0, 1, & xlRegID) ; }
void registerContractsForwardAsian(const XLOPER &xDll) { Excel(xlfRegister, 0, 18, &xDll, TempStrNoSize("\x1A""createContractForwardAsian"), TempStrNoSize("\xA""CCPPPBBCL#"), TempStrNoSize("\x1A""createContractForwardAsian"), TempStrNoSize("\x3D""ObjectID,AveStart,AveEnd,SettDate,Strike,Volume,B/S,Permanent"), TempStrNoSize("\x01""1"), // function type (0 = hidden function, 1 = worksheet function, 2 = command macro) TempStrNoSize("\x9""prObjects"), // function category TempStrNoSize("\x00"""), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x26""Constructs an Oil Average Rate Forward"), TempStrNoSize("\x1A""id of object to be created"), // parameter descriptions TempStrNoSize("\x19""Start of averaging period"), TempStrNoSize("\x17""End of averaging period"), TempStrNoSize("\xF""Settlement date"), TempStrNoSize("\x6""Strike"), TempStrNoSize("\x6""Volume"), TempStrNoSize("\x1D""Buy or Sell at the fixed rate"), TempStrNoSize("\x1D""object permanent/nonpermanent")); }
void registerInstruments(const XLOPER &xDll) { Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x19""qlInstrumentErrorEstimate"), // parameter codes TempStrNoSize("\x04""ECP#"), // function display name TempStrNoSize("\x19""qlInstrumentErrorEstimate"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x63""Returns the NPV error estimation (for e.g. Monte Carlo simulation) for the given Instrument object."), // parameter descriptions TempStrNoSize("\x2A""id of existing QuantLib::Instrument object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x15""qlInstrumentIsExpired"), // parameter codes TempStrNoSize("\x04""LCP#"), // function display name TempStrNoSize("\x15""qlInstrumentIsExpired"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x37""Returns TRUE if the given Instrument object is expired."), // parameter descriptions TempStrNoSize("\x2A""id of existing QuantLib::Instrument object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0F""qlInstrumentNPV"), // parameter codes TempStrNoSize("\x04""ECP#"), // function display name TempStrNoSize("\x0F""qlInstrumentNPV"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x30""Returns the NPV for the given Instrument object."), // parameter descriptions TempStrNoSize("\x2A""id of existing QuantLib::Instrument object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 13, &xDll, // function code name TempStrNoSize("\x13""qlInstrumentResults"), // parameter codes TempStrNoSize("\x05""ECCP#"), // function display name TempStrNoSize("\x13""qlInstrumentResults"), // comma-delimited list of parameter names TempStrNoSize("\x1B""ObjectId,ResultType,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x4B""Returns the required result (if available) for the given Instrument object."), // parameter descriptions TempStrNoSize("\x2A""id of existing QuantLib::Instrument object"), TempStrNoSize("\x1A""result type (e.g. 'vega')."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 13, &xDll, // function code name TempStrNoSize("\x1C""qlInstrumentSetPricingEngine"), // parameter codes TempStrNoSize("\x05""LCCP#"), // function display name TempStrNoSize("\x1C""qlInstrumentSetPricingEngine"), // comma-delimited list of parameter names TempStrNoSize("\x1E""ObjectId,PricingEngine,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x39""Sets a new pricing engine to the given Instrument pbject."), // parameter descriptions TempStrNoSize("\x2F""id of existing QuantLibAddin::Instrument object"), TempStrNoSize("\x18""PricingEngine object ID."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x19""qlInstrumentValuationDate"), // parameter codes TempStrNoSize("\x04""NCP#"), // function display name TempStrNoSize("\x19""qlInstrumentValuationDate"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x30""Returns the NPV for the given Instrument object."), // parameter descriptions TempStrNoSize("\x2A""id of existing QuantLib::Instrument object"), TempStrNoSize("\x1D""dependency tracking trigger ")); }
DLLEXPORT int xlAutoOpen() { // Instantiate the ObjectHandler Repository static ObjectHandler::RepositoryXL repositoryXL; static XLOPER xDll; try { Excel(xlGetName, &xDll, 0); ObjectHandler::Configuration::instance().init(); registerOhFunctions(xDll); Excel(xlfRegister, 0, 7, &xDll, // function code name TempStrNoSize("\x07""qlClose"), // parameter codes TempStrNoSize("\x04""LEE#"), // function display name TempStrNoSize("\x07""qlClose"), // comma-delimited list of parameters TempStrNoSize("\x03""x,y"), // function type (0 = hidden function, 1 = worksheet function, 2 = command macro) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x07""Example")); Excel(xlfRegister, 0, 7, &xDll, // function code name TempStrNoSize("\x0D""qlSimpleQuote"), // parameter codes TempStrNoSize("\x04""CCE#"), // function display name TempStrNoSize("\x0D""qlSimpleQuote"), // comma-delimited list of parameters TempStrNoSize("\x0e""ObjectId,value"), // function type (0 = hidden function, 1 = worksheet function, 2 = command macro) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x07""Example")); Excel(xlfRegister, 0, 7, &xDll, // function code name TempStrNoSize("\xF3""qlSimpleQuoteValue"), // parameter codes TempStrNoSize("\x03""EC#"), // function display name TempStrNoSize("\xF3""qlSimpleQuoteValue"), // comma-delimited list of parameters TempStrNoSize("\x08""ObjectId"), // function type (0 = hidden function, 1 = worksheet function, 2 = command macro) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x07""Example")); Excel(xlFree, 0, 1, &xDll); return 1; } catch (const std::exception &e) { std::ostringstream err; err << "Error loading AddinXlHw: " << e.what(); Excel(xlcAlert, 0, 1, TempStrStl(err.str())); Excel(xlFree, 0, 1, &xDll); return 0; } catch (...) { Excel(xlFree, 0, 1, &xDll); return 0; } }
inline void unregisterxlInstrumentPreviousCashFlowAmount(const XLOPER & xDll) { XLOPER xlRegID ; // libère la fonction registerxlInstrumentPreviousCashFlowAmount Excel(xlfRegister, 0, 13, & xDll, TempStrNoSize("\x22""xlInstrumentPreviousCashFlowAmount"), TempStrNoSize("\x05""PCPP#"), TempStrNoSize("\x25""INSTRUMENT.MONTANT.CASHFLOW.PRECEDENT"), TempStrNoSize("\x39""Identifiant de l'instrument,date de règlement,déclencheur"), TempStrNoSize("\x01""1"), TempStrNoSize("\x15""xlObjectTools - Bond"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x34""Cette fonction calcule la valeur du cashflow précédent"), TempStrNoSize("\x1D""L'identifiant de l'instrument"), TempStrNoSize("\x14""La date de règlement"), TempStrNoSize("\x17""Déclenche le recalcul ")) ; Excel4(xlfRegisterId, & xlRegID, 2, & xDll, TempStrNoSize("\x22""xlInstrumentPreviousCashFlowAmount")) ; Excel4(xlfUnregister, 0, 1, & xlRegID) ; }
void registerAlphaform(const XLOPER &xDll) { Excel(xlfRegister, 0, 16, &xDll, // function code name TempStrNoSize("\x18""qlAlphaFormInverseLinear"), // parameter codes TempStrNoSize("\x08""CCPEPPL#"), // function display name TempStrNoSize("\x18""qlAlphaFormInverseLinear"), // comma-delimited list of parameter names TempStrNoSize("\x34""ObjectId,RateTimes,Alpha,Permanent,Trigger,Overwrite"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x45""Construct an object of class AlphaFormInverseLinear and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x12""rate fixing times."), TempStrNoSize("\x12""alpha coefficient."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel(xlfRegister, 0, 16, &xDll, // function code name TempStrNoSize("\x1B""qlAlphaFormLinearHyperbolic"), // parameter codes TempStrNoSize("\x08""CCPEPPL#"), // function display name TempStrNoSize("\x1B""qlAlphaFormLinearHyperbolic"), // comma-delimited list of parameter names TempStrNoSize("\x34""ObjectId,RateTimes,Alpha,Permanent,Trigger,Overwrite"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x48""Construct an object of class AlphaFormLinearHyperbolic and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x12""rate fixing times."), TempStrNoSize("\x12""alpha coefficient."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel(xlfRegister, 0, 13, &xDll, // function code name TempStrNoSize("\x13""qlAlphaFormOperator"), // parameter codes TempStrNoSize("\x05""PCNP#"), // function display name TempStrNoSize("\x13""qlAlphaFormOperator"), // comma-delimited list of parameter names TempStrNoSize("\x15""ObjectId,Time,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x27""returns the Alpha Form value at time i."), // parameter descriptions TempStrNoSize("\x29""id of existing QuantLib::AlphaForm object"), TempStrNoSize("\x23""integer corresponding to i-th time."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 13, &xDll, // function code name TempStrNoSize("\x13""qlAlphaFormSetAlpha"), // parameter codes TempStrNoSize("\x05""LCEP#"), // function display name TempStrNoSize("\x13""qlAlphaFormSetAlpha"), // comma-delimited list of parameter names TempStrNoSize("\x16""ObjectId,Alpha,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x2C""set the Alpha parameter value to Alpha Form."), // parameter descriptions TempStrNoSize("\x29""id of existing QuantLib::AlphaForm object"), TempStrNoSize("\x25""Alpha parameter value for Alpha Form."), TempStrNoSize("\x1D""dependency tracking trigger ")); }
inline void unregisterxlSwapCurrentFixing(const XLOPER & xDll) { XLOPER xlRegID ; // libère la fonction xlSwapAccruedAmount Excel(xlfRegister, 0, 14, & xDll, TempStrNoSize("\x13""xlSwapCurrentFixing"), TempStrNoSize("\x06""PCEPP#"), TempStrNoSize("\x19""SWAP.FIXING"), TempStrNoSize("\x4C""Identifiant de l'instrument,date de règlement,index de référence,déclencheur"), TempStrNoSize("\x01""1"), TempStrNoSize("\x15""xlObjectTools - Swap"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x64""Cette fonction détermine le taux de fixing d'une jambe variable pour une date de règlement donnée"), TempStrNoSize("\x16""Le nom de l'instrument"), TempStrNoSize("\x24""La date de règlement de l'instrument"), TempStrNoSize("\x2E""L'index des fixings de la jambe flottante"), TempStrNoSize("\x1C""Le déclencheur du recalcul ")) ; Excel4(xlfRegisterId, & xlRegID, 2, & xDll, TempStrNoSize("\x19""xlSwapCurrentFixing")) ; Excel4(xlfUnregister, 0, 1, & xlRegID) ; }
void unregisterMathf(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, // function code name TempStrNoSize("\x17""qlCholeskyDecomposition"), // parameter codes TempStrNoSize("\x05""PKPP#"), // function display name TempStrNoSize("\x17""qlCholeskyDecomposition"), // comma-delimited list of parameter names TempStrNoSize("\x17""Matrix,Flexible,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x3E""Returns the Cholesky decomposition of a real symmetric matrix."), // parameter descriptions TempStrNoSize("\x3D""symmetric matrix (hopefully positive semi-definite at least)."), TempStrNoSize("\x5A""If TRUE it returns a result also for positive semi-definite matrix. Default value = false."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x17""qlCholeskyDecomposition")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 16, &xDll, // function code name TempStrNoSize("\x19""qlCovarianceDecomposition"), // parameter codes TempStrNoSize("\x08""CCKPPPL#"), // function display name TempStrNoSize("\x19""qlCovarianceDecomposition"), // comma-delimited list of parameter names TempStrNoSize("\x3E""ObjectId,SymmetricMatrix,Tolerance,Permanent,Trigger,Overwrite"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x46""Construct an object of class CovarianceDecomposition and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x2D""Symmetrix covariance matrix to be decomposed."), TempStrNoSize("\x45""numerical tolerance for non symmetric matrix. Default value = 1.0e12."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x19""qlCovarianceDecomposition")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x2A""qlCovarianceDecompositionCorrelationMatrix"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x2A""qlCovarianceDecompositionCorrelationMatrix"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x4C""Returns the correlation matrix for the given CovarianceDecomposition object."), // parameter descriptions TempStrNoSize("\x37""id of existing QuantLib::CovarianceDecomposition object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x2A""qlCovarianceDecompositionCorrelationMatrix")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x2B""qlCovarianceDecompositionStandardDeviations"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x2B""qlCovarianceDecompositionStandardDeviations"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x7F""Returns the standard deviation (i.e. volatility times square root of time) vector for the given CovarianceDecomposition object."), // parameter descriptions TempStrNoSize("\x37""id of existing QuantLib::CovarianceDecomposition object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x2B""qlCovarianceDecompositionStandardDeviations")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x22""qlCovarianceDecompositionVariances"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x22""qlCovarianceDecompositionVariances"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x49""Returns the variance vector for the given CovarianceDecomposition object."), // parameter descriptions TempStrNoSize("\x37""id of existing QuantLib::CovarianceDecomposition object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x22""qlCovarianceDecompositionVariances")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 14, &xDll, // function code name TempStrNoSize("\x0F""qlGetCovariance"), // parameter codes TempStrNoSize("\x06""PPKPP#"), // function display name TempStrNoSize("\x0F""qlGetCovariance"), // comma-delimited list of parameter names TempStrNoSize("\x1D""Vols,Matrix,Tolerance,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x92""Returns the covariance matrix generated using the correlation matrix and the standard deviation (i.e. volatility times square root of time) array."), // parameter descriptions TempStrNoSize("\x12""volatility vector."), TempStrNoSize("\x3D""symmetric matrix (hopefully positive semi-definite at least)."), TempStrNoSize("\x45""numerical tolerance for non symmetric matrix. Default value = 1.0e12."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0F""qlGetCovariance")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 15, &xDll, // function code name TempStrNoSize("\x0A""qlNormDist"), // parameter codes TempStrNoSize("\x07""EEPPPP#"), // function display name TempStrNoSize("\x0A""qlNormDist"), // comma-delimited list of parameter names TempStrNoSize("\x26""X,Mean,Standard_dev,Cumulative,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x59""Returns the normal cumulative distribution for the specified mean and standard deviation."), // parameter descriptions TempStrNoSize("\x31""is the value for which you want the distribution."), TempStrNoSize("\x40""is the arithmetic mean of the distribution. Default value = 0.0."), TempStrNoSize("\x56""is the standard deviation of the distribution, a positive number. Default value = 1.0."), TempStrNoSize("\x8B""is a logical value: for the cumulative distribution function, use TRUE; for the probability mass function, use FALSE. Default value = TRUE."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0A""qlNormDist")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 14, &xDll, // function code name TempStrNoSize("\x09""qlNormInv"), // parameter codes TempStrNoSize("\x06""EEPPP#"), // function display name TempStrNoSize("\x09""qlNormInv"), // comma-delimited list of parameter names TempStrNoSize("\x25""Probability,Mean,Standard_dev,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x68""Returns the inverse of the normal cumulative distribution for the specified mean and standard deviation."), // parameter descriptions TempStrNoSize("\x5E""is a probability corresponding to the normal distribution, a number between 0 and 1 inclusive."), TempStrNoSize("\x40""is the arithmetic mean of the distribution. Default value = 0.0."), TempStrNoSize("\x56""is the standard deviation of the distribution, a positive number. Default value = 1.0."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x09""qlNormInv")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0B""qlNormSDist"), // parameter codes TempStrNoSize("\x04""EEP#"), // function display name TempStrNoSize("\x0B""qlNormSDist"), // comma-delimited list of parameter names TempStrNoSize("\x09""Z,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x67""Returns the standard normal cumulative distribution (has a mean of zero and standard deviation of one)."), // parameter descriptions TempStrNoSize("\x31""is the value for which you want the distribution."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0B""qlNormSDist")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0A""qlNormSInv"), // parameter codes TempStrNoSize("\x04""EEP#"), // function display name TempStrNoSize("\x0A""qlNormSInv"), // comma-delimited list of parameter names TempStrNoSize("\x13""Probability,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x76""Returns the inverse of the standard normal cumulative distribution (has a mean of zero and standard deviation of one)."), // parameter descriptions TempStrNoSize("\x5E""is a probability corresponding to the normal distribution, a number between 0 and 1 inclusive."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0A""qlNormSInv")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0D""qlPrimeNumber"), // parameter codes TempStrNoSize("\x04""NNP#"), // function display name TempStrNoSize("\x0D""qlPrimeNumber"), // comma-delimited list of parameter names TempStrNoSize("\x09""N,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x1E""returns the N-th prime number."), // parameter descriptions TempStrNoSize("\x2E""index of the prime number (e.g N=2 returns 3)."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0D""qlPrimeNumber")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 13, &xDll, // function code name TempStrNoSize("\x0C""qlPseudoSqrt"), // parameter codes TempStrNoSize("\x05""PKCP#"), // function display name TempStrNoSize("\x0C""qlPseudoSqrt"), // comma-delimited list of parameter names TempStrNoSize("\x21""Matrix,SalvagingAlgorithm,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x3A""Returns the pseudo square root of a real symmetric matrix."), // parameter descriptions TempStrNoSize("\x3D""symmetric matrix (hopefully positive semi-definite at least)."), TempStrNoSize("\x55""Salvaging algorithm for symmetric matrix not positive semi-definite (None, Spectral)."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0C""qlPseudoSqrt")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 15, &xDll, // function code name TempStrNoSize("\x11""qlRankReducedSqrt"), // parameter codes TempStrNoSize("\x07""PKNECP#"), // function display name TempStrNoSize("\x11""qlRankReducedSqrt"), // comma-delimited list of parameter names TempStrNoSize("\x3D""Matrix,MaxRank,ComponentPercentage,SalvagingAlgorithm,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x47""Returns the rank reduced pseudo square root of a real symmetric matrix."), // parameter descriptions TempStrNoSize("\x3D""symmetric matrix (hopefully positive semi-definite at least)."), TempStrNoSize("\x4D""number of principal components retained, i.e. max rank for the result matrix."), TempStrNoSize("\x40""principal components retained as percentage of eigenvalues' sum."), TempStrNoSize("\x55""Salvaging algorithm for symmetric matrix not positive semi-definite (None, Spectral)."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x11""qlRankReducedSqrt")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 15, &xDll, // function code name TempStrNoSize("\x1D""qlSymmetricSchurDecomposition"), // parameter codes TempStrNoSize("\x07""CCKPPL#"), // function display name TempStrNoSize("\x1D""qlSymmetricSchurDecomposition"), // comma-delimited list of parameter names TempStrNoSize("\x34""ObjectId,SymmetricMatrix,Permanent,Trigger,Overwrite"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x4A""Construct an object of class SymmetricSchurDecomposition and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x22""Symmetrix matrix to be decomposed."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x1D""qlSymmetricSchurDecomposition")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x28""qlSymmetricSchurDecompositionEigenvalues"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x28""qlSymmetricSchurDecompositionEigenvalues"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x49""Returns the eigenvalues for the given SymmetricSchurDecomposition object."), // parameter descriptions TempStrNoSize("\x3B""id of existing QuantLib::SymmetricSchurDecomposition object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x28""qlSymmetricSchurDecompositionEigenvalues")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x29""qlSymmetricSchurDecompositionEigenvectors"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x29""qlSymmetricSchurDecompositionEigenvectors"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""0"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x71""Returns the eigenvectors for the given SymmetricSchurDecomposition object. Eigenvectors are returned columnwise."), // parameter descriptions TempStrNoSize("\x3B""id of existing QuantLib::SymmetricSchurDecomposition object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x29""qlSymmetricSchurDecompositionEigenvectors")); Excel4(xlfUnregister, 0, 1, &xlRegID); }
inline void unregisterxlCurveForwardRate(const XLOPER & xDll) { XLOPER xlRegID ; // Unregister the function xlCurveForwardRate Excel(xlfRegister, 0, 15, &xDll, TempStrNoSize("\x12""xlCurveForwardRate"), TempStrNoSize("\x07""BCEECP#"), TempStrNoSize("\x12""CURVE.FORWARD.RATE"), TempStrNoSize("\x31""curve identifier,time 1,time 2,convention,trigger"), TempStrNoSize("\x01""1"), TempStrNoSize("\x1B""xlObjectTools - Yield Curve"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x43""This function computes the forward rate for the corresponding dates"), TempStrNoSize("\x10""Curve identifier"), TempStrNoSize("\x10""The forward date"), TempStrNoSize("\x11""The maturity date"), TempStrNoSize("\x20""The identifier of the convention"), TempStrNoSize("\x1B""Trigger for recalculation ")); Excel4(xlfRegisterId, & xlRegID, 2, & xDll, TempStrNoSize("\x12""xlCurveForwardRate")) ; Excel4(xlfUnregister, 0, 1, & xlRegID) ; }
inline void unregisterxlInitiateAussieBill (const XLOPER & xDll) { XLOPER xlRegID ; // décharge la fonction xlInitiateAussieBill Excel(xlfRegister, 0, 15, & xDll, TempStrNoSize("\x14""xlInitiateAussieBill"), TempStrNoSize("\x07""PCEEPP#"), TempStrNoSize("\x14""INSTANCE.AUSSIE.BILL"), TempStrNoSize("\x57""identifiant de l'instrument,date d'emission,date de maturité,jours de règlement,trigger"), TempStrNoSize("\x01""1"), TempStrNoSize("\x17""xlObjectTools - Object"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x3E""Cette fonction instancie un bill émis par le trésor australien"), TempStrNoSize("\x1D""L'identifiant de l'instrument"), TempStrNoSize("\x1B""La date d'émission du titre"), TempStrNoSize("\x1C""La date de maturité du titre"), TempStrNoSize("\x1F""Le nombre de jours de règlement"), TempStrNoSize("\x17""Déclenche le recalcul ")) ; Excel4(xlfRegisterId, & xlRegID, 2, & xDll, TempStrNoSize("\x14""xlInitiateAussieBill")) ; Excel4(xlfUnregister, 0, 1, & xlRegID) ; }
void unregisterOvernightindexedswap(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, 20, &xDll, // function code name TempStrNoSize("\x0E""qlMakeDatedOIS"), // parameter codes TempStrNoSize("\x0C""CCPPCPPPPPL#"), // function display name TempStrNoSize("\x0E""qlMakeDatedOIS"), // comma-delimited list of parameter names TempStrNoSize("\x64""ObjectId,StartDate,EndDate,OvernightIndex,FixedRate,FixDayCounter,Spread,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 OvernightIndexedSwap and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x54""ois start date. If missing first ECB date is used. Default value = QuantLib::Date()."), TempStrNoSize("\x63""ois end date. If missing first ECB date after start date is used. Default value = QuantLib::Date()."), TempStrNoSize("\x19""OvernightIndex object ID."), TempStrNoSize("\x62""the fixed leg rate. If missing atm rate is used. Default value = QuantLib::Null<QuantLib::Rate>()."), TempStrNoSize("\x32""fixed leg day counter. Default value = Actual/360."), TempStrNoSize("\x3A""the spread in the overnight leg rate. Default value = 0.0."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0E""qlMakeDatedOIS")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 21, &xDll, // function code name TempStrNoSize("\x09""qlMakeOIS"), // parameter codes TempStrNoSize("\x0D""CCPCCPCPPPPL#"), // function display name TempStrNoSize("\x09""qlMakeOIS"), // comma-delimited list of parameter names TempStrNoSize("\x73""ObjectId,SettlDays,SwapTenor,OvernightIndex,FixedRate,ForwardStart,FixDayCounter,Spread,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 OvernightIndexedSwap and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x2F""Number of days to spot date. Default value = 2."), TempStrNoSize("\x1C""swap tenor period (e.g. 5Y)."), TempStrNoSize("\x19""OvernightIndex object ID."), TempStrNoSize("\x62""the fixed leg rate. If missing atm rate is used. Default value = QuantLib::Null<QuantLib::Rate>()."), TempStrNoSize("\x26""forward start period (from spot date)."), TempStrNoSize("\x32""fixed leg day counter. Default value = Actual/360."), TempStrNoSize("\x3A""the spread in the overnight leg rate. Default value = 0.0."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x09""qlMakeOIS")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 21, &xDll, // function code name TempStrNoSize("\x16""qlOvernightIndexedSwap"), // parameter codes TempStrNoSize("\x0D""CCPPCPCCPPPL#"), // function display name TempStrNoSize("\x16""qlOvernightIndexedSwap"), // comma-delimited list of parameter names TempStrNoSize("\x71""ObjectId,PayerReceiver,Nominal,Schedule,FixedRate,FixDayCounter,OvernightIndex,Spread,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 OvernightIndexedSwap and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x4B""PAYER to pay the fixed rate, RECEIVER to receive it. Default value = Payer."), TempStrNoSize("\x25""Notional Amount. Default value = 100."), TempStrNoSize("\x13""Schedule object ID."), TempStrNoSize("\x28""the fixed leg rate. Default value = 0.0."), TempStrNoSize("\x28""fixed leg day counter (e.g. Actual/360)."), TempStrNoSize("\x27""overnight leg OvernightIndex object ID."), TempStrNoSize("\x2A""overnight leg spread. Default value = 0.0."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x16""qlOvernightIndexedSwap")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x1E""qlOvernightIndexedSwapFairRate"), // parameter codes TempStrNoSize("\x04""ECP#"), // function display name TempStrNoSize("\x1E""qlOvernightIndexedSwapFairRate"), // 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("\x68""returns the fair fixed leg rate which would zero the swap NPV for the given OvernightIndexedSwap object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x1E""qlOvernightIndexedSwapFairRate")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x20""qlOvernightIndexedSwapFairSpread"), // parameter codes TempStrNoSize("\x04""ECP#"), // function display name TempStrNoSize("\x20""qlOvernightIndexedSwapFairSpread"), // 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("\x78""returns the fair spread over the overnight rate which would zero the swap NPV for the given OvernightIndexedSwap object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x20""qlOvernightIndexedSwapFairSpread")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x23""qlOvernightIndexedSwapFixedDayCount"), // parameter codes TempStrNoSize("\x04""CCP#"), // function display name TempStrNoSize("\x23""qlOvernightIndexedSwapFixedDayCount"), // 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("\x56""returns the fixed rate day count convention for the given OvernightIndexedSwap object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x23""qlOvernightIndexedSwapFixedDayCount")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 13, &xDll, // function code name TempStrNoSize("\x26""qlOvernightIndexedSwapFixedLegAnalysis"), // parameter codes TempStrNoSize("\x05""PCPP#"), // function display name TempStrNoSize("\x26""qlOvernightIndexedSwapFixedLegAnalysis"), // 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("\x57""returns the fixed rate leg cash flow analysis of the given OvernightIndexedSwap object."), // parameter descriptions TempStrNoSize("\x39""id of existing QuantLibAddin::OvernightIndexedSwap object"), TempStrNoSize("\x47""Shows only cashflows after given date Default value = QuantLib::Date()."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x26""qlOvernightIndexedSwapFixedLegAnalysis")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x21""qlOvernightIndexedSwapFixedLegBPS"), // parameter codes TempStrNoSize("\x04""ECP#"), // function display name TempStrNoSize("\x21""qlOvernightIndexedSwapFixedLegBPS"), // 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("\x50""returns the BPS of the fixed rate leg for the given OvernightIndexedSwap object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x21""qlOvernightIndexedSwapFixedLegBPS")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x21""qlOvernightIndexedSwapFixedLegNPV"), // parameter codes TempStrNoSize("\x04""ECP#"), // function display name TempStrNoSize("\x21""qlOvernightIndexedSwapFixedLegNPV"), // 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("\x50""returns the NPV of the fixed rate leg for the given OvernightIndexedSwap object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x21""qlOvernightIndexedSwapFixedLegNPV")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x1F""qlOvernightIndexedSwapFixedRate"), // parameter codes TempStrNoSize("\x04""ECP#"), // function display name TempStrNoSize("\x1F""qlOvernightIndexedSwapFixedRate"), // 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 fixed rate for the given OvernightIndexedSwap object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x1F""qlOvernightIndexedSwapFixedRate")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 15, &xDll, // function code name TempStrNoSize("\x27""qlOvernightIndexedSwapFromOISRateHelper"), // parameter codes TempStrNoSize("\x07""CCCPPL#"), // function display name TempStrNoSize("\x27""qlOvernightIndexedSwapFromOISRateHelper"), // comma-delimited list of parameter names TempStrNoSize("\x32""ObjectId,OISRateHelper,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 OvernightIndexedSwap and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x18""OISRateHelper object ID."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x27""qlOvernightIndexedSwapFromOISRateHelper")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x1D""qlOvernightIndexedSwapNominal"), // parameter codes TempStrNoSize("\x04""ECP#"), // function display name TempStrNoSize("\x1D""qlOvernightIndexedSwapNominal"), // 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("\x43""returns the swap nominal for the given OvernightIndexedSwap object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x1D""qlOvernightIndexedSwapNominal")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 13, &xDll, // function code name TempStrNoSize("\x2A""qlOvernightIndexedSwapOvernightLegAnalysis"), // parameter codes TempStrNoSize("\x05""PCPP#"), // function display name TempStrNoSize("\x2A""qlOvernightIndexedSwapOvernightLegAnalysis"), // 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("\x32""returns the overnight rate leg cash flow analysis."), // parameter descriptions TempStrNoSize("\x39""id of existing QuantLibAddin::OvernightIndexedSwap object"), TempStrNoSize("\x47""Shows only cashflows after given date Default value = QuantLib::Date()."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x2A""qlOvernightIndexedSwapOvernightLegAnalysis")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x25""qlOvernightIndexedSwapOvernightLegBPS"), // parameter codes TempStrNoSize("\x04""ECP#"), // function display name TempStrNoSize("\x25""qlOvernightIndexedSwapOvernightLegBPS"), // 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("\x54""returns the BPS of the overnight rate leg for the given OvernightIndexedSwap object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x25""qlOvernightIndexedSwapOvernightLegBPS")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x25""qlOvernightIndexedSwapOvernightLegNPV"), // parameter codes TempStrNoSize("\x04""ECP#"), // function display name TempStrNoSize("\x25""qlOvernightIndexedSwapOvernightLegNPV"), // 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("\x54""returns the NPV of the overnight rate leg for the given OvernightIndexedSwap object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x25""qlOvernightIndexedSwapOvernightLegNPV")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x1C""qlOvernightIndexedSwapSpread"), // parameter codes TempStrNoSize("\x04""ECP#"), // function display name TempStrNoSize("\x1C""qlOvernightIndexedSwapSpread"), // 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("\x51""returns the spread over overnight rate for the given OvernightIndexedSwap object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x1C""qlOvernightIndexedSwapSpread")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x1A""qlOvernightIndexedSwapType"), // parameter codes TempStrNoSize("\x04""CCP#"), // function display name TempStrNoSize("\x1A""qlOvernightIndexedSwapType"), // 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("\x53""returns the swap type (Payer or Receiver) of the given OvernightIndexedSwap object."), // parameter descriptions TempStrNoSize("\x34""id of existing QuantLib::OvernightIndexedSwap object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x1A""qlOvernightIndexedSwapType")); Excel4(xlfUnregister, 0, 1, &xlRegID); }
void unregisterFixingCurves(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, 14, &xDll, TempStrNoSize("\x16""createDailyFixingCurve"), TempStrNoSize("\x06""CCPPL#"), TempStrNoSize("\x16""createDailyFixingCurve"), TempStrNoSize("\x1E""ObjectID,Dates,Rates,Permanent"), TempStrNoSize("\x01""1"), TempStrNoSize("\x9""prObjects"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x40""Construct an object of class DailyFixingCurve and returns its id"), TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\xB""Curve dates"), TempStrNoSize("\xE""Rate Set Rates"), TempStrNoSize("\x1D""object permanent/nonpermanent")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x16""createDailyFixingCurve")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 14, &xDll, TempStrNoSize("\x18""createMonthlyFixingCurve"), TempStrNoSize("\x06""CCPPL#"), TempStrNoSize("\x18""createMonthlyFixingCurve"), TempStrNoSize("\x1E""ObjectID,Dates,Rates,Permanent"), TempStrNoSize("\x01""1"), TempStrNoSize("\x9""prObjects"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x42""Construct an object of class MonthlyFixingCurve and returns its id"), TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\xB""Curve dates"), TempStrNoSize("\xE""Rate Set Rates"), TempStrNoSize("\x1D""object permanent/nonpermanent")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x18""createMonthlyFixingCurve")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, TempStrNoSize("\x6""getFix"), TempStrNoSize("\x05""PCPP#"), TempStrNoSize("\x6""getFix"), TempStrNoSize("\x16""ObjectID,Dates,Trigger"), TempStrNoSize("\x01""1"), TempStrNoSize("\x9""prObjects"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x2A""Returns the rate set for the relevant date"), TempStrNoSize("\x33""ID of the FixingRateSource to use for interpolation"), TempStrNoSize("\x7""Trigger")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x6""getFix")); Excel4(xlfUnregister, 0, 1, &xlRegID); }
void registerExercise(const XLOPER &xDll) { Excel(xlfRegister, 0, 17, &xDll, // function code name TempStrNoSize("\x12""qlAmericanExercise"), // parameter codes TempStrNoSize("\x09""CCPPPPPL#"), // function display name TempStrNoSize("\x12""qlAmericanExercise"), // comma-delimited list of parameter names TempStrNoSize("\x4B""ObjectId,EarliestDate,LatestDate,PayoffAtExpiry,Permanent,Trigger,Overwrite"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x3F""Construct an object of class AmericanExercise and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x17""earliest exercise date."), TempStrNoSize("\x15""latest exercise date."), TempStrNoSize("\x28""payoff at expiry. Default value = false."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel(xlfRegister, 0, 16, &xDll, // function code name TempStrNoSize("\x12""qlBermudanExercise"), // parameter codes TempStrNoSize("\x08""CCPPPPL#"), // function display name TempStrNoSize("\x12""qlBermudanExercise"), // comma-delimited list of parameter names TempStrNoSize("\x39""ObjectId,Dates,PayoffAtExpiry,Permanent,Trigger,Overwrite"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x3F""Construct an object of class BermudanExercise and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x06""dates."), TempStrNoSize("\x28""payoff at expiry. Default value = false."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel(xlfRegister, 0, 15, &xDll, // function code name TempStrNoSize("\x12""qlEuropeanExercise"), // parameter codes TempStrNoSize("\x07""CCPPPL#"), // function display name TempStrNoSize("\x12""qlEuropeanExercise"), // comma-delimited list of parameter names TempStrNoSize("\x2F""ObjectId,ExpiryDate,Permanent,Trigger,Overwrite"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x3F""Construct an object of class EuropeanExercise and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x0C""expiry date."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0F""qlExerciseDates"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x0F""qlExerciseDates"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x1B""Returns all exercise dates."), // parameter descriptions TempStrNoSize("\x28""id of existing QuantLib::Exercise object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x12""qlExerciseLastDate"), // parameter codes TempStrNoSize("\x04""NCP#"), // function display name TempStrNoSize("\x12""qlExerciseLastDate"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x14""QuantLib - Financial"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x1B""Returns last exercise date."), // parameter descriptions TempStrNoSize("\x28""id of existing QuantLib::Exercise object"), TempStrNoSize("\x1D""dependency tracking trigger ")); }
inline void unregisterxlInstrumentPrice(const XLOPER & xDll) { XLOPER xlRegID ; // release the function registerxlInstrumentPrice Excel( xlfRegister, 0, 15, &xDll, TempStrNoSize("\x11""xlInstrumentPrice"), TempStrNoSize("\x07""PCPEPP#"), TempStrNoSize("\x0A""BOND.PRICE"), TempStrNoSize("\x33""identifier,settlement date,yield,convention,trigger"), TempStrNoSize("\x01""1"), TempStrNoSize("\x15""xlObjectTools - Bond"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x4D""This function computes the bond price from its yield for the given convention"), TempStrNoSize("\x15""Instrument identifier"), TempStrNoSize("\x25""instrument settlement date (optional)"), TempStrNoSize("\x10""instrument yield"), TempStrNoSize("\x24""rate convention identifer (optional)"), TempStrNoSize("\x25""Triggers the computation (optional) ")); Excel4(xlfRegisterId, & xlRegID, 2, & xDll, TempStrNoSize("\x11""xlInstrumentPrice")) ; Excel4(xlfUnregister, 0, 1, & xlRegID) ; }
void registerRandomsequencegenerator(const XLOPER &xDll) { Excel(xlfRegister, 0, 15, &xDll, // function code name TempStrNoSize("\x0A""qlFaureRsg"), // parameter codes TempStrNoSize("\x07""CCNPPL#"), // function display name TempStrNoSize("\x0A""qlFaureRsg"), // comma-delimited list of parameter names TempStrNoSize("\x2E""ObjectId,Dimension,Permanent,Trigger,Overwrite"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x37""Construct an object of class FaureRsg and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x0A""dimension."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel(xlfRegister, 0, 16, &xDll, // function code name TempStrNoSize("\x0B""qlHaltonRsg"), // parameter codes TempStrNoSize("\x08""CCNNPPL#"), // function display name TempStrNoSize("\x0B""qlHaltonRsg"), // comma-delimited list of parameter names TempStrNoSize("\x33""ObjectId,Dimension,Seed,Permanent,Trigger,Overwrite"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x38""Construct an object of class HaltonRsg and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x0A""dimension."), TempStrNoSize("\x05""seed."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel(xlfRegister, 0, 16, &xDll, // function code name TempStrNoSize("\x14""qlMersenneTwisterRsg"), // parameter codes TempStrNoSize("\x08""CCNNPPL#"), // function display name TempStrNoSize("\x14""qlMersenneTwisterRsg"), // comma-delimited list of parameter names TempStrNoSize("\x33""ObjectId,Dimension,Seed,Permanent,Trigger,Overwrite"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x41""Construct an object of class MersenneTwisterRsg and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x0A""dimension."), TempStrNoSize("\x05""seed."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel(xlfRegister, 0, 11, &xDll, // function code name TempStrNoSize("\x06""qlRand"), // parameter codes TempStrNoSize("\x03""EP#"), // function display name TempStrNoSize("\x06""qlRand"), // comma-delimited list of parameter names TempStrNoSize("\x07""Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x28""returns a random number between 0 and 1."), // parameter descriptions TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0B""qlRandomize"), // parameter codes TempStrNoSize("\x04""LNP#"), // function display name TempStrNoSize("\x0B""qlRandomize"), // comma-delimited list of parameter names TempStrNoSize("\x0C""Seed,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x4C""initialize with the given seed the random number generator used by qlRand()."), // parameter descriptions TempStrNoSize("\x38""the seed used to initialize the random number generator."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 16, &xDll, // function code name TempStrNoSize("\x0A""qlSobolRsg"), // parameter codes TempStrNoSize("\x08""CCNNPPL#"), // function display name TempStrNoSize("\x0A""qlSobolRsg"), // comma-delimited list of parameter names TempStrNoSize("\x33""ObjectId,Dimension,Seed,Permanent,Trigger,Overwrite"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x37""Construct an object of class SobolRsg and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x0A""dimension."), TempStrNoSize("\x05""seed."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel(xlfRegister, 0, 13, &xDll, // function code name TempStrNoSize("\x0A""qlVariates"), // parameter codes TempStrNoSize("\x05""PCNP#"), // function display name TempStrNoSize("\x0A""qlVariates"), // comma-delimited list of parameter names TempStrNoSize("\x18""ObjectId,Samples,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x0F""QuantLib - Math"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x12""generate variates."), // parameter descriptions TempStrNoSize("\x3C""id of existing QuantLibAddin::RandomSequenceGenerator object"), TempStrNoSize("\x12""number of samples."), TempStrNoSize("\x1D""dependency tracking trigger ")); }
inline void unregisterxlInitiateOvernightIndexedBootstrapHelper(const XLOPER & xDll) { XLOPER xlRegID ; // unregister the xlInitiateDepositBootstrapHelper function Excel(xlfRegister, 0, 15, &xDll, TempStrNoSize("\x29""xlInitiateOvernightIndexedBootstrapHelper"), TempStrNoSize("\x07""PCCEEP#"), TempStrNoSize("\x22""OBJECT.CURVE.HELPER.OVERNIGHT.SWAP"), TempStrNoSize("\x39""object indentifier,index identifier,maturity,rate,trigger"), TempStrNoSize("\x01""1"), TempStrNoSize("\x16""xlObjectTools - Object"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x40""This function creates an OIS swap helper for curve bootstrapping"), TempStrNoSize("\x11""Object Identifier"), TempStrNoSize("\x11""Index indentifier"), TempStrNoSize("\x19""Maturity date of the swap"), TempStrNoSize("\x16""Fixed rate of the swap"), TempStrNoSize("\x19""Trigger for recalculation")); Excel4(xlfRegisterId, & xlRegID, 2, & xDll, TempStrNoSize("\x29""xlInitiateOvernightIndexedBootstrapHelper")) ; Excel4(xlfUnregister, 0, 1, & xlRegID) ; }
void unregisterContractsForwardAsian(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, 18, &xDll, TempStrNoSize("\x1A""createContractForwardAsian"), TempStrNoSize("\xA""CCPPPBBCL#"), TempStrNoSize("\x1A""createContractForwardAsian"), TempStrNoSize("\x3D""ObjectID,AveStart,AveEnd,SettDate,Strike,Volume,B/S,Permanent"), TempStrNoSize("\x01""1"), // function type (0 = hidden function, 1 = worksheet function, 2 = command macro) TempStrNoSize("\x9""prObjects"), // function category TempStrNoSize("\x00"""), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x26""Constructs an Oil Average Rate Forward"), TempStrNoSize("\x1A""id of object to be created"), // parameter descriptions TempStrNoSize("\x19""Start of averaging period"), TempStrNoSize("\x17""End of averaging period"), TempStrNoSize("\xF""Settlement date"), TempStrNoSize("\x6""Strike"), TempStrNoSize("\x6""Volume"), TempStrNoSize("\x1D""Buy or Sell at the fixed rate"), TempStrNoSize("\x1D""object permanent/nonpermanent")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x1A""createContractForwardAsian")); Excel4(xlfUnregister, 0, 1, &xlRegID); }
inline void registerxlMeanEWMA(const XLOPER & xDll) { // Enregistre la fonction xlMeanEWMA Excel(xlfRegister, 0, 14, & xDll, TempStrNoSize("\x0A""xlMeanEWMA"), TempStrNoSize("\x06""PCEEP#"), TempStrNoSize("\x0C""MOYENNE.EWMA"), TempStrNoSize("\x41""série à estimer,facteur d'obsolescence,date de la moyenne,trigger"), TempStrNoSize("\x01""1"), TempStrNoSize("\x15""xlObjectTools - Math"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x77""Cette fonction calcule la moyenne d'une série pour une valeur du facteur d'obsolescence donnée et une date d'évaluation"), TempStrNoSize("\x21""Identifiant de la série à estimer"), TempStrNoSize("\x25""La valeur du paramètre d'obsolescence"), TempStrNoSize("\x21""La date d'évalation de la moyenne"), TempStrNoSize("\x17""Déclenche le recalcul ")) ; }
inline void registerxlPricingDate(const XLOPER & xDll) { // Enregistre la fonction xlPricingDate Excel(xlfRegister, 0, 12, &xDll, TempStrNoSize("\x0D""xlPricingDate"), TempStrNoSize("\x04""BPP#"), TempStrNoSize("\x12""ADDIN.PRICING.DATE"), TempStrNoSize("\x0C""date,trigger"), TempStrNoSize("\x01""1"), TempStrNoSize("\x15""xlObjectTools - addin"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x39""This function sets system's pricing date (default: today)"), TempStrNoSize("\x10""Calculation date"), TempStrNoSize("\x07""trigger")); }
void registerObjects(const XLOPER &xDll) { Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x15""ohObjectCallerAddress"), // parameter codes TempStrNoSize("\x04""PPP#"), // function display name TempStrNoSize("\x15""ohObjectCallerAddress"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x31""retrieve address of cell in which object resides."), // parameter descriptions TempStrNoSize("\x1B""ID of object to be queried."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x11""ohObjectCallerKey"), // parameter codes TempStrNoSize("\x04""PPP#"), // function display name TempStrNoSize("\x11""ohObjectCallerKey"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x5F""retrieve unique ID of the CallingRange object associated with the cell in which object resides."), // parameter descriptions TempStrNoSize("\x1B""ID of object to be queried."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x11""ohObjectClassName"), // parameter codes TempStrNoSize("\x04""PPP#"), // function display name TempStrNoSize("\x11""ohObjectClassName"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectID,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x19""get the object class name"), // parameter descriptions TempStrNoSize("\x0F""Object ID name."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x14""ohObjectCreationTime"), // parameter codes TempStrNoSize("\x04""PPP#"), // function display name TempStrNoSize("\x14""ohObjectCreationTime"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectID,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x56""The time at which the Object was initially created, return the time of initing object."), // parameter descriptions TempStrNoSize("\x0A""object ID."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0E""ohObjectExists"), // parameter codes TempStrNoSize("\x04""PPP#"), // function display name TempStrNoSize("\x0E""ohObjectExists"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectID,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // 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("\x0F""Object ID name."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x10""ohObjectIsOrphan"), // parameter codes TempStrNoSize("\x04""PPP#"), // function display name TempStrNoSize("\x10""ohObjectIsOrphan"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectId,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x1F""get the object property orphan "), // parameter descriptions TempStrNoSize("\x0F""Object ID name."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x13""ohObjectIsPermanent"), // parameter codes TempStrNoSize("\x04""PPP#"), // function display name TempStrNoSize("\x13""ohObjectIsPermanent"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectID,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x21""get the object property permanent"), // parameter descriptions TempStrNoSize("\x0F""Object ID name."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x14""ohObjectPrecedentIDs"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x14""ohObjectPrecedentIDs"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectID,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x43""A list of the Object's precedent Objects, return the object's list."), // parameter descriptions TempStrNoSize("\x0A""object ID."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x15""ohObjectUpdateCounter"), // parameter codes TempStrNoSize("\x04""PPP#"), // function display name TempStrNoSize("\x15""ohObjectUpdateCounter"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectID,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x26""get the object property update counter"), // parameter descriptions TempStrNoSize("\x0F""Object ID name."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x12""ohObjectUpdateTime"), // parameter codes TempStrNoSize("\x04""PPP#"), // function display name TempStrNoSize("\x12""ohObjectUpdateTime"), // comma-delimited list of parameter names TempStrNoSize("\x10""ObjectID,Trigger"), // function type (0 = hidden, 1 = worksheet) TempStrNoSize("\x01""1"), // function category TempStrNoSize("\x0D""ObjectHandler"), // shortcut text (command macros only) TempStrNoSize("\x00"""), // path to help file TempStrNoSize("\x00"""), // function description TempStrNoSize("\x4C""The time at which the Object was last recreated, return the last udate time."), // parameter descriptions TempStrNoSize("\x0A""object ID."), TempStrNoSize("\x1D""dependency tracking trigger ")); }
inline void unregisterxlZScoreEWMA(const XLOPER & xDll) { XLOPER xlRegID ; // Enregistre la fonction xlZScoreEWMA Excel(xlfRegister, 0, 14, & xDll, TempStrNoSize("\x0C""xlZScoreEWMA"), TempStrNoSize("\x06""PCEEP#"), TempStrNoSize("\x0C""Z.SCORE.EWMA"), TempStrNoSize("\x40""série à estimer,facteur d'obsolescence,date d'évaluation,trigger"), TempStrNoSize("\x01""1"), TempStrNoSize("\x15""xlObjectTools - Math"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x5E""Cette fonction calcule le z-score d'une série pour une valeur du facteur d'obsolescence donnée"), TempStrNoSize("\x21""Identifiant de la série à estimer"), TempStrNoSize("\x25""La valeur du paramètre d'obsolescence"), TempStrNoSize("\x1F""La date d'évaluation du z-score"), TempStrNoSize("\x17""Déclenche le recalcul ")) ; Excel4(xlfRegisterId, & xlRegID, 2, & xDll, TempStrNoSize("\x0C""xlZScoreEWMA")) ; Excel4(xlfUnregister, 0, 1, & xlRegID) ; }
inline void unregisterxlInitiateTreasuryNote (const XLOPER & xDll) { XLOPER xlRegID ; // Enregistre la fonction xlInitiateMatrix Excel(xlfRegister, 0, 18, & xDll, TempStrNoSize("\x16""xlInitiateTreasuryNote"), TempStrNoSize("\x0A""PCEEEEEEP#"), TempStrNoSize("\x0F""INSTANCE.TNOTE"), TempStrNoSize("\x83""identifiant de l'instrument,date d'emission,date effective,premier coupon,penultième coupon,date de maturité,taux de coupon,trigger"), TempStrNoSize("\x01""1"), TempStrNoSize("\x17""xlObjectTools - Object"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x34""Cette fonction instancie une obligation du trésor US"), TempStrNoSize("\x1D""L'identifiant de l'instrument"), TempStrNoSize("\x1B""La date d'émission du titre"), TempStrNoSize("\x2B""La date de début de cumul de premier coupon"), TempStrNoSize("\x25""La date de paiement du premier coupon"), TempStrNoSize("\x1C""La date du penultième coupon"), TempStrNoSize("\x1C""La date de maturité du titre"), TempStrNoSize("\x21""Le taux de coupon de l'obligation"), TempStrNoSize("\x17""Déclenche le recalcul ")) ; Excel4(xlfRegisterId, & xlRegID, 2, & xDll, TempStrNoSize("\x0F""xlInitiateTNote")) ; Excel4(xlfUnregister, 0, 1, & xlRegID) ; }
void unregisterShortratemodels(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""qlFuturesConvexityBias"), // parameter codes TempStrNoSize("\x08""EEEEEPP#"), // function display name TempStrNoSize("\x16""qlFuturesConvexityBias"), // comma-delimited list of parameter names TempStrNoSize("\x22""FuturesPrice,T1,T2,Sigma,A,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("\xAB""Returns Futures convexity bias (ForwardRate = FuturesImpliedRate - ConvexityBias) calculated as in G. Kirikos, D. Novak, 'Convexity Conundrums', Risk Magazine, March 1997."), // parameter descriptions TempStrNoSize("\x1B""Futures price (e.g. 94.56)."), TempStrNoSize("\x39""Maturity date of the futures contract in years(e.g. 5.0)."), TempStrNoSize("\x3E""Maturity of the underlying Libor deposit in years (e.g. 5.25)."), TempStrNoSize("\x23""Hull-White volatility (e.g. 0.015)."), TempStrNoSize("\x30""Hull-White mean reversion. Default value = 0.03."), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x16""qlFuturesConvexityBias")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 17, &xDll, // function code name TempStrNoSize("\x0B""qlHullWhite"), // parameter codes TempStrNoSize("\x09""CCCEEPPL#"), // function display name TempStrNoSize("\x0B""qlHullWhite"), // comma-delimited list of parameter names TempStrNoSize("\x37""ObjectId,YieldCurve,A,Sigma,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("\x38""Construct an object of class HullWhite and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x1D""YieldTermStructure object ID."), TempStrNoSize("\x02""a."), TempStrNoSize("\x0B""volatility."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0B""qlHullWhite")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 20, &xDll, // function code name TempStrNoSize("\x09""qlModelG2"), // parameter codes TempStrNoSize("\x0C""CCCPPPPPPPL#"), // function display name TempStrNoSize("\x09""qlModelG2"), // comma-delimited list of parameter names TempStrNoSize("\x49""ObjectId,YieldCurve,A,Sigma,B,Eta,Correlation,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("\x31""Construct an object of class G2 and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x1D""YieldTermStructure object ID."), TempStrNoSize("\x43""drift of x(t) dynamics with r(t)= x(t) + y(t). Default value = 0.1."), TempStrNoSize("\x49""volatility of x(t) dynamics with r(t)= x(t) + y(t). Default value = 0.01."), TempStrNoSize("\x43""drift of y(t) dynamics with r(t)= x(t) + y(t). Default value = 0.1."), TempStrNoSize("\x49""volatility of y(t) dynamics with r(t)= x(t) + y(t). Default value = 0.01."), TempStrNoSize("\x38""Correlation between x(t) and y(t) Default value = -0.75."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x09""qlModelG2")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0A""qlModelG2A"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x0A""qlModelG2A"), // 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("\x3B""returns the drift of x(t) dynamics with r(t) = x(t) + y(t)."), // parameter descriptions TempStrNoSize("\x22""id of existing QuantLib::G2 object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0A""qlModelG2A")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0A""qlModelG2B"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x0A""qlModelG2B"), // 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("\x3B""returns the drift of y(t) dynamics with r(t) = x(t) + y(t)."), // parameter descriptions TempStrNoSize("\x22""id of existing QuantLib::G2 object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0A""qlModelG2B")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0C""qlModelG2eta"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x0C""qlModelG2eta"), // 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("\x40""returns the volatility of y(t) dynamics with r(t) = x(t) + y(t)."), // parameter descriptions TempStrNoSize("\x22""id of existing QuantLib::G2 object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0C""qlModelG2eta")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0C""qlModelG2rho"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x0C""qlModelG2rho"), // 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("\x46""returns the correlation between x(t) and y(t) with r(t) = x(t) + y(t)."), // parameter descriptions TempStrNoSize("\x22""id of existing QuantLib::G2 object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0C""qlModelG2rho")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0E""qlModelG2sigma"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x0E""qlModelG2sigma"), // 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("\x40""returns the volatility of x(t) dynamics with r(t) = x(t) + y(t)."), // parameter descriptions TempStrNoSize("\x22""id of existing QuantLib::G2 object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0E""qlModelG2sigma")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 19, &xDll, // function code name TempStrNoSize("\x09""qlVasicek"), // parameter codes TempStrNoSize("\x0B""CCPPPPPPPL#"), // function display name TempStrNoSize("\x09""qlVasicek"), // comma-delimited list of parameter names TempStrNoSize("\x38""ObjectId,R0,A,B,Sigma,Lambda,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("\x36""Construct an object of class Vasicek and return its id"), // parameter descriptions TempStrNoSize("\x1A""id of object to be created"), TempStrNoSize("\x24""initial value. Default value = 0.05."), TempStrNoSize("\x2A""mean reverting speed. Default value = 0.1."), TempStrNoSize("\x2D""short-rate limit value. Default value = 0.05."), TempStrNoSize("\x21""volatility. Default value = 0.01."), TempStrNoSize("\x22""risk premium. Default value = 0.0."), TempStrNoSize("\x1D""object permanent/nonpermanent"), TempStrNoSize("\x1B""dependency tracking trigger"), TempStrNoSize("\x10""overwrite flag ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x09""qlVasicek")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0A""qlVasicekA"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x0A""qlVasicekA"), // 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("\x47""returns mean reverting speed a, with dr(t) = a(b-r(t))dt + sigma dW(t)."), // parameter descriptions TempStrNoSize("\x27""id of existing QuantLib::Vasicek object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0A""qlVasicekA")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0A""qlVasicekB"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x0A""qlVasicekB"), // 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("\x49""returns short-rate limit value b, with dr(t) = a(b-r(t))dt + sigma dW(t)."), // parameter descriptions TempStrNoSize("\x27""id of existing QuantLib::Vasicek object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0A""qlVasicekB")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0F""qlVasicekLambda"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x0F""qlVasicekLambda"), // 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("\x19""returns the risk premium."), // parameter descriptions TempStrNoSize("\x27""id of existing QuantLib::Vasicek object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0F""qlVasicekLambda")); Excel4(xlfUnregister, 0, 1, &xlRegID); Excel(xlfRegister, 0, 12, &xDll, // function code name TempStrNoSize("\x0E""qlVasicekSigma"), // parameter codes TempStrNoSize("\x04""PCP#"), // function display name TempStrNoSize("\x0E""qlVasicekSigma"), // 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("\x45""returns the volatility sigma, with dr(t) = a(b-r(t))dt + sigma dW(t)."), // parameter descriptions TempStrNoSize("\x27""id of existing QuantLib::Vasicek object"), TempStrNoSize("\x1D""dependency tracking trigger ")); Excel4(xlfRegisterId, &xlRegID, 2, &xDll, TempStrNoSize("\x0E""qlVasicekSigma")); Excel4(xlfUnregister, 0, 1, &xlRegID); }
inline void unregisterxlInstrumentRollDown(const XLOPER & xDll) { XLOPER xlRegID ; Excel(xlfRegister, 0, 16, & xDll, TempStrNoSize("\x14""xlInstrumentRollDown"), TempStrNoSize("\x08""PCCEPPP#"), TempStrNoSize("\x14""INSTRUMENT.ROLL.DOWN"), TempStrNoSize("\x6E""Identifiant de l'instrument,identifiant de la courbe,date de fin,spread initial,convention de taux,déclencheur"), TempStrNoSize("\x01""1"), TempStrNoSize("\x15""xlObjectTools - Bond"), TempStrNoSize("\x00"""), TempStrNoSize("\x00"""), TempStrNoSize("\x79""Cette fonction calcule le prix à terme d'un instrument pour un spread et une courbe spot et à un horizon de portage donné"), TempStrNoSize("\x1D""L'identifiant de l'instrument"), TempStrNoSize("\x1A""L'identifiant de la courbe"), TempStrNoSize("\x19""La date de fin de portage"), TempStrNoSize("\x2B""Le spread de l'instrument en points de base"), TempStrNoSize("\x27""L'identifiant de la convention employée"), TempStrNoSize("\x1C""Le déclencheur du recalcul ")) ; Excel4(xlfRegisterId, & xlRegID, 2, & xDll, TempStrNoSize("\x14""xlInstrumentRollDown")) ; Excel4(xlfUnregister, 0, 1, & xlRegID) ; }