固定收益
為什麼 QuantLib 假設貼現因子的零利率是連續的?
inline DiscountFactor ZeroYieldStructure::discountImpl(Time t) const { if (t == 0.0) // this acts as a safe guard in cases where return 1.0; // zeroYieldImpl(0.0) would throw. Rate r = zeroYieldImpl(t); return DiscountFactor(std::exp(-r*t)); }
該程式碼是零利率的適配器,因為 QuantLib 通過折扣因子來做所有事情。它將零利率轉換為折扣係數。
我不明白為什麼我們總是假設一切都是不斷複合的?例如,如果我有債券,我可能更喜歡半年復利。
問:當給定零利率時,我們總能假設它是連續複利的,有什麼原因嗎?這是否意味著如果我們有一組零利率貼現,除了連續複利之外的任何東西都是無效的?
這不是假設;這是一個要求。基類
ZeroYieldStructure
要求派生類實現一個zeroYieldImpl
返回連續複合利率的方法,因為這就是它在discountImpl
. 我不記得我們實施此功能時的討論——那是幾年前的事了——但我假設(不是雙關語)我們想保持簡單,所以我們只介紹了最常見的情況。約束不是財務上的;這僅僅是由於實施。如果您有一組零利率和其他一些複利約定,那也沒關係。但在這種情況下,您必須使用其他公式計算折扣(在庫的上下文中,編寫您自己的適配器類或擴展現有的適配器類以管理不同的約定)。