Presentation is loading. Please wait.

Presentation is loading. Please wait.

The Black-Scholes Model for Option Pricing - 2 -Mahantesh Halappanavar -Meeting-3, 09-11-2007.

Similar presentations


Presentation on theme: "The Black-Scholes Model for Option Pricing - 2 -Mahantesh Halappanavar -Meeting-3, 09-11-2007."— Presentation transcript:

1 The Black-Scholes Model for Option Pricing - 2 -Mahantesh Halappanavar -Meeting-3, 09-11-2007

2 The Black-Scholes Model: Basics

3 Assumptions: 1. No dividends are paid on the underlying stock during the life of the option. 2. Option can only be exercised at expiry (European style). 3. Efficient markets (Market movements cannot be predicted). 4. Commissions are non-existent. 5. Interest rates do not change over the life of the option (and are known) 6. Stock returns follow a lognormal distribution

4 Price of the Call (  and r constant) C=Price of the Call S=Current Stock Price T=Time of Expiration K=Strike Price r=Risk-free Interest Rate N()=Cumulative normal distribution function e=Exponential term (2.7183)  =Volatility

5 ..if r is a function of time

6 Price of the Put (  and r constant) P=Price of Put S=Current Stock Price T=Time of Expiration K=Strike Price r=Risk-free Interest Rate N=Cumulative normal distribution function e=Exponential term (2.7183)  =Volatility

7 Price of Put using Put-Call Parity

8 Relaxations: Dividends (Robert Merton) Taxes and Transaction Costs (Jonathan Ingerson) Variable Interest Rates (Robert Merton)

9 Greeks Greeks are quantities representing the market sensitivity of options or other derivatives. Delta: sensitivity to changes in price Gamma: Rate of change in delta Vega: Sensitivity to volatility Theta: sensitivity to passage of time Rho: sensitivity to interest rate

10 Greeks: Delta  Derivative w.r.t. stock price S: Theta  Time-decay: derivative w.r.t. time Vega  Derivative w.r.t. volatility  Rho  Derivative w.r.t. interest rate Eta  Derivative w.r.t. strike K Gamma  Rate of change of delta

11 Barrier Options: A barrier option with payoff Q o and maturity T is a contract which yields a payoff Q o (S T ) at maturity T, as long as the spot price S t remains in the interval (a(t),b(t)) for all time t  [0,T].

12 Monte-Carlo Methods

13 Observation: “Because of the difficulty in solving PDEs, numerous methods exist to solve them, including Backlund Transformations, Green’s Function, Integral Transformation, or numerical methods such as finite difference methods.” -www.global-derivatives.com

14 Orientation: A technique of employing statistical sampling to approximate solutions to quantitative problems. Stochastic (nondeterministic) using pseudo-random numbers. “When number of dimensions (degrees of freedom) in the problem is lerge, PDE’s and numerical integrals become intractable: Monte Carlo methods often give better results” “MC methods converge to the solutions more quickly than numerical integration methods, require less memory and are easier to program”

15 Numerical Random Variables C-library rand() returns an integer value uniformly distributed in [0,RAND_MAX] To obtain Gaussian random variable: So that: Let w 1 and w 2 be two independent random variables.

16 Gaussian Random Variable x is a Gaussian variable with zero mean value, unit variance, and density Therefore, may be used to simulate

17 C++ Code:

18 Initialization: #include using namespace std; const int M=100; // # of time steps of size dt const int N=50000; // # of stochastic realization const int L=40; // # of sampling point for S const double K = 100; // the strike const double leftS=0, rightS=130; //the barriers const double sigmap=0.2, r=0.1; // volatility, rate const double pi2 =8*atan(1), dt=1./M, sdt =sqrt(dt), eps=1.e-50; const double er=exp(-r);

19 Function Declarations: double gauss(); double EDOstoch(const double x, int m); //Vanilla double EDOstoch_barrier(const double x, int m, const double Smin, const double Smax); //Barrier double payoff(double s);

20 Main(): int main( void ) { ofstream ff("stoch.dat"); for(double x=0.;x<2*K;x+=2*K/L) { // sampling values for x=S double value =0; double y,S ; for(int i=0;i<N;i++) { S=EDOstoch(x,M); //Vanilla Options //S=EDOstoch_barrier(x,M, leftS, rightS); //Barrier double y=0; if (S>= 0) y = er*payoff(S); value += y; } ff << x <<"\t" << value/N << endl; } return 0; } K=100; L=40; 0 – 200, x+=5  40 iterations N=50,000; M= 100 er=exp(-r) Payoff=max(S-K, 0) #Ops = 40 X 50,000 = 2,000,000

21 Gaussian Random Number double gauss() { return sqrt(eps- 2.*log(eps+rand()/(double)RAND_MAX)) *cos(rand()*pi2/RAND_MAX); } eps=1.e-50 pi2=8*atan(1)

22 European Vanilla Call Price () double EDOstoch(const double x, int m) { double S= x; for(int i=0;i<m;i++) S += S*(sigmap*gauss()*sdt+r*dt); return S; // gives S(x, t=m*dt) } X: 0 – 200, x+=5  40 iterations m= 100 (dt) VolatilityRateSqrt(dt) dt= 1.0/M M=500

23 Barrier Call Price() double EDOstoch_barrier(const double x, int m, const double Smin, const double Smax) { if ((x =Smax)) return -1000; double S= x; for(int i=0;i<m;i++) { if ((S =Smax)) return -1000; S += S*(sigmap*gauss()*sdt+r*dt); } return S; } double payoff(double s) { if(s>K) return s-K; else return 0;}

24 Output of the Code: (Vanilla) Figure: Computation of the call price one year to maturity by using the Monte-Carlo algorithm presented in the slides before. The curve displays C versus S. X axis: (20*S)/(K) Y axis: C {payoff K=100,  =0.2,r=0.1}

25 Output of the Code: (Barrier) Figure: Computation of the call price one year to maturity by using the Monte-Carlo algorithm presented in the slides before. The curve displays C versus S. X axis: S a = 0, b = 130 Y axis: C {payoff K=100,  =0.2,r=0.1}

26 Random Variables using GSL #include const gsl_rng_type *Tgsl=gsl_rng_default; gsl_rng_env_setup(); gsl_rng *rgsl=gsl_rng_alloc(Tgsl); … double gauss(double dt) { return gsl_ran_gaussian(rgsk, dt); }

27 Central Limit Theorem … to come

28 Variance Reduction …to come


Download ppt "The Black-Scholes Model for Option Pricing - 2 -Mahantesh Halappanavar -Meeting-3, 09-11-2007."

Similar presentations


Ads by Google