Python for Finance [2nd ed] 9781787125025, 1787125025

Learn and implement various Quantitative Finance concepts using the popular Python librariesAbout This Book* Understand

3,625 1,015 21MB

English Pages 586 Year 2017

Report DMCA / Copyright

DOWNLOAD FILE

Python for Finance [2nd ed]
 9781787125025, 1787125025

Table of contents :
Content: Cover --
Copyright --
Credits --
About the Author --
About the Reviewers --
www.PacktPub.com --
Customer Feedback --
Table of Contents --
Preface --
Chapter 1: Python Basics --
Python installation --
Installation of Python via Anaconda --
Launching Python via Spyder --
Direct installation of Python --
Variable assignment, empty space, and writing our own programs --
Writing a Python function --
Python loops --
Python loops, if...else conditions --
Data input --
Data manipulation --
Data output --
Exercises --
Summary --
Chapter 2: Introduction to Python Modules --
What is a Python module? --
Introduction to NumPy --
Introduction to SciPy --
Introduction to matplotlib --
How to install matplotlib --
Several graphical presentations using 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 --
Chapter 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 calculator written in Python --
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 --
Chapter 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 --
Chapter 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 --
Chapter 6: Capital Asset Pricing Model --
Introduction to CAPM --
Moving beta --
Adjusted beta --
Scholes and William adjusted beta --
Extracting output data --
Outputting data to text files --
Saving our data to a .csv file --
Saving our data to an Excel file --
Saving our data to a pickle dataset --
Saving our data to a binary file --
Reading data from a binary file --
Simple string manipulation. Python via Canopy --
References --
Exercises --
Summary --
Chapter 7: Multifactor Models and Performance Measures --
Introduction to the Fama-French three-factor model --
Fama-French three-factor model --
Fama-French-Carhart four-factor model and Fama-French five-factor model --
Implementation of Dimson (1979) adjustment for beta --
Performance measures --
How to merge different datasets --
Appendix A --
list of related Python datasets --
Appendix B --
Python program to generate ffMonthly.pkl --
Appendix C --
Python program for Sharpe ratio --
Appendix D --
data case #4 --
which model is the best, CAPM, FF3, FFC4, or FF5, or others? --
References --
Exercises --
Summary --
Chapter 8: Time-Series Analysis --
Introduction to time-series analysis --
Merging datasets based on a date variable --
Using pandas.date_range() to generate one dimensional time-series --
Return estimation --
Converting daily returns to monthly ones --
Merging datasets by date --
Understanding the interpolation technique --
Merging data with different frequencies --
Tests of normality --
Estimating fat tails --
T-test and F-test --
Tests of equal variances --
Testing the January effect --
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 --
Appendix A --
Python program to generate GDP dataset usGDPquarterly2.pkl --
Appendix B --
critical values of F for the 0.05 significance level --
Appendix C --
data case #4 --
which political party manages the economy better? --
Exercises --
Summary --
Chapter 9: Portfolio Theory --
Introduction to portfolio theory --
A 2-stock portfolio --
Optimization --
minimization. Forming an n-stock portfolio --
Constructing an optimal portfolio --
Constructing an efficient frontier with n stocks --
References --
Appendix A --
data case #5 --
which industry portfolio do you prefer? --
Appendix B --
data case #6 --
replicate S&P500 monthly returns --
Exercises --
Summary --
Chapter 10: Options and Futures --
Introducing futures --
Payoff and profit/loss functions for call and put options --
European versus American options --
Understanding cash flows, types of options, rights and obligations --
Black-Scholes-Merton option model on non-dividend paying stocks --
Generating our own module p4f --
European options with known dividends --
Various trading strategies --
Covered-call --
long a stock and short a call --
Straddle --
buy a call and a put with the same exercise prices --
Butterfly with calls --
The relationship between input values and option values --
Greeks --
Put-call parity and its graphic presentation --
The put-call ratio for a short period with a trend --
Binomial tree and its graphic presentation --
Binomial tree (CRR) method for European options --
Binomial tree (CRR) method for American options --
Hedging strategies --
Implied volatility --
Binary-search --
Retrieving option data from Yahoo! Finance --
Volatility smile and skewness --
References --
Appendix A --
data case 6: portfolio insurance --
Exercises --
Summary --
Chapter 11: Value at Risk --
Introduction to VaR --
Normality tests --
Skewness and kurtosis --
Modified VaR --
VaR based on sorted historical returns --
Simulation and VaR --
VaR for portfolios --
Backtesting and stress testing --
Expected shortfall --
Appendix A --
data case 7 --
VaR estimation for individual stocks and a portfolio --
References --
Exercises --
Summary --
Chapter 12: Monte Carlo Simulation --
Importance of Monte Carlo Simulation. Generating random numbers from a standard normal distribution --
Drawing random samples from a normal distribution --
Generating random numbers with a seed --
Random numbers from a normal distribution --
Histogram for a normal distribution --
Graphical presentation of a lognormal distribution --
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 --
Exotic option #1 --
using the Monte Carlo Simulation to price average --
Exotic option #2 --
pricing barrier options using the Monte Carlo 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 --
Appendix A --
data case #8 --
Monte Carlo Simulation and blackjack --
References --
Exercises --
Summary --
Chapter 13: Credit Risk Analysis --
Introduction to credit risk analysis --
Credit rating --
Credit spread --
YIELD of AAA-rated bond, Altman Z-score --
Using the KMV model to estimate the market value of total assets and its volatility --
Term structure of interest rate --
Distance to default --
Credit default swap --
Appendix A --
data case #8 --
predicting bankruptcy by using Z-score --
References --
Exercises --
Summary --
Chapter 14: Exotic Options.

Polecaj historie