Page 1 of 1

Kelly Sizing Basics

Posted: Wed Jul 19, 2017 1:21 am
by AHA
Hi I'm new to the forum and I have some questions about how you would go about applying Kelly sizing to an equity portfolio.



I understand that in the limit of a small edge and if µ is small relative to σ the trading fraction according to the Kelly criterion is approximately f=return over risk free rate/variance.



Most value PMs come up with some form of ex ante expected return and variance. Would you simply use these estimates for sizing?



The position size would then just be f in percent terms? i.e if f = 5 for Stock A and f=2 for Stock B with a 100k account, one would invest .05*100k = 5k in stock A and .02*95k = 1.9k in Stock. Or would it be 5k in stock A and 2k in Stock B.



I'm skeptical to see that that the order of investments can change the dollar amounts so dramatically. If we use the former then we will never invest all of our capital. The latter may imply lots of leverage or dry powder depending on how many potential investments we can identify.



Most of my f's come along the .5-3.0 range and their sum is approximately 50, ideally I would like to deploy all of my capital or even use some leverage.



Any thoughts or papers would be much appreciated.

Kelly Sizing Basics

Posted: Fri Aug 04, 2017 3:48 pm
by CokeHead
For multiple bets, Markowtiz mean variance may be a better way to handle it.

Kelly Sizing Basics

Posted: Sat Nov 11, 2017 6:58 pm
by finanzmaster
>For multiple bets, Markowtiz mean variance may be a better way to handle it.

Though Markowitz and Kelly are based on different assumptions, numerically they often deliver very similar results:

Max Dama, Kelly Criterion Position Sizing == Mean-Variance Optimization



In either case, neither Kelly nor Markowitz can be considered as "do as I say" approach.

The reason is, inter alia, extreme sensitivity of both methods to the parameter estimation errors.



Here is an R-script to make a simple Monte Carlo experiment:

#####set the "genuine" market parameters#######################

sigma1 = 0.4 #vola of the 1st asset

sigma2 = 0.3 #..of the 2nd asset

rho = 0.7 #correlation coefficient, must be in [-1, 1]

mu1 = 0.12 #expected return of the 1st asset

mu2 = 0.09 #..of the 2nd asset

rfr = 0.01 #risk-free return

N_SIM = 1000 #number of simulations



######## theoretical solution with "genuine" market parameters ########

library("mvtnorm") #multivariate Normal distribution

library("MASS") #[generalized] matrix inverse

covMatrix <- matrix(c(sigma1*sigma1, sigma1*sigma2*rho, sigma1*sigma2*rho, sigma2*sigma2), 2,2)

vectorOfMeanReturns = c(mu1, mu2)

H=chol(covMatrix)

print( "Optimal portfolio with TRUE market parameters" )

ginv(t(H)%*%(H)) %*% (vectorOfMeanReturns - rfr)





################################################################################

######## solution with market parameters, estimated from "historical" data #####

################################################################################

#### three trials.

### NB! All trials have identical input data but pretty different output! ###

for(trial in 1:3)

{

historicalData = mvrnorm(n=N_SIM, vectorOfMeanReturns, covMatrix)

empSigma1 = sd(historicalData[,1])

empSigma2 = sd(historicalData[,2])

empRho = cov(historicalData[,1], historicalData[,2]) / empSigma1 / empSigma2

empiricalCovMatrix = matrix(c(empSigma1*empSigma1, empSigma1*empSigma2*empRho,

empSigma1*empSigma2*empRho, empSigma2*empSigma2), 2,2)

empricialVectorOfMeanReturns = c(mean(historicalData[,1]), mean(historicalData[,2]))

H=chol(empiricalCovMatrix)

print( paste("Optimal portfolio with EMPIRICAL market parameters - TRIAL ", trial) )

print( ginv(t(H)%*%(H)) %*% (empricialVectorOfMeanReturns - rfr) )

}





If you want to dig deeply have a look at : my paper on Kelly Criterion