演讲全文:

 

现在讲的现代CTA,跟刚才讲的经典CTA基础是一样的,但是它更有效率一些,就是它的有了一些新的技术。我总结了一下我周围的朋友,做基金的同仁,他们现在用的一些方法,把它抽象起来,其实核心的策略就是这个。但是他在细节处理的时候有各种的方法的,我们就讲这里头的一些重要的方法。


主要有这五个点:第一,恰当的数据选择和计算方法兼顾后验精度和效率,这是现代CTA的第一个纵深的方向。第二,通过一些现代的工具应对样本内参数寻优当中的一些缺陷。第三,就是它考虑仓位对盈利能力的影响、区分信号管理型和资金管理型后验,我们在做的时候要区分开;第四,它使用投资组合,资产配置的方法,优化策略组合权重,平滑收益曲线。现在很多基金公司,股票类的基金公司最近说得比较多的一些方法,风险评价,Smart Beta其实这些都是通的,数学方法是同一个方法。最后一个,构造新的合约,这是最牛的,寻找套利,关键是要放大交易机会。我给大家讲讲这五个领域是什么感觉。大家先知道我们现在做CTA的机构有什么样的一些动作。


精度技巧,商品期货跟股票是不一样的,它(期货)的数据不连续,而股指不存在。第一股指的当月就是它的主力,基本上这个规律是没有什么问题。第二做日内交易策略,你没有换不换月,没有迁仓的概念,即使我当月要退市的时候,我这里边还是有交易的。但是商品期货不一样,它就换合约了。你日间趋势怎么做研究,其实它对CTA的影响是致命的。所以说就有各种方法,像当月连续,还有合约指数,就是我对这个合约进行加权,这都是做换月的一些方法,都可以拿来做。但是对于在实盘中,如果说拿这种0000(品种主力合约的连续数据)和0001(品种当月数据的连续数据)的数据来做的话,在使用中有一些问题。主要是换月的时候,它的价格是有波动的,我给大家看一张图,大家就明白了。

 

1.png






















这个(上图)是正常的换月,旧合约走到这里的时候主力已经换这个合约了,这个是新合约走到这儿了变主力合约了,这个是正常合约的过程。如果是说你拿连续数据(下图)来做换月的话,就底下这种状态,我一开始我在这儿多单建仓(下图左边的红箭头处),我进来之后到这儿(下图虚线分割处),这个它会止损的话,你的价格就变低了,但不是说它下跌了,是说它换月了,是换月的价格的差异引起的止损。但是策略不认识,这是换月一个非常非常严重的问题。我们之前的这个软件主要是给几家对冲基金在用,他们提了这些问题,我们给解决了,做了一个8888的后验。之前,这个数据0001是市面上常见的数据,后来我们又创造了8888的这样一个后验,它是这样的一个过程,我们叫超级后验。


 2.png












它是分两步,第一个是这幅图,每个合约都在做后验,这个合约是在这儿(第一个红箭头)建仓,因为这儿是它的趋势,这个合约是在这儿(第二个红箭头)建仓,因为这儿有一个趋势,这两个并行算的,现在还没有关系,大家看明白这个意思没有?


 3.png












这有一个前提的,刚才它在这儿确实有开仓了,所以说我就在这儿(绿箭头)把旧仓平了,把新仓弄在这儿(第二个红箭头),直接在这个价格补上了,这个是真实的交易价格了。为什么要这么做,实盘的时候就是要有这样一个过程,我在这儿开仓我就拿、拿、拿、拿到这儿,因为主力要切换我就平了,平了之后你开不开仓?这不一定的,这得取决于你这个新合约它前面有没有开仓信号。它是在这儿有一个开仓信号,所以这儿给他补仓了。这是唯一符合真实合约换月的方式。这个对于日间的策略来说做这种超级后验的时候非常重要。


刚才提到两个数据我必须要进行并行计算,为什么要并行计算?因为它快,当我做大规模的后验的时候必须并行。我现在有很多的策略,我针对这个品种,我又想从一分钟后验到十五分钟,这个是很花时间的。那你做现在的CTA,你说要做大数据,你得快。那怎么快?就得用并行计算的技术了。


