Local EPUB Text
对于现有策略的改进
到现在为止,虽然我们的两种策略已经能证明仅用非常简单的策略也可以获得非常优秀的结果,但也应该不会有人拒绝能进一步提升收益吧?在接下来的这部分内容中,我将会为初始的策略增加一些简单但是非常重要的功能,并将之前的两种策略合二为一,然后进一步分析这个新的分散化期货交易策略的结果。接下来,让我们首先分析现有策略的不足之处,以及如何进行改进。
尽管前面的两种基本策略明显都可以获利,但我们还是需要特别指出它们存在的一些问题。这两种策略虽然都能够长期盈利,但其表现的波动性之高超出了绝大多数投资人心理上可接受的范围,其中有的阶段甚至让专业的交易人员也很难承受。有些人可能对此不以为然,但是否能承受短期的业绩波动确实是在选择策略时应该慎重考虑的一个因素。举例来说,我们有一种策略虽然能够长期盈利,但其中只有30%的交易是赚钱的,而且可能会每天不停地开仓,然后反复地被止损。这样的策略表现就让人觉得很头疼。如果用了这样的策略,多数人可能很快就会考虑要不要添加一些人工干预的措施。他们可能会想,既然70%的交易都是失败的,有些时候故意地忽略那么一两笔不去交易,说不定还能提升业绩呢!但在真实的环境中,要是遗漏的那一笔恰好是盈利足够抹平全年亏损的那一笔怎么办?也许就少交易了这么一笔,真的很有可能导致整整一年就白白辛苦了。其实对于分散化的期货交易策略,60%~70%的失败率是非常正常的。但这一点是很多使用这类交易风格的人所最难于应对的,如此高的失败率也是很多交易员开始怀疑自己策略正确性的主要原因,并最终可能导致他们在错误的时机上引入了人工干预。
我们所有人都希望自己的策略能够风险更低,而且更易于操作,当然同时最好还能有更强一点的盈利能力。所以,我将尽可能地保持策略的简单性和可实施性。在本书中,我既不会用上十几个不同的震荡类指标,又不会添加诸如“具有自我学习能力的神经网络”之类的噱头。我只是做出一些小小的改进,以便让我们的策略在这个机构横行的时代中能有一席之地。更复杂的东西未必一定就是更好的!我的亲身经历就能说明,相比那些用到复杂数学模型并依靠“大数法则”生效才能发挥作用的策略,简单的趋势跟踪方法在实盘中可以表现得更好。
趋势滤波器
我们之前的两种策略都存在各自不同的问题,但事实上这两个问题有内在的联系,对此我们可以一并解决。均线策略的最大问题是它的交易永远不会停止,即使在还没真正形成趋势的时候也得继续运行。而这个策略在市场转入震荡行情之时会出现反复止损后又不得不再次开仓的情况,这种频繁的多空转换每次多少都会带来一定的损失。出现这种状况不仅会造成无法盈利,而且会让操盘的人感到心烦、沮丧,甚至产生自我怀疑。图4-8展示的就是将均线策略用到标普500指数在2000年中期进入震荡行情阶段时的情况。因此,解决问题的关键在于找到一种趋势滤波器,能够让均线策略在没有形成趋势的时候停止运行。
图4-8 均线策略不使用趋势滤波器可能会出现过度交易的情况
突破策略不会产生相同的问题,因为我们不需要一直在交易,而只是在价格走势出现突破之后才会开仓,但是突破策略也同样可能会遇到反复被止损的情况。使用突破策略有时会易于陷入逆势交易中。因为突破策略的交易原则是在出现一定天数之内的最高价之后开始做多,或者在出现一定天数之内的最低价之后开始做空,而在市场的主趋势形成之后,持续多日的深度回调也经常会出现。这类回调的出现,对于某些策略而言是获利了结的好机会,但继续发展下去,几乎不太可能变成趋势反转的起点。
注意图4-9上标普500指数在互联网泡沫达到顶峰的那段日子里,曾走出过一段非常强劲的上升趋势行情。但这其中存在两个值得关注的问题:一是突破策略会让我们在明显的牛市中做空,这是很不合理的;二是产生了过度交易的现象,即在趋势已经确立之后还反复地开仓和平仓。
对于上述两个问题的解决办法就是增加趋势滤波,这样就可以保证所有交易的方向都与主要趋势相同,并防止被短期的波动洗出局。其实移动平均线本身就是一个很好的趋势滤波器,退一步讲,我们至少可以用变化较慢的移动平均线(用于计算移动平均的天数较多)来确认中期趋势的方向。我之所以还是用随机挑选的几个整数作为计算移动平均的参量,主要还是为了展示这里面并不存在什么特别的猫腻,我们的模拟结果是没有经过参数优化的。还是那句话,我们最看重的是趋势跟踪的原理,而不是具体的操作过程。
图4-9 未使用趋势滤波器的突破策略
图4-10所示的是原油价格在一个阶段的牛市以及随后的熊市。我们用两条移动平均线的组合来识别当前市场所处的熊牛阶段,其中颜色较深的实线是100天移动平均线,而较浅的线代表的是50天移动平均线。在这里,这两条移动平均线并不是被用来发现交易信号的,而是被当作指示主要趋势方向的滤波器。如果我们依照滤波器所指的方向,只在上升趋势中买入,或者只在下降趋势中卖空,那么很可能会让交易的频率有所下降,且获胜率有所提升。
图4-10 移动平均线当作趋势滤波器
从表4-4中,我们看到在增加了简单的趋势滤波器之后,标准突破策略的业绩得到了显著的提升——在平均年化收益率提高的同时,最大历史回撤和波动率都有所下降,获得正收益的月份数量增加了,而表现得最差的月份的亏损情况也比之前有所缓和。我们最看中的是历史最大回撤的数值有了显著的下降。现在,历史上最大的一次回撤只相当于1.16倍的年平均收益,如图4-11所示,最初的简单策略在各方面的表现都有显著的提高。
表4-4 使用趋势滤波器前后的效果对比
图4-11 使用趋势滤波器前后的效果对比
止损机制的改进措施
如果依靠价格突破的出现来确定进出的时机,我们在交易真实被止损之前并没有办法精确地计算出每笔交易的损失。如在25天×50天突破策略中,只有在形成了25天之内新的最低价之后才会触发止损,但这个25天最低价到底能到什么位置,每次情况都大不相同。比如,我们在买了某个品种之后,它的价格出现了强烈地长期上涨,形成了一条抛物线式的上升曲线,但突然有一天开始它急转直下,在剧烈下跌中,用25天的最低价止损很可能会一下子抹掉前期的全部浮盈。当然也可能发生另外一种情况:当走势逐渐变得平缓起来,连续几个月的横向震荡又会让可能出现的25天最低价与当前的价格非常接近。在后面这种情况下,从心理上讲,我们都很难继续坚持原有的止损目标,因为会害怕走势在回归到原来的上涨趋势之前被短期的波动洗出局。因此,我们要想办法让原来的止损方法提高一定程度的确定性。
还记得我们在第3章中用到过的真实波动幅度均值(ATR)吗?在这里,我们可以采用同样的方法来设置止损。我将为大家展示如何将持仓额度和止损方法结合在一起为投资组合的表现增加一些确定性。为了节省大家往回翻书的时间,我将前面关于真实波动幅度均值的公式重复如下:
这些公式非常有意思,解释起来也比较容易。
·真实波动幅度其实就是品种价格的每日振幅,即衡量一个品种的价格变化在一天之内到底会有多大。
·真实波动幅度均值是一定时间内的日均振幅,我们在这里设为100天。
·如果将真实波动幅度均值乘以选定的期货合约的点价,我们可以得到在正常情况下一手期货合约日内价格的变动能产生多少损益。
·将风险因子设为0.002意味着我们每日能承受的单个品种损益相当于投资组合总价值的0.2%,因此我们需要用风险因子乘以投资组合的价值或资产净值,才能得到每天可以承受的单个品种损益金额。
·以上金额除以一手期货合约的正常单日损益,然后再对其取整就能算出拟开仓的期货合约手数。
所有曾持有过波动较为剧烈资产的交易员都应该清楚地知道,按照价格变化的百分比设置止损价的方法是非常愚蠢的。而我们实在找不出比真实波动幅度均值更好的替代方案,因为在这个数值中已经隐含了品种的波动率,所以我们可以直接地加以运用。我们用这种方法来设定尾随止损(或称移动止损,Trailing-Stop)的位置,为简单起见,止损点为距开仓以来的最好价格相当于3个真实波动幅度均值的位置。所以对于我们的多仓来说,止损点在开仓后最高价之下3个真实波动幅度均值的位置,对于空仓则是开仓后最低价之上3个真实波动幅度均值的位置。
用真实波动幅度均值来设置止损点的最大优点是我们可以知道每个头寸理论上的最大止损成本。如果将风险因子设为0.2%,止损位为3个真实波动幅度均值,那么每次止损所造成的损失应该是总资产的0.6%。还有,千万不要忘记波动率并不是静态的,所以所谓的“真实波动幅度均值”以及其他类似的东西都不过是基于最近历史数据的近似估算值。
此外,我们在使用这些策略时不会使用日内的止损操作,而要在信号出现之后等到第二日的开盘才会处理。有时候,在价格突破止损价位之后还要下跌很多才能到当天的收盘时间,对于这种情况我们也应该加以考虑。
如图4-12和表4-5所示,在添加了这些更实用的止损措施之后,收益率会有所下降,但是风险也随之下降。像在之前策略中出现的那类伴随强趋势而产生的较为极端的情况,也相应地减少了很多。由此可见,我们在某种程度上获得了更加平滑的损益曲线。现在,当前策略的最大历史回撤下降到20%,同时复合年化收益率下降到18%。这个结果是大多数专业投资人所能够接受的。
图4-12 施加止损技术之后的效果对比
表4-5 施加止损技术之后的效果对比
再与之前的那几个业绩基准相比较,如图4-13所示,我们的新秀策略已经足以占据一席之地。虽然说将分散化期货策略与MSCI全球指数所代表的股票投资做比较显得有些胜之不武,但我这么做还是能够说明,传统的投资方式已经大大地落伍了。而与那两只传奇的期货基金——邓恩基金与米尔本基金相比,我们的新策略就一定显著地好于它们吗?这可不一定哦!但反过来,我想它们可能也不那么确定自己所用的策略就一定好于我们的这个。无论如何,现在有一件事情是清楚的,那就是我们的简单策略已经足以与行业中的翘楚比肩,它能获得的风险调整后收益也绝对是值得令人称道的。
图4-13 新策略与竞争对手及业绩基准的表现
图4-14是最新的策略与竞争对手及业绩基准的年度比较。注意在股票市场表现最差的年份里,期货策略往往能够获得不错的收益,但是在股票市场表现得很好的年份里,期货策略在大多时候也一样有所作为。
图4-14 最新策略与竞争对手及业绩基准的年度收益率比较
我们的策略还存在一个较大的问题,就是它在2008年所获得的惊人表现,让我们的资产净值翻了一倍多。表面上看,这似乎不应该是一个问题,但是该策略在下半年所经受的每日波动确实让亲身经历的人整天都提心吊胆,以至于在那时候几乎没有期货投资经理还能够完全坚守住自己的投资原则,而不对策略的运行进行任何的人工干涉。即使作为事后诸葛亮,我们现在也很难评定很多人在那时候所做出的干涉决定能否算得上一种审慎的行为。那些调整了自己的策略并减少了风险的基金最终所获得的收益要少于它们本来应得的,但同时也降低了遭到大规模亏损的可能——后一种情况在市场陷入前所未有的剧烈波动时很容易发生。总之,我们的策略在这种情况下将最终得到了优异的结果,但代价是投资经理经历了很多个不眠之夜。
风险水平的调整
也许有些人认为我所使用的策略过于激进,同时或许还有人可能认为它的年化收益率不够高。对于这两种考虑,我们有一种非常简单的解决之道。还记得我们在仓位控制的公式中有一个被称为“风险因子”的变量吗?如果想增加或者减少整个策略的风险水平,其实我们只需要改变风险因子的数值大小。理论上,风险因子可以控制每一个头寸对整个投资组合净值的单日冲击,也就是说,提升或者降低风险因子的数值,会导致单个头寸对整个投资组合盈亏的潜在影响放大或者缩小。
在我们最早使用的仓位控制公式中,我将风险因子设为0.2%,也就是说理论上,每个头寸平均每天能对整个投资组合的总价值产生不超过0.2%的影响。我们不可能随时随地去改变仓位的大小,因此单个头寸的风险自然会随着所投资品种的波动性或价格的变动而发生变化。比如我们在价格为100美元时买入某个品种,但在持有半年之后其价格可能会达到了200美元,那么它的真实波动幅度均值很可能会产生巨大的改变。对于多仓头寸来说,获利的交易自然会导致风险水平的提升,而恰恰相反,有利的空仓头寸会随着价格的下跌让风险水平下降,因为价格下跌会导致空仓头寸对应的头寸价值下降。
既然我们的仓位控制和止损价位的计算都完全依赖于风险因子,调整风险因子的数值大小就会对最终的业绩产生巨大的影响。在图4-15中,我们用的是与之前完全一样的策略,但是设定了4个不同的风险因子,其中除了曾用过的0.2%之外,还选取了一个更高的和两个更低的数值,它们分别为0.25%、0.15%和0.1%。
图4-15 不同风险水平下的模拟结果
注意以上四条损益曲线虽然在整体形态上非常近似,但是它们各自的发展程度却不尽相同。有很多其他的原因导致风险因子为0.2%的策略所能获得的收益不可能正好是风险因子0.1%的策略的两倍,我相信读者也能说得出其中的大部分原因,比如管理费是固定的百分数、业绩报酬的影响等,但其中最主要的原因是杠杆效应的本身,因为有时候它会让人们产生一些有意思的错觉。
人们在放大策略的交易杠杆时有一个常见的误区,就是忽视了复利效应所带来的影响。我们在表4-6中虚拟了某一个品种的收益情况,然后对比施加杠杆前后的投资表现。最终,虽然多增加了一倍的投资杠杆会导致双倍的风险,但最终的投资收益并非“一加一等于二”那么简单。
表4-6 投资杠杆的复利效果
我们在表4-7中统计了图4-15中四种不同风险因子下的业绩表现,这些结果足可以证明调整整个策略的风险水平是非常简单的。
表4-7 不同风险因子下的效果对比
有了这种调整的方法后,我们就可以比较自由地选择所承担的风险水平以及可用于进行比较的业绩基准。如果我们希望交易得稳健一些,并期望或多或少地能达到与巴克莱BTOP50指数相近的低波动性,那最好的选择是将风险因子调整到0.1%。从图4-16中可以看到,这个风险水平非常接近于20世纪整个90年代期间的巴克莱BTOP50指数,但是在最近的10年里,巴克莱BTOP50指数的风险水平下降得更多,当然它的收益率也随之下降了很多。
图4-16 风险因子为0.1%的策略与巴克莱BTOP50指数的比较
图4-17为风险因子为0.1%后的策略表现与巴克莱BTOP50指数的年度比较。我们可以看出,在大多数年份里二者的表现非常接近,但也有一些年份,二者的表现差异巨大。1994年,我们的策略遭受了比较大的损失,巴克莱BTOP50指数基本是不亏不赚。而在1996年和1997年,我们虽然获得了不错的正收益,但还是输给了巴克莱BTOP50指数。1998~2001年,我们的业绩连续大幅战胜了巴克莱BTOP50指数,同期我们策略的波动率有所上升,而巴克莱BTOP50指数的波动率则有所下降。2008年出现了比较不同寻常的情况,我们的业绩超过了巴克莱BTOP50指数2倍还多,这其中主要的贡献来自我们的策略在明确的退出信号出现之前并没有收手,而是不加限制地让利润自然积累,我将在第6章中仔细分析这一年的情况。像2008年那种出现极端趋势行情的年份中,大多数期货投资经理会人工干预策略的运行,当策略表现出前所未有的剧烈波动时会有意识地降低风险。就像我将要在第6章中描述的那样,这也许是个明智的经营决策,但会严重地损害年终的绝对收益表现。同样,我们的策略在1994年所遭遇的败绩也许可以这样解释:其他很多投资经理一发现苗头不对就主动下调了风险,而我们则不为所动。
假设我们愿意为了获得非常丰厚的回报而承担更高的风险,那么就一定要选用风险因子为0.25%的方案。如图4-18所示,高风险策略所产生的损益曲线在最初的一段时间里非常接近米尔本基金和邓恩基金的同期表现,但是越到后来,它的收益表现越突出。其实出现这种情况也很正常,因为随着基金真实管理的资产规模增长,它们不可能再继续承受像先前那样的风险水平,而且很多流动性稍差的品种也开始变得更难于参与了。对于几十亿美元规模的期货基金,由于那些体量比较小的品种所提供的流动性根本无法容纳很大的资金量,所以它们从这些品种上所获得的投资收益对整体业绩产生的影响非常小。
图4-17 风险因子为0.1%的策略与巴克莱BTOP50指数的年度收益率比较
图4-18 风险因子为0.25%的策略与两只大型基金的比较
有人可能基于上述原因认为我们模拟的收益结果是非常不真实的,因为在现实中如果我们的基金能获得如此高的收益,那么大量的资金和客户很快就会蜂拥而至,以至于让我们最终难以继续保持这样高的收益率。事实确实如此,但如果管理的基金规模能超过50亿美元,我们就会发现能不能继续让复合年化收益率超过25%其实并不是最值得关注的事情。我们在表4-8和表4-9分别罗列了1990~2011年风险因子不同的策略及前面提到过的业绩基准的年度表现,以及风险因子为0.2%策略的月度表现。
表4-8 我们的策略与业绩基准的年度表现(%)
表4-9 风险因子为0.2%策略的月度表现(%)
参量的稳定性检验
到现在为止,我们的最新策略已经跟最初时有些不同了,是时候该对基本参量进行合理性的检验了。具体地针对我们的策略来说,这个参量就是用于判断突破的天数。由于我们先前用的是50天,所以我们需要做一个简单的测试,以确定同样的策略在较短和较长的时间上都能成立,比如说25天和100天。可能有人会建议我用参数优化的算法来确定最好的参量,但这么做行不通。我们绝对没有必要使用任何一款现成软件的优化功能。事实上,这么做反而是百害而无一利,充其量只能让我们在心理上获得一点虚假的安全感,因为能在某一个特定参数下取得最好结果的历史情况极有可能跟未来毫无近似之处。
尽管如此,在稍微调整关键的参量之后多重复几次模拟验证的做法是合理的,但我们的目的单纯只是为了确定模拟的结果是否会接近我们的预期。不同参量下能获得的年化收益率不可能完全一样,但这么做至少可以证实这种策略在大体上是正确的。如果情况并未如想象的那样,我们就需要寻找其中的原因:比如存在某些正当的理由,导致我们的策略无法应用在其他的时间尺度上,但也很有可能,第一次模拟所产生的好结果只不过是运气好而撞到了一个合适的天数参量,而策略本身在实战中根本毫无用处。
表4-10展示了对策略参量稳定性的检验结果,用于比较结果的天数参量除了最初使用的50天之外,还新增了25天和100天。时间跨度较短的突破策略能获得较高的年化收益,但付出的代价是更大的历史回撤以及更高的不确定性。总的来说,不同天数下的结果在盈利月份占比等指标上的数值非常接近,但最大的区别来自最大回撤与年化收益之比,其中25天策略为1.37年,最初的50天策略是1.13年,100天策略为1.06年。
表4-10 不同参量下的策略稳定性(使用滤波器和止损技术后)
虽然采用25天策略会导致业绩的波动稍大,但总体来说,3个不同时间参量下的策略表现基本算是稳定的,因此如图4-19所示,最终的结论是我们的策略通过了参量的稳定性检测。
图4-19 不同参量下的策略稳定性
小结
我们当前已经成形的策略是非常实用、可靠的,它绝对也适用于专业的投资管理机构。说到我和我的投资人,我用到了好几个程序化的交易策略。虽然在我用的策略中没有一个与本章中的例子完全相同,但其中有些也非常相似。如果有人认真地考虑使用这类策略,现在至少应该需要付出足够的心血,亲自构建一种策略——从购买软件和数据开始,然后照猫画虎地复制上述的策略,并严肃地进行测试。在这之后还需要我们认真回顾所有的微小细节,有针对性地改进这种策略,让它的表现能够适应我们自己的交易风格。否则,如果我们对自己的策略还做不到得心应手的话,那么在交易的过程中难免会心存顾虑,很可能最终会导致在最错误的时刻进行不恰当的干预。
策略的核心原则
虽然眼前的这种策略仍旧是微微改动过的简单突破策略,但如果能正确使用的话,还是能够获得不错的业绩的。
最后,让我们一起重新梳理这种策略的所有原则:
·只有在50天均线高于100天均线的时候才能开多仓。
·只有在50天均线低于100天均线的时候才能开空仓。
·如果某一天的收盘价是过去50天内最高的收盘价,我们就在下一个交易日买入。
·如果出现过去50天内最低的收盘价,我们就在下一个交易日卖出或卖空。
·单个品种的仓位额度与其波动性有关,我们根据前面讲过的真实波动幅度均值(ATR)公式来确定,风险因子可以暂时设定为20个基点。
·多头仓位的止损价格设定为开仓以来最高收盘价之下3个ATR的位置。
·空头仓位的止损价格设定为开仓以来最低收盘价之上3个ATR的位置。
·投资的品种池应该涵盖全部5个板块,而且从每个板块中选取的品种数量不少于10个。