Wiley.com
Print this page Share
E-book

Derivatives Analytics with Python: Data Analysis, Models, Simulation, Calibration and Hedging

ISBN: 978-1-119-03800-9
376 pages
June 2015
Derivatives Analytics with Python: Data Analysis, Models, Simulation, Calibration and Hedging (1119038006) cover image

Description

Supercharge options analytics and hedging using the power of Python

Derivatives Analytics with Python shows you how to implement market-consistent valuation and hedging approaches using advanced financial models, efficient numerical techniques, and the powerful capabilities of the Python programming language. This unique guide offers detailed explanations of all theory, methods, and processes, giving you the background and tools necessary to value stock index options from a sound foundation. You'll find and use self-contained Python scripts and modules and learn how to apply Python to advanced data and derivatives analytics as you benefit from the 5,000+ lines of code that are provided to help you reproduce the results and graphics presented. Coverage includes market data analysis, risk-neutral valuation, Monte Carlo simulation, model calibration, valuation, and dynamic hedging, with models that exhibit stochastic volatility, jump components, stochastic short rates, and more. The companion website features all code and IPython Notebooks for immediate execution and automation.

Python is gaining ground in the derivatives analytics space, allowing institutions to quickly and efficiently deliver portfolio, trading, and risk management results. This book is the finance professional's guide to exploiting Python's capabilities for efficient and performing derivatives analytics.

  • Reproduce major stylized facts of equity and options markets yourself
  • Apply Fourier transform techniques and advanced Monte Carlo pricing
  • Calibrate advanced option pricing models to market data
  • Integrate advanced models and numeric methods to dynamically hedge options

Recent developments in the Python ecosystem enable analysts to implement analytics tasks as performing as with C or C++, but using only about one-tenth of the code or even less. Derivatives Analytics with Python — Data Analysis, Models, Simulation, Calibration and Hedging shows you what you need to know to supercharge your derivatives and risk analytics efforts.

See More

Table of Contents

List of Tables xi

List of Figures xiii

Preface xvii

CHAPTER 1 A Quick Tour 1

1.1 Market-Based Valuation 1

1.2 Structure of the Book 2

1.3 Why Python? 3

1.4 Further Reading 4

PART ONE The Market

CHAPTER 2 What is Market-Based Valuation? 9

2.1 Options and their Value 9

2.2 Vanilla vs. Exotic Instruments 13

2.3 Risks Affecting Equity Derivatives 14

2.3.1 Market Risks 14

2.3.2 Other Risks 15

2.4 Hedging 16

2.5 Market-Based Valuation as a Process 17

CHAPTER 3 Market Stylized Facts 19

3.1 Introduction 19

3.2 Volatility, Correlation and Co. 19

3.3 Normal Returns as the Benchmark Case 21

3.4 Indices and Stocks 25

3.4.1 Stylized Facts 25

3.4.2 DAX Index Returns 26

3.5 Option Markets 30

3.5.1 Bid/Ask Spreads 31

3.5.2 Implied Volatility Surface 31

3.6 Short Rates 33

3.7 Conclusions 36

3.8 Python Scripts 37

3.8.1 GBM Analysis 37

3.8.2 DAX Analysis 40

3.8.3 BSM Implied Volatilities 41

3.8.4 EURO STOXX 50 Implied Volatilities 43

3.8.5 Euribor Analysis 45

PART TWO Theoretical Valuation

CHAPTER 4 Risk-Neutral Valuation 49

4.1 Introduction 49

4.2 Discrete-Time Uncertainty 50

4.3 Discrete Market Model 54

4.3.1 Primitives 54

4.3.2 Basic Definitions 55

4.4 Central Results in Discrete Time 57

4.5 Continuous-Time Case 61

4.6 Conclusions 66

4.7 Proofs 66

4.7.1 Proof of Lemma 1 66

4.7.2 Proof of Proposition 1 67

4.7.3 Proof of Theorem 1 68