比如说一分钟数据,两分钟数据,我只拿一分钟数据来驱动,两分钟数据用一分钟数据里合成,三分钟数据也用一分钟数据来合成,这样数据只导入一次,这样假如我要用一百次的话,这个效率就大幅度提升了。尤其是参数循环的时候,你要算的参数取值的几何数目比较大的时候,你如果一直去循环,那就太慢了不可用。一开始做研究的时候没有这个工具,我们自己也用matlab, R ,SAS各种东西,各种程序都很慢。如果你工作量不大也可以,你就一两个还可以,但是要考虑各种品种、各种周期、各种参数,跨周期、跨品种、跨参数,还有多个策略,一千个策略,那你必须得有很快的计算机和一些技巧在里头。


这个就是效率技巧。涉及两千多万条数据的时候,大家看这个图,大概是这样一个概念。正常如果说你要涉及2600万条K线去做计算的话,就正常的机器,这个一天一夜都做不完的,但是我们是55分钟,用了一个模型。


6.png


















这里我再说一个过度拟合的问题。其实现在统计学一直有一个核心的问题,就是到底什么是信息,什么是噪声,这是一个非常核心的问题。在今年年初的时候,alphaGo打败人类棋王的时候,当时所谓的学习,这个学习方法不是现在发明的,这个学习方法我们讲的就是机器学习或者统计学的方法,在上世纪八十年代就已经有这个学习方法了。有好多的学科里边都要学统计学,统计学关心的思路、关心的角度跟计算机的一样。关心的问题是什么呢?比如说我要预测一个Y,我有一堆的X,我要把这个规律给找出来。那我这个模型如果不复杂的话,我肯定是可以把这个学完的。我建立一个映射模型,如果这些X的取值都是Y,那百分之百把数据解释掉了。但是你这个模型它跟新数据没有任何的预测性,我新的数据来了你这个模型没有用的。所以统计学的角度来说它怎么去解决这个信息的问题呢?这个就是说,如果你的研究阶段,你的随机分布你是知道的,那么一个好的模型,它一定是要在偏差和方差之间做平衡。偏差指的是说我这个模型的真实值和预测值之间的这种差距这叫偏差。方差是我本生这个模型的复杂度或者是我的稳定性,它在这两边取一个平衡,然后取一个,求一个最优值。如果说模型很复杂的话,一般会惩罚模型复杂度的,就是我在比较两个模型的时候,我惩罚这个模型的复杂度。有很多看起来很玄的神经网络模型,往往在金融预测中它是不好用的,因为它非常的复杂。


为什么阿尔法能打败棋王而不可能做投资呢?我当时在央视节目里讲了,这个主要是下围棋再复杂,它还是精的,它难在你想的东西很多,在于他的博弈的各种数据的可能性,但是它简单来说规则是透明的。我看了一个小说叫《三体》,这个《三体》里头三体人它很厉害,它玩宇宙的维度能玩六维,但是它干不过地球人,为什么?因为地球人比较鸡贼,他的思想是不透明的。就是说围棋它的规则是透明的,你知道你的对手是谁,是你的白棋、黑棋,什么是输?什么是赢?它是透明的。但是你投资是透明的吗?这次我是多单,下次是空单了,对手是变的。走一步棋,围棋里头这步棋走完,就完,你总要走到一个地方吧!投资什么叫走一步,投资是连续的,围棋是离散的。所以不一样,这个根本没有法变成一样的问题来看。


问题的点就在于你没法通过建立一个足够复杂的模型把它预测透了,因为你根本都无法区分出来这个数据里头的信息和噪声,如果说这个数据是你随机模拟的,我知道它的随机分布是什么,我是可以精确的知道那个最优参数是多少?这个所谓的最优参数是什么?就是我预测的真实值和预测的值得这个差距的平方的期望值是最小的。就是在所有的猜测里头,我猜测的这个误差是最小的,就存在最优参数的。


