Skip to content

Pricing of an accumulator option using Monte Carlo simulation (by Python and C++) and analytical approximiation (by MATLAB)

Notifications You must be signed in to change notification settings

jren-jane/accumulator-option-pricing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

accumulator-option-pricing

The .py files price an accumulator option using Monte Carlo simulation and calculate its profit and loss distribution given different volatilities. The .m files provides an analytical function to approximate the value of an accumulator option.

The option

An accumulator is settled periodically throughout its term. At each settlement:

  • If the market price of the underlying security is above the predetermined knock-out price, the contract is terminated.
  • If the market price of the underlying security is between the knock-out price and the strike price, the buyer "accumulates" the underlying security at the strike price.
  • If the market price of the underlying security is below the strike price, the buyer is obligated to buy the underlying security at the strike price at 2 (or more) times of the predetermined amount.

In case of knock-out, the aggregate number of shares accumulated will be settled on the early termination date, which is the third business day following the occurrence of early termination event.

The shares accumulated for each accumulation period will be delivered to the investor on the third business day following the end of each monthly accumulation period.

The analytical pricing method

  • In the case that the knock-out barrier is extremely high, there will be no knock-out. And the accumulator is equivalent to a series of call and put options on forwards. The value of a forward contract can be calculated by risk-neutral pricing. (See file acc_XH.m)
  • The approximation formula for an accumulator option is taken from a paper by Kin Lam. (See file ana_acc.m)

Monte Carlo simulation method

  • Generate a return matrix, and consequently a price matrix under the risk-neutral measure. For each observation day: If it is neither a settlement day nor an early termination day, we accumulate the number of shares and set the payoff equal to the previous observation day payoff; if it is either a settlement day or an early termination day, we set the payoff equal to the previous day payoff plus the discounted value of the number of shares times the price of the forward. After each settlement day, we set the number of shares back to zero and begin with the next month.
  • To gain the fair value of the option, we average over all the simulated paths. To look at the payoff distribution for different volatilities, we plot the payoffs from each simulation.

Results

img

About

Pricing of an accumulator option using Monte Carlo simulation (by Python and C++) and analytical approximiation (by MATLAB)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published