CSCI-GA.3033-003

Scott Burton

Financial Software Projects

Graduate Division - Computer Science

Tuesday 7:10-9:00  WWH Room WWH 3



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.

Pre-requisites:
   
   
It is assumed that the students can code in C++ or C for the server side. Students can choose the language/framework for the client side.

    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 (this is the only text students will need to purchase)

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

    Handouts




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

       2.
Class design

       3.
Execution speed & size

       4.
Testability

       5.
Simplicity

       6. Documentation

       7. Stability/robustness

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




Course Evolution:





Week
Topic
Programming Phase
Materials
2 (9/14)
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

NYU_class2.ppt makefile SBB_util.h SBB_util.cc
3
  Financial instruments

  Building blocks

Yield-to-price calculator ytm_sheet.xls ytm_sheet_closed_formula.xls NYU_class3.ppt SBB_io.h SBB_io.cc data.txt SBB_date.h SBB_date.cc
4
Basic Fixed Income Products – the “bullet” bond

Yield to Maturity formula - Price/Yield

General YTM formula, coupon bearing and discount type (e.g., "Zero" or "STRIP") implementation NYU_class4.ppt NYU_class5.ppt tradingbook.txt yieldcurve.txt run.sh
5
Basic Fixed Income Products – the “bullet” bond (continued)

Yield to Maturity formula - Price/Yield continued
Pricing off our yield curve. Performing scenarios by shocking our yield curve, credit ratings.  Building the onion – start with simple, fast, separately testable classes libraries
Mid-term submission specification NYU_class6.ppt SBB_ratings.h SBB_ratings.cc
6
Pricing off our yield curve. Performing scenarios by shocking our yield curve, credit ratings.
Columbus Day - 10/11
tradingbook.txt code_example.cc
7
Risk Types Review. Historical VaR, Stress Testing, Questions a Risk Manager might ask...

Financial object oriented examples

mid term submission - expected output: results.txt tradingbook.txt NYU_class7.ppt results.txt tradingbook.txt
8
GUI requirements
NYU_class8.ppt socket.tar GUIrequirements_V1.xls
9
Requirements of Final Project continued. Sserver side enhancements
SBB_lecture9.ppt finalGUI_reqsV2.xls SBB_util.cc SBB_util.h
10
Variations of VaR. Total Market Risk Framework, server-side recovery - SERVER SUBMISSION 1 of 2
Server submission 1 of 2 due
Server Recovery
SBB_lecture9.ppt - (lecture 9 cont)...

var_example_with_full_pricing.xls var_example.xls

11
Attribution of VaR risk factors ...

Server-side (2 of 2) submission specification

NYU_class11.ppt

SBB_0011.txt SBB_0012.txt README

tradingbook_opening.txt tradingbook_closing.txt
12
Risk management methodologies - how we apply what we built to total risk

Drill down on historical VaR application and implementation. - IO .h/.cc files to be used to load historical data file (SBB_0001.txt)

var_living_spec.xls hist_files.tar
Quiz 3 of 3 (Nov 22)
13
Market Risk measurement

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

Review of VaR methodolgy focusing on VaR attribution - Interest Rate vs Credit Spread

Server submission 2 of 2 - grade total Amount and LGD change only - grade VaR (total, ir and cs) submitted next week (nov 29)

pnl_vector_logfile.txt spread_case_logfile.txt

Results detail for 1 security (SBB_0011) to check the pnl vector calculation. There is one row per day with intermediate results showing the daily pnl calculation...
14 Summary of Risk Management Principles and how our app helps us measure and manage risk
FINALfinalGUI_reqs.xls
 
Visualization of risk. Server side submission to check numbers. Final (GUI demo) next week!

  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