MÄLARDALENS HÖGSKOLA

Similar documents
Pricing Barrier Options Using Monte Carlo Simulation Pricing Options with Python

The Black-Scholes Equation

EFFICIENT MONTE CARLO ALGORITHM FOR PRICING BARRIER OPTIONS

The Black-Scholes Model

King s College London

NEWCASTLE UNIVERSITY SCHOOL OF MATHEMATICS, STATISTICS & PHYSICS SEMESTER 1 SPECIMEN 2 MAS3904. Stochastic Financial Modelling. Time allowed: 2 hours

Definition Pricing Risk management Second generation barrier options. Barrier Options. Arfima Financial Solutions

The Black-Scholes Model

3.1 Itô s Lemma for Continuous Stochastic Variables

1.1 Basic Financial Derivatives: Forward Contracts and Options

Barrier Option Valuation with Binomial Model

Lecture 3. Sergei Fedotov Introduction to Financial Mathematics. Sergei Fedotov (University of Manchester) / 6

Valuation of Equity / FX Instruments

Monte Carlo Simulations

The Black-Scholes Model

Options. An Undergraduate Introduction to Financial Mathematics. J. Robert Buchanan. J. Robert Buchanan Options

Lecture 17. The model is parametrized by the time period, δt, and three fixed constant parameters, v, σ and the riskless rate r.

Queens College, CUNY, Department of Computer Science Computational Finance CSCI 365 / 765 Fall 2017 Instructor: Dr. Sateesh Mane.

Lecture 8: The Black-Scholes theory

Black-Scholes-Merton Model

Math Computational Finance Barrier option pricing using Finite Difference Methods (FDM)

King s College London

STOCHASTIC CALCULUS AND BLACK-SCHOLES MODEL

Lecture Note 8 of Bus 41202, Spring 2017: Stochastic Diffusion Equation & Option Pricing

The Black-Scholes PDE from Scratch

Stochastic Modelling in Finance

- 1 - **** d(lns) = (µ (1/2)σ 2 )dt + σdw t

Numerical schemes for SDEs

How Much Should You Pay For a Financial Derivative?

MATH3075/3975 FINANCIAL MATHEMATICS TUTORIAL PROBLEMS

Math Computational Finance Double barrier option pricing using Quasi Monte Carlo and Brownian Bridge methods

MASM006 UNIVERSITY OF EXETER SCHOOL OF ENGINEERING, COMPUTER SCIENCE AND MATHEMATICS MATHEMATICAL SCIENCES FINANCIAL MATHEMATICS.

Valuing Stock Options: The Black-Scholes-Merton Model. Chapter 13

FINANCIAL OPTION ANALYSIS HANDOUTS

1. In this exercise, we can easily employ the equations (13.66) (13.70), (13.79) (13.80) and

Computational Finance

Advanced Topics in Derivative Pricing Models. Topic 4 - Variance products and volatility derivatives

Evaluating the Black-Scholes option pricing model using hedging simulations

Math489/889 Stochastic Processes and Advanced Mathematical Finance Solutions to Practice Problems

Bose Vandermark (Lehman) Method

Hedging Errors for Static Hedging Strategies

Journal of Mathematical Analysis and Applications

Chapter 14. Exotic Options: I. Question Question Question Question The geometric averages for stocks will always be lower.

JDEP 384H: Numerical Methods in Business

Valuation of performance-dependent options in a Black- Scholes framework

Market Volatility and Risk Proxies

Practical example of an Economic Scenario Generator

Financial Derivatives Section 5

A Moment Matching Approach To The Valuation Of A Volume Weighted Average Price Option

Computer Exercise 2 Simulation

The stochastic calculus

1 Implied Volatility from Local Volatility

Derivative Securities Fall 2012 Final Exam Guidance Extended version includes full semester

Option Pricing Models for European Options

Fin285a:Computer Simulations and Risk Assessment Section Options and Partial Risk Hedges Reading: Hilpisch,

Practical Hedging: From Theory to Practice. OSU Financial Mathematics Seminar May 5, 2008

Probability in Options Pricing

Chapter 15: Jump Processes and Incomplete Markets. 1 Jumps as One Explanation of Incomplete Markets

Aspects of Financial Mathematics:

Risk Neutral Pricing Black-Scholes Formula Lecture 19. Dr. Vasily Strela (Morgan Stanley and MIT)

