I have a trading strategy that results in a number of holdings, each of which has a variable number of days held, and obviously, return. So, for example, suppose I run a Monte Carlo simulation, and on average I get the following holdings:

return: 0.01, days held: 5
return: -0.005, days held: 10
return: 0.04, days held: 2
return: 0.002, days held: 7

Assuming that each holding has a fixed percentage of capital allocated to it, how would I go about computing an estimated annual yield, assuming a fixed amount of cash. You can see, for example, that the 2nd holding not only loses money, but it also holds up capital for 10 days. It's not sufficient to simply compute return / day and average them, because of this opportunity cost implication.

Is there an analytical solution to this computation?

You are looking for the internal rate of return. You do have to be careful with it because there will be one root for every time a cash flow switches from an outflow to an inflow and back so if you had an outflow followed by an inflow followed by an outflow you may have two roots. If that is the case, you have to test both roots. You would use the actual dollar values and not returns. Days with no transactions would have zeros. Don't use an inbuilt function such as IRR in Excel as it is not guaranteed to be the true IRR, but instead the first root it found. It runs a search routine and offers you the chance to guess.

You can also do the modified internal rate of return, which assumes you have a fixed reinvestment rate.

  • Thanks Dave, but IRR does not measure opportunity cost. If I compute mean IRR for 100 sample investments, and one investment takes 10% of capital for 100 days, during those 100 days, I only have 90% of capital to trade with. – user1130176 Apr 12 at 11:14

Your Answer


By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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