Local EPUB Text
解密趋势跟踪策略的魔盒
与世人的猜测和广为流传的说法完全相反,如何实现趋势跟踪其实说起来并不复杂,所要做的只不过是等到某个资产的价格出现上涨或者下跌的行情,然后押宝于价格会朝着相同的方向继续运行下去,最后等到价格原有的运行方向发生反转,并向着不利的方向运行到一定程度,以至于可以认定趋势已经结束的时候退出。但之所以大多数人竟然无法从看上去如此简单的事情上获得成功,是因为他们没能掌握其中真正关键的要点。很多人似乎将全部的时间和精力用在了错误的方向上,比如作图时到底该采取指数移动平均线还是普通移动平均线,交易信号到底看随机指标(RDJ)还是相对强弱指标(RSI),选用哪些指标的组合还是创造新的指标,如何调试指标中的输入参量或者是否添加滤波方法等。市面上可以找到大量的书籍讨论以上这些无足轻重的问题,而且无论哪个问题都有无数的解决方法,但最终能达到的效果区别不大。听上去可能让人觉得非常好笑,但人们做事情就是这样,越是关注不那么重要的细节,越是让人无法真正把握大局。
趋势跟踪的核心原理非常简单,人们确实没有必要让它看上去那么复杂:只要耐心地等待着向某个方向动量的积累,然后顺势而为就好了。我们要做好遇到亏损的心理准备,因为在三次中可能会有两次失败,但只要最后一次赚的钱能超过前两次失败中赔掉的钱及全部相关的费用,就算我们成功了。当然从细节上讲,使用这种策略可能会有无数种不同的方法,但绝大多数方法在本质上没有什么差别。
然而,确实还是有几个方面的因素会对结果产生较大的影响,因此我们要对这几处提起特别的关注。相对于运行上千次的模拟去寻找突破点或者尝试不同的均线方法等,在以下几个因素上多花一些心思可以极大地提高我们的工作效率。
(1)投资组合的分散化程度:实现高度的分散化是取得较好的长期投资结果的最关键的一个因素。改变投资的品种以及调整在不同板块上配置的权重都会对投资业绩产生巨大的影响。
(2)持仓限额:我们需要找到有效的方法,根据每个品种的波动性正确地算出相应的持仓限额。能够做到这一点至关重要,但幸运的是这类方法并不一定很复杂。
(3)投资的期限:我们需要首先考虑到底要追踪多长期限的趋势,比如到底是一两周的趋势,还是5~8周的趋势。选择不同时间跨度的趋势可能会导致投资结果出现巨大的差异。
(4)风险水平:我们总是要在风险与收益之间选择一个平衡点。承担的风险越高,就可能会获得更多的回报,但是我们所承受的风险水平应该让自己和投资人都感觉合适。
(5)单一策略还是多策略:虽然这两种方式下的长期收益会非常接近,但将同一种策略应用到不同的投资期限上或者同时使用多个相似的趋势跟踪策略,将有助于平滑短期上的业绩波动。
投资品种池
要想从分散化的期货策略中获取长期的成功,我们必须能够兼顾多个品种及同一个品种上的多个不同投资工具。若只将这类趋势跟踪策略应用于单一品种或者单类资产之上,管这种行为叫作“愚蠢”已经算是客气的。实事求是地讲,我更愿意称之为“自杀性投资”。我有言在先,如果有人只将这些策略用于纳斯达克100指数期货这一个品种的交易,那么收到经纪商的《追保通知书》可不是我的错。而且我所说的“多个品种”的意思并不是再加上标普500指数和纳斯达克指数就够了,如果交易时才发现无力顾及很多不同类资产中的大量不同期货品种,我们一开始就不应该产生进入这个行当的心思。有时候,某个期货品种甚至某类资产会连续很多年一路下跌,然后在接下来的几年里又变身为上涨者中的明星。做这行的核心理念在于,一定要能交易所有的品种,哪怕一直在赔钱的品种也不要放弃,只要其他赚到的钱能够超过这部分亏损,仅仅出于分散化的考虑也是值得的。我们永远无法预测到热点转换发生的具体时间,谁知道到哪一天累赘突然就变成赢家。总之,能参与大量不同的品种是非常重要的,对于这一点我不管怎么强调都不过分。而将单一策略仅应用于单一品种的人,如果不是具有非常高明的投资技巧,那他可能只是打算通过期货交易来减少自己的财产。
我们还要注意在参与品种的数量和交易策略的复杂程度上有一定的取舍。关注的品种越多,虽然可以提升投资的分散化程度并且获得更多的交易机会,但如果品种太多的话,也将会增加策略和操作的复杂程度。选取品种的确切数量应该取决于我们自己的模拟结果,并且还需要符合自身的风险承受能力。本书中的这些模拟涉及了非常广泛的投资品种,但要记住适当少选一些也同样能达到非常好的效果。
我从第2章里提到,每个板块中各选取10个品种,将它们纳入了本章的初始品种池(见表3-3)。每个板块中选取品种的数量是相同的,这并不是出于偶然。出于展示的目的,我特意在交易策略中对每个板块赋予理论上相同的权重,这样最后就容易分析出每个板块的各自贡献程度。但在实际的操作中很少有人会像这样采用等权重的方法。尽管如此,我们这样做还是可以很好地展示出需要大家掌握的关键内容,并有助于读者学会如何在未来有效地选择投资品种。
表3-3 等权重的品种池
以上这些品种为什么会被选入品种池呢?虽然它们都是流动性非常好而且易于交易的品种,但其实我在选择的时候是相当随机的。一个典型的趋势跟踪期货基金将会用到大约100个不同的期货合约,有的基金还会专门交易不同品种之间的价差,比如黄金和白银。
我只会用到日线的数据,这不仅仅是为了简单起见,还因为我们可以专注地运行这类策略,而不被日内的价格变化所打扰。由于我们要处理的是期货的数据,所以我们需要确保这些数据已经被恰当地处理过——我已经在第2章中讲述了处理的方法。重申一次,千万不要忽视或低估这个细微之处的重要性。如果我们用了不恰当的数据,那么基于错误的数据构建出的策略根本就是在浪费自己的生命,而基于这些数据交易则是在挥霍自己的财富。
持仓限额
如果没有一个有效的仓位限额计算公式,无论多好的交易法则都无法发挥其应有的作用。在我们之前所构建的投资组合中,各个品种的波动率特性如果还不能称得上“差异巨大”的话,那至少也是“各不相同”。诚然,这里对“波动率”的定义并不严格,而且我们最关心的是根据不同品种的近期实际表现所推断出的未来预期价格波动。
比如欧洲斯托克50指数一天波动一两个百分点是很平常的,在一个行情非常动荡的日子里甚至能够上下跳动四五个百分点,而欧洲美元的报价在一天之内变化0.5%的情况简直是闻所未闻。所以,如果单纯打算在每一笔交易上配置名义价值相等的合约,那么整个投资组合的净值变化很快就会被价格波动最大的品种所左右,而其他波动性较低的品种就不会产生那么显著的作用。这个结果当然不是我们想要的,所以我们在决定每一个品种的合约买卖数量时,就需要考虑到每个品种各自的波动特点。这么做有很多种方法:有人喜欢使用真实波动幅度均值(average true range,ATR)的方法,有人喜欢基于标准差,还有的人可能更倾向于自己的独门公式。大多数CTA使用的方法基本上大同小异,原理上都是提升波动性较低品种的持仓比例,降低波动性较高品种的持仓比例,从而在理论上尽量保证让每一个品种的日均盈亏波动对整个投资组合的影响相差不大。
对于本书中的交易策略,我用的方法基于每个品种的真实波动幅度均值。这其实是一个广为人知的方法,可能至少有40年的使用历史。它的目的在于测量各个品种正常情况下的日均波动幅度,并将结果作为调整仓位大小的依据。真实波动幅度的数值是根据每个交易日的最高价、最低价和收盘价计算出的价格变化区间。任一交易日的真实波动幅度的计算公式为:
式中,Ht和Lt分别是该交易日的最高价和最低价,Ct-1为前一个交易日的收盘价。用当天的最高价与前一日的收盘价之中的较高者减去当天的最低价与前一日的收盘价之中的较低者,最后得到的就是这一交易日全部成交价格的波动范围。而真实波动幅度均值(average true range,ATR)则是多个交易日价格波幅的数学平均值。我在计算每个品种在一段时间里的ATR时,采用指数移动平均化的方法进行处理。我们可能会在其他书中见到过用于平滑ATR数值的其他方法,但无论采用哪种方法,通常对最终结果的影响不大。
用ATR作为对波动率的估算的意义在于,ATR不但可用于在不同品种间横向比较并决定单个品种持仓限额的数值,而且也可用于估算单个品种在未来某个正常交易日内的价格变动范围。我们可以利用这个信息来设定单个头寸对整个投资组合的目标贡献。这种目标贡献度的具体量化数值即为本策略的风险因子,我们可以通过改变风险因子的大小来调节策略的杠杆程度,从而改变投资组合的整体风险水平。
在最初的策略中,我们先将单个品种的风险因子设置为20个基点,即理论上任何一个品种平均在一个交易日之内的变动对投资组合整体价值的最大影响应该为0.2%。假设当前整个投资组合的价值为100万美元,而每个品种20个基点的风险因子在理论上相当于2000美元的价值变动。如果在黄金上出现了买入的信号,而且黄金当时的ATR恰好为10美元,那么点价为100的纽约商品交易所的一手黄金期货合约(COMEX Gold)在理论上单日产生正常盈亏幅度为1000美元。因此,在当前的投资组合中,我们只需要买入两手黄金期货合约就足够了。
我之所以反复使用“在理论上的影响”这一说法,是因为我们需要牢记任何品种的波动率都不是一个稳定的数值,它在头寸的持有期间可能会出现非常大的变动。而以上持仓限额的计算方法并不依赖于波动率的稳定性,因为我们用建仓时点的品种ATR值作为未来价格波动的合理近似。在整个持仓期间的合约数量会保持不变,不会随时间变化而有所增减。不过在最终成型的策略中,有些人还是希望能调节合约的数量,但也有人对此并不在意。
用于计算持仓合约数的公式具体如下:
资产价值指的是交易账户中全部资产的总价值,或者在当前策略中所配置的资金总额;ATR值和点价的详细解释我们在前面已经讲过了(点价的概念在第2章有详细叙述)。如果波动率保持不变的话,上述公式的分母代表了该品种的正常日均波幅。还要注意以下三点:一是如果我们持有的期货合约涉及多种货币,一定要将每个公式分母上的结果都换算成与相应账户本币相同的币种;二是不同的合约对应的标的物的数量有所不同,所以每种合约的点价也会有所不同;三是由于我们只能以“手”为单位买卖期货合约,所以还应本着“宁错过,不做错”的保守原则,对合约数量的计算结果进行取整的处理。
这个数字0.002或者0.2%就是我们手中的指挥棒,我称之为风险因子。对于风险因子的具体数值,我们或多或少带有主观的因素,而调整风险因子的大小可以迅速改变整个策略的风险水平。我强烈建议在进入实盘操作之前要通过细致的模拟结果来确定风险因子的大小,以保证自己能够接受可能出现的波动情况。总之,较低的风险因子会产生较低的收益水平和较低的风险,而较高的风险因子对应着较高的收益水平和较高的风险。
我之所以选择用ATR方法来决定持仓限额,是因为该方法不但最容易传授,而且使用效果也足够好。当前还有好几种可行的方法,但其原理全都是尽量根据对价格波动的预期(或预测)调节持仓的限额,进而形成一个普适的风险基准。另外一个十分常用的方法是标准差,但请注意在计算标准差的时候所使用的数据应是收益率,而不是价格本身。
尽管我总是尽力避免使用保证金与资产价值的比率,但是据我所知,很多期货对冲基金就是只用这样一个指标来控制持仓限额并衡量风险,取得了极为优秀的投资成绩。该方法与估算投资品种的历史波动率完全不同,但同样也能实现相同的目标。理论上,交易所在每个品种的保证金设定上主要基于自身对该品种波动性的判断,以尽可能地减少市场参与者的违约风险。只要我们相信每个品种的保证金要求可以真实、准确地反映该品种的风险水平,那么就可以使用单笔头寸所占用的保证金与整个组合资产价值比率的方法来限制仓位和控制风险,比如我们可以将任何一笔头寸所占用的保证金控制在整个账户资产总值的0.5%。但我总担心交易所在设置保证金比例时存在的某些主观因素,而且历史上很多交易所曾出现过毫无预兆地突然调整一些品种保证金的先例。此外,如果使用这种方法来控制持仓限额,用历史数据进行模拟时就会遇到一个棘手的难题,因为准确地掌握过去所有保证金变化的记录是一件相当困难的事情。尽管如此,我不得不承认,还是有很多的大型基金使用这种方法获得了强有力的结果。
滑点(slippage)、手续费和其他费用
事前低估费用对业绩的影响一般是不会有好结果的。虽然这样做可以让模拟的结果看上去很不错,但一旦到真正的市场上进行操作,就会让人感受到这个错误带来的痛苦。在本书中,我一般将每手期货合约的双边手续费加上正常交易滑点所产生的损失合计设定为20美元。这并不是一个完美的近似,但谨慎起见,这样估计已经足够保守了。
此外,如果打算正规从事这个行业的话,还要考虑到必要的管理费、业绩报酬、托管费、行政监管费、审计费以及其他一些需要从基金资产或客户账户中支付的费用。为了让模拟的结果更贴近实战,而不会成为一厢情愿的美好愿望,我一般最后会从净资产中扣除1.5%的管理费和0.5%的其他费用(包括托管费和行政监管费用等),另外还要从正收益中再提走15%的业绩报酬。
流动资金的利息
相对于类似股票的资产,交易期货的一个独特之处在于它并不需要占用太多的现金。通过交易期货可以实现极高的投资杠杆。理论上,持有期货合约只需要让现金能覆盖初始保证金的要求,并且在开会之后别让《追保通知单》给逼得走投无路,这就足够了。不过,仅仅能满足初始保证金的资金操作跟赌博其实没有什么区别,专业的CTA投资经理绝对不会这么做。事实上,绝大多数的CTA基金通常会持有金额巨大的现金资产,但这些现金并不是为未来的交易保证金所准备的。账上保持现金形式的资产有很多缺点。除了只能享受差不多贴近0的利息外,最麻烦的是,这些由主券商(prime broker)托管的现金会带来额外的对手风险。比如,一旦自己的主券商出现违约或破产,我们极有可能会失去账户中的全部现金,但证券类的资产一般会被保全,并且最终会返还给投资人。
对于这个问题最简单的解决办法就是用剩余的现金购买政府债券,但我们并没有必要为了承担不必要的风险而去买信用等级更低的其他债券。有鉴于有史以来全球各地利率曲线的实际情况,购买政府债券不但比持有现金更加安全,而且可以为基金增加一笔令人愉悦的收益。正值本书写作之时,富余现金能产生的利息已经少到几乎可以忽略不计,但在不久远的过去,曾有一段时期,利息收入也对CTA基金的业绩做出过不小的贡献。
为了将模拟的环境更接近于真实的情况,除非特别说明,本书中的所有模拟都考虑了富余现金带来的利息收益。
趋势跟踪策略的特性
做投资有个赚钱的口诀,叫作“低买高卖”。然而,趋势跟踪策略肯定没法让我们做到这一点,所以想干这行,我们就需要适应完全不同的行事风格。作为趋势跟踪者,我们的做法常常是高价买入,然后以更高价卖出,同样也会在低价上卖空后,以更低的价格平空。我们可能经常会在非常不合理的价位开仓,比如买入早就出现极度超买迹象的品种——该品种不但在本月内已经上涨了20%,并且在走势图上留下了一根长长的“尖刺”。也有可能,某个品种被所有人都认为其走势已经发展得过头了,差不多应该发生调整时,甚至可能随时出现反转,却恰好是我们等待已久的进入起点。
趋势跟踪策略看上去很简单,而且其长期收益曲线也显示该策略具有很强的盈利能力,但我们还是需要仔细地分析该策略的每日盈亏,以评估自己在真实的交易环境中是否能够承受盈亏的波动情况。这个问题的最终答案取决于我们自身的性格、对趋势跟踪风格的适应程度以及自己的客户对相应风险的认知与承受能力等。很多这类策略会出现高达30%的回撤,并有可能需要至少等到一年以后才能挽回损失。设想一下,如果我们恰好在发生重大回撤之前成立了产品,那么在接下来的大半年时间里就可能只有一件事情可做,那就是反复地向客户解释亏损的原因,这会让我们后悔为什么开始的时候不采用其他投资策略?为什么当初要选那么高的风险水平?毫无疑问,长期来看波动性更高的策略才能带来更好的回报,但这也需要我们自己和我们的客户能承受得了其中的酸甜苦辣才行。
我会在第4章中具体地讲述两种趋势跟踪的方法,这两种方法之所以特意被挑选出来,是因为两者都非常简单,而且被广泛地使用。掌握这两种方法有助于我们熟悉期货趋势跟踪交易的原理。尽管它们都有不错的长期盈利表现,但是我在实际中并不推荐大家照搬原样地使用。请大家不要担心,我不会像教科书一样为了便于展示,就介绍一种简单但不实用的模型。随着本书内容的不断深入,我将会逐步改进这两种简单的方法,让它们最终能被完美地应用于真实的对冲基金上。
趋势跟踪策略的原理剖析
趋势跟踪策略的核心在于进入已经成型的趋势,并尽可能地保持下去,直至价格向相反的方向移动,并且在有可能发生反转时才退出。这意味着我们所追求的是价格趋势运行的中间阶段,有意地回避趋势刚形成的初始阶段和趋势即将结束的终结阶段。这其中所隐含的前提假设是市场的价格走势易于形成能长久保持的趋势。但在绝大多数时候,任何一个品种的价格都不会形成趋势,所以趋势跟踪者应该避免卷入这种情况,否则肯定会被那些趋势尚未形成的振荡行情弄得死去活来。任何一个品种都有可能在这种无趋势的状态中保持很长的时间,这个所谓的“很长时间”甚至有可能会持续好几年。所以严格的趋势跟踪交易员的诀窍在于系统化地交易很多不同板块中的大量不同品种。如果仅仅将此类策略应用于单一或少数的几个品种上,那么我们能挣到钱的概率可能还不如买彩票大。
一般来说,现在有关趋势跟踪策略的书籍会花费过多的篇幅用于讲述开仓和平仓的法则,却常常忽略该策略最为重要的关键之处。事实上,就其重要性而言,开仓和平仓的作用远远不如行之有效的仓位控制和投资的分散化原则。外行人喜欢将很多时间和精力花在学习开仓与平仓的方法上,而忽视了绝对是更为重要的分散化投资和风险控制。对于任何一种趋势跟踪策略,有缺陷的开仓、平仓方法加上行之有效的投资分散化和风险控制方法,还是有很大的希望会赚到钱。若反其道而行之,则灾祸必然就不远了。
遍历那些比较经典的趋势跟踪期货交易系统——当然这指的是那些已经被公开或至少在一定程度上被解密的——下面这两种方法是使用最广的。第一种方法是在向上突破时买入并在向下突破时卖空,所以我们自然就需要一种可以有效判断价格突破的方法(见图3-4)。
图3-4 出现向上突破时买入糙米
另外一种方法是使用那些经典的趋势指标,比如利用移动平均线的交叉位置来决定买卖的点位(见图3-5)。最简单的移动平均线方法就是在价格走势图上绘制一条移动平均线,每当实时价格与移动平均线相交时,只要价格高于移动平均线就可以买入,价格低于移动平均线时就要卖出。
图3-5 在纳斯达克指数与移动平均线相交时进行反手操作
正如前面所述,开仓的方法在一种交易策略中是最不重要的部分,自然我们也应该在这方面的内容上花费最少的时间。然而,这并不意味着它们一点儿用都没有,以至于可以忽略不计,只不过从长期来看,其他方面的内容对于提升实盘交易结果的作用更加显著。
趋势跟踪的方法一般还需要相应的过滤技术,以保证买入操作只发生在市场进入上涨的趋势之后,而卖出发生在市场进入下降的趋势之后。很多趋势跟踪者都不希望被短期的扰动诱入到不利的强趋势中,而有效的过滤技术可以帮助我们解决这个问题。一种简单的办法是使用不同时间尺度的两种趋势度量方法,比如用200天的移动平均线做长线的过滤指标,用天数更少的移动平均线做短线的开仓指标,两个指标所指一致才能保证我们的开仓方向和长线趋势不发生背离。本书一开始介绍的策略并不包含过滤技术,这是为了让最初演示的模型尽可能简单易懂。在后面,我会为这些策略增加更多的功能,那时我们将会观察到交易结果所受到的影响。