- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我非常感谢您从 YieldTermStructure 指针移动到添加点差的输入,如下所示::
boost::shared_ptr<YieldTermStructure> depoFutSwapTermStructure(new PiecewiseYieldCurve<Discount,
LogLinear>(settlementDate, depoFutSwapInstruments_New, termStructureDayCounter, 1.0e-15));
我尝试如下添加 50 个基点的点差...
double OC_Spread(0.50 / 100);
Rate OCSQuote = OC_Spread;
boost::shared_ptr<Quote> OCS_Handler(new SimpleQuote(OCSQuote));
然后我继续创建一个 zerospreaded 对象,如下所示:
ZeroSpreadedTermStructure Z_Spread(Handle<YieldTermStructure>(*depoFutSwapTermStructure), Handle<Quote>(OCS_Handler));
但是现在我被卡住了,因为如果我继续做类似的事情,代码会反复崩溃
Z_Spread.zeroYieldImpl;
上面的代码有什么问题。我已经尝试了上述几种方法,但都失败了。
还有一种直接调用折扣函数的 native 方法,就像我现在在添加当前点差之前使用 TermStructure 对象所做的那样,如下所示???
depoFutSwapTermStructure->discount(*it)
最佳答案
恐怕您的界面有点困惑。您尝试在 ZeroSpreadedTermStructure
上调用的 zeroYieldImpl
方法受到保护,因此您不能在您的代码中使用它(至少,这就是我猜测您的方式代码中断,因为您没有报告您收到的错误)。
您与创建的曲线交互的方式是通过它继承的公共(public) YieldTermStructure
接口(interface);其中包括您要调用的 discount
方法,以及 zeroRate
或 forwardRate
等方法。
同样,很难说出为什么您对 discount
的调用会准确地失败,因为您没有引用错误也没有说明 *it
是什么电话。从您报告的初始化和您编写的调用中,我猜您可能已经实例化了一个 ZeroSpreadedTermStructure
对象,但您正试图将它与 ->
语法就好像它是一个指针。如果是这种情况,调用 Z_Spread.discount(*it)
应该会起作用(假设 *it
解析为一个数字)。
如果这不是问题所在,恐怕您需要为您的问题添加更多细节。
关于c++ - 如何向 Quantlib 中的现有 YieldTermStructure 对象添加常量点差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42680342/
我是一名优秀的程序员,十分优秀!