前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >仓位管理:超越凯利公式,梦回华尔街!

仓位管理:超越凯利公式,梦回华尔街!

作者头像
量化投资与机器学习微信公众号
发布2019-08-20 10:44:11
1.6K0
发布2019-08-20 10:44:11
举报

正文

爱因斯坦曾说过:“复利是世界第八大奇迹”。

世界上最强大的力量,不是原子弹,而是复利+时间

复利投资的关键除了本金与年化收益率,便是时间的神奇“魔力”。

我们来看看复利计算公式:

FV=PV*(1+i)^n

其中

  • FV:Final Value终值
  • PV:Present Value现值
  • i:收益率
  • n:投资期数

举个简单的例子,如果你有1万元资金,投资时间为5年,年化收益率为10%。五年后,你一共能拿回多少呢?按照上面的公式,结果就是:

FV=10000*(1+10%)^5=16105.1元

这是交易者需要理解的最重要的一个概念。

为了在金融市场上获得真正的财富,人们必须随着账户的增长扩大头寸规模。那么,我们应该在每个交易机会中承担多少比例的资本风险?今天的推文带你揭开这个答案。

案例1:抛硬币

让我们从一个简单的例子开始。假设在一个赌场,你和韩梅梅玩抛硬币的游戏,并根据结果下赌注。如果硬币是正面,你下注多少,韩梅梅就double你的注数;如果硬币是反面,你将输掉了整个赌注。那么,问题是,你应该拿自己的多少本金来玩这个游戏?直观地说,它应该低于100%。如果第一次抛硬币反面朝上,你就输的光溜溜了

在回答这个问题之前,我们将讨论期望的概念,其表示为所有可能结果的平均值:

其中

  • X:所有可能结果的随机变量
  • n:结果总数
  • x:每个结果的值

我们把这个值称为算术平均值。不过,我们更感兴趣的是几何期望值,也就是每次投注的预期资本回报率。这个数字越大,我们的财富累积速度就越快,最终资本价值也就越大。我们将其称为geometric holding period return(缩写为GHPR)。这个值的公式如下:

在抛硬币的例子中,这个等于(3*0)^(1/2)-1=-1。这告诉我们,如果一个人在每次抛硬币时都将其资本的100%用于风险投资,那么他的预期回报率是-100%;也就是说他失去了所有的钱。

代码如下:

Expected Value (Arithmetic): 50.0%

Expected Value (Geometric): -100.0%

分散赌注

如果我们每次都用1%的资金进行风险投资,潜在的结果将是2%的收益或1%的损失。让我们来看看在这个场景下的期望值:

Expected Value (Arithmetic): 0.5%

Expected Value (Geometric): 0.489%

由于每次投资的风险只占我们资金的一小部分,GHPR现在是正值。还要注意几何期望值小于算术值。其实,5%也只是一个猜测值!肯定有一个数字在1%到100%之间,可以在不破产的情况下使我们的资本增长最大化,凯利公式来啦!

凯利公式

在概率论中,凯利公式(也称凯利方程式)是一个用以使特定赌局中,拥有正期望值之重复行为长期增长率最大化的公式,由约翰·拉里·凯利于1956 年在《贝尔系统技术期刊》中发表,可以计算出每次游戏中应投注的资金比例。

其中

  • f:每次投注资本的最优比例
  • W:盈利概率
  • 1-W:亏损概率
  • R:赔率

我们来看看基于凯利公式的结果是:

Kelly f: 0.25

Expected Value (Arithmetic): 12.5%

Expected Value (Geometric): 6.06602%

最优f

我们可以通过遍历所有可能的结果并评估每个GHPR值来查看是否存在一个最佳的持股比例点。这将生成一条曲线,该曲线的峰值代表下注的最佳比例。Ralph Vince把这个值称为最优f。

代码如下:

Optimal f: 0.25

Expected Value (Arithmetic): 12.5%

Expected Value (Geometric): 6.066%

我们可以看到,这种方法返回的结果与凯利公式相同。我们很快就会发现这种方法可以将值插入公式中。同样重要的是,要从图表中注意到投资风险过大的影响。即使这个游戏的预期收益非常高。事实上,在你的账户中投资超过f的最优比例实际上会对复合增长产生负面影响。应该清楚的是betting big to win big的想法只在一定程度上是正确的。

