波動率
Quantlib 錯誤初始化 CapFloor C++ 類
我想使用 QuantLib 作為 C++ 庫來為利率衍生品定價,特別是 Cap&Floors。稍微簡化一下,假設我有一個不同期限的 EURLibor1Y 利率向量,我稱之為r,以及一個恆定的 caplet 波動率,我稱之為vol。每當我嘗試使用以下程式碼設置 Cap/Floor 對象時
Volatility vol = 0.180253; boost::shared_ptr<OptionletVolatilityStructure> vol_ptr = boost::make_shared<ConstantOptionletVolatility>(settlement,cal,ModifiedFollowing,vol,Actual360()); RelinkableHandle<OptionletVolatilityStructure> vol_handle(vol_ptr); boost::shared_ptr<YieldTermStructure> curve = boost::make_shared<InterpolatedForwardCurve<LogLinear>>(dates,r,Actual360()); RelinkableHandle<YieldTermStructure> ts_handle(curve); boost::shared_ptr<IborIndex> index = boost::make_shared<EURLibor1Y>(ts_handle); IborLeg floatingLeg(schd,index); Cap cap(floatingLeg,r);
我收到一個執行時錯誤,說“在拋出 ‘QuantLib::Error’ what() 的實例後呼叫終止:沒有給出名義”,知道如何解決這個問題嗎?
編輯:在初始化 Cap 時,我使用向量r,因為我希望它是 ATM。
沒關係,剛發現問題。IborLeg 類有一個名為“withNotionals(Real)”的方法,用於設置名義值。