2017-02-28 23 views
0

私はバニラ金利スワップを2017年1月31日(評価日)に評価していますが、バニラ金利スワップの有効日は2016年12月31日(開始日)です。まず、以下のコードで評価日と開始日を調整する方法を知りたいと思います。QuantLibを使用したPythonのバニラ金利スワップ評価

import QuantLib as ql 
startDate = ql.Date(31,12,2016) 
valuationDate = ql.Date(31,1,2017) 
maturityDate = ql.Date(30,9,2019) 
calendar = ql.SouthAfrica() 
bussiness_convention = ql.Unadjusted 
swapT = ql.VanillaSwap.Payer 
nominal = 144000000 
fixedLegTenor = ql.Period(3, ql.Months) 
fixedSchedule = ql.Schedule(startDate, maturityDate, 
          fixedLegTenor, calendar, 
          ql.ModifiedFollowing, ql.ModifiedFollowing, 
          ql.DateGeneration.Forward, False) 
fixedRate = 0.077 
fixedLegDayCount = ql.Actual365Fixed() 
spread = 0 
floatLegTenor = ql.Period(3, ql.Months) 
floatSchedule = ql.Schedule(startDate, maturityDate, 
           floatLegTenor, calendar, 
           ql.ModifiedFollowing, ql.ModifiedFollowing, 
           ql.DateGeneration.Forward, False) 
floatLegDayCount = ql.Actual365Fixed() 
discountDates = [ql.Date(31,1,2017),ql.Date(7,2,2017),ql.Date(28,2,2017), 
       ql.Date(31,3,2017),ql.Date(28,4,2017),ql.Date(31,7,2017), 
       ql.Date(31,10,2017),ql.Date(31,1,2018),ql.Date(31,1,2019), 
       ql.Date(31,1,2020),ql.Date(29,1,2021),ql.Date(31,1,2022), 
       ql.Date(31,1,2023),ql.Date(31,1,2024),ql.Date(31,1,2025), 
       ql.Date(30,1,2026),ql.Date(29,1,2027),ql.Date(31,1,2029), 
       ql.Date(30,1,2032),ql.Date(30,1,2037),ql.Date(31,1,2042), 
       ql.Date(31,1,2047)] 
discountRates = [1,0.9986796,0.99457,0.9884423,0.9827433,0.9620352,0.9420467,0.9218714, 
       0.863127,0.7993626,0.7384982,0.6796581,0.6244735,0.5722537,0.5236629, 
       0.4779477,0.4362076,0.3619845,0.2795902,0.1886847,0.1352048,0.1062697] 

jibarTermStructure = ql.RelinkableYieldTermStructureHandle() 
jibarIndex = ql.Jibar(ql.Period(3,ql.Months), jibarTermStructure) 
jibarIndex.addFixings(dtes, fixings) 
discountCurve = ql.DiscountCurve(discountDates,discountRates,ql.Actual365Fixed()) 
swapEngine = ql.DiscountingSwapEngine(discountCurve) 
interestRateSwap = ql.VanillaSwap(swapT, nominal, fixedSchedule, 
       fixedRate,fixedLegDayCount,jibarIndex,spread,floatSchedule, 
       floatLegDayCount,swapEngine,floatSchedule.convention) 

第二に、私は私が私の割引係数を使用することができますどのように他interestRateSwap =ql.VanillaSwap()jibarIndexを組み込むか、できる最善の方法を知っていただきたいと思いますし、ディスカウント金利スワップ

答えて

1

QLの値を計算する日付.Settings.instance()。setEvaluationDate(本日)

は、評価の日付または評価の日付を設定します。

VanillaSwapコードのjibarIndexインデックスに問題はありません。あなたはオブジェクトをQuantLibに与えました。ライブラリーはそれを浮遊脚の価格を計算するために前方カーブとして使用し、したがってスワップします。

関連する問題