案例二:掷骰子

下一个场景是掷骰子。现在让你下注。如果骰子出现偶数,韩梅梅付给你双倍的赌注。如果结果是奇数,你付给韩梅梅相同的倍数。我们看到这个游戏的算术期望是对你有利的。然而,为了评估这个游戏的几何平均收益,我们首先需要约束收益。如果你输五次,你付给韩梅梅5倍的赌注,你的赌资应该是你本金的1/5。

Expected Value (Arithmetic): 10.0%

Expected Value (Geometric): -100.0%

我们再次看到,如果你冒太大的风险,一开始看起来不错的赌注最终会让你破产。我们可以使用凯利公式来尝试确定每次下注的最佳投放量。

让我们通过评估曲线的峰值将其与最佳f值进行比较。

实际案例:市场收益

历史证明,股票市场是通过复利增长资本的可靠途径。让我们来看看为了获得最大的收益,我们应该在市场上投入多少资本!

在接下来的研究中,我们的数据基于标准普尔500指数ETF的日收益率:

让我们将凯利公式建议的分数与最优f进行比较。

凯利公式建议的分数实际上远不是最优的。在这种情况下,我们实际上应该投入更多的资本。为此,我们必须使用杠杆,要么通过借钱增加投注规模,要么利用期权或期货等带有杠杆的交易工具进行交易。

回撤

到目前为止,我们只专注于最大化我们的资本收益。如果投资于最优f,账户价值将是初始价值的60倍以上。然而,作为一个投资者,我们可能也同样关心我们所承担的风险。

代码:

为了实现最大收益,SPY自成立以来使用超过3倍的杠杆买入。这将产生最大的复合收益率,但会导致:

最大回撤:97.23%

在具有随机结果和正的数学期望的情况下,在每个事件上都有有限资金的最优部分。我们已经研究了两种确定这个最优比例的方法,凯利公式和最优f。我们还看到,风险超过这个最优比例并不会给赌徒/交易员带来任何额外的收益

回撤曲线

上面的例子表明,在最优f上投资SPY会导致一些极端的不适。让我们来看看如何构造一条类似于GHPR最大跌幅的曲线,通过增加头寸规模来增加最大回撤。另外还提供一个衡量指标:Ulcer Index,代码如下:

从图中可以看出,随着头寸规模趋近于最优f,收益率和最大回撤都在增加,降额在最优f处超过90%。随着我们进一步扩大规模,缩减继续接近100%。然而,收益开始下降。这强化了这样一个事实:通过增加规模来增加利润超过最优f是徒劳的。这样做只会带来更多的痛苦。

然而,许多投资者的承受力远远低于97%。大多数人都有一个心理极限,如果超过这个极限,他们就会把钱从桌子上拿走。各位:

回测和实盘真的不一样

如果一个人不能承担风险,那么回报就无关紧要了。出于这个原因,我们要努力下调超过我们极限点的限制曲线。新的有界曲线的峰值出现在实际的最优比例处。使用这部分资金将带来最大的收益,同时保护我们免受最大回撤的心理痛苦。

例如,假设我们希望在SPY中最大化我们的收益,而不让我们的亏损超过25%。

代码:

为了避免25%的回测,我们需要将杠杆从最优f值降低近9倍!

回撤让你清醒

对于从业人员来说,回撤是一个很好的风险指标,因为它最直接影响了他们的情绪。实际上,很少有交易员根据收益率的标准差或类似的波动性指标来决定是否遵循制定的策略。看着自己的账户余额从100万元亏到60万元,这是一种深刻的心灵体验

然而,使用回撤作为风险度量也存在许多限制。

收益顺序

与复合收益不同,最大回撤取决于实现收益的顺序。我们将在下面通过打乱标准普尔收益的顺序并研究由此产生的股票曲线来说明这一点。

我们看到,无论每日收益的顺序如何,每条曲线的GHPR都是相同的。使用传统定义的最优f不会区分这些曲线。然而,最大和最小的回撤的差异超过了20%!这是在只生成了10条曲线之后;我们将在下面看到,可能的值可以有很大的变化。

最大回撤:78.479%

