Scott Burton

Financial Software Projects

Monday 7:10-9:00  WWH Room 412

This course will be taught by a veteran Wall St. technology manager currently employed at a top tier investment bank. The theme of this course will be “applied case study” and will focus on Fixed Income markets. The semester will begin with a big-picture view of the markets, the inner workings of an investment bank, the market players, and where software engineers fit in. The students will be grouped into small teams to build a financial application using practical software engineering principles.

It is assumed that the students can code in C++ or C.

    No prior experince in the financial sector is required - just a desire to learn it.

Reference Materials:

Software Engineering:

    Soul of a New Machine - Tracy Kidder

    The Mythical Man - Month - Fred Brooks

    Wicked Problems, Righteous Solutions - Peter DeGrace

Application Domain: (should be available in library):

    The Handbook of Global Fixed Income Calculations - Dragomir Krgin

    The Money Markets - Marcia Stigum

    Security Analysis - Graham and Dodd


Course Objectives:

    1. Learn key aspects of the financial sector application domain

    2. Develop software to price a basic security

    3. Build upon basic components to produce a functioning framework

    4. Apply practical object oriented design principals to the financial domain

    5. Build a working risk management application

    6. See how aspects of documented software development methodologies are applied

Grading policy:

    Quizes will be given periodically and will cover topics presented in lectures, handouts and reference texts.
    The quizes will comprise 20% of the total grade.
    During the majority of the semester the students will be developing an application which will be presented at the end of the semester.
    The mid-term will be a library submitted to the instructor which will be re-compiled and run against a "test" file. This will account for 40% of the grade.

    The final project will be a working app built using the library submitted at mid-term.
    This will comprise the remaining 40% of the total grade and will be measured on:

       1. Successful execution using test cases provided

Class design

Execution speed & size



       6. Documentation

       7. Stability/robustness

Final Presentation - Each group will demo their application and present design rationale

Course Evolution:

Programming Phase
Capital Markets - Fixed Income Overview

Market players, where are technology dollars spent?

Reading assignments, objectives of course

Set up development environment, build test case handler

Makefile header source
  Financial instruments

  Building blocks - date calculations

 Building the onion – start with simple, fast, testable utility libraries

Basic Fixed Income Products – the “bullet” bond

Yield to Maturity formula - Price/Yield

Yield-to-price calculator ytm_sheet.xls ytm_page.jpg SBB_io.h SBB_io.cc data.txt
Basic Fixed Income Products – the “bullet” bond (continued)

Yield to Maturity formula - Price/Yield continued

General YTM formula, coupon bearing and discount type (e.g., "Zero" or "STRIP") implementation NYU_class4.ppt ytm_sheet_closed_formula.xls SBB_io.h SBB_io.cc data.txt
Class design

Financial object oriented examples

Design classes to support a basic bond pricer NYU_class5.ppt
Measuring risk at the instrument level
Add sensitivity calculations, quality ratings

NYU_class6.ppt SBB_io.h SBB_io.cc data.txt SBB_bond.cc run.sh SBB_ratings.cc SBB_ratings.h
Market Benchmarks, the “yield curve”

Build a yield curve object
Credit Risk, risk ratings, probability of/loss given default

Build Expected Loss calculator

NYU_class8.ppt SBB_ratings.h SBB_ratings.cc
Relative pricing using the yield curve

Price book of bonds using either spread or yield
yieldcurve.txt NYU_class9.ppt midterm.txt results.txt
Collections – portfolios, books, hierarchies

Use previously built objects to calculate day-over-day changes, and aggregate book measures. Requirements for GUI. lecture10.xls NYU_class10.ppt
Risk management methodologies

Risk Management categories: market, credit, operational risk

Use portfolio class to provide summary measures - reporting examples

yieldcurve.txt data_spread_or_yield.txt NYU_class11.ppt SBB_io.h SBB_io.cc SBB_ratings.h SBB_ratings.cc
Market Risk measurement

PnL  attribution, Value at Risk (VaR), Stress Testing, Notional exposure .

Requirements clarification for client side risk reporting

Client-side / server-side

projects continued
day_1.txt day_2.txt yieldcurve.txtt lecture_equity_RG.ppt
 Project Presentations

 Project Presentations

  Guest Lectures:

         Case Study: Day-in-the-life of a front-line technologist on a trading desk

         Case Study: Credit derivatives

         Case Study: Computing and reporting risk in a tech group on Wall St