请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  数理科学 帖子:3364767 新帖:3

【量化课堂】凯利公式,你用对了吗?

专门套利发表于:5 月 10 日 03:04回复(1)

导语:众所周知,凯利公式揭露了信息论与赌博之间的本质联系,简约而不简单。  但是,重点来了!只有正确运用凯利公式,才能让你的净值增长如虎添翼。打开方式不对,就看不到成效。本文旨在给出凯利公式的正确使用方法,让我们了解在有限的信息里,如何*能使得资本增值的速度最大化。




某日,社区用户陈小米找到了本小编,说她在网上看到一篇凯利公式的介绍,但整个方法看着有点不严谨。后来经过我们的讨论,其假设确实有点牵强。所以后来我们一合计,凯利公式被人提到很多,网上的文章也很多,但总有点隔靴搔痒的感觉,同时社区内的有些朋友对于凯利公式不甚清楚。于是决定一起写篇东西吧,介绍介绍。

如果不去证明,只看凯利公式本身,它有着非常简洁的形式。在小编的量化体系中,凯利公式是基础中的基础。虽然基础,但是却是很重要的一环,可以说是小编整个量化体系的根基之一。

但须知差之毫厘,谬之千里。有如天龙八部中的易筋经,打开方式不对,你就看不到武功秘籍。而正确的使用凯利公式,有一个正确的方法论,才能让你的净值增长如虎添翼。
那怎么做呢?请继续往下看。

一、凯利公式产生的背景

人物介绍什么的就不多说了,总之,就是有那么一个牛人,找到了连续赌博中的最佳*比例公式,横扫赌场。后来他又以此构建了一个对冲基金,战绩不俗。
这个人的大头像也不贴了,陈小米的帖子里面有。我们直接开始正文:

二、赌博怎么用凯利公式?

最早的凯利公式是运用在赌博游戏中的,我们先看看赌博情形下凯利公式的特殊形式:

f=pwin?b?plossbf=pwin?b?plossb


f = \frac{p{win}*b-p{loss}}{b}


其中Pwin表示胜率,Ploss=1-Pwin,b表示赌赢了的赔率(扣除本金后的收益/本金)。f表示单次*占总资金的比例。
就是这个精巧简洁的公式,将信息论与赌博之间的本质联系揭露出来,告诉我们在有限了解的信息下,如何*能使得资本增值的速度最大化。


这个公式怎么来的,由于是普及向的文章,我们跳过了。各位就默认这个是对的就行:),真想深入,请看wiki链接:https://en.wikipedia.org/wiki/Kelly_criterion


一个简单的例子

假想一个赌博游戏。赢的概率是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所形成的曲线。

接下来我们在股票操作中构建一个类似上述的赌博模型,然后引入凯利公式。

三、把股票模型转换为赌博模型

下图来自《财富公式:玩转拉斯维加斯和华尔街的故事》,看看凯利的结果还不错嘛

股票的假设和赌博有点不一样。股票是一个连续的过程,未来某一个时刻的收益率不是固定的一个值,而是一个分布。


那么我们怎么做捏?
怎么做可以发挥各种想象力,我们提供一个思路。
首先,在西方那一套理论中,往往用随机游走来描述股价的波动:
                

怎么把模型转换成与赌博模型类似的呢?方法有很多,这里来一个简单粗暴的。设置一个止盈价格和止损线,碰到了就出局。如果取对数后的股价服从随机游走假设,并且初始点是上沿和下沿的正中间,按照理论,先碰到上沿和先碰到下沿的概率是一样的。(忽略漂移项)。
   

但是在实际情况中呢,股价不是所有的时候都服从这个随机游走模型。股价先碰到上沿的概率会高于先碰到下沿的概率。比如说,突然出一个利好,财报公布后超预期,降准降息啦,或者单纯的资金面涌入造成短时间多空失衡,等等。
我们管这些事件,或者与这些事件同时发生的一些现象称为信号。比如说,降息的事件本身,就是一个信号。利好之前可能会有人提前知道偷偷买,造成股价跌不下去,这个该跌不跌就是一个信号。资金的涌入造成成交量放大,这个成交量放大也是一个信号。