CHAPTER 5 Complete Market Models 71

5.1 Introduction 71

5.2 Black-Scholes-Merton Model 72

5.2.1 Market Model 72

5.2.2 The Fundamental PDE 72

5.2.3 European Options 74

5.3 Greeks in the BSM Model 76

5.4 Cox-Ross-Rubinstein Model 81

5.5 Conclustions 84

5.6 Proofs and Python Scripts 84

5.6.1 Itˆo’s Lemma 84

5.6.2 Script for BSM Option Valuation 85

5.6.3 Script for BSM Call Greeks 88

5.6.4 Script for CRR Option Valuation 92

CHAPTER 6 Fourier-Based Option Pricing 95

6.1 Introduction 95

6.2 The Pricing Problem 96

6.3 Fourier Transforms 97

6.4 Fourier-Based Option Pricing 98

6.4.1 Lewis (2001) Approach 98

6.4.2 Carr-Madan (1999) Approach 101

6.5 Numerical Evaluation 103

6.5.1 Fourier Series 103

6.5.2 Fast Fourier Transform 105

6.6 Applications 107

6.6.1 Black-Scholes-Merton (1973) Model 107

6.6.2 Merton (1976) Model 108

6.6.3 Discrete Market Model 110

6.7 Conclusions 114

6.8 Python Scripts 114

6.8.1 BSM Call Valuation via Fourier Approach 114

6.8.2 Fourier Series 119

6.8.3 Roots of Unity 120

6.8.4 Convolution 121

6.8.5 Module with Parameters 122

6.8.6 Call Value by Convolution 123

6.8.7 Option Pricing by Convolution 123

6.8.8 Option Pricing by DFT 124

6.8.9 Speed Test of DFT 125

CHAPTER 7 Valuation of American Options by Simulation 127

7.1 Introduction 127

7.2 Financial Model 128

7.3 American Option Valuation 128

7.3.1 Problem Formulations 128

7.3.2 Valuation Algorithms 130

7.4 Numerical Results 132

7.4.1 American Put Option 132

7.4.2 American Short Condor Spread 135

7.5 Conclusions 136

7.6 Python Scripts 137

7.6.1 Binomial Valuation 137

7.6.2 Monte Carlo Valuation with LSM 139

7.6.3 Primal and Dual LSM Algorithms 140

PART THREE Market-Based Valuation

CHAPTER 8 A First Example of Market-Based Valuation 147

8.1 Introduction 147

8.2 Market Model 147

8.3 Valuation 148

8.4 Calibration 149

8.5 Simulation 149

8.6 Conclusions 155

8.7 Python Scripts 155

8.7.1 Valuation by Numerical Integration 155

8.7.2 Valuation by FFT 157

8.7.3 Calibration to Three Maturities 160

8.7.4 Calibration to Short Maturity 163

8.7.5 Valuation by MCS 165

CHAPTER 9 General Model Framework 169

9.1 Introduction 169

9.2 The Framework 169

9.3 Features of the Framework 170

9.4 Zero-Coupon Bond Valuation 172

9.5 European Option Valuation 173

9.5.1 PDE Approach 173

9.5.2 Transform Methods 175

9.5.3 Monte Carlo Simulation 176

9.6 Conclusions 177

9.7 Proofs and Python Scripts 177

9.7.1 Itˆo’s Lemma 177

9.7.2 Python Script for Bond Valuation 178

9.7.3 Python Script for European Call Valuation 180

CHAPTER 10 Monte Carlo Simulation 187

10.1 Introduction 187

10.2 Valuation of Zero-Coupon Bonds 188

10.3 Valuation of European Options 192

10.4 Valuation of American Options 196

10.4.1 Numerical Results 198

10.4.2 Higher Accuracy vs. Lower Speed 201

10.5 Conclusions 203

10.6 Python Scripts 204

10.6.1 General Zero-Coupon Bond Valuation 204

10.6.2 CIR85 Simulation and Valuation 205

