def test_cal_price_cosine_3(self):
cosine_pricer = FourierPricer(self.vanilla_option)
strike_arr = np.array([5, 10, 30, 36, 40, 60])
put_call_arr = np.array(['call', 'call', 'put', 'call', 'call', 'put'])
exp = np.array([3.09958567e+01, 2.60163625e+01, 1.71886506e-04, 8.75203272e-01,
3.55292239e-02, 2.37785797e+01]
)
volatility = 0.20
N = 2000
cosine_pricer.set_log_st_process(KouJump(sigma=volatility,
jump_rate=23.339325557373201,
exp_pos=59.378410421004197,
exp_neg=-59.447921334340137,
prob_pos=-200.08018971817182))
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)
评论列表
文章目录