To Students with
Engineering or
Science Background,
This course is the result of the interaction between three disciplines:
financial economics (especially asset pricing),
computer science (especially algorithms and software design),
and
mathematics (especially statistics and stochastic processes,
which are often not considered parts of mathematics, but that is another story).
We do not assume you already had prior
knowledge in financial theory or, less importantly, economics;
in fact, we assume the students are new to the field.
Any necessary background information is included in the
handout Financial Engineering & Computation: Principles, Mathematics, Algorithms.
This handout had been used several times before.
It is your
responsibility to read the handout carefully
to bridge any gap in knowledge.
To Students with
Management or
Finance Background,
You will learn a perhaps different perspective on finance,
especially as it pertains to pricing and software engineering.
Our emphasis on computation should add a new dimension and
toolbox to your existing knowledge and financial sense.
(But see Enrollments below.)
It is your
responsibility to learn to write in high-level programming
languages. We cannot impart that skill in the class.
If the mathematics proves hard going, you are expected to
fill in the gap by self-reading. The technicalities are not
beyond a motivated graduate student's reach. Be prepared
to devote a lot of your time to this class, because its load
is more in the tradition of engineering courses.
You will learn advanced mathematics, financial theories, and
good programming practices. Hopefully, this course will be
rewarding for those who are open-minded and are not afraid
to venture into new disciplines.
The major topics covered in the course, time permitting, are listed
below for your reference.
Part I
- Time value of money
- Discounting and compounding
- Bonds, mortgages, and annuities
- Yields
- Duration, convexity, and
immunization
- Yield curve,
forward rate, and spot rate
- Arbitrage argument
- Option pricing theory
and its wide-ranging applications
- Black-Scholes analysis
- binomial option pricing model (BOPM)
- Futures,
forwards, and other derivatives: products
and pricing
- The combinatorics of random walks
-
Martingale,
Brownian motion,
stochastic calculus, and
Ito integral
- Risk-neutral valuation
- Risk management
Part II
- Fixed-income securities with embedded options
and interest rate derivatives
- Asset Pricing
- No arbitrage,
state price,
utility maximization
- Beta
- Mean-variance analysis
- Capital Asset Pricing Model (CAPM)
and Arbitrage Pricing Theory (APT)
- Portfolio management
- Interest rate models and their
calibration:
Black-Derman-Toy,
Brennan-Schwartz,
Cox-Ingersoll-Ross,
Heath-Jarrow-Morton,
Ho-Lee,
Hull-White,
Ogden,
Richard,
Vasicek
- Option-adjusted spread (OAS) analysis
- Mortgage-backed securities (MBS)
- Numerical methods
- Monte Carlo methods
- Variance reduction (efficiency-improving) techniques
- Quasi-Monte Carlo method
- Solving partial differential equations
- Yield curve fitting
- Least-squares problems
- Time series
- Credit risk
- Readings
Examinations
Open book. You are welcome to truck books to the site.
Problem Sets and Programming Exercises
Homework should be turned in on time. No late
homework will be accepted without legitimate reasons.
Please treat each homework set as a take-home quiz; no
collaboration is allowed.
There will be programming
assignments. You are expected to write your own
codes and turn in your source code.
Do not copy or collaborate with fellow students.
(But discussion is allowed.)
Never ask your friends to write
programs for you.
Do program carefully.
It is much more important to get the numbers right than to get a
pretty user interface running. We will try all kinds of malicious
means to bring down your program. So do check for array boundaries,
etc. We strongly recommend the use of the
C++ language
and Java.
-
Input: price of the bond (% of par),
coupon rate of the bond (% of par),
maturity of the bond in years (assume the bond
pays one coupon per annum),
the horizon (in years from now),
the yield at the horizon (%),
and the reinvestment rate (%) between now and
the horizon date. Calculate the holding-period return rate (%).
All rates compounded once per annum.
Horizon date of course must be at most the maturity.
Due: Nov 5, 2001, with on-site demonstration.
-
Write a quadratic-time algorithm to price American puts and a linear-time
algorithm to price European puts. Both are based on the CRR binomial tree
explained in the lectures.
The underlying asset pays no dividends.
Inputs: S, X, tau (year), sigma (%), r (%), n.
Due: Dec 17, 2001, with on-site demonstration.
-
This assignment is fairly easy.
Change your algorithm of the previous assignment
to price European calls with the following choices for
u and d:
u = e^[sigma sqrt(tau/n)+(1/n) ln(X/S)] and
d = e^[ - sigma sqrt(tau/n)+(1/n) ln(X/S)].
Use Excel to plot the option values under the two algorithms
for parameters of your own choice with n=10,15,20, ..., 100 in the x-axis.
Observe their convergence.
Due: Jan 7, 2002, with on-site demonstration.
Examinations
Enrollments
- The class will take 15 max. from the E-school and 15 max. from
the B-school. Priority will be given to students
of the Department of Computer Science & Information
Engineering and those in the Financial Engineering track of the
Department of International Business. By their backgrounds,
these students are new to finance.
The class is open to anyone who wants to audit it.
-
We found that mixing advanced students
with novices can be discouraging to the
latter. Therefore, we would implement
a policy of ensuring certain uniformity
among the students' familiarity
with the subject proper.
-
Those who are currently taking courses in
options,
bond markets,
financial innovations,
or the likes will be disallowed to take
this course.
Repeated takers are not allowed; the course
really doesn't change that much.
-
Non-programmers will be strongly discouraged
as the probability of passing this course is slim,
if possible at all (measure zero, so to speak).