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)
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)
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)
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)
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)
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)