Magic Formulas ... and reBalancing

I often need certain magic formulas, so I thought I'd ...
>You thought you'd stick 'em here, right?
Right.
Suppose your portfolio has annual returns of r_{1}, r_{2}, ... r_{n}, over n years
... where r = 0.123 corresponds to a 12.3% return
Then the total gain is:
[1] G = (1+r_{1})(1+r_{2})...(1+r_{n})
... meaning that $1 grows to $G in n years
Okay, let's take the log of this guy, giving:
[2] logG = log(1+r_{1}) + log(1+r_{2}) +...+ log(1+r_{n})
... since the log of a product is the sum of the logs
Then [2] becomes:
[4] logG = r_{1} + r_{2} + ... + r_{n}
 (1/2)(r_{1}^{2} + r_{2}^{2} + ... +r_{n}^{2})
Aah, but e^{logG} = G and we know that:
[5] e^{z} = 1 + z + (1/2!)z^{2} + (1/3!)z^{3} + ...
Again, we ignore powers of z greater than 2 and take: e^{z} = 1 + z + (1/2)z^{2}


That allows us to get, from [4]:
[6] G = e^{logG}  = EXP[r_{1} + r_{2} + ... + r_{n}
 (1/2)(r_{1}^{2} + r_{2}^{2} + ... +r_{n}^{2})]
  = 1 + [r_{1} + r_{2} + ... + r_{n}
 (1/2)(r_{1}^{2} + r_{2}^{2} + ... +r_{n}^{2})]
+ (1/2)[r_{1} + r_{2} + ... + r_{n}
 (1/2)(r_{1}^{2} + r_{2}^{2} + ... +r_{n}^{2})]^{2}
... approximately
  = 1 + [r_{1} + r_{2} + ... + r_{n}
 (1/2)(r_{1}^{2} + r_{2}^{2} + ... +r_{n}^{2})]
+ (1/2)[r_{1} + r_{2} + ... + r_{n}]^{2}
... ignoring higher order terms

We'll write this up fancy:
nyear Gains
(1+r_{1})(1+r_{2})...(1+r_{n})
 = Π (1+r_{k})
... where Π means the product
  = 1 + Σr_{k} +
(1/2)[Σr_{k}]^{2} 
(1/2)Σr_{k}^{2}
... where Σ means the sum

... approximately, for small numbers r_{k}

Now we'll look again at [1], but this time we'll consider the annualized gain factor:
[1A] G^{N} = (1+r_{1})(1+r_{2})...(1+r_{n})
... meaning that an annual gain of G gives the final value of a $1.00 portfolio, over n years
Continuing, we get (taking logs):
[2A] N logG = log(1+r_{1}) + log(1+r_{2}) +...+ log(1+r_{n})
= r_{1} + r_{2} + ... + r_{n}
 (1/2)(r_{1}^{2} + r_{2}^{2} + ... +r_{n}^{2})
= Σr_{k}  (1/2)Σr_{k}^{2}
... as we did above
So
[2B] logG = (1/N) Σr_{k}
 (1/2N)Σr_{k}^{2}
so that
[2C] G = exp[log(G)]
= 1 +
[(1/N) Σr_{k}
 (1/2N)Σr_{k}^{2}]
+ (1/2)[ (1/N) Σr_{k}
 (1/2N)Σr_{k}^{2}]^{2}
and, since we're neglecting powers of the r_{k} higher than "2", we get:
Annualized Returns
[(1+r_{1})(1+r_{2})...(1+r_{n})]^{1/N}
 = 1 +
(1/N) Σr_{k}
 (1/2N)Σr_{k}^{2}
+ (1/2N^{2}) [Σr_{k}]^{2}

... approximately, for small numbers r_{k}

Note:
Since the Variance of a set of returns is given by:
Variance = (average of the squares)  (the square of the average)
we can replace the average of the squares, namely (1/N)Σr_{k}^{2},
by Variance + (the square of the average).
That is, we can put: (1/2N)Σr_{k}^{2}
 (1/2)[(1/N)Σr_{k}]^{2} =
(1/2)Variance
That gives:
Annualized Returns
[(1+r_{1})(1+r_{2})...(1+r_{n})]^{1/N}
 = 1 +
(1/N) Σr_{k}
 (1/2)Variance
  = 1 + Mean  (1/2) Variance

... approximately, for small numbers r_{k}
Note: This gives an approximation to the Compound Annual Growth Rate, namely:
CAGR = Mean  (1/2) Variance

>Approximately.
Yes, but you can click here to play with a
spreadsheet to see how good (or bad) it is.
>So you're talking about a portfolio with a single stock, right?
Wrong. I'm talking about a series of annual (or weekly or monthly) returns: r_{1}, r_{2}, r_{3}, ... ...
If your portfolio is made of, say, two assets with returns
a_{1}, a_{2}, a_{3}, ... ... and
b_{1}, b_{2}, b_{3}, ...
and you rebalance annually to maintain a fraction x of your money in the first asset and y = 1  x in the second asset,
then your annual portfolio returns would be:
r_{1} = xa_{1}+yb_{1},
r_{2} = xa_{2}+yb_{2},
r_{3} = xa_{3}+yb_{3}, ...
Of course, if you just invest $x in the first asset and $y in the second (with $x+$y=$1.00), and you did NOT rebalance,
then, after n years, your $1.00 portfolio would be worth
x(1+a_{1})(1+a_{2})...(1+a_{n})
+ y(1+b_{1})(1+b_{2})...(1+b_{n})
reBalancing ... yes or no?

>Shall I ask the burning question?
Sure. Go ahead.
>Which is larger?
A fair question. If
P^{n} = (1+xa_{1}+yb_{1})(1+xa_{2}+yb_{2})...(1+xa_{n}+yb_{n})
= Π (1+x a_{k}+y b_{k}) ... with rebalancing
and
If Q^{n} = x(1+a_{1})(1+a_{2})...(1+a_{n})
+ y(1+b_{1})(1+b_{2})...(1+b_{n})
= xΠ (1+a_{k}) + yΠ (1+b_{k}) ... withOUT rebalancing
which is larger? P or Q?
>And the answer is ...taDUM!
It depends upon the returns, eh?
If I select 50 random returns for each of assets A and B, and pick xfractions
(to devote to asset A), we can get
better CAGR with rebalancing, or sometimes withOUT rebalancing, or sometimes it depends upon how much is devoted to asset A.
sometimes reBalancing is better 
sometimes reBalancing is worser 
sometimes it depends upon x 
Notice that, when x = 0% or 100%, the two CAGRs are the same. You're investing in just one asset.
These charts are available in the spreadsheet noted above
The two sets of 50 returns are randomly chosen from Normal distributions to (sorta) mimic actual returns.
>Okay, but maybe rebalancing reduces volatility.
And if you regard volatility as "risk" (heaven forbid!), then it'd reduce risk, eh?
Let's try that again ... with our 50 randomly selected returns for each of assets A and B.
As before, we consider varying the fraction of asset A (that's x).
sometimes reBalancing is better 
sometimes reBalancing is worser 
sometimes it depends upon x 
These charts are available in the spreadsheet noted above
Note:
In another tutorial
we talked about Bernstein's socalled Rebalancing Bonus.
In fact, Bernstein's "bonus" is never negative **, implying that rebalancing is good ... indeed, it's always good.
Alas, that ain't (always) the case
**
Bernstein's "bonus" = (1/2) x y ( VAR[A] + VAR(B)  2 COVAR(A,B) )
and, if U and V are the Standard Deviations of assets A and B, and r is their correlation coefficient, then this can be written:
Bernstein's "bonus" = (1/2) x y (U^{2} + V^{2}  2 r U V ) ≥
(1/2) x y (U^{2} + V^{2}  2 U V ) = (1/2) x y (U  V)^{2} ≥ 0
Note that, over n years, the nonreBalanced portfolio has an annualized growth rate according to Q, where:
If Q^{n} = x(1+a_{1})(1+a_{2})...(1+a_{n})
+ y(1+b_{1})(1+b_{2})...(1+b_{n})
As a function of x, that rightside is a straight line.
In contrast, a rebalanced portfolio has an annualized growth rate according to P, where:
P^{n} = (1+xa_{1}+yb_{1})(1+xa_{2}+yb_{2})...(1+xa_{n}+yb_{n})
and that rightside ain't hardly a straight line!
However, the Pchart starts and ends at the same point as the Qchart
... when x = 0% and x = 100%
So what does the Pchart look like:
We'll do a wee bit o' calculus here:
 n log P = log(1+xa_{1}+yb_{1}) + log(1+xa_{2}+yb_{2}) + ...
 n d/dx (log P) = (n/P) dP/dx = (a_{1}b_{1})/(1+xa_{1}+yb_{1})
+ (a_{2}b_{2})/(1+xa_{2}+yb_{2}) + ...
= Σ(a_{k}b_{k})/(1+xa_{k}+yb_{k})
 So dP/dx = (1/n) P Σ(a_{k}b_{k})/(1+xa_{k}+yb_{k})
= (1/n) P ΣW_{k}
... where we put W_{k} = (a_{k}  b_{k})/(1 + xa_{k} + yb_{k})
 Then d^{2}P/dx^{2} = (1/n) dP/dx ΣW_{k}
 (1/n) P ΣW_{k}^{2}
... since dW_{k} / dx =  W_{k}^{2}
 So (using 3) d^{2}P/dx^{2} = P
[(1/n)ΣW_{k}]^{2}
 P (1/n) ΣW_{k}^{2}
 We can then write:
[A] (1/P) dP/dx = (1/n) ΣW_{k} ... from 3
 [B] (1/P) d^{2}P/dx^{2}=
[(1/n)ΣW_{k}]^{2}
 (1/n) ΣW_{k}^{2} ... from 5

>Wake me when you're finished ...
Let M = (1/n)ΣW_{k} be the mean of the W's.
Then we can rewite things like so:
(1/n) ΣW_{k}^{2}  =
(1/n) Σ(W_{k}  M + M)^{2}
  = (1/n) Σ(W_{k}  M)^{2} + (1/n) 2M Σ(W_{k}  M) + (1/n) ΣM^{2}
  = (1/n) Σ(W_{k}  M)^{2} + (1/n) 2M 0 + (1/n) (n M^{2})
... noting that Σ(W_{k}  M) = 0 since M is the mean of the Ws.
  = VAR[W_{k}] + M^{2}
...where VAR is the Variance (or StandardDeviation^{2}) of the W_{k}

Then we can rewrite [B] above, like so:
[C] (1/P) d^{2}P/dx^{2}
= M^{2}  [VAR[W_{k}] + M^{2}]
=  VAR[W_{k}]
Since Variance = StandardDeviation ^{2} is never negative, the Pcurve has a negative secondderivative ... hence is concave down.
That means that, with rebalancing, the Pcurve begins and ends at the points where the Qcurves begins and ends,
but is concave down, so ...
>So the maximum, with rebalancing, is somewhere between x = 0% and x = 100%, right?
Sometimes ...
We saw in an earlier investigation here , that if:
[7]
P^{n} = Π (1+x a_{k}+y b_{k})
gives the final value of a $1.00 portfolio, With rebalancing.
then the annualized gain factor is (approximately) :
P = 1 + x a +y b
 (1/2){
x^{2} VAR(A) +
y^{2} VAR(B) +
2x y COVAR(A,B)
}
Similarly, if the annualized Gain Factors for each of assets A and B are
A and B respectively, then:
A^{n} = Π (1+a_{k})
and
B^{n} = Π (1+b_{k})
and (approximately) :
[7A.a] A = 1 + a  (1/2)VAR(A)
[7A.b] B = 1 + b  (1/2)VAR(B)
where a and b are the average (or mean) returns and (remember!)
A and B are the annualized gain factors... for each asset.
>Aren't you changing your notation?
Uh ... yeah, to keep you awake.
Anyway, it's not reasonable to compare P to x A + y B since the latter doesn't represent the gain factor of the nonreBalanced portfolio.
Indeed, the nonreBalanced portfolio has an nyear gain of x A^{n} + y B^{n}, hence an annualized gain factor of:
[8] Q = [ x A^{n} + y B^{n} ] ^{1/n}
If we look at the size of the terms in, say, A = 1 + a  (1/2)VAR(A) we might get something like:
1 + 0.08  (1/2)(0.02) = 1 + 0.08  0.01 = 1 + 0.07
so it's very near the value 1.0
Then, as an approximation, let's use (1+z)^{n} ≈ 1 + nz when z is small.(and n isn't too large!).
That'd give:
[8A.a] A^{n} ≈ 1 + na  (n/2)VAR(A)
[8A.b] B^{n} ≈ 1 + nb  (n/2)VAR(B)
and finally:
[8B] Q = [ x A^{n} + y B^{n} ] ^{1/n}
= [ 1 + n (xA + yB)  (n/2) (x VAR(A) + y VAR(B) ] ^{1/n} noting that x + y = 1
Now let's use (1+z)^{1/n} ≈ 1 + (1/n)z and we'll get:
[8C] Q
= 1 + (xA + yB)  (1/2) (x VAR(A) + y VAR(B)) approximately
And now, finally, we consider the difference:
[8D] P  Q
= (1/2) (x VAR(A) + y VAR(B)) 
(1/2){
x^{2} VAR(A) +
y^{2} VAR(B) +
2x y COVAR(A,B)}
approximately
Aah, but there are terms involving x  x^{2} = x (1x) = xy and y  y^{2} = y (1y) = xy so we get finally:
>How many times have you said "finally"?
Pay attention!
We now have the "real" rebalancing bonus:
[9] P  Q
= (xy) (1/2){VAR(A) + VAR(B))  2 x y COVAR(A,B)}
approximately
>But that's the same as Bernstein's bonus ... isn't it?
Uh ... yes, so it is.
I guess that (1+z)^{n} = 1 + nz isn't such a good approximation.
Let's check:
z = 0.1, n = 30  (1+z)^{n} = 17.4  1 + nz = 4 
z = 0.1, n = 10  (1+z)^{n} = 2.6  1 + nz = 2 
z = 0.1, n = 5  (1+z)^{n} = 1.6  1 + nz = 1.5 
>Pretty lousy, I'd say.
Yeah, that approximation is like using simple interest rather than compounding the returns.
I guess the moral is that you may get Bernstein's rebalancing bonus for the short term, but ...
>And the long term?
Okay, let's investigate. First, we note that:
z = 0.1, n = 30  (1+z)^{1/n} = 1.0032  1 + (1/n)z = 1.0033 
z = 0.1, n = 10  (1+z)^{1/n} = 1.0096  1 + (1/n)z = 1.010 
z = 0.1, n = 5  (1+z)^{1/n} = 1.019  1 + (1/n)z = 1.020 
>So using (1+z)^{1/n} = 1 + (1/n)z is good, eh?
Yeah, so now we'll use an improved approximation for (1+z)^{n}, namely (1+z)^{n} ≈ 1 + n z + (1/2)n(n1)z^{2}
Look again at [7A.a] and [7A.b], namely
[7A.a] A = 1 + u ≈ 1 + a  (1/2)VAR(A) where u is the annualized return
[7A.a] B = 1 + v ≈ 1 + b  (1/2)VAR(B) where v is the annualized return
We'll use our new, improved approximation to get:
[8A.a] A^{n} ≈ 1 + n u + (1/2)n(n1)u^{2}
[8A.b] B^{n} ≈ 1 + n v + (1/2)n(n1)v^{2}
Then
xA^{n} + yB^{n} = 1 + n (xu+yv)
+ (1/2)n(n1) (xu^{2}+yv^{2})
putting x + y = 1
and, using (1+z)^{1/n} = 1 + (1/n)z, we get:
[10] Q = [ x A^{n} + y B^{n} ] ^{1/n}
= 1 + (xu+yv) + (1/2)(n1) (xu^{2}+yv^{2})
Now consider P again:
P
 = 1 + x a +y b
 (1/2){
x^{2}VAR(A) +
y^{2}VAR(B) +
2xy COVAR(A,B)
}
  = 1 + x [ u + (1/2) VAR(A) ]
