监督式机器学习算法的应用:择时【附源码】

导语:《Machine Learning for Stock Price Forecasting》是Ali El-Shayeb撰写的机器学习系列文章 ,本文主要介绍其第二部分内容——《监督式机器学习算法的应用》,并将其思想和代码应用在中国股票市场,开发出具有择时功能的监督式机器学习算法,最后进行策略回测。对此感兴趣的小伙伴可以直接在本文文末克隆策略源代码,前往BigQuant人工智能量化投资平台实现并进一步研究。

《监督式机器学习算法的应用》

Ali El-Shayeb通过价格和成交量相关的9个特征训练模型,特征列表和数据来源见下图。

作者希望训练出一个二分类模预测模型,来预测市场属于牛市还是熊市状态。在训练集数据处理上,如果交易日t+30价格小于t交易日价格,那么标注为0,否则标注为1。通过特征数据和标注数据可以训练出一个二分类模型,接着在预测集上进行预测,如果预测结果为1,表明为买入信号,如果预测集为0,表明是卖出信号。最后,通过预测结果回测检验策略收益曲线。

需要补充的一点是,作者将训练集上80%的数据作为训练集,20%的数据作为验证集,在验证集上评估策略的预测效果。评估指标为准确率准确率计算公式为预测正确的天数与总预测天数的比值。

模型比较

Ali El-Shayeb尝试了多个机器学习分类模型,发现模型表现各不一样(见下图)。通过构建更多的特征能够消除数据噪音,获取更好的预测结果。此外,作者还发现预测时间越长,模型预测越准确。模型的准确率较之于随机猜测(50%涨,50%跌)的差值,恰恰能够体现模型的有效性。

交易策略

华尔街专业量化交易员预测第二天涨跌的准确率为55%,预测未来30天股价的准确率高达80%。Ali El-Shayeb发现,使用支持向量机分类算法的准确性最高,模型会告诉他,如果价格下跌就卖出股票,如果价格上涨就买入股票。该策略从08年到10年每月收益为1.3%,期间策略总收益为31.2%。在该时间段,基于标准普尔S&P500买入并持有的策略收益率为-6.9%。

展望和不足

  • 股票价格受很多因子影响,股票池不一样,总能找到比较好的策略回测曲线
  • 模型偏简单,没有考虑宏观方面的一些特征,比如GDP、通货膨胀率、利率水平等
  • 财报的因子也没有考虑进去,未来可以基于自然语言处理(NLP)的算法对财报进行分析预测

A股市场策略复现

本文将Ali El-Shayeb的量化思想应用在A股上面,因为本质上该策略属于择时策略,因此我们只需确定股票。这里我们以深高速(600548.SHA)为例,如果大家想要换成其他股票,修改下证券代码列表这个模块的参数即可。

本文完全采用Ali El-Shayeb提到的9个因子,其中2015年到2017年初为训练集,2017年到2018年为预测集(回测区间)。因为是二分类算法,所以我们采取Logistic Regression算法,如果大家想检验一下其他二分类算法的效果,可以直接在模块里将算法更改为sklearn机器学习包相关的算法名称。

策略回测结果:

从上图可以看出,该策略在在回测区间总收益率为17.36%,而如果直接买入并持有该股票的话,策略总收益率为9.3%。该策略主要是通过择时空仓规避了下跌,可见该策略择时有效。

需要说明的是,本文旨在复现国外数据科学家的一个量化策略,介绍如何在A股市场开发ai量化策 略,希望大家能够快速高效开发策略。因此并不对策略收益做保证。

参考文献

  • Machine Learning for Stock Price Forecasting (1/3)
  • Machine Learning for Stock Forecasting

附录

本文由BigQuant人工智能量化投资平台原创推出,版权归BigQuant所有,转载请注明出处。 

宽邦科技
宽邦科技

提供金融行业人工智能平台和服务解决方案,研发了全国首个人工智能量化投资平台BigQuant,拥有全栈人工智能平台和大规模机器学习和深度学习框架与算法,为券商、银行、保险、资管等金融机构以及更多企业提供AI技术方案和业务解决方案,实现机构及企业的AI转型和升级。

工程股票价格预测择时量化投资机器学习
3
相关数据
机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

验证集技术

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

噪音技术

噪音是一个随机误差或观测变量的方差。在拟合数据的过程中,我们常见的公式$y=f(x)+\epsilon$中$\epsilon$即为噪音。 数据通常包含噪音,错误,例外或不确定性,或者不完整。 错误和噪音可能会混淆数据挖掘过程,从而导致错误模式的衍生。去除噪音是数据挖掘(data mining)或知识发现(Knowledge Discovery in Database,KDD)的一个重要步骤。

支持向量机技术

在机器学习中,支持向量机是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

推荐文章
暂无评论
暂无评论~