最早的凯利公式是运用在赌博游戏中的,我们先看看赌博情形下凯利公式的特殊形式:
![][equtation]
[equtation]: http://latex.codecogs.com/svg.latex?f=\frac{p_{win}*b-p_{loss}}{b}
其中Pwin表示胜率,Ploss=1-Pwin,b表示赌赢了的赔率(扣除本金后的收益/本金)。f表示单次下注占总资金的比例。
就是这个精巧简洁的公式,将信息论与赌博之间的本质联系揭露出来,告诉我们在有限了解的信息下,如何下注能使得资本增值的速度最大化。
一个简单的例子
假想一个赌博游戏。赢的概率是60%,输的概率40%。入场费随意交。如果赢了获得2倍的入场费金额(b=1),输则输掉入场费。小编有100元做本金,请问小编每次给多少入场费,若干次游戏后几何期望收益能最大?
答:f = (1×0.6-0.4)/1 = 0.2。
也就是说最佳的策略是每次投剩余本金的20%。
这块不难理解,带入公式就能算出来。
注意两点:
1.从概率的角度说,一个期望净收益为负的游戏是不值得参与的,凯利公式也完美的体现了这一点。还是上面的游戏,如果赢的概率40%,输的概率60%,那么,期望净收益就是(1×0.4-0.6)<0;求得的f为-0.2。
负数仓位意味着你有上中两策可以选。中策选择不下注,上策是诱骗别人来跟你下注。
2.赌博版凯利公式只有在稳赢(赢概率=100%)时才会支持押下全部本金,否则都是本金的一定比例。随着本金的减少,下的注也越来越少。如果没有交易费用,下注可无限分割,我们是亏不完的(留得青山在,不怕没柴烧)。
下图能更直观的看到凯利公式对仓位的控制:如果押注的比例限制在0和1之间,对应不同的胜率(Pwin)和赔率(b)时,f会在三维空间上形成一个曲面。这个曲面与f=0对应的平面相交的那条黑线就是期望为0所形成的曲线。
接下来我们在股票操作中构建一个类似上述的赌博模型,然后引入凯利公式。
把股票模型转换为赌博模型
下图来自《财富公式:玩转拉斯维加斯和华尔街的故事》,看看凯利的结果还不错嘛。
股票的假设和赌博有点不一样。股票是一个连续的过程,未来某一个时刻的收益率不是固定的一个值,而是一个分布。
那么我们怎么做?
怎么做可以发挥各种想象力,我们提供一个思路。
首先,在西方那一套理论中,往往用随机游走来描述股价的波动:
怎么把模型转换成与赌博模型类似的呢?方法有很多,这里来一个简单粗暴的。设置一个止盈价格和止损线,碰到了就出局。如果取对数后的股价服从随机游走假设,并且初始点是上沿和下沿的正中间,按照理论,先碰到上沿和先碰到下沿的概率是一样的。(忽略漂移项)。
但是在实际情况中呢,股价不是所有的时候都服从这个随机游走模型。股价先碰到上沿的概率会高于先碰到下沿的概率。比如说,突然出一个利好,财报公布后超预期,降准降息啦,或者单纯的资金面涌入造成短时间多空失衡,等等。
我们管这些事件,或者与这些事件同时发生的一些现象称为信号。比如说,降息的事件本身,就是一个信号。利好之前可能会有人提前知道偷偷买,造成股价跌不下去,这个该跌不跌就是一个信号。资金的涌入造成成交量放大,这个成交量放大也是一个信号。
上图表示事件对股价形成了影响,整体概率分布向上偏移,先碰到止盈的概率大于先碰到止损的概率。
交易所做的事情,就是这么一个寻找信号的过程,找到有效信号,意味着信号背后的事件会使股价的概率分布偏离,赢的期望变大。同时我们设置止盈止损线,这样赔率也就固定了下来。
由此我们就把投资股票的过程转换成一个连续赌博的过程。信号发出就是我们入场点。止盈止损发生的时候,就是我们的出场点。赔率和损失率就是止盈止损与入场价格之差。一次入场和出场就相当于赌博模型中的单次赌博,单次赌博的仓位由凯利公式确定。
前文的赌博公式中,赔一次会输掉押注的所有金额。而由于在股市中,我们不会一次性赔光本金,而是赔掉本金的一定比例。所以我们需要使用一般性的凯利公式:
![][equtation2]
[equtation2]: http://latex.codecogs.com/svg.latex?f=\frac{p_{win}}{b}-\frac{p_{loss}}{c}
f:仓位比例
Pwin:赌赢的概率—股市上涨概率
Ploss:赌输的概率—股市下跌概率
b:赢钱率(资产从1增加到1+b)
c:损失率(资产从1减少到1-c)
假设我们找到了一个有效信号。并且根据历史上的统计,过去三年这个有效信号发生了1000次。以信号发出的价格为起点,在20%的正收益时止盈,在20%的负收益时止损。
那么在信号发出后,如果先触碰盈的次数570次,先触碰止损的次数430次(这里只是为了举例而做简化,实际中我们需要做更多的工作)。于是,我们就成功的把问题转换成了一个连续赌博的问题:有这么一种赌博,赢一次的赔率为20%,输一次的损失率为20%,赢率为57%
对应公式,有Pwin=0.57,Ploss=0.43,b=0.20,c=0.20
此时f=Pwin/c – Ploss/b = 0.57/0.20 – 0.43/0.20= 70%
也就是说,不管你现在剩余多少钱,应该买入剩余部分的70%的仓位。
接下来,我们用蒙特卡洛模拟的方法做一组测试,看看凯利公式是怎么发挥作用的。假设股票投机产生了T次信号。我们相应的按照上述参数随机生成胜率和赔率,做了T次投机。把这T次投机算成一组完整的投资过程,这样就会得到一个净值的序列。对于任意的T,我们将这个投资过程重复1000次,求净值的几何平数。
我们看看在不同的投机次数T下的效果:
T=100: