CSCI-GA.2180-001

Financial Software Projects - Fall 2014

Graduate Division Computer Science

Scott Burton (burton@cs.nyu.edu)

Monday 7:10pm - 9:00pm 

Room: CIWW 512

Office Hours: 6:15pm-7:10pm before class in CIWW 328 (adjunct office)



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:

    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 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 formal 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 50% of the grade.

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

       1. Accuracy

       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
1
Sep 8
Capital Markets - Fixed Income Overview
Market players, where are technology dollars spent?
Set up development environment
FSP_intro FSP_investment_bank_structure makefile
SBB_util.h
SBB_util.cc
2
 Financial instruments

Building blocks
Implement yield-to-price calculator using slide 2 of NYU_class3.ppt as spec. ! ytm_sheet_closed_formula.xls NYU_class3.ppt SBB_io.h SBB_io.cc SBB_date.h SBB_date.cc
data.txt
3
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 ytm_sheet.xls run.sh
tradingbook.txt
4
Sep 29
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.

Quiz on chapters 1-6 of Mythical Man-Month
 Building the onion – start with simple, fast, separately testable classes libraries
NYU_class5.ppt
yieldcurve.txt tradingbook_with_spread.txt
5

Credit Risk Mid-term submission specification
NYU_class6.ppt
code_example.cc
SBB_ratings.h
SBB_ratings.cc
tradingbook.txt
6
Risk Types, Historical VaR, Stress Testing, Questions a Risk Manager might ask...

Expected output - example formats

Serverize our executable
NYU_class7.ppt
NYU_class8.ppt
GUIrequirements_V1.xls

results.txt
tradingbook.txt

socket.tar
SBB_util.cc
SBB_util.h
7
Mid Term Submission Oct 27
Mid-term submission
midterm_results.txt

midterm_book_answers.txt

midterm_curve.txt
8
Requirements Final Project continued. Enhancements
Risk by Maturity Bucket
Drill-down on VaR

SBB_lecture9.ppt
finalGUI_reqsV2.xls
9
Variations of VaR. Total Market Risk Framework, server-side recovery
Server submission (1 of 2) DUE

Submitted individually
Quiz 2 of 3 MMM
Ch 7-12

Review lecture 8, 9:
- VaR methodology
- Trading book intra-day change

var_example.xls

Implement VaR calculation using example spreadsheet as guide

- Calc "1 day 75% VaR"
- For "SBB_0001"
- from "midterm_book_answers.txt"
- Create 5 historical data-points (for 4 PnLs)

We will implement a means to identify how much VaR has changed due to different risk factors in next programming phase...
10
Attribution of VaR risk factors ...
NYU_class11.ppt
Quiz 3 of 3 - MMM
Ch 13-17

SBB_0011.txt SBB_0012.txt
README
tradingbook_opening.txt tradingbook_closing.txt
11
Risk management methodologies - how we apply what we built to total risk
LGD and total VaR change start-of-day to end-of-day.
Spreadsheet spec uses dv01 approx for pricing.
You will have to do full pricing!

var_living_spec.xls
hist_files.tar
Walk through example code for doing VaR attribution
12

(Dec 2)
Market Risk measurement

PnL  attribution, Value at Risk (VaR), Stress Testing, Notional exposure
DUE:
Server submission 2 of 2:
Server to return:
Total VaR and LGD change for the day

pnl_vector_logfile.txt spread_case_logfile.txt

13 Summary of Risk Management Principles and how our app helps us measure and manage risk
 
NYU_final_notes.ppt
FINALfinalGUI_reqs.xls
 
Team presentation - Final (GUI demo) final_files.tar.Z
14

(Dec 16)

Final Presentations

  Guest Lectures:


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

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