You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(17) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(23) |
| 2002 |
Jan
(18) |
Feb
(20) |
Mar
(22) |
Apr
(41) |
May
(28) |
Jun
(25) |
Jul
(10) |
Aug
(7) |
Sep
(5) |
Oct
(20) |
Nov
(13) |
Dec
(11) |
| 2003 |
Jan
(28) |
Feb
(5) |
Mar
(6) |
Apr
(5) |
May
(17) |
Jun
(6) |
Jul
(45) |
Aug
(35) |
Sep
(24) |
Oct
(50) |
Nov
(53) |
Dec
(6) |
| 2004 |
Jan
(4) |
Feb
(10) |
Mar
(52) |
Apr
(46) |
May
(8) |
Jun
(25) |
Jul
(12) |
Aug
(6) |
Sep
(8) |
Oct
(8) |
Nov
(9) |
Dec
(7) |
| 2005 |
Jan
(18) |
Feb
(60) |
Mar
(19) |
Apr
(26) |
May
(14) |
Jun
(27) |
Jul
(8) |
Aug
(15) |
Sep
(19) |
Oct
(53) |
Nov
(20) |
Dec
(23) |
| 2006 |
Jan
(16) |
Feb
(27) |
Mar
(33) |
Apr
(51) |
May
(36) |
Jun
(25) |
Jul
(54) |
Aug
(30) |
Sep
(25) |
Oct
(67) |
Nov
(43) |
Dec
(13) |
| 2007 |
Jan
(23) |
Feb
(27) |
Mar
(55) |
Apr
(79) |
May
(60) |
Jun
(66) |
Jul
(46) |
Aug
(30) |
Sep
(90) |
Oct
(49) |
Nov
(85) |
Dec
(74) |
| 2008 |
Jan
(68) |
Feb
(59) |
Mar
(64) |
Apr
(28) |
May
(66) |
Jun
(35) |
Jul
(73) |
Aug
(76) |
Sep
(65) |
Oct
(46) |
Nov
(41) |
Dec
(19) |
| 2009 |
Jan
(46) |
Feb
(90) |
Mar
(51) |
Apr
(104) |
May
(13) |
Jun
(24) |
Jul
(20) |
Aug
(39) |
Sep
(109) |
Oct
(101) |
Nov
(117) |
Dec
(57) |
| 2010 |
Jan
(55) |
Feb
(42) |
Mar
(39) |
Apr
(22) |
May
(33) |
Jun
(41) |
Jul
(25) |
Aug
(52) |
Sep
(75) |
Oct
(60) |
Nov
(62) |
Dec
(52) |
| 2011 |
Jan
(70) |
Feb
(31) |
Mar
(26) |
Apr
(28) |
May
(17) |
Jun
(38) |
Jul
(51) |
Aug
(35) |
Sep
(27) |
Oct
(35) |
Nov
(10) |
Dec
(20) |
| 2012 |
Jan
(21) |
Feb
(29) |
Mar
(13) |
Apr
(37) |
May
(33) |
Jun
(12) |
Jul
(34) |
Aug
(27) |
Sep
(29) |
Oct
(35) |
Nov
(58) |
Dec
(27) |
| 2013 |
Jan
(27) |
Feb
(16) |
Mar
(40) |
Apr
(16) |
May
(34) |
Jun
(37) |
Jul
(6) |
Aug
(3) |
Sep
(4) |
Oct
(49) |
Nov
(13) |
Dec
(12) |
| 2014 |
Jan
(15) |
Feb
(21) |
Mar
(11) |
Apr
(13) |
May
(27) |
Jun
(60) |
Jul
(19) |
Aug
(29) |
Sep
(20) |
Oct
(28) |
Nov
(41) |
Dec
(15) |
| 2015 |
Jan
(33) |
Feb
(29) |
Mar
(26) |
Apr
(17) |
May
(2) |
Jun
(13) |
Jul
(21) |
Aug
(30) |
Sep
(22) |
Oct
(15) |
Nov
(46) |
Dec
(20) |
| 2016 |
Jan
(6) |
Feb
(5) |
Mar
(9) |
Apr
(15) |
May
(9) |
Jun
(4) |
Jul
(3) |
Aug
(4) |
Sep
(39) |
Oct
(8) |
Nov
(5) |
Dec
(8) |
| 2017 |
Jan
(4) |
Feb
(14) |
Mar
(4) |
Apr
(16) |
May
(5) |
Jun
(10) |
Jul
(25) |
Aug
(2) |
Sep
(5) |
Oct
(11) |
Nov
(8) |
Dec
(11) |
| 2018 |
Jan
(7) |
Feb
(4) |
Mar
|
Apr
(1) |
May
(4) |
Jun
(21) |
Jul
(8) |
Aug
(3) |
Sep
(2) |
Oct
(2) |
Nov
(1) |
Dec
|
| 2019 |
Jan
(1) |
Feb
(5) |
Mar
(18) |
Apr
(9) |
May
(5) |
Jun
(21) |
Jul
(25) |
Aug
(25) |
Sep
(4) |
Oct
(2) |
Nov
(2) |
Dec
(5) |
| 2020 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
(2) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(2) |
Nov
(6) |
Dec
|
| 2021 |
Jan
(1) |
Feb
|
Mar
(2) |
Apr
(1) |
May
(4) |
Jun
|
Jul
(1) |
Aug
|
Sep
(2) |
Oct
(9) |
Nov
(1) |
Dec
(5) |
| 2022 |
Jan
(7) |
Feb
(3) |
Mar
|
Apr
(2) |
May
(5) |
Jun
(3) |
Jul
(3) |
Aug
(3) |
Sep
(3) |
Oct
(14) |
Nov
|
Dec
(1) |
| 2023 |
Jan
(10) |
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
(2) |
Jul
(2) |
Aug
(1) |
Sep
|
Oct
(5) |
Nov
|
Dec
|
| 2024 |
Jan
(8) |
Feb
|
Mar
(2) |
Apr
(1) |
May
|
Jun
|
Jul
(4) |
Aug
(5) |
Sep
|
Oct
(4) |
Nov
(1) |
Dec
(1) |
| 2025 |
Jan
(3) |
Feb
(2) |
Mar
(2) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2026 |
Jan
(1) |
Feb
(12) |
Mar
|
Apr
(2) |
May
(8) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Luigi B. <lui...@gm...> - 2009-04-10 16:13:56
|
On Apr 10, 2009, at 5:08 PM, na...@us... wrote: > Revision: 16144 > http://quantlib.svn.sourceforge.net/quantlib/?rev=16144&view=rev > Author: nando > Date: 2009-04-10 15:08:29 +0000 (Fri, 10 Apr 2009) > > Log Message: > ----------- > Unadjusted termination date as per ISDA convention Did you run the test suite after this one? Luigi |
|
From: Chen, J. <che...@ho...> - 2009-04-10 15:18:33
|
Thanks a lot Nathan. I am very interested in your extension and will look
at it. Regards,
Jiakai Chen
_____
From: Nathan Abbott [mailto:nka...@gm...]
Sent: Wednesday, April 08, 2009 10:41 PM
To: Jose Aparicio-Navarro
Cc: stefanadelbert; qua...@li...
Subject: Re: [Quantlib-dev] mortgage bond
Sorry for the delay. Here is what I have written so for. First the code is
off QuantLib 0.9.7. It will not work with the current copy of QuantLib in
subversion.
in ql/cashflows/cashflows.hpp,cashflows.cpp
I add a sumAmount to the cashflows class. The loan class use this
method.
in ql/cashflows/fixedratecoupon.hpp, fixedratecoupon.cpp
I add delaydays method to a FixedRateLeg. We need this for Mortgage
Bonds
in ql/experimental/loans/amortizingfixedrateleg.hpp,
amortizingfixedrateleg.cpp
I created a AmortizingFixedRateLeg class. This has the amortizing logic
need to create a loan cash flow.
in ql/experimental/loans/loan.hpp, loan.cpp
This is a base loan class. It is very similiar to the bond class.
in ql/experimental/loans/fixedrateloan.hpp, fixedrateloan.cpp
This is a FixedRateLoan class that inherits from the loan class. It use
the AmortizingFixedRateLeg to create it legs. It can create its own cash
flows and get the npv from an pricingengine.
in ql/experimental/loans/discountingloanengine.cpp
This is the pricing engine for the loan class.
in ql/experimental/mortgagebonds/mortgagebond.hpp, mortgagebond.cpp
This is a base MortgageBond class. Obviously, it inherits from the bond
class. Right now all it has is a WAL calculation method.
in ql/experimental/mortgagebonds/fixedratemortgagebond.hpp,
fixedratemortgagebond.cpp
This is a FixedRateMortgageBond class. Obviously, it inherits from the
mortgagebond class. It is very similiar to the AmortizingFixedRateBond
On Wed, Apr 8, 2009 at 3:24 AM, Jose Aparicio-Navarro <ja...@fr...>
wrote:
Hi Nathan, yes thank you, I want to sign for the free copy :-)
I'll try to look at it from the prepayments/default side. But I do not
think I'll implement anything in the short term.
It is 0.9.7 code, right?
Regards
Pepe
Quoting Nathan Abbott <nka...@gm...>:
> I have a version of a Loan class, a FixedRateLoan class, a MortgageBond
> class, and a FixedRateMortgageBond class that I am working on. If any body
> wants to look at them just email me. Any suggests and comments would be
> helpful.
>
|
|
From: Michael H. <Mic...@gm...> - 2009-04-09 21:45:10
|
Hello all, i recently analyzed the sensitivities of a new asian style path dependent option with quantlib and i ran into the following problem: I wanted to do some Vega tests and I had to bump the Local Volatility Surface to figure out where the main vega sensitivities of my product are in terms of time bucket and moneyness. But this was not easy to do with standard quantlib tools. My setup was a BlackScholesMerton Process as underlying and as a BlackVolTermStructure is passed on the BlackVarianceSurface which holds my Implied Volatility Surface. What the BlackScholesProcess does, it figures out what is behind my BlackVolTermStructure and builds the right LocalVolTermStructure out of it. Then when I run my Monte Carlo engine it asks this LocalVolTermStructure at every discrete step of my path for the local vol and uses that as a diffusion term. So how do I stress the Local Volatility Surface? Since my drift term is always calculated on demand instantaneously it is not an easy thing to do. What I could stress without problems is my Implied Volatility Surface. But this is not what I want. And calculating back how to stress my implied Volatility Surface to get the stress on my Local Volatility Surface the way I want is also not very easy to do since it also depends on the way I interpolate and extrapolate my BlackVariance Surface. I solved this problem by building up an Enhanced Black Scholes Process which takes as parameters a stress level and a square of the local Volatility Surface which it stresses on demand. I thought maybe anyone is interested in my solution? I already tested it and it works fine. The solution itself is quite easy and I am working with it so far without any problems. I would like to contribute it and maybe we can together improve it and enhance Quantlib? Since this is my first experience with Quantlib Mailing Lists I am not quite sure if I can attach my cpp files? Can anybody give me some advice? Greetings and Happy Easter to you Michael |
|
From: Hachemi B. <hac...@gm...> - 2009-04-09 17:09:07
|
Hi, I'm a new user of QL and I'm trying to understand how the discrets dividends are integred in evaluation that uses : AnalyticDividendEuropeanEngine () DividendVanillaOption () Please can you give me some informations about it. Thanks, |
|
From: Ferdinando A. <qf...@am...> - 2009-04-09 13:43:38
|
Hi
On second thought I agree with the convention behaviour, so please
just consider my suggestion for terminationDateConvention
ciao -- Nando
On Thu, Apr 9, 2009 at 2:21 PM, Ferdinando Ametrano <qf...@am...> wrote:
> On Wed, Apr 8, 2009 at 5:50 PM, <lba...@us...> wrote:
>> Revision: 16124
>> [...]
>> Log Message:
>> -----------
>> More MakeSchedule setters instead of anonymous constructor parameters
>> [...]
>> + BusinessDayConvention terminationDateConvention;
>> + // if set explicitly, we use it;
>> + if (terminationDateConvention_) {
>> + terminationDateConvention = *terminationDateConvention_;
>> + } else {
>> + // it equals the convention for all other dates.
>> + terminationDateConvention = convention;
>> + }
>
> if not set I would prefer Schedule to default to Unadjusted for the
> termination date, as per ISDA standard where it states that
> termination date should always be considered unadjusted unless
> explicitly specified
>
>> + BusinessDayConvention convention;
>> + // if a convention was set, we use it.
>> + if (convention_) {
>> + convention = *convention_;
>> + } else {
>> + if (!calendar_.empty()) {
>> + // ...if we set a calendar, we probably want it to be used;
>> + convention = Following;
>> + } else {
>> + // if not, we don't care.
>> + convention = Unadjusted;
>> + }
>> + }
>
> even here I would prefer Unadjusted. In this case I have a weaker
> argument: Schedule is most often used to calculate accrual dates
> (derived payment dates will be adjusted anyway). YMMV
>
> ciao -- Nando
>
|
|
From: Ferdinando A. <qf...@am...> - 2009-04-09 12:21:28
|
On Wed, Apr 8, 2009 at 5:50 PM, <lba...@us...> wrote:
> Revision: 16124
> [...]
> Log Message:
> -----------
> More MakeSchedule setters instead of anonymous constructor parameters
> [...]
> + BusinessDayConvention terminationDateConvention;
> + // if set explicitly, we use it;
> + if (terminationDateConvention_) {
> + terminationDateConvention = *terminationDateConvention_;
> + } else {
> + // it equals the convention for all other dates.
> + terminationDateConvention = convention;
> + }
if not set I would prefer Schedule to default to Unadjusted for the
termination date, as per ISDA standard where it states that
termination date should always be considered unadjusted unless
explicitly specified
> + BusinessDayConvention convention;
> + // if a convention was set, we use it.
> + if (convention_) {
> + convention = *convention_;
> + } else {
> + if (!calendar_.empty()) {
> + // ...if we set a calendar, we probably want it to be used;
> + convention = Following;
> + } else {
> + // if not, we don't care.
> + convention = Unadjusted;
> + }
> + }
even here I would prefer Unadjusted. In this case I have a weaker
argument: Schedule is most often used to calculate accrual dates
(derived payment dates will be adjusted anyway). YMMV
ciao -- Nando
|
|
From: Ferdinando A. <qf...@am...> - 2009-04-09 12:05:32
|
On Thu, Apr 9, 2009 at 1:25 PM, Bojan Nikolic <bo...@bn...> wrote: > I think the removal of the yield member function from the Bond class > has broken the current version of Examples/Bonds/Bonds.cpp. Not sure > what the conclusions of the discussion are: are you reverting them in > or should we fix the example? as per Luigi's request I will add back the yield members functions. I'll also take care of any residual change to be applied to the example. thank you ciao -- Nando |
|
From: Bojan N. <bo...@bn...> - 2009-04-09 11:25:29
|
I think the removal of the yield member function from the Bond class has broken the current version of Examples/Bonds/Bonds.cpp. Not sure what the conclusions of the discussion are: are you reverting them in or should we fix the example? Best, Bojan -- Bojan Nikolic || http://www.bnikolic.co.uk |
|
From: Luigi B. <lui...@gm...> - 2009-04-08 15:49:47
|
On Wed, 2009-04-08 at 12:39 +0200, Ferdinando Ametrano wrote:
> I've never used the dirty-price yield/z-spread functions, as the
> market standard for prices is clean price [...]
>
> [...] so my
> advice is not to restore those functions, unless some real benefit is
> pointed out. Of course I'm not against it, especially as long as I
> manage the Excel interface from which they have been eradicated :-)
Fair enough.
> I would be even more radical and remove the Bond::dirtyPrice() method
You mean in the Excel interface, right? :)
> > Previously, I had kept the yield calculations in Bond because I felt
> > that they were used as much as, say, theoretical-price calculations, so
> > they deserved to be methods in Bond.
>
> in previous revisions I already provided the
> Bond methods forwarding to external functions.
> So I'm not against restoring them
>
> Anyway my 0.02€ would be for not adding them back to the Bond
> interface, seconding Scott Meyer's advice of preferring friend
> functions instead of class members, and keep the class interface free
> of baggage.
Meyers argues against member functions that access the private data
members---and it does so in order to improve encapsulation. Here, the
methods would just be forwarding calls to non-friend functions, thus
they would not decrease encapsulation.
> Besides any special role for yield vs z-spread (and maybe in the
> future OASpread) doesn't win me over.
For one thing, the yield is intrinsic to the bond, while the z-spread is
based on an external discount curve. Second, come on---the yield is
much more used; one's just as likely to look at the yield as to look at
the price, when choosing what bonds to buy. You can say that it's just
another calculation, but not in the real world.
> I would be even more aggressive, and limit the Bond interface to the
> implementation of the Instrument interface + inspectors. Any
> additional "theorical-price" (clean/dirty) could be delegated to the
> DiscountingBondEngine.
And then the users should retrieve the results as
bond->result<Rate>("cleanPrice");
instead of
bond->cleanPrice();
after which I couldn't blame them if they forked the project :)
Luigi
--
Better to remain silent and be thought a fool than to speak out and
remove all doubt.
-- Abraham Lincoln
|
|
From: Ferdinando A. <qf...@am...> - 2009-04-08 10:39:44
|
On Wed, Apr 8, 2009 at 10:50 AM, Luigi Ballabio <lui...@gm...> wrote: >> [...] removed redundant dirty-price based interface > Sure it was redundant, but: > 1) it's convenient; > 2) it's inexpensive to maintain; > 3) as it's defined as a set of free-standing functions, we're not adding > excess baggage to a class interface. > In short, I'd restore the dirty-price functions since I don't see any > disadvantage in them. I've never used the dirty-price yield/z-spread functions, as the market standard for prices is clean price, so in order to use the dirty price as input the user must have gone through the unnecessary step of adding accrued amount to clean price. The only occasion I had to deal with a dirty-price function was when a trader started using it at a time when the accrual of the bond he was interested into was little enough not to notice the mistake. We then noticed 3 months later... Dirty price is usually only used for internal calculations, so my advice is not to restore those functions, unless some real benefit is pointed out. Of course I'm not against it, especially as long as I manage the Excel interface from which they have been eradicated :-) I would be even more radical and remove the Bond::dirtyPrice() method, more on this below >> Revision: 16116 >> >> Log Message: >> ----------- >> moved yield calculation in its own file (as for the z-spread >> calculation) > >> Revision: 16120 >> >> Log Message: >> ----------- >> removed redundant Bond methods > > Previously, I had kept the yield calculations in Bond because I felt > that they were used as much as, say, theoretical-price calculations, so > they deserved to be methods in Bond. On the other hand, I see that it's > convenient to have the calculations in a separate file. How about we > make a compromise and keep the methods in Bond forwarding to the > external functions? I intentionally committed with high granularity to facilitate code inspection and to ease change reverting. I paid special attention notably for Rev16120, and in previous revisions I already provided the Bond methods forwarding to external functions. So I'm not against restoring them Anyway my 0.02€ would be for not adding them back to the Bond interface, seconding Scott Meyer's advice of preferring friend functions instead of class members, and keep the class interface free of baggage. Besides any special role for yield vs z-spread (and maybe in the future OASpread) doesn't win me over. I would be even more aggressive, and limit the Bond interface to the implementation of the Instrument interface + inspectors. Any additional "theorical-price" (clean/dirty) could be delegated to the DiscountingBondEngine. But I do understand that conservative minds might be against such a change :-) especially since we're approaching 1.0 ciao -- Nando |
|
From: Jose Aparicio-N. <ja...@fr...> - 2009-04-08 10:25:05
|
Hi Nathan, yes thank you, I want to sign for the free copy :-) I'll try to look at it from the prepayments/default side. But I do not think I'll implement anything in the short term. It is 0.9.7 code, right? Regards Pepe Quoting Nathan Abbott <nka...@gm...>: > I have a version of a Loan class, a FixedRateLoan class, a MortgageBond > class, and a FixedRateMortgageBond class that I am working on. If any body > wants to look at them just email me. Any suggests and comments would be > helpful. > |
|
From: Luigi B. <lui...@gm...> - 2009-04-08 08:50:33
|
Hi all, about yesterday's flurry of commits: > Revision: 16114 > > Log Message: > ----------- > improved z-spread calculation and removed redundant dirty-price based interface Sure it was redundant, but: 1) it's convenient; 2) it's inexpensive to maintain; 3) as it's defined as a set of free-standing functions, we're not adding excess baggage to a class interface. In short, I'd restore the dirty-price functions since I don't see any disadvantage in them. > Revision: 16116 > > Log Message: > ----------- > moved yield calculation in its own file (as for the z-spread > calculation) > Revision: 16120 > > Log Message: > ----------- > removed redundant Bond methods Previously, I had kept the yield calculations in Bond because I felt that they were used as much as, say, theoretical-price calculations, so they deserved to be methods in Bond. On the other hand, I see that it's convenient to have the calculations in a separate file. How about we make a compromise and keep the methods in Bond forwarding to the external functions? Luigi -- Everything can be filed under "miscellaneous". -- unknown |
|
From: stefanadelbert <ste...@gm...> - 2009-04-07 23:03:38
|
Hi Nathan I'm very keen to take a look at your implementations. Are your classes based on the C++ (QuantLib) or the C# (QLNet) codebase? Would you mind giving me a brief overview of what you are trying to achieve or model? Is your aim to value mortgages (MTM) or just to generate events and schedules (a la the ubiquitous online mortgage calculator, which is incidentally what I am trying to achieve)? I would potentially be very keen to collaborate with you on this. It might require a shared codebase, possibly a branch off the QuantLib or QLNet trunk. Stef Nathan Abbott wrote: > > I have a version of a Loan class, a FixedRateLoan class, a MortgageBond > class, and a FixedRateMortgageBond class that I am working on. If any body > wants to look at them just email me. Any suggests and comments would be > helpful. > > On Sun, Apr 5, 2009 at 10:56 PM, stefanadelbert > <ste...@gm...>wrote: > >> >> I was thinking of doing something fairly similar with QuantLib as part of >> a >> homeloan calculator I'm working on. My idea was to add to the C# codebase >> that is part of QLNet and extend the Bond class. I'm not as concerned >> about >> pricing the mortgage as generating payment and amortising principal >> schedules. >> >> My background is in C++ so I would be OK working on C++ codebase, but >> would >> prefer to work directly on the C# codebase as C# would suit my purposes >> better. >> >> Please get in touch if you reckon we could collaborate on this. >> >> Stefan >> >> >> Nathan Abbott wrote: >> > >> > I am c++ programmer that only knows the basics of quantitative finance. >> > Because I have been programming with QuantLib for two years, I think I >> > have >> > a good understanding on how QuantLib works. Luigi Ballabio's * >> > Implementing >> > QuantLib *has been a great help on understanding QuantLib. I am working >> > with >> > a financial person who uses my program, He is fluent with quantitative >> > finance, but only knows a little c++ and does not know how QuantLib >> works. >> > >> > We want to implement a simple version of mortgage bonds through a >> > MorgtageBond class that will probably inherit from the Bond class (and >> > maybe >> > a FixedRateMortageBond and FloatingRateMortageBond classes derived from >> > the >> > MortgageBond class) and would like to solicit some >> > opinions/suggestions/objections. >> > >> > Currently we are thinking that it will be defined similar to the >> > amortizing >> > bond classes (taking in a vector of nominals and dates generated >> outside >> > of >> > QuantLib), but be derived from bond (and inherit all it's functions) >> and >> > adding specific functions to it (like weighted average life >> calculation). >> > Has anyone already done/thought of doing something similar? >> > >> > Secondly, assuming prepayments are not an issue (which for our purposes >> > they >> > are not), a simple mortgage bond is priced similar to corporate bonds, >> > meaning as a spread over swaps (i.e. on a yield basis, yield = swap >> rate >> + >> > spread), then use that sum as the yield to calculate the price. The >> bond >> > class has dirtyPrice and cleanPrice functions which take yield as an >> > input. >> > We can get the par rate from the yield curve by using the parRate >> function >> > or instantiate a simple swap (as explained in yieldtermstructure.hpp >> > comments). >> > >> > Our question is w.r.t the spread. We want to build a spread grid/matrix >> > with >> > rating on one axis/rows and maturity/columns on the other. We were >> > thinking >> > of creating a termspreadsurface (similar to capfloortermvolsurface) >> which >> > could be useful for mbs and corporate bonds (spread per rating/term). >> Has >> > anyone already done something similar? >> > >> > Btw, if anybody is interested in residential prepayments/OAS >> calculations >> > and willing to implement that or is working on that, please contact me >> and >> > we can hopefully coordinate. Please note however that we have limited >> > (almost zero) expertise on that subject. >> > >> > >> ------------------------------------------------------------------------------ >> > Open Source Business Conference (OSBC), March 24-25, 2009, San >> Francisco, >> > CA >> > -OSBC tackles the biggest issue in open source: Open Sourcing the >> > Enterprise >> > -Strategies to boost innovation and cut costs with open source >> > participation >> > -Receive a $600 discount off the registration fee with the source code: >> > SFAD >> > http://p.sf.net/sfu/XcvMzF8H >> > _______________________________________________ >> > QuantLib-dev mailing list >> > Qua...@li... >> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/mortgage-bond-tp22403757p22902644.html >> Sent from the quantlib-dev mailing list archive at Nabble.com. >> >> >> >> ------------------------------------------------------------------------------ >> _______________________________________________ >> QuantLib-dev mailing list >> Qua...@li... >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev >> > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > High Quality Requirements in a Collaborative Environment. > Download a free trial of Rational Requirements Composer Now! > http://p.sf.net/sfu/www-ibm-com > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > -- View this message in context: http://www.nabble.com/mortgage-bond-tp22403757p22940090.html Sent from the quantlib-dev mailing list archive at Nabble.com. |
|
From: Luigi B. <lui...@gm...> - 2009-04-07 19:13:59
|
On Apr 7, 2009, at 9:09 PM, Luigi Ballabio wrote: > > Vai a casa. Ouch---sorry. Wrong reply-to address. Move along, nothing to see here (except for a list administrator making a fool of himself, of course.) Luigi |
|
From: Luigi B. <lui...@gm...> - 2009-04-07 19:09:32
|
Vai a casa. Luigi |
|
From: Nathan A. <nka...@gm...> - 2009-04-07 16:11:45
|
I have a version of a Loan class, a FixedRateLoan class, a MortgageBond class, and a FixedRateMortgageBond class that I am working on. If any body wants to look at them just email me. Any suggests and comments would be helpful. On Sun, Apr 5, 2009 at 10:56 PM, stefanadelbert <ste...@gm...>wrote: > > I was thinking of doing something fairly similar with QuantLib as part of a > homeloan calculator I'm working on. My idea was to add to the C# codebase > that is part of QLNet and extend the Bond class. I'm not as concerned about > pricing the mortgage as generating payment and amortising principal > schedules. > > My background is in C++ so I would be OK working on C++ codebase, but would > prefer to work directly on the C# codebase as C# would suit my purposes > better. > > Please get in touch if you reckon we could collaborate on this. > > Stefan > > > Nathan Abbott wrote: > > > > I am c++ programmer that only knows the basics of quantitative finance. > > Because I have been programming with QuantLib for two years, I think I > > have > > a good understanding on how QuantLib works. Luigi Ballabio's * > > Implementing > > QuantLib *has been a great help on understanding QuantLib. I am working > > with > > a financial person who uses my program, He is fluent with quantitative > > finance, but only knows a little c++ and does not know how QuantLib > works. > > > > We want to implement a simple version of mortgage bonds through a > > MorgtageBond class that will probably inherit from the Bond class (and > > maybe > > a FixedRateMortageBond and FloatingRateMortageBond classes derived from > > the > > MortgageBond class) and would like to solicit some > > opinions/suggestions/objections. > > > > Currently we are thinking that it will be defined similar to the > > amortizing > > bond classes (taking in a vector of nominals and dates generated outside > > of > > QuantLib), but be derived from bond (and inherit all it's functions) and > > adding specific functions to it (like weighted average life calculation). > > Has anyone already done/thought of doing something similar? > > > > Secondly, assuming prepayments are not an issue (which for our purposes > > they > > are not), a simple mortgage bond is priced similar to corporate bonds, > > meaning as a spread over swaps (i.e. on a yield basis, yield = swap rate > + > > spread), then use that sum as the yield to calculate the price. The bond > > class has dirtyPrice and cleanPrice functions which take yield as an > > input. > > We can get the par rate from the yield curve by using the parRate > function > > or instantiate a simple swap (as explained in yieldtermstructure.hpp > > comments). > > > > Our question is w.r.t the spread. We want to build a spread grid/matrix > > with > > rating on one axis/rows and maturity/columns on the other. We were > > thinking > > of creating a termspreadsurface (similar to capfloortermvolsurface) which > > could be useful for mbs and corporate bonds (spread per rating/term). Has > > anyone already done something similar? > > > > Btw, if anybody is interested in residential prepayments/OAS calculations > > and willing to implement that or is working on that, please contact me > and > > we can hopefully coordinate. Please note however that we have limited > > (almost zero) expertise on that subject. > > > > > ------------------------------------------------------------------------------ > > Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, > > CA > > -OSBC tackles the biggest issue in open source: Open Sourcing the > > Enterprise > > -Strategies to boost innovation and cut costs with open source > > participation > > -Receive a $600 discount off the registration fee with the source code: > > SFAD > > http://p.sf.net/sfu/XcvMzF8H > > _______________________________________________ > > QuantLib-dev mailing list > > Qua...@li... > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > > > > > -- > View this message in context: > http://www.nabble.com/mortgage-bond-tp22403757p22902644.html > Sent from the quantlib-dev mailing list archive at Nabble.com. > > > > ------------------------------------------------------------------------------ > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > |
|
From: SourceForge.net <no...@so...> - 2009-04-06 16:30:58
|
Patches item #2727178, was opened at 2009-04-02 11:41 Message generated for change (Comment added) made by ultrium You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=2727178&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Nathan Abbott (ultrium) Assigned to: Luigi Ballabio (lballabio) Summary: add Delay Days to FixedRateLeg Initial Comment: We have a need to create a FixedRateCoupon with the payment date that is different from the end date. For example, we created a mortgage bond with a starting coupon that has a start date of March 1st, 2009, a end date of April 1st, 2009, and a payment date of April 15th, 2009. The rest of the coupons of the bond follow the same pattern for its dates. To create the coupons, I had to added a delayDays_ variable to the FixedRateLeg class. delayDays_ is set to zero by default. Also, a withDelayDays method was added to the class. I also change the Leg() operator to take advance of the delayDays_ variable. ---------------------------------------------------------------------- >Comment By: Nathan Abbott (ultrium) Date: 2009-04-06 09:30 Message: We should use days. The payment day is a certain day of the month. Another example could be the (end date = April 1st, payment date = April 11 or even April 10) ---------------------------------------------------------------------- Comment By: Luigi Ballabio (lballabio) Date: 2009-04-06 08:41 Message: Is a number of days enough? For instance, in your example (end date = April 1st, payment date = April 15th) shouldn't the delay be 2 weeks instead to keep following the pattern in later years? If you were to write it as 8 days (which are those required to get from the 1st to the 15th this year, due to Easter) you'd find yourself going from April 1st to April 13th in 2011. Shouldn't we use a Period instead? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=2727178&group_id=12740 |
|
From: SourceForge.net <no...@so...> - 2009-04-06 15:41:41
|
Patches item #2727178, was opened at 2009-04-02 20:41 Message generated for change (Comment added) made by lballabio You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=2727178&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Nathan Abbott (ultrium) Assigned to: Luigi Ballabio (lballabio) Summary: add Delay Days to FixedRateLeg Initial Comment: We have a need to create a FixedRateCoupon with the payment date that is different from the end date. For example, we created a mortgage bond with a starting coupon that has a start date of March 1st, 2009, a end date of April 1st, 2009, and a payment date of April 15th, 2009. The rest of the coupons of the bond follow the same pattern for its dates. To create the coupons, I had to added a delayDays_ variable to the FixedRateLeg class. delayDays_ is set to zero by default. Also, a withDelayDays method was added to the class. I also change the Leg() operator to take advance of the delayDays_ variable. ---------------------------------------------------------------------- >Comment By: Luigi Ballabio (lballabio) Date: 2009-04-06 17:41 Message: Is a number of days enough? For instance, in your example (end date = April 1st, payment date = April 15th) shouldn't the delay be 2 weeks instead to keep following the pattern in later years? If you were to write it as 8 days (which are those required to get from the 1st to the 15th this year, due to Easter) you'd find yourself going from April 1st to April 13th in 2011. Shouldn't we use a Period instead? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=2727178&group_id=12740 |
|
From: Ferdinando A. <qf...@am...> - 2009-04-06 14:52:20
|
On Mon, Apr 6, 2009 at 4:38 PM, Luigi Ballabio <lui...@gm...> wrote: > a modification I'd like to try and get in: instead of, say, > [...] > MakeSchedule().from(Date(1, September, 2006)) > .to(Date(1, September, 2011)) > .withTenor(3*Months) > .withCalendar(TARGET()) > .withConvention(Following); > > This would allow one, e.g., to have a choice between withTenor and > withFrequency. We might also have smart default values for the > convention. > > Any objections? not from me, FWIW ciao -- Nando |
|
From: Luigi B. <lui...@gm...> - 2009-04-06 14:38:48
|
Hi,
a modification I'd like to try and get in: instead of, say,
MakeSchedule(Date(1, September, 2006),
Date(1, September, 2011),
Period (3, Months),
TARGET(), Following);
I'd go even more explicit, i.e.,
MakeSchedule().from(Date(1, September, 2006))
.to(Date(1, September, 2011))
.withTenor(3*Months)
.withCalendar(TARGET())
.withConvention(Following);
This would allow one, e.g., to have a choice between withTenor and
withFrequency. We might also have smart default values for the
convention.
Any objections?
Luigi
|
|
From: SourceForge.net <no...@so...> - 2009-04-06 08:09:11
|
Patches item #2725832, was opened at 2009-04-02 00:45 Message generated for change (Comment added) made by lballabio You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=2725832&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed >Resolution: Accepted Priority: 5 Private: No Submitted By: Nathan Abbott (ultrium) Assigned to: Luigi Ballabio (lballabio) Summary: add zspread in bond Initial Comment: We have a need to get the zspread of a bond when give a clean price. I made it work just like the yield method when a clean price is given. ---------------------------------------------------------------------- Comment By: Luigi Ballabio (lballabio) Date: 2009-04-06 10:09 Message: The patch was applied to the code repository. It will be included in next release. Thank you. ---------------------------------------------------------------------- Comment By: Luigi Ballabio (lballabio) Date: 2009-04-03 20:56 Message: Ok, I'll apply the patch next week. ---------------------------------------------------------------------- Comment By: Nathan Abbott (ultrium) Date: 2009-04-03 19:11 Message: Can you make it Copyright (C) 2009 Nathan Abbott ? ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2009-04-03 17:49 Message: It is me Nathan Abbott ---------------------------------------------------------------------- Comment By: Luigi Ballabio (lballabio) Date: 2009-04-03 15:32 Message: A question before I can apply the patch: who owns the copyright of the code you contributed? Is it you, your employer, your own company...? Posting the copyright attribution I should use, i.e., something like Copyright (C) 2009 Random J. Hacker or Copyright (C) 2009 ACME inc. would be best. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=2725832&group_id=12740 |
|
From: stefanadelbert <ste...@gm...> - 2009-04-06 05:56:20
|
I was thinking of doing something fairly similar with QuantLib as part of a homeloan calculator I'm working on. My idea was to add to the C# codebase that is part of QLNet and extend the Bond class. I'm not as concerned about pricing the mortgage as generating payment and amortising principal schedules. My background is in C++ so I would be OK working on C++ codebase, but would prefer to work directly on the C# codebase as C# would suit my purposes better. Please get in touch if you reckon we could collaborate on this. Stefan Nathan Abbott wrote: > > I am c++ programmer that only knows the basics of quantitative finance. > Because I have been programming with QuantLib for two years, I think I > have > a good understanding on how QuantLib works. Luigi Ballabio's * > Implementing > QuantLib *has been a great help on understanding QuantLib. I am working > with > a financial person who uses my program, He is fluent with quantitative > finance, but only knows a little c++ and does not know how QuantLib works. > > We want to implement a simple version of mortgage bonds through a > MorgtageBond class that will probably inherit from the Bond class (and > maybe > a FixedRateMortageBond and FloatingRateMortageBond classes derived from > the > MortgageBond class) and would like to solicit some > opinions/suggestions/objections. > > Currently we are thinking that it will be defined similar to the > amortizing > bond classes (taking in a vector of nominals and dates generated outside > of > QuantLib), but be derived from bond (and inherit all it's functions) and > adding specific functions to it (like weighted average life calculation). > Has anyone already done/thought of doing something similar? > > Secondly, assuming prepayments are not an issue (which for our purposes > they > are not), a simple mortgage bond is priced similar to corporate bonds, > meaning as a spread over swaps (i.e. on a yield basis, yield = swap rate + > spread), then use that sum as the yield to calculate the price. The bond > class has dirtyPrice and cleanPrice functions which take yield as an > input. > We can get the par rate from the yield curve by using the parRate function > or instantiate a simple swap (as explained in yieldtermstructure.hpp > comments). > > Our question is w.r.t the spread. We want to build a spread grid/matrix > with > rating on one axis/rows and maturity/columns on the other. We were > thinking > of creating a termspreadsurface (similar to capfloortermvolsurface) which > could be useful for mbs and corporate bonds (spread per rating/term). Has > anyone already done something similar? > > Btw, if anybody is interested in residential prepayments/OAS calculations > and willing to implement that or is working on that, please contact me and > we can hopefully coordinate. Please note however that we have limited > (almost zero) expertise on that subject. > > ------------------------------------------------------------------------------ > Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, > CA > -OSBC tackles the biggest issue in open source: Open Sourcing the > Enterprise > -Strategies to boost innovation and cut costs with open source > participation > -Receive a $600 discount off the registration fee with the source code: > SFAD > http://p.sf.net/sfu/XcvMzF8H > _______________________________________________ > QuantLib-dev mailing list > Qua...@li... > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > -- View this message in context: http://www.nabble.com/mortgage-bond-tp22403757p22902644.html Sent from the quantlib-dev mailing list archive at Nabble.com. |
|
From: SourceForge.net <no...@so...> - 2009-04-03 18:56:08
|
Patches item #2725832, was opened at 2009-04-02 00:45 Message generated for change (Comment added) made by lballabio You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=2725832&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Nathan Abbott (ultrium) Assigned to: Luigi Ballabio (lballabio) Summary: add zspread in bond Initial Comment: We have a need to get the zspread of a bond when give a clean price. I made it work just like the yield method when a clean price is given. ---------------------------------------------------------------------- >Comment By: Luigi Ballabio (lballabio) Date: 2009-04-03 20:56 Message: Ok, I'll apply the patch next week. ---------------------------------------------------------------------- Comment By: Nathan Abbott (ultrium) Date: 2009-04-03 19:11 Message: Can you make it Copyright (C) 2009 Nathan Abbott ? ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2009-04-03 17:49 Message: It is me Nathan Abbott ---------------------------------------------------------------------- Comment By: Luigi Ballabio (lballabio) Date: 2009-04-03 15:32 Message: A question before I can apply the patch: who owns the copyright of the code you contributed? Is it you, your employer, your own company...? Posting the copyright attribution I should use, i.e., something like Copyright (C) 2009 Random J. Hacker or Copyright (C) 2009 ACME inc. would be best. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=2725832&group_id=12740 |
|
From: SourceForge.net <no...@so...> - 2009-04-03 17:11:35
|
Patches item #2725832, was opened at 2009-04-01 15:45 Message generated for change (Comment added) made by ultrium You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=2725832&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Nathan Abbott (ultrium) Assigned to: Luigi Ballabio (lballabio) Summary: add zspread in bond Initial Comment: We have a need to get the zspread of a bond when give a clean price. I made it work just like the yield method when a clean price is given. ---------------------------------------------------------------------- Comment By: Nathan Abbott (ultrium) Date: 2009-04-03 10:11 Message: Can you make it Copyright (C) 2009 Nathan Abbott ? ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2009-04-03 08:49 Message: It is me Nathan Abbott ---------------------------------------------------------------------- Comment By: Luigi Ballabio (lballabio) Date: 2009-04-03 06:32 Message: A question before I can apply the patch: who owns the copyright of the code you contributed? Is it you, your employer, your own company...? Posting the copyright attribution I should use, i.e., something like Copyright (C) 2009 Random J. Hacker or Copyright (C) 2009 ACME inc. would be best. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=2725832&group_id=12740 |
|
From: SourceForge.net <no...@so...> - 2009-04-03 15:49:22
|
Patches item #2725832, was opened at 2009-04-01 22:45 Message generated for change (Comment added) made by nobody You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=2725832&group_id=12740 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Nathan Abbott (ultrium) Assigned to: Luigi Ballabio (lballabio) Summary: add zspread in bond Initial Comment: We have a need to get the zspread of a bond when give a clean price. I made it work just like the yield method when a clean price is given. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2009-04-03 15:49 Message: It is me Nathan Abbott ---------------------------------------------------------------------- Comment By: Luigi Ballabio (lballabio) Date: 2009-04-03 13:32 Message: A question before I can apply the patch: who owns the copyright of the code you contributed? Is it you, your employer, your own company...? Posting the copyright attribution I should use, i.e., something like Copyright (C) 2009 Random J. Hacker or Copyright (C) 2009 ACME inc. would be best. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=312740&aid=2725832&group_id=12740 |