最大回撤从不到30%到超过70%不等!这个范围比较广泛。如果我们想使用回撤作为风险度量,我们需要处理其固有的不确定性。我们无法完全限制预期回撤结果,因为最大回撤值可能会出现在很大范围内。然而,我们可以相当有信心地说,所经历的最大回撤不会超过我们的阈值。为了做到这一点,我们计算了可能超过我们的风险阈值的最大回撤情况的百分比。如果这个百分比太大,我们必须使用较小的仓位(头寸)。

时间范围

回撤的第二个重要特征是它依赖于时间范围。事实上,可以证明最大回撤与时间的平方根成正比(大家可以自己证明一下)。直观地说,一个账户下个月的最大回撤将低于下一年的最大回撤。为了准确地设置最大回撤的阈值,我们需要定义时间范围。

例如,我们可能会指定在明年(约250个交易日)内回撤不得超过25%。基于我们之前的研究,我们想以一定程度的确定性或信心来陈述这个约束条件。统计显著性的一般为5%。我们希望有95%的把握,在未来的一年里,回撤将少于25%。

为了确定在这些条件下的理想情况,对于0和1之间的每一个f值,我们将采用以下步骤:

  • 生成许多可能的权益曲线(类似于蒙特卡罗)。
    • 根据我们期望的时间范围,从收益分布中随机抽取一些收益作为样本。
    • 通常选择>1000来获得一个精确的回撤分布图。
  • 计算每条曲线的GHPR和最大回撤。
  • 确定在我们指定的置信水平上的回撤水平。
  • 记录GHPR值的中值(可以选择百分位数)。
  • 如果在我们指定的置信水平上的回撤值低于我们的风险阈值,则将中值GHPR指定为该f的GHPR值。
    • 如果不是,则设置GHPR = 0。以这样的仓位交易风险太大了。
  • 在这个新的f曲线中找到一个点,使GHPR的期望值最大化。

我们称这个点为“理想的f”。

使用这种方法,我们看到曲线更加参差不齐。这是由于使用蒙特卡罗模拟时所涉及的固有随机性。然而,我们观察到GHPR和回撤之间的一般关系与以前相同。有趣的是,这种方法建议使用的杠杆是之前确定性方法的2倍多。这有两个原因。

首先,我们大大缩短了时间范围。虽然第一次尝试使用了SPY的整个价格历史(近25年),而第二种方法模拟了未来一年的曲线。时间越短,我们预期的回撤就越少。其次,指数收益率等金融时间序列往往同时表现出波动性聚类和自相关性。这意味着单个收益并不完全独立于以往收益,这是我们在建模过程中使用的假设。为了解决这个问题,用于将结果输入到头寸调整算法的策略应该在做出买入/卖出决策时就应该考虑这些因素。

在这些计算中使用的收益必须代表预期未来收益。理想的情况是使用实际收益或paper trading的结果。如果必须使用回测的结果,建议尽可能使用样本外的结果。将过度优化的样本内结果代入这些公式,会低估风险,高估收益。如果你的策略在回测中夏普比率为8,但在实时交易中夏普比率接近0.5,那么你的杠杆将会很高,并很快超过你的风险承受能力。

现在,我们有了一种方法来确定我们理想的头寸规模占我们总账户净值的百分比。

但是,此方法只适用于单票收益。作为投资者,我们希望将多种资产和多策略组合到一个投资组合中去。

两枚硬币

在开始,我们研究了头寸大小对抛硬币游戏的影响。这次,我们要用两个硬币。为了显示不同程度的相关性所产生的影响,我们将尝试三种不同的场景:两种不相关的硬币、两种正相关的硬币和两种负相关的硬币。

头两场的结果和之前一样正面翻倍,反面输掉100%在第一个(非相关)场景中,潜在的结果如下:

因为两枚硬币都是同时抛的,所以我们必须在抛硬币之前下注。我们可以独立地对每一枚硬币下注,并以可能导致全部破产的金额为界限。在这种情况下,如果两个下注大小的总和>=100%,那么当场景4发生时,我们将保证损失所有的钱。根据这些投注规模计算出每个结果k的加权收益率R,计算公式如下:

其中

  • N:投注的独立结果总数
  • f:每个结果上的资金比例
  • x:每个结果的返回值

一旦我们有了这组加权收益,我们就可以像前面一样计算GHPR了。

现在的目标是通过找出资金在每个结果上的最优比例来最大化两个赌注组合的GHPR。我们可以通过迭代每个下注大小的组合,计算每个组合的GHPR值,然后查看峰值在哪里来实现这一点。

