Framework Classes and Functions
from dx import *
np.set_printoptions(precision=3)
The helper functions:
get_year_deltas
: get a list of year deltas (decimal fractions) relative to first value in time_listsn_random_numbers
: get an array of standard normally distributed pseudo-random numberstime_list = [dt.datetime(2015, 1, 1),
dt.datetime(2015, 4, 1),
dt.datetime(2015, 6, 15),
dt.datetime(2015, 10, 21)]
get_year_deltas(time_list)
ran = sn_random_numbers((2, 3, 4), antithetic=True,
moment_matching=True, fixed_seed=False)
ran
ran = sn_random_numbers((1, 3, 4), antithetic=True,
moment_matching=True, fixed_seed=False)
ran
The discounting classes:
constant_short_rate
: fixed short ratedeterministic_yield
: deterministic yiels/term structurer = constant_short_rate('r', 0.05)
r.name
r.short_rate
r.get_forward_rates(time_list)
r.get_discount_factors(time_list)
r.get_discount_factors(np.array([0., 1., 1.5, 2.]),
dtobjects=False)
yields = [(dt.datetime(2015, 1, 1), 0.02),
(dt.datetime(2015, 3, 1), 0.03),
(dt.datetime(2015, 10, 15), 0.035),
(dt.datetime(2015, 12, 31), 0.04)]
y = deterministic_short_rate('y', yields)
y.name
y.yield_list
y.get_interpolated_yields(time_list)
y.get_forward_rates(time_list)
y.get_discount_factors(time_list)
A market_environment object stores:
curves
: e.g. discount objectsconstants
: e.g. maturity date of optionme = market_environment('me', dt.datetime(2014, 1, 1))
me.add_curve('discount_curve_1', r)
me.add_curve('discount_curve_2', y)
me.add_constant('initial_value', 100.)
me.add_constant('volatility', 0.25)
me.constants
me.curves
me.get_constant('volatility')
me.get_curve('discount_curve_1').get_discount_factors(time_list)
me.get_curve('discount_curve_2').get_discount_factors(time_list)