上图表示事件对股价形成了影响,整体概率分布向上偏移,先碰到止盈的概率大于先碰到止损的概率。

交易所做的事情,就是这么一个寻找信号的过程,找到有效信号,意味着信号背后的事件会使股价的概率分布偏离,赢的期望变大。同时我们设置止盈止损线,这样赔率也就固定了下来。
由此我们就把投资股票的过程转换成一个连续赌博的过程。信号发出就是我们入场点。止盈止损发生的时候,就是我们的出场点。赔率和损失率就是止盈止损与入场价格之差。一次入场和出场就相当于赌博模型中的单次赌博,单次赌博的仓位由凯利公式确定。


逻辑好通顺。


各位童鞋注意,这个信号嘛,是需要同学自己去找的(这就是你们要做的事情啊喂!找到有效的信号就可以赚钱了)。而一旦找到有效信号,由某种方法固化了胜率赔率,凯利公式就华丽登场了。

四、凯利公式登场以后呢?

前文的赌博公式中,赔一次会输掉押注的所有金额。而由于在股市中,我们不会一次性赔光本金,而是赔掉本金的一定比例。所以我们需要使用一般性的凯利公式:

f=pwinc?plossbf=pwinc?plossb

f = \frac{p{win}}{c} - \frac{p{loss}}{b}


其中:
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:

其中蓝线表示每次投机都是满仓;
绿线表示每次投机都是凯利公式给出的仓位(0.7);
红线是接近凯利公式的仓位(0.6);
还选了一个每次0.9的仓位,谁知道那个线的颜色是什么名字……

当T=100时,凯利公式仓位下净值增长最快,但是与其他仓位相比,优势不明显。


T=500:

此时,最接近凯利公式仓位的红线,尚能与凯利公式一战。其他仓位的净值已经与凯利公式拉开了距离。


T=1000:

各个仓位明显看到差距。凯利公式完胜!
说明如果想有效的应用凯利公式,你找到的信号不能太稀疏。否则的话随机的因素可能占据上风。但是随着你的交易次数增加,你的净值能否增长就是一个字:

大概率事件。
99.99%曰大概率。

接下来,还有些微小的工作:
加杠杆:
我们看看另外一种情况:现在你找到了一个信号,继续延续上文的方法,但止盈止损线都是2%。历史统计涨过2%的概率是0.7,跌破2%的概率是0.3。那么带入凯利公式,得到的f值是多少呢?
2000%,也就是20倍的押注。
这是什么鬼?!背后的实际意义是什么?
凯利公式在告诉你这个因子太好了,值得你作20倍的杠杆来操作么?如果是那样,我再贪心一点好不好,看下图,加到25倍显然就挫了。。。
                     

所以要理解,凯利公式判断押注比例的时候,是综合赢钱期望和输赢之间的差距(类似于方差的概念)进行的。如果说:
                                           

中,c=0,计算出来的f是无穷大。在现实中就意味着找到了一个项目,要么赚钱,要么持平,怎么都不会亏。理论上,我们能借多少就要借多少啊!

但理论是理论,实际是实际。前文中隐含的前提是借钱没有摩擦,没有费用,也没有利息的。而在现实中,借钱是有成本的。一般人也借不到这么高的杠杆。
即使凯利公式告诉你要使用高杠杆,我们也不建议加过高的杠杆。除了上述的财务摩擦之外,还有如下原因:

黑天鹅

由于篇幅有限,以后有机会写文章介绍一下长尾效应和黑天鹅。简而言之,我们股票上所有的概率赔率,都是基于历史数据的。而现实中,小概率事件的概率往往会被低估。

所以说,如果凯利公式告诉你,要压大仓位,可千万要三思。你要是不加思考傻乎乎的信了,出了一件在模型历史统计之外的事情,爆仓分分钟教你做人。
这么说有点抽象,打个比方,假设股灾前,你找了一个很好的信号,比如跌5%时大概率会反弹的这种。然后如上文所述,凯利公式给你的仓位比例是10倍。你压了两倍杠杆,还嫌少,又配资加到了5倍。

