QuantLib 金融計算——基本組件之 Index 類

QuantLib 金融計算——基本組件之 Index 類

Index 類用於表示已知的指數或者收益率,例如 Libor 或 Shibor。這些指數或收益率的屬性可能取決於若干個變量,如基礎貨幣和期限。想象一下,一個交易員正在交易利率互換,浮動收益率定爲 3 個月的 Shibor,他確定須要瞭解此收益率以及基於此收益率的互換合約的若干結算細節,一般來講這些細節是固定不變的。ios

這些屬性因期限而不一樣,此外,還取決於相應的基礎貨幣。幸運的是,用戶沒必要爲大多數經常使用指數或收益率指定這些屬性,由於它們在 QuantLib 中實現。函數

例如,用戶能夠經過 Shibor 類構造特按期限的 Shibor 利率。Shibor 類繼承自 IborIndex 類(表示銀行間市場收益率的基類), IborIndex 類又繼承自 InterestRateIndex 類(表示指數和收益率的基類)。這些類提供了以下幾個經常使用函數:spa

  • name():指數或收益率的名字
  • fixingCalendar():指數或收益率使用的日曆表
  • dayCounter():指數或收益率使用的天數計算規則
  • currency():指數或收益率對應的基礎貨幣
  • tenor():指數或收益率的期限
  • businessDayConvention():如何調整非工做日

目前版本的 quantlib-python 中沒有封裝 Shibor 類,只能在 C++ 中調用。rest

#include <iostream>

#include <ql/indexes/ibor/shibor.hpp>
#include <ql/time/period.hpp>

using namespace std;
using namespace QuantLib;

void testingIndexes1();

int main()
{
    testingIndexes1();
    return 0;
}

void testingIndexes1()
{
    Period tensor(3, Months);
    Shibor index(tensor);

    cout << "Name :\t" << index.familyName() << endl;
    cout << "BDC :\t" << index.businessDayConvention() << endl;
    cout << "End of Month rule ?:\t" << index.endOfMonth() << endl;
    cout << "Tenor :\t" << index.tenor() << endl;
    cout << "Calendar :\t" << index.fixingCalendar() << endl;
    cout << "Day Counter :\t" << index.dayCounter() << endl;
    cout << "Currency :\t" << index.currency() << endl;
}
Name :  Shibor
BDC :   Modified Following
End of Month rule ?:    0
Tenor : 3M
Calendar :  China inter bank market
Day Counter :   Actual/360
Currency :  CNY

在 QuantLib 中有若干類的構造函數須要這樣一個指數或收益率對象做爲輸入參數,特別是和構造收益率曲線有關的類,須要收益率的確切屬性。Index 類使得其餘構造函數的定義更加緊湊。code

相關文章
相關標籤/搜索