QA 小课堂:Introduction

说明:仅用于学习和技术交流,不提供任何投资建议。

基本流程

量化在金融分析中有两种主要的用途:选择标的,确定时机。一个完整的流程大概如下:

  • 先有一个想法
  • 将想法变成策略
  • 将策略变成模型
  • 验证优化

可以发现这其实是和不断迭代优化一个问题是一样的,所不同的是我们在什么领域,用什么数据和方法等。比如,我们拿股票举个例子:

  • 想法:3 年内获得超过 3 轮融资,5 日均线连续向下则买入
  • 策略:将想法表达出来,使之能有运行,我们可以选择一个平台或者自己在本地编写执行代码。可能会同时用到结构化和非结构化数据,通过代码将需要的信息提取出来。
  • 模型:策略经过检验有效后抽象为模型,此时我们收获的其实是一个相对稳定、完善的 “知识点”,该模型可以指导我们未来的投资。
  • 优化:不断迭代,优化策略和模型。

以上过程其实就是 DIKW 模型,即:数据、信息、知识和智慧,抽象和有序程度递增。当模型迭代到一定程度,也许就能从中获得一些智慧,“智慧” 对应于 WHW(What How Why)模型中的 Why,也就是对事物本质的深层次理解。这有点把传统的价值投资和趋势投资方法结合起来的感觉,也有一种 “人工智能” 的感觉。可以想象,一个有成千上万个模型的机器,它的投资几乎肯定是超越人类(至少是绝大多数)的。

技术手段

即便如今深度学习如火如荼,量化依然是机器学习的天下,其原因也很简单:可理解性。也就是说,我们期望知道有哪些因素是明确起作用或不起作用的,而不是简单地拿到数据经过一系列计算得到一个结果。所以目前在这个领域,代码不是关键,核心是策略,代码只是充当了一个纯粹的工具角色,帮助我们去更好地执行策略。

不过深度学习模型确实已经开始发挥作用,毕竟效果确实要比传统机器学习好出很多,而且有些非结构化的数据,传统机器学习不太好处理,比如文本信息提取、情感分析等就需要用到自然语言处理技术。事实上,深度学习模型能够更好地提取到非线性特征,而且能力出众。比如 CNN 在某些层可以提取到图像的轮廓,再比如 Attention 关注到的特殊信息点。

那么,应该如何使用深度学习模型呢?对于结构化数据,直接将 [数量, 维度] 的特征向量喂入模型即可。比如有 1000 个特征因子,我们可以从某一个大的时间段(若干年)内周期性地选择时间点(比如每个月末)来计算特征;标签则可以用下个月股票的收益率,比如正收益的为 1,负收益的为 0。然后就可以像平时处理图像或文本那样使用各种模型了。而对于非结构化的数据,一般情况下需要首先进行自然语言处理。举个例子,比如上市公司公布的季报、半年报等,里面除了一些需要的财务方面的结构化数据外,还有一些诸如与 XX 集团达成战略合作,获得第几轮投资,金额 XX 元,哪些机构领投等方面的信息。

鉴于机器学习的方法已经比较成熟,我们重点关注深度学习和自然语言处理在金融量化领域的应用。

量化初心

量化投资有很多传统方法不具备的优势,比如:

  • 理性,不受数据外因素干扰(纪律性强)
  • 大范围处理、大规模计算(全面高效)
  • 系统性(策略模型)
  • 自动发现投资机会(数据挖掘)

因为它有这么些优势,我们很自然很容易地就像拿来赚钱。但是本系列(包括本人)的初衷并非如此,并非不愿而是不能。理由如下:

  • 影响市场的因素非常多,虽然我们在结构化数据的基础上也会增加非结构化的信息,但依然难以面面俱到。更不用说金融历史中不断出现的 “黑天鹅”,再考虑到国内的政策性市场,要想持续保持高水准的盈利,只靠技术确实很难。
  • 人的欲望一旦被控制就很容易做出不理性行为,虽然机器是理性的,但操作机器的人不理性了依然没用。这就会导致很多不好的负面被释放出来,比如 “赌徒心态”。
  • 做这个是因为它恰好完美契合个人兴趣和方向(人工智能、自然语言处理、数据挖掘、数据分析、经济金融),而且这个领域的数据相对容易获取且比较规范。但毕竟不是专门专业以此为生的,这就跟你练了几天拳击就觉得可以去挑战邹市明一样可笑。

所以,本系列(本人)的初心还是学习和运用技术,这样还可以省掉为验证模型频繁观察数周至数月的环节(实盘前必不可少的步骤)。我们会在模型运用、数据处理、代码质量上花些时间,但业务上更深一步的精调和优化则需要交给耐心的专业人士了。