接下来发生了股灾,小概率事件一个接一个。第一天直接击破止损,还没等你反应过来,就跌停了卖不出去。第二天开盘跌停了,卖不出去;第三天开盘跌停了,卖不出去……

就问你怎么办。

永远记住:这个世界充满了因果性和蝴蝶效应。模型只是一个近似的替代。

真正的本金是什么?
有人说,凯利公式计算的仓位总是偏大。其原因嘛,除了上文中提到的,实际股票收益率的分布具有长尾因素,导致极端情况发生的次数比预计要多以外,还有一个原因是很多人没明白凯利公式的*比例所对应的本金到底是什么。

人们往往会认为凯利公式所针对*比例是全资产,但其实上并不是,凯利公式所针对的*比例是你可承受损失的资产。比如说,有一个私募,投入了1000w,但是有0.8的清仓线,其实只能承受200w的损失。那么在凯利公式里,f针对的本金其实只有200w,也就是说,如果f=0.7,你一次压上去的钱只有 200w*0.7=140w。

明白了没有?如果现在这个1000w亏的只剩 910w了,那么本金只有110w,一次*的钱只能是110w0.7=77w
而如果这个1000w赚到了1150w,那么本金就变成了(1150w-800w)
0.7=350w,需要压的数量就是350w*0.7=245w。

所以说,如果一个人虽然有100%的仓位,但是实际心理能承受的损失就是20%,那么此时就应该用这个20%作为本钱来带入凯利公式。如果用100%的仓位带入,结果会让你很烦躁。


差点忘了,那个错误的例子:
开头提到了,我们在网上找到了一个错误的例子。
注:后面的回测为错误例子
剖析一下:
         

我们画了一张图来理解本文的假设:
          

上面那段话的暗含的条件是,如果一年内最高价H=2,一年内最低价L=1,不论当前你的价格在那里,未来价格先碰到H的概率和先碰到L的概率都相等。
即Pwin = Ploss = 0.5的情况下,如果当前价为1.3, 此时该保持的仓位 f = (0.5×0.54-0.5×0.23)/(0.54×0.23) = 124.80%。
按照上文逻辑,挑选中信证券(600030.SH)进行回测(如果仓位大于100%,则调整成100%):
1.中信证券

哇塞,比一直持有更赚钱。
到这里,你以为你真的就可以一招吃遍天下,用凯利就可以躺着赚钱了吗?且慢,换一个标的试试。

2.嘉实沪深300ETF

纳尼?大师的一世英名岂不是要栽在这张回测图上了。说好的收益最大化呢??是不是哪里出错了??

问题出在哪?
问题出在假设中,文中假设任意的股票任意位置,先触碰最高价和先触碰最低价的概率都是0.5,这显然是不合理的强假设。因此可能一个股票刚好回测效果比较好,另外一个股票回测效果就比较差。

如果假设改进一下,比如先判断一下目前是不是一个震荡中枢里。如果在震荡中枢里,我们假设先碰到震荡下沿和上沿的概率相等,都是0.5。如果突破上沿,说明新的趋势形成,可以满仓追进去。如果跌破下沿,说明反向趋势形成,暂时避开。我觉得可能更合理一些。(这只是一个猜想,大家有兴趣可以验证)

哇。。。
好啦,少年。真正赚钱的是找有效的因子or信号,使得Pwin尽可能大,b尽可能大。而这个因子or信号的挖掘,就是作为矿工孜孜不倦追求的终极目标了。当你找到这样一个神奇的因子,你需要做的就是,用一种方法将其近似成连续的赌博模型。接下来,凯利公式就会给你指引一条正确的道路。

行动起来吧。加入宽客大军。


彩蛋:
评论区有朋友问,如果长期即碰不到上沿也碰不到下沿怎么办。其实这个问题就出在将股票模型转换为连续赌博模型的方法上,这就是该方法的缺陷所在。

如果各位仔细看,可以看出本篇文章中转换为赌博模型的方法,其实是加强了对赔率的控制,舍弃了对时间的控制。因为我们不知道何时才会触碰上下沿。

如果点赞转发数高,我再写一个固定时间,模糊赔率的股票投资至赌博模型转换方法。



全部回复

0/140

量化课程

    移动端课程