但是在投资中是不存在的,所以我们找不到最优的参数,我们怎么办呢?我们怎么解决这个问题呢?它只能通过一些相对来说有比较退而求其次的方法。第一把参数直接给拍脑袋拍出来,通过一些投资思想。第二个我抽样,不是把所有的都算出来,而是把它的切成固定的网格,我在这些固定的网格里头,每个网格我随机抽一个参数来算业绩。为什么抽呢?通过抽样就避免了我把最倒霉的那个值,异常值找出来,我不想要那个异常值,但是那个异常值概率小,我抽的时候那个异常值的概率是极小的,所以在每个网格里头我就抽一个值,这个逻辑有点像人口普查的精度不如抽样调查的精度是一个道理。普查的时候因为有错报、漏报,抽样调查的时候,通过抽样保证小样本的精度,通过工具计算之后它这个精度是很好的。但是我要去普查反而会出错,就是我把所有的参数算一遍,还不如我在一个网格里头抽一个值我算一算。比如我把它切成一百个网格,每一个网格算一个值,这样我把最好的10个值拿出来,我就锁定了最好10个网格。这就好像我考察一个地方学生成绩的时候,每个班我随机抽一个人,我就拿随机抽的这个人的成绩来代表你这个班的成绩,这听起来好像不是太靠谱,为什么不是拿平均值,为什么不拿平均成绩。因为你这里有异常值,你有非常高的值和非常低的值,我就随机抽一个,拿一个用随机性来给我们一个可靠性。不知道大家能不能理解我这个意思。这确实是一个办法,随机抽一个值,然后在这里头再把它的业绩画出来。就是说我通过舍弃大块的参数值,但是我的网格是密集的,我来找到一个方法,抽样,这是一种方法。


还有一个方法,局部线性估计。它是一个什么意思呢?很简单,就是我先把所有的参数的值都算上,每个值的参数我都算过了,算过之后取个均值。刚才说了均值不靠谱,但是我这个均值不是说把班上所有人的成绩加起来,我的这均值是一个叫做局部线性的一个均值。我会把学校所有人的成绩都加出来,但是我根据距离权重,离我越近的人我给它的权重越大,离我越远的人权重就越小,这样的话就利用所有人的信息,我算了一个平均成绩。听着当然很迷迷糊糊的,但是它的结果是什么?大家可以想象,本来这个业绩曲面是毛毛躁躁的,有刺的,有的地方高,有的地方低,但是我通过这样一种方式,我在这个变成光面当中来找最稳定的一块,随便找一个。这个技巧主要是在我估计这个曲面的时候,我用的信息是整个这个曲面上所有数据的信息,我用了一个权重,有的权重大有的权重小,那个权重是有函数的,这个叫局部线性估计。这个在信号处理的办法是很多的,但是在非经典的金融经济学不多,这在三个领域或者是两个经济学领域都是拿过诺贝尔奖的。只是因为那个最优的参数是不知道的,就是因为我不知道真实的分布,如果我知道那个真实的概率分布,我就知道它的所有的参数,所以我的那个曲面是一个完美的曲面,那个跟你的参数数据是不一样的,所以我不知道那个参数,所以说它那个多少有点经验值。所以我们这个算出来也是一个经验值,所以我没法说哪个是最好的,经验是解决问题的办法。局部估计线性也是一个解决的办法,抽样也是一种解决问题的办法。移动平滑,这个是我们当时一个同事讲的,他说另外一个思路,他那个思路是什么呢?他把做后验的时候这个区间切割,拿一段时间来做后验,再拿一段时间评估业绩,然后他往前移两个月再拿正常的数据来做后验,拿这个来做业绩,它始终是有重叠的挪挪挪,在样本内中去做参数寻优,样本外来评估业绩,这样的话就画出了这样的一个值,通过寻优样本,测试样本,来知道里边的一些参数哪些是最好的,值是什么。这样的话你需要综合的去拍一个,最终还是要拍的,但是至少他给了你一些信息,跟着市场的变迁,最优的参数值是不是有稳定性,如果有一组参数始终是比较可靠的,那你就可以大概的相信未来它是可靠的。


