-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optional redemption argument for amortizing bond constructors #1790
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, and sorry for the previous difficulties with the CLA—unfortunately we need to be careful with licensing.
I've left a couple of comments.
bool exCouponEndOfMonth = false); | ||
bool exCouponEndOfMonth = false, | ||
const std::vector<Real>& redemptions = { 100.0 }, | ||
Natural PaymentLag = 0); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are already a bunch of default parameters before these ones, so it doesn't matter much, but I think paymentLag
is more likely to be passed than redemptions
, isn't it? If so, I'd change the order.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, in what case is the payment lag needed? I've seen it mentioned in swaps but not in bonds so far.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The paymentLag in this situation is probably more appropriately referred to as Delay Days - in US MBS for example, borrowers payments for the accrual period in the prior calendar month are passed through to investors on the 25th of the month. It is this delay that paymentLag is supposed to capture. TBH I don't quite understand the role of the already existing argument in the amortizingFloatingBond constructor?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixing days? Those would affect the index fixing; for instance, a coupon starting on Wednesday 20 would use as rate the Euribor fixing of Monday 18, 2 days before.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think there is a paymentLag arg in the amortizingFloatingRateBond constructor - that is what I was referring to.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It was added by this pull request.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, OK - I got my signals crossed with the aborted attempts. So in both cases they act as delay days between the end of the accrual period and when the cashflow is actually received.
Congratulations on your first merged pull request! |
The amortizing bond constructors have been extended by adding a redemptions vector argument that is passed as an argument to the addRedemptionsToCashflows function. This is a vector with values between 0 and 100 that represents the proportion of principal payments which would be calculated by taking the difference between notionals for each payment period. This allows these functions to be used for pools of loans where a certain proportion of the underlying
loans are subject to defaults and losses.