Financial Engineering and Computation Course

Financial Engineering and Computation

(Est. September 1997)
Location 1: TBA, School of Management
Location 2: TBA, Computer Science & Information Engineering

10. Of course, I make a lot investing.
I only teach so I can help young people.
--- Top Ten Lies Finance Professors Tell Their Students

When Professors Scholes and Merton and I invested in warrants,
Professor Merton lost the most money. And I lost the least.
---Fischer Black (1938--1995)

More than half my students cannot write down
the formal definition of [the limit of a sequence]
---Harry M. Markowitz (1987)

Persons with practical experience in the financial industry
but with less of a mathematical background will be considered
but may be required to aquire additional skills in Mathematics.
---Master of Science in Financial Mathematics, The University of Chicago

A two-semester course, co-offered with Prof. Hung Mao-Wei of the B-school (Dept. International Business, College of Management, National Taiwan University).
Required courses for the Financial Engineering Track in the Dept. International Business's Master's program, starting Spring 1998.

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

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
      • Weighted
      • Constrained
  • Time series
  • Credit risk
  • Readings


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.