作为我来讲,量化它没法精确的解决问题,只能说是通过抽样、移动平滑、局部平滑。这个移动平滑和局部平滑的区别在哪儿?局部平滑是我把参数,参数和业绩之间,把那个曲面平滑一下,这个移动平滑它指的是原始的数据算一段,然后我的这一段评估业绩算一段,是不一样的。刚才我说的局部平滑是我把所有的数据都用上,每个参数我都用所有的数据来算一个业绩,然后我在参数和业绩的关联层面做一个平滑,那是一个招。这个招是从数据不用全部的数据我就拿一段数据来做,还不是说我选完我就拿这个选它的这个数据来算的业绩,那没意义,那肯定要很好。我是先选出来,我再拿滚动的数据来算业绩,这样弄,就成了。这就是招


实际当中,专业,确实这个东西很枯燥,肯定能挣到更多的钱,但是大家都在博弈,你再聪明每个人都有自己的招,既然你学了,那你就要比量化的同行要做得好,你得有招。但是这个东西你不可能是印钞机,如果你真找到那个密码,那不可能。还是说不确定性,你始终在一个不确定性和博弈中,这些方法都是可以帮你找到参数的,这些都是属于现代CTA常见的一些方法。


这里重点讲的就是信息管理型后验和资金管理型后验。以前我们在做股票量化的时候,算业绩它没有杠杆的概念,始终是在满仓的情况下来算你的年化收益率、年化波动率和夏谱比率。突然有一天遇到期货的时候,当时我就直觉,到后验的时候,你用几倍的杠杆来后验这个业绩?因为一倍杠杆、两倍杠杆和五倍杠杆确实你算出来那肯定是不一样的。在统计上来说,你做后验是不应该算杠杆的,实际上业绩是一个随机分布的话,杠杆是会影响业绩的。就这么说吧,我做后验的时候,假设我把钱用满,用六倍的杠杆我去算一个夏谱比率,和我去算一倍的杠杆去算夏谱比率,比率应该是一样的,数据不一样,但是在统计性质上它应该是一样的。因为你的分子和分母,你的收益率和波动率都在等比例的变大。但是现实中为什么不一样呢?因为当你用杠杆的时候,因为你是连乘出来的东西。你挣钱在后和你挣钱在前面,连乘出来的夏谱比率不一样,会影响到你的策略组合。后来我就界定了两个概念,信号管理型和资金管理型,什么概念呢?如果我的交易系统,我就是关心的是入场、出场、我没有加减仓的概念,只有开平仓的概念,那你不要用杠杆了,那我就在后验的时候,把初始业绩等于初始建仓的后验面值,这样的话杠杆比率,初始杠杆等于1的情况下我算出来的业绩,这是一个策略可比的,不同的策略可比,不同的种类可比,它是一个公允的业绩,用这个业绩来用这就OK了。如果说我这个策略有加减仓的逻辑,比如海归,那就是我说我在什么样的情况下挣了钱我建1手,紧接着第2手,第3手。那对于这种资金管理的策略,策略本身是要为你的杠杆负责任的,那你就这样来写,没有问题。如果说策略本身不包括仓内的逻辑在里头,你就不要用仓位,你的杠杆就是1,这么来建立仓位。换句话说我做股指后验的时候,比如当时一手估值的差不多是92万,那我的初始资金就是92万,92万买股指期货的时候,实际的保证金可能就是15万,我用15万的保证金买了一个价值92万的股指期货的多单,这个时候我的杠杆比例是一,因为我的面值除以我的帐户权益是92万。15乘以6是90,我当然可以买6手了,从后验这个6没有意义,它会影响业绩的评估,这是我说的核心的点。本身我们说这个策略它只有开平仓的逻辑,没有加减的逻辑合乎。比如说我是海归,我就是要根据我的ATR的值,我推出来,我建仓的时候,我首先建议多少钱,当然这个时候就按真实的来算,等比例,这么多钱两手等比例来算就行了,一定我们要把这个区分开。这个就是我刚才讲的信息管理型和资金管理型。

 

