170 likes | 296 Views
Finance Software Projects. New York U niversity Adjunct Instructor Scott Burton. FSP Introduction. Professor Bio Plan for Semester First half: I ndividual submissions weekly B uild foundational components 1 quiz Second half: F orm 2 person teams B uild a risk management app
E N D
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