22:839:510 COURSE TITLE: Numerical Analysis
Total Page:16
File Type:pdf, Size:1020Kb
Quantitative Finance COURSE NUMBER: 22:839:510 COURSE TITLE: Numerical Analysis COURSE DESCRIPTION Modern financial quantitative analysts play an essential role in an increasingly digital economy. This course is intended to help student to acquire numerical analytical skills key to their success and functional in modern economy. The students are to become familiar with such numerical methods as decision methods, binomial and trinomial trees, Monte Carlo simulation, Finite difference, and curve construction. They are to learn to apply the results to forecasting, including asset pricing, hedging, portfolio and risk assessment, investment strategies, and other financial problems, covering asset classes including equity, fixed income and derivatives. Students are situated with technology innovation history as well as the enterprise technology infrastructure environment, so that they can successful lead production from conception to implementation. Students must have a strong mathematical background and be familiar with C++ programming language. COURSE MATERIALS Textbook Required Implementing Derivatives Models, Les Clewlow and Chris Strickland Options, futures, and other derivatives, John Hull, 8th edition Textbook recommended Modeling Derivatives in C++, Justin London Computational Finance Using C and C#, George Levy Financial Instrument Pricing Using C, Daniel Duffy Monte Carlo Methods in Financial Engineering, Paul Glassman CLASS ORGANIZATION & ADMINISTRATION HW1: Future-Vision-Technology By reading a visionary book, futuristic articles, or watching a mindbending movie (WALL-E for example), please write a one-page report articulating your vision of the future of finance and technology in the digital economy. Please 1) Emphasis the beneficial interaction between man and machine (technology); 2) describe finance as keep factor enabling technological advance 3) make a bold prediction that will surprise even yourself; HW2: R - Market Data Download R, and install R in your system. Write R program to download data from Yahoo (or Google) Finance. Download one historical price data for GOOG, and write an R program to calculate historical volatility using 1 year worth of historical pricing data. Demonstrate your familiarity with R HW3: QuantLib Download QuantLib, and install QuantLib in your system. Demonstrate your success in installation of Quantlib Show your success by calculating option price using Black Scholes Calculator, with strike price 100, at the money, risk free rate 0.25%, volatility 20%, no dividend, 1 year call option. HW4: Binomial Tree Consider American put option with same parameters as in HW3, except the stock price is $90 (not at the money) Implementing one of the four (CRR, JR, TRG, EQP) binomial methods we discussed in class, write your own code for binomial tree using C++ or R. Test your code with benchmark results obtained using Quantlib by calling matching methods in QuantLib. If you coded correctly, your results and the benchmark results should be exactly the same. If the results are different, correct the error in your code, so that it matches benchmark results. HW5: Trinomial Tree Finite Difference (explicit, implicit, or Crank Nicolson). Choose one of the three methods, write your own code for finite difference using C++ or R. Test your code with benchmark results obtained from QuantLib using an American call option with same parameters as in HW3, except the stock has a quarterly dividend 1% with first dividend in 1 month. Play with the number of steps (N) to demonstrate accuracy (error) with efficiency (time to completion) tradeoff. HW6: Monte Carlo Simulation Choose one of the Monte Carlo methods, write your own code for Monte Carlo Simulation using C++ or R. Test your code with benchmark results obtained from QuantLib using a European call option with same parameters as in HW3. Write a paragraph comparing the advantages and disadvantages of the 4 different numerical methods (Analytical, Binomial, FD, MC) learned thus far (HW3-6). HW7: Mobile-App-Profile Download Mobile-App SDK (Android or iOS), and install the software on your mobile phone. You can either following the tutorial, or watching a youtube tutorial to start build your first mobile app. Build a personal profile App by using text, voice, pictures, video, or a combination of the above. Write a report regarding your mobile-app experience and be prepared to demo your app in class. HW8: OpenCL - bond yield calculator Download OpenCL on your desktop (or notebook), following an OpenCL tutorial and build a test application calculating bond yield. A bond with maturity 10 year, 4% coupon, semi-annual payments, with market price $102. Find the yield by taking 1000 equally spaced sample of yield between 3-4%. The yield to maturity is the sample that minimizes the error. Group Project: (40% of the total grade) Number of students in a group is between 3 (minimum) and 5 (maximum). You are asked to build a numerical analytical application in an open platform or using open source. Successful modern corporation mostly all have open platform you can download to start build your application. Open source software is a good place to start when building your numerical analytical application. Based on existing resources, your project should do at least one thing that is innovative. Try your best to include at least one stochastic variable in your project. Examples of Innovative Ideas: 1. You can turn a conventional application into a mobile application; 2. You can improve a conventional application with new computational technology (e.g., parallel programming to speed up application); 3. You can turn a conventional application into a low latency application in optimized C/Linux environment - cloud computing; 4. You can apply your resources in solving a new problem, etc Group Project Report Group Formation: ● Groups are formed with gender and nationality diversity into consideration. ● Form the group as if you are starting a new business venture with a name of the corporation ● Start WeChat group for your company to communicate ideas and to coordinate group activities Group Project Report: ● For the open source project X you are working on, research “How can I contribute to X”. Try your best to contribute your project to the corresponding open source project organization. ● Groups succeed in open source submission will automatically get full grade (40 points) for the group project ● Write your group project report to include the following standard sections: 1) introduction; 2) methods; 3) results; 4) discussion. Individual Project Report ● You are to write an individual project report to describe your learning experience not included in the group project report. ● You may attach the group project report in the appendix of your individual report. ● Discuss the group dynamics, and intended roles for member in a project. ● Discuss member contribution by assign percentage of contribution to individual member (total not to exceed 100 including your own contribution). ● Finally, discuss why it is important to work in a group, and how to improve group effectiveness. Project Ideas ● Managing money market fund in internet finance ● Mining Bitcoin ● R- finance package ● Quantlib additions ● Numerical packages in App-store, Play-store ● Optimizing Quantlib for speed in linux, cloud computing ● OpenCL projects Curriculum Breadth vs Depth ● 书以杂读 ● 业以精钻 ● Study broadly ● Career be focused ● 读万卷书 ● 行万里路 ● Read 10 thousands 梁启超(1873-1929) books Liang Qichao ● Walk 10 thousands miles Influential Thinker 9 Successful Children 2 Steve Jobs - Connecting the Dots ● Creativity is just connecting the dots. When you ask creative people how they did something, they feel guilty because they didn't really do it, they just saw something, it seemed obvious after a while. That is because they were able to connect experiences they've had and synthesize new things. ● You can't connect the dots looking forward; you can only connect them looking backward. So you have to trust that the dots will somehow connect in your future FINAL GRADE ASSIGMENT Class participation: 4% Homework (8@7pt) 56 % Group Project 40 % 3 Quantitative Finance (22:839:510) COURSE SCHEDULE 1. Six waves of information technology revolution: an historical journey to cloud computing – Future-Vision-Technology (HW1) 2. Basics of numerical analysis and review of numerical procedures (Hull20) – R - Market Data (HW2) 3. Building blocks of the Wall Street quant’s toolset (ClelowCh1) – QuantLib (HW3) 4. Binomial trees: Methods and implementation (ClelowChp2) – Bi-Tree (HW4) 5. Finite difference methods for PDE/SDE (ClelowCh3) – Trinomial (HW5) 6. Monte Carlo simulation: Principles and methods (ClelowChp4) – MC (HW6) 7. Internet Finance and financial community, XML – Mobile-App-Profile (HW7) 8. Advancement in computational components technologies: achieving ultra low latency and solving the high complexity problems – OpenCL -bond yield calculator (HW8) 9. Advanced Monte Carlo Methods 10. Advanced Trees, FIX Protocol 11. Quantlib Functionalities: Yield curve and volatility curve construction 12. Value at Risk application (HullCh21) 13. Credit risk application (HullCh23) 14. Course Review and Project Presentation 4 .