Vous êtes sur la page 1sur 1

Commerce 473

Exam I - Take-Home Portion Question

October 15, 2009
Patrick J. Dennis

General Instructions:

² Please limit yourself to no more than three hours to answer this problem.
² Your solution must be uploaded to collab by midnight on 10/15/2009.
² Honor Code: This is an individual assignment - you may not collaborate with anyone else
to answer this question. Your are to comply with the time limit in the instructions above.
You may use any materials associated with this course to answer the question (your notes
or the textbooks). You may use any of the Excel help menus as well. You MAY NOT use
Google, Wikipedia, or ANY OTHER internet resource to answer this question.
² After you have done the problem, rename the spreadsheet containing the macro and the nu-
merical solution to Exam1-<lastname>-<¯rstname>.xls where your replace <lastname>
with your last name and <¯rstname> with your ¯rst name (Example: Exam1-Smith-
² When you have done this, go to the Comm4730-1 section on collab, select the \Assign-
ments" link and upload your spreadsheet containing the macro and the bond data.

(10 pts) Write a macro called dualcoupon(prin; c1; c2; n1; n2; t; y) that prices a new type of
security called a dual coupon bond. The bond pays a monthly coupon of c1 dollars for the ¯rst
n1 months, pays a monthly coupon of c2 dollars for the next n2 months, and then repeats the
cycle. The ¯rst coupon is received at the end of the ¯rst month. When the bond matures in t
years, it pays the last coupon and a par value of prin dollars. The yield to maturity is a nominal
rate y per year, compounded monthly, where y is expressed as a decimal (i.e 0.1 = 10%).
The parameters should be chosen such that n1 + n2 divides evenly into 12 ¤ t. So for example
n1 = 5, n2 = 7, and t = 3 is allowed, n1 = 7, n2 = 17, and t = 2 is allowed, but n1 = 7,
n2 = 17, and t = 3 is NOT allowed, since (7+17) does not divide evenly into (3 * 12). Your
function macro should check for this mistake, and, if detected, return a nice error message from
the function.
Once you have written your macro, use it to value the following three dual-coupon bonds:

prin c1 c2 n1 n2 t y
($) ($) ($) (years)
1000 10 20 5 7 10 0.1
1000 10 20 5 4 5 0.1
1000 10 20 9 15 40 0.1