Thursday, July 30, 2020

Employee Stock Options-Derivative Pricing in Python

Employee Stock Option (ESO) is a form of compensation that a company uses to reward, motivate, and retain its employees.

An employee stock option (ESO) is a label that refers to compensation contracts between an employer and an employee that carries some characteristics of financial options.

Employee stock options are commonly viewed as a complex call option on the common stock of a company, granted by the company to an employee as part of the employee's remuneration package. Regulators and economists have since specified that ESOs are compensation contracts.

These nonstandard contracts exist between employee and employer, whereby the employer has the liability of delivering a certain number of shares of the employer stock, when and if the employee stock options are exercised by the employee. The contract length varies, and often carries terms that may change depending on the employer and the current employment status of the employee. Read more

An ESO is a financial option, but it differs from a regular stock option in the following,

  • There is usually a vesting period during which the option cannot be exercised
  • When the employees leave their jobs (voluntary or involuntary) during the vesting period they forfeit the unvested options.
  • When employees leave (voluntarily or involuntarily) after the vesting period they forfeit options that are out of the money and they have to exercise vested options that are in the money immediately.
  • Employees are not permitted to sell their employee stock options. They must exercise the options and sell the underlying shares in order to realize a cash benefit or diversify their portfolios. This tends to lead to employee stock options being exercised earlier than similar regular options.
  • There is some dilution arising from the issue of employee stock options because if they are exercised, then new common shares are issued.

Because of these characteristics, the valuation of ESOs is different from regular stock options. In this post, we are going to implement the approach proposed by Hull and White [1]. Specifically, we are going to implement the vesting and forfeiture rate features.  Other features can also be implemented without difficulty.

The input parameters are as follows,

Stock price: 50

Strike: 50

Maturity: 5 years

Risk-free rate: 2%

Volatility: 40%

Vesting period: 2 years

Forfeiture rate: 2%

We implemented the Hull and White approach in Python, and we obtained a price of 17.9

Employee Stock Option

Follow the link below to download the Python program.


[1] J. Hull and A. White, How to Value Employee Stock Options, Financial Analysts Journal, Vol. 60, No. 1 (Jan. - Feb., 2004), pp. 114-119

Post Source Here: Employee Stock Options-Derivative Pricing in Python

Friday, July 24, 2020

Valuing American Options Using Monte Carlo Simulation –Derivative Pricing in Python

In a previous post, we presented the binomial tree method for pricing American options. Recall that an American option is an option that can be exercised any time before maturity.

A drawback of the binomial tree method is that the implementation of a more complex option payoff is difficult, especially when the payoff is path-dependent. For example, for an American double-average option with periodic sampling time points, the strike price is not known at the start of the option.  It can only be determined in the future and is therefore path-dependent.  Another example is an American forward start option. These options cannot be valued using the binomial tree approach.

In this post, we are going to present a method for valuing American options using Monte Carlo simulation. This method will allow us to implement more complex option payoffs with greater flexibility, even if the payoffs are path-dependent. Specifically, we use the Least-Squares Method of Longstaff and Schwartz [1] in order to take into account the early exercise feature.  The stock price is assumed to follow the Geometrical Brownian Motion and the dividend is simulated continuously.

Using this approach, it would be optimal to exercise the option if the immediate payment is larger than the expected future cash flows, otherwise it should be kept.  Specifically, for each generated path, we regress the future payoffs on the basis functions of S and S2[2]. The regression equation provides us with estimation for the expected value of future payoffs as a function of S and S2. This expected value is the value of holding on to the option, i.e. the continuation value. Using the regression equation, we can decide if it is preferable to exercise the option immediately or to wait one more period. This procedure is repeated backward from the maturity date to the time zero. Finally, the price of the option is calculated as the average value of all the discounted payoffs.

We implemented the Least-Squares Method of Longstaff and Schwartz in Python and priced the option presented in the previous post.  The main input parameters are as follows,

Derivative Pricing in Python

The picture below shows the results obtained by using the Python program.

Valuing American Options Using Monte Carlo Simulation

Follow the link below to download the Python program.



[1] F. Longstaff and E. Schwartz, Valuing American options by simulation: A simple least-squares approach, Review of Financial Studies, Spring 2001, pp. 113–147.

[2] S denotes the stock price. Other basis functions can also be used.

Article Source Here: Valuing American Options Using Monte Carlo Simulation –Derivative Pricing in Python