《量化交易之门》连载30:从凯利公式开始谈资金管理

凯利公式解决了一个确定的胜率和赔率的情况下,每次用多少资金去冒险的问题,假设一个简单的丢硬币的赌局,丢到正面你得到2元钱,丢到反面你输掉到1元钱,你一共有100元钱的总资产,你可以一次进行任意金额的押注,比如可以一次100元全压上,也可以一次压1元钱。

 

显然这是一个优势赌局,你每参加一次这个赌局,你就能够预期获利1元,应为丢硬币的胜率是50%,而赔率是2:1,即你赢的时候可以比输的时候多赢1倍的钱。

 

但是,你该用多少钱去**呢,显然你不能将你的本金100元全部**,虽然这是一个优势赌局,但是如果你用100元钱去**仍会有50%的输钱的可能,如果你输了你就会丢失本金而破产,这个赌局你就不能再进行下去了;但你也不能每次**1元钱,虽然你每次**1元钱永远不会有破产风险,但是你却错失了大量的利润,那么每次用本金多少来进行**才能最大化收益,这就是神奇的凯利公式能解决的问题。

 

凯利公式:f*=(bp-q)/b

 

其中

  • f* 为现有资金应进行下次投注的比例;
  • b 为投注可得的赔率;
  • p 为胜率;
  • q 为败率,即 1 - p;

 

我们将上面丢硬币的例子代入这个公式,f*=(bp-q)/b

 

  • f*=(2*0.5-0.5)/2
  • f*=0.25

 

也就是说,每次用0.25的本金去**参与这个赌局,到最后将获得最大化的收益,我们把这个代入excel表格来进行检验,具体的检验方法为:

 

1.在A列生成一个中轴为0,-1到1之间的随机数,代码为:=0+RAND()*(1-0)-0.5,这种生成方法可以保证负数和正数的概率分布均为50%,即胜率为50%。

 

2.在B列生成一个模拟赔率的代码:=IF(A1>0,"2",IF(A1<0,"-1"));这行代码保证了第二列种的所有数值随机(50%)的分布为2或-1。

 

3.然后再将C列D列等要换算的比例输入进入,=B1*0.25*本金;这个值就是每次赚或亏损的钱。

 

4.然后加总计算就可以得到最终的值来进行比较。

 

我进行了5次检验,检验结果为:

我们可以看到,无论输赢的分布如何变化,只要是胜率和赔率可以确定的赌局,如果用凯利公式计算得到的数值作为资金管理依据的话,最终结果会收益最大化。

 

很多人第一次接触凯利公式的时候,第一反应就是这么厉害的资金管理工具,能否应用在期货交易的资金管理上呢?比如一个趋势交易系统,胜率为30.83%,盈亏比为4.53:1,(赔率为4.53),那么代入凯利公式中计算得到:

 

  • f*=(bp-q)/b
  • f*=(4.53*30.83%-69.17%)/4.53
  • f*=0.1556

 

在这种系统下,每一笔交易可以接受的最大止损为15.56%,最终可以获得最大化收益。

 

明显,这个结果不符合现实,如果现实中一笔资金按照这个比例来进行交易的话,无论是心理还是本金的回撤都是受不了的。

 

这里有哪些问题?凯利公式错了吗?还是应用方面出现了问题?

 

最大的问题在于金融市场的厚尾性,这是一个反复提及的问题,因为金融市场的输赢分布并不是和简单的赌局一样随机分布的,而是会出现连续的亏损或盈利,也就是说,一个30%胜率的单品种交易系统,出现连续10次止损是司空见惯的事情,甚至会出现连续3年均不盈利的极端情况,而凯利公式的一个假定环境是分布结果是随机的。如果这个系统是一个多品种的交易系统,那么你还必须要考虑相关性的问题,因为金融市场中很多品种都是同向变动的。

 

这是现实情况和理论的差距所在,如果你不去分析现实环境和理论环境的区别,盲目的套用凯利公式或者简单的认为凯利公式不适合用于金融市场,都不是明智之举。

 

