Example #1
0
    def test_model_cache(self):
        opt = Option(opt_type=OptionType.CALL,
                     spot0=90,
                     strike=100,
                     mat=3.0 / 12,
                     vol=0.35,
                     riskless_rate=0.10,
                     yield_=0.025)

        self.assertEquals(0, len(opt.model_cache))
        self.assertAlmostEquals(
            3.19,
            opt.run_model(
                model=OptionModel.BINOMIAL_TREE)[OptionMeasure.VALUE],
            delta=0.01)
        self.assertEquals([OptionModel.BINOMIAL_TREE], opt.model_cache.keys())
        self.assertAlmostEquals(
            3.19,
            opt.run_model(
                model=OptionModel.BINOMIAL_TREE)[OptionMeasure.VALUE],
            delta=0.01)

        opt.model_cache[OptionModel.BINOMIAL_TREE][OptionMeasure.VALUE] = 42.42
        self.assertAlmostEquals(
            42.42,
            opt.run_model(
                model=OptionModel.BINOMIAL_TREE)[OptionMeasure.VALUE],
            delta=0.01)

        opt.vol = 0.55
        self.assertAlmostEquals(
            6.76,
            opt.run_model(
                model=OptionModel.BINOMIAL_TREE)[OptionMeasure.VALUE],
            delta=0.01)
Example #2
0
    def test_model_cache(self):
        opt = Option(opt_type=OptionType.CALL, spot0=90, strike=100, mat=3.0 / 12,
                     vol=0.35, riskless_rate=0.10, yield_=0.025)

        self.assertEquals(0, len(opt.model_cache))
        self.assertAlmostEquals(3.19, opt.run_model(model=OptionModel.BINOMIAL_TREE)[OptionMeasure.VALUE], delta=0.01)
        self.assertEquals([OptionModel.BINOMIAL_TREE], opt.model_cache.keys())
        self.assertAlmostEquals(3.19, opt.run_model(model=OptionModel.BINOMIAL_TREE)[OptionMeasure.VALUE], delta=0.01)

        opt.model_cache[OptionModel.BINOMIAL_TREE][OptionMeasure.VALUE] = 42.42
        self.assertAlmostEquals(42.42, opt.run_model(model=OptionModel.BINOMIAL_TREE)[OptionMeasure.VALUE], delta=0.01)

        opt.vol = 0.55
        self.assertAlmostEquals(6.76, opt.run_model(model=OptionModel.BINOMIAL_TREE)[OptionMeasure.VALUE], delta=0.01)