Output:

coin 1 0.230000

coin 2 0.230000

ghpr 0.119119

从上面的结果中我们可以看出,为了使我们的资金长期增长最大化,最优策略是将23%的资金投入到每一种结果上,并将赌注押在正面。。这意味着我们的总风险是每个事件帐户的46%(两次抛掷)。该策略的预期GHPR为11.9%。

在最开始的例子中,在相同的概率下,单次抛硬币的最佳比例是25%,预期GHPR为6.07%。使用两个不相关的硬币,风险和潜在收益都几乎翻了一番。在这一点上,你可能会想,“你为什么不把两倍的钱押在一枚硬币上呢?”下面的场景将说明为什么多样化对我们有利。

相关硬币

让我们来看看抛两枚完全相关的硬币的情况,也就是说,如果一个正面朝上,另一个正面朝上,反之亦然。这个游戏只有两种可能的场景:

我们可以用第一个方法来检验这个博弈的最优策略。

Output:

Coin 1 0.00000

Coin 2 0.25000

ghpr 0.06066

在这种情况下,最优策略遵循完全相同的策略,就好像他们只能押一枚硬币一样。事实上,就像在一枚硬币的情况下一样,完全忽略第二个赌注,在第一个赌注上押上你账户的25%。

负相关

我们将研究与第一枚硬币负相关第二枚硬币的情况。但问题是:第二枚硬币的期望值实际上是负的。

第二枚硬币的收益如下:反面,你仍然输掉100%的赌注。然而,如果出现正面,你只赢了60%的赌注。

乍一看,人们可能会想,你为什么要把自己的资本配置给第二枚硬币。这种游戏的算术期望值是每次输掉20%的赌注;这比赌场里的每场比赛都要糟糕!但是如果我们同时对这两个负相关结果下注,我们来看看结果:

Output:

Coin 1 0.790000

Coin 2 0.990000

ghpr 0.130646

对于这个结果,首先,最大GHPR实际上从11.9%增加到13.1%。其次,我们建议在每一个可打赌的事件上(需要使用借来的钱或杠杆)押注资金总额的近180%。最后,我们应该把更大的赌注分配给一枚硬币,随着时间的推移,它肯定会赔钱。这些似乎都与直觉相悖。

这个例子是人为设计的,只是为了说明,所以我们不会深入研究它。我们可以通过对这两种结果都下注来保证利润。没有哪家赌场会向你提供这样的场景,市场可能会套利任何类似的机会。然而,它证明了负相关的力量,以及为什么我们应该尽可能地寻找它。同样的效果也可以在不完全负相关的情况下看到同样的效果,但这会让这个例子变得过于混乱。

减少约束

在前面的论述中,我们讨论了为什么“最优f”并不完全是最优的,即由于在最大杠杆水平上遇到的极端下降。

修改后的代码:

对于本例,我们将使用一些实际的市场数据。从2005年到2015年:标普500指数(SPY)和长期国债(TLT)ETF的每日OHLC数据。这个窗口是任意选择的,但10年似乎是一个不错的时间窗口,这段时间包含了牛市、熊市、高波动性和低波动性。一旦我们有了价格数据,我们就可以计算每天的收益率,用于我们的头寸规模优化。

接下来,我们将遍历所有分配权重的组合,以在给定风险容忍度的情况下找到最优值。以95%的置信度强制设置20%的最大回撤。

关于上面的图表,首先要注意的是,搜索空间中只有一小块区域分配了非零GHPR值。在该地区之外,我们缺乏信心,即我们的缩编限制将得到满足。

优化后的结果表明,我们应该将大约36%的资金用于SPY,64%的资金用于TLT。这些权重之和为100%的事实只是一个巧合,而不是模型的特征/约束。这种配置策略的GHPR中值预测为每日0.034%(年化8.9%),其中95%生成的权益曲线的最大回撤<= 18.7%。

多策略

这种方法对两种回报流都很好,但多样化的真正好处来自于拥有许多不相关的策略。不幸的是,在二维返回空间外汇出现一些问题。首先,可视化变得非常困难。更重要的是,搜索投资组合权重组合所需的时间呈指数级增长。

