コード例 #1
0
 def test_get_returns_cash_only(self):
     portfolio = Portfolio({CASH: Decimal(1000)})
     act_dates, act_returns = portfolio.get_returns()
     self.assertEqual(len(act_dates), 365)
     self.assertEqual(len(act_returns), len(act_dates))
     self.assertEqual(act_returns[0][0], 1000)
     self.assertEqual(act_returns[-1][0], 1000)
コード例 #2
0
 def test_get_returns(self):
     portfolio = Portfolio({CASH: Decimal(1000), VFV: Decimal(1000)})
     act_dates, act_returns = portfolio.get_returns()
     self.assertEqual(len(act_dates), 365)
     self.assertEqual(len(act_returns), len(act_dates))
     shares = Decimal(1000) / Decimal('28.89')
     self.assertEqual(act_returns[0][0], 2000)  # starting CASH + VFV
     self.assertEqual(act_returns[-1][0], shares * Decimal('30.69') + 1000)
コード例 #3
0
 def test_get_returns_mismatched_dates(self):
     aaa_dates = np.array([[date(2016, 1, 1)], [date(2016, 1, 2)],
                           [date(2016, 1, 3)]])
     aaa_prices = np.array([[42], [43], [44]])
     bbb_dates = np.array([[date(2016, 1, 2)], [date(2016, 1, 3)]])
     bbb_prices = np.array([[57], [58]])
     AAA = FixedPricesInstrument('AAA', aaa_dates, aaa_prices)
     BBB = FixedPricesInstrument('BBB', bbb_dates, bbb_prices)
     portfolio = Portfolio({AAA: Decimal(1000), BBB: Decimal(1000)})
     act_dates, act_returns = portfolio.get_returns()