C++:实现量化cms模型测试实例
#include "cms.hpp"
#include "utilities.hpp"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include using namespace QuantLib;
using namespace boost::unit_test_framework;namespace cms_test {struct CommonVars {RelinkableHandle<YieldTermStructure> termStructure;ext::shared_ptr<IborIndex> iborIndex;Handle<SwaptionVolatilityStructure> atmVol;Handle<SwaptionVolatilityStructure> SabrVolCube1;Handle<SwaptionVolatilityStructure> SabrVolCube2;std::vector<GFunctionFactory::YieldCurveModel> yieldCurveModels;std::vector<ext::shared_ptr<CmsCouponPricer> > numericalPricers;std::vector<ext::shared_ptr<CmsCouponPricer> > analyticPricers;SavedSettings backup;CommonVars() {Calendar calendar = TARGET();Date referenceDate = calendar.adjust(Date::todaysDate());Settings::instance().evaluationDate() = referenceDate;termStructure.linkTo(flatRate(referenceDate, 0.05,Actual365Fixed()));std::vector<Period> atmOptionTenors = {1 * Months, 6 * Months, 1 * Years,5 * Years, 10 * Years, 30 * Years};std::vector<Period> atmSwapTenors = {1 * Years, 5 * Years, 10 * Years, 30 * Years};Matrix m(atmOptionTenors.size(), atmSwapTenors.size());m[0][0]=0.1300; m[0][1]=0.1560; m[0][2]=0.1390; m[0][3]=0.1220;m[1][0]=0.1440; m[1][1]=0.1580; m[1][2]=0.1460; m[1][3]=0.1260;m[2][0]=0.1600; m[2][1]=0.1590; m[2][2]=0.1470; m[2][3]=0.1290;m[3][0]=0.1640; m[3][1]=0.1470; m[3][2]=0.1370; m[3][3]=0.1220;m[4][0]=0.1400; m[4][1]=0.1300; m[4][2]=0.1250; m[4][3]=0.1100;m[5][0]=0.1130; m[5][1]=0.1090; m[5][2]=0.1070; m[5][3]=0.0930;atmVol = Handle<SwaptionVolatilityStructure>(ext::shared_ptr<SwaptionVolatilityStructure>(newSwaptionVolatilityMatrix(calendar,Following,atmOptionTenors,atmSwapTenors,m,Actual365Fixed())));std::vector<Period> optionTenors = {{1, Years}, {10, Years}, {30, Years}};std::vector<Period> swapTenors = {{2, Years}, {10, Years}, {30, Years}};std::vector<Spread> strikeSpreads = {-0.020, -0.005, 0.000, 0.005, 0.020};Size nRows = optionTenors.size<
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!