簡體   English   中英

QuantLib中的交換定價

[英]Swaption pricing in QuantLib

我也把這個發布在Wilmott上,不知道哪個會得到更多回復。

我對Quantlib(和C ++ ......)的世界相對較新,所以也許這很明顯。 我想弄清楚Quantlib是否可以定價優質香草互換價格(OIS折扣,估算3mL曲線)。 我在Swaption文件中看到的所有Quantlib都是用於折扣的一個期限結構的輸入。 它是否也用於估算? 或者有沒有辦法覆蓋它,這樣我就可以輸入兩條曲線。

任何幫助,例子等都會非常感激(並且會節省我很多時間盯着相同的文件希望有什么東西跳出來......)!

非常感謝

這取決於。 如果你想為百慕大的交換定價,那你就不走運了。 QuantLib只能在樹上定價,而且無法使用這兩條曲線。

如果你想為歐洲交換定價,你可以使用黑色公式中的兩條曲線,雖然我同意通過查看代碼找出它並不明顯。 正如您可能已經看到的那樣,您必須實例化一個工具(Swaption類)和相應的引擎(BlackSwaptionEngine類)。 除了其他參數之外,BlackSwaptionEngine的構造函數采用折扣曲線,因此您將在此處傳遞OIS曲線。 另一方面,Swaption的構造函數將選項的交換作為VanillaSwap實例。 反過來,VanillaSwap構造函數采用IborIndex實例來表示要支付的浮動利率指數; 最后,IborIndex構造函數將曲線用於預測其固定,因此這是您可以傳遞3mL曲線的位置。 總結一下:

shared_ptr<IborIndex> libor(new GBPLibor(3*Months, forecastCurve));
shared_ptr<VanillaSwap> swap(new VanillaSwap(..., libor, ...));
shared_ptr<Instrument> swaption(new Swaption(swap, ...));
shared_ptr<PricingEngine> engine(new BlackSwaptionEngine(discountCurve, ...));
swaption->setPricingEngine(engine);
double price = swaption->NPV();

另請注意,當前發布的版本(QuantLib 1.1)有一個錯誤,使得它在計算過程中的某個時刻使用了錯誤的曲線。 您將需要使用版本1.2,該版本尚未發布,但可以從Subversion存儲庫中檢出, 網址https://quantlib.svn.sourceforge.net/svnroot/quantlib/branches/R01020x-branch/QuantLib

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM