大数据 > 巴菲特的Alpha:使用机器学习量化“股票基本面”

巴菲特的Alpha:使用机器学习量化“股票基本面”

2020-05-13 18:00阅读(64)

官方帐户。 80 定量投资和机器学习编辑部 未经允许,如果我们说投资界两个最受赞赏的大师是: 巴菲特(基本投资者)和Simmons,则禁止重印 1 前言 (定量投资者

1

官方帐户。 80

定量投资和机器学习编辑部

未经允许,如果我们说投资界两个最受赞赏的大师是:

巴菲特(基本投资者)和Simmons,则禁止重印

1

前言

(定量投资者)

无论他们如何运作,其本质都是在市场上寻求超额收益,即阿尔法。

基本投资和定量投资都有自己的特点,主要表现在以下几个方面:

概述:

全文

定量投资:通过数学,统计建模等方式,利用计算机技术选择“高概率”事件 可以从大量的历史数据中获得超额收益以制定策略。

如果我们将这两种投资模式结合起来,就是我们所说的:

定量

定量:这是定量与基本的结合,意思是“定量” +“基本”,简称为定量投资。 当然,

有其优点和缺点:

基本投资:它提供了深刻而原始的见解; 局限性是假设金融实体基于财务数据的表面价值而缺乏独特的见解。

定量投资:可以快速分析投资领域; 它是一小部分投资分析领域,有时会陷入追逐一直处于高位的股票,或者持有反映行为偏差的亏损股票的情况。 根据摩根士丹利(Morgan Stanley)分析,

:在过去20年中,诸如估值,增长,质量和动量因素等因素驱动了全球股票经理相对回报的65%。

35%的收益归因于基本股票的选择。 这种方法有其优势,但它使策略取决于市场因素,使其成为超额回报的唯一来源。

美国银行美林(Merrill Lynch)的alpha保证金模型就是一个例子,它是该公司基本分析师预测的定量叠加。 在过去的30年中,该模型的表现超过标准普尔500指数23倍。

具有吸引人的风险/回报特征的“量化”模型Alpha Surprise模型是应用于我们的基础研究专营权的定量学科–它使用我们的基本分析师的收益估计来筛选廉价的,超出共识的股票构想。 该模型通常以与市场相当或更低的风险水平为投资者提供诱人的相对回报,并且除了技术泡沫外,自成立以来每三年的表现都优于标准普尔500指数。

人类世界已经开始爆炸性增长,新模型中包含的数据更加丰富。 在金融世界中,软件可以跟踪通话记录中的情绪,检测高管的词汇模式,并量化整个市场的交易情绪。

在更大的范围内,跟踪和存储数据可以揭示长期的经济模式。 例如,购物中心停车场的卫星图像可以确定购物中心的销售量等等。

美国银行美林证券(Merrill Lynch)于2019年进行的年度机构因素调查发现,量子是一个关键趋势:报告中的

我们也分享了一些有趣的发现:

定量模型总体上变得更加复杂, 每个模型平均使用18个因子,而不是1990年代大多数模型中使用的7-8个因子。

17%的机器学习用户使用无监督学习方法,例如我们常见的PCA。 强化学习的使用量最少:几乎40%的人使用不同形式的替代数据,其中最常见的是在线数据,占替代数据用户的30%。 仅约10%的人声称使用信用卡,卫星和地理位置数据。

让我们使用机器学习来研究如何量化基础!

2

机器学习中的

分类

我们将建立一个机器学习分类器来判断股票是购买,出售还是持有。 为了确定股票或公司是否为这三种类型之一,我们将查看每家公司的季度报告。 这些季度报告包含必要的财务信息。 我们需要使用基础分析方法来训练我们的机器学习分类器。

要获取所有代码,请参阅文章末尾的

。基本数据-季度数据

为了训练分类器模型,我们需要收集大量财务季度报告。 来自中国的外部数据:

在中国,建议使用

风,因为它是全面的,并且财务量化因素也很深。 如果您没有钱购买其终端机,则可以使用windquant矿机。 这是免费的。 数据与风的数据相同:

www.windquant.com

2。 排序数据

dataframe如下所示:

我们可以看到所有不同的列以及每列的对应日期。 Stockpump还提供价格信息(最高,最低),这对于我们判断股票是购买,持有还是出售非常重要。

我们有很多方法可以决定股票是否值得投资。 如果过去三个季度资产增加而负债减少,我们可以将其归类为购买吗? 或者,如果股价上涨,长期债务减少? 无论如何,我们有很多选择来确定股票类别。 简而言之,这是基础分析的基础。 基本分析我们如何在不了解基本分析的情况下从根本上分析这些季度报告? 由于我们不是巴菲特这样的基础专家,因此让我们用我们自己的基础分析方法来简化它:基于选定季度的季度报告的

,观察值从先前报告到当前选定报告的变化。 然后,查看下一个季度报告中的价格值,以查看是否存在重大价格上涨。 最后,使用当前报告包括过去报告的更改和将来报告的价格行为,以确定是否购买,持有或出售。

根据选定季度的季度报告,观察从上一报告到当前选定报告的值变化。 然后,查看下一个季度报告中的价格值,以查看是否存在重大价格上涨。 最后,使用当前报告包括过去报告的更改和将来报告的价格行为,以确定是否购买,持有或出售。 从本质上讲,我们正在测试从上一季度到当前季度的变化是否会影响未来价格。 我们将根据先前的报告来判断每个季度报告的执行情况,然后观察未来的价格趋势。 如下图所示:

我们将在每个季度报告中应用此分析方法来创建新的基本数据。 如果该季度值得投资股票,则将对该方法进行分类。 显然,我们不能在初始或最近的QR上使用此方法,因为分析需要过去和将来的季度报告。

4

清除数据

1,创建分类标签

为了对每个季度报告进行分类,我们将尽量避免复杂化。 如果价格在下一季度急剧上涨,那就是买进。 如果跌倒了,那就卖了。 如果两者都不存在,请继续保持。

以下是我们对每个季度报告的特定类别要求:

购买:在下一季度,高价和低价的涨幅超过3%; 在下一季度,高价和低价的下降幅度为-3%或更多; 如果它们都不发生,我们可以考虑其他可能的结果,但是为了简单起见,我们将这些条件保持不变。 我们不知道下一季度最新季度报告的价格水平,因为这是对未来的预测,这是不可能的。

2。 季度报告

中的基本数据如上所述。 对于我们的基本数据,我们将观察两个QRS来创建一个新值。 从先前QR到当前或当前QR的变化将以百分比变化而不是其实际值来衡量。 例如,

假设上一季度的股票价值为1000美元。 该季度的股价现在为1100美元; 上涨了10%。 现在,让我们用当前QR的10%替换1100的股票价值。

,我们对每个QR(不包括第一个QR,因为我们无法将其与不存在的事物进行比较)执行此操作。 现在,每个QR在每个基本值中都有一个百分比变化。

3,代码

现在,我们已经通过百分比变化来测量QRS,并将其标记为购买,持有或出售。 以下是通过代码实现的:

A。 导入数据集

pickle文件是一个数据框字典,其中包含stockpull网站上每个股票代码/公司的QR??S。

B。 辅助功能

c。 每个股票代码要转换数据

1时要注意几点。 为了以后训练我们的分类模型,将DFS词典中的所有数据帧组合为一个。

2,由于不再需要日期,因此重置了索引。 现在,每行或QR都包含有关过去和将来QRS的信息,因此日期对于模型

3不再重要。 删除与价格相关的功能或列,以防止数据泄漏。 在常规QRS中,不包括这些功能。 最后,我们得出用于数据探索和训练分类模型的最终DF。 接下来,为了更熟悉我们的数据,我们必须执行一些简单的探索性数据分析。 我们这样做是为了更好地理解数据,并确保在转换数据时没有遗留物。 如您所见,

在我们的数据中存在类不平衡问题。 这可能是一个问题,但是我们不想丢弃数据点,以使每个类等于最少数量的类。 尽管这可能是解决不平衡问题的可行方法,但我们还有其他选择可供探索。 另一个选择是在验证我们的分类模型时使用不同的评估指标。 当我们进入建模阶段时,我们将扩展此选项。

数据相关性:从我们看到的结果来看,某些功能会影响类标签的确定。 有些与股票/季度报告是否值得购买,出售或持有没有关系。 由于我们知道QR中的某些特征对于确定类标签并不重要,因此我们可以从数据集中删除这些特征。 现在我们已经对数据进行了一些研究,我们可以继续做更多的研究,或者转移到特征工程,或者更具体地说,转移到特征选择。 特征工程是更改数据集以增强机器学习模型的过程。 有许多设计数据集特征的选项。 包括但不限于:

创建交互功能。 两个不同的特征相互作用以创建一个全新的特征。

减少了特征数量。 因为我们有30