一次向一个朋友介绍我们公司的深度数据因子模型时,朋友问我,模型回测时间跨度是多长?我说,从09年1月1日到18年12月28日。朋友说了一句,那你们模型的训练样本太多,实测样本有点少。
当时听到这句话时有点懵,咋一听好像挺有道理,但是总觉得哪里不对。后来仔细一想, 这是把模型训练过程和模型回测过程混起来了。所以,我想用这篇文章,来说说我对这两个概念的理解。
模型是什么?
首先要说说模型的概念,英文单词model,可以用于多个领域,在wiki上,model这个单词分别从科学、技术、数学、心理学、经济等很多个不同的领域进行了不同的定义。
当然,本文提到的模型,仅仅限制在投资领域。那么模型到底是什么呢?
模型可以是一个函数
比如下面这个公式:
y = f ( x1, x2, x3, ......xn);
一般而言,函数的输入往往会有多个参数(维度),而输出的结果如果只专注一个单一的目标,那么结果就只有一个,比如我们公司提供的护城河因子就只有一个结果——护城河评分;而如果关注的目标有多个,比如投资评级变动因子,其目标除了投资评级变动评分以外,还有过去一段时间内给出投资评级的机构数目,那么这样的模型结果就是一个由多个数值组成的数组。
模型的创建一定需要训练样本吗?
我们平常使用的量化因子数据其实就是通过不同的模型创建出来的。
举个例子,我们想依据上市公司的财务表现给每个股票的护城河属性进行打分。
假如我们可以考虑的输入参数是ROE,ROIC,毛利率,净利率,输出结果是0~5之间的一个数。一种简单的做法是,利用专家的业务经验和相关的金融模型等,拟合一个函数,这种做法不需要训练样本;另一种做法是,挑出一大堆包括ROE,ROIC,毛利率,净利率数据的样本数据,接着由专家在0~5分之间打分,然后再用这堆样本数据,用人工智能算法去训练这个函数,这一堆样本数据就是训练样本。
模型也可以是量化程序。
量化程序往往是一个比较复杂的模型,一般会使用大量的数据,并结合业务逻辑,以交易获利为目的,这种模型更合适的叫法应该是策略,或者更精确点,叫量化策略(区别于主观交易策略)。
回测的作用是什么?
量化策略效果怎么样,最直接的做法,就是利用历史数据进行回测,所以回测的作用,就是用来查看量化策略在历史上的表现情况。如果回测表现不佳,那么说明量化程序还需要改进。只有在回测表现符合预期之后,才能进入实盘验证阶段。
当然,如何检查回测的表现,这也是一个比较专业的活,需要另外再写一个文档来介绍。
最后总结一下本文的观点:
1 并不是所有的模型创建都需要用到训练样本,只有通过人工智能方式创建的模型才需要使用;
2 模型可以是一个函数,也可以是一个以交易获利为目的的量化交易程序;
3 量化交易程序模型更适合的称呼是量化策略,回测是用来检验量化策略效果的最直接的方法。