Economathematics. Problem Sheet 1. Zbigniew Palmowski. Ws 2 dw s = 1 t

Stochastic Differential Equations in Finance and Monte Carlo Simulations

Optimal Search for Parameters in Monte Carlo Simulation for Derivative Pricing

Risk Neutral Valuation

4. Black-Scholes Models and PDEs. Math6911 S08, HM Zhu

MATH 476/567 ACTUARIAL RISK THEORY FALL 2016 PROFESSOR WANG

Asset-or-nothing digitals

Option Hedging with Transaction Costs

Actuarial Models : Financial Economics

Financial Risk Forecasting Chapter 6 Analytical value-at-risk for options and bonds

FIN FINANCIAL INSTRUMENTS SPRING 2008

MATH4143: Scientific Computations for Finance Applications Final exam Time: 9:00 am - 12:00 noon, April 18, Student Name (print):

TEST OF BOUNDED LOG-NORMAL PROCESS FOR OPTIONS PRICING

Barrier Options Pricing in Uncertain Financial Market

Simulation Analysis of Option Buying

Reading: You should read Hull chapter 12 and perhaps the very first part of chapter 13.

Investment Guarantees Chapter 7. Investment Guarantees Chapter 7: Option Pricing Theory. Key Exam Topics in This Lesson.

1 The continuous time limit

Continuous Time Finance. Tomas Björk

Fast and accurate pricing of discretely monitored barrier options by numerical path integration

FINANCIAL MATHEMATICS WITH ADVANCED TOPICS MTHE7013A

FINANCIAL MATHEMATICS WITH ADVANCED TOPICS MTHE7013A

Attempt QUESTIONS 1 and 2, and THREE other questions. Do not turn over until you are told to do so by the Invigilator.

Binomial model: numerical algorithm

On the Cost of Delayed Currency Fixing Announcements

MSc in Financial Engineering

Introduction to Financial Derivatives

Attempt QUESTIONS 1 and 2, and THREE other questions. Do not turn over until you are told to do so by the Invigilator.

Computer Exercise 2 Simulation

MOUNTAIN RANGE OPTIONS

Analytical Finance 1 Seminar Monte-Carlo application for Value-at-Risk on a portfolio of Options, Futures and Equities

LIBOR models, multi-curve extensions, and the pricing of callable structured derivatives

CONTINUOUS TIME PRICING AND TRADING: A REVIEW, WITH SOME EXTRA PIECES

Hedging Credit Derivatives in Intensity Based Models

2 f. f t S 2. Delta measures the sensitivityof the portfolio value to changes in the price of the underlying

Queens College, CUNY, Department of Computer Science Computational Finance CSCI 365 / 765 Spring 2018 Instructor: Dr. Sateesh Mane.

Stochastic modelling of electricity markets Pricing Forwards and Swaps

The Volatility Smile Dynamics Implied by Smile-Consistent Option Pricing Models and Empirical Data

Forwards and Futures. Chapter Basics of forwards and futures Forwards

Hedging Under Jump Diffusions with Transaction Costs. Peter Forsyth, Shannon Kennedy, Ken Vetzal University of Waterloo

Transcription:

MÄLARDALENS HÖGSKOLA A Monte-Carlo calculation for Barrier options Using Python Mwangota Lutufyo and Omotesho Latifat oyinkansola 2016-10-19 MMA707 Analytical Finance I: Lecturer: Jan Roman Division of Applied Mathematics School of Education, Culture and Communication Mälardalen University Box 883, SE-721 23 Västerås, Sweden

Table of Contents Introduction... 2 An Overview of Barrier Option... 2 Types of Barriers and Barrier Options... 2 Pricing barrier options... 3 Tabel 1 Prices of Call barriers... 5 Tabel 2 Prices of Put barriers... 6 Volatility:... 6 Monte Carlo Simulation:... 6 Pricing barrier option in Python... 7 Results analysis... 8 Tabel 3 Inputs for the valuation of European Call Opton.... 8 Graphical presentation of an up-and-out and up-and-in parity... 9 Conclusion... 9 Appendix: Python Program Code... 10 References... 14 1

