Exemple #1
0
    def test_greeks(self):
        """
        From Matlab help for blsdelta, blsgamma
        """
        c, p = blsprice(spot=50,
                        strike=50,
                        risk_free_rate=.1,
                        time=0.25,
                        volatility=.3,
                        option_type=('Call', 'Put'),
                        calc='delta')

        matlab_c = 0.5955
        matlab_p = -0.4045

        self.assertAlmostEqual(c, matlab_c, 3)
        self.assertAlmostEqual(p, matlab_p, 3)

        g = blsprice(spot=50,
                     strike=50,
                     risk_free_rate=.12,
                     time=0.25,
                     volatility=.3,
                     option_type='Call',
                     calc='gamma')

        matlab_g = 0.0512
        self.assertAlmostEqual(g, matlab_g, 3)
Exemple #2
0
    def test_blsprice(self):
        """
        from maltab documentation of blsprice
        """
        p = blsprice(spot=585,
                     strike=600,
                     risk_free_rate=.05,
                     time=1 / 4.,
                     volatility=.25,
                     option_type=('Call', 'Put'),
                     dividend=0.045)

        self.assertAlmostEqual(p[0], 22.6716, 3)
        self.assertAlmostEqual(p[1], 36.7626, 3)

        v = blsimpv(p,
                    spot=585,
                    strike=600,
                    risk_free_rate=.05,
                    time=1 / 4.,
                    option_type=('Call', 'Put'),
                    dividend=0.045)

        self.assertAlmostEqual(v[0], .25, 3)
        self.assertAlmostEqual(v[1], .25, 3)
Exemple #3
0
    def test_blsprice(self):

        from quantlib.settings import Settings
        from quantlib.time.api import today
        Settings.instance().evaluation_date = today()
        call_value = blsprice(100.0, 97.0, 0.1, 0.25, 0.5)
        self.assertAlmostEquals(call_value, 12.61, 2)
Exemple #4
0
    def test_blsprice(self):

        from quantlib.settings import Settings
        from quantlib.time.api import today
        Settings.instance().evaluation_date = today()
        call_value = blsprice(100.0, 97.0, 0.1, 0.25, 0.5)
        self.assertAlmostEquals(call_value, 12.61, 2)
Exemple #5
0
    def test_greeks(self):
        """
        From Matlab help for blsdelta, blsgamma
        """
        c, p = blsprice(
            spot=50, strike=50, risk_free_rate=0.1, time=0.25, volatility=0.3, option_type=("Call", "Put"), calc="delta"
        )

        matlab_c = 0.5955
        matlab_p = -0.4045

        self.assertAlmostEqual(c, matlab_c, 3)
        self.assertAlmostEqual(p, matlab_p, 3)

        g = blsprice(
            spot=50, strike=50, risk_free_rate=0.12, time=0.25, volatility=0.3, option_type="Call", calc="gamma"
        )

        matlab_g = 0.0512
        self.assertAlmostEqual(g, matlab_g, 3)
Exemple #6
0
    def test_blsprice(self):
        """
        from maltab documentation of blsprice
        """
        p = blsprice(spot=585, strike=600, risk_free_rate=.05,
                     time=1 / 4., volatility=.25,
                     option_type=('Call', 'Put'),
                     dividend=0.045)

        self.assertAlmostEquals(p[0], 22.6716, 3)
        self.assertAlmostEquals(p[1], 36.7626, 3)

        v = blsimpv(p, spot=585, strike=600, risk_free_rate=.05,
                     time=1 / 4.,
                     option_type=('Call', 'Put'),
                     dividend=0.045)

        self.assertAlmostEquals(v[0], .25, 3)
        self.assertAlmostEquals(v[1], .25, 3)
Exemple #7
0
    def test_blsprice(self):

        Settings.instance().evaluation_date = today()
        call_value = blsprice(100.0, 97.0, 0.1, 0.25, 0.5)
        self.assertAlmostEquals(call_value, 12.61, 2)