def test_cal_price_cosine(self):
cosine_pricer = FourierPricer(self.vanilla_option)
strike_arr = np.array([5, 10, 30, 36, 50, 60, 100])
put_call_arr = np.array(['call', 'call', 'put', 'call', 'call', 'put', 'call'])
exp = np.array([3.09958567e+01, 2.60163625e+01, 8.25753140e-05, 8.12953226e-01,
8.97449491e-11, 2.37785797e+01, 2.19293560e-85, ]
)
volatility = 0.20
N = 150
cosine_pricer.set_log_st_process(BlackScholes(volatility))
cosine_pricer.set_pricing_engine(CosineEngine(N, L=30))
res = cosine_pricer.calc_price(strike_arr, put_call_arr, put_label='put')
npt.assert_array_almost_equal(res, exp, 6)
评论列表
文章目录