用了将近两分钟的时间找到了只有两个回报序列的最优解。为了实现多样化,我们希望跨市场、跨风格和跨时间框架组合策略。这可能导致一个投资组合包含数十个单独的收益流。当你考虑到,对于每一个权重组合,我们都要生成数千条权益曲线来评估收益和亏损,这是一个非常耗时的过程。幸运的是,我们有一些节省时间的妙招。

结果表明,夏普比率与我们的度量指标有很强的相关性,且不依赖于时间。我们不寻找最大GHPR,而是优化每个加权收益序列的最大夏普比率。这样,我们就不需要生成数千条潜在的权益曲线来评估权重的最佳组合是什么。这样做可以节省大量的时间。

从根本上减少寻找最优投资组合配置所需时间的第二种方法是放弃可能组合的强力迭代,而采用非线性优化。我们将使用cma包来实现这一点。具体算法见:

http://cma.gforge.inria.fr/cmaes_sourcecode_page.html

给定一个适应度函数和一系列输入,与尝试所有可能的输入组合相比,该算法将在更短的时间内找到一个局部(并且希望是全局)最小值。

但是,使用这种方法只能产生相对的权重组合;杠杆作用没有考虑在内。因此,我们将优化程序分为两部分:

1、找出使投资组合夏普比率最大化的相对配置权重。

2、在考虑给定的风险/回撤限制的前提下,确定适用于最大化GHPR的投资组合的杠杆率。

为了证明这种方法,我们将在两个ETF上创建三种“虚拟”策略:两种中长期趋势跟踪策略和一种短期均值回归策略。作为趋势的代表,我们将使用滚动z-score,定义如下:

这是我们用来衡量交易决策的信号。对于趋势跟踪系统,我们将增加与信号成比例的位置大小;均值回归要乘以-1。为了得到每个策略的收益,我们把策略信号乘以正向回报(假设我们在信号之后进入open并在此之后退出)。

首先,我们将计算SPY和TLT的5、50和100天lookback周期的策略信号。从这些信号中,我们得到了这些策略收益。

接下来,我们将使用常规优化来找到使我们的投资组合夏普比率最大化的权重。

这一优化的结果表明,理想的策略应该是将我们的大部分资金配置给短期均值回归策略,并限制在长期趋势跟踪策略中。

第一步完成了。我们已经确定了适用于每种策略的相对权重,以便使夏普比率最大化,但按照计算方法应用它们可能会导致风险过高或收益过低。为了解决这个问题,我们可以使用优化程序的的结果获得加权投资组合的收益。然后,可以应用最初的“理想f”来确定风险目标的适当杠杆率。

我们计算出在这个投资组合中投资的理想比例是32%。最后一步是将非杠杆投资组合权重乘以这个值,得到最终的投资组合配置:

最后,可视化此投资组合的表现:

警告

与交易策略领域的任何“最优”解决方案一样,你认为完美的回测,却在实盘中表现的平淡无奇或产生了灾难性的后果。在实现上面讨论的方法时,你要正视这个问题!

首先,多策略没有考虑到交易成本。如果你的投资组合中的策略经常在市场中进进出出,那么这些策略很快就会变得很重要,并且必须加以考虑。接下来,用于优化的策略收益必须是样本外的。实盘收益率值最好的,paper trading次之,如果没有实际收益率,可以使用样本外回测收益率。

假设未来策略之间的关系与过去相似。如果这些关系消失,投资组合可能会处于非常糟糕。如上所述,杠杆计算中使用的最大回撤是基于加权收益的。一种策略的损失可以补偿同一时期另一种策略的收益。为了解决所有策略同时对你产生不利的情况,你可以将每种策略历史上的最大回撤与投资组合权重相乘。

最后,我们必须假设未来不会像过去那么美好。Alpha衰减将影响大多数策略,即使有最严格的回测,在实际交易中结果通常也不会很好。我们还应该假设,最大回撤就在我们面前,因为从数学上讲,交易时间越长,大幅回撤的可能性就越大。我们最大的损失也是如此。为了减轻这种情况,我们可以应用安全系数来扩大历史上最大回撤,从而减少所用的杠杆数量。我们还可以设定一个比我们认为必要时更低的最大回撤门槛;这也有助于有效降低最佳杠杆率。

结论

如果一个人能够提高经风险调整后的收益,那么提高绝对收益所需要的一切,就是提高杠杆以适应他们的风险偏好。

—End—

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量化投资与机器学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档