Finance 549A Computational Finance

Phil Dybvig / 935-4569 /
Washington University Olin School

Focus: quantitative financial models and their implementation

Mathematically sophisticated financial models are becoming more and more important to all different sorts of financial managers. For example, valuing the call provision in a callable convertible bond is important to the CFO of the issuing company (who decides whether or not to include the call provision in the issue), the investment banker (whose firm guarantees the issue and may end up with some in inventory), and the investment manager (who must choose whether to buy the issue). For each of these managers, it is also very important to understand the exposure of the bond's value to interest rates and other risk factors, in order to understand risk and to manage it through hedging (to the extent that is practical and desirable).

Using the Java programming language: Using a programming language is necessary when using a spreadsheet or other high-level tool is too slow or too cumbersome. Understanding a programming language also tends to demystify other computer applications and gives us a conceptual perspective that helps us to use spreadsheets and other applications more effectively. Java is a powerful language that is available on almost all computers, and which is understood by Web browsers. What this means is that you can write and compile a Java program on your own machine, post it on a Web page, and by pointing a Web browser at your page almost anyone can run the program on their own machine. Java is a close relative to C++. Having a course using Java is a signal to potential employers that you are a "serious player" and also is likely to be directly useful as more companies choose to have access to data, simulations, or calculations on their Web pages.

At the frontier: In most earlier courses, we have focused on a consistent and coherent exposition of what we do know about finance. In this class, we will be pushing at the frontier of knowledge, and sometimes we will be doing our best to deal with questions that are only partially understood and for which complete solutions do not yet exist. Many of the interesting computational questions in practice are in this category. Given that it is impractical to hire a team of five PhD's for six months every time we face a new financial instrument, it is important to be able to come up with a good valuation in short amount of time, even if that valuation is not exactly the same as what a more complete analysis would suggest.

Most of the problems in the course involve valuation, since valuation problems are important to all managers and we have excellent quantitative tools for handling them. Students should leave Washington University with a command of a powerful set of tools, and the ability to apply them to practical problems.

Prerequisites Options and Futures is the only formal prerequisite. Experience in an programming language (especially Java or C++) would be useful, but not necessary. General mathematical sophistication is also useful. In general, students who have not studied options and futures previously should not take the course (yet), but it may be appropriate if you have a strong background in math and computers (check with me). It is intended that the course will be challenging, but useful to students with a wide variety of backgrounds. In particular, the final project will necessarily be customized to the individual's background and interests. Students with superior preparation will be given the opportunity for superior performance in optional parts of the homework and in the final project.

Organization of the course The first part of the course will consist of lectures and homework exercises on quantitative topics in finance. The class lectures will focus more on the finance than on the programming, and the homeworks will involve modification of working programs. The second part of the course will be devoted to discussion of specialized topics (largely in response to your interests) and the development of projects.

Course Requirements Grades in the course will based mainly on the midterm examination (40%) and the final project (45%). Homework will count for the remaining 15% of the grade. Understanding of the tools and concepts from the early lectures will be measured by the ``midterm examination'' that will take place some weeks after the actual middle of the semester. Class participation may change a grade near a cutoff. Understandably, job search or other obligations may occasionally conflict with class. It is your responsibility to find out from your classmates what you miss when you are absent.

Course Materials As a default, you should obtain the course materials from my teaching page on the Web: is the direct URL for the course. Be sure you do not get the C++ version of the course materials (from when I originally developed this course)! The materials are still under revision; be sure to use reload on your browser to get the most current version. I also invite you to visit my home page and research page: If your Web access is slow or you are tired of seeing my picture, disable ``Auto Load Images'' on your Web browser.

Transparencies The lectures will be based on transparencies that are available on the Web. The text-only versions are less attractive visually but can be loaded much more quickly over the Web than the pdf versions. You may want to print a paper copy of the transparencies before each class for cross-reference during class and for writing notes on.

Homework There are weekly homeworks in the first part of the course. They involve modifying existing Java programs and answering thought questions. You are expected to prepare your own answer sheet to hand in, including your own answers to the thought questions (each of which should be answered in no more than two sentences of ordinary length). It is fine if you want to work in groups or receive help of any sort on the programming exercises. Of course, you should make sure of your own mastery of the concepts, or else you might develop a false sense of security about the midterm.

Readings The book assigned for the course is The Java Tutorial Second Edition, by Campione and Walrath, ISBN 0-201-31007-4. This is a trade book that is an excellent introduction to programming in Java. You should plan to read about a "trail" a week; additionally you will use it frequently for a reference. The book is optional because the tutorial is also available (free) on SUN's Web site online, at, although the version there is subject to network lag and is under revision, not to mention the fact that sometimes it is nice to get away from the computer screen and look at a book instead. The tutorial is also installed on the machines in the computer lab and can be viewed from Wash U. machines using a link at the bottom of the course page. By the way, if you already have a book on Java that you like, that would probably substitute for The Java Tutorial.

In addition to the book, I expect that you may want to refer to the text you used in your options and futures class. If you have a strong background in differential equations, you may also want to have a look at a more advanced book such as The Mathematics of Financial Derivatives: a Student Introduction, by Wilmott, Howison, and Dewynne, Cambridge University Press, ISBN 0-521-49789-2. This takes an alternative approach to the one in this course by starting with a continuous-time model and using numerical methods to solve the valuation PDEs.

Finally, if you are a bit rusty in mathematics, you may want to get a small mathematical handbook to remind you what a logarithm or an exponential function is. One pocket-sized handbook I saw recently was Dictionary of Mathematical Terms, by Douglas Downing, Barron's, ISBN 0-8120-2641-1. I am not endorsing this one in particular, and I am guessing many students won't need this at all.

Teaching Assistance Paskalis Glabadanidis will assist in offering the course. He is a finance doctoral student in the school. Paskalis is very friendly and I think you will like him. Paskalis' office is Simon 284, his phone number is 935-4884, and his e-mail address is . (Of course, you can also direct your questions to me; I recommend e-mail at or though my home page as an effective way of tracking me down quickly.)

About you In addition to enrolling through the proper authorities, please send me an e-mail with the following information:

If you enroll and later choose to drop the class, please let me know about that, too, with feedback about why the course didn't work for you.

About me I was previously a tenured full professor at Yale, and I came to Wash U in 1988 in the hope of building a top finance group, which we have done. More information on me is in the chatty blurb at or in my vitae at All of my Web pages can be accessed through my home page.

Feedback Since this is the first offering of the Java version of the course, feedback is especially important. Written feedback by e-mail is especially useful.

Integrity Students are expected to conform to the Olin School's Code of Conduct.

Summary I invite you to join me in exploring some interesting and useful tools.