Finance Software Projects
Join Scott Burton, an adjunct instructor at NYU, in an innovative course that combines financial engineering with software development. The semester is divided into two halves: the first focuses on individual programming submissions and foundational components, while the second emphasizes team collaboration to create a risk management application. Students will engage in quizzes to assess their knowledge, and end with presentations of their final projects. Expect to learn essential principles of financial engineering, including time value of money, negotiability, and contingent claims, all while honing your software skills.
Finance Software Projects
E N D
Presentation Transcript
Finance Software Projects New York University Adjunct Instructor Scott Burton
FSP Introduction • Professor Bio • Plan for Semester • First half: • Individual submissions weekly • Build foundational components • 1 quiz • Second half: • Form 2 person teams • Build a risk management app • Presentation/demo at the end • Periodic quizes to check your programs and domain knowledge • Programming phases evolving to final product • Each team votes for best product and presentation
FSP Introduction (cont) • Class Objectives • Software Development! • Organization • Extensibility • Testability • Clarity • Speed • Size • ? • Rigor around regression testing! • Implement living specs provided as spreadsheets • Teacher Objectives • Student Objectives
FSP Introduction (cont) • Grading: • Weekly programming phases • 3 tests • Presentation of final app • Class participation • Attending all classes will help your grade • Missing more than two classes will hurt your grade
Financial engineering is built on 3 basic principles “Put a financial engineer on a desert island and give him only a few tools, such as the means to calculate the time value of money, the ability to contract on random outcomes, and a legal structure that allows the transferability of financial claims, and most of today’s financial instruments could be re-constructed.” “Origins of Value”
Financial engineering is built on 3 basic principles… “Time Is Money” “Inter-temporal value transfer” Otherwise known as a Loan… “Negotiability” Suppose you have loaned someone money for a year. Now you need the cash. You could become a borrower yourself OR you could sell the contract to another person. It saves the trouble of a second contract and creates instance money “Contingent Claims” Allows people to hedge themselves against the risk of an unknown future…
HasMoney Needs Money Capital Raising • Borrows money • Issues a bond • Financial firms facilitate • Charge fee • Wants a return (yield) • Buys a bond • Owns a security • Can sell security later
Securitization “Turns cumbersome, illiquid financial contracts with governments or other entities (e.g., corporations) into liquid instruments of a smaller denomination that can be easily bought and sold in a capital market.”
Pricing function for a financial instrument To value a financial instrument and facilitate making them transferable we need a standard formula to price them. Allows us to calculate the price of a bond given the interest it is contracted to pay and takes into account the current prevailing market (interest rate you could get elsewhere for a similar instrument). Allows us to calculate sensitivities and hedge For a bond it’s the “Yield To Maturity” formula.
For Next Week • Set up UNIX dev environment on your laptop • From the command line: • Hello World in C++ • Write a Makefile • Run your executable from shell script “run.sh”
Time Value of Money The present value (PV) formula has four variables each of which can be solved for: PV is the value at time=0 FV is the value at time=n i is the rate at which the amount will be compounded each period (in decimal) n is the number of periods The cumulative present value of future cash flows can be calculated by summing the contributions of FVt, the value of cash flow at time=t M - “Maturity” (amount loaned) C - “Coupon” (return on loan) i - “Prevailing” interest rate
Yield to Maturity Equation - Closed Form (started with a geometric series…) Calculate price of bond with par value of $1,000 to be paid in 10 years, a coupon of 10% and YTM of 12%. Assume coupons are paid semi-annually to bond holders: Determine number of coupon payments (2 per year for 10 years = 20) Determine value of each coupon payment (divide coupon in half since semi-annual). Each payment will be $50 ($1000 * 0.05). Determine the semi-annual yield: Like the coupon rate, the YTM of 12% must be divided by 2.
YTM - Frequency Parameterized Accounting for different payment frequencies: Most bonds pay semi-annually but to make our formula more general we extend formula with parameter “F” below. if a bond was paying annual coupons F = 1, quarterly = 4 What is implemented spreadsheet living spec…
See spreadsheet living spec Yield Goes up/price goes down Standard sensitivity calculation
Capital markets terminology Primary / Secondary Sell-side / Buy-side Long / Short Relative Pricing Risk Transfer Proprietary / Flow Trading Exchange traded / Over the Counter Securitization
Class Example Debt Issuance Buy a Bond Transact on Secondary Market Short