Book description
Learn and implement various Quantitative Finance concepts using the popular Python libraries
About This Book
Understand the fundamentals of Python data structures and work with time-series data
Implement key concepts in quantitative finance using popular Python libraries such as NumPy, SciPy, and matplotlib
A step-by-step tutorial packed with many Python programs that will help you learn how to apply Python to finance
Who This Book Is For
This book assumes that the readers have some basic knowledge related to Python. However, he/she has no knowledge of quantitative finance. In addition, he/she has no knowledge about financial data.
What You Will Learn
Become acquainted with Python in the first two chapters
Run CAPM, Fama-French 3-factor, and Fama-French-Carhart 4-factor models
Learn how to price a call, put, and several exotic options
Understand Monte Carlo simulation, how to write a Python program to replicate the Black-Scholes-Merton options model, and how to price a few exotic options
Understand the concept of volatility and how to test the hypothesis that volatility changes over the years
Understand the ARCH and GARCH processes and how to write related Python programs
In Detail
This book uses Python as its computational tool. Since Python is free, any school or organization can download and use it.
This book is organized according to various finance subjects. In other words, the first edition focuses more on Python, while the second edition is truly trying to apply Python to finance.
The book starts by explaining topics exclusively related to Python. Then we deal with critical parts of Python, explaining concepts such as time value of money stock and bond evaluations, capital asset pricing model, multi-factor models, time series analysis, portfolio theory, options and futures.
This book will help us to learn or review the basics of quantitative finance and apply Python to solve various problems, such as estimating IBM’s market risk, running a Fama-French 3-factor, 5-factor, or Fama-French-Carhart 4 factor model, estimating the VaR of a 5-stock portfolio, estimating the optimal portfolio, and constructing the efficient frontier for a 20-stock portfolio with real-world stock, and with Monte Carlo Simulation. Later, we will also learn how to replicate the famous Black-Scholes-Merton option model and how to price exotic options such as the average price call option.
Style and approach
This book takes a step-by-step approach in explaining the libraries and modules in Python, and how they can be used to implement various aspects of quantitative finance. Each concept is explained in depth and supplemented with code examples for better understanding.
Table of contents
-
Python for Finance Second Edition
- Table of Contents
- Python for Finance Second Edition
- Credits
- About the Author
- About the Reviewers
- www.PacktPub.com
- Customer Feedback
- Preface
- 1. Python Basics
-
2. Introduction to Python Modules
- What is a Python module?
- Introduction to NumPy
- Introduction to SciPy
- Introduction to matplotlib
- Introduction to statsmodels
- Introduction to pandas
- Python modules related to finance
- Introduction to the pandas_reader module
- Two financial calculators
- How to install a Python module
- Module dependency
- Exercises
- Summary
-
3. Time Value of Money
- Introduction to time value of money
- Writing a financial calculator in Python
- Definition of NPV and NPV rule
- Definition of IRR and IRR rule
- Definition of payback period and payback period rule
- Writing your own financial calculator in Python
-
Two general formulae for many functions
- Appendix A – Installation of Python, NumPy, and SciPy
- Appendix B – visual presentation of time value of money
- Appendix C – Derivation of present value of annuity from present value of one future cash flow and present value of perpetuity
- Appendix D – How to download a free financial calculat
- Appendix E – The graphical presentation of the relationship between NPV and R
- Appendix F – graphical presentation of NPV profile with two IRRs
- Appendix G – Writing your own financial calculator in Python
- Exercises
- Summary
-
4. Sources of Data
-
Diving into deeper concepts
- Retrieving data from Yahoo!Finance
- Retrieving data from Google Finance
- Retrieving data from FRED
- Retrieving data from Prof. French's data library
- Retrieving data from the Census Bureau, Treasury, and BLS
- Generating two dozen datasets
-
Several datasets related to CRSP and Compustat
- Appendix A – Python program for return distribution versus a normal distribution
- Appendix B – Python program to a draw candle-stick picture
- Appendix C – Python program for price movement
- Appendix D – Python program to show a picture of a stock's intra-day movement
- Appendix E –properties for a pandas DataFrame
- Appendix F –how to generate a Python dataset with an extension of .pkl or .pickle
- Appendix G – data case #1 -generating several Python datasets
- Exercises
- Summary
-
Diving into deeper concepts
-
5. Bond and Stock Valuation
- Introduction to interest rates
- Term structure of interest rates
- Bond evaluation
- Stock valuation
-
A new data type – dictionary
- Appendix A – simple interest rate versus compounding interest rate
- Appendix B – several Python functions related to interest conversion
- Appendix C – Python program for rateYan.py
- Appendix D – Python program to estimate stock price based on an n-period model
- Appendix E – Python program to estimate the duration for a bond
- Appendix F – data case #2 – fund raised from a new bond issue
- Summary
- 6. Capital Asset Pricing Model
- 7. Multifactor Models and Performance Measures
-
8. Time-Series Analysis
- Introduction to time-series analysis
- Merging datasets based on a date variable
- Understanding the interpolation technique
- Tests of normality
- 52-week high and low trading strategy
- Estimating Roll's spread
- Estimating Amihud's illiquidity
- Estimating Pastor and Stambaugh (2003) liquidity measure
- Fama-MacBeth regression
- Durbin-Watson
- Python for high-frequency data
- Spread estimated based on high-frequency data
- Introduction to CRSP
- References
- Exercises
- Summary
- 9. Portfolio Theory
-
10. Options and Futures
- Introducing futures
- Payoff and profit/loss functions for call and put options
- European versus American options
- Black-Scholes-Merton option model on non-dividend paying stocks
- Generating our own module p4f
- European options with known dividends
- Various trading strategies
- Put-call parity and its graphic presentation
- Binomial tree and its graphic presentation
- Hedging strategies
- Implied volatility
- Binary-search
- Retrieving option data from Yahoo! Finance
- Volatility smile and skewness
- References
- Exercises
- Summary
- 11. Value at Risk
-
12. Monte Carlo Simulation
- Importance of Monte Carlo Simulation
- Generating random numbers from a standard normal distribution
- Generating random numbers with a seed
- Generating random numbers from a uniform distribution
- Using simulation to estimate the pi value
- Generating random numbers from a Poisson distribution
- Selecting m stocks randomly from n given stocks
- With/without replacements
- Distribution of annual returns
- Simulation of stock price movements
- Graphical presentation of stock prices at options' maturity dates
- Replicating a Black-Scholes-Merton call using simulation
- Liking two methods for VaR using simulation
- Capital budgeting with Monte Carlo Simulation
- Python SimPy module
- Comparison between two social policies – basic income and basic job
- Finding an efficient frontier based on two stocks by using simulation
- Constructing an efficient frontier with n stocks
- Long-term return forecasting
- Efficiency, Quasi-Monte Carlo, and Sobol sequences
- References
- Exercises
- Summary
- 13. Credit Risk Analysis
- 14. Exotic Options
-
15. Volatility, Implied Volatility, ARCH, and GARCH
- Conventional volatility measure – standard deviation
- Tests of normality
- Estimating fat tails
- Lower partial standard deviation and Sortino ratio
- Test of equivalency of volatility over two periods
- Test of heteroskedasticity, Breusch, and Pagan
- Volatility smile and skewness
- Graphical presentation of volatility clustering
- The ARCH model
- Simulating an ARCH (1) process
- The GARCH model
- Simulating a GARCH process
- Simulating a GARCH (p,q) process using modified garchSim()
- GJR_GARCH by Glosten, Jagannanthan, and Runkle
- References
- Exercises
- Summary
- Index
Product information
- Title: Python for Finance - Second Edition
- Author(s):
- Release date: June 2017
- Publisher(s): Packt Publishing
- ISBN: 9781787125698
You might also like
book
Python for Finance, 2nd Edition
The financial industry has recently adopted Python at a tremendous rate, with some of the largest …
book
Mastering Python for Finance - Second Edition
Take your financial skills to the next level by mastering cutting-edge mathematical and statistical financial applications …
book
Python for Finance Cookbook - Second Edition
Use modern Python libraries such as pandas, NumPy, and scikit-learn and popular machine learning and deep …
book
Python for Data Analysis, 3rd Edition
Get the definitive handbook for manipulating, processing, cleaning, and crunching datasets in Python. Updated for Python …