Alternative Finance

This site is dedicated to alternative finance and strategies that are meant to outperform the S&P 500, provide uncorrelated returns, and review esoteric areas of finance.

Normally, I detest most blogs. Honestly, if I was someone else, I would probably detest this one. Blogs, which can be great, but they can also be self-indulgent and predictable. I have friends that blog and when I receive an email that they have a new posting, it often goes straight to a Junk folder, where I either read it later or promptly delete it and am infuriated by the idea that someone has written something that I (or anyone else) would find remotely interesting or would take the time to read. I don't expect any different treatment of mine so harsh criticism or general apathy will be allowed (if not expected). I do regularly read some blogs and will try to keep this informative and well-written.

Wednesday, May 18, 2011

Kelly and Logarithmic Utility

You talk a lot about utility functions and investor objectives in asset allocation books (see Meucci's Risk and Asset Allocation).  Log utility is defined by the function: U(w)=ln^(-w), where w = wealth.  A good mathematical betting scheme that came to finance as a byproduct of information theory.  John Kelly's formula has been used by Bill Gross at PIMCO and Ed Thorp at Princeton/Newport Partners, to name a few.  In its simplest form: Pct of Capital to Allocate=P - (1-P)/W
    where P = Pr(Win)
              W= E[Win]/E[Loss]

Assumptions: 1) E[Win] and E[Loss] are known (unrealistic)
                     2)Pr(win) is known (also unrealistic)

Still, according to the law of large numbers, if you have lots and lots of trades or investments to sample from, you can use statistics to come up with these values.  Further, if you can enhance anything Bayesian forecasting (or updating), you can further enhance your knowledge for E[Win],E[Loss], and Pr(Win).

Here is a Matlab function with three input parameters to calculate an equity curve:

function [equity] = Kelly(p,PF,initialEquity)
%% Kelly criteria for logartihmic utiliity

optimalF=(p-((1-p)/PF));
equity=zeros(1,1000);
equity(1)=initialEquity;
  
for i=2:1000
    equity(i) = equity(i-1)+ (randn*optimalF);
end

And here is a script that generates 16 equity curves for different E[Win]/E[Loss] ratios and Probabilities for winning.
initialEquity=100000;
p=.35:.10:.65;
PF=.5:.5:2.0;

equityCurves=zeros(length(p)*length(PF),1000);

i=0;
for b=1:4
    for a=1:4
        i=i+1;
        equityCurves(i,:)=Kelly(p(a),PF(b),initialEquity)
        subplot(4,4,i);plot(equityCurves(i,:))
    end
end
   

Lastly, a graph of the plots: