Пример #1
0
 def __call__(self, strike, t, r, q, S0, chf_ln_st):
     sim_strikes, call_prices = carr_madan_fft_call_pricer(
         self.N, self.d_u, self.alpha, r, t, S0, q,
         chf_ln_st.set_type('chf'))
     ffn_prices = spline_fitting(sim_strikes, call_prices,
                                 self.spline_order)(strike)
     return ffn_prices
Пример #2
0
 def test_carr_madan_fft_call_pricer_black_shole(self):
     N = 2 ** 15
     d_u = 0.01
     alpha = 1
     S0 = 100
     t = 1
     r = 0.05
     q = 0
     sigma = 0.3
     strike, call_prices = carr_madan_fft_call_pricer(N, d_u, alpha, r, t, S0, q, BlackScholes(sigma).set_type('chf'))
     ffn_pricer = spline_fitting(strike, call_prices, 2)
     exp_res = 19.6974
     res = ffn_pricer(90)
     self.assertAlmostEqual(exp_res, res, 4)
Пример #3
0
    def test_carr_madan_fft_vg(self):
        N = 2 ** 15
        d_u = 0.01
        alpha = 1

        S0 = 100
        t = 1 / 12
        r = 0.1
        q = 0
        sigma = 0.12
        theta = -0.14
        v = 0.2
        strike, call_prices = carr_madan_fft_call_pricer(N, d_u, alpha, r, t, S0, q, VarianceGamma(theta, v, sigma).set_type('chf'))
        ffn_pricer = spline_fitting(strike, call_prices, 2)
        exp_res = 10.8289
        res = ffn_pricer(90)
        self.assertAlmostEqual(exp_res, res, 4)
Пример #4
0
    def test_carr_madan_fft_heston(self):
        N = 2 ** 15
        d_u = 0.01
        alpha = 1

        S0 = 100
        t = 0.5
        k = 2
        r = 0.03
        q = 0
        sigma = 0.5
        theta = 0.04
        V0 = 0.04
        rho = -0.7
        strike, call_prices = carr_madan_fft_call_pricer(N, d_u, alpha, r, t, S0, q, Heston(V0, theta, k, sigma, rho).set_type('chf'))
        ffn_pricer = spline_fitting(strike, call_prices, 2)
        exp_res = 13.2023
        res = ffn_pricer(90)
        self.assertAlmostEqual(exp_res, res, 4)