I was trying to learn how to work out the performance of a portfolio where you are long one stock and short another.

I found an example below. The NAV is calculated by adding the value of the long stock (100) plus the cash line (58.16) and minus the short stock (58.16). Guessing this cash line is the amount raised by shorting stock XYZ?

             Long               Short

             Stock              Stock                Cash       NAV       Return %
             ABC                XYZ
             Price   Value      Price    Value
     1st Jan 12.11   100        17.83    58.16       58.16      100
     2nd Jan 11.84   97.79      17.5     57.08       58.16      98.87     -1.1317
     3rd Jan 11.62   95.96      17.03    55.55       58.16      98.57     -0.3046

My question is though, is how to replicate those returns but when given weights & shares instead. For example,

Lets say you are long 8.25754 shares in ABC & short 3.26173 shares in XYZ.

The returns below are based on the prices above.

          ABC        XYZ
          Return %   Return %
  1st Jan 
  2nd Jan -2.21       -1.85
  3rd Jan -1.88       -2.69

So I am able to calculate the return for the 2nd of Jan by doing the following,

  Assume starting NAV of 100,

  weight of ABC is 100%
  weight of XYZ is 58.16%

  So total return is (-2.21 * 1) - (-1.88 * 0.5816) = -1.13%

But whatever I do I can't get a return for the 3rd Jan of -0.3046%. How do I calculate this value?

  • $\begingroup$ Your example seems to have a lot of rounding error in it, making it difficult to reproduce. We can infer that on the first day you own 100/12.11 = 8.257638 shares of ABC, but on the second day you seem to have 97.79/11.84 = 8.259291 shares which is not the same number of shares! It is a poor example IMO. $\endgroup$
    – Alex C
    Mar 12, 2019 at 22:54
  • 1
    $\begingroup$ The correct way to do this is to have the exact number of shares (say 825) and the exact price (say 12.11). Do all calculations accurately, in dollars and cents. Every day you compute NAV = M2M value of Longs - M2M value of shorts + Cash. The return is then r = (Today NAV -Yesterday NAV) / Yesterday NAV $\endgroup$
    – Alex C
    Mar 12, 2019 at 22:56

2 Answers 2


While it is of course possible to apply standard definitions of returns, one needs to bear in mind that a long/short portfolio may end up having a net negative value. Thus:

i) You cannot use continuously compounded returns. Starting out with a positive portfolio value, continuously compounded returns can never take you to a negative portfolio value whatever large negative returns you consider.

ii) Discrete single-period returns: $R=(V_{T+1}-V_T)/V_T$. With discrete returns, it is possible to go from positive portfolio values to negative portfolio values. However, once the portfolio is in the regime of negative values, positive returns mean (somewhat paradoxically) that portfolio values go more negative.

When attempting to use continous returns, the problem is basically that the difference of two lognormal distributions cannot be described by a lognormal distribution, as it exhibits negative values too.


What seems to be your problem? Which calculations do you do that will not give you a decent answer?

Your portfolio value is NAV = 98.87 and the next day it is: NAV=98,57.

$$ r=\frac{NAV_1-NAV_0}{NAV_0}=\frac{98.87-98.57}{98.57} = -0.0030=-0,30\% $$

Also, be aware that you weights are not $1$ and $0.5816$ anymore but $$ w_{ABC}= 97.79/98.57 $$ $$ w_{XYZ}= 57.08/98.57 $$

(I would personally have defined $w$ such that $w_{XYZ}=- 57.08/98.57$, but that does not mater)


Your Answer

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

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