Python
稍後在 QuantLib 中計算普通掉期的市場價值
我正在按照此處給出的 QuantLib Python 中為 Vanilla Swap 定價的食譜範例。
現在讓我們假設一周過去了,我們正在嘗試計算同一掉期的市值。經過一番環顧後,我找到了這個文章,這讓我相信,為了在以後對掉期重新定價,需要更改結算日期以獲取掉期的更新市場價值。這似乎不對,因為更改掉期的結算日期也會導致現金流量計劃發生變化。
我正在尋找的是保留掉期定義(現金流日期、到期日等),在以後載入新的收益率曲線,並使用新的收益率曲線重新定價我的掉期。
誰能告訴我如何做到這一點?
謝謝!
您可以保留
Swap
您創建的包含交換定義的實例,並更改評估日期和您正在使用的曲線。評估日期很簡單:在 Python 中,
Settings::instance().evaluationDate = new_date
會成功的。
至於曲線,您必須更改 and 的聲明,
discount_curve
以便libor_curve
它們使用YieldTermStructureRelinkableHandle
而不是YieldTermStructureHandle
. 這將使您可以將它們重新連結到不同的曲線。您修改後的腳本將類似於:# as in the original notebook: create the swap, # the curves for pricing on the first evaluation date, etc. print swap.NPV() # as of the first evaluation date Settings::instance().evaluationDate = new_date libor_curve.linkTo( # the curve for the new evaluation date ) discount_curve.linkTo( # the curve for the new evaluation date ) print swap.NPV() # as of the new date, using the new curves.
簡而言之:保留交換,根據需要更改其他所有內容。掉期將相應地重新計算。
您可能需要注意的一件事:如果任何未到期的浮動票券在評估日期之前固定,您將不得不載入基礎指數的固定。執行此操作的界面是,例如,
libor3M_index.addFixing(date, value)