+ y [ v + (1/2) VAR(B) ]
 (1/2){
x^{2}VAR(A) +
y^{2}VAR(B) +
2xy COVAR(A,B)}
putting a = u + (1/2)VAR(A) and b = v + (1/2) VAR(B)
  = 1 + x u + y v + (1/2) x y { VAR(A) + VAR(B)  2 COVAR(A,B) }
putting x  x^{2} = y  y^{2} = xy

If we subtract from Q from P we get, finally, the difference between the reBalanced and nonreBalanced gains:
P  Q =
(xy) (1/2){VAR(A) + VAR(B))  2 COVAR(A,B)}
 (1/2)(n1) (xu^{2}+yv^{2})
>I recognize that first piece. Isn't he ...?
Bernstein's Rebalancing Bonus? Yes. Interesting, eh?
But now we have an extra "correction", namely (1/2)(n 1) (xu^{2}+yv^{2})
>Uh ... what's that u and v, again?
They're:
u = a  (1/2)VAR(A)
v = b  (1/2)VAR(B)
which are the annualized returns for assets A and B ... approximately
>Everything is "approximately", right?
Yes.
Okay, how big is this correction? Remember that the Bernstein "Bonus" is typically less than 1%.
If the annualized returns u and v are, say about 8% (or 0.08) then the correction is about
(1/2)(n 1) (x 0.08^{2}+y 0.08^{2})
and, for a 5050 allocation (so x = y = 0.5) and n = 10 years, we'd get something like 3%.
>Wow! That's a huge"correction" !
Ain't it though ... and maybe the next correction would be even larger
>And the next correction term is ... what?
I think it's (1/3!) (n1) (n2) (xu^{3}+yv^{3}) so, for n = 10 and x = y = 0.5, this is about 1%.
In general, I guess we should write the rebalancing bonus as:
Rebalancing Bonus =
(xy) (1/2){VAR(A) + VAR(B))  2 COVAR(A,B)}
 (1/2!)(n1) (xu^{2}+yv^{2})
 (1/3!) (n1) (n2) (xu^{3}+yv^{3}) + ...

Note that the terms get smaller when (1/m!) n^{m1} u^{m} and (1/m!) n^{m1} v^{m} are small.
For example, for n = 10 and u = 0.08, then
(1/m!) 10^{m1} 0.08^{m} = 0.0032 when m = 2
and (1/m!) 10^{m1} 0.08^{m} = 0.0085 when m = 3
and (1/m!) 10^{m1} 0.08^{m} = 0.0017 when m = 4
and ...
>Enough! We're talking approximations, approximations, approximations ...
Uh ... yes, but I think we can conclude that the "bonus" is reduced for assets that are highly correlated
(so COVAR(A,B) is large) and whose annualized returns are large
(so u and v are large).
