Re: COUP_ bases.



Neil Booth wrote:

Andreas J. Guelzow wrote:-


Currently the bases are implemented as follows. Likely the names used for them are not completely correct. bases 0 to 4 have to be like that to match what Excel appears to be doing:


Yup.


-----------------------------------------------------------------
base 0: BASIS_30Ep360

date adjustment:
to_date is changed from last of month (whether 28, 29, 30, or 31) to 30th
from_date is changed from last of month (whether 28, 29, 30, or 31) to 30th

date difference:
each month 30 days, within a month serial delta


No, both for name and description.  Called either "PSA 30/360" or,
only by Excel, "NASD 30/360".  Try (28Feb01,28Feb01) to see why your
description is wrong.  Answer is -2, not zero as your description
would get.


Pardon? Considering that you haven't seen the code yet, you would neeed to trust me that that is in fact what my current code has to do to Match XL.In XL when you calculate COUPDAYBS ("28-Feb-2001","28-Feb-2002",1,0) you get: 0 _not_ -2.

Which name should we use? Remember _this_ _is_ the default!



This convention is not used in *any* markets to the best of my
knowledge.  Bloomberg doesn't implement it either, and they cover damn
near everything (albeit with a fair number of bugs, too, but far less
than MS 8^)).  Seems to be at least 5 years old, or a figment of MS's
imagination.


If this is what XL does the only question is what is an appropriate name.




-----------------------------------------------------------------
base 1: BASIS_ACTACT

date adjustment:
no change

date difference:
serial delta

currently serial delta also for length of coupon period but that
is not Excel comp.


I don't grok what you're saying here.  There are 2 meanings of
Act/Act, one for bonds, one for swaps.  For bonds its actual days /
actual days (doh! 8^)).

Used for accrued int and yields.


Well XL seems to calculate this simply as the difference of the date serial numbers, except when it tries to calculate COUPDAYS.




-----------------------------------------------------------------
base 2: BASIS_ACT360

date adjustment:
no change

date difference:
serial delta, even for times of 1 year between settlement and
coupon date

360/freq for length of coupon period


I don't understand what you're saying here either.  Act/360 is as easy
as could be: number of days / 360.  Used only for accrued int, not
yields.  CoupDays seems to period-ize it, but that's a simple issue.


What do you expect COUPNCD ("28-Feb-2003","29-Feb-2004",1,2) or
COUPNCD ("28-Feb-2003","29-Feb-2004",1,2) to be in XL ? Well neither is 360! Therefore what do you mean with number of days / 360 ? Remember these distance functions usually return integers.





-----------------------------------------------------------------
base 3: BASIS_ACT365

date adjustment:
no change

date difference:
serial delta, even for times of 1 year between settlement and
coupon date

365/freq for length of coupon period, (with decimal answer)


Number of days / 365.  Easy.  Used for accrued int and yields.


-----------------------------------------------------------------
base 4: BASIS_30E360

date adjustment:
from_date is changed from 31st to 30th
to_date is changed from 31st to 30th

date difference:
each month 30 days, within a month serial delta



Yup.  Used for accrued int and yields.


base 5: BASIS_30_360

date adjustment:
from_date is changed from 31st to 30th
if from_date is 30 or 31, to_date is changed from 31st to 30thdate difference:


Yup.  Used for accrued int and yields.

Then there's basis 6:

The real meaning of 30E+360 (30Ep360 as an identifier, say):

d1:  31->30 (as for all 30/360 conventions)
d2:  31->1, m2++ if d1 >= 30.

This is used for calculating yields according to the "EuroBond"
convention.  It's not used for accrued interest.  FWIW.

Neil.


Andreas




--
Prof. Dr. Andreas J. Guelzow
http://www.math.concordia.ab.ca/aguelzow




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]