10.6.3 Automated Valuation of European Options by Monte Carlo Simulation 209

10.6.4 Automated Valuation of American Put Options by Monte Carlo Simulation 215

CHAPTER 11 Model Calibration 223

11.1 Introduction 223

11.2 General Considerations 223

11.2.1 Why Calibration at All? 224

11.2.2 Which Role Do Different Model Components Play? 226

11.2.3 What Objective Function? 227

11.2.4 What Market Data? 228

11.2.5 What Optimization Algorithm? 229

11.3 Calibration of Short Rate Component 230

11.3.1 Theoretical Foundations 230

11.3.2 Calibration to Euribor Rates 231

11.4 Calibration of Equity Component 233

11.4.1 Valuation via Fourier Transform Method 235

11.4.2 Calibration to EURO STOXX 50 Option Quotes 236

11.4.3 Calibration of H93 Model 236

11.4.4 Calibration of Jump Component 237

11.4.5 Complete Calibration of BCC97 Model 239

11.4.6 Calibration to Implied Volatilities 240

11.5 Conclusions 243

11.6 Python Scripts for Cox-Ingersoll-Ross Model 243

11.6.1 Calibration of CIR85 243

11.6.2 Calibration of H93 Stochastic Volatility Model 248

11.6.3 Comparison of Implied Volatilities 251

11.6.4 Calibration of Jump-Diffusion Part of BCC97 252

11.6.5 Calibration of Complete Model of BCC97 256

11.6.6 Calibration of BCC97 Model to Implied Volatilities 258

CHAPTER 12 Simulation and Valuation in the General Model Framework 263

12.1 Introduction 263

12.2 Simulation of BCC97 Model 263

12.3 Valuation of Equity Options 266

12.3.1 European Options 266

12.3.2 American Options 268

12.4 Conclusions 268

12.5 Python Scripts 269

12.5.1 Simulating the BCC97 Model 269

12.5.2 Valuation of European Call Options by MCS 274

12.5.3 Valuation of American Call Options by MCS 275

CHAPTER 13 Dynamic Hedging 279

13.1 Introduction 279

13.2 Hedging Study for BSM Model 280

13.3 Hedging Study for BCC97 Model 285

13.4 Conclusions 289

13.5 Python Scripts 289

13.5.1 LSM Delta Hedging in BSM (Single Path) 289

13.5.2 LSM Delta Hedging in BSM (Multiple Paths) 293

13.5.3 LSM Algorithm for American Put in BCC97 295

13.5.4 LSM Delta Hedging in BCC97 (Single Path) 300

CHAPTER 14 Executive Summary 303

APPENDIX A Python in a Nutshell 305

A.1 Python Fundamentals 305

A.1.1 Installing Python Packages 305

A.1.2 First Steps with Python 306

A.1.3 Array Operations 310

A.1.4 Random Numbers 313

A.1.5 Plotting 314

A.2 European Option Pricing 316

A.2.1 Black-Scholes-Merton Approach 316

A.2.2 Cox-Ross-Rubinstein Approach 318

A.2.3 Monte Carlo Approach 323

A.3 Selected Financial Topics 325

A.3.1 Approximation 325

A.3.2 Optimization 328

A.3.3 Numerical Integration 329

A.4 Advanced Python Topics 330

A.4.1 Classes and Objects 330

A.4.2 Basic Input-Output Operations 332

A.4.3 Interacting with Spreadsheets 334

A.5 Rapid Financial Engineering 336

Bibliography 341

Index 347

See More

Author Information

YVES HILPISCH is founder and Managing Partner of The Python Quants a group that focuses on Python & Open Source Software for Quantitative Finance. Yves is also a Computational Finance Lecturer on the CQF Program. He works with clients in the financial industry around the globe and has ten years of experience with Python. Yves is the organizer of Python and Open Source for Quant Finance conferences and meetup groups in Frankfurt, London and New York City.

See More
Back to Top