下边主要讲策略组合。因为现在我也管FOF基金,现在回到一个问题上来,我做策略组合的时候,每个策略应该给它多大的杠杆,我现在把五个单策略做一个组合,每个单个的策略给多大的杠杆,这个问题怎么办呢?如果是说这五个策略都是资金管理型的策略,每个策略都有人家自身的仓位逻辑在里边,那就把它当做黑箱,因为本身人家做这个策略的人,或者这个策略有自己的杠杆逻辑,那我就把它作为股票来做了,我给它的权重就是零到一,五个的权重是一,每个的权重都是零到一,我去做优化,这样就回到了一个最简单的二次规划,最原始的均值方差模型,我就可以去算出来一个,优化项目比率,通过把一块钱在五个策略之间进行配置,配个权重出来,按照什么标准呢?按照配完最后目标值最优,这个是资产组合的逻辑,我就这样来配。


现在的风险评价策略是什么意思呢?指的就是我还是去优化这五个策略的权重,这个权重都是0到1的,你0.1,我0.2,他0.3,只是说风险评价的原则是我让每个策略对这个组合总体风险的边际贡献是相等的,就我这个头寸再多一点点,我给这个整体组合带来多一点点的风险,跟我那个头寸再多一点点带来的风险,它是一个变化的概念,边际贡献它是相等的,这叫风险评价。所有的策略对总体的风险额外贡献是一样的。总之你有各种各样的方案,总之我是在一个目标之下,我去优化我的权重,这就是资金管理型的方案,直接拿来用。


信号管理型它牛在什么地方?就在做单策略的时候我是没有给它设定杠杆的,杠杆是1的。我在做组合策略的时候,有意思的来了。因为我组合策略是可以预估出杠杆的,我最大的杠杆比例就是在风控条件之下我的保证金分之一。如果我的保证金百分之十,就是十的组合,但是有一个理论上线,这个时候我就可以跟每个策略都配一个杠杆了。就是说在做单策略后验的时候我不考虑杠杆,但是我在做策略组合的时候,我允许这个策略用两倍的杠杆,那个策略用三倍的杠杆来配成一个组合,为什么这个时候才允许用杠杆呢?因为单策略的杠杆本身是不影响业绩的,但是多策略杠杆是会影响业绩的。为什么会做策略组合?就是因为两个策略之间进行组合的时候,它们的风险发生变化,如果说你预估它的杠杆,你允许它的业绩,你允许它用杠杆,你允许给它的头寸更多,这个时候就可以配出来一个更优的波动,它的波动会更小,此消彼涨,你可以把这两个之间的最优的配比配出来。所以信号管理型后验最大的好处就是我可以在做策略组合的阶段再优化的时候,我再来去确定每个的杠杆,最后都在组合里头,这样的话,就是说整个后验补充上了。如果说你的策略是海归这样的策略,那你就不要去碰他,你给它的权重不一样,你就把它当作股票来做就行了。如果说你是一个纯期货的开平仓的期货,我做杠杆把你的业绩统计出来,这个基础业绩就行了。


当然在做这个组合化的时候,信号管理型,可以设定其他的指令。比如收益回撤比,因为它也是一个性能的指标,你的性能是什么?收益。你代表的是什么?可以是波动率也可以是最大回撤。像夏普比率优化是二次优化是数据可解的,而这个收益回撤,就是最倒霉那个人所处的那个位置,那可不是说有公式的,它有统计的算术公式,但是没有数学的自由解,所以要用遗传算法。这两个哪个好,这个取决于使用者他的偏好。夏普比率优化是在假设之下它是最优的,如果不是在特定假设下的时候,可能用收益回撤比这样的指标更能够控制你实际的回撤。


