Exemple #1
0
 def testInvestopedia(self):
     # http://www.investopedia.com/exam-guide/cfa-level-1/quantitative-methods/discounted-cash-flow-time-weighted-return.asp
     retTracker = returns.TimeWeightedReturns(200000)
     retTracker.update(196500)  # March 31, 2004
     self.assertEquals(round(retTracker.getLastPeriodReturns(), 4), -0.0175)
     retTracker.update(200000)  # June 30, 2004
     self.assertEquals(round(retTracker.getLastPeriodReturns(), 4), 0.0178)
     retTracker.deposit(20000)
     retTracker.update(222000)  # July 30, 2004
     self.assertEquals(round(retTracker.getLastPeriodReturns(), 2), 0.01)
     retTracker.update(243000)  # Sept. 30, 2004
     self.assertEquals(round(retTracker.getLastPeriodReturns(), 4), 0.0946)
     retTracker.deposit(2000)
     retTracker.update(250000)  # Dec. 31, 2004
     self.assertEquals(round(retTracker.getLastPeriodReturns(), 4), 0.0206)
     self.assertEquals(round(retTracker.getCumulativeReturns(), 6), 0.128288)
Exemple #2
0
 def testNoUpdates(self):
     retTracker = returns.TimeWeightedReturns(10)
     self.assertEqual(retTracker.getCumulativeReturns(), 0)
Exemple #3
0
 def testNullPortfolio(self):
     retTracker = returns.TimeWeightedReturns(0)
     self.assertEqual(retTracker.getCumulativeReturns(), 0)