京公网安备 11010802034615号
经营许可证编号:京B2-20210330
机器学习在量化投资中的应用:那些年我犯过的错
机器学习的论文里面通常会有一张这样关于准确率的图:所有被比较的方法的准确率图线,都在文章提出的论文的方法的准确率图线之下。看到这张图,我们大概会觉得这个方法蛮不错的,可以一读。
如果还是抱着类似的想法去读机器学习在量化投资领域里的某些论文,那么你得当心了。让我们以文献[1]作为一个例子。在文献[1]里面,画出了’Total wealth achieved’的图线,我们截取其中的一幅,如下:
所谓的total wealth achieved,其实就是累计的收益。假设有一个人,第一天投资了1块钱,他在第t天的收益为r_t,那么到了第T天,他的累计收益就是(1+r_t)的连乘(直到T)。在这篇文章里,非常漂亮,所有既有的方法在累计收益的图线,被该文提出的方法(CWMR)完美压制,而且随着时间的变大,差距越来越大了。我一开始读这篇文章的时候,感觉该文提出的方法效果实在是太牛逼了。
下面我们将说明,累计收益图线是一条比较“然并卵”的图线。我们假设,有两个基金经理A和B,他们都从一块钱(这只是一个例子。。)开始起步。第一天,A表现出色,全线涨停,怒取10%的收益。B呢,押错了宝,本指望靠跟着国家队混口饭吃,结果被摆了一道,买的股票全跌停,损失10%。作为B的好基友,A看不下去了,他知道B不怎么会投资,于是跟B说,以后你每天就跟我混吧,我干嘛你干嘛。于是,从第二天开始,两人的每天的收益一模一样。假设从第二天起,他俩的收益在0.5% 到1%之间随机波动。那么投资了一千天之后,他俩的累计收益曲线是什么样子的呢?请看下图:
很明显,这两条曲线之间的差距也变的越来越大了,而我们知道,他俩其实只在第一天收益有所不同而已,而在其他的999天完全一样!
所以你看,累计收益的曲线,并不是一条很好表示算法表现的曲线。评价一个算法,我们还得综合很多其他的评价指标,如夏普比率,最大回撤等等。那累计收益曲线是不是一点用也没有呢?不是的,虽然它的绝对数值本身的意义有限,但是我们可以通过它清晰地看到策略的涨跌。
对使用范围的误解
使用机器学习做量化投资的论文,大体上有两类思路。第一类如我在上一篇文章中所讲,是设计个股的投资策略。另外一类就是类似文献[1],考察的如何设计合理的投资组合。其实这两种方法的目的是一致的,也就是大家常说的“寻找alpha”。
但是,投资的世界是如此复杂,并非所有的任务都是跟“寻找alpha”直接相关的。比如,如果你是一个交易员,你的老大告诉你,现在我有XX公司的一千万股必须要卖掉,你看着办吧。考虑到这是一个比较大的交易量,如果你按照平常的交易方式,在限价订单簿上挂这么大的卖单,那么那些买家立马就知道:这小子肯定有很大的卖出压力,那咱们果断要压价啊,压得再低这货都会卖的!为了防止在大单交易的时候出现这样的情况,有一种新的交易场所叫“暗池”。在暗池这个交易场所里,你不再关心能卖多少钱了(我的理解里,价格是由暗池的提供者以一种比较合理的、大家都可以接受的方式给出),你现在只想尽量多的把股票给卖出去(我们只讨论卖的情况,当然也有人买)。而且,在暗池里,你所能看到的,也就是你自己卖了多少股,其他信息都看不到了。由于暗池交易的参与者交易量都非常大,大家又没法看到其他人的单,所以,往往成交量有限。你挂了一个卖单,最后可能只有15%的股票给卖出去了。当然,市场上有不止一个暗池可供你操作。那么问题来了,你将如何把你的订单分配到这些暗池中呢?
好了,现在让我们来把这个问题具体化。这里我们只考虑卖股票的情况。假设,你在每个时间点t,都有V的t次方这么多的XXX公司的股票要卖出,而有K个暗池可以供你交易。你的目的就是,在每个时间点t,把V的t次方拆分成K份,分别放入不同的暗池,使得最多的股票可以被卖出。这就是Michael Kearns在[2]中所讲述的故事。这篇文章做了一个非常强的假设,如下图
这篇文章给我最大的启示在于,它告诉我,机器学习算法不止可以被用来“寻找alpha”,它也可以在一些其他的投资环节中起作用。它可以优化某些投资过程,把一些手动、半自动的投资方式变成自动化。即使这样的改变不能直接带来alpha,也一样大有用途。
对实证研究的漠视
我刚开始接触机器学习在算法交易中的应用的时候,以为这件事是很简单的:我只需要根据历史数据,用一个机器学习算法预测下一个时间点股价不就得了么。显然,这样的想法又too young too simple了,被我的导师无情批判过。
那么,究竟应该从什么样的一个出发点来设计一个算法呢?我的导师认为,应该是从股票数据上观察得到的某个性质出发。比如,我在上一篇文章里提到的方法,其实就是基于“某些股票数据呈现出趋势”这样一个性质入手,来开发一个交易策略的。而我们提到的文献[1],则是从“股票收益存在均值回归”这样一个性质入手的。
我应该从哪里得到这样的性质的?我相信业界的人应该有观察到一些数据的性质,但是他们不会去说出来,所以,对于一个普通人来说,可能就得依靠阅读实证性的文章了。有一些实证性的文章会去研究股票数据具有哪些固有的性质。比如说均值回归、动量,其实都是有实证研究的支持的。
对于一个想用机器学习来进行量化投资的研究者来说,阅读实证文章更是大有裨益。试想,如果一个研究者只知道股票有可能有趋势这一个性质,那么他设计的算法很可能就跟我在上一篇文章里设计出来的差不多。而这样的研究者是无论如何也设计不出基于“均值回归”这个数据性质的算法的。因此,我总结了一点,想发论文,最好从那些被别人忽略的数据性质入手。
对模型假设的忽视
关于这一点,这里只做一个简单的阐述。我希望在自己了解更深之后,针对这个问题写一篇专门的文章。
刚开始来中大的时候,我的导师问我:你如何判断一个模型能否work?我一时语塞,说不知道。然后老板就对我说,你得看,这个模型的假设与真实的数据是否是一致的。一个非常典型的例子,略懂投资组合的人都会知道Mean-Variance model [3]这个拿到诺贝尔奖、被称为现代投资组合研究开山之作的工作。但是,虽然这篇文章有着巨大的影响力,其实实际上并没有被太多人使用(至少是它的原始版本没有太多人用),究其原因,就是这个model中的诸多假设,与真实的股票数据根本就不相符,因此,当我们进行真实投资的时候,必然不会使用它。有朋友提醒我,说Mean-variance model并不属于机器学习的范畴。确实如此,但是也有些机器学习的研究者研究这个模型,提出了改进的模型,比如ICML11上的文章[4]。
总结
在这篇文章里,我总结了这两年中我曾经犯过的一些错误。我个人认为这些错误是可以帮助一些后来人少走一些弯路的,因为在与一些人的交谈中,我发现他们都或多或少的有跟我类似的错误认识。就写这么多,能抛砖引玉则足矣。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在数据驱动决策的体系中,数据分析按照分析目的可分为描述性分析、诊断性分析、预测性分析与指导性分析四大类型。其中,诊断性分 ...
2026-09-01网络请求是Python爬虫开发、接口测试、数据拉取的核心基础功能,Python生态中主要依靠 urllib 和 requests 两大库实现HTTP请求操 ...
2026-09-01 很多数据分析师面对业务问题时,常常感到“知道要分析,却不知道用什么方法”。其实,数据分析并非无章可循——从三大基础范 ...
2026-09-01在数据库设计与业务数据维护中,自增ID是数据表最常用的主键字段,用于唯一标识每一条业务数据,正常状态下ID应保持连续递增。但 ...
2026-08-31在数理统计、数据分析、经济测算与日常量化评估中,平均值是刻画数据集中趋势、反映整体水平的基础核心指标。在实际应用中,最常 ...
2026-08-31在数据驱动的时代,数据分析早已不是“凭经验、靠感觉”的零散操作,而是一套具备固定逻辑、标准化流程的系统方法——这就是数据 ...
2026-08-31在大数据时代背景下,海量行业数据亟需通过专业化工具挖掘潜在价值,辅助企业业务决策、优化运营模式、规避经营风险。Python凭借 ...
2026-08-28SQL是数据分析领域最基础、最核心的工具,承担着取数、清洗、统计、分层、归因的全流程工作。不同于单纯的语法练习,实战化SQL数 ...
2026-08-28 很多企业团队并非缺乏指标,而是陷入“指标失控”:仪表盘上堆满实时跳动的数据,却无法回答“当前瓶颈在哪、下一步该做什么 ...
2026-08-28随着新零售模式的快速普及,零售行业从传统的“货品驱动”全面转向“用户驱动”。门店交易数据、线上消费记录、浏览轨迹、复购频 ...
2026-08-27在数据分析、爬虫采集、接口开发、数据归档等场景中,JSON与CSV是两种使用率最高的数据存储格式。JSON为键值对结构化格式,适配 ...
2026-08-27 很多数据分析师每天都在计算指标、制作报表,但当被问到“什么叫指标数据元”“指标数据标准包含哪些核心维度”“指标数据质 ...
2026-08-27在数据分析工作中,时间序列是最常见的数据类型之一,订单时间、日志时间、交易时段、统计周期等数据均离不开时间处理。原始数据 ...
2026-08-26在数据分析与数据预处理工作中,原始数据普遍存在录入错误、系统故障、偶然极值等问题,极易产生异常数据。异常数据会严重干扰数 ...
2026-08-26 很多数据分析师能熟练写SQL、做透视表,但当被问到“数据是从哪里来的?经过哪些加工才进入数据仓库?ETL具体做了什么?”时 ...
2026-08-26在数理统计与数据分析领域,多因素方差分析与线性回归模型是研究变量关系、因素影响、数据差异规律的两大核心工具。二者均属于经 ...
2026-08-25数据分析的核心价值不在于数据计算与图表制作,而在于清晰、精准、有逻辑地输出结论、支撑业务决策。日常数据分析报告普遍存在结 ...
2026-08-25 很多数据分析师能熟练地写SQL、做透视表、算描述性统计,但当被问到“如何预测用户流失概率”“如何归因销量下滑的关键因素 ...
2026-08-25平均数是数据分析、数理统计与日常运算中最基础、最常用的统计量,核心作用是浓缩一组数据的整体水平、刻画数据集中趋势。在众多 ...
2026-08-24在MySQL数据库中,InnoDB存储引擎作为主流事务型引擎,默认事务隔离级别为可重复读(Repeatable Read,RR),这与SQL Server、Or ...
2026-08-24