核心的技术我就讲这么多。这个就是现代CTA的要点。其实大家都感觉到了,就是通过一些好的后验的方式、一些好的参数的方式、策略组合的方式。当然最后还有一个很重要的点,我这个没有写,我讲一下自定义合约,好几年前的时候,我的博士生导师研究了一个课题,这个课题很有意思,他说他来造品种,他就来造一个新的品种,比如说21手的铜加了11手的黄金,加了5手的螺纹钢,这是一个新的品种。为什么要造这个新的品种呢?就是因为当它不是为了套利,他造这个新的品种是因为我单个合约的原因。因为做CTA,我讲这个,可能很多人都在做,你进场我出场,趋势已经被你吃掉了,它没有办法通过简单的趋势策略来赚我们说的最早技术分析的趋势逻辑的钱了,但是很有可能在几个有相关性的品种上面复合出来一个,它有点像一个指数。就是通过新兴的趋势最大化来制造新的评估。那这样有什么用呢?我把这个配好了,我就把这个海归策略套上去,就赚钱,因为它的趋势是为了光滑,听起来很容易,他们雇了好多的博士来研究这个问题。但是万变不离其宗,一开始讲的趋势交易逻辑它是最核心的,你要是说我们用其他的一些能力,自我修炼等等,就做大趋势,我不研究这些小技巧我也可以赚到我应该赚到的钱。但是不同的品种它在期货市场里头,在量化里头它要找到自己的价值点的时候,它会有一些方向,那我来讲始终是趋势,在做这个事情。


最后给大家讲讲我们做的这个策略。其实这个策略逻辑在前面已经介绍过了,这个其实也是前几年我做的一个项目,当时周边有一批做期货的高手,然后我们又做了一个网站,我就想着说是把策略变成一个自动交易的一个信号,然后让跟期货公司后台连接,然后其他的投资者就可以直接挂接上来直接用。一方面我们在找期货高手,想把他们的策略弄过来,帮他们去卖,一方面找一些人跟。这个模式其实也是蛮有意思的,说了好几年了。


大家看这个实盘的策略,这个应该是一个外边的人做的,他提供一个策略,黑线是真实的利益走势。之前这段是在后验,在这个时候做策略,开始成长,一开始也有回撤。但是这个策略他有他的粉丝在用,我的印象中也还是有百八十人,今年就挣到了,当月收益率80%,这也是有代价的,之前这么久没挣到钱的阶段,这也是焦炭的一个策略。


然后铁矿石应该是我们自己做的一个策略,当月收益14%。应该是Dual Thrust策略,其实我今天讲的看似Hans123,其实都下架了,其实在去年的时候有一段时间,有几次股指跌停的时候,当时我们网站上所有用户的收益最低的那个月的收益都保持50%以上,就是靠Hans123这个策略,你自己做也可以。我讲的就是因为当时,但是现在所有的策略都不挣钱了。

 

策略组合,这是一个真实的组合,也是准备了好久,有这些品种,一堆,之前都是后验,这一段时候是实盘分析,做的时间不久。这应该是一个全自动的,期货账户一挂就会全自动的带起来,之前我们一直没有推策略组合,今年才推出来的,我们也在找各种高手。这是一个很真实的,就是用信号管理型的选优评出来的,这个没有很复杂的策略,都是一开始的开平仓的一个策略,在这些品种当中都有,都是通过一个信号管理员给它配一个杠杆,配一个权重。这个做的时间比较短,比较新。


这个(铁矿石策略)和策略组合是有区别的,它这个做得已经很不错了,但是有一个趋势性的回调,这个毛刺要多一点,单策略,但是到策略组合之后整个这个趋势就比较平稳。这是一些策略,这个软件,我刚才算的那些东西都是拿一个研究软件算的,这个是交易软件,盘中项目的整个过程都涉及。如果大家愿意去用,我这个软件是免费的,可以自己去试试做。套利又是另外一个领域了。


之前做得最有意思的一个阶段就是2012年白银期货上市之后当时上海交易所的Au(T+D)、Ag(T+D),这个当时是有不少机会的,现在当然有些品种跨期套利可以做。