Пример #1
0
 def test_error_while_opitmizing(self):
     signals = {
         'buy': {'su.pa': 34.5},
         'sell': {'tec.pa': 45.4}
     }
     pf = TestPortfolio({'raise_fake_error': True})
     pf.trade_signals_handler(signals)
Пример #2
0
 def test_error_while_opitmizing(self):
     signals = {'buy': {'su.pa': 34.5}, 'sell': {'tec.pa': 45.4}}
     pf = TestPortfolio({'raise_fake_error': True})
     pf.trade_signals_handler(signals)
Пример #3
0
 def setUp(self):
     dna.test_utils.setup_logger(self)
     self.test_config = {'useless': 'parameter'}
     self.pf = TestPortfolio(self.test_config)
Пример #4
0
class PortfolioTestCase(unittest.TestCase):
    def setUp(self):
        dna.test_utils.setup_logger(self)
        self.test_config = {'useless': 'parameter'}
        self.pf = TestPortfolio(self.test_config)

    def tearDown(self):
        dna.test_utils.teardown_logger(self)

    def test_new_portfolio(self):
        ok_(hasattr(self.pf, 'log'))
        self.assertIsNone(self.pf.date)
        self.assertIsNone(self.pf.perfs)
        self.assertIsNone(self.pf.portfolio)

    def test_overload_initialize(self):
        ok_(self.pf.initialized)

    def test_portfolio_config(self):
        eq_(self.pf._optimizer_parameters, self.test_config)

    def test_advise_portfolio(self):
        eq_(self.pf._optimizer_parameters, self.test_config)
        self.pf.advise(test=True,
                       profile='fearless',
                       favorites=['goog', 'aapl'])
        self.test_config.update({
            'test': True,
            'profile': 'fearless',
            'favorites': ['goog', 'aapl']
        })
        eq_(self.pf._optimizer_parameters, self.test_config)

    def test_update_portfolio_state(self):
        self.assertIsNone(self.pf.date)
        self.assertIsNone(self.pf.perfs)
        self.assertIsNone(self.pf.portfolio)
        self.pf.update(portfolio='fake_portfolio', date='2014/12/25')
        eq_(self.pf.portfolio, 'fake_portfolio')
        eq_(self.pf.date, '2014/12/25')
        self.assertIsNone(self.pf.perfs)
        self.pf.update(portfolio='new_portfolio',
                       date='2014/12/27',
                       perfs='fake_perfs')
        eq_(self.pf.portfolio, 'new_portfolio')
        eq_(self.pf.date, '2014/12/27')
        eq_(self.pf.perfs, 'fake_perfs')

    def test_overload_optimize(self):
        alloc, e_ret, e_risk = self.pf.optimize(date='2014/12/25',
                                                to_buy={'su.pa': 34.5},
                                                to_sell={'tec.pa': 45.4},
                                                parameters={})
        eq_(e_ret, 0)
        eq_(e_risk, 1)
        eq_(alloc['date'], '2014/12/25')
        eq_(alloc['buy'], {'su.pa': 34.5})

    def test_trade_signals_handler(self):
        signals = {'buy': {'su.pa': 34.5}, 'sell': {'tec.pa': 45.4}}
        alloc = self.pf.trade_signals_handler(signals)
        self.assertIsNone(alloc['date'])
        eq_(alloc['buy'], signals['buy'])

    @raises(portfolio.PortfolioOptimizationFailed)
    def test_error_while_opitmizing(self):
        signals = {'buy': {'su.pa': 34.5}, 'sell': {'tec.pa': 45.4}}
        pf = TestPortfolio({'raise_fake_error': True})
        pf.trade_signals_handler(signals)
Пример #5
0
 def setUp(self):
     dna.test_utils.setup_logger(self)
     self.test_config = {'useless': 'parameter'}
     self.pf = TestPortfolio(self.test_config)
Пример #6
0
class PortfolioTestCase(unittest.TestCase):

    def setUp(self):
        dna.test_utils.setup_logger(self)
        self.test_config = {'useless': 'parameter'}
        self.pf = TestPortfolio(self.test_config)

    def tearDown(self):
        dna.test_utils.teardown_logger(self)

    def test_new_portfolio(self):
        ok_(hasattr(self.pf, 'log'))
        self.assertIsNone(self.pf.date)
        self.assertIsNone(self.pf.perfs)
        self.assertIsNone(self.pf.portfolio)

    def test_overload_initialize(self):
        ok_(self.pf.initialized)

    def test_portfolio_config(self):
        eq_(self.pf._optimizer_parameters, self.test_config)

    def test_advise_portfolio(self):
        eq_(self.pf._optimizer_parameters, self.test_config)
        self.pf.advise(
            test=True, profile='fearless', favorites=['goog', 'aapl'])
        self.test_config.update({
            'test': True,
            'profile': 'fearless',
            'favorites': ['goog', 'aapl']
        })
        eq_(self.pf._optimizer_parameters, self.test_config)

    def test_update_portfolio_state(self):
        self.assertIsNone(self.pf.date)
        self.assertIsNone(self.pf.perfs)
        self.assertIsNone(self.pf.portfolio)
        self.pf.update(portfolio='fake_portfolio', date='2014/12/25')
        eq_(self.pf.portfolio, 'fake_portfolio')
        eq_(self.pf.date, '2014/12/25')
        self.assertIsNone(self.pf.perfs)
        self.pf.update(
            portfolio='new_portfolio', date='2014/12/27', perfs='fake_perfs')
        eq_(self.pf.portfolio, 'new_portfolio')
        eq_(self.pf.date, '2014/12/27')
        eq_(self.pf.perfs, 'fake_perfs')

    def test_overload_optimize(self):
        alloc, e_ret, e_risk = self.pf.optimize(
            date='2014/12/25',
            to_buy={'su.pa': 34.5},
            to_sell={'tec.pa': 45.4},
            parameters={}
        )
        eq_(e_ret, 0)
        eq_(e_risk, 1)
        eq_(alloc['date'], '2014/12/25')
        eq_(alloc['buy'], {'su.pa': 34.5})

    def test_trade_signals_handler(self):
        signals = {
            'buy': {'su.pa': 34.5},
            'sell': {'tec.pa': 45.4}
        }
        alloc = self.pf.trade_signals_handler(signals)
        self.assertIsNone(alloc['date'])
        eq_(alloc['buy'], signals['buy'])

    @raises(portfolio.PortfolioOptimizationFailed)
    def test_error_while_opitmizing(self):
        signals = {
            'buy': {'su.pa': 34.5},
            'sell': {'tec.pa': 45.4}
        }
        pf = TestPortfolio({'raise_fake_error': True})
        pf.trade_signals_handler(signals)