我对凯利公式的应用主要是其对一个资金管理方法的检验性,如果我采取一个资金管理方法计算出每次应该得到的仓位,那么我会用凯利公式去验证这个结果差距大不大,如果比较接近,可以更多的相信之前的资金管理方法是有效的。

 

举个例子,目前我采取的资金管理方法是20%的最大历史回撤1.5倍为极限的反推开仓资金(我的自有资金可以承担更高的风险),也就是说,在市场环境不变的情况下,我期望将风险控制在30%之内。

 

30%的风险控制就是我的目标,那么如果用一个单品种来运行这个策略的话,我的风险不能超过30%的回撤,超过这个值,就算破产风险,假设这个策略的胜率和赔率刚好为30%和4.5,那么以上凯利公式所计算的数值15.5%就可以用于计算这个策略的开仓资金。

 

我们暂时忽略单品种的厚尾性,而简单的认为它是随机分布的,那么我会将30%的最大亏损与15.5%相乘,得到4.65%,那么这个值就是我在这个单品种策略上每一次交易最大所能接受的亏损。这个值是一个理论上亏损控制在30%以内,能够获得最大收益的值,用这个止损的值再来反推开仓资金,而不是止损的幅度,这种算法就是基于凯利公式的最优开仓算法。

 

但是,必须值得注意的是,这个值忽略了两个方面,第一是品种的连续止损情况,第二是黑天鹅事件,因为市场有时候会出现极端情况导致无法在你计划的止损位出场,所以为了安全起见的话,理论的开仓资金要低于这个值而不能高于这个值,凯利公式在这里的意义在于,如果你能够得到一个盈亏和胜率确定的系统而计算出来的开仓资金大于这个比例的话,你就要回过头去检验到底哪个环节出了问题。

 

凯利公式第二种应用方法是,你可以假定一个周期为一个完整循环,比如一个多品种组合策略,可以用一个月作为一个周期来分析胜率和赔率,然后将凯利公式来进行计算。

 

应用举例:我将某个有优势的组合策略的每个月盈亏情况做了统计,统计结果如下:

 

我们将月度盈亏做成柱状图,可以很直观看到在这6年的72个月中,盈利和亏损的分布情况:

然后假设每个月就是一次交易信号,那么盈利的月份有41个月,亏损的月份有31个月,那么胜率就是57%,总盈利是3539302,平均盈利是3539302/41=86324;总亏损是(1317807),平均亏损是(1317807)/31=42509,那么赔率就是86324/42509=2.03。

 

将胜率57%,赔率2.03代入凯利公式进行计算。

 

  • f*=(bp-q)/b
  • f*=(2.03*57%-43%)/2.03
  • f*=0.3581

 

第一感觉是,月度亏损是不可控的,你无法将这个亏损幅度刚好控制在35.81%,这个比例有什么意义呢?如果按照刚才思路,最大亏损要控制在30%以内,那么能够接受的亏损额度为30%*35.81%=10.7%。

 

10.7%的值,也仅仅只有辅证作用,但它告诉我的是,按照这个系统运行,如果要保证未来的回撤不高于30%的情况下(单利,最高点浮盈回撤),最大化收益的平均(这里不是最大)月度亏损为10.7%为最佳,如果某个月的资金单利回撤高于这个数值太大,我就要去检测原因,是否因为前期市场盈利过多的正常回吐,还是策略出现了问题。

 

作为交易而言很难去确认每次**的赔率,并且胜率的分布也不是随机分布的,加之不同品种之间的相关性等因素,所以凯利公式作为一个工具应用于保证金交易市场的意义并不如21点那么大,凯利公式的研究,更多的可以是一种对博弈资金管理的探讨和兴趣,并且通过凯利公式可以告诉人们,资金管理的重要性。

 

相关推荐:

[ 文章 ] 《量化交易之门》连载31:资金管理对账户的实际影响

免责声明:信息仅供参考,不构成投资及交易建议。投资者据此操作,风险自担。
如果觉得文章对你有用,请随意赞赏收藏
209982340 1人赞赏收藏
相关推荐
相关下载
登录后评论
Copyright © 2019 宽客在线