如何在Quantlib中的现有屈服对象添加常数扩展
How to add a constant spread to an existing YieldTermStructure object in Quantlib
我真的很感谢您从屈服指针转移到添加差价的输入的输入:::
boost::shared_ptr<YieldTermStructure> depoFutSwapTermStructure(new PiecewiseYieldCurve<Discount,
LogLinear>(settlementDate, depoFutSwapInstruments_New, termStructureDayCounter, 1.0e-15));
我尝试添加下面的50个bps的传播...
double OC_Spread(0.50 / 100);
Rate OCSQuote = OC_Spread;
boost::shared_ptr<Quote> OCS_Handler(new SimpleQuote(OCSQuote));
i然后继续创建一个以下零件对象:
ZeroSpreadedTermStructure Z_Spread(Handle<YieldTermStructure>(*depoFutSwapTermStructure), Handle<Quote>(OCS_Handler));
,但是现在我被卡住了,如果我继续执行
之类的事情,代码会反复崩溃Z_Spread.zeroYieldImpl;
上述代码有什么问题。我尝试了上述方法的几种口味,并且在所有方面都失败了。
也有一种本机的方式直接调用折扣函数,就像我现在使用术语结构对象一样,在添加当前如下以下的verver之前?
?depoFutSwapTermStructure->discount(*it)
我恐怕您的接口有点混杂。您试图调用ZeroSpreadedTermStructure
的zeroYieldImpl
方法受到保护,因此您无法从代码中使用它(至少这就是我猜测您的代码断开的方式,因为您没有报告您遇到的错误)。
与创建的曲线交互的方式是通过其继承的公共YieldTermStructure
接口;其中包括您要调用的discount
方法,以及zeroRate
或forwardRate
等方法。
再次,很难说出为什么您对discount
的呼叫会完全失败,因为您没有引用错误,也没有说呼叫中的*it
是什么。从您报告的初始化以及您写的电话中,我猜您可能已经实例化了ZeroSpreadedTermStructure
对象,但是您正在尝试将其与->
语法一起使用,就像它是指指针一样。如果是这样,请致电Z_Spread.discount(*it)
应该起作用(假设*it
解析为一个数字)。
如果不是问题,恐怕您必须在您的问题中添加更多细节。
最后,对于Quantlib中术语结构的更一般处理,您可以在这里和此处阅读。
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- CMake-按正确顺序将项目与C运行时对象文件链接
- 空基优化子对象的地址
- 将对象数组的引用传递给函数
- 你能重载对象变量名本身返回的内容吗
- C++使用整数的压缩数组初始化对象
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 将对象移动到std::shared_ptr
- 代理对象的常量正确性
- 提升 ASIO 无法识别计时器对象
- 将Ref对象作为类成员
- 将包含C样式数组的对象初始化为成员变量(C++)
- 如何返回一个类的两个对象相加的结果
- 使用std::函数映射对象方法
- 是否需要删除包含对象的"pair"?
- 如何在自删除后将对象设置为nullptr
- 迭代时从向量和内存中删除对象
- 如何在Quantlib中的现有屈服对象添加常数扩展
- 如果一个堆叠的协同程序锁定了一个互斥对象,然后就屈服了,该怎么办