How does one calculate the return on a portfolio if the assets in that portfolio were held for varying periods of time?
For Example:

  • $t_0$ Buy AAPL at 100
  • $t_5$ Buy MSFT at 20
  • $t_1$$_0$ Sell MSFT at 30
  • $t_2$$_0$ Sell AAPL at 110
  • $t_2$$_5$ Buy MSFT at 40
  • $t_3$$_0$ Buy AAPL at 150
  • $t_5$$_0$ Sell AAPL at 160
  • $t_7$$_0$ Sell MSFT at 50

    Can we simply find the sum of annualized returns for each trade to find out what the annualized portfolio return was at $t_7$$_0$? Could we then do the same for another portfolio to compare the two portfolios from $t_0$ to $t_7$$_0$?

  • $\endgroup$
    • $\begingroup$ You forgot to tell us how much cash you started with. Return is a ratio of what you end up with over what you started out with. $\endgroup$
      – nbbo2
      Dec 3, 2015 at 15:56
    • $\begingroup$ @noob2 How do you determine the amount of cash to start with for back testing? What if that amount falls to 0? Instead, could we just normalize each price to 1? t0 =1, t5=1, t10=1.5, t20=1.10....etc. Would this work? $\endgroup$ Dec 7, 2015 at 23:36
    • $\begingroup$ If the amount of amount of cash is insufficient you have to borrow at a specified interest rate. And you have to check that the amount of leverage is realistic given the value of the collateral you have. Otherwise it is not a realistic simulation. $\endgroup$
      – nbbo2
      Dec 8, 2015 at 13:58

    2 Answers 2


    IRR and MIRR are probably the two textbook answers to your question.

    • $\begingroup$ I believe it's better to build from single returns. $\endgroup$
      – RndmSymbl
      Apr 27, 2016 at 21:50

    You would calculate return for each single position and for each segment of time. Following that you would geometrically link all these separate returns.


    Your Answer

    By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

    Not the answer you're looking for? Browse other questions tagged or ask your own question.