「精华帖分享」栏目,文章来源于量化小论坛精华帖,每周一更。原唯有论坛特定用户可阅读,现精选后分享,帮助大家了解更多量化相关内容,开拓投资交易思路。
本文来源于量化小论坛策略分享会板块精华帖,作者为Craig,发布于2024年6月3日。
量化小论坛
/bbs.quantclass.cn/
「量化小论坛」于2020年开放,为邢不行课程同学的交流论坛。由股票、B圈、分享会等不同板块组成,目前已有35000+帖子,5000+篇精华帖。
想了解更多论坛相关内容,可以加我微信xbx297,与我交流。
以下为精华帖正文:
“投资之道不在公式,而在心境。领悟凯利公式的真义,方能驾驭财富之舟,稳健航行。” ——Kelly
本文分享下我最近研究凯利公式的一些理解和思考,与大家探讨。不涉及策略代码,后续如果有不错的仿真和实盘的研究心得再发帖分享。
01
凯利公式
凯利公式(也称“凯利方程式”)是一个在期望净收益为正的独立重复赌局中,使本金的长期增长率最大化的投注策略。该公式于1956年由约翰·拉里·凯利(John Larry Kelly)在《贝尔系统技术期刊》中发表,可以用来计算每次游戏中应投注的资金比例,随后被索普应用于二十一点和股票市场中。
1 | 基本思想 |
凯利公式的基本思想是最大化长期投资的复利增长,主要用于确定在有正期望值的投资或下注中应投入的比例。如果你的策略具有正的期望收益,那么你应该适度地增加投注,但又不能过度,以免风险太大。
在现实世界中,投资者面临的通常是一种风险环境,即使你的策略胜率占优,你也不能保证每一次投资都会赢。这就是凯利公式的应用场景。当你遵循凯利公式进行投资时,即使在一段时间内有输的投资,只要你的策略在长期中期望占优,你的投资本金将会按照复利增长。若赌局的期望净收益为零或为负,凯利公式给出的结论是不赌为赢。
2 | 从扔硬币到凯利公式 |
一个简单的扔硬币的例子是,假设一个抛硬币猜正反的简单赌局,每局赌注1元,猜中除赌注外另得2元,猜错了输掉赌注1元,那么作为长期参与,每次应该投入本金的多少参与赌局呢?
凯利公式告诉我们,在这样一个存在风险的环境中,我们应该按照凯利公式(1)的仓位参与赌注,可以获得最大长期复利回报。推导过程参考下文“凯利公式的一般形式”小节的推导。
其中:f*为投注比,即投注额的本金占比(%);b为投注获胜可得的赔率;p为胜率,即获胜概率;q为败率,也就是1 - p(胜率)。
上述情况中,猜中赔率b=2,胜率p=50%,带入公式后算得f*=25%。也就是说,在这个抛硬币赌局中,如果所有的条件都不变,且能够无限次重复的情况下,每次投入所持有本金的25%,可以在不输光本金的前提下实现收益最大化。
3 | 直觉与反直觉 |
上文的案例告诉我们:猜中赔率b=2,胜率p=50%时,每次下注最优比例为25%。这似乎与我们的直觉有点出入,因为赔率2,胜率50%的赌局是一个对我们极其有利的赌局,这么有利的情况下投入的比例居然只有25%。
那么,我们来看几个案例来更深入的理解一下。
我们可以罗列几种其他的情况下,凯利公式建议的下注比例(小于等于0时即不建议参与游戏)
从结果来看,有两个结论:
(1)胜率和赔率越高时,我们应该下比较大仓位的赌注;
(2)不管我们的胜率和赔率有多高,我们最多只下不高于本金的仓位,也即在这个抛硬币的游戏中永远不加杠杆。
结论(1)与我的直觉是一致的。一个游戏胜率和赔率越高,越有利于参与者,那么可以下更高的注。但是结论(2)似乎有点奇怪。第一是在前文提到的b=2,p=50%这种有较大优势的赌局中,下注的比例居然如此之小;第二是即使胜率高达90%,赔率高达10,我们也从不下全部本金或者加杠杆下注。
就这个疑问,我们可以设置4个模拟实验(针对P=50%,b=2,每局分别下注**10%,25%,50%,75%**)来看看结果,模拟1000次抛硬币的赌局。模拟代码如下:
4种场景模拟结果如下:
从模拟情况可以看到,结论是符合凯利公式的,下注比例在10%和25%时,1000局游戏后本金爆炸式增长,比例25%较10%又多出很多收益,下注比例50%的情况则波动剧烈,资金积累远远慢于前两种情景,而下注比例为75%时,在不到20局游戏后,本金基本归零。
其实仔细研究这几次情景模拟可以发现,当下注比例较大时,一旦发生赌输的情况,我们损失的资金比例也会较大。即使当胜率很高时,我们仍然有可能出现赌输的情况而失去全部赌注,这也是为什么在这个会失去全部赌注的游戏中我们不全仓的原因。从“长期投资”的角度来看,即使很小概率的事件也必然发生,甚至在现实生活中,小概率事件发生的实际概率要远远的大于模型计算得出的理论概率。从风险的角度来看,投资者一旦遇到这种肥尾效应,将会在短期承受极大的损失。
02
量化与凯利公式
基于上文这个初始的凯利公式,可以推广到适用于金融市场的形式。当研究一个仓位配置策略的时候,该策略每一次交易都可以看作是一次赌局,而针对这些交易需要决策出最优的仓位,也就是赌局中的最佳押注比例。每次交易与赌局最大的不同点在于,当投资失败时,投资者不会一次性损失掉全部资金,而是损失投资成本的一部分,对应在赌局中也就是押注金额的一部分。
1 | 凯利公式的一般形式(标准凯利公式) |
为了使凯利公式的应用更具普遍性,这里考虑二分情况下输不一定亏完本金,而是亏损一定比例本金的情况,推导出凯利公式的一般形式的过程。过程很简单,简述如下:
假设初始本金为A0,进行N次独立重复实验,每次投注比例为f,成功的概率为p,获利比例为b,失败的概率为q,亏损比例为c。
求导取最大值得:
看到这里大家也不难发现,前文的凯利公式(1)其实就是上面公式(2)在“失败时亏损全部”情况下的一个特解(c=1)。
这样就将赌局中的凯利公式推广到了量化投资策略中对过去某一时间周期进行最优化仓位计算的凯利公式,其中p和q分别是确定的计算周期内某个时间维度下某一投资策略的上涨概率和下跌概率,b和c分别是策略盈利时的涨幅和策略损失时的跌幅。这也是常见的标准凯利公式。
2 | 凯利公式内涵理解 |
1、下注比例(f)
凯利公式推广到一般形式后,我们可以发现,公式发生了一些重大变化:现在凯利公式推荐的下注比例f,可以大于1了。f理论上可以在(-∞,+∞)之间变化,这会引起凯利公式应用的问题。
例如胜负率均为50%的情况下,如果胜能带来10%的收益,而负带来5%的亏损,根据凯利公式,我们可以得到每次下注仓位为5,也即5倍杠杆下注,这显然是不合理的,原因在于当我们应用于股票或者币时,估算的胜负率是一个统计平均值(假设估算基本可靠),而不是确定值。也就是说,50%情况下我能收获平均10%的收益/5%的亏损,这是一个均值,或者换一种说法就是,我的收益/亏损率是一个[-100%,+∞)范围的分布,均值是10%和-5%。那么在实际某个周期中,亏损一旦是-20%,账户将归零,这显然有悖凯利公式的初衷:最大化长期收益的同时,也要确保始终留在游戏中。对于这种因建模不准确而带来的问题,在本章最后会讨论一个更加一般化的凯利公式。
目前论坛大部分帖子中采用的凯利公式既不是公式(1),也不是上式(2),而是采用了一些变形,将公式(1)中的参数b赋值成胜利的赔率除以失败的赔率(即公式2中的b/c),虽然表达形式和式(1)还是一样,但是其中b的含义不同。
这种处理方法实际上是将式(2)乘了一个系数c,即
这是一种凯利公式的变形,又叫分数凯利。可能有些老板用了这种变形,但是都没有意识到。这其实是一种为了让仓位不至于过大的变形,这里的处理(乘以c)可以确保杠杆永远小于等于1。
2、胜率赔率因子(P,b)
根据凯利公式,可以看到,f本质上是胜率、赔率等因子的组合。在量化中,这几个指标均可以作为评价一个投资的因子,实际中也是如此,在我们股票或者币框架的评价中,都有胜率和每周期平均收益的评价指标。
从公式直观上来看,胜率和胜赔率越大、负率和负赔率越小,那么得到的下注金额就越大,这和我们的直觉是一致的。当胜率为1且胜赔率大于0时,我们应该用无限大的杠杆来下注,因为此时任何一次下注都是胜利的,且都有正收益。
量化中,通过前期标的的胜率、赔率来进行后续的预测,从而决定仓位或者买卖依据,是一种很正常的做法。因此,凯利公式实际上可以理解为通过胜率赔率因子的组合构建的一种组合因子,只是他在满足特定前提下,是有严格的数学基础和理论支持来证明因子的有效性的。
3、周期(N)
凯利公式的应用依赖于对胜率和赔率的准确预测。然而,很多时候,尤其是在投资市场中,这几个变量是难以精确估计的。如果预测得不准确,使用凯利公式可能导致过度投资或者投资过少。
目前在股票或者币上应用凯利公式普遍是通过对前N周期的胜率赔率统计平均来估计的,因此因子的计算可能会由于选取的周期n(采样次数)的不足而过于粗糙,影响估算的准确性。例如抛硬币,如果只是抛十次,虽然每次正反面的概率都是50%,但是实际中很可能出现6正4反,或者7正3反的情况,而如果通过后者的情况估算实际正面概率,误差将大大增加(假设投资中胜负赔率为1,70%胜率(7正3反)情况下计算仓位为0.7-0.3=40%,而50%胜率情况下仓位为0%),而如果采用n=100,相对来说,通过抛硬币出现正反面的情况估算概率应该更趋向于实际概率50%。
因此,出于对模型的准确性角度出发,个人认为n不应过小。可能很多老板在实际测试中会发现,小参数(n)情况下,效果不一定比大参数差,但是,我想这可能不是凯利公式本身的逻辑在起作用了。
4、再平衡(rebalance)
凯利公式的每一次下注比例f都是基于当前的总资金来的,这其实是凯利公式中蕴含的一个重要思想,就是再平衡(rebalance)。它强调在不同的时间点上,根据市场条件和投资组合的表现计算的凯利公式值,来调整投资标的的比例,以保持最佳投资策略,其本质是高抛低吸:只要投资标的净值下跌,就增加现金买入,这就是低吸加仓。相反净值上涨,就会把部分标的卖出,相当于高抛,长此以往,标的价格不创新高,也能赚钱。
例如100元本金按照50%的比例花50元买入A标的1份,当A跌到30元时,总资产是80元,此时按照50%的比例,会再买入10元A使得持有40元的A标的共1.333份,那么当A在涨回50元时,我们持有的总资产变成40+50*1.333=106.65元,而此时我们需要卖出50*1.333-106.65/2=13.325元以维持持仓比例50%。
可以看到,通过rebalance,投资者可以实现高抛低吸,这是凯利公式所具备的一种天然的特性,从而保持长期的资本增长率。
3 | 仓位管理 |
凯利公式是一种用于确定最优赌注或投资比例的方法。那么应用在金融市场中,它的一大应用就仓位管理分配。对于单个投资标的,凯利公式可以做的就是通过仓位(杠杆)的调整,以期获得最大的收益。而对于多个投资标的,凯利公式可以做的就是仓位分配。
凯利公式虽然在理论上能最大化长期资本增长,但其建议的仓位比例可能过大,如2.2.1节所分析的,分数凯利是最常用的调整方法之一,通过减少凯利公式计算出的最优仓位比例的一部分,投资者可以降低投资的波动性和风险。一般的做法是乘以一个小于1的系数,常见的是0.5或0.25,即半凯利(Half Kelly)或四分之一凯利(Quarter Kelly)。通过降低仓位比例,可以在享受凯利公式带来的增长优势的同时,有效控制风险和波动性,但是一般来说,收益会有一定减少。结合止盈止损或者其他风险管理策略,投资者可以更加稳健地运用凯利公式进行仓位管理。
4 | 更加一般化的凯利公式 |
我们知道,凯利公式讨论的是“成功的话赚一定比例的钱,失败的话投入将全部亏损”情况下的最优下注比例。标准凯利公式讨论了只有输赢,但是输了不一定亏完本金,可能只是亏损一定比例的情形。但现实中,往往赌注的结果并非只有两种,可能既有赢10%、20%,还有亏损30%、50%的情况等等。
参照前面标准凯利公式的定义和推导,我们可以建实验结果从胜负2重结果推广到n种,对于实验结果i,假设概率为pi,对资金产生的影响为ri,则类似上文推导过程我们有:
取对数后有:
当G(f)取得最大值时,f即为最优值。然而对于G(f)最大值的代数求解,在n>=3时是比较困难的,可以采用数值计算方法。
更一般地,令pi对应股票/币的相对投资收益率r的概率密度函数g(r),我们可以将式3用积分的形式来表示:
特别地,如果我们假设股票/币价格服从对数正态分布,我们就可以对上式进行化简,并进行最大值求解,感兴趣的老板可以深入研究一下。
03
凯利公式的局限性和总结
前面提到,凯利公式是权衡风险与回报以控制投资比例,实现长期收益最大化的。凯利公式给了我们管理风险的一种思路,它告诉我们投资的风险固然存在,但我们可以通过控制自身的仓位以尽可能地将单次投资的风险控制在合理的水平。短期内我们无法控制几次投资的成功与否,但只要投资的期望收益是正的,我们总是可以通过科学的方法计算出最佳投资策略来实现长期收益的最大化,这也正是凯利公式的重要意义。
当然,不可否认的是凯利公式也有其局限性。以下对凯利公式及其应用做一个总结:
1、**凯利公式能够帮助投资者合理分配资金,最大化长期回报,降低风险。**这个公式告诉我们,对于任何有正期望值的投资机会,长期投资的比例应该是多少。然而在实际应用中,我们还需要注意公式的局限和前提条件,并结合实际情况具体分析。
2、**市场是复杂的。**我们无法对每个投资都正确估计出它的成功概率和收益率。凯利公式的应用依赖于对胜率和赔率的准确预测。然而,很多时候,尤其是在投资市场中,这两个变量是难以精确估计且不稳定的,会受到许多因素的影响,比如市场环境、宏观经济、公司基本面、政策风险等等。这种不稳定性增加了凯利公式应用的难度和风险,也是凯利公式在应用中最致命的缺陷。
3、**投资是风险和回报的平衡。**任何只谈回报,不谈风险的投资就是在耍流氓。凯利公式就是在处理这样的问题:在一个存在风险的环境中,你应该如何分配你的投资,以最大化你的长期复利回报。然而,需要注意的是,凯利公式并不能消除风险,它只是提供了一个理论上的最佳投资比例。在实践中,凯利公式可能会建议较高的仓位比例,特别是在预期的回报率远大于损失时。投资者可能需要考虑到其他的风险因素,比如市场的波动性,自身的风险承受能力等,所以可能不会完全按照凯利公式的建议进行投资。
4、**时间是最优质的资产。**凯利公式是一个渐进最优的投资策略,只有进行足够长时间的投资,它的优势才能得以显现。它不适用于一次性的大投资,凯利公式的理论基础是多次重复的投资或赌博。
综上所述,虽然凯利公式在理论上是一个优秀的投资工具,但在实际投资环境中,由于上述挑战和限制,它的应用需要更加谨慎,同时可能需要结合其他投资工具或策略。
04
最后
我想,凯利公式最重要的一点是向我们揭示了一个核心的生存和成功原则,就是无论你面对何种情况,都要确保自己保有下一步行动的能力。最大化长期收益的同时,也要确保始终留在游戏中。
最后,引用关于凯利公式的一段话共勉:
“凯利公式只是一个公式,绝非神器。对于输赢的概率,绝大多数时候只能是主观判断。决策一定是面向未来的,充满不确定性的。凯利公式将决策的”跨期“拆成了一个个单元,将时间变成了离散的下注区间。在这个过程中,主观概率亦能够随着时间而愈发逼近真相,此亦贝叶斯更新。某种意义上,这是超越“人在时间洪流中只能活在当下”的局限性,进行整体的并发性思考。人生总是起起伏伏,有输有赢。不要孤立地看待此生的某一个角落,也不要用某一个时刻为此生定性。所谓大局观,包括对空间、时间、事件、自我、“本金”的整体性思考。时间,才是你我此生最大的本金。未来依然是宽广的,忘掉沉没的过往,也不要在狭窄的地方纠缠不清。不管风雨有多大,关键是让自己留在牌桌上,等好运再次降临。”
对量化小论坛感兴趣的同学,可以加我微信xbx297,与我交流。
也欢迎大家来论坛发帖交流,原创帖如被加精,也可获得葫芦奖励。
长按查看葫芦介绍
联系作者
往期文章推荐
妙用市场情绪找出大盘买卖点,逆向交易5年3倍 | Python量化期权成交量,上证50ETF择时
300W才能开通,A股自动交易公平吗?散户如何实现程序化交易?| 附A股程序化交易实盘演示
趋势之王or虚有其表?Python量化25种均线用法,哪些有用,哪些没用?
低风险、高收益?可转债缘何走上神坛?网红可转债策略能赚钱吗? | 附Python量化选债代码
抱最狠的团,亏最多的钱?Python量化散户抱团,揭秘A股股东户数秘密 | 附代码
以前嗤之以鼻,现在逐字学习!用Python量化缠论,一键自动生成交易信号 | 附代码
技术指标消亡史:从独领风骚到泯然众人 | 量化交易者如何看待技 术指标,技术分析还能用吗?| 邢不行
微盘股还能买吗?量化轮动策略轻松跑赢指数12倍?!只会买指数ETF也能做量化?| 邢不行
大A为何频繁跳水,Python量化1200W条交易数据给你答案!| 邢不行
跟着基金买,别墅靠大海?买基金重仓股票,会破产吗?| 附最新选股结果 |【邢不行】
抓了几千万条热门股数据,用Python量化验证后发现结果竟然...... | 【邢不行】