2016-04-26 1 views
0

私は、QuantLib 1.6.2を使用して、CDS カーブからハザードレートをブートストラップしています。ノンリニアインターポレータでのブートストラップハザードレート

:私のコードは、私のような(上記の代わりに、 BackwardFlat)異なる非線形補間方法を試してみました

boost::shared_ptr<PiecewiseDefaultCurve<HazardRate, BackwardFlat> > 
hazardRateStructure(new PiecewiseDefaultCurve<HazardRate, BackwardFlat> 
(todaysDate, instruments, Actual365Fixed())); 

、すなわち QuantLib分布が付属して例えば「CDS.cpp」に類似しています

CubicNaturalSpline 
    KrugerCubic 
    Parabolic 
    FritschButlandCubic 
    MonotonicParabolic 

ですが、エラー「no appropriate default constructor available」が表示されています。これらのインターポレータの1つを PiecewiseDefaultCurveクラスに渡す正しい方法は何ですか?

クラス:

はクリス

答えて

0

[場合には、誰かが私がここで私はQuantLibメーリングリストであなたを与えた答えをコピーしています、この質問につまずく。注]、

をありがとうリストは実際の補間クラスですが、曲線には対応するファクトリクラスが必要です(例では、はBackwardFlatInterpolationクラスのファクトリです)。キュービック補間の場合は、Cubicクラスを使用する必要があります。

PiecewiseDefaultCurve<HazardRate, Cubic>(todaysDate, instruments, Actual365Fixed()) 

あなたはKrugerCubicクラスを使用して曲線を得ることができます:デフォルトでは、それはあなたが書いたので、もし(私が選択の理由を認識していないよ)クルーガー補間を構築します。他の補間を得るには、Cubicインスタンスを対応するパラメータで渡すことができます(補間クラスのコンストラクタでそれらを探すことができます)。例えば、

PiecewiseDefaultCurve<HazardRate, Cubic>(todaysDate, instruments, Actual365Fixed(), 
             1e-12, Cubic(CubicInterpolation::Spline, false)) 

はあなたにCubicNaturalSplineクラスを使用して曲線を与えるだろう、と

PiecewiseDefaultCurve<HazardRate, Cubic>(todaysDate, instruments, Actual365Fixed(), 
             1e-12, Cubic(CubicInterpolation::Parabolic, true)) 

MonotonicParabolicクラスを使用します。

+0

ありがとうございましたLuigi、 – Chris

関連する問題