问题
Is it possible for user to change the future fixing dates and gearing of the floating leg in Quantlib?
First, when Quantlib calculate the NPV for floating leg, it will go into couponpricer.hpp to call inline function BlackIborCouponPricer::swapletPrice()
. Inside this function, there is a parameter called gearing_
. This parameter is automatically setting to 1 in my case. If I need to change this to other value, say 0.8, where shall I make this change?
Second, all my future fixing dates are the same as the date vector generated in floating leg schedule. i.e. fixing dates are the same as accrual period starting dates. Is it possible to change these fixing dates to be different from the accrual period starting dates, say 2 business days before accrual starting dates subject to normal business day convention adjustment? Alternatively, is it possible for me to pass a date vector to store these fixing dates?
Many thanks.
回答1:
VanillaSwap
doesn't take gearings as a constructor argument (I guess the idea was to keep it simple). Instead, you can create the fixed and floating legs separately using the FixedLeg
and IborLeg
classes and pass them to a Swap
instance. You can see an example of that in SwapTest::testInArrears()
, in the test-suite/swap.cpp
file.
As for the fixing dates: when you build the IborIndex
instance to be passed to IborLeg
, you can pass a number of fixing days to its constructor. If you're using the available indexes such as Euribor
or USDLibor
, though, they already use 2 fixing days (as well as the correct calendar and business-day convention).
来源:https://stackoverflow.com/questions/40283195/c-quantlib-vanilla-swap-setting-future-fixing-dates-and-gearing-for-floating