Numerically integrate the pricing differential equation

Description

Use an implicit integration scheme to numerically integrate the pricing differential equation for each of the given instruments, backwardating from time Tmax to time 0.

Usage

1
2
3
integrate_pde(z, min_num_time_steps, S0, Tmax, instruments, stock_level_fcn,
  discount_factor_fcn, default_intensity_fcn, variance_cumulation_fcn,
  dividends = NULL)

Arguments

z

Space grid value morphable to stock prices using stock_level_fcn

min_num_time_steps

The minimum number of timesteps used. Calls, puts and coupons may result in extra timesteps taken.

S0

Time zero price of the base equity

Tmax

The maximum time on the grid, from which all backwardation steps will take place.

instruments

A list of instruments to be priced. Each one must have a strike and a optionality_fcn, as with GridPricedInstrument and its subclasses.

stock_level_fcn

A function for changing space grid value to stock prices, with arguments z and t

discount_factor_fcn

A function for computing present values to time t of various cashflows occurring during this timestep, with arguments T, t

default_intensity_fcn

A function for computing default intensity occurring during this timestep, dependent on time and stock price, with arguments t, S.

variance_cumulation_fcn

A function for computing total stock variance occurring during this timestep, with arguments T, t. E.g. with a constant volatility s this takes the form (T-t)s^2.

dividends

A data.frame with columns time, fixed, and proportional. Dividend size at the given time is then expected to be equal to fixed + proportional * S / S0

Value

A grid of present values of derivative prices, adapted to z at each timestep. Time zero value will appear in the first index.

See Also

Other Implicit Grid Solver: construct_implicit_grid_structure, find_present_value, form_present_value_grid, infer_conforming_time_grid, iterate_grid_from_timestep, take_implicit_timestep, timestep_instruments

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.