Options
QuantLibXL - Optionlet 引導失敗
我正在嘗試使用 QuantLibXL 從 Cap/Floor 波動率表面引導 Optionlet 波動率表面。具體來說,數據來自ICAP:
STK ATM 0 0.25 0.5 [...] 1Y 0.31 77.95 81.9 71.8 18M 0.34 83.08 89.2 76.6 2Y 0.37 86.03 96.2 80.1 [...]
現在,我可以設置沒有錯誤
qlCapFloorVolTermSurface
,並且qlOptionletStripper1
,但是當我觸發實際計算時,例如,qlOptionletStripper1CapFloorVolatilities
我得到錯誤qlOptionletStripper1CapFloorVolatilities - could not bootstrap optionlet type: Put strike: 25.000000 % atm: 1.311340 % price: 0.125286 annuity: 0.501145 expiry: March 22nd, 2017 error: root not bracketed f[0,24] -> [-1.3213e-002, -1]
我知道根搜尋算法無法在指定範圍內找到解決方案,但是*在實踐中可以做些什麼呢?*我錯過了什麼嗎?
附加資訊:
- optionlet 剝離器將 IborIndex 作為參數,為此我使用了一個 Euribor 對象,該
qlInterpolatedYieldCurve
對像在 Bloomberg 中稱為“(45) - Euro”的複合收益率曲線上。- 奇怪的是,輸出中顯示的 ATM 速率與它應該的完全不匹配,即根據 optionletstripper1.cpp:
atmOptionletRate_
$$ i $$= iborIndex_->修復(optionletDates_$$ i $$);
使用 qlYieldTSZeroRate 檢索到的 2017 年 3 月 22 日的定價為 0.60310%,而不是 1.311340%。有任何想法嗎?
回答我自己的問題:
- 從 ICAP 獲得的所有指示數字都需要除以 100,因為它們是百分比
- 需要一個 IborIndex,它的
OptionletStripper1
期限應該等於 1Y。我已將其設置為 6M,這似乎會導致問題哎喲!