Principles of Financial Computing Course
Principles of Financial Computing
Time: 9:10 ~ 12:10 Wednesday (Spring Semester)
Location: Room 105 of the CSIE Building
On Wall Street, being right on the fundamentals and
wrong on the timing is the same as just being wrong.
---Jonathan Cohen
Where is the risk management at J.P. Morgan Chase?
--- Bloomberg News, January 16, 2002
10. Of course, I make a lot investing.
I only teach
so I can help young people.
--- Top Ten Lies Finance Professors Tell Their Students
- References
- F. J. Fabozzi and Steven V. Mann (Ed.),
The Handbook of Fixed Income Securities. 8th ed.
Irwin, 2012.
-
J. C. Hull,
Options, Futures, and Other Derivatives. 9th ed. Prentice-Hall, 2014.
- R. Jarrow
and S. Turnbull,
Derivative Securities.
2nd ed.
South-Western, 1999.
- S. N. Neftci, Principles of Financial Engineering. 2nd ed.
Academic Press, 2008.
- P.
Ritchken,
Derivative Markets: Theory, Strategy, and Applications.
HarperCollins, 1996.
- S. M. Sundaresan,
Fixed Income Markets and Their Derivatives. 3rd ed.
Academic Press, 2009.
- Internet Resources
- Teaching Assistant(s)
- Software
To Students,
You will learn a perhaps different perspective on finance,
especially as it pertains to pricing and software engineering.
Our emphasis on computation should add a new dimension and
toolbox to your existing knowledge and financial sense.
(But see Enrollments below.)
It is your
responsibility to learn to write in high-level programming
languages. We cannot impart that skill in the class.
If the mathematics proves hard going, you are expected to
fill in the gap by self-reading. The technicalities are not
beyond a motivated graduate student's reach.
The major topics covered in the course, time permitting, are listed
below for your reference.
- Time value of money
- Bonds, mortgages, and annuities
- Duration, convexity, and
immunization
- Yield curve,
forward rate, and spot rate
- Option pricing theory
and its wide-ranging applications
- Black-Scholes analysis
- binomial option pricing model (BOPM)
- Futures,
forwards, and other derivatives
- The combinatorics of random walks
-
Martingale,
Brownian motion,
stochastic calculus, and
Ito integral
- Risk-neutral valuation
- Risk management
- Fixed-income securities with embedded options
and interest rate derivatives
- Mortgage-backed securities (MBS)
- Numerical methods
- Monte Carlo methods
- Variance reduction (efficiency-improving) techniques
- Least-squares technique
- Quasi-Monte Carlo method
- Solving partial differential equations
- Yield curve fitting
- GARCH models
- Interest rate models and
calibration
-
2016.02.24
-
2016.03.02
-
2016.03.09
-
2016.03.16
-
2016.03.23
& 1st assignment due
-
2016.03.30
-
2016.04.06
-
2016.04.13
-
2016.04.20
-
2016.04.27
& 2nd assignment due
-
2016.05.04
-
2016.05.11
-
2016.05.18
-
2016.05.25
& 3rd assignment due
-
2016.06.01
-
2016.06.08
-
2016.06.15
-
2016.06.22
4th assignment due
Programming Exercises
Homework should be turned in on time. No late
homework will be accepted without legitimate reasons.
There will be four to six programming
assignments.
Treat each homework as an examination.
-
You are expected to write your own
codes and turn in your source code.
-
Do not copy or collaborate with fellow students.
-
Never ask your friends to write programs for you.
-
Never give your code to other students or publish your code because it may be copied
and you in turn may be suspected of copying other's code!
The graders will not attempt to sort out who the original coders are because we are not running a court here.
-
Do program carefully.
It is much more important to get the numbers right than to get a
pretty user interface running.
-
Write a program to calculate the modified duration and convexity of a cash flow. All numbers are period based for simplicity.
The settlement time can fall on any time between two cash flows as on p. 71 of the slides.
Inputs: (1) s (spot rates), (2) C (cash flow), (3) w (as defined in slides). Output: (1) modified duration and (2) convexity.
For example, assume s = [0.053, 0.051, 0.049, 0.047], C = [3, 2, 3, 102] and w = 0.3. Then the modified duration is 2.9981 and convexity is 12.1813.
Please send your source code, executable code, and a brief explanation file if necessary (e.g., how to run it?) using the CEIBA system (922 U0270) before 08:00 AM of March 23, 2016.
No late submissions will be accepted. Compress your files into a single file and name it StudentID_HW_1 for easy reference. Example: R91922054_HW_1.
Even if you need to make an appointment with 陸裕豪 for demonstration because of the unusual software you use, you still have to submit the files before the deadline.
-
Write a program to price American-style Asian single-barrier up-and-out calls based on the CRR binomial tree. The payoff of this call at expiration date is max(average - X, 0)
if the running average never touches or penetrates the barrier and 0 if otherwise. Note also that the call may be exercised at any time before the expiration date due to its American-style characteristic.
Inputs: S (stock price at time 0), X (strike price), H (barrier, which is higher than S), t (maturity in years), s (%) (annual volatility), r (%) (continuously compounded annual interest rate),
n (number of periods), and k (number of states per node). For example, when S = 100, X = 80, H = 130, t = 1 (years), s = 30%, r = 10%, n = 100, and k = 300, the price is about 25.6562.
Please send your source code, executable code, and a brief explanation file if necessary (e.g., how to run it?) using the CEIBA system (922 U0270) before 08:00 AM of April 27, 2016.
No late submissions will be accepted. Compress your files into a single file and name it StudentID_HW_2 for easy reference. Example: R91723054_HW_2.
Even if you need to make an appointment with 陸裕豪 for demonstration because of the unusual software you use, you still have to submit the files before the deadline.
-
Write a least-squares Monte Carlo program to price American puts. Output its price and standard error. Inputs: S (stock price at time 0), X (strike price), T (maturity in years), s (%) (annual volatility), r (%) (continuously compounded annual interest rate), n (number of periods), and k (number of simulation paths).
For example, when S = 101, X = 105, T = 1 (years), s = 15%, r = 2%, n = 50, and k = 100,000, the price is about 7.3642 and the standard error is about 0.0223.
Please send your source code, executable code, and a brief explanation file if necessary (e.g., how to run it?) using the CEIBA system (922 U0270) before 08:00 AM of May 25, 2016.
No late submissions will be accepted. Compress your files into a single file and name it StudentID_HW_3 for easy reference. Example: R91723054_HW_3.
Even if you need to make an appointment with 陸裕豪 for demonstration because of the unusual software you use, you still have to submit the files before the deadline.
-
Write a program to price an x-year American-style put option on a zero-coupon bond that matures at year y with a par value of 1 dollar. Use trees for the CIR model.
Inputs:
x (year), y (year), r (%) (initial short rate), b (%) and m (%),
s (%),
n (the number of steps during the option's life),
and strike price X (% of par).
For example, the option price is about 2.65173 (% of par) when
x = 1,
y = 2,
r = 4 (%),
b = 20 (%),
m = 4 (%),
s = 10 (%),
n = 30, and
X = 95 (%).
Please send your source code, executable code, and a brief explanation file if necessary (e.g., how to run it?) using the CEIBA system (922 U0270) before 08:00 AM of June 22, 2016.
Compress your files into a single file and name it StudentID_HW_4 for easy reference.
Example: R91723054_HW_4. Even if you need to make an appointment with 盧政良 for demonstration because of the unusual software you use, you still have to submit the files before the deadline.
Enrollments
-
Non-programmers will be strongly discouraged
as the probability of passing this course is slim,
if possible at all.
-
It is not impossible to pick up programming skills before
the first assignment.
-
Financial knowledge is a plus, but again it can be picked up if you are motivated.