Introduction Barrier options are considered more complicated in computation. Therefore, in such mind numerical methods must be applied. One of such methods is Monte Carlo simulation. Monte Carlo simulation is one of the most important algorithms in finance and numerical science in general. It s importance stems from the fact that it is quite powerful when it comes to option pricing. This paper analyses the pricing of barrier options using Monte Carlo Simulation. In the first section this report defines the barrier options and introduce the monte Carlo as a pricing methodology. In the second section we focused on valuating barrier options and plotting by using Python program. The last section is about the results we got from our program. An Overview of Barrier Option Barrier options are one of the most widely traded derivatives in the financial markets. They have special characteristics which distinguish them from ordinary options. They are characterised by a strike level and a barrier level, as well as by a cash rebate associated with crossing the barrier. Their payoff depends on whether the underlying asset s price reaches a certain level during a certain period of time (Hull 2000). These options are activated or expired when the underlying asset price either hits or does not hit a specified barrier before expiry. One reason that an investor prefers a barrier option to an ordinary vanilla option is that barrier options are generally cheaper than standard options. This is because the asset price has to cross a certain barrier for the option holder to receive the payoff. The other reason is that barrier options may match risk hedging needs more closely than standard options. Types of Barriers and Barrier Options The following definitions can be found in (Chriss 1997, 434 and Ivan 2004). 1. Knock-out options start out as ordinary call or put options, but they become null and void if the spot price ever crosses a certain predetermined knock-out barrier, even before the expiration date. 2

2. Knock-in options start their lives inactive, in a sense null and void, and only become active on the event that the stock price crosses the knock-in barrier, then it becomes an ordinary call or put option. The barrier option can be further portrayed by the position of the barrier relative to the initial value of underlying. If the barrier is above the initial asset value, one has an up option. If the barrier is below the initial asset value, one has a down option. (Hull 2000, 662) offers the following definitions: 1. Down-and-out: An option that terminates when the price of the underlying asset declines to a predetermined level. 2. Up-and-out: An option that terminates when the price of the underlying asset increases to a predetermined level. 3. Down-and-in: An option that comes into existence when the price of the underlying asset declines to a predetermined level. 4. Up-and-in: An option that comes into existence when the price of the underlying asset increases to a predetermined level. Barrier options can also have cash rebates associated with them. This is a consolation prize paid to the holder of the option when an out barrier is knocked out or when an in barrier is never knocked in (Ivan 2004). The rebate can be nothing or it could be some fraction of the premium. Rebates are usually paid immediately when an option is knocked out, however, payments can be deferred to the maturity of the option, (Kotze 1999). Pricing barrier options Barrier options may be priced using binomial models, Monte Carlo simulations or special versions of the standard Black-Scholes-Merton model. The first analytical formula was proposed by Merton in 1973 to value a down-and-out call option with one 3

flat barrier when an underlying process follows a geometric Brownian motion (GBM). Moreover, more analytical formulae, with this simple case, were provided by Reiner and Rubinstein (1991) and Rich (1994) as follows; Notations: H: Barrier level X: Strike σ: Volatility T: Time to expiration b: Cost of carry rate (r q where q are the dividends) r: Risk free rate C: Price of a barrier option S: Spot stock price Formulas: 1, if Down μ = { 1, if Up 1, if Call φ = { 1, if Put X 1 = ln (S X ) σ T + (1 + μ)σ T X 2 = ln (S X ) + (1 + μ)σ T σ T Y 1 = ln ( H2 (SX) ) σ T + (1 + μ)σ T Y 2 = ln (H S ) + (1 + μ)σ T σ T Z = ln (H S ) σ T + λσ T μ = b σ2 2 σ 2 λ = μ 2 + 2r Q 2 A = φ. S. N(φx 1 ) φ. X. e rt N(φx 1 φσ T) 4

B = φ. S. N(φx 2 ) φ. X. e rt N(φx 2 φσ T) C = φ. S. ( H S ) 2(μ+1) N( y 1 ) φxe rt ( H S ) 2μ N( y 1 σ T) D = φ. S. ( H S ) 2(μ+1) N( y 2 ) φxe rt ( H S ) 2μ N( y 2 σ T) E = Ke rt [N( x 2 σ T) ( H S ) 2μ N( y 2 σ T)] F = Ke rt ( H μ+λ S ) N( z) ( H μ λ S ) N( z 2 λσ T) Then the prices of call barriers are given by; Type X < H X > H Down-and-In S > H A-B+D+E C+E Up-and-In S < H B-C+D+E A+E Down-and-Out S > H B-D+F A-C+F Up-and-Out S < H A-B+C-D+F F Tabel 1 Prices of Call barriers Then the prices of put barriers are given by; Type X < H X > H Down-and-In S > H A+E B-C+D+E Up-and-In S < H C+E A-B+D+E Down-and-Out S > H F A-B+C-D+F Up-and-Out S < H A-C+F B-D+F 5

Tabel 2 Prices of Put barriers Volatility: In pricing options volatility plays an important role. Barrier options are especially sensitive to volatility. For knock-out options, increased volatility has the effect of decreasing the option value as knock-out becomes more probable. Knock-in options however increase in price with increased volatility as knock-in becomes more probable. Monte Carlo Simulation: Barrier options are considered more complicated in computation. Therefore, in such mind numerical methods must be applied. One of such method is Monte Carlo simulation. Monte Carlo simulation is one of the most important algorithms in finance and numerical science in general. It s importance stems from the fact that it is quite powerful when it comes to option pricing. In comparison to other numerical methods, the Monte Carlo method can easily cope with high-dimensional problems where the complexity and computational demand, respectively, generally increase in linear fashion. When we use the Monte Carlo simulation to price an option, the approach can be summarized into three steps. Simulate n sample paths of the underlying asset price over the time interval. Calculate the payoff of the option for each path. Average the discounted payoffs over sample paths. Barrier options are path-dependent - their payoffs are determined by whether or not the price of the asset hits a certain level during the life of the option. Due to this pathdependency, simulation of the entire price evolution is necessary. Therefore, the first step in pricing barrier options using Monte Carlo methods is to simulate the price evolution. The basic principle here is to simulate as many possible scenarios and to 6

average those scenarios to get an expectation. To simulate a sample path, we have to choose a stochastic differential equation describing the dynamics of the price. We consider the price of the underlying asset is described by a Geometric Brownian Motion: ds t = μs t + σs t dw t (1) By applying Ito s lemma, we receive the following expression: d log S t = (μ 1 2 σ2 ) dt + σdw t.. (2) St is log-normally distributed and thereby we have Integrate equation (2) yielding: E [log ( S(t) )] = vt S(0) Var [log ( S(t) S(0) )] = σ2 t E [( S(t) )] = eμt S(0) Var [( S(t) S(0) )] = e2μt (e σ2t 1) Where v = μ σ 2 /2. t S t = S 0 exp (vt + σ dw(τ)) 0 Let us discretize the time interval (0, T) with a time step δt. From the equation above and the properties of the standard Wiener process, we obtain S t+δt = S t exp (vδt + σ δtε).. (3) Where, ε~n(0,1) is a standard normal random variable. Now based on equation (3), we can therefore generate sample paths for the asset price. Pricing barrier option in Python For the valuation of the Barrier options, we wrote a program in python that include the valuation of option price using Black-Schole - Merton model. We wrote the program in 7

such that it can price both call and put barrier options. For the case of this report we will present a Python program for European call barrier option (up-and-out and up and in parity). The idea is very simple; If we buy an up-and-out European call and an up-and-in European call, then the following parity should hold good: Call up and out + Call up and in = Call Moreover, the logic behind this is, if the stock price reaches the barrier, then the first call is worthless and the second call will be activated. If the stock price never touches the barrier, the first call will remain active, while the second one is never activated. Either way, one of them is active. Using this idea of we use the Monte Carlo simulation to present a parity for values we input in our program. The code is attached in appendix. Results analysis We input a set of values to test whether the summation of an up-and-out call and an upand-in call will be the same as a vanilla call: S0 60. Today Stock Price X 60. Exercise Price Barrier 61 Barrier level T 1 Maturity in Years R 0.05 Risk-Free Rate Sigma 0.2 volatility (annualized) Tabel 3 Inputs for the valuation of European Call Opton. The following output proves the parity mentioned above: Up-Out-Call = 2.48, Up-In-Call = 1.653 and 8

Call (Vanilla) = 4.133 Such that 2.48 + 1.653 = 4.133 See the graph hereunder for the same results. Graphical presentation of an up-and-out and up-and-in parity Conclusion This paper gives an overview of how to estimate barrier option prices via Monte Carlo simulation was provided. We started by defining the concept of barrier option and its computation. We discussed the barrier option as the general overview but in the result analysis we narrow down our discussion on barrier option (Up-In and out call option). Moreover, we provided the graph showing the parity of call option. 9

Appendix: Python Program Code def bs_call(s,x,t,rf,sigma): """ Objective: Black-Schole-Merton option model Format : bs_call(s,x,t,r,sigma) S: current stock price X: exercise price T: maturity date in years rf: risk-free rate (continusouly compounded) sigma: volatiity of underlying security """ from scipy import log,exp,sqrt,stats d1=(log(s/x)+(rf+sigma*sigma/2.)*t)/(sigma*sqrt(t)) d2 = d1-sigma*sqrt(t) return S*stats.norm.cdf(d1)-X*exp(-rf*T)*stats.norm.cdf(d2) def bs_put(s,x,t,rf,sigma): """ Objective: Black-Schole-Merton option model Format : bs_call(s,x,t,r,sigma) S: current stock price X: exercise price T: maturity date in years rf: risk-free rate (continusouly compounded) sigma: volatiity of underlying security """ 10

from scipy import log,exp,sqrt,stats d1=(log(s/x)+(rf+sigma*sigma/2.)*t)/(sigma*sqrt(t)) d2 = d1-sigma*sqrt(t) return X*exp(-rf*T)*stats.norm.cdf(-d2)-S*stats.norm.cdf(-d1) #from math import sqrt, log, pi,exp #import re #--------------------------------------------------------# #--- Cumulative normal distribution --------------# #--------------------------------------------------------# def CND(X): """ Cumulative standard normal distribution CND(x): x is a scale e.g., >>> CND(0) 0.5000000005248086 """ (a1,a2,a3,a4,a5)=(0.31938153,-0.356563782,1.781477937,- 1.821255978,1.330274429) L = abs(x) K = 1.0 / (1.0 + 0.2316419 * L) w = 1.0-1.0 / sqrt(2*pi)*exp(-l*l/2.) * (a1*k + a2*k*k + a3*pow(k,3) + a4*pow(k,4) + a5*pow(k,5)) if X<0: w = 1.0-w return w import scipy as sp 11

from math import exp import matplotlib.pyplot as pl S0=60 x=60 barrier=61 T=0.5 n_steps=30. r = 0.05 sigma=0.2 sp.random.seed(125) n_simulation =5 dt =T/n_steps S = sp.zeros([n_steps],dtype=float) time_ = range(0,int(n_steps), 1) c=bs_call(s0,x,t,r,sigma) sp.random.seed(124) outtotal, intotal=0.,0. n_out,n_in=0,0 for j in range(0, n_simulation): S[0] = S0 instatus=false outstatus=true for i in time_[:-1]: e=sp.random.normal() S[i+1]=S[i]*exp((r-0.5*pow(sigma,2))*dt+sigma*sp.sqrt(dt)*e) if S[i+1]>barrier: outstatus=false instatus=true pl.plot(time_,s) 12

if outstatus==true: outtotal+=c;n_out+=1 else: intotal+=c;n_in+=1 S=sp.zeros(int(n_steps))+barrier pl.plot(time_,s,'.-') upoutcall=round(outtotal/n_simulation,3) upincall=round(intotal/n_simulation,3) pl.figtext(0.15,0.8,'s='+str(s0)+',x='+str(x)) pl.figtext(0.15,0.76,'t='+str(t)+',r='+str(r)+',sigma=='+str(sigma)) pl.figtext(0.15,0.6,'barrier='+str(barrier)) pl.figtext(0.40,0.86, 'call price = '+str(round(c,3))) pl.figtext(0.40,0.83,'up_and_out_call='+str(upoutcall)+' (='+str(n_out)+'/'+str(n_simulation)+'*'+str(round(c,3))+')') pl.figtext(0.40,0.80,'up_and_in_call ='+str(upincall)+' (='+str(n_in)+'/'+str(n_simulation)) pl.title('up-and-out and up-and-in parity (# of simulations = %d ' % n_simulation +')') pl.xlabel('total number of steps ='+str(int(n_steps))) pl.ylabel('stock price') pl.show() 13

References Wystup, U. (2002). Ensuring Efficient Hedging of Barrier Options. Frankfurt: commerzbank Trasury and Financial products. Stoklosa, J. (2007). Studies of Barrier Options and their Sensitivities. The University of Melbourne. Reiner,E. and Rubinstein, M. (1991). Breaking down the barriers. Risk, vol4.pp. 28 35. Roman, J.R.M. (2014) Lecture notes in Analytical Finance I Yuxing Yan (2014). Python for Finance. Birmingham